summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rw-r--r--Config.in33
-rw-r--r--LICENCE2
-rw-r--r--Makefile18
-rw-r--r--adk/config/Makefile51
-rw-r--r--adk/config/lxdialog/check-lxdialog.sh17
-rw-r--r--adk/extlinux/extlinux.conf (renamed from target/rtems/Config.in)0
-rw-r--r--adk/tools/depmaker.c4
-rw-r--r--adk/tools/pkgmaker.c61
-rw-r--r--docs/adding-boards.txt2
-rw-r--r--docs/adding-packages-auto.txt2
-rw-r--r--docs/adding-packages-manual.txt2
-rw-r--r--docs/common-usage.txt2
-rw-r--r--docs/customize-rootfs.txt2
-rw-r--r--docs/introduction.txt10
-rw-r--r--docs/package-reference.txt12
-rw-r--r--docs/running-openadk.txt53
-rw-r--r--mk/build.mk41
-rw-r--r--mk/fetch.mk2
-rw-r--r--mk/host-bottom.mk14
-rw-r--r--mk/host.mk2
-rw-r--r--mk/image.mk155
-rw-r--r--mk/kernel-build.mk55
-rw-r--r--mk/kernel-vars.mk20
-rw-r--r--mk/linux-ver.mk72
-rw-r--r--mk/linux.mk4
-rw-r--r--mk/mirrors.mk1
-rw-r--r--mk/package.mk9
-rw-r--r--mk/perl.mk2
-rw-r--r--mk/pkg-bottom.mk10
-rw-r--r--mk/python.mk3
-rw-r--r--mk/python3.mk3
-rw-r--r--mk/rootfs.mk8
-rw-r--r--mk/vars.mk53
-rw-r--r--mk/waldux-ver.mk16
-rw-r--r--mk/waldux.mk10
-rw-r--r--package/.template/Makefile2
-rw-r--r--package/Config.in1
-rw-r--r--package/Config.in.options12
-rw-r--r--package/DirectFB/Makefile10
-rw-r--r--package/ImageMagick/Makefile6
-rw-r--r--package/adktest/Makefile2
-rwxr-xr-xpackage/adktest/files/adktest.init1
-rwxr-xr-xpackage/adktest/src/quit2
-rw-r--r--package/afboot-stm32/Makefile2
-rw-r--r--package/afboot-stm32/patches/patch-Makefile19
-rw-r--r--package/afpfs-ng/Makefile2
-rw-r--r--package/aircrack-ng/Makefile21
-rw-r--r--package/aircrack-ng/patches/patch-common_mak27
-rw-r--r--package/aircrack-ng/patches/patch-src_osdep_linux_c26
-rw-r--r--package/alsa-lib/Makefile7
-rw-r--r--package/alsa-utils/Makefile4
-rw-r--r--package/alsa-utils/files/amixer.init2
-rw-r--r--package/apr-util/Makefile3
-rw-r--r--package/arm-trusted-firmware/Makefile26
-rw-r--r--package/arm-trusted-firmware/patches/patch-plat_rockchip_rk3328_rk3328_def_h11
-rw-r--r--package/asterisk/Makefile69
-rw-r--r--package/asterisk/files/asterisk.init2
-rw-r--r--package/asterisk/patches/patch-main_dns_c11
-rw-r--r--package/asterisk/patches/patch-main_tcptls_c16
-rw-r--r--package/asterisk/patches/patch-res_stasis_control_c11
-rw-r--r--package/atk/Makefile16
-rw-r--r--package/autofs/Makefile14
-rw-r--r--package/autofs/patches/patch-configure_in12
-rw-r--r--package/automake/patches/patch-Makefile_in11
-rw-r--r--package/automake16/Makefile43
-rw-r--r--package/avahi/Makefile10
-rw-r--r--package/avahi/files/avahi.conffiles (renamed from package/avahi/files/avahi-daemon.conffiles)0
-rw-r--r--package/avahi/files/avahi.init2
-rw-r--r--package/avahi/files/avahi.postinst (renamed from package/avahi/files/avahi-daemon.postinst)0
-rw-r--r--package/avahi/patches/patch-Makefile_am12
-rw-r--r--package/avahi/patches/patch-avahi-ui_Makefile_am19
-rw-r--r--package/avahi/patches/patch-configure_ac14
-rw-r--r--package/barebox/Makefile9
-rw-r--r--package/base-files/Makefile13
-rw-r--r--package/base-files/files/base-files.conffiles1
-rwxr-xr-xpackage/base-files/files/init.d/rcS1
-rw-r--r--package/base-files/files/profile1
-rwxr-xr-xpackage/base-files/src/etc/network/if-pre-up.d/04-wireless6
-rw-r--r--package/bash/Makefile4
-rw-r--r--package/bcm28xx-bootloader/Makefile59
-rwxr-xr-xpackage/bcm28xx-bootloader/files/vcdbgbin71804 -> 0 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/bootcode.binbin52116 -> 52476 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/fixup.datbin6637 -> 7269 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/fixup4.datbin0 -> 5412 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/fixup4cd.datbin0 -> 3180 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/fixup4db.datbin0 -> 8397 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/fixup4x.datbin0 -> 8399 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/fixup_cd.datbin2608 -> 3180 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/fixup_db.datbin9799 -> 10242 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/fixup_x.datbin9797 -> 10244 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/start.elfbin2835108 -> 2979264 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/start4.elfbin0 -> 2254944 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/start4cd.elfbin0 -> 808060 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/start4db.elfbin0 -> 3751752 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/start4x.elfbin0 -> 3002536 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/start_cd.elfbin674884 -> 808060 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/start_db.elfbin4978980 -> 4823624 bytes
-rw-r--r--package/bcm28xx-bootloader/src/boot/start_x.elfbin3921988 -> 3726216 bytes
-rw-r--r--package/bcm28xx-utils/Makefile32
-rw-r--r--package/bcm28xx-utils/patches/patch-CMakeLists_txt16
-rw-r--r--package/bcm28xx-vc/Makefile84
-rw-r--r--package/bcm28xx-vc/patches/patch-host_applications_android_apps_vidtex_CMakeLists_txt10
-rw-r--r--package/bcm28xx-vc/patches/patch-host_applications_linux_apps_dtmerge_dtmerge_c10
-rw-r--r--package/bcm28xx-vc/patches/patch-host_applications_linux_apps_gencmd_CMakeLists_txt11
-rw-r--r--package/bcm28xx-vc/patches/patch-host_applications_linux_apps_raspicam_CMakeLists_txt11
-rw-r--r--package/bcm28xx-vc/patches/patch-host_applications_linux_apps_smem_CMakeLists_txt11
-rw-r--r--package/bcm28xx-vc/patches/patch-host_applications_linux_libs_bcm_host_CMakeLists_txt19
-rw-r--r--package/bcm28xx-vc/patches/patch-host_applications_linux_libs_sm_CMakeLists_txt11
-rw-r--r--package/bcm28xx-vc/patches/patch-interface_khronos_CMakeLists_txt17
-rw-r--r--package/bcm28xx-vc/patches/patch-interface_mmal_CMakeLists_txt11
-rw-r--r--package/bcm28xx-vc/patches/patch-interface_vcos_CMakeLists_txt11
-rw-r--r--package/bcm28xx-vc/patches/patch-interface_vcos_pthreads_CMakeLists_txt11
-rw-r--r--package/bcm28xx-vc/patches/patch-interface_vmcs_host_linux_vcfiled_CMakeLists_txt9
-rw-r--r--package/bcm28xx-vc/patches/patch-interface_vmcs_host_vc_vchi_tvservice_c18
-rw-r--r--package/bcm28xx-vc/src/host_applications/linux/libs/bcm_host/bcm_host.pc.in10
-rw-r--r--package/bcm28xx-vc/src/interface/khronos/egl/egl.pc.in11
-rw-r--r--package/bcm28xx-vc/src/interface/khronos/glxx/glesv2.pc.in10
-rw-r--r--package/bind/Makefile64
-rw-r--r--package/bind/files/bind/named.conf (renamed from package/bind/files/bind/named.conf.example)0
-rw-r--r--package/bind/patches/patch-bin_rndc_Makefile_am18
-rw-r--r--package/binutils/Makefile1
-rw-r--r--package/bison/Makefile4
-rw-r--r--package/bison/patches/patch-lib_fseterr_c11
-rw-r--r--package/bison/patches/patch-lib_vasnprintf_c28
-rw-r--r--package/bitlbee/Makefile5
-rw-r--r--package/bitlbee/patches/patch-lib_Makefile10
-rw-r--r--package/bitlbee/patches/patch-protocols_Makefile8
-rw-r--r--package/bitlbee/patches/patch-protocols_jabber_Makefile8
-rw-r--r--package/bitlbee/patches/patch-protocols_msn_Makefile19
-rw-r--r--package/bitlbee/patches/patch-protocols_oscar_Makefile24
-rw-r--r--package/bitlbee/patches/patch-protocols_twitter_Makefile8
-rw-r--r--package/bluez/Makefile5
-rw-r--r--package/bluez/patches/patch-tools_csr_usb_c10
-rw-r--r--package/bluez/patches/patch-tools_hciattach_bcm43xx_c32
-rw-r--r--package/boost/Makefile32
-rw-r--r--package/boost/patches/patch-boost_atomic_detail_caps_gcc_atomic_hpp12
-rw-r--r--package/brcm-bluetooth/files/hci3
-rw-r--r--package/brcm-bluetooth/src/BCM4345C5.hcdbin0 -> 45667 bytes
-rw-r--r--package/brcmfmac-firmware/Makefile6
-rw-r--r--package/brcmfmac-firmware/src/BCM43430A1.hcdbin36264 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/BCM4345C0.hcdbin55096 -> 0 bytes
l---------package/brcmfmac-firmware/src/brcm/BCM-0a5c-6410.hcd1
-rw-r--r--package/brcmfmac-firmware/src/brcm/BCM-0bb4-0306.hcdbin0 -> 54734 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/BCM43430A1.hcdbin0 -> 30049 bytes
l---------package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,3-model-b.hcd1
l---------package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,model-zero-2-w.hcd1
l---------package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,model-zero-w.hcd1
-rw-r--r--package/brcmfmac-firmware/src/brcm/BCM43430B0.hcdbin0 -> 44376 bytes
l---------package/brcmfmac-firmware/src/brcm/BCM43430B0.raspberrypi,model-zero-2-w.hcd1
-rw-r--r--package/brcmfmac-firmware/src/brcm/BCM4345C0.hcdbin0 -> 63806 bytes
l---------package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,3-model-a-plus.hcd1
l---------package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,3-model-b-plus.hcd1
l---------package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,4-compute-module.hcd1
l---------package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,4-model-b.hcd1
l---------package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,5-model-b.hcd1
-rw-r--r--package/brcmfmac-firmware/src/brcm/BCM4345C5.hcdbin0 -> 55676 bytes
l---------package/brcmfmac-firmware/src/brcm/BCM4345C5.raspberrypi,4-compute-module.hcd1
l---------package/brcmfmac-firmware/src/brcm/BCM4345C5.raspberrypi,400.hcd1
-rw-r--r--package/brcmfmac-firmware/src/brcm/bcm43xx-0.fw (renamed from package/brcmfmac-firmware/src/bcm43xx-0.fw)bin96224 -> 96224 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/bcm43xx_hdr-0.fw (renamed from package/brcmfmac-firmware/src/bcm43xx_hdr-0.fw)bin180 -> 180 bytes
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43012-sdio.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43012-sdio.clm_blob1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43143-sdio.bin (renamed from package/brcmfmac-firmware/src/brcmfmac43143-sdio.bin)bin385067 -> 385067 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43143.bin (renamed from package/brcmfmac-firmware/src/brcmfmac43143.bin)bin397312 -> 397312 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43236b.bin (renamed from package/brcmfmac-firmware/src/brcmfmac43236b.bin)bin348160 -> 348160 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43241b0-sdio.binbin0 -> 459988 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43241b4-sdio.bin (renamed from package/brcmfmac-firmware/src/brcmfmac43241b4-sdio.bin)bin403855 -> 403855 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43241b5-sdio.bin (renamed from package/brcmfmac-firmware/src/brcmfmac43241b5-sdio.bin)bin408682 -> 408682 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43242a.bin (renamed from package/brcmfmac-firmware/src/brcmfmac43242a.bin)bin479232 -> 479232 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.bin (renamed from package/brcmfmac-firmware/src/brcmfmac4329-sdio.bin)bin253748 -> 253748 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-dl.binbin0 -> 253748 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-dl.txt70
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-q.binbin0 -> 253748 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-q.txt70
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.txt (renamed from package/brcmfmac-firmware/src/brcmfmac4329-sdio.txt)0
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.Prowise-PT301.txt89
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.binbin0 -> 223581 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-dl.bin (renamed from package/brcmfmac-firmware/src/brcmfmac4330-sdio.bin)bin222126 -> 222126 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-dl.txt118
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-q.binbin0 -> 222126 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-q.txt118
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.txt (renamed from package/brcmfmac-firmware/src/brcmfmac4330-sdio.txt)0
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4334-sdio.bin (renamed from package/brcmfmac-firmware/src/brcmfmac4334-sdio.bin)bin451566 -> 451566 bytes
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.bin1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.meegopad-t08.txt98
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt98
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.predia-basic.txt98
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4335-sdio.bin (renamed from package/brcmfmac-firmware/src/brcmfmac4335-sdio.bin)bin569291 -> 569291 bytes
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.bin1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt45
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.lemaker,bananapro.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4339-sdio.bin1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.AP6212.txt44
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt48
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.MUR1DX.txt44
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-plus.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-ultra.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m3.txt1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.txt64
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.binbin0 -> 382455 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.ilife-S806.txt47
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt49
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.txt1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.binbin0 -> 416101 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.clm_blobbin0 -> 11209 bytes
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.txt1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.txt93
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.binbin0 -> 442211 bytes
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.raspberrypi,model-zero-2-w.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.raspberrypi,model-zero-2-w.txt1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.txt67
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.AW-CM256SM.txt66
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,pinebook-pro.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,pinephone-pro.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,quartz64-b.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.txt1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.txt98
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.binbin0 -> 495898 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.clm_blobbin0 -> 7163 bytes
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.txt1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.txt97
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4350-pcie.bin (renamed from package/brcmfmac-firmware/src/brcmfmac4350-pcie.bin)bin626140 -> 626140 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4350c2-pcie.bin (renamed from package/brcmfmac-firmware/src/brcmfmac4350c2-pcie.bin)bin623304 -> 623304 bytes
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4354-sdio.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4354-sdio.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.clm_blob1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.gpd-win-pocket.txt121
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.AP6356S.txt122
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.clm_blob1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.firefly,firefly-rk3399.txt1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.khadas,vim2.txt1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.txt126
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.vamrs,rock960.txt1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43569.bin (renamed from package/brcmfmac-firmware/src/brcmfmac43569.bin)bin557056 -> 557056 bytes
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43570-pcie.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac43570-pcie.clm_blob1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4358-pcie.binbin0 -> 634361 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43602-pcie.ap.bin (renamed from package/brcmfmac-firmware/src/brcmfmac43602-pcie.ap.bin)bin595472 -> 595472 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac43602-pcie.bin (renamed from package/brcmfmac-firmware/src/brcmfmac43602-pcie.bin)bin635449 -> 635449 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4366b-pcie.binbin0 -> 1105361 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4366c-pcie.binbin0 -> 1120971 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4371-pcie.bin (renamed from package/brcmfmac-firmware/src/brcmfmac4371-pcie.bin)bin623448 -> 623448 bytes
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4373-sdio.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac4373-sdio.clm_blob1
-rw-r--r--package/brcmfmac-firmware/src/brcm/brcmfmac4373.binbin0 -> 479232 bytes
l---------package/brcmfmac-firmware/src/brcm/brcmfmac54591-pcie.bin1
l---------package/brcmfmac-firmware/src/brcm/brcmfmac54591-pcie.clm_blob1
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac43241b0-sdio.binbin455745 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac43340-sdio.binbin397378 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac43362-sdio.binbin219557 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac4339-sdio.binbin493599 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac43430-sdio.binbin388739 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac43430-sdio.txt59
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac43455-sdio.binbin600487 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac43455-sdio.clm_blobbin14036 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac43455-sdio.txt92
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac4354-sdio.binbin591837 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac4356-pcie.binbin623012 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac43570-pcie.binbin550333 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/brcmfmac4366b-pcie.binbin989401 -> 0 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43012-sdio.binbin0 -> 490686 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43012-sdio.clm_blobbin0 -> 4692 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43340-sdio.binbin0 -> 409717 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43362-sdio.binbin0 -> 202623 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac4339-sdio.binbin0 -> 574096 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43430-sdio.binbin0 -> 399344 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43430-sdio.clm_blobbin0 -> 4733 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio-minimal.binbin0 -> 548728 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio-standard.binbin0 -> 637406 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio.binbin0 -> 637406 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio.clm_blobbin0 -> 2676 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac4354-sdio.binbin0 -> 601704 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac4354-sdio.clm_blobbin0 -> 5750 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac4356-pcie.binbin0 -> 616174 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac4356-pcie.clm_blobbin0 -> 5750 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac4356-sdio.binbin0 -> 580258 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac4356-sdio.clm_blobbin0 -> 5750 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43570-pcie.binbin0 -> 558388 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac43570-pcie.clm_blobbin0 -> 5750 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac4373-sdio.binbin0 -> 563834 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac4373-sdio.clm_blobbin0 -> 4684 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac54591-pcie.binbin0 -> 615882 bytes
-rw-r--r--package/brcmfmac-firmware/src/cypress/cyfmac54591-pcie.clm_blobbin0 -> 5764 bytes
-rw-r--r--package/btrfs-progs/Makefile37
-rw-r--r--package/busybox/Config.in.manual218
-rw-r--r--package/busybox/Makefile8
-rw-r--r--package/busybox/config/Config.in1062
-rw-r--r--package/busybox/config/archival/Config.in573
-rw-r--r--package/busybox/config/console-tools/Config.in219
-rw-r--r--package/busybox/config/coreutils/Config.in1277
-rw-r--r--package/busybox/config/debianutils/Config.in86
-rw-r--r--package/busybox/config/e2fsprogs/Config.in52
-rw-r--r--package/busybox/config/e2fsprogs/old_e2fsprogs/Config.in69
-rw-r--r--package/busybox/config/editors/Config.in265
-rw-r--r--package/busybox/config/findutils/Config.in215
-rw-r--r--package/busybox/config/init/Config.in227
-rw-r--r--package/busybox/config/klibc-utils/Config.in42
-rw-r--r--package/busybox/config/libbb/Config.in487
-rw-r--r--package/busybox/config/loginutils/Config.in422
-rw-r--r--package/busybox/config/mailutils/Config.in48
-rw-r--r--package/busybox/config/miscutils/Config.in1104
-rw-r--r--package/busybox/config/modutils/Config.in319
-rw-r--r--package/busybox/config/networking/Config.in1469
-rw-r--r--package/busybox/config/networking/udhcp/Config.in266
-rw-r--r--package/busybox/config/printutils/Config.in22
-rw-r--r--package/busybox/config/procps/Config.in339
-rw-r--r--package/busybox/config/runit/Config.in128
-rw-r--r--package/busybox/config/selinux/Config.in103
-rw-r--r--package/busybox/config/shell/Config.in667
-rw-r--r--package/busybox/config/sysklogd/Config.in218
-rw-r--r--package/busybox/config/util-linux/Config.in1510
-rw-r--r--package/busybox/config/util-linux/volume_id/Config.in203
-rwxr-xr-xpackage/busybox/extract_config.sh56
-rw-r--r--package/busybox/files/ntpd.init2
-rw-r--r--package/busybox/patches/002-find-empty.patch90
-rw-r--r--package/busybox/patches/002-hwclock-musl.patch31
-rw-r--r--package/busybox/patches/006-od-bloat.patch214
-rw-r--r--package/busybox/patches/009-disable-Oz.patch20
-rw-r--r--package/bzip2/Makefile19
-rw-r--r--package/bzip2/patches/patch-Makefile6
-rw-r--r--package/bzip2/patches/patch-Makefile-libbz2_so24
-rw-r--r--package/bzr/Makefile41
-rw-r--r--package/c-ares/Makefile8
-rw-r--r--package/ca-certificates/Makefile6
-rw-r--r--package/ca-certificates/patches/patch-Makefile5
-rw-r--r--package/ca-certificates/patches/patch-mozilla_Makefile11
-rw-r--r--package/ca-certificates/patches/patch-sbin_Makefile9
-rw-r--r--package/ccid/Makefile13
-rw-r--r--package/ccid/patches/patch-configure21
-rw-r--r--package/ccid/patches/patch-ltmain_sh11
-rw-r--r--package/cdrkit/patches/patch-Makefile465
-rw-r--r--package/cdrkit/patches/patch-genisoimage_genisoimage_h11
-rw-r--r--package/cfgfs/Makefile4
-rw-r--r--package/cfgfs/src/fwcf.sh63
-rw-r--r--package/cherokee/Makefile12
-rw-r--r--package/cherrypy/Makefile10
-rw-r--r--package/chocolate-doom/Makefile32
-rw-r--r--package/cifs-utils/Makefile5
-rw-r--r--package/cifs-utils/patches/patch-Makefile_am21
-rw-r--r--package/cifs-utils/patches/patch-cifs_idmap_c16
-rw-r--r--package/cifs-utils/patches/patch-configure_ac33
-rw-r--r--package/cifs-utils/patches/patch-mount_cifs_c24
-rw-r--r--package/cifs-utils/patches/patch-mtab_c10
-rw-r--r--package/clamav/Makefile12
-rw-r--r--package/clamav/patches/patch-clamdscan_proto_c6
-rw-r--r--package/clamav/patches/patch-libclamav_mbox_c11
-rw-r--r--package/cmake/Makefile6
-rw-r--r--package/collectd/Makefile4
-rw-r--r--package/coreutils/Makefile5
-rw-r--r--package/coreutils/patches/patch-Makefile_am27
-rw-r--r--package/coreutils/patches/patch-configure_ac14
-rw-r--r--package/coreutils/patches/patch-man_local_mk16
-rw-r--r--package/cpio/Makefile4
-rw-r--r--package/cpio/patches/patch-gnu_stdio_in_h13
-rw-r--r--package/cpio/patches/patch-src_filetypes_h8
-rw-r--r--package/crda/Makefile53
-rw-r--r--package/crda/patches/patch-Makefile11
-rw-r--r--package/cryptodev-linux/Makefile2
-rw-r--r--package/cryptsetup/Makefile51
-rw-r--r--package/cups/Makefile28
-rw-r--r--package/cups/patches/patch-Makedefs_in10
-rw-r--r--package/cups/patches/patch-configure14
-rw-r--r--package/curl/Makefile66
-rw-r--r--package/cxxtools/Makefile39
-rw-r--r--package/dansguardian/Makefile41
-rw-r--r--package/dansguardian/files/dansguardian.init33
-rw-r--r--package/dansguardian/files/dansguardian.postinst6
-rw-r--r--package/dansguardian/patches/patch-src_ImageContainer_cpp10
-rw-r--r--package/dansguardian/patches/patch-src_SocketArray_cpp10
-rw-r--r--package/dansguardian/patches/patch-src_UDSocket_cpp10
-rw-r--r--package/daq/Makefile8
-rw-r--r--package/davfs2/Makefile8
-rw-r--r--package/davfs2/patches/patch-configure_ac11
-rw-r--r--package/davfs2/patches/patch-src_Makefile_am12
-rw-r--r--package/davfs2/patches/patch-src_Makefile_in12
-rw-r--r--package/dbus-python/Makefile26
-rw-r--r--package/dbus-python/patches/patch-configure11
-rw-r--r--package/dbus/Makefile21
-rw-r--r--package/deco/Makefile1
-rw-r--r--package/dhcp/Makefile6
-rw-r--r--package/dhcp/patches/patch-bind_Makefile_in13
-rw-r--r--package/dhcp/patches/patch-common_discover_c13
-rw-r--r--package/dhcpcd/Makefile4
-rw-r--r--package/dillo/Makefile2
-rw-r--r--package/dillo/patches/patch-dpi_https_c14
-rw-r--r--package/dnsmasq/Makefile4
-rw-r--r--package/dosfstools/Makefile9
-rw-r--r--package/drbd-utils/Makefile39
-rw-r--r--package/drbd-utils/files/drbd.conf21
-rw-r--r--package/drbd-utils/files/drbd.conffiles1
-rw-r--r--package/dropbear/Makefile13
-rw-r--r--package/dropbear/files/dropbear.init12
-rw-r--r--package/dropbear/files/dropbear.service11
-rw-r--r--package/dropbear/patches/patch-Makefile_in35
-rw-r--r--package/dropbear/patches/patch-svr-authpubkey_c109
-rw-r--r--package/dropbear/patches/patch-svr-main_c15
-rw-r--r--package/dtc/Makefile7
-rw-r--r--package/dtc/patches/patch-Makefile12
-rw-r--r--package/e2fsprogs/Makefile27
-rw-r--r--package/elinks/Makefile75
-rw-r--r--package/elinks/patches/patch-Makefile_lib11
-rw-r--r--package/elinks/patches/patch-src_network_ssl_ssl_c16
-rw-r--r--package/esmtp/Makefile29
-rw-r--r--package/ethtool/Makefile6
-rw-r--r--package/eudev/Makefile6
-rw-r--r--package/expat/Makefile10
-rw-r--r--package/fetchmail/Makefile6
-rw-r--r--package/fetchmail/patches/patch-config_h_in13
-rw-r--r--package/fetchmail/patches/patch-configure_ac10
-rw-r--r--package/fetchmail/patches/patch-fetchmail_c15
-rw-r--r--package/fetchmail/patches/patch-mxget_c127
-rw-r--r--package/fetchmail/patches/patch-socket_c38
-rw-r--r--package/ffmpeg/Makefile32
-rw-r--r--package/ffmpeg/patches/patch-libavcodec_arm_synth_filter_vfp_S93
-rw-r--r--package/file/Makefile10
-rw-r--r--package/firefox/Makefile140
-rwxr-xr-xpackage/firefox/files/firefox2
-rwxr-xr-xpackage/firefox/files/firefox.init31
-rw-r--r--package/firefox/files/firefox.postinst6
-rw-r--r--package/firefox/files/mozconfig37
-rw-r--r--package/firefox/files/xinitrc1
-rw-r--r--package/firefox/patches/patch-gfx_angle_src_common_angleutils_cpp10
-rw-r--r--package/firefox/patches/patch-old-configure_in10
-rw-r--r--package/firefox/patches/patch-toolkit_crashreporter_google-breakpad_src_common_linux_dump_symbols_cc11
-rw-r--r--package/firefox/patches/patch-toolkit_crashreporter_google-breakpad_src_common_stabs_reader_cc34
-rw-r--r--package/firefox/patches/patch-tools_profiler_core_platform-linux_cc11
-rw-r--r--package/firefox/patches/patch-tools_profiler_lul_LulElf_cpp12
-rw-r--r--package/firefox/patches/patch-xpcom_base_nsMemoryReporterManager_cpp18
-rw-r--r--package/firefox/patches/patch-xpcom_ds_nsMathUtils_h21
-rw-r--r--package/firmware-imx/Makefile2
-rw-r--r--package/flac/Makefile7
-rw-r--r--package/flashrom/Makefile30
-rw-r--r--package/flask-login/Makefile39
-rw-r--r--package/flask/Makefile39
-rw-r--r--package/flask/patches/patch-setup_py37
-rw-r--r--package/flatbuffers/Makefile39
-rw-r--r--package/flex/Makefile2
-rw-r--r--package/flex/patches/patch-configure_ac12
-rw-r--r--package/flex/patches/patch-src_misc_c32
-rw-r--r--package/fltk/Makefile4
-rw-r--r--package/fluxbox/Makefile2
-rw-r--r--package/fluxbox/patches/patch-util_fluxbox-remote_cc11
-rw-r--r--package/fmt/Makefile5
-rw-r--r--package/font-adobe-100dpi/Makefile4
-rw-r--r--package/font-adobe-75dpi/Makefile4
-rw-r--r--package/font-util/Makefile4
-rw-r--r--package/font-util/patches/patch-fontutil_pc_in13
-rw-r--r--package/fontconfig/Makefile9
-rw-r--r--package/forte/Makefile37
-rw-r--r--package/fping/Makefile4
-rw-r--r--package/fprobe/patches/patch-src_fprobe_c20
-rw-r--r--package/freeglut/Makefile4
-rw-r--r--package/freeglut/patches/patch-src_fg_gl2_c23
-rw-r--r--package/freeglut/patches/patch-src_fg_gl2_h23
-rw-r--r--package/freeglut/patches/patch-src_fg_version_h16
-rw-r--r--package/freeradius-server/Makefile37
-rw-r--r--package/freeradius-server/files/radiusd.conf8
-rw-r--r--package/freeradius-server/patches/patch-acinclude_m4164
-rw-r--r--package/freeradius-server/patches/patch-scripts_libtool_mk14
-rw-r--r--package/freeradius-server/patches/patch-src_include_threads_h33
-rw-r--r--package/freeradius-server/patches/patch-src_main_tls_c16
-rw-r--r--package/freeswitch/Makefile18
-rw-r--r--package/freeswitch/patches/patch-libs_srtp_crypto_hash_hmac_ossl_c22
-rw-r--r--package/freetype/Makefile20
-rw-r--r--package/freetype/patches/patch-builds_unix_freetype-config_in16
-rw-r--r--package/freetype/patches/patch-builds_unix_freetype2_in15
-rw-r--r--package/fribidi/Makefile8
-rw-r--r--package/fstrcmp/Makefile24
-rw-r--r--package/fstrcmp/patches/patch-Makefile_in11
-rw-r--r--package/fuse/Makefile8
-rw-r--r--package/fuse/patches/patch-include_fuse_kernel_h16
-rw-r--r--package/fuse3/Makefile47
-rw-r--r--package/fuse3/patches/patch-util_install_helper_sh22
-rw-r--r--package/fuse3/patches/patch-util_meson_build12
-rw-r--r--package/fwinstall/Makefile1
-rw-r--r--package/fwupdate/Makefile6
-rw-r--r--package/fwupdate/files/fwupdate.postinst3
-rw-r--r--package/fwupdate/files/fwupdate.service9
-rwxr-xr-xpackage/fwupdate/src/fwupdate45
-rwxr-xr-xpackage/fwupdate/src/fwvalidate50
-rw-r--r--package/gatling/Makefile12
-rw-r--r--package/gatling/patches/patch-GNUmakefile16
-rw-r--r--package/gatling/patches/patch-http_c19
-rw-r--r--package/gcc/Makefile2
-rw-r--r--package/gcr/Makefile19
-rw-r--r--package/gdb-arc/Makefile2
-rw-r--r--package/gdb-microblaze/Makefile2
-rw-r--r--package/gdb-riscv/Makefile44
-rw-r--r--package/gdb/Makefile20
-rw-r--r--package/gdb/patches/patch-gdb_configure96
-rw-r--r--package/gdb/patches/patch-gdb_nat_ppc-linux_h8
-rw-r--r--package/gdbm/Makefile4
-rw-r--r--package/gdbserver/Makefile20
-rw-r--r--package/gdbserver/patches/patch-gdb_nat_fork-inferior_c10
-rw-r--r--package/gdk-pixbuf/Makefile6
-rw-r--r--package/genimage/Makefile4
-rw-r--r--package/gettext/Makefile1
-rw-r--r--package/git/Makefile16
-rw-r--r--package/glib/Makefile70
-rw-r--r--package/glib/patches/patch-configure11
-rw-r--r--package/glib/patches/patch-glib_gnulib_meson_build12
-rw-r--r--package/glib/patches/patch-meson_build10
-rw-r--r--package/glibc/Makefile30
-rw-r--r--package/glu/Makefile6
-rw-r--r--package/gmediaserver/Makefile4
-rw-r--r--package/gmediaserver/patches/patch-src_metadata_c78
-rw-r--r--package/gmp/patches/patch-longlong_h11
-rw-r--r--package/gnupg/Makefile6
-rw-r--r--package/gnupg/patches/patch-doc_Makefile_in6
-rw-r--r--package/gnupg/patches/patch-g10_options_h11
-rw-r--r--package/gnupg/patches/patch-include_cipher_h11
-rw-r--r--package/gnupg/patches/patch-include_iobuf_h11
-rw-r--r--package/gnupg/patches/patch-include_memory_h11
-rw-r--r--package/gnupg/patches/patch-include_mpi_h11
-rw-r--r--package/gnupg2/Makefile11
-rw-r--r--package/gnupg2/patches/patch-Makefile_in23
-rw-r--r--package/gnutls/Makefile11
-rw-r--r--package/gpgme/Makefile4
-rw-r--r--package/gpm/patches/patch-src_headers_daemon_h11
-rw-r--r--package/gpsd/Makefile6
-rw-r--r--package/gpsd/patches/patch-SConstruct12
-rw-r--r--package/gpsd/patches/patch-gpsmon_c13
-rw-r--r--package/gptfdisk/Makefile4
-rw-r--r--package/grep/Makefile9
-rw-r--r--package/grub/Makefile9
-rw-r--r--package/grub/files/grub-dual.cfg12
-rw-r--r--package/grub/files/grub.cfg6
-rw-r--r--package/grub/patches/patch-grub-core_Makefile_am10
-rw-r--r--package/gst-plugins-base/Makefile11
-rw-r--r--package/gst-plugins-good/Makefile11
-rw-r--r--package/gstreamer/Makefile19
-rw-r--r--package/gzip/Makefile4
-rw-r--r--package/harfbuzz/Makefile22
-rw-r--r--package/harfbuzz/patches/patch-Makefile_in11
-rw-r--r--package/harfbuzz/patches/patch-src_harfbuzz_pc_in18
-rw-r--r--package/haveged/Makefile10
-rw-r--r--package/hdparm/Makefile4
-rw-r--r--package/heimdal/Makefile12
-rw-r--r--package/heimdal/patches/heimdal_tinfo.patch23
-rw-r--r--package/heimdal/patches/patch-cf_check-compile-et_m417
-rw-r--r--package/heimdal/patches/patch-lib_com_err_Makefile_am11
-rw-r--r--package/heimdal/patches/patch-lib_krb5_crypto-rand_c30
-rw-r--r--package/heimdal/patches/patch-lib_roken_roken_h_in11
-rw-r--r--package/heimdal/src/cf/roken-h-process.pl184
-rw-r--r--package/heyu/Makefile10
-rw-r--r--package/heyu/patches/patch-tty_c12
-rw-r--r--package/heyu/patches/patch-x10state_c12
-rw-r--r--package/hostapd/Makefile7
-rw-r--r--package/htop/Makefile8
-rw-r--r--package/httping/Makefile20
-rw-r--r--package/hugo/Makefile37
-rw-r--r--package/hush/Makefile4
-rw-r--r--package/hush/files/config340
-rw-r--r--package/hwdata/Makefile51
-rw-r--r--package/hwdata/patches/patch-hwdata_pc_in10
-rw-r--r--package/hwids/Makefile61
-rw-r--r--package/icecast/Makefile5
-rw-r--r--package/icu4c/Makefile10
-rw-r--r--package/ipmitool/Makefile12
-rw-r--r--package/iproute2/Makefile4
-rw-r--r--package/ipsec-tools/Makefile51
-rw-r--r--package/ipsec-tools/files/ipsec-tools.conffiles1
-rw-r--r--package/ipsec-tools/patches/patch-configure67
-rw-r--r--package/ipsec-tools/patches/patch-src_include-glibc_Makefile_in24
-rw-r--r--package/ipsec-tools/patches/patch-src_racoon_algorithm_c43
-rw-r--r--package/ipsec-tools/patches/patch-src_racoon_crypto_openssl_c47
-rw-r--r--package/ipsec-tools/patches/patch-src_racoon_eaytest_c26
-rw-r--r--package/ipsec-tools/patches/patch-src_racoon_isakmp_c21
-rw-r--r--package/ipsec-tools/patches/patch-src_racoon_isakmp_xauth_c11
-rw-r--r--package/ipsec-tools/patches/patch-src_racoon_pfkey_c17
-rw-r--r--package/ipsec-tools/patches/patch-src_racoon_privsep_c92
-rw-r--r--package/ipsec-tools/patches/patch-src_racoon_racoonctl_c11
-rw-r--r--package/iptables-snmp/Makefile30
-rw-r--r--package/iptables-snmp/patches/patch-Makefile_in11
-rw-r--r--package/iptables-snmp/patches/patch-iptables-snmp_c12
-rw-r--r--package/iptables-snmp/patches/patch-libiptc_libip6tc_c11
-rw-r--r--package/iptables/Makefile10
-rw-r--r--package/iptraf-ng/Makefile32
-rw-r--r--package/iptraf-ng/patches/patch-Makefile11
-rw-r--r--package/iptraf/patches/patch-src_Makefile9
-rw-r--r--package/iptraf/patches/patch-src_isdntab_c10
-rw-r--r--package/iptraf/patches/patch-src_packet_c40
-rw-r--r--package/irssi/Makefile4
-rw-r--r--package/iw/Makefile4
-rw-r--r--package/jack/Makefile3
-rw-r--r--package/jack2/Makefile11
-rw-r--r--package/jack2/patches/patch-wscript23
-rw-r--r--package/kbd/Makefile6
-rw-r--r--package/kexec-tools/Makefile8
-rw-r--r--package/kexec-tools/patches/patch-vmcore-dmesg_vmcore-dmesg_c41
-rw-r--r--package/keychain/Makefile8
-rw-r--r--package/kismet/Makefile51
-rw-r--r--package/kismet/patches/patch-configure_in12
-rw-r--r--package/kismet/patches/patch-dumpfile_tuntap_h18
-rw-r--r--package/kmod/Makefile5
-rw-r--r--package/knxd/Makefile47
-rw-r--r--package/kodi/Makefile96
-rw-r--r--package/kodi/files/kodi.init4
-rw-r--r--package/kodi/patches/patch-CMakeLists_txt27
-rw-r--r--package/kodi/patches/patch-cmake_KodiConfig_cmake_in20
-rw-r--r--package/kodi/patches/patch-tools_depends_native_TexturePacker_CMakeLists_txt20
-rw-r--r--package/kodi/patches/patch-tools_depends_native_TexturePacker_src_decoder_GifHelper_cpp15
-rw-r--r--package/kodi/patches/patch-xbmc_cores_AudioEngine_Sinks_AESinkALSA_cpp30
-rw-r--r--package/kodi/patches/patch-xbmc_platform_linux_CPUInfoLinux_cpp31
-rw-r--r--package/krb5/Makefile11
-rw-r--r--package/krb5/patches/patch-src_include_k5-thread_h19
-rw-r--r--package/krb5/patches/patch-src_kadmin_ktutil_ktutil_funcs_c11
-rw-r--r--package/krb5/patches/patch-src_lib_crypto_krb_prng_c13
-rw-r--r--package/krb5/patches/patch-src_lib_kadm5_alt_prof_c11
-rw-r--r--package/krb5/patches/patch-src_lib_krad_packet_c12
-rw-r--r--package/krb5/patches/patch-src_lib_krb5_ccache_cc_file_c20
-rw-r--r--package/krb5/patches/patch-src_lib_rpc_bindresvport_c10
-rw-r--r--package/krb5/patches/patch-src_plugins_preauth_pkinit_pkinit_crypto_openssl_c11
-rw-r--r--package/krb5/patches/patch-src_util_export-check_pl11
-rw-r--r--package/lame/Makefile4
-rw-r--r--package/lftp/Makefile4
-rw-r--r--package/lftp/patches/patch-src_FileCopy_cc11
-rw-r--r--package/lftp/patches/patch-src_NetAccess_cc11
-rw-r--r--package/lftp/patches/patch-src_ResMgr_cc11
-rw-r--r--package/lftp/patches/patch-src_Speedometer_cc11
-rw-r--r--package/lftp/patches/patch-src_lftp_ssl_cc38
-rw-r--r--package/libX11/Makefile4
-rw-r--r--package/libX11/patches/patch-src_util_Makefile_in13
-rw-r--r--package/libXrandr/Makefile2
-rw-r--r--package/libaio/Makefile28
-rw-r--r--package/libao/Makefile4
-rw-r--r--package/libargon2/Makefile40
-rw-r--r--package/libass/Makefile4
-rw-r--r--package/libassuan/Makefile4
-rw-r--r--package/libatomic/Makefile31
-rw-r--r--package/libbsd/Makefile27
-rw-r--r--package/libcap-ng/Makefile28
-rw-r--r--package/libcap-ng/patches/patch-INSTALL521
-rw-r--r--package/libcap-ng/patches/patch-autogen_sh9
-rw-r--r--package/libcap/Makefile10
-rw-r--r--package/libcap/patches/patch-Make_Rules49
-rw-r--r--package/libcap/patches/patch-Makefile14
-rw-r--r--package/libcap/patches/patch-libcap_Makefile22
-rw-r--r--package/libcap/patches/patch-libcap__makenames_c11
-rw-r--r--package/libcap/patches/patch-libcap_libcap_pc_in6
-rw-r--r--package/libcap/patches/patch-progs_Makefile12
-rw-r--r--package/libcdada/Makefile31
-rw-r--r--package/libcdada/patches/patch-configure_ac22
-rw-r--r--package/libcdio/Makefile12
-rw-r--r--package/libcec/Makefile17
-rw-r--r--package/libcec/patches/libcec-00-imx6-support.patch879
-rw-r--r--package/libcec/patches/patch-src_cec-client_CMakeLists_txt10
-rw-r--r--package/libconfig/Makefile27
-rw-r--r--package/libdisplay-info/Makefile31
-rw-r--r--package/libdrm/Makefile17
-rw-r--r--package/libedit/Makefile26
-rw-r--r--package/libedit/patches/patch-src_sys_h11
-rw-r--r--package/libepoxy/Makefile18
-rw-r--r--package/libesmtp/Makefile38
-rw-r--r--package/libesmtp/patches/patch-Makefile_am12
-rw-r--r--package/libesmtp/patches/patch-crammd5_Makefile_am12
-rw-r--r--package/libesmtp/patches/patch-login_Makefile_am12
-rw-r--r--package/libesmtp/patches/patch-meson_build42
-rw-r--r--package/libesmtp/patches/patch-meson_options_txt7
-rw-r--r--package/libesmtp/patches/patch-ntlm_Makefile_am12
-rw-r--r--package/libesmtp/patches/patch-ntlm_meson_build11
-rw-r--r--package/libesmtp/patches/patch-plain_Makefile_am12
-rw-r--r--package/libevdev/Makefile25
-rw-r--r--package/libevent/Makefile6
-rw-r--r--package/libfastjson/Makefile4
-rw-r--r--package/libffi/Makefile11
-rw-r--r--package/libffi/patches/patch-include_Makefile_am9
-rw-r--r--package/libffi/patches/patch-libffi_pc_in16
-rw-r--r--package/libgc/Makefile6
-rw-r--r--package/libgc/patches/patch-os_dep_c39
-rw-r--r--package/libgcc/Makefile2
-rw-r--r--package/libgcrypt/Makefile5
-rw-r--r--package/libgpg-error/Makefile20
-rw-r--r--package/libgpg-error/patches/0001-core-Fix-regression-on-arm64-due-to-invalid-use-of-v.patch56
-rw-r--r--package/libgpg-error/patches/patch-configure31
-rw-r--r--package/libgpg-error/src/src/syscfg/lock-obj-pub.xtensa-unknown-linux-gnu.h24
-rw-r--r--package/libgtk3/Makefile12
-rw-r--r--package/libinih/Makefile36
-rw-r--r--package/libinput/Makefile39
-rw-r--r--package/libjansson/Makefile8
-rw-r--r--package/libksba/Makefile4
-rw-r--r--package/libmd/Makefile25
-rw-r--r--package/libmicrohttpd/Makefile6
-rw-r--r--package/libmodbus/Makefile27
-rw-r--r--package/libmpdclient/Makefile4
-rw-r--r--package/libmpdclient/patches/patch-src_socket_c10
-rw-r--r--package/libmpdclient/patches/patch-src_sync_c11
-rw-r--r--package/libmspack/Makefile26
-rw-r--r--package/libnettle/Makefile4
-rw-r--r--package/libnl/patches/patch-autogen_sh7
-rw-r--r--package/libnl/patches/patch-lib_utils_c6
-rw-r--r--package/libnl/patches/patch-src_lib_utils_c8
-rw-r--r--package/libowfat/Makefile15
-rw-r--r--package/libowfat/patches/patch-GNUmakefile28
-rw-r--r--package/libp11/Makefile10
-rw-r--r--package/libp11/patches/patch-ltmain_sh11
-rw-r--r--package/libpcap/Makefile4
-rw-r--r--package/libpcap/patches/patch-Makefile_in14
-rw-r--r--package/libpcap/patches/patch-gencode_c40
-rw-r--r--package/libpcap/patches/patch-pcap-config_in27
-rw-r--r--package/libpciaccess/Makefile4
-rw-r--r--package/libptytty/Makefile32
-rw-r--r--package/libptytty/patches/patch-CMakeLists_txt13
-rw-r--r--package/libressl/Makefile14
-rw-r--r--package/libressl/patches/patch-Makefile_in11
-rw-r--r--package/libressl/patches/patch-crypto_compat_arc4random_linux_h11
-rw-r--r--package/libseat/Makefile31
-rw-r--r--package/libshout/Makefile4
-rw-r--r--package/libsndfile/Makefile4
-rw-r--r--package/libssh/Makefile7
-rw-r--r--package/libssh/patches/patch-CompilerChecks_cmake32
-rw-r--r--package/libssh/patches/patch-cmake_Modules_DefineCompilerFlags_cmake14
-rw-r--r--package/libssh/patches/patch-include_libssh_libssh_h8
-rw-r--r--package/libssh2/Makefile4
-rw-r--r--package/libtasn1/Makefile4
-rw-r--r--package/libtiff/Makefile8
-rw-r--r--package/libtiff/patches/patch-libtiff-4_pc_in14
-rw-r--r--package/libtirpc/Makefile9
-rw-r--r--package/libtirpc/patches/patch-Makefile_am54
-rw-r--r--package/libtirpc/patches/patch-configure_ac23
-rw-r--r--package/libtirpc/patches/patch-src_clnt_bcast_c15
-rw-r--r--package/libtirpc/patches/patch-src_clnt_fd_locks_h11
-rw-r--r--package/libtirpc/patches/patch-src_svc_auth_c12
-rw-r--r--package/libtorrent/Makefile11
-rw-r--r--package/libtorrent/patches/patch-configure_ac18
-rw-r--r--package/libtorrent/patches/patch-scripts_ax_check_zlib_m411
-rw-r--r--package/libudfread/Makefile28
-rwxr-xr-xpackage/libunistring/Makefile4
-rw-r--r--package/liburcu/Makefile27
-rw-r--r--package/libuv/Makefile29
-rw-r--r--package/libuv/patches/patch-libuv_pc_in12
-rw-r--r--package/libvncserver/Makefile33
-rw-r--r--package/libvpx/Makefile16
-rw-r--r--package/libvpx/patches/patch-configure18
-rw-r--r--package/libwebp/Makefile14
-rw-r--r--package/libwebsockets/Makefile31
-rw-r--r--package/libx264/Makefile2
-rw-r--r--package/libx265/Makefile6
-rw-r--r--package/libxcb/Makefile10
-rw-r--r--package/libxcrypt/Makefile30
-rw-r--r--package/libxcvt/Makefile30
-rw-r--r--package/libxkbcommon/Makefile35
-rw-r--r--package/libxml2/Makefile34
-rw-r--r--package/libxml2/patches/patch-Makefile_am14
-rw-r--r--package/libxml2/patches/patch-configure_ac96
-rw-r--r--package/libxml2/patches/patch-python_Makefile_am12
-rw-r--r--package/libxshmfence/Makefile4
-rw-r--r--package/libxslt/Makefile12
-rw-r--r--package/lighttpd/Makefile18
-rw-r--r--package/linux-atm/Makefile10
-rw-r--r--package/linux-atm/patches/patch-ltmain_sh11
-rw-r--r--package/linux-atm/patches/patch-src_Makefile_am7
-rw-r--r--package/linux-atm/patches/patch-src_Makefile_in8
-rw-r--r--package/linux-atm/patches/patch-src_qgen_Makefile_in40
-rw-r--r--package/linux-atm/patches/patch-src_sigd_Makefile_in6
-rw-r--r--package/linux-atm/patches/patch-src_switch_Makefile_in6
-rw-r--r--package/linux-atm/patches/patch-src_switch_debug_Makefile_in6
-rw-r--r--package/linux-atm/patches/patch-src_switch_tcp_Makefile_in6
-rw-r--r--package/lirc/Makefile5
-rw-r--r--package/logitechmediaserver/Makefile8
-rw-r--r--package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm13
-rw-r--r--package/logrotate/Makefile11
-rw-r--r--package/logrotate/patches/patch-Makefile36
-rw-r--r--package/ltp/Makefile21
-rw-r--r--package/ltp/patches/patch-Makefile11
-rw-r--r--package/ltp/patches/patch-runtest_mm8
-rw-r--r--package/ltp/patches/patch-runtest_sched13
-rw-r--r--package/ltp/patches/patch-runtest_syscalls11
-rw-r--r--package/ltp/patches/patch-scenario_groups_default14
-rw-r--r--package/ltp/patches/patch-testcases_kernel_Makefile10
-rw-r--r--package/ltp/patches/patch-testcases_kernel_syscalls_fanotify_fanotify02_c10
-rw-r--r--package/ltp/patches/patch-testcases_kernel_syscalls_fanotify_fanotify04_c10
-rw-r--r--package/ltrace/Makefile9
-rw-r--r--package/lttng-tools/Makefile9
-rw-r--r--package/lttng-tools/patches/patch-configure_ac19
-rw-r--r--package/lttng-tools/patches/patch-src_bin_lttng-sessiond_thread_c11
-rw-r--r--package/lttng-tools/patches/patch-src_common_fd-handle_c20
-rw-r--r--package/lttng-tools/patches/patch-src_common_shm_c20
-rw-r--r--package/luajit/Makefile12
-rw-r--r--package/lvm/Makefile15
-rw-r--r--package/lvm/files/lvm.conf4
-rw-r--r--package/lvm/patches/0001-configure-support-builds-without-versioning.patch273
-rw-r--r--package/lvm/patches/patch-Makefile_in20
-rw-r--r--package/lvm/patches/patch-conf_Makefile_in23
-rw-r--r--package/lvm/patches/patch-configure_in45
-rw-r--r--package/lvm/patches/patch-lib_mm_memlock_c76
-rw-r--r--package/lvm/patches/patch-libdm_Makefile_in49
-rw-r--r--package/lvm/patches/patch-make_tmpl_in28
-rw-r--r--package/lvm/patches/patch-scripts_Makefile_in12
-rw-r--r--package/lvm/patches/patch-tools_Makefile_in48
-rw-r--r--package/lvm/patches/patch-tools_lvmcmdline_c34
-rw-r--r--package/lynx/Makefile52
-rw-r--r--package/lynx/patches/patch-WWW_Library_Implementation_HTTP_c11
-rw-r--r--package/lynx/patches/patch-WWW_Library_Implementation_HTUtils_h34
-rw-r--r--package/lynx/patches/patch-makefile_in11
-rw-r--r--package/lynx/patches/patch-src_chrtrans_makeuctb_c10
-rw-r--r--package/lz4/Makefile4
-rw-r--r--package/lz4/patches/patch-lib_Makefile19
-rw-r--r--package/lzip/Makefile5
-rw-r--r--package/lzip/patches/patch-configure14
-rw-r--r--package/lzma/Makefile1
-rw-r--r--package/lzop/Makefile4
-rw-r--r--package/lzop/patches/patch-src_miniacc_h26
-rw-r--r--package/m4/Makefile4
-rw-r--r--package/m4/patches/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch166
-rw-r--r--package/m4/patches/patch-lib_vasnprintf_c28
-rw-r--r--package/make/Makefile6
-rw-r--r--package/make/patches/patch-configure_ac14
-rw-r--r--package/mariadb/Makefile19
-rw-r--r--package/mbedtls/Makefile12
-rw-r--r--package/mbedtls/patches/patch-Makefile35
-rw-r--r--package/mc/Makefile12
-rw-r--r--package/mc/patches/patch-lib_tty_tty-ncurses_c42
-rw-r--r--package/mdadm/Makefile7
-rw-r--r--package/mdadm/patches/patch-Makefile32
-rw-r--r--package/mesa-demos/Makefile25
-rw-r--r--package/mesa/Makefile39
-rw-r--r--package/mesa/patches/patch-src_mapi_glapi_glapi_gentable_c14
-rw-r--r--package/meson/Makefile14
-rw-r--r--package/meson/src/cross-compilation.conf.in8
-rw-r--r--package/meson/src/host-compilation.conf.in12
-rw-r--r--package/mgetty/Makefile11
-rw-r--r--package/mgetty/patches/patch-Makefile77
-rw-r--r--package/mgetty/patches/patch-g3_Makefile12
-rw-r--r--package/mgetty/patches/patch-g3_g3cat_c38
-rw-r--r--package/mgetty/patches/patch-g3_pbm2g3_c38
-rw-r--r--package/mgetty/patches/patch-logfile_c17
-rw-r--r--package/midori/Makefile49
-rw-r--r--package/midori/patches/patch-CMakeLists_txt13
-rw-r--r--package/minijail/Makefile38
-rw-r--r--package/minijail/patches/patch-common_mk15
-rw-r--r--package/minijail/patches/patch-libminijail_c12
-rw-r--r--package/mksh/Makefile8
-rw-r--r--package/mongrel2/Makefile8
-rw-r--r--package/mongrel2/patches/patch-Makefile36
-rw-r--r--package/mongrel2/patches/patch-tools_m2sh_Makefile14
-rw-r--r--package/monit/Makefile8
-rw-r--r--package/monit/patches/patch-configure49
-rw-r--r--package/monit/patches/patch-libmonit_configure49
-rw-r--r--package/mopd/Makefile1
-rw-r--r--package/mopd/src/Makefile2
-rw-r--r--package/mosh/Makefile6
-rw-r--r--package/mosquitto/Makefile6
-rw-r--r--package/motion/Makefile18
-rw-r--r--package/motion/patches/patch-config_h33
-rw-r--r--package/motion/patches/patch-configure20
-rw-r--r--package/motion/patches/patch-motion_init-Debian11
-rw-r--r--package/motion/patches/patch-motion_init-FreeBSD_sh11
-rw-r--r--package/mpc/Makefile11
-rw-r--r--package/mpd/Makefile120
-rw-r--r--package/mpd/files/mpd.conf1
-rw-r--r--package/mpfr/patches/patch-src_mpfr-longlong_h11
-rw-r--r--package/mpg123/Makefile15
-rw-r--r--package/mpg123/patches/patch-configure_ac11
-rw-r--r--package/mplayer/Makefile15
-rw-r--r--package/mplayer/patches/patch-stream_asf_streaming_c27
-rw-r--r--package/mqttmpd/Makefile28
-rw-r--r--package/mqttmpd/patches/patch-Makefile32
-rw-r--r--package/mtdev/Makefile26
-rw-r--r--package/mtr/Makefile11
-rw-r--r--package/mtr/patches/501-dns.patch511
-rw-r--r--package/mtr/patches/patch-curses_c21
-rw-r--r--package/mtr/patches/patch-report_c30
-rw-r--r--package/musl/Makefile8
-rw-r--r--package/mutt/Makefile4
-rw-r--r--package/mympd/Makefile33
-rw-r--r--package/mympd/files/mympd.init31
-rw-r--r--package/mympd/files/mympd.postinst7
-rw-r--r--package/mympd/patches/patch-src_compile_time_h_in13
-rw-r--r--package/mympd/patches/patch-src_main_c21
-rw-r--r--package/nano/Makefile6
-rw-r--r--package/ncurses/Makefile15
-rw-r--r--package/ncurses/patches/patch-ncurses_base_MKlib_gen_sh11
-rw-r--r--package/neon/Makefile8
-rw-r--r--package/net-snmp/patches/patch-configure_d_config_os_libs212
-rw-r--r--package/netcat-openbsd/Makefile30
-rw-r--r--package/netcat-openbsd/src/Makefile20
-rw-r--r--package/netcat-openbsd/src/atomicio.c67
-rw-r--r--package/netcat-openbsd/src/atomicio.h39
-rw-r--r--package/netcat-openbsd/src/nc.1582
-rw-r--r--package/netcat-openbsd/src/netcat.c2305
-rw-r--r--package/netcat-openbsd/src/socks.c400
-rw-r--r--package/netperf/Makefile1
-rw-r--r--package/nfs-utils/Makefile12
-rw-r--r--package/nfs-utils/files/nfsd.exports2
-rw-r--r--package/nfs-utils/patches/patch-support_export_hostname_c20
-rw-r--r--package/nfs-utils/patches/patch-support_include_conffile_h11
-rw-r--r--package/nfs-utils/patches/patch-support_reexport_fsidd_c10
-rw-r--r--package/nfs-utils/patches/patch-support_reexport_reexport_c10
-rw-r--r--package/nfs-utils/patches/patch-tools_Makefile_am10
-rw-r--r--package/nfs-utils/patches/patch-tools_rpcgen_Makefile_am28
-rw-r--r--package/nfs-utils/patches/patch-tools_rpcgen_rpc_cout_c10
-rw-r--r--package/nfs-utils/patches/patch-tools_rpcgen_rpc_main_c38
-rw-r--r--package/nfs-utils/patches/patch-utils_mountd_v4root_c11
-rw-r--r--package/nfs-utils/patches/patch-utils_statd_rmtcall_c13
-rw-r--r--package/nginx/Makefile7
-rw-r--r--package/nginx/files/nginx.conf5
-rw-r--r--package/nginx/files/nginx.postinst3
-rw-r--r--package/nginx/patches/patch-auto_cc_conf28
-rw-r--r--package/nginx/patches/patch-auto_os_darwin10
-rw-r--r--package/nginx/patches/patch-auto_os_linux14
-rw-r--r--package/nginx/patches/patch-auto_unix58
-rw-r--r--package/nginx/patches/patch-src_os_unix_ngx_errno_c8
-rw-r--r--package/ninja/patches/patch-configure_py8
-rw-r--r--package/nmap/Makefile12
-rw-r--r--package/nodejs/Makefile30
-rw-r--r--package/nodejs/patches/patch-deps_v8_src_base_debug_stack_trace_posix_cc11
-rw-r--r--package/nodejs/patches/patch-deps_v8_src_log-utils_h11
-rw-r--r--package/nut/Makefile6
-rw-r--r--package/olsrd/Makefile13
-rw-r--r--package/olsrd/patches/patch-lib_pud_Makefile11
-rw-r--r--package/olsrd/patches/patch-lib_pud_src_gpsdclient_c98
-rw-r--r--package/olsrd/patches/patch-lib_pud_src_gpsdclient_h16
-rw-r--r--package/olsrd/patches/patch-src_cfgparser_local_mk17
-rw-r--r--package/open-iscsi/Makefile30
-rw-r--r--package/open-iscsi/patches/patch-usr_Makefile19
-rw-r--r--package/open-iscsi/patches/patch-usr_idbm_c10
-rw-r--r--package/open-iscsi/patches/patch-usr_iscsi_sysfs_c10
-rw-r--r--package/open-iscsi/patches/patch-usr_log_h17
-rw-r--r--package/open-iscsi/patches/patch-usr_mgmt_ipc_c35
-rw-r--r--package/openldap/Makefile6
-rw-r--r--package/openldap/patches/patch-libraries_libldap_tls_o_c67
-rw-r--r--package/openobex/Makefile4
-rw-r--r--package/openocd/Makefile4
-rw-r--r--package/opensbi/Makefile29
-rw-r--r--package/opensc/Makefile9
-rw-r--r--package/opensips/Makefile17
-rw-r--r--package/openssh/Makefile20
-rw-r--r--package/openssl-pkcs11/Makefile30
-rw-r--r--package/openssl-pkcs11/patches/patch-ltmain_sh11
-rw-r--r--package/openssl/Makefile117
-rw-r--r--package/openssl/patches/patch-Configurations_unix-Makefile_tmpl20
-rw-r--r--package/openswan/Makefile16
-rw-r--r--package/openswan/patches/patch-Makefile_inc27
-rw-r--r--package/openswan/patches/patch-include_arpa_nameser_h128
-rw-r--r--package/openswan/patches/patch-lib_libalgoparse_kernel_alg_c11
-rw-r--r--package/openswan/patches/patch-lib_libalgoparse_klips_interface_c11
-rw-r--r--package/openswan/patches/patch-lib_libipsecconf_keywords_c11
-rw-r--r--package/openswan/patches/patch-lib_libipsecconf_oeconns_c11
-rw-r--r--package/openswan/patches/patch-lib_liblwres_Makefile11
-rw-r--r--package/openswan/patches/patch-lib_libopenswan_kernel_alg_c11
-rw-r--r--package/openswan/patches/patch-lib_liboswlog_oswlog_c11
-rw-r--r--package/openvpn/Makefile26
-rw-r--r--package/openvpn/patches/patch-tests_t_client_sh63
-rw-r--r--package/opkg/Makefile7
-rw-r--r--package/oprofile/Makefile10
-rw-r--r--package/opus/Makefile4
-rw-r--r--package/owfs/Makefile6
-rw-r--r--package/p5-anyevent/Makefile4
-rw-r--r--package/p5-html-parser/Makefile6
-rw-r--r--package/p5-parse-yapp/Makefile42
-rw-r--r--package/p5-sub-name/Makefile6
-rw-r--r--package/p5-xml-parser-expat/Makefile4
-rw-r--r--package/p5-xml-parser/Makefile4
-rw-r--r--package/p5-yaml-xs/Makefile6
-rw-r--r--package/p8-platform/Makefile29
-rw-r--r--package/paho/Makefile32
-rw-r--r--package/pango/Makefile20
-rw-r--r--package/pango/patches/patch-Makefile_am10
-rw-r--r--package/parted/Makefile6
-rw-r--r--package/parted/patches/patch-lib_config_h_in6
-rw-r--r--package/parted/patches/patch-libparted_arch_linux_c41
-rw-r--r--package/parted/patches/patch-libparted_fs_xfs_platform_defs_h6
-rw-r--r--package/parted/patches/patch-libparted_labels_Makefile_am10
-rw-r--r--package/parted/patches/patch-libparted_labels_Makefile_in57
-rw-r--r--package/parted/patches/patch-libparted_libparted_c34
-rw-r--r--package/pciutils/Makefile3
-rw-r--r--package/pcre/Makefile4
-rw-r--r--package/pcre2/Makefile40
-rw-r--r--package/pdnsd/Makefile41
-rw-r--r--package/pdnsd/files/pdnsd.conf36
-rw-r--r--package/pdnsd/files/pdnsd.conffiles1
-rw-r--r--package/pdnsd/files/pdnsd.init34
-rw-r--r--package/pdnsd/files/pdnsd.postinst3
-rw-r--r--package/perf/Makefile6
-rw-r--r--package/perl/Makefile7
-rw-r--r--package/php/Makefile35
-rw-r--r--package/php/files/php-fpm.conf4
-rw-r--r--package/php/files/php.init4
-rw-r--r--package/picocom/Makefile4
-rw-r--r--package/picocom/patches/patch-Makefile18
-rw-r--r--package/picocom/patches/patch-linenoise-1_0_Makefile11
-rw-r--r--package/pinentry/Makefile26
-rw-r--r--package/pkgconf/Makefile15
-rw-r--r--package/platform/Makefile26
-rw-r--r--package/pmacct/Makefile11
-rw-r--r--package/pmacct/patches/patch-configure41
-rw-r--r--package/poco/Makefile6
-rw-r--r--package/popt/Makefile15
-rw-r--r--package/popt/patches/patch-Makefile_am11
-rw-r--r--package/popt/patches/patch-ltmain_sh11
-rw-r--r--package/ppp/patches/patch-pppd_plugins_rp-pppoe_plugin_c15
-rw-r--r--package/protobuf-c/Makefile33
-rw-r--r--package/protobuf/Makefile6
-rw-r--r--package/proxychains-ng/Makefile32
-rw-r--r--package/pulseaudio/Makefile49
-rw-r--r--package/pulseaudio/patches/patch-Makefile_am11
-rw-r--r--package/pulseaudio/patches/patch-configure_ac55
-rw-r--r--package/py-spidev/Makefile6
-rw-r--r--package/pycurl/Makefile14
-rw-r--r--package/pycurl/patches/patch-setup_py12
-rw-r--r--package/pyrex/Makefile38
-rw-r--r--package/python-mako/Makefile33
-rw-r--r--package/python-setuptools/Makefile33
-rw-r--r--package/python2/Makefile150
-rw-r--r--package/python2/files/patch-Lib_distutils_sysconfig_py10
-rw-r--r--package/python2/files/python-config.patch21
-rw-r--r--package/python2/patches/0001-2.7-bpo-33127-Compatibility-patch-for-LibreSSL-2.7.0.patch79
-rw-r--r--package/python2/patches/patch-Makefile_pre_in40
-rw-r--r--package/python2/patches/patch-configure_ac22
-rw-r--r--package/python2/patches/patch-setup_py115
-rw-r--r--package/python3-jinja2/Makefile34
-rw-r--r--package/python3/Makefile62
-rw-r--r--package/qingy/Makefile1
-rw-r--r--package/quagga/Makefile7
-rw-r--r--package/radvd/Makefile4
-rw-r--r--package/ralink-firmware/Makefile28
-rw-r--r--package/rdesktop/Makefile16
-rw-r--r--package/readline/Makefile7
-rw-r--r--package/rpcbind/Makefile11
-rw-r--r--package/rpcbind/files/rpcbind.init4
-rw-r--r--package/rpcbind/patches/patch-src_security_c50
-rw-r--r--package/rrdtool/Makefile10
-rw-r--r--package/rsync/Makefile20
-rw-r--r--package/rsyslog/Makefile12
-rw-r--r--package/rtorrent/Makefile2
-rw-r--r--package/ruby/Makefile17
-rw-r--r--package/ruby/patches/patch-configure16
-rw-r--r--package/rxvt-unicode/Makefile14
-rw-r--r--package/s6-linux-utils/Makefile34
-rw-r--r--package/s6-portable-utils/Makefile33
-rw-r--r--package/s6/Makefile39
-rw-r--r--package/samba/Makefile27
-rw-r--r--package/samba/files/cache.txt9
-rw-r--r--package/samba/files/samba.init5
-rw-r--r--package/samba/patches/patch-nsswitch_wins_c17
-rw-r--r--package/samba/patches/patch-source3_lib_util_c18
-rw-r--r--package/sane-backends/Makefile12
-rw-r--r--package/sane-backends/patches/patch-Makefile_in12
-rw-r--r--package/sane-backends/patches/patch-backend_canon630u-common_c12
-rw-r--r--package/sane-backends/patches/patch-backend_epson2-commands_c10
-rw-r--r--package/sane-backends/patches/patch-backend_genesys_c10
-rw-r--r--package/sane-backends/patches/patch-backend_genesys_h10
-rw-r--r--package/sane-backends/patches/patch-backend_genesys_low_c10
-rw-r--r--package/sane-backends/patches/patch-backend_hp3900_rts8822_c10
-rw-r--r--package/sane-backends/patches/patch-backend_hp5400_sanei_c10
-rw-r--r--package/sane-backends/patches/patch-backend_hp5590_low_c10
-rw-r--r--package/sane-backends/patches/patch-backend_kvs20xx_opt_c10
-rw-r--r--package/sane-backends/patches/patch-backend_microtek_c11
-rw-r--r--package/sane-backends/patches/patch-backend_pixma_bjnp_c22
-rw-r--r--package/sane-backends/patches/patch-backend_pixma_common_h13
-rw-r--r--package/sane-backends/patches/patch-backend_pixma_imageclass_c12
-rw-r--r--package/sane-backends/patches/patch-backend_rts88xx_lib_c10
-rw-r--r--package/sane-backends/patches/patch-backend_sm3600-scanutil_c11
-rw-r--r--package/sane-backends/patches/patch-backend_umax1220u-common_c12
-rw-r--r--package/sane-backends/patches/patch-backend_xerox_mfp_c10
-rw-r--r--package/sane-backends/patches/patch-configure90
-rw-r--r--package/sane-backends/patches/patch-configure_in11
-rw-r--r--package/sane-backends/patches/patch-include_sane_sanei_tcp_h10
-rw-r--r--package/sane-backends/patches/patch-include_sane_sanei_udp_h10
-rw-r--r--package/scons/Makefile14
-rw-r--r--package/screen/Makefile6
-rw-r--r--package/screen/patches/patch-configure29
-rw-r--r--package/sdl/Makefile65
-rw-r--r--package/sdl2-mixer/Makefile29
-rw-r--r--package/sdl2-net/Makefile29
-rw-r--r--package/sdl2/Makefile33
-rw-r--r--package/section.lst3
-rw-r--r--package/serdisplib/Makefile5
-rw-r--r--package/serdisplib/patches/patch-Makefile_in12
-rw-r--r--package/serdisplib/patches/patch-configure22
-rw-r--r--package/serdisplib/patches/patch-include_serdisplib_serdisp_control_h12
-rw-r--r--package/serdisplib/patches/patch-src_Makefile_in12
-rw-r--r--package/serdisplib/patches/patch-src_serdisp_connect_c21
-rw-r--r--package/serdisplib/patches/patch-src_serdisp_connect_usb_c39
-rw-r--r--package/serdisplib/patches/patch-src_serdisp_control_c48
-rw-r--r--package/serdisplib/patches/patch-src_serdisp_tools_c30
-rw-r--r--package/shadow/Makefile32
-rw-r--r--package/shairport-sync/Makefile41
-rw-r--r--package/shairport-sync/files/shairport-sync.init28
-rw-r--r--package/shairport-sync/files/shairport-sync.postinst7
-rwxr-xr-xpackage/simpleinit/files/rc3
-rw-r--r--package/siproxd/Makefile4
-rw-r--r--package/sipsak/Makefile12
-rw-r--r--package/sipsak/patches/patch-configure9009
-rw-r--r--package/sipsak/patches/patch-configure_ac10
-rw-r--r--package/sipsak/patches/patch-header_f_c11
-rw-r--r--package/sipsak/patches/patch-header_f_h9
-rw-r--r--package/smartmontools/Makefile31
-rw-r--r--package/sngrep/Makefile4
-rw-r--r--package/snort/Makefile9
-rw-r--r--package/snort/patches/patch-configure12
-rw-r--r--package/snort/patches/patch-configure_in279
-rw-r--r--package/snort/patches/patch-src_dynamic-preprocessors_appid_service_plugins_service_rpc_c11
-rw-r--r--package/snort/patches/patch-src_target-based_sf_attribute_table_parser_c95
-rw-r--r--package/snort/patches/patch-tools_u2boat_Makefile_in6
-rw-r--r--package/snort/patches/patch-tools_u2spewfoo_Makefile_in6
-rw-r--r--package/socat/Makefile4
-rw-r--r--package/sofia-sip/Makefile28
-rw-r--r--package/spandsp/Makefile30
-rw-r--r--package/spdlog/Makefile31
-rw-r--r--package/sqlalchemy/Makefile37
-rw-r--r--package/sqlite/Makefile15
-rw-r--r--package/squid/Makefile41
-rw-r--r--package/squid/patches/patch-configure_ac11
-rw-r--r--package/squid/patches/patch-include_SquidNew_h26
-rw-r--r--package/squid/patches/patch-libltdl_aclocal_m414
-rw-r--r--package/squid/patches/patch-src_Makefile_am11
-rw-r--r--package/squid/patches/patch-src_Makefile_in11
-rw-r--r--package/squirrel/Makefile34
-rw-r--r--package/strace/Makefile12
-rw-r--r--package/strace/patches/patch-ptrace_h16
-rw-r--r--package/strace/patches/riscv32.patch282
-rw-r--r--package/stress-ng/Makefile2
-rw-r--r--package/strongswan/Makefile4
-rw-r--r--package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_ed_private_key_c11
-rw-r--r--package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_ed_public_key_c11
-rw-r--r--package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_plugin_c24
-rw-r--r--package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_plugin_c.orig29
-rw-r--r--package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_rsa_private_key_c11
-rw-r--r--package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_rsa_public_key_c11
-rw-r--r--package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_x_diffie_hellman_c11
-rw-r--r--package/strongswan/patches/patch-src_starter_netkey_c18
-rw-r--r--package/subversion/Makefile9
-rw-r--r--package/sudo/Makefile4
-rw-r--r--package/sudo/patches/patch-Makefile_in11
-rw-r--r--package/sudo/patches/patch-lib_util_Makefile_in15
-rw-r--r--package/supl/Makefile35
-rw-r--r--package/supl/patches/patch-configure11
-rw-r--r--package/supl/patches/patch-src_Makefile16
-rw-r--r--package/supl/patches/patch-src_supl-client_c40
-rw-r--r--package/supl/patches/patch-src_supl_c46
-rw-r--r--package/supl/patches/patch-src_supl_h19
-rw-r--r--package/swig/Makefile4
-rw-r--r--package/sysdig/Makefile48
-rw-r--r--package/syslog-ng/Makefile13
-rw-r--r--package/syslog-ng/patches/patch-CMakeLists_txt10
-rw-r--r--package/sysstat/Makefile10
-rw-r--r--package/sysstat/patches/patch-Makefile79
-rw-r--r--package/systemd/Makefile138
-rw-r--r--package/systemd/files/systemd.postinst27
-rw-r--r--package/systemd/files/wired.network5
-rw-r--r--package/systemd/patches/patch-units_getty@_service_m411
-rw-r--r--package/systemd/patches/patch-units_serial-getty@_service_m411
-rw-r--r--package/sysvinit/Makefile29
-rw-r--r--package/sysvinit/patches/patch-src_Makefile13
-rw-r--r--package/taglib/Makefile6
-rw-r--r--package/taglib/patches/patch-taglib_pc_cmake19
-rw-r--r--package/talloc/Makefile7
-rw-r--r--package/tar/Makefile4
-rw-r--r--package/tcpdump/Makefile8
-rw-r--r--package/tcsh/Makefile4
-rw-r--r--package/tcsh/patches/patch-Makefile_in18
-rw-r--r--package/tcsh/patches/patch-sh_h23
-rw-r--r--package/tcsh/patches/patch-sh_proc_c11
-rw-r--r--package/tinc/Makefile4
-rw-r--r--package/tinyproxy/Makefile21
-rw-r--r--package/tinyproxy/files/tinyproxy.conf22
-rw-r--r--package/tinyproxy/files/tinyproxy.init4
-rw-r--r--package/tinyproxy/patches/patch-Makefile_am10
-rw-r--r--package/tinyproxy/patches/patch-configure_ac27
-rw-r--r--package/tinyxml2/Makefile33
-rw-r--r--package/tmux/Makefile7
-rw-r--r--package/tmux/patches/patch-configure_ac22
-rw-r--r--package/tntnet/Makefile68
-rw-r--r--package/tntnet/files/mime.conf22
-rw-r--r--package/tntnet/files/tntnet.conffiles3
-rw-r--r--package/tntnet/files/tntnet.init27
-rw-r--r--package/tntnet/files/tntnet.postinst6
-rw-r--r--package/tntnet/files/tntnet.properties31
-rw-r--r--package/tntnet/files/tntnet.xml49
-rw-r--r--package/tntnet/patches/patch-framework_common_gnutls_cpp10
-rw-r--r--package/toolbox/src/Makefile2
-rw-r--r--package/tor/Makefile5
-rw-r--r--package/tor/patches/patch-src_lib_crypt_ops_crypto_openssl_mgt_c14
-rw-r--r--package/tor/patches/patch-src_lib_crypt_ops_crypto_openssl_mgt_h14
-rw-r--r--package/toybox/Makefile6
-rw-r--r--package/toybox/patches/patch-lib_lib_h12
-rw-r--r--package/toybox/patches/patch-lib_portability_h22
-rw-r--r--package/toybox/patches/patch-scripts_make_sh8
-rw-r--r--package/trafshow/Makefile31
-rw-r--r--package/trafshow/patches/patch-Makefile_in54
-rw-r--r--package/trafshow/patches/patch-domain_resolver_c680
-rw-r--r--package/trafshow/patches/patch-session_c11
-rw-r--r--package/transmission/Makefile12
-rw-r--r--package/trinity/Makefile28
-rw-r--r--package/trinity/patches/patch-Makefile10
-rw-r--r--package/trinity/patches/patch-syscalls_prctl_c11
-rw-r--r--package/tvheadend/Makefile9
-rw-r--r--package/tvheadend/patches/patch-configure22
-rw-r--r--package/tvheadend/patches/patch-configure.orig11
-rw-r--r--package/twm/Makefile4
-rw-r--r--package/tzdata/Makefile4
-rw-r--r--package/tzdata/patches/patch-Makefile105
-rw-r--r--package/tzdata/patches/patch-localtime_c38
-rw-r--r--package/u-boot-h8300/Makefile3
-rw-r--r--package/u-boot-h8300/patches/dtc.patch11
-rw-r--r--package/u-boot-h8300/patches/patch-include_image_h13
-rw-r--r--package/u-boot-h8300/patches/patch-include_linux_compiler-gcc_h11
-rw-r--r--package/u-boot/Makefile75
-rw-r--r--package/u-boot/files/boot.script.bpizero4
-rw-r--r--package/u-boot/files/boot.script.imx66
-rw-r--r--package/u-boot/files/boot.script.phytec4
-rw-r--r--package/u-boot/files/boot.script.rockpi44
-rw-r--r--package/u-boot/files/fw_env.config2
-rwxr-xr-xpackage/u-boot/files/uboot_print_env5
-rwxr-xr-xpackage/u-boot/files/uboot_set_env5
-rw-r--r--package/u-boot/patches/patch-configs_bananapi_m2_p2_zero_defconfig18
-rw-r--r--package/u-boot/patches/patch-configs_rock-pi-4-rk3399_defconfig11
-rw-r--r--package/u-boot/patches/patch-configs_rock-pi-4c-rk3399_defconfig11
-rw-r--r--package/u-boot/patches/patch-tools_Makefile11
-rw-r--r--package/u-boot/src/bl31.elfbin0 -> 365344 bytes
-rw-r--r--package/uacme/Makefile30
-rw-r--r--package/uclibc-ng-test/Makefile17
-rw-r--r--package/uclibc-ng/Makefile14
-rw-r--r--package/udp-broadcast-relay/Makefile8
-rw-r--r--package/udp-broadcast-relay/patches/patch-main_c32
-rw-r--r--package/urlgrabber/Makefile38
-rw-r--r--package/urlgrabber/patches/patch-setup_py24
-rw-r--r--package/util-linux/Makefile13
-rw-r--r--package/v4l-utils/Makefile18
-rw-r--r--package/v4l-utils/patches/patch-utils_rds_rds-saa6588_c15
-rw-r--r--package/valgrind/Makefile17
-rw-r--r--package/vilistextum/Makefile2
-rw-r--r--package/vim/Makefile22
-rw-r--r--package/vlc/Makefile27
-rw-r--r--package/vlc/patches/patch-Makefile_am11
-rw-r--r--package/vlc/patches/patch-bin_Makefile_am11
-rw-r--r--package/vlc/patches/patch-configure_ac129
-rw-r--r--package/vlc/patches/patch-include_vlc_fixups_h15
-rw-r--r--package/vlc/patches/patch-modules_codec_avcodec_audio_c11
-rw-r--r--package/vlc/patches/patch-modules_codec_avcodec_encoder_c92
-rw-r--r--package/vlc/patches/patch-modules_codec_avcodec_vaapi_c11
-rw-r--r--package/vlc/patches/patch-modules_codec_avcodec_video_c51
-rw-r--r--package/vlc/patches/patch-modules_demux_avformat_demux_c46
-rw-r--r--package/vlc/patches/patch-src_posix_error_c13
-rw-r--r--package/vlc/patches/patch-src_posix_thread_c11
-rw-r--r--package/vnstat/Makefile10
-rw-r--r--package/vtun/Makefile4
-rw-r--r--package/vtun/patches/patch-cfg_file_y11
-rw-r--r--package/vtun/patches/patch-configure6
-rw-r--r--package/w3m/Makefile2
-rw-r--r--package/wayland-protocols/Makefile33
-rw-r--r--package/wayland-protocols/patches/patch-meson_build11
-rw-r--r--package/wayland-protocols/patches/patch-wayland-protocols_pc_in10
-rw-r--r--package/wayland/Makefile53
-rw-r--r--package/webkitgtk/Makefile18
-rw-r--r--package/webkitgtk/patches/patch-Source_PlatformGTK_cmake7
-rw-r--r--package/weechat/Makefile21
-rw-r--r--package/weston/Makefile60
-rw-r--r--package/wifidog/Makefile1
-rw-r--r--package/wolfssl/Makefile10
-rw-r--r--package/wpa_supplicant/Makefile10
-rw-r--r--package/wput/Makefile1
-rw-r--r--package/x11vnc/Makefile19
-rw-r--r--package/x11vnc/patches/patch-src_util_c12
-rw-r--r--package/x11vnc/patches/patch-src_util_h15
-rw-r--r--package/xawtv/Makefile8
-rw-r--r--package/xcb-proto/Makefile29
-rw-r--r--package/xcb-proto/patches/patch-xcb-proto_pc_in14
-rw-r--r--package/xdm/Makefile9
-rw-r--r--package/xenomai/Makefile49
-rw-r--r--package/xf86-input-evdev/Makefile4
-rw-r--r--package/xf86-input-mouse/Makefile4
-rw-r--r--package/xf86-video-modesetting/Makefile29
-rw-r--r--package/xfsprogs/Makefile10
-rw-r--r--package/xfsprogs/patches/patch-io_Makefile13
-rw-r--r--package/xfsprogs/patches/patch-libxfs_Makefile14
-rw-r--r--package/xfsprogs/patches/patch-quota_Makefile13
-rw-r--r--package/xfsprogs/patches/patch-spaceman_Makefile13
-rw-r--r--package/xkeyboard-config/Makefile14
-rw-r--r--package/xkeyboard-config/patches/patch-Makefile_am10
-rw-r--r--package/xkeyboard-config/patches/patch-configure_ac13
-rw-r--r--package/xkeyboard-config/patches/patch-rules_Makefile_am10
-rw-r--r--package/xkeyboard-config/patches/patch-rules_base_extras_xml_in855
-rw-r--r--package/xkeyboard-config/patches/patch-rules_base_xml_in7654
-rw-r--r--package/xkeyboard-config/patches/patch-rules_evdev_extras_xml_in855
-rw-r--r--package/xkeyboard-config/patches/patch-rules_evdev_xml_in7654
-rw-r--r--package/xorg-server/Makefile28
-rw-r--r--package/xorg-server/patches/patch-configure11
-rw-r--r--package/xorg-server/patches/patch-hw_xfree86_common_compiler_h69
-rw-r--r--package/xorg-server/patches/patch-include_misc_h13
-rw-r--r--package/xorgproto/Makefile30
-rw-r--r--package/xsm/Makefile2
-rw-r--r--package/xterm/Makefile10
-rw-r--r--package/xterm/patches/patch-xterm_io_h11
-rw-r--r--package/xwayland/Makefile39
-rw-r--r--package/xwayland/patches/patch-hw_xwayland_xwayland-glx_c12
-rw-r--r--package/xwayland/patches/patch-include_misc_h51
-rw-r--r--package/xz/Makefile42
-rw-r--r--package/xz/patches/patch-src_liblzma_liblzma_pc_in15
-rw-r--r--package/yajl/Makefile7
-rw-r--r--package/ympd/Makefile29
-rw-r--r--package/ympd/files/ympd.init29
-rw-r--r--package/ympd/files/ympd.postinst3
-rw-r--r--package/zile/Makefile9
-rw-r--r--package/zlib-ng/Makefile29
-rw-r--r--package/zlib/Makefile6
-rw-r--r--package/zsh/Makefile4
-rw-r--r--package/zstd/Makefile38
-rw-r--r--package/zstd/patches/patch-lib_Makefile11
-rw-r--r--package/zstd/patches/patch-programs_Makefile11
-rw-r--r--rules.mk5
-rwxr-xr-xscripts/config.guess1765
-rwxr-xr-xscripts/config.sub2736
-rwxr-xr-xscripts/create-menu4
-rwxr-xr-xscripts/create.sh10
-rwxr-xr-xscripts/flash-uboot.sh22
-rwxr-xr-xscripts/flash.sh26
-rwxr-xr-xscripts/gen_initramfs_list.sh328
-rwxr-xr-xscripts/install.sh88
-rwxr-xr-xscripts/kflash.py1566
-rwxr-xr-xscripts/nsim.sh11
-rw-r--r--scripts/patch_git.sh32
-rwxr-xr-xscripts/prereq.sh123
-rwxr-xr-xscripts/tarpkg4
-rw-r--r--scripts/update-patches-git27
-rw-r--r--target/Makefile44
-rw-r--r--target/aarch64/Makefile39
-rw-r--r--target/aarch64/kernel/raspberry-pi3p-6410
-rw-r--r--target/aarch64/kernel/raspberry-pi4-641874
-rw-r--r--target/aarch64/kernel/raspberry-pi5149
-rw-r--r--target/aarch64/kernel/rockpi4-plus863
-rw-r--r--target/aarch64/rockpi4-plus/extlinux.conf4
-rw-r--r--target/aarch64/rockpi4-plus/genimage-dual.cfg34
-rw-r--r--target/aarch64/rockpi4-plus/genimage.cfg45
-rw-r--r--target/aarch64/systems/raspberry-pi3p-6426
-rw-r--r--target/aarch64/systems/raspberry-pi4-6426
-rw-r--r--target/aarch64/systems/raspberry-pi526
-rw-r--r--target/aarch64/systems/rockpi4-plus27
-rw-r--r--target/alpha/Makefile12
-rw-r--r--target/alpha/kernel/qemu-alpha1
-rw-r--r--target/alpha/systems/dec-alphastation-m38
-rw-r--r--target/alpha/systems/dec-multia11
-rw-r--r--target/arc/Makefile34
-rw-r--r--target/arc/kernel/qemu-arc3
-rw-r--r--target/arc/kernel/synopsys-hsdk8
-rw-r--r--target/arc/kernel/synopsys-nsim7
-rw-r--r--target/arc/systems/qemu-arc8
-rw-r--r--target/arc/systems/synopsys-hsdk1
-rw-r--r--target/arc/uclibc-ng.config26
-rw-r--r--target/arch.lst2
-rw-r--r--target/arm/Makefile91
-rw-r--r--target/arm/banana-p2-zero/extlinux.conf4
-rw-r--r--target/arm/banana-p2-zero/genimage.cfg35
-rw-r--r--target/arm/kernel/banana-p2-zero323
-rw-r--r--target/arm/kernel/pcduino-3b8
-rw-r--r--target/arm/kernel/phytec-imx65550
-rw-r--r--target/arm/kernel/qemu-arm-realview-eb-mpcore1
-rw-r--r--target/arm/kernel/qemu-arm-spitz6
-rw-r--r--target/arm/kernel/qemu-arm-terrier6
-rw-r--r--target/arm/kernel/qemu-arm-versatilepb3
-rw-r--r--target/arm/kernel/qemu-arm-vexpress-a924
-rw-r--r--target/arm/kernel/raspberry-pi3p25
-rw-r--r--target/arm/kernel/raspberry-pi442
-rw-r--r--target/arm/kernel/solidrun-imx615
-rw-r--r--target/arm/kernel/st-stm32f4291
-rw-r--r--target/arm/kernel/st-stm32f746g28
-rw-r--r--target/arm/kernel/synology-ds414115
-rw-r--r--target/arm/st-stm32f746g/extlinux.conf4
-rw-r--r--target/arm/st-stm32f746g/genimage.cfg27
-rw-r--r--target/arm/systems/banana-p2-zero25
-rw-r--r--target/arm/systems/banana-pro2
-rw-r--r--target/arm/systems/beaglebone-black2
-rw-r--r--target/arm/systems/kinetis-k702
-rw-r--r--target/arm/systems/linksys-nslu22
-rw-r--r--target/arm/systems/orange-pi02
-rw-r--r--target/arm/systems/pcduino-3b20
-rw-r--r--target/arm/systems/phytec-imx627
-rw-r--r--target/arm/systems/phytec-wega2
-rw-r--r--target/arm/systems/qemu-arm-lm3s6965evb16
-rw-r--r--target/arm/systems/qemu-arm-realview-eb-mpcore2
-rw-r--r--target/arm/systems/qemu-arm-spitz2
-rw-r--r--target/arm/systems/qemu-arm-terrier2
-rw-r--r--target/arm/systems/qemu-arm-versatilepb2
-rw-r--r--target/arm/systems/qemu-arm-vexpress-a92
-rw-r--r--target/arm/systems/qemu-arm-xilinx-zynq3
-rw-r--r--target/arm/systems/raspberry-pi2
-rw-r--r--target/arm/systems/raspberry-pi02
-rw-r--r--target/arm/systems/raspberry-pi22
-rw-r--r--target/arm/systems/raspberry-pi32
-rw-r--r--target/arm/systems/raspberry-pi3p27
-rw-r--r--target/arm/systems/raspberry-pi427
-rw-r--r--target/arm/systems/sharp-zaurus2
-rw-r--r--target/arm/systems/solidrun-clearfog2
-rw-r--r--target/arm/systems/solidrun-imx62
-rw-r--r--target/arm/systems/st-stm32f407-discovery22
-rw-r--r--target/arm/systems/st-stm32f4292
-rw-r--r--target/arm/systems/st-stm32f429-discovery22
-rw-r--r--target/arm/systems/st-stm32f746g14
-rw-r--r--target/arm/systems/st-stm32f7692
-rw-r--r--target/arm/systems/synology-ds41420
-rw-r--r--target/arm/uclibc-ng-nommu.config234
-rw-r--r--target/arm/uclibc-ng.config16
-rw-r--r--target/avr32/Makefile5
-rw-r--r--target/avr32/patches/4.4.302/revert-futex.patch22
-rw-r--r--target/avr32/systems/atmel-ngw1001
-rw-r--r--target/bfin/Makefile2
-rw-r--r--target/bfin/uclibc-ng-nommu.config (renamed from target/bfin/uclibc-ng.config)0
-rw-r--r--target/c6x/uclibc-ng-nommu.config254
-rw-r--r--target/c6x/uclibc-ng.config243
-rw-r--r--target/config/Config.in6
-rw-r--r--target/config/Config.in.abi21
-rw-r--r--target/config/Config.in.addons15
-rw-r--r--target/config/Config.in.binfmt23
-rw-r--r--target/config/Config.in.binutils64
-rw-r--r--target/config/Config.in.compiler100
-rw-r--r--target/config/Config.in.cpu230
-rw-r--r--target/config/Config.in.elf2flt19
-rw-r--r--target/config/Config.in.endian3
-rw-r--r--target/config/Config.in.float5
-rw-r--r--target/config/Config.in.gdb26
-rw-r--r--target/config/Config.in.instructions2
-rw-r--r--target/config/Config.in.kernelfmt23
-rw-r--r--target/config/Config.in.libc69
-rw-r--r--target/config/Config.in.libs4
-rw-r--r--target/config/Config.in.mmu4
-rw-r--r--target/config/Config.in.os24
-rw-r--r--target/config/Config.in.qemuopts58
-rw-r--r--target/config/Config.in.rootfs50
-rw-r--r--target/config/Config.in.runtime113
-rw-r--r--target/config/Config.in.threads2
-rw-r--r--target/config/Config.in.toolchain3
-rw-r--r--target/config/Config.in.tools30
-rw-r--r--target/csky/Makefile11
-rw-r--r--target/csky/kernel/qemu-csky8
-rw-r--r--target/csky/kernel/qemu-csky-ck6108
-rw-r--r--target/csky/kernel/qemu-csky-ck8078
-rw-r--r--target/csky/kernel/qemu-csky-ck8108
-rw-r--r--target/csky/qemu.dtbbin1606 -> 0 bytes
-rw-r--r--target/csky/qemu.dts87
-rw-r--r--target/csky/systems/qemu-csky7
-rw-r--r--target/csky/systems/qemu-csky-ck6108
-rw-r--r--target/csky/systems/qemu-csky-ck8078
-rw-r--r--target/csky/systems/qemu-csky-ck8108
-rw-r--r--target/csky/uclibc-ng.config8
-rw-r--r--target/frosted/Config.in800
-rw-r--r--target/frosted/Config.in.apps154
-rw-r--r--target/frosted/Makefile28
-rw-r--r--target/frosted/arch.lst1
-rw-r--r--target/h8300/systems/hitachi-edosk26742
-rw-r--r--target/h8300/uclibc-ng-nommu.config (renamed from target/h8300/uclibc-ng.config)0
-rw-r--r--target/hppa/Makefile1
-rw-r--r--target/hppa/kernel/qemu-hppa1
-rw-r--r--target/hppa/systems/hp-c37008
-rw-r--r--target/kvx/Makefile61
-rw-r--r--target/kvx/kernel/generic-kvx3311
-rw-r--r--target/kvx/kernel/qemu-kvx3311
-rw-r--r--target/kvx/systems/qemu-kvx7
-rw-r--r--target/kvx/uclibc-ng.config248
-rw-r--r--target/linux/Config.in1
-rw-r--r--target/linux/Config.in.kernelcfg27
-rw-r--r--target/linux/Config.in.kernelversion187
-rw-r--r--target/linux/arch.lst2
-rw-r--r--target/linux/config/Config.in.arc5
-rw-r--r--target/linux/config/Config.in.audio34
-rw-r--r--target/linux/config/Config.in.block122
-rw-r--r--target/linux/config/Config.in.bluetooth12
-rw-r--r--target/linux/config/Config.in.bus7
-rw-r--r--target/linux/config/Config.in.compression24
-rw-r--r--target/linux/config/Config.in.cpu10
-rw-r--r--target/linux/config/Config.in.crypto57
-rw-r--r--target/linux/config/Config.in.dma6
-rw-r--r--target/linux/config/Config.in.ethernet89
-rw-r--r--target/linux/config/Config.in.fs25
-rw-r--r--target/linux/config/Config.in.fsopts3
-rw-r--r--target/linux/config/Config.in.gpio6
-rw-r--r--target/linux/config/Config.in.graphics64
-rw-r--r--target/linux/config/Config.in.i2c26
-rw-r--r--target/linux/config/Config.in.input16
-rw-r--r--target/linux/config/Config.in.kernel90
-rw-r--r--target/linux/config/Config.in.m68k14
-rw-r--r--target/linux/config/Config.in.misc21
-rw-r--r--target/linux/config/Config.in.part5
-rw-r--r--target/linux/config/Config.in.pm13
-rw-r--r--target/linux/config/Config.in.rtc21
-rw-r--r--target/linux/config/Config.in.serial97
-rw-r--r--target/linux/config/Config.in.spi6
-rw-r--r--target/linux/config/Config.in.thermal6
-rw-r--r--target/linux/config/Config.in.usb70
-rw-r--r--target/linux/config/Config.in.watchdog15
-rw-r--r--target/linux/config/Config.in.wireless29
-rw-r--r--target/linux/patches/3.10-nds32/futex.patch40
-rw-r--r--target/linux/patches/3.10.107/headers-install.patch11
-rw-r--r--target/linux/patches/3.10.107/startup.patch34
-rw-r--r--target/linux/patches/3.16.56/bsd-compatibility.patch2538
-rw-r--r--target/linux/patches/3.16.56/sgidefs.patch18
-rw-r--r--target/linux/patches/3.16.56/startup.patch37
-rw-r--r--target/linux/patches/3.16.85/bsd-compatibility.patch (renamed from target/linux/patches/3.10.107/bsd-compatibility.patch)0
-rw-r--r--target/linux/patches/3.16.85/cleankernel.patch (renamed from target/linux/patches/3.16.56/cleankernel.patch)0
-rw-r--r--target/linux/patches/3.16.85/cris-header.patch (renamed from target/linux/patches/3.16.56/cris-header.patch)0
-rw-r--r--target/linux/patches/3.16.85/cris-initramfs.patch (renamed from target/linux/patches/3.16.56/cris-initramfs.patch)0
-rw-r--r--target/linux/patches/3.16.85/defaults.patch (renamed from target/linux/patches/3.16.56/defaults.patch)0
-rw-r--r--target/linux/patches/3.16.85/export-symbol-for-exmap.patch (renamed from target/linux/patches/3.16.56/export-symbol-for-exmap.patch)0
-rw-r--r--target/linux/patches/3.16.85/fblogo.patch (renamed from target/linux/patches/3.16.56/fblogo.patch)0
-rw-r--r--target/linux/patches/3.16.85/gemalto.patch (renamed from target/linux/patches/3.16.56/gemalto.patch)0
-rw-r--r--target/linux/patches/3.16.85/initramfs-nosizelimit.patch (renamed from target/linux/patches/3.16.56/initramfs-nosizelimit.patch)0
-rw-r--r--target/linux/patches/3.16.85/lemote-rfkill.patch (renamed from target/linux/patches/3.16.56/lemote-rfkill.patch)0
-rw-r--r--target/linux/patches/3.16.85/microblaze-ethernet.patch (renamed from target/linux/patches/3.16.56/microblaze-ethernet.patch)0
-rw-r--r--target/linux/patches/3.16.85/mkpiggy.patch (renamed from target/linux/patches/3.16.56/mkpiggy.patch)0
-rw-r--r--target/linux/patches/3.16.85/mtd-rootfs.patch (renamed from target/linux/patches/3.16.56/mtd-rootfs.patch)0
-rw-r--r--target/linux/patches/3.16.85/nfsv3-tcp.patch (renamed from target/linux/patches/3.16.56/nfsv3-tcp.patch)0
-rw-r--r--target/linux/patches/3.16.85/non-static.patch (renamed from target/linux/patches/3.16.56/non-static.patch)0
-rw-r--r--target/linux/patches/3.16.85/ppc64-missing-zlib.patch (renamed from target/linux/patches/3.16.56/ppc64-missing-zlib.patch)0
-rw-r--r--target/linux/patches/3.16.85/relocs.patch (renamed from target/linux/patches/3.16.56/relocs.patch)0
-rw-r--r--target/linux/patches/3.16.85/sgidefs.patch (renamed from target/linux/patches/3.10.107/sgidefs.patch)0
-rw-r--r--target/linux/patches/3.16.85/sortext.patch (renamed from target/linux/patches/3.16.56/sortext.patch)0
-rw-r--r--target/linux/patches/3.16.85/startup.patch25
-rw-r--r--target/linux/patches/3.16.85/wlan-cf.patch (renamed from target/linux/patches/3.16.56/wlan-cf.patch)0
-rw-r--r--target/linux/patches/3.16.85/xargs.patch (renamed from target/linux/patches/3.16.56/xargs.patch)0
-rw-r--r--target/linux/patches/3.2.101/sparc-aout.patch24
-rw-r--r--target/linux/patches/4.1.51/cleankernel.patch11
-rw-r--r--target/linux/patches/4.1.51/cris-header.patch12
-rw-r--r--target/linux/patches/4.1.51/j2-core.patch2060
-rw-r--r--target/linux/patches/4.1.51/mtd-rootfs.patch26
-rw-r--r--target/linux/patches/4.1.51/patch-realtime30260
-rw-r--r--target/linux/patches/4.1.51/regmap-default-on.patch17
-rw-r--r--target/linux/patches/4.1.51/remove-warn.patch11
-rw-r--r--target/linux/patches/4.1.51/startup.patch37
-rw-r--r--target/linux/patches/4.1.51/use-gawk.patch24
-rw-r--r--target/linux/patches/4.14.334/alpha-remove-coff.patch (renamed from target/linux/patches/4.14.44/alpha-remove-coff.patch)0
-rw-r--r--target/linux/patches/4.14.334/arm-nommu.patch (renamed from target/linux/patches/4.14.44/arm-nommu.patch)0
-rw-r--r--target/linux/patches/4.14.334/arm-thumb2.patch (renamed from target/linux/patches/4.14.44/arm-thumb2.patch)0
-rw-r--r--target/linux/patches/4.14.334/h8300.patch (renamed from target/linux/patches/4.14.44/h8300.patch)0
-rw-r--r--target/linux/patches/4.14.334/initramfs-nosizelimit.patch (renamed from target/linux/patches/4.14.44/initramfs-nosizelimit.patch)0
-rw-r--r--target/linux/patches/4.14.334/microblaze-sigaltstack.patch (renamed from target/linux/patches/4.14.44/microblaze-sigaltstack.patch)0
-rw-r--r--target/linux/patches/4.14.334/or1k-more-ram.patch (renamed from target/linux/patches/4.14.44/or1k-more-ram.patch)0
-rw-r--r--target/linux/patches/4.14.334/startup.patch25
-rw-r--r--target/linux/patches/4.14.334/vdso2.patch (renamed from target/linux/patches/4.14.44/vdso2.patch)0
-rw-r--r--target/linux/patches/4.14.44/startup.patch34
-rw-r--r--target/linux/patches/4.16.17/startup.patch9
-rw-r--r--target/linux/patches/4.19.26/startup.patch34
-rw-r--r--target/linux/patches/4.19.310/arc.patch (renamed from target/linux/patches/4.19.26/arc.patch)0
-rw-r--r--target/linux/patches/4.19.310/arm-nommu.patch81
-rw-r--r--target/linux/patches/4.19.310/darwin-dtc.patch26
-rw-r--r--target/linux/patches/4.19.310/darwin-file2alias.patch14
-rw-r--r--target/linux/patches/4.19.310/fec-coldfire.patch118
-rw-r--r--target/linux/patches/4.19.310/or1k-more-ram.patch (renamed from target/linux/patches/4.9.103/or1k-more-ram.patch)0
-rw-r--r--target/linux/patches/4.19.310/relocs.patch2698
-rw-r--r--target/linux/patches/4.19.310/startup.patch25
-rw-r--r--target/linux/patches/4.19.310/vdso2.patch24
-rw-r--r--target/linux/patches/4.4.132/startup.patch34
-rw-r--r--target/linux/patches/4.4.132/use-libgcc-for-sh.patch29
-rw-r--r--target/linux/patches/4.4.302/coldfire-sighandler.patch (renamed from target/linux/patches/4.4.132/coldfire-sighandler.patch)0
-rw-r--r--target/linux/patches/4.4.302/crisv32.patch (renamed from target/linux/patches/4.4.132/crisv32.patch)0
-rw-r--r--target/linux/patches/4.4.302/crisv32_ethernet_driver.patch (renamed from target/linux/patches/4.4.132/crisv32_ethernet_driver.patch)0
-rw-r--r--target/linux/patches/4.4.302/h8300-net.patch81
-rw-r--r--target/linux/patches/4.4.302/h8300.patch (renamed from target/linux/patches/4.4.132/h8300.patch)0
-rw-r--r--target/linux/patches/4.4.302/initramfs-nosizelimit.patch (renamed from target/linux/patches/4.1.51/initramfs-nosizelimit.patch)0
-rw-r--r--target/linux/patches/4.4.302/ld-or1k.patch (renamed from target/linux/patches/4.4.132/ld-or1k.patch)0
-rw-r--r--target/linux/patches/4.4.302/macsonic.patch (renamed from target/linux/patches/4.4.132/macsonic.patch)0
-rw-r--r--target/linux/patches/4.4.302/mips-xz.patch (renamed from target/linux/patches/4.4.132/mips-xz.patch)0
-rw-r--r--target/linux/patches/4.4.302/patch-realtime (renamed from target/linux/patches/4.4.132/patch-realtime)0
-rw-r--r--target/linux/patches/4.4.302/startup.patch25
-rw-r--r--target/linux/patches/4.4.302/use-libgcc-for-sh.patch (renamed from target/linux/patches/4.1.51/use-libgcc-for-sh.patch)0
-rw-r--r--target/linux/patches/4.4.302/versatile-nommu.patch (renamed from target/linux/patches/4.4.132/versatile-nommu.patch)0
-rw-r--r--target/linux/patches/4.9.103/initramfs-nosizelimit.patch57
-rw-r--r--target/linux/patches/4.9.103/startup.patch34
-rw-r--r--target/linux/patches/4.9.287/alpha-remove-coff.patch (renamed from target/linux/patches/4.9.103/alpha-remove-coff.patch)0
-rw-r--r--target/linux/patches/4.9.287/arm-nommu.patch (renamed from target/linux/patches/4.9.103/arm-nommu.patch)0
-rw-r--r--target/linux/patches/4.9.287/arm-thumb2.patch (renamed from target/linux/patches/4.9.103/arm-thumb2.patch)0
-rw-r--r--target/linux/patches/4.9.287/crisv32_ethernet_driver.patch (renamed from target/linux/patches/4.9.103/crisv32_ethernet_driver.patch)0
-rw-r--r--target/linux/patches/4.9.287/h8300.patch (renamed from target/linux/patches/4.9.103/h8300.patch)0
-rw-r--r--target/linux/patches/4.9.287/hppa-remove-debug.patch (renamed from target/linux/patches/4.9.103/hppa-remove-debug.patch)0
-rw-r--r--target/linux/patches/4.9.287/initramfs-nosizelimit.patch (renamed from target/linux/patches/4.4.132/initramfs-nosizelimit.patch)0
-rw-r--r--target/linux/patches/4.9.287/ld-or1k.patch (renamed from target/linux/patches/4.9.103/ld-or1k.patch)0
-rw-r--r--target/linux/patches/4.9.287/macsonic.patch (renamed from target/linux/patches/4.9.103/macsonic.patch)0
-rw-r--r--target/linux/patches/4.9.287/microblaze-sigaltstack.patch (renamed from target/linux/patches/4.9.103/microblaze-sigaltstack.patch)0
-rw-r--r--target/linux/patches/4.9.287/or1k-more-ram.patch12
-rw-r--r--target/linux/patches/4.9.287/patch-realtime (renamed from target/linux/patches/4.9.103/patch-realtime)0
-rw-r--r--target/linux/patches/4.9.287/sh2.patch (renamed from target/linux/patches/4.9.103/sh2.patch)0
-rw-r--r--target/linux/patches/4.9.287/startup.patch25
-rw-r--r--target/linux/patches/4.9.287/stm32.patch12
-rw-r--r--target/linux/patches/4.9.287/vdso2.patch (renamed from target/linux/patches/4.9.103/vdso2.patch)0
-rw-r--r--target/linux/patches/5.10.213/arc.patch12
-rw-r--r--target/linux/patches/5.10.213/darwin-dtc.patch26
-rw-r--r--target/linux/patches/5.10.213/darwin-file2alias.patch14
-rw-r--r--target/linux/patches/5.10.213/dtc-noyaml.patch16
-rw-r--r--target/linux/patches/5.10.213/nds32-ag101p.patch64
-rw-r--r--target/linux/patches/5.10.213/or1k-more-ram.patch12
-rw-r--r--target/linux/patches/5.10.213/relocs.patch2698
-rw-r--r--target/linux/patches/5.10.213/startup.patch25
-rw-r--r--target/linux/patches/5.15.152/darwin-dtc.patch26
-rw-r--r--target/linux/patches/5.15.152/darwin-file2alias.patch14
-rw-r--r--target/linux/patches/5.15.152/dtc-noyaml.patch16
-rw-r--r--target/linux/patches/5.15.152/enable-ethernet-bpi-m2-plus.patch15
-rw-r--r--target/linux/patches/5.15.152/nds32-ag101p.patch64
-rw-r--r--target/linux/patches/5.15.152/or1k-more-ram.patch12
-rw-r--r--target/linux/patches/5.15.152/relocs.patch2698
-rw-r--r--target/linux/patches/5.15.152/rockchip-115200.patch12
-rw-r--r--target/linux/patches/5.15.152/startup.patch25
-rw-r--r--target/linux/patches/5.4.272/arc.patch12
-rw-r--r--target/linux/patches/5.4.272/arm-nommu.patch81
-rw-r--r--target/linux/patches/5.4.272/darwin-dtc.patch26
-rw-r--r--target/linux/patches/5.4.272/darwin-file2alias.patch14
-rw-r--r--target/linux/patches/5.4.272/dtc-noyaml.patch16
-rw-r--r--target/linux/patches/5.4.272/macsonic.patch11
-rw-r--r--target/linux/patches/5.4.272/or1k-more-ram.patch12
-rw-r--r--target/linux/patches/5.4.272/relocs.patch2698
-rw-r--r--target/linux/patches/5.4.272/sh4.patch11
-rw-r--r--target/linux/patches/5.4.272/startup.patch25
-rw-r--r--target/linux/patches/59aeb16c7f1254f1383476956dda0766d10c918a/disable-gcc-plugins.patch22
-rw-r--r--target/linux/patches/59aeb16c7f1254f1383476956dda0766d10c918a/localversion.patch18
-rw-r--r--target/linux/patches/6.1.82/armnommu-fix-thread-registers.patch57
-rw-r--r--target/linux/patches/6.1.82/armnommu-versatile.patch101
-rw-r--r--target/linux/patches/6.1.82/board-rockpi4-0003-arm64-dts-pcie.patch35
-rw-r--r--target/linux/patches/6.1.82/enable-ethernet-bpi-m2-plus.patch15
-rw-r--r--target/linux/patches/6.1.82/hppa-cross-compile.patch12
-rw-r--r--target/linux/patches/6.1.82/macsonic.patch11
-rw-r--r--target/linux/patches/6.1.82/nios2.patch12
-rw-r--r--target/linux/patches/6.1.82/or1k-more-ram.patch12
-rw-r--r--target/linux/patches/6.1.82/riscv32.patch49
-rw-r--r--target/linux/patches/6.1.82/riscv64-flat.patch19
-rw-r--r--target/linux/patches/6.1.82/rockchip-115200.patch12
-rw-r--r--target/linux/patches/6.1.82/rockchip-pcie-timeout.patch16
-rw-r--r--target/linux/patches/6.6.28/armnommu-fix-thread-registers.patch57
-rw-r--r--target/linux/patches/6.6.28/armnommu-versatile.patch101
-rw-r--r--target/linux/patches/6.6.28/hppa-cross-compile.patch12
-rw-r--r--target/linux/patches/6.6.28/macsonic.patch11
-rw-r--r--target/linux/patches/6.6.28/riscv-flat.patch19
-rw-r--r--target/linux/patches/6064a9bdf48cefbccc4f6472dd04251f0dec1931/startup.patch9
-rw-r--r--target/linux/patches/b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/delay.patch12
-rw-r--r--target/linux/patches/b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/uapi.patch156
-rw-r--r--target/linux/patches/b6bfece0d9ddf21e1526fead81340ef02f98f6ad/defconfig.patch18
-rw-r--r--target/linux/patches/d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/defconfig.patch54
-rw-r--r--target/linux/patches/eb06d31da3e2025a2e578d8de9843e24b68137a6/defconfig.patch36
-rw-r--r--target/linux/patches/stable-4.4-rockpi4/serial-baudrate.patch23
-rw-r--r--target/lm32/Makefile45
-rw-r--r--target/lm32/kernel/qemu-lm326
-rw-r--r--target/lm32/systems/qemu-lm322
-rw-r--r--target/lm32/uclibc-ng-nommu.config212
-rw-r--r--target/lm32/uclibc-ng.config221
-rw-r--r--target/loongarch/Makefile62
-rw-r--r--target/loongarch/QEMU_EFI.fdbin0 -> 3801088 bytes
-rw-r--r--target/loongarch/kernel/qemu-loongarch10
-rw-r--r--target/loongarch/systems/qemu-loongarch8
-rw-r--r--target/m68k/Makefile10
-rw-r--r--target/m68k/kernel/aranym-m68k1
-rw-r--r--target/m68k/kernel/qemu-m68k-mcf52083
-rw-r--r--target/m68k/kernel/qemu-m68k-q8001
-rw-r--r--target/m68k/kernel/qemu-m68k-virt3
-rw-r--r--target/m68k/qemu-m68k-mcf5208/patches/3.18.44/m68k-coldfire-fec.patch118
-rw-r--r--target/m68k/qemu-m68k-mcf5208/patches/4.1.35/m68k-coldfire-fec.patch118
-rw-r--r--target/m68k/systems/qemu-m68k-mcf52083
-rw-r--r--target/m68k/systems/qemu-m68k-virt10
-rw-r--r--target/m68k/uclibc-ng-nommu.config229
-rw-r--r--target/m68k/uclibc-ng.config31
-rw-r--r--target/microblaze/kernel/qemu-microblaze-ml6051
-rw-r--r--target/microblaze/kernel/qemu-microblaze-s3adsp18001
-rw-r--r--target/microblaze/uclibc-ng.config20
-rw-r--r--target/mips/Makefile4
-rw-r--r--target/mips/kernel/qemu-mips1
-rw-r--r--target/mips/systems/imgtec-ci201
-rw-r--r--target/mips/systems/sgi-indy12
-rw-r--r--target/mips/uclibc-ng.config24
-rw-r--r--target/mips64/kernel/qemu-mips641
-rw-r--r--target/mips64/systems/sgi-o214
-rw-r--r--target/nds32/uclibc-ng.config7
-rw-r--r--target/nios2/Makefile3
-rw-r--r--target/nios2/kernel/qemu-nios25
-rw-r--r--target/or1k/Makefile2
-rw-r--r--target/or1k/kernel/qemu-or1k1
-rw-r--r--target/or1k/uclibc-ng.config20
-rw-r--r--target/ppc/Makefile9
-rw-r--r--target/ppc/kernel/qemu-ppc-bamboo1
-rw-r--r--target/ppc/kernel/qemu-ppc-macppc1
-rw-r--r--target/ppc/kernel/qemu-ppc-mpc8544ds1
-rw-r--r--target/ppc/systems/apple-macmini13
-rw-r--r--target/ppc/uclibc-ng.config21
-rw-r--r--target/ppc64/systems/apple-g57
-rw-r--r--target/riscv32/Makefile52
-rw-r--r--target/riscv32/kernel/qemu-riscv329
-rw-r--r--target/riscv32/systems/qemu-riscv321
-rw-r--r--target/riscv32/uclibc-ng-nommu.config230
-rw-r--r--target/riscv32/uclibc-ng.config251
-rw-r--r--target/riscv64/Makefile78
-rw-r--r--target/riscv64/kernel/qemu-riscv647
-rw-r--r--target/riscv64/kernel/sipeed-maix-bit9
-rw-r--r--target/riscv64/kernel/starfive-visionfive2629
-rw-r--r--target/riscv64/starfive-visionfive2/extlinux.conf4
-rw-r--r--target/riscv64/starfive-visionfive2/genimage.cfg28
-rw-r--r--target/riscv64/systems/qemu-riscv641
-rw-r--r--target/riscv64/systems/sipeed-maix-bit7
-rw-r--r--target/riscv64/systems/starfive-visionfive217
-rw-r--r--target/riscv64/uclibc-ng-nommu.config226
-rw-r--r--target/riscv64/uclibc-ng.config251
-rw-r--r--target/rtems/Makefile33
-rw-r--r--target/rtems/arch.lst14
-rw-r--r--target/s390/Makefile13
-rw-r--r--target/s390/systems/qemu-s3901
-rw-r--r--target/sh/kernel/numato-mimasv21
-rw-r--r--target/sh/kernel/qemu-sh1
-rw-r--r--target/sh/uclibc-ng-nommu.config235
-rw-r--r--target/sh/uclibc-ng.config20
-rw-r--r--target/sparc/kernel/qemu-sparc1
-rw-r--r--target/sparc/systems/sun-ipx11
-rw-r--r--target/sparc/systems/sun-javastation10
-rw-r--r--target/sparc/systems/sun-voyager12
-rw-r--r--target/sparc/uclibc-ng.config20
-rw-r--r--target/sparc64/systems/tadpole-ultrabook8
-rw-r--r--target/waldux/Config.in28
-rw-r--r--target/waldux/Config.in.kernelcfg49
-rw-r--r--target/waldux/Config.in.kernelversion33
-rw-r--r--target/waldux/arch.lst30
-rw-r--r--target/waldux/config/Config.in.arm13
-rw-r--r--target/waldux/config/Config.in.audio283
-rw-r--r--target/waldux/config/Config.in.block717
-rw-r--r--target/waldux/config/Config.in.bluetooth186
-rw-r--r--target/waldux/config/Config.in.bus25
-rw-r--r--target/waldux/config/Config.in.compression137
-rw-r--r--target/waldux/config/Config.in.cpu100
-rw-r--r--target/waldux/config/Config.in.crypto553
-rw-r--r--target/waldux/config/Config.in.debug135
-rw-r--r--target/waldux/config/Config.in.dma81
-rw-r--r--target/waldux/config/Config.in.ethernet534
-rw-r--r--target/waldux/config/Config.in.flash191
-rw-r--r--target/waldux/config/Config.in.fs263
-rw-r--r--target/waldux/config/Config.in.fsnet163
-rw-r--r--target/waldux/config/Config.in.fsopts12
-rw-r--r--target/waldux/config/Config.in.gpio48
-rw-r--r--target/waldux/config/Config.in.graphics352
-rw-r--r--target/waldux/config/Config.in.i2c91
-rw-r--r--target/waldux/config/Config.in.input199
-rw-r--r--target/waldux/config/Config.in.ipsec61
-rw-r--r--target/waldux/config/Config.in.ipvs104
-rw-r--r--target/waldux/config/Config.in.kernel272
-rw-r--r--target/waldux/config/Config.in.kvm39
-rw-r--r--target/waldux/config/Config.in.leds83
-rw-r--r--target/waldux/config/Config.in.lib53
-rw-r--r--target/waldux/config/Config.in.mips33
-rw-r--r--target/waldux/config/Config.in.misc147
-rw-r--r--target/waldux/config/Config.in.multimedia114
-rw-r--r--target/waldux/config/Config.in.netdevice9
-rw-r--r--target/waldux/config/Config.in.netfilter131
-rw-r--r--target/waldux/config/Config.in.netfilter.core195
-rw-r--r--target/waldux/config/Config.in.netfilter.ebt218
-rw-r--r--target/waldux/config/Config.in.netfilter.ip4119
-rw-r--r--target/waldux/config/Config.in.netfilter.ip6132
-rw-r--r--target/waldux/config/Config.in.network267
-rw-r--r--target/waldux/config/Config.in.nfc37
-rw-r--r--target/waldux/config/Config.in.nls471
-rw-r--r--target/waldux/config/Config.in.part14
-rw-r--r--target/waldux/config/Config.in.pcmcia48
-rw-r--r--target/waldux/config/Config.in.pm82
-rw-r--r--target/waldux/config/Config.in.regmap19
-rw-r--r--target/waldux/config/Config.in.regulator37
-rw-r--r--target/waldux/config/Config.in.rtc67
-rw-r--r--target/waldux/config/Config.in.sched282
-rw-r--r--target/waldux/config/Config.in.serial334
-rw-r--r--target/waldux/config/Config.in.spi83
-rw-r--r--target/waldux/config/Config.in.thermal26
-rw-r--r--target/waldux/config/Config.in.usb378
-rw-r--r--target/waldux/config/Config.in.virtio44
-rw-r--r--target/waldux/config/Config.in.watchdog103
-rw-r--r--target/waldux/config/Config.in.wireless344
-rw-r--r--target/waldux/config/Config.in.xtensa22
-rw-r--r--target/waldux/kernel.config29
-rw-r--r--target/waldux/kernel.control5
-rw-r--r--target/x86/Makefile5
-rw-r--r--target/x86/kernel/ibm-x409
-rw-r--r--target/x86/kernel/qemu-x861
-rw-r--r--target/x86/kernel/vbox-x864
-rw-r--r--target/x86/systems/ibm-x4033
-rw-r--r--target/x86/systems/vbox-x869
-rw-r--r--target/x86/uclibc-ng.config20
-rw-r--r--target/x86_64/Makefile9
-rw-r--r--target/x86_64/asus-p5bvm/genimage-dual.cfg34
-rw-r--r--target/x86_64/asus-p5bvm/genimage.cfg29
-rw-r--r--target/x86_64/generic-x86_64/genimage-dual.cfg36
-rw-r--r--target/x86_64/generic-x86_64/genimage-efi-dual.cfg37
-rw-r--r--target/x86_64/generic-x86_64/genimage-efi.cfg30
-rw-r--r--target/x86_64/generic-x86_64/genimage.cfg30
-rw-r--r--target/x86_64/kernel/asus-p5bvm7
-rw-r--r--target/x86_64/kernel/lenovo-x2006
-rw-r--r--target/x86_64/qemu-x86_64/genimage-efi-dual.cfg11
-rw-r--r--target/x86_64/qemu-x86_64/genimage-efi.cfg9
-rw-r--r--target/x86_64/systems/asus-p5bvm25
-rw-r--r--target/x86_64/systems/lenovo-x20020
-rw-r--r--target/xtensa/kernel/qemu-xtensa2
-rw-r--r--target/xtensa/uclibc-ng-nommu.config229
-rw-r--r--target/xtensa/uclibc-ng.config23
-rw-r--r--target/zephyr/Config.in0
-rw-r--r--target/zephyr/Makefile33
-rw-r--r--target/zephyr/arch.lst4
-rw-r--r--tasks/002-mpd6
-rw-r--r--tasks/003-kodi29
-rw-r--r--tasks/004-development12
-rw-r--r--tasks/005-firefox31
-rw-r--r--tasks/008-nas29
-rw-r--r--toolchain/Makefile15
-rw-r--r--toolchain/binutils/Makefile8
-rw-r--r--toolchain/binutils/Makefile.inc68
-rw-r--r--toolchain/binutils/patches/2.20.1/newer-gcc.patch24
-rw-r--r--toolchain/binutils/patches/2.28/lm32.patch24
-rw-r--r--toolchain/binutils/patches/2.32/0003-bfd-xtensa-fix-shrink_dynamic_reloc_sections-for-exp.patch41
-rw-r--r--toolchain/binutils/patches/2.32/0004-gas-use-literals-const16-for-xtensa-loop-relaxation.patch294
-rw-r--r--toolchain/binutils/patches/2.32/0005-xtensa-gas-put-.literal_position-at-section-start.patch96
-rw-r--r--toolchain/binutils/patches/2.32/lm32.patch25
-rw-r--r--toolchain/binutils/patches/2.32/or1k.patch17
-rw-r--r--toolchain/binutils/patches/2.35/crisv32.patch12
-rw-r--r--toolchain/binutils/patches/2.37/0001-i386-Allow-GOT32-relocations-against-ABS-symbols.patch47
-rw-r--r--toolchain/binutils/patches/2.37/nds32-uclibc.patch15
-rw-r--r--toolchain/binutils/patches/2.38/0001-binutils-2.38-vs.-ppc32-linux-kernel.patch55
-rw-r--r--toolchain/binutils/patches/2.38/nds32-uclibc.patch15
-rw-r--r--toolchain/binutils/patches/2.41/lm32.patch24
-rw-r--r--toolchain/binutils/patches/2.42/j2.patch584
-rw-r--r--toolchain/binutils/patches/2.42/kvx.patch29
-rw-r--r--toolchain/binutils/patches/nds32-binutils-2.30-branch-open/fls-internal.patch29
-rw-r--r--toolchain/elf2flt/Makefile23
-rw-r--r--toolchain/elf2flt/Makefile.inc19
-rw-r--r--toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0001-riscv32.patch42
-rw-r--r--toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0002-lm32.patch167
-rw-r--r--toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0003-sh2.patch52
-rw-r--r--toolchain/elf2flt/patches/3051fec89bbd30de6f952dc3100712feff3ca076/0001-.rofixup-fix.patch33
-rw-r--r--toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0001-elf2flt-handle-binutils-2.34.patch391
-rw-r--r--toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0001-lm32.patch159
-rw-r--r--toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0002-sh2.patch (renamed from toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0002-sh2.patch)0
-rw-r--r--toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0003-h8300.patch20
-rw-r--r--toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0004-elf2flt.c-add-new-relocation-types-for-xtensa.patch188
-rw-r--r--toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0005-elf2flt-add-riscv-64-bits-support.patch137
-rw-r--r--toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0008-remove_BFD_VMA_FMT.patch125
-rw-r--r--toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch34
-rw-r--r--toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0001-lm32.patch (renamed from toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0001-lm32.patch)0
-rw-r--r--toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0002-sh2.patch43
-rw-r--r--toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0003-h8300.patch20
-rw-r--r--toolchain/elf2flt/patches/v2021.08/0001-elf2flt-handle-binutils-2.34.patch377
-rw-r--r--toolchain/elf2flt/patches/v2021.08/0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch81
-rw-r--r--toolchain/elf2flt/patches/v2021.08/0003-elf2flt-add-riscv-64-bits-support.patch103
-rw-r--r--toolchain/elf2flt/patches/v2021.08/0004-elf2flt-create-a-common-helper-function.patch76
-rw-r--r--toolchain/elf2flt/patches/v2021.08/0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch74
-rw-r--r--toolchain/elf2flt/patches/v2021.08/0006-elf2flt-xtensa-fix-text-relocations.patch25
-rw-r--r--toolchain/elf2flt/patches/v2021.08/0007-riscv32.patch56
-rw-r--r--toolchain/elf2flt/patches/v2021.08/0008-remove_BFD_VMA_FMT.patch97
-rw-r--r--toolchain/elf2flt/patches/v2021.08/0009-riscv.patch11
-rw-r--r--toolchain/elf2flt/patches/v2024.02/0001-sh2.patch43
-rw-r--r--toolchain/elf2flt/patches/v2024.02/0002-h8300.patch20
-rw-r--r--toolchain/elf2flt/patches/v2024.02/0003-riscv64-alignment.patch12
-rw-r--r--toolchain/gcc/Makefile61
-rw-r--r--toolchain/gcc/Makefile.inc86
-rw-r--r--toolchain/gcc/patches/10.5.0/add-crtreloc.frv12
-rw-r--r--toolchain/gcc/patches/10.5.0/c6x-disable-multilib.patch10
-rw-r--r--toolchain/gcc/patches/10.5.0/ia64-fix-libgcc.patch (renamed from toolchain/gcc/patches/7.3.0/ia64-fix-libgcc.patch)0
-rw-r--r--toolchain/gcc/patches/10.5.0/j2.patch346
-rw-r--r--toolchain/gcc/patches/10.5.0/nios2-softfp.patch (renamed from toolchain/gcc/patches/7.3.0/nios2-softfp.patch)0
-rw-r--r--toolchain/gcc/patches/10.5.0/revert-sparc.patch283
-rw-r--r--toolchain/gcc/patches/11.4.0/add-crtreloc.frv12
-rw-r--r--toolchain/gcc/patches/11.4.0/c6x-disable-multilib.patch10
-rw-r--r--toolchain/gcc/patches/11.4.0/csky.patch12
-rw-r--r--toolchain/gcc/patches/11.4.0/ia64-fix-libgcc.patch17
-rw-r--r--toolchain/gcc/patches/11.4.0/nios2-softfp.patch14
-rw-r--r--toolchain/gcc/patches/11.4.0/revert.sparc283
-rw-r--r--toolchain/gcc/patches/12.3.0/csky.patch12
-rw-r--r--toolchain/gcc/patches/12.3.0/nios2-softfp.patch14
-rw-r--r--toolchain/gcc/patches/13.2.0/csky.patch12
-rw-r--r--toolchain/gcc/patches/13.2.0/nios2-softfp.patch14
-rw-r--r--toolchain/gcc/patches/4.5.4/disable-docs.patch75
-rw-r--r--toolchain/gcc/patches/4.5.4/gcc.lm32123
-rw-r--r--toolchain/gcc/patches/4.6.4/disable-docs.patch78
-rw-r--r--toolchain/gcc/patches/7.5.0/add-crtreloc.frv (renamed from toolchain/gcc/patches/7.3.0/add-crtreloc.frv)0
-rw-r--r--toolchain/gcc/patches/7.5.0/c6x-disable-multilib.patch (renamed from toolchain/gcc/patches/7.3.0/c6x-disable-multilib.patch)0
-rw-r--r--toolchain/gcc/patches/7.5.0/disable-split-stack-nothread.patch (renamed from toolchain/gcc/patches/7.3.0/disable-split-stack-nothread.patch)0
-rw-r--r--toolchain/gcc/patches/7.5.0/ia64-fix-libgcc.patch17
-rw-r--r--toolchain/gcc/patches/7.5.0/j2.patch (renamed from toolchain/gcc/patches/7.3.0/j2.patch)0
-rw-r--r--toolchain/gcc/patches/7.5.0/m68k-coldfire-pr68467.patch (renamed from toolchain/gcc/patches/7.3.0/m68k-coldfire-pr68467.patch)0
-rw-r--r--toolchain/gcc/patches/7.5.0/m68k-musl.patch (renamed from toolchain/gcc/patches/7.3.0/m68k-musl.patch)0
-rw-r--r--toolchain/gcc/patches/7.5.0/microblaze.patch (renamed from toolchain/gcc/patches/7.3.0/microblaze.patch)0
-rw-r--r--toolchain/gcc/patches/7.5.0/musl-s390x.patch (renamed from toolchain/gcc/patches/7.3.0/musl-s390x.patch)0
-rw-r--r--toolchain/gcc/patches/7.5.0/nios2-softfp.patch14
-rw-r--r--toolchain/gcc/patches/8.5.0/add-crtreloc.frv12
-rw-r--r--toolchain/gcc/patches/8.5.0/c6x-disable-multilib.patch10
-rw-r--r--toolchain/gcc/patches/8.5.0/ia64-fix-libgcc.patch17
-rw-r--r--toolchain/gcc/patches/8.5.0/j2.patch343
-rw-r--r--toolchain/gcc/patches/8.5.0/m68k-musl.patch25
-rw-r--r--toolchain/gcc/patches/8.5.0/musl-s390x.patch13
-rw-r--r--toolchain/gcc/patches/8.5.0/nios2-softfp.patch14
-rw-r--r--toolchain/gcc/patches/9.4.0/or1k.patch61
-rw-r--r--toolchain/gcc/patches/gcc-6-branch-csky/gcc7.patch12
-rw-r--r--toolchain/gdb/Makefile1
-rw-r--r--toolchain/gdb/Makefile.inc33
-rw-r--r--toolchain/glibc/Makefile12
-rw-r--r--toolchain/glibc/Makefile.inc21
-rw-r--r--toolchain/glibc/patches/2.26/0001-Do-not-use-__builtin_types_compatible_p-in-C-mode-bu.patch50
-rw-r--r--toolchain/glibc/patches/2.26/0002-Do-not-use-generic-selection-in-C-mode.patch56
-rw-r--r--toolchain/glibc/patches/2.26/0003-Provide-a-C-version-of-issignaling-that-does-not-use.patch225
-rw-r--r--toolchain/glibc/patches/2.26/0004-Fix-the-C-version-of-issignaling-when-__NO_LONG_DOUB.patch47
-rw-r--r--toolchain/glibc/patches/2.26/0005-Provide-a-C-version-of-iszero-that-does-not-use-__MA.patch210
-rw-r--r--toolchain/glibc/patches/2.26/0006-Let-fpclassify-use-the-builtin-when-optimizing-for-s.patch63
-rw-r--r--toolchain/glibc/patches/2.38/0001-m68k-fix-__mpn_lshift-and-__mpn_rshift-for-non-68020.patch46
-rw-r--r--toolchain/glibc/patches/2.38/0004-ARC-Add-support-for-ARCv3-processors.patch4036
-rw-r--r--toolchain/glibc/patches/2.38/m68k-m68040.patch59
-rw-r--r--toolchain/gmp/Makefile.inc4
-rw-r--r--toolchain/linux-headers/Makefile5
-rw-r--r--toolchain/llvm/Makefile89
-rw-r--r--toolchain/llvm/Makefile.inc10
-rw-r--r--toolchain/mpfr/Makefile.inc4
-rw-r--r--toolchain/musl/Makefile.inc6
-rw-r--r--toolchain/newlib/Makefile9
-rw-r--r--toolchain/newlib/Makefile.inc21
-rw-r--r--toolchain/newlib/patches/2.5.0/fix-tooldir.patch12
-rw-r--r--toolchain/newlib/patches/frosted/fix-tooldir.patch12
-rw-r--r--toolchain/newlib/patches/git/fix-tooldir.patch12
-rw-r--r--toolchain/newlib/patches/newlib-xtensa/fix-tooldir.patch12
-rw-r--r--toolchain/newlib/patches/riscv-newlib-2.4.0/fix-tooldir.patch12
-rw-r--r--toolchain/uclibc-ng/Makefile32
-rw-r--r--toolchain/uclibc-ng/Makefile.inc12
-rw-r--r--toolchain/waldux-headers/Makefile43
1945 files changed, 70071 insertions, 98322 deletions
diff --git a/.travis.yml b/.travis.yml
index 6348172e9..ed4c21bf7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -25,9 +25,7 @@ matrix:
- env: ARCH=mips SYSTEM=mikrotik-rb532
- env: ARCH=mips64 SYSTEM=lemote-yeelong
- env: ARCH=sh SYSTEM=numato-mimasv2 ENDIAN=big
- - env: ARCH=x86 SYSTEM=ibm-x40
- env: ARCH=x86 SYSTEM=pcengines-alix
- env: ARCH=x86_64 SYSTEM=pcengines-apu
- - env: ARCH=x86_64 SYSTEM=asus-p5bvm
- env: ARCH=xtensa SYSTEM=xilinx-kintex7
script: travis_wait 120 ./scripts/travis.sh linux $ARCH $SYSTEM $ENDIAN
diff --git a/Config.in b/Config.in
index eaf7f5692..2dc00961c 100644
--- a/Config.in
+++ b/Config.in
@@ -31,7 +31,7 @@ source "target/config/Config.in.addons"
endmenu
menu "C Library configuration"
- visible if (ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX) && !ADK_TARGET_CHOOSE_ARCH
+ visible if ADK_TARGET_OS_LINUX || ADK_TARGET_OS_BAREMETAL && !ADK_TARGET_CHOOSE_ARCH
source "target/config/Config.in.libc"
source "target/config/Config.in.threads"
source "target/config/Config.in.binfmt"
@@ -44,17 +44,17 @@ source "target/config/Config.in.uclibc-ng"
endmenu
comment "After you saved your configuration once, you shouldn't change anything above"
- depends on (ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX) && !ADK_APPLIANCE_TOOLCHAIN && !ADK_TARGET_CHOOSE_ARCH
+ depends on ADK_TARGET_OS_LINUX && !ADK_APPLIANCE_TOOLCHAIN && !ADK_TARGET_CHOOSE_ARCH
source "target/config/Config.in.tasks"
menu "Firmware configuration"
- visible if (ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX) && !ADK_APPLIANCE_TOOLCHAIN && !ADK_TARGET_CHOOSE_ARCH
+ visible if ADK_TARGET_OS_LINUX && !ADK_APPLIANCE_TOOLCHAIN && !ADK_TARGET_CHOOSE_ARCH
source "target/config/Config.in.rootfs"
endmenu
menu "Package selection"
- visible if (ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX) && !ADK_APPLIANCE_TOOLCHAIN && !ADK_TARGET_CHOOSE_ARCH
+ visible if ADK_TARGET_OS_LINUX && !ADK_APPLIANCE_TOOLCHAIN && !ADK_TARGET_CHOOSE_ARCH
source "package/Config.in.auto.global"
source "package/Config.in"
menu "Package options"
@@ -63,7 +63,7 @@ endmenu
endmenu
menu "Runtime configuration"
- visible if (ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX) && !ADK_APPLIANCE_TOOLCHAIN && !ADK_TARGET_CHOOSE_ARCH
+ visible if ADK_TARGET_OS_LINUX && !ADK_APPLIANCE_TOOLCHAIN && !ADK_TARGET_CHOOSE_ARCH
source "target/config/Config.in.runtime"
endmenu
@@ -80,29 +80,6 @@ source "target/linux/Config.in"
endmenu
endmenu
-menu "Waldux Kernel configuration"
- visible if ADK_TARGET_OS_WALDUX && !ADK_TARGET_CHOOSE_ARCH
-source "target/waldux/Config.in.kernelversion"
-source "target/waldux/Config.in.kernelcfg"
-source "target/waldux/config/Config.in.compression"
-source "target/config/Config.in.cmdline"
-
-menu "Advanced Waldux Kernel configuration"
- visible if ADK_TARGET_OS_WALDUX && ADK_TARGET_KERNEL_CUSTOMISING && !ADK_APPLIANCE_TOOLCHAIN && !ADK_TARGET_CHOOSE_ARCH && !ADK_TARGET_WALDUX_KERNEL_USE_DEFCONFIG && !ADK_TARGET_WALDUX_KERNEL_USE_CUSTOMCONFIG
-source "target/waldux/Config.in"
-endmenu
-endmenu
-
-menu "Frosted kernel configuration"
- visible if ADK_TARGET_OS_FROSTED && !ADK_TARGET_CHOOSE_ARCH
-source "target/frosted/Config.in"
-endmenu
-
-menu "Frosted application configuration"
- visible if ADK_TARGET_OS_FROSTED && !ADK_TARGET_CHOOSE_ARCH
-source "target/frosted/Config.in.apps"
-endmenu
-
menu "Toolchain settings"
visible if !ADK_TARGET_CHOOSE_ARCH
diff --git a/LICENCE b/LICENCE
index 22271fc64..66c722728 100644
--- a/LICENCE
+++ b/LICENCE
@@ -1,4 +1,4 @@
-OpenADK is Copyright © 2008-2016 Waldemar Brodkorb <wbx@openadk.org>
+OpenADK is Copyright © 2008-2020 Waldemar Brodkorb <wbx@openadk.org>
All rights reserved.
This licence file covers all of the OpenADK meta distribution
diff --git a/Makefile b/Makefile
index c7954e646..04d2c8b88 100644
--- a/Makefile
+++ b/Makefile
@@ -4,5 +4,21 @@
# GNU make and BSD make compatible make file wrapper
MAKECMDGOALS+= ${.TARGETS}
-all v allmodconfig allnoconfig allyesconfig help pkg-help dev-help targethelp kernelconfig savekconfig image menuconfig defconfig oldconfig download clean cleankernel cleansystem cleandir distclean hostclean hostpackage fetch package extract patch dep menu newpackage host-update-patches update-patches info:
+PHONY_TARGETS= all v \
+ allmodconfig allnoconfig allyesconfig \
+ help pkg-help dev-help targethelp \
+ kernelconfig savekconfig \
+ image \
+ menuconfig defconfig oldconfig \
+ download \
+ clean cleankernel cleansystem cleandir distclean hostclean \
+ hostpackage fetch package extract patch \
+ dep menu \
+ newpackage \
+ host-update-patches update-patches \
+ info
+
+${PHONY_TARGETS}:
@./scripts/prereq.sh ${MAKECMDGOALS}
+
+.PHONY: ${PHONY_TARGETS}
diff --git a/adk/config/Makefile b/adk/config/Makefile
index 480c31447..a328fbf59 100644
--- a/adk/config/Makefile
+++ b/adk/config/Makefile
@@ -8,58 +8,11 @@ include ${ADK_TOPDIR}/rules.mk
endif
CP=cp -fpR
-HOST_CFLAGS+=-DKBUILD_NO_NLS -w
+HOST_CFLAGS+= -DKBUILD_NO_NLS -w ${CURSES_CFLAGS}
+LIBS= ${CURSES_LIBS}
all: ncurses conf mconf
-LIBS=
-ifeq (/usr/lib/libtinfo.so, $(wildcard /usr/lib/libtinfo.so))
-LIBS= -ltinfo
-endif
-
-ifeq (/usr/include/ncursesw/curses.h, $(wildcard /usr/include/ncursesw/curses.h))
-HOST_CFLAGS+= -I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"
-LIBS+= -lncursesw
-else
-ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h))
-HOST_CFLAGS+= -I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"
-LIBS+= -lncurses
-else
-ifeq (/usr/include/ncurses/curses.h, $(wildcard /usr/include/ncurses/curses.h))
-HOST_CFLAGS+= -I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"
-LIBS+= -lncurses
-else
-ifeq (/usr/include/ncurses.h, $(wildcard /usr/include/ncurses.h))
-HOST_CFLAGS+= -DCURSES_LOC="<ncurses.h>"
-LIBS+= -lncurses
-else
-ifeq (/usr/local/include/ncurses/ncurses.h, $(wildcard /usr/local/include/ncurses/ncurses.h))
-HOST_CFLAGS+= -I/usr/local/include/ncurses -DCURSES_LOC="<ncurses.h>"
-LIBS+= -lncurses
-else
-ifeq (/usr/local/include/ncurses/curses.h, $(wildcard /usr/local/include/ncurses/curses.h))
-HOST_CFLAGS+= -I/usr/local/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"
-LIBS+= -lncurses
-else
-ifeq (/usr/local/opt/ncurses/include/ncursesw/ncurses.h, $(wildcard /usr/local/opt/ncurses/include/ncursesw/ncurses.h))
-HOST_CFLAGS+= -I/usr/local/opt/ncurses/include -DCURSES_LOC="<ncursesw/ncurses.h>"
-LIBS+= -L/usr/local/opt/ncurses/lib -Wl,-rpath -Wl,/usr/local/opt/ncurses/lib -lncursesw
-else
-ifeq (/usr/pkg/include/ncurses.h, $(wildcard /usr/pkg/include/ncurses.h))
-HOST_CFLAGS+= -I/usr/pkg/include -DCURSES_LOC="<ncurses.h>"
-LIBS+= -L/usr/pkg/lib -Wl,-rpath -Wl,/usr/pkg/lib -lncurses
-else
-HOST_CFLAGS+= -DCURSES_LOC="<curses.h>"
-LIBS= -lcurses
-endif
-endif
-endif
-endif
-endif
-endif
-endif
-endif
-
CONF_SRC =conf.c
MCONF_SRC =mconf.c $(wildcard lxdialog/*.c)
SHARED_SRC=zconf.tab.c
diff --git a/adk/config/lxdialog/check-lxdialog.sh b/adk/config/lxdialog/check-lxdialog.sh
index fcef0f59d..5075ebf2d 100644
--- a/adk/config/lxdialog/check-lxdialog.sh
+++ b/adk/config/lxdialog/check-lxdialog.sh
@@ -4,7 +4,9 @@
# What library to link
ldflags()
{
- for ext in so a dylib ; do
+ pkg-config --libs ncursesw 2>/dev/null && exit
+ pkg-config --libs ncurses 2>/dev/null && exit
+ for ext in so a dll.a dylib ; do
for lib in ncursesw ncurses curses ; do
$cc -print-file-name=lib${lib}.${ext} | grep -q /
if [ $? -eq 0 ]; then
@@ -19,10 +21,17 @@ ldflags()
# Where is ncurses.h?
ccflags()
{
- if [ -f /usr/include/ncurses/ncurses.h ]; then
+ if pkg-config --cflags ncursesw 2>/dev/null; then
+ echo '-DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1'
+ elif pkg-config --cflags ncurses 2>/dev/null; then
+ echo '-DCURSES_LOC="<ncurses.h>"'
+ elif [ -f /usr/include/ncursesw/curses.h ]; then
+ echo '-I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"'
+ echo ' -DNCURSES_WIDECHAR=1'
+ elif [ -f /usr/include/ncurses/ncurses.h ]; then
echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"'
elif [ -f /usr/include/ncurses/curses.h ]; then
- echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"'
+ echo '-I/usr/include/ncurses -DCURSES_LOC="<curses.h>"'
elif [ -f /usr/include/ncurses.h ]; then
echo '-DCURSES_LOC="<ncurses.h>"'
else
@@ -36,7 +45,7 @@ trap "rm -f $tmp" 0 1 2 3 15
# Check if we can link to ncurses
check() {
- $cc -xc - -o $tmp 2>/dev/null <<'EOF'
+ $cc -x c - -o $tmp 2>/dev/null <<'EOF'
#include CURSES_LOC
main() {}
EOF
diff --git a/target/rtems/Config.in b/adk/extlinux/extlinux.conf
index e69de29bb..e69de29bb 100644
--- a/target/rtems/Config.in
+++ b/adk/extlinux/extlinux.conf
diff --git a/adk/tools/depmaker.c b/adk/tools/depmaker.c
index 7b04b3781..609d95a6a 100644
--- a/adk/tools/depmaker.c
+++ b/adk/tools/depmaker.c
@@ -133,7 +133,6 @@ static char *parse_line(char *package, char *pkgvar, char *string, int checksym,
}
strncat(depvar, dep, strlen(dep)-5);
if ((strncmp(depvar, "bc", 2) == 0) ||
- (strncmp(depvar, "bzip2", 5) == 0) ||
(strncmp(depvar, "file", 4) == 0) ||
(strncmp(depvar, "gawk", 4) == 0) ||
(strncmp(depvar, "grep", 4) == 0) ||
@@ -277,6 +276,8 @@ int main() {
tmp = parse_line(pkgdirp->d_name, dpkg, stringtmp, 1, 0, 2, &prefix);
} else if (strncmp("MUSL", dpkg, 4) == 0) {
tmp = parse_line(pkgdirp->d_name, dpkg, stringtmp, 1, 0, 2, &prefix);
+ } else if (strncmp("GLIBC", dpkg, 5) == 0) {
+ tmp = parse_line(pkgdirp->d_name, dpkg, stringtmp, 1, 0, 2, &prefix);
} else {
tmp = parse_line(pkgdirp->d_name, dpkg, stringtmp, 1, 0, 1, &prefix);
}
@@ -339,6 +340,7 @@ int main() {
}
}
} else if (strncmp(buf, "HOST_BUILDDEP", 13) == 0) {
+ //printf("DEBUG: HOST_BUILDDEP found for %s\n", pkgdirp->d_name);
asprintf(&string, "%s-host", pkgdirp->d_name);
// check retval; string for NULL
tmp = parse_line(string, NULL, buf, 2, 0, 0, &hprefix);
diff --git a/adk/tools/pkgmaker.c b/adk/tools/pkgmaker.c
index 62ddf548a..30a0d11ca 100644
--- a/adk/tools/pkgmaker.c
+++ b/adk/tools/pkgmaker.c
@@ -19,6 +19,7 @@
#include <ctype.h>
#include <dirent.h>
+#include <errno.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
@@ -290,22 +291,44 @@ static char *tolowerstr(char *string) {
static char *toupperstr(char *string) {
+ static char *sdup = NULL;
+ static int sduplen = 0;
int i;
- char *str;
-
+
+ if (!string) {
+ free(sdup);
+ sduplen = 0;
+ return NULL;
+ }
+
+ if (sduplen <= strlen(string)) {
+ sduplen = strlen(string) + 1;
+ sdup = realloc(sdup, sduplen);
+ if (!sdup)
+ fatal_error("%s: memory allocation failed: %s\n",
+ __func__, strerror(errno));
+ }
+
/* transform to uppercase variable name */
- str = strdup(string);
- for (i=0; i<(int)strlen(str); i++) {
- if (str[i] == '+')
- str[i] = 'X';
- if (str[i] == '-')
- str[i] = '_';
- /* remove negation here, useful for package host depends */
- if (str[i] == '!')
- str[i] = '_';
- str[i] = toupper(str[i]);
+ for (i = 0; i < strlen(string) + 1; i++) {
+ switch (string[i]) {
+ case '+':
+ sdup[i] = 'X';
+ break;
+ case '-':
+ sdup[i] = '_';
+ break;
+ case '!':
+ sdup[i] = '_';
+ break;
+ case '\0':
+ sdup[i] = '\0';
+ break;
+ default:
+ sdup[i] = toupper(string[i]);
+ }
}
- return(str);
+ return sdup;
}
@@ -463,10 +486,12 @@ int main() {
icfg = fopen(runtime, "a");
if (icfg == NULL)
continue;
- if (strncmp("busybox", sname, 7) == 0)
- fprintf(icfg, "config ADK_RUNTIME_START_%s_%s\n", toupperstr(sname), toupperstr(sname2));
- else
+ if (strncmp("busybox", sname, 7) == 0) {
+ fprintf(icfg, "config ADK_RUNTIME_START_%s", toupperstr(sname));
+ fprintf(icfg, "_%s\n", toupperstr(sname2));
+ } else {
fprintf(icfg, "config ADK_RUNTIME_START_%s\n", toupperstr(sname));
+ }
fprintf(icfg, "\tprompt \"Start %s on boot\"\n", sname2);
fprintf(icfg, "\ttristate\n");
if (strncmp("busybox", sname, 7) == 0)
@@ -813,7 +838,7 @@ int main() {
if (result == 1) {
val = strtok_r(hvalue, " ", &saveptr);
while (val != NULL) {
- fprintf(cfg, "\tselect ADK_KERNEL_%s\n", toupperstr(val));
+ fprintf(cfg, "\tselect ADK_LINUX_KERNEL_%s\n", toupperstr(val));
val = strtok_r(NULL, " ", &saveptr);
}
}
@@ -942,7 +967,6 @@ int main() {
token = strtok(pkg_kdepends, " ");
while (token != NULL) {
fprintf(cfg, "\tselect ADK_LINUX_KERNEL_%s m if ADK_TARGET_OS_LINUX\n", toupperstr(token));
- fprintf(cfg, "\tselect ADK_WALDUX_KERNEL_%s m if ADK_TARGET_OS_WALDUX\n", toupperstr(token));
token = strtok(NULL, " ");
}
free(pkg_kdepends);
@@ -1283,6 +1307,7 @@ int main() {
fatal_error("removing file failed.");
}
}
+ toupperstr(NULL);
closedir(pkglistdir);
return(0);
}
diff --git a/docs/adding-boards.txt b/docs/adding-boards.txt
index df102a5e6..5f50df702 100644
--- a/docs/adding-boards.txt
+++ b/docs/adding-boards.txt
@@ -44,7 +44,7 @@ in OpenADK, you need to port it first.
The hardware capabilities are optional. (f.e. ADK_TARGET_WITH_SD), but
required when you configure the driver configuration later.
-For architectures with a choice for endianess you should depends on either
+For architectures with a choice for endianess you should depend on either
ADK_TARGET_LITTLE_ENDIAN or ADK_TARGET_BIG_ENDIAN.
If the CPU type like in this example ADK_TARGET_CPU_ARM_CORTEX_A7 is not yet available
diff --git a/docs/adding-packages-auto.txt b/docs/adding-packages-auto.txt
index b84ce0a9f..4bfb2e439 100644
--- a/docs/adding-packages-auto.txt
+++ b/docs/adding-packages-auto.txt
@@ -49,7 +49,7 @@ package buildtime dependencies (+PKG_BUILDDEP+), the package runtime
dependencies (+PKG_DEPENDS+), the package homepage (+PKG_URL+) and finally the
internet locations at which the tarball can be downloaded from (+PKG_SITES+).
Normally ${PKG_NAME}-${PKG_VERSION}.tar.gz will be downloaded. You can
-overwrite the default via the +DISTFILES+ variable. You can add more then one
+override the default via the +DISTFILES+ variable. You can add more then one
archive name in +DISTFILES+ via space separated. If you have no source archive
at all, just use the boolean variable +NO_DISTFILES+ and set it to 1.
diff --git a/docs/adding-packages-manual.txt b/docs/adding-packages-manual.txt
index 862662987..768d3cdb6 100644
--- a/docs/adding-packages-manual.txt
+++ b/docs/adding-packages-manual.txt
@@ -60,7 +60,7 @@ package buildtime dependencies (+PKG_BUILDDEP+), the package runtime
dependencies (+PKG_DEPENDS+), the package homepage (+PKG_URL+) and finally the
internet locations at which the tarball can be downloaded from (+PKG_SITES+).
Normally ${PKG_NAME}-${PKG_VERSION}.tar.gz will be downloaded. You can
-overwrite the default via the +DISTFILES+ variable. You can add more then one
+override the default via the +DISTFILES+ variable. You can add more then one
archive name in +DISTFILES+ via space separated. If you have no source archive
at all, just use the boolean variable +NO_DISTFILES+ and set it to 1.
diff --git a/docs/common-usage.txt b/docs/common-usage.txt
index b2f29f6cc..25cc22454 100644
--- a/docs/common-usage.txt
+++ b/docs/common-usage.txt
@@ -9,7 +9,7 @@ Understanding when a full rebuild is necessary
OpenADK tries to detect what part of the system should be rebuilt when the
system configuration is changed through +make menuconfig+. In some cases it
-automatically rebuilt packages, but sometimes just a warning is printed to the
+automatically rebuilds packages, but sometimes just a warning is printed to the
terminal, that a rebuild is necessary to make the changes an effect. If strange
things are happening, the autodetection might have not worked correctly, then
you should consider to rebuild everything. If you are following development you
diff --git a/docs/customize-rootfs.txt b/docs/customize-rootfs.txt
index 54846dba5..3d4f0bf7b 100644
--- a/docs/customize-rootfs.txt
+++ b/docs/customize-rootfs.txt
@@ -25,5 +25,5 @@ loss of customized configuration data.
Another option is to configure a post-build action. This is available
in +Global settings+. It must point to a script relative to the root
of your openadk working copy. It will be invoked as part of the
-+*-imageinstall+ step with $ADK_TOPDIR as first argument. You can use
++-imageinstall+ step with $ADK_TOPDIR as first argument. You can use
it e.g. to modify the +root_*+ filesystem before bundling it.
diff --git a/docs/introduction.txt b/docs/introduction.txt
index 3c858e7b8..8bab44a38 100644
--- a/docs/introduction.txt
+++ b/docs/introduction.txt
@@ -24,14 +24,14 @@ without need for Linux as operating system.
Embedded systems often use processors that are not the regular x86
processors everyone is used to having in his PC.
-OpenADK supports 40 different architectures:
-AARCH64, Alpha, ARC, ARM, AVR32, Blackfin, C6X, CR16, CRIS, Epiphany, FR-V,
-H8/300, HPPA, IA64, LM32, M32R, M68K, METAG, Microblaze, MIPS, MIPS64, MN10300,
-Moxie, MSP430, NDS32, NIOS2, OR1K, PPC, PPC64, RiscV, RX, S/390, SH, SPARC, SPARC64, Tile,
+OpenADK supports 44 different architectures:
+AARCH64, Alpha, ARC, ARM, AVR32, Blackfin, C6X, CR16, CRIS, C-SKY, Epiphany, FR-V, FT32,
+H8/300, HPPA, IA64, LM32, M32C, M32R, M68K, METAG, Microblaze, MIPS, MIPS64, MN10300,
+Moxie, MSP430, NDS32, NIOS2, OR1K, PPC, PPC64, RISCV32, RISCV64, RX, S/390, SH, SPARC, SPARC64, Tile,
V850, X86, X86_64 and Xtensa.
OpenADK supports numerous processors and their variants; it also comes
-with sample configurations for many embedded systems, emulators and netbooks.
+with sample configurations for many embedded systems and emulators.
OpenADK is not a Linux distribution and there are no releases or binary
packages available. If you need something like that, better switch to
diff --git a/docs/package-reference.txt b/docs/package-reference.txt
index a57fbd033..29c4208d0 100644
--- a/docs/package-reference.txt
+++ b/docs/package-reference.txt
@@ -104,7 +104,7 @@ different steps of the configure, build and install process.
* +MAKE_ENV+ add additional variables to build step
-* +MAKE_FLAGS+ add additinal make flags to build step
+* +MAKE_FLAGS+ add additional make flags to build step
* +FAKE_FLAGS+ add additional make flags to fake install step
@@ -112,15 +112,15 @@ different steps of the configure, build and install process.
* +INSTALL_STYLE+ either manual or auto
-* +CONFIGURE_PROG+ overwrite default configure programm
+* +CONFIGURE_PROG+ override default configure program
-* +MAKE_FILE+ overwrite default Makefile
+* +MAKE_FILE+ override default Makefile
-* +ALL_TARGET+ overwrite default build target
+* +ALL_TARGET+ override default build target
-* +INSTALL_TARGET+ overwrite default install target
+* +INSTALL_TARGET+ override default install target
-The variables to add or overwrite preprocessor, compiler and linker flags:
+The variables to add or override preprocessor, compiler and linker flags:
* +TARGET_CPPFLAGS+ flags for the preprocessor
diff --git a/docs/running-openadk.txt b/docs/running-openadk.txt
index dcfd7451d..205b0d292 100644
--- a/docs/running-openadk.txt
+++ b/docs/running-openadk.txt
@@ -60,8 +60,6 @@ OpenADK is generated while producing the +base-files+ package. The main job
the default inittab does is to start the +/etc/init.d/rcS+ shell script, and
start one or more +getty+ programs (which provides a login prompt).
-Support for systemd and s6 is very experimental at the moment.
-
/dev management
~~~~~~~~~~~~~~~
@@ -73,19 +71,21 @@ hardware devices, even if they are properly recognized by the Linux
kernel.
In OpenADK you can choose between different types of device managements.
-OpenADK defaults to *dynamic device nodes using devtmpfs and mdev*. This method
-relies on the _devtmpfs_ virtual filesystem in the kernel, which is enabled by
-default for all OpenADK generated kernels, and adds the +mdev+ userspace
-utility on top of it. +mdev+ is a program part of Busybox that the kernel will
-call every time a device is added or removed. Thanks to the +/etc/mdev.conf+
-configuration file, +mdev+ can be configured to for example, set specific
-permissions or ownership on a device file, call a script or application
-whenever a device appears or disappear, etc. Basically, it allows _userspace_
-to react on device addition and removal events. +mdev+ is also important if you
-have devices that require a firmware, as it will be responsible for pushing the
-firmware contents to the kernel. +mdev+ is a lightweight implementation (with
-fewer features) of +udev+. For more details about +mdev+ and the syntax of its
-configuration file, see http://git.busybox.net/busybox/tree/docs/mdev.txt.
+OpenADK defaults to *static device nodes using devtmpfs*. That is the simplest
+way available. Most users might like to change it to *dynamic device nodes
+using devtmpfs and mdev*. This method relies on the _devtmpfs_ virtual
+filesystem in the kernel, which is enabled by default for all OpenADK generated
+kernels, and adds the +mdev+ userspace utility on top of it. +mdev+ is a
+program part of Busybox that the kernel will call every time a device is added
+or removed. Thanks to the +/etc/mdev.conf+ configuration file, +mdev+ can be
+configured to for example, set specific permissions or ownership on a device
+file, call a script or application whenever a device appears or disappear, etc.
+Basically, it allows _userspace_ to react on device addition and removal
+events. +mdev+ is also important if you have devices that require a firmware,
+as it will be responsible for pushing the firmware contents to the kernel.
++mdev+ is a lightweight implementation (with fewer features) of +udev+. For
+more details about +mdev+ and the syntax of its configuration file, see
+http://git.busybox.net/busybox/tree/docs/mdev.txt.
initscripts
~~~~~~~~~~~
@@ -179,8 +179,29 @@ In both cases the default user is +root+ and the default password is
either via +passwd+ on the system or you can preconfigure a password via +make
menuconfig+ under +Runtime configuration+.
-The default shell used in OpenADK is +mksh+ from http://www.mirbsd.org/mksh/.
+The default shell used in OpenADK is +mksh+ from http://www.mirbsd.org/mksh.htm.
You can change the shell in +make menuconfig+ under +Runtime configuration+. Be
aware of the fact that the bootup process might use some +mksh+ features to
speedup the system start. When you change the shell for system +/bin/sh+ the
slower startup is used as a fallback.
+
+analyzing logs
+~~~~~~~~~~~~~~
+
+Since embedded systems usually avoid writing continously on non-volatile storage
+(to avoid waer-out of the storage device) there are no logfiles under /var/log and
+/var itself is mapped onto a RAM based filesystem.
+
+Instead the syslog daemon logs into a ciruclar memory
+buffer. The size of the memory buffer is by default 32KiB and can be changed in the
+busybox configuration.
+
+To access the content of the buffer the +logread+ utility is used to dump the buffer.
+To get a continous output of the logbuffer -f has to be added as option.
+
+---------------------
+Usage: logread [-fF]
+
+-f Output data as log grows
+-F Same as -f, but dump buffer first
+---------------------
diff --git a/mk/build.mk b/mk/build.mk
index 5c0dbf761..1fe387598 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -24,7 +24,6 @@ DEFCONFIG= ADK_DEBUG=n \
ADK_USE_CCACHE=n \
ADK_RUNTIME_START_SERVICES=n \
ADK_PACKAGE_BASE_FILES=y \
- ADK_PACKAGE_DBUS_WITH_SYSTEMD=n \
ADK_PACKAGE_KEXECINIT=n \
ADK_PACKAGE_CLASSPATH=n \
ADK_PACKAGE_LM_SENSORS_DETECT=n \
@@ -160,6 +159,8 @@ endif
ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y)
include $(ADK_TOPDIR)/rules.mk
+include $(ADK_TOPDIR)/mk/kernel-vars.mk
+
all: world
${ADK_TOPDIR}/package/Depends.mk: ${ADK_TOPDIR}/.config $(wildcard ${ADK_TOPDIR}/package/*/Makefile) $(ADK_TOPDIR)/adk/tools/depmaker
@@ -179,18 +180,6 @@ else
ifeq ($(ADK_TARGET_OS_BAREMETAL),y)
$(MAKE) -f mk/build.mk package/hostcompile toolchain/final
endif
-ifeq ($(ADK_TARGET_OS_RTEMS),y)
- $(MAKE) -f mk/build.mk package/hostcompile toolchain/final target/compile target/install target/targethelp
-endif
-ifeq ($(ADK_TARGET_OS_FROSTED),y)
- $(MAKE) -f mk/build.mk package/hostcompile toolchain/final target/config-prepare target/compile target/install target/targethelp
-endif
-ifeq ($(ADK_TARGET_OS_ZEPHYR),y)
- $(MAKE) -f mk/build.mk package/hostcompile toolchain/final target/compile target/install target/targethelp
-endif
-ifeq ($(ADK_TARGET_OS_WALDUX),y)
- $(MAKE) -f mk/build.mk package/hostcompile toolchain/final target/config-prepare target/compile package_clean package/compile root_clean package/install target/install package_index
-endif
ifeq ($(ADK_TARGET_OS_LINUX),y)
$(MAKE) -f mk/build.mk package/hostcompile toolchain/final target/config-prepare target/compile package_clean package/compile root_clean package/install target/install package_index
endif
@@ -244,9 +233,8 @@ targethelp:
$(MAKE) -C target targethelp
kernelconfig:
- ${KERNEL_MAKE_ENV} ${MAKE} -C "${LINUX_DIR}" \
+ ${MAKE} -C "${LINUX_DIR}" \
ARCH=$(ADK_TARGET_KARCH) \
- ${KERNEL_MAKE_OPTS} \
menuconfig
ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_CUSTOMCONFIG),y)
@@ -471,6 +459,19 @@ defconfig: .menu $(CONFIG)/conf
@if [ ! -z "$(ADK_TARGET_MMU)" ];then \
printf "# ADK_TARGET_WITH_MMU is not set\n" \
>> $(ADK_TOPDIR)/.defconfig; \
+ printf "BUSYBOX_NOMMU=y\n" \
+ >> $(ADK_TOPDIR)/.defconfig; \
+ fi
+ @if [ ! -z "$(ADK_TARGET_THREADS)" ];then \
+ if [ "$(ADK_TARGET_THREADS)" = "nptl" ];then \
+ printf "ADK_TARGET_WITH_NPTL=y\n" >> $(ADK_TOPDIR)/.defconfig; \
+ fi; \
+ if [ "$(ADK_TARGET_THREADS)" = "lt" ];then \
+ printf "ADK_TARGET_WITH_LT=y\n" >> $(ADK_TOPDIR)/.defconfig; \
+ fi; \
+ if [ "$(ADK_TARGET_THREADS)" = "none" ];then \
+ printf "ADK_TARGET_WITHOUT_THREADS=y\n" >> $(ADK_TOPDIR)/.defconfig; \
+ fi; \
fi
@if [ ! -z "$(ADK_TARGET_LIBC)" ];then \
libc=$$(echo "$(ADK_TARGET_LIBC)"|sed -e "s/-/_/"); \
@@ -564,11 +565,17 @@ allconfig:
|sed -e "s#^config \(.*\)#\1=y#" \
>> $(ADK_TOPDIR)/all.config; \
fi
+ @if [ ! -z "$(ADK_TARGET_OS)" ];then \
+ grep "^config" target/config/Config.in.os \
+ |grep -i "_$(ADK_TARGET_OS)$$" \
+ |sed -e "s#^config \(.*\)#\1=y#" \
+ >> $(ADK_TOPDIR)/all.config; \
+ fi
@if [ ! -z "$(ADK_TARGET_ARCH)" ];then \
grep "^config" target/config/Config.in.arch.choice \
- |grep -i "$(ADK_TARGET_ARCH)"\$$ \
+ |grep -i "$(ADK_TARGET_OS)_ARCH_$(ADK_TARGET_ARCH)$$" \
|sed -e "s#^config \(.*\)#\1=y#" \
- >> $(ADK_TOPDIR)/all.config; \
+ >> $(ADK_TOPDIR)/all.config; \
fi
@for symbol in ${DEFCONFIG}; do \
echo $$symbol >> $(ADK_TOPDIR)/all.config; \
diff --git a/mk/fetch.mk b/mk/fetch.mk
index 0d3e90a34..bc6838256 100644
--- a/mk/fetch.mk
+++ b/mk/fetch.mk
@@ -92,7 +92,7 @@ $(1):
(cd $${PKG_NAME}-$${PKG_VERSION}; git submodule update --init --recursive) $(DL_TRACE); \
fi; \
rm -rf $${PKG_NAME}-$${PKG_VERSION}/.git; \
- PATH='$(HOST_PATH)' tar cJf $${PKG_NAME}-$${PKG_VERSION}.tar.xz $${PKG_NAME}-$${PKG_VERSION}; \
+ PATH='$(HOST_PATH)' tar czf $${PKG_NAME}-$${PKG_VERSION}.tar.gz $${PKG_NAME}-$${PKG_VERSION}; \
touch $$$${filename}.nohash; \
rm -rf $${PKG_NAME}-$${PKG_VERSION}; \
: check the size here; \
diff --git a/mk/host-bottom.mk b/mk/host-bottom.mk
index 29cfc57ea..f7e635f15 100644
--- a/mk/host-bottom.mk
+++ b/mk/host-bottom.mk
@@ -56,9 +56,17 @@ endif
ifeq (${HOST_CONFIG_STYLE},cmake)
@$(CMD_TRACE) "configuring cmake.. "
cd ${WRKBUILD}; PATH='${HOST_PATH}' \
- cmake -Wno-dev -DCMAKE_INSTALL_PREFIX:PATH=/usr \
+ cmake -Wno-dev -DCMAKE_INSTALL_PREFIX:PATH=$(STAGING_HOST_DIR)/usr \
${HOST_CMAKE_FLAGS} ${WRKSRC} $(MAKE_TRACE)
endif
+ifeq (${HOST_CONFIG_STYLE},meson)
+ @$(CMD_TRACE) "configuring meson.. "
+ cd ${WRKSRC}; PATH='${HOST_PATH}' \
+ meson --prefix $(STAGING_HOST_DIR)/usr \
+ --pkg-config-path $(STAGING_HOST_DIR)/usr/lib/pkgconfig \
+ --buildtype release $(HOST_MESON_FLAGS) \
+ $(WRKSRC) $(WRKBUILD) $(MAKE_TRACE)
+endif
ifeq (${HOST_CONFIG_STYLE},perl)
@$(CMD_TRACE) "configuring perl module.. "
cd ${WRKBUILD}; \
@@ -77,7 +85,9 @@ endif
host-build:
${_HOST_BUILD_COOKIE}: ${_HOST_CONFIGURE_COOKIE}
@$(CMD_TRACE) "compiling.. "
-ifneq (${HOST_STYLE},manual)
+ifneq ($(filter meson,${HOST_STYLE}),)
+ PATH='$(HOST_PATH)' ninja -v -C $(WRKBUILD) $(MAKE_TRACE)
+else ifneq (${HOST_STYLE},manual)
cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -j${ADK_MAKE_JOBS} -f ${MAKE_FILE} \
${HOST_MAKE_FLAGS} ${HOST_ALL_TARGET} $(MAKE_TRACE)
endif
diff --git a/mk/host.mk b/mk/host.mk
index 9ff38ac6f..33c437836 100644
--- a/mk/host.mk
+++ b/mk/host.mk
@@ -15,7 +15,7 @@ HOST_AUTOTOOL_ENV+= PATH='${HOST_PATH}' \
HOST_CONFIGURE_ENV?= PATH='${HOST_PATH}' \
${COMMON_ENV} \
${HOST_ENV} \
- PKG_CONFIG_LIBDIR='${STAGING_HOST_DIR}/usr/lib/pkgconfig:${STAGING_HOST_DIR}/usr/share/pkgconfig' \
+ PKG_CONFIG_LIBDIR='${STAGING_HOST_DIR}/usr/lib/pkgconfig:${STAGING_HOST_DIR}/usr/share/pkgconfig:${STAGING_HOST_DIR}/usr/lib/${GNU_HOST_NAME}/pkgconfig' \
PKG_CONFIG_SYSROOT_DIR='${STAGING_HOST_DIR}' \
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
diff --git a/mk/image.mk b/mk/image.mk
index 3021fac91..364b80db3 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -7,7 +7,7 @@ else
FAKEROOT:=
endif
-ifeq ($(ADK_TARGET_OS_LINUX)$(ADK_TARGET_OS_WALDUX),y)
+ifeq ($(ADK_TARGET_OS_LINUX),y)
# relative paths, like 'mksh' or '../usr/bin/foosh'
ifeq (${ADK_BINSH_ASH},y)
BINSH:=ash
@@ -78,12 +78,6 @@ image-prepare-post:
-rm -f ${TARGET_DIR}/bin/sh
ln -sf ${BINSH} ${TARGET_DIR}/bin/sh
-ifeq ($(ADK_RUNTIME_INIT_SYSTEMD),y)
- ln -fs ../usr/${ADK_TARGET_LIBC_PATH}/systemd/systemd $(TARGET_DIR)/sbin/init
- ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/halt
- ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/poweroff
- ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/reboot
-endif
test -z $(GIT) || \
$(GIT) log -1|head -1|sed -e 's#commit ##' \
> $(TARGET_DIR)/etc/.adkgithash
@@ -104,7 +98,7 @@ ifneq ($(ADK_TARGET_ARCH_AARCH64)$(ADK_TARGET_ARCH_X86_64)$(ADK_TARGET_ARCH_PPC6
test ! -d ${TARGET_DIR}/usr/lib || rm -rf ${TARGET_DIR}/usr/lib/
(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
endif
-ifeq ($(ADK_TARGET_ARCH_S390),y)
+ifeq ($(ADK_TARGET_ARCH_LOONGARCH)$(ADK_TARGET_ARCH_S390),y)
(cd ${TARGET_DIR}/; ln -sf lib lib64)
endif
@@ -128,8 +122,8 @@ INITRAMFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}
ROOTFSSQUASHFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.img
ROOTFSJFFS2= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-jffs2.img
ROOTFSUBIFS= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-ubifs.img
-ROOTFSTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.xz
-ROOTFSUSERTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.xz
+ROOTFSTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}+kernel.tar.gz
+ROOTFSUSERTARBALL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}-${ADK_TARGET_FS}.tar.gz
ROOTFSISO= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_LIBC}.iso
kernel-package: kernel-strip
@@ -151,18 +145,17 @@ endif
${FW_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR}/.adk kernel-package
cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | sort | \
- $(CPIO) --quiet -o -Hustar --owner=0:0 | $(XZ) -c >$@
+ $(CPIO) --quiet -o -Hustar --owner=0:0 | gzip -c >$@
ifeq ($(ADK_TARGET_QEMU),y)
@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
endif
${FW_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR}/.adk
cd ${TARGET_DIR}; find . | grep -v ./boot/ | sed -n '/^\.\//s///p' | sort | \
- $(CPIO) --quiet -o -Hustar --owner=0:0 | $(XZ) -c >$@
+ $(CPIO) --quiet -o -Hustar --owner=0:0 | gzip -c >$@
${STAGING_TARGET_DIR}/${INITRAMFS}_list: ${TARGET_DIR}/.adk
-ifeq ($(ADK_TARGET_LINUX_KERNEL_NEW),y)
- PATH='${HOST_PATH}' $(BASH) ${LINUX_DIR}/usr/gen_initramfs_list.sh -u squash -g squash \
+ PATH='${HOST_PATH}' $(BASH) ${SCRIPT_DIR}/gen_initramfs_list.sh -u squash -g squash \
${TARGET_DIR}/ >$@
( \
echo "nod /dev/console 0644 0 0 c 5 1"; \
@@ -170,10 +163,15 @@ ifeq ($(ADK_TARGET_LINUX_KERNEL_NEW),y)
for i in 0 1 2 3 4; do \
echo "nod /dev/tty$$i 0644 0 0 c 4 $$$$i"; \
done; \
- echo "nod /dev/null 0644 0 0 c 1 3"; \
+ echo "nod /dev/null 0666 0 0 c 1 3"; \
+ echo "nod /dev/zero 0666 0 0 c 1 5"; \
+ echo "nod /dev/kmsg 0644 0 0 c 1 11"; \
echo "nod /dev/ram 0655 0 0 b 1 1"; \
+ echo "nod /dev/mem 0665 0 0 c 1 1"; \
+ echo "nod /dev/random 0666 0 0 c 1 8"; \
+ echo "nod /dev/urandom 0666 0 0 c 1 9"; \
echo "nod /dev/ttyS0 0660 0 0 c 4 64"; \
- echo "nod /dev/ttyS1 0660 0 0 c 4 65"; \
+ echo "nod /dev/ttysclp0 0660 0 0 c 4 65"; \
echo "nod /dev/ttyB0 0660 0 0 c 11 0"; \
echo "nod /dev/ttyB1 0660 0 0 c 11 1"; \
echo "nod /dev/ttyAMA0 0660 0 0 c 204 64"; \
@@ -185,33 +183,9 @@ ifeq ($(ADK_TARGET_LINUX_KERNEL_NEW),y)
echo "nod /dev/ttyBF1 0660 0 0 c 204 65"; \
echo "nod /dev/ttyUL0 0660 0 0 c 204 187"; \
echo "nod /dev/ttyUL1 0660 0 0 c 204 188"; \
+ echo "nod /dev/ttyGF0 0660 0 0 c 254 0"; \
+ echo "slink /init /sbin/init 755 0 0"; \
) >>$@
-else
- PATH='${HOST_PATH}' $(BASH) ${LINUX_DIR}/scripts/gen_initramfs_list.sh -u squash -g squash \
- ${TARGET_DIR}/ >$@
- ( \
- echo "nod /dev/console 0644 0 0 c 5 1"; \
- echo "nod /dev/tty 0644 0 0 c 5 0"; \
- for i in 0 1 2 3 4; do \
- echo "nod /dev/tty$$i 0644 0 0 c 4 $$$$i"; \
- done; \
- echo "nod /dev/null 0644 0 0 c 1 3"; \
- echo "nod /dev/ram 0655 0 0 b 1 1"; \
- echo "nod /dev/ttyS0 0660 0 0 c 4 64"; \
- echo "nod /dev/ttyS1 0660 0 0 c 4 65"; \
- echo "nod /dev/ttyB0 0660 0 0 c 11 0"; \
- echo "nod /dev/ttyB1 0660 0 0 c 11 1"; \
- echo "nod /dev/ttyAMA0 0660 0 0 c 204 64"; \
- echo "nod /dev/ttyAMA1 0660 0 0 c 204 65"; \
- echo "nod /dev/ttySC0 0660 0 0 c 204 8"; \
- echo "nod /dev/ttySC1 0660 0 0 c 204 9"; \
- echo "nod /dev/ttySC2 0660 0 0 c 204 10"; \
- echo "nod /dev/ttyBF0 0660 0 0 c 204 64"; \
- echo "nod /dev/ttyBF1 0660 0 0 c 204 65"; \
- echo "nod /dev/ttyUL0 0660 0 0 c 204 187"; \
- echo "nod /dev/ttyUL1 0660 0 0 c 204 188"; \
- ) >>$@
-endif
${FW_DIR}/${INITRAMFS}: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
${LINUX_DIR}/usr/gen_init_cpio ${STAGING_TARGET_DIR}/${INITRAMFS}_list | \
@@ -219,7 +193,7 @@ ${FW_DIR}/${INITRAMFS}: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
${BUILD_DIR}/root.squashfs: ${TARGET_DIR}/.adk
${STAGING_HOST_DIR}/usr/bin/mksquashfs ${TARGET_DIR} \
- ${BUILD_DIR}/root.squashfs -comp xz \
+ ${BUILD_DIR}/root.squashfs -comp gzip \
-nopad -noappend -root-owned $(MAKE_TRACE)
${FW_DIR}/${ROOTFSJFFS2}: ${TARGET_DIR}
@@ -261,79 +235,84 @@ createinitramfs: ${STAGING_TARGET_DIR}/${INITRAMFS}_list
echo 'CONFIG_INITRAMFS_ROOT_UID=0'; \
echo 'CONFIG_INITRAMFS_ROOT_GID=0'; \
echo 'CONFIG_INITRAMFS_IS_LARGE=n'; \
+ echo 'CONFIG_INITRAMFS_PRESERVE_MTIME=n'; \
) >> ${LINUX_DIR}/.config
-ifeq ($(ADK_LINUX_KERNEL_COMP_XZ)$(ADK_WALDUX_KERNEL_COMP_XZ),y)
+ifeq ($(ADK_LINUX_KERNEL_COMP_ZSTD),y)
+ echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config
- echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config
- echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config
- echo "CONFIG_RD_XZ=y" >> ${LINUX_DIR}/.config
- echo "CONFIG_INITRAMFS_COMPRESSION_XZ=y" >> ${LINUX_DIR}/.config
- echo "CONFIG_XZ_DEC_X86=n" >> ${LINUX_DIR}/.config
- echo "CONFIG_XZ_DEC_POWERPC=n" >> ${LINUX_DIR}/.config
- echo "CONFIG_XZ_DEC_IA64=n" >> ${LINUX_DIR}/.config
- echo "CONFIG_XZ_DEC_ARM=n" >> ${LINUX_DIR}/.config
- echo "CONFIG_XZ_DEC_ARMTHUMB=n" >> ${LINUX_DIR}/.config
- echo "CONFIG_XZ_DEC_SPARC=n" >> ${LINUX_DIR}/.config
- echo "CONFIG_XZ_DEC_TEST=n" >> ${LINUX_DIR}/.config
+ echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config
+ echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config
+ echo "CONFIG_RD_ZSTD=y" >> ${LINUX_DIR}/.config
+ echo "CONFIG_INITRAMFS_COMPRESSION_ZSTD=y" >> ${LINUX_DIR}/.config
endif
-ifeq ($(ADK_LINUX_KERNEL_COMP_LZ4)$(ADK_WALDUX_KERNEL_COMP_LZ4),y)
+ifeq ($(ADK_LINUX_KERNEL_COMP_LZ4),y)
echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZ4=y" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config
+ echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config
echo "CONFIG_INITRAMFS_COMPRESSION_LZ4=y" >> ${LINUX_DIR}/.config
endif
-ifeq ($(ADK_LINUX_KERNEL_COMP_LZMA)$(ADK_WALDUX_KERNEL_COMP_LZMA),y)
+ifeq ($(ADK_LINUX_KERNEL_COMP_LZMA),y)
echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZMA=y" >> ${LINUX_DIR}/.config
+ echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config
echo "CONFIG_INITRAMFS_COMPRESSION_LZMA=y" >> ${LINUX_DIR}/.config
endif
-ifeq ($(ADK_LINUX_KERNEL_COMP_LZO)$(ADK_WALDUX_KERNEL_COMP_LZO),y)
+ifeq ($(ADK_LINUX_KERNEL_COMP_LZO),y)
echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZO=y" >> ${LINUX_DIR}/.config
+ echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config
echo "CONFIG_INITRAMFS_COMPRESSION_LZO=y" >> ${LINUX_DIR}/.config
endif
-ifeq ($(ADK_LINUX_KERNEL_COMP_GZIP)$(ADK_WALDUX_KERNEL_COMP_GZIP),y)
+ifeq ($(ADK_LINUX_KERNEL_COMP_GZIP),y)
echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_GZIP=y" >> ${LINUX_DIR}/.config
+ echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config
echo "CONFIG_INITRAMFS_COMPRESSION_GZIP=y" >> ${LINUX_DIR}/.config
endif
-ifeq ($(ADK_LINUX_KERNEL_COMP_BZIP2)$(ADK_WALDUX_KERNEL_COMP_BZIP2),y)
+ifeq ($(ADK_LINUX_KERNEL_COMP_BZIP2),y)
echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_BZIP2=y" >> ${LINUX_DIR}/.config
+ echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config
echo "CONFIG_INITRAMFS_COMPRESSION_BZIP2=y" >> ${LINUX_DIR}/.config
endif
-ifeq ($(ADK_LINUX_KERNEL_COMPRESS_NONE)$(ADK_WALDUX_KERNEL_COMPRESS_NONE),y)
+ifeq ($(ADK_LINUX_KERNEL_COMPRESS_NONE),y)
echo "CONFIG_RD_XZ=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_BZIP2=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZO=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZMA=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_LZ4=n" >> ${LINUX_DIR}/.config
echo "CONFIG_RD_GZIP=n" >> ${LINUX_DIR}/.config
+ echo "CONFIG_RD_ZSTD=n" >> ${LINUX_DIR}/.config
endif
@-rm $(LINUX_DIR)/usr/initramfs_data.cpio* 2>/dev/null
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- -j${ADK_MAKE_JOBS} $(ADK_TARGET_KERNEL) $(MAKE_TRACE)
+ifneq ($(ADK_TARGET_KERNEL_APPEND_DTB),)
+ ${KERNEL_MAKE} zImage dtbs $(MAKE_TRACE)
+ (cd $(LINUX_DIR)/arch/$(ADK_TARGET_ARCH)/boot && \
+ cat dts/${ADK_TARGET_KERNEL_APPEND_DTB}.dtb >> zImage)
+endif
+ ${KERNEL_MAKE} $(ADK_TARGET_KERNEL) $(MAKE_TRACE)
@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
${FW_DIR}/${ROOTFSISO}: ${TARGET_DIR} kernel-package
@@ -352,12 +331,23 @@ GENCFG:=$(ADK_TOPDIR)/adk/genimage/$(ADK_TARGET_GENIMAGE_FILENAME)
else
GENCFG:=$(ADK_TOPDIR)/target/$(ADK_TARGET_ARCH)/$(ADK_TARGET_SYSTEM)/$(ADK_TARGET_GENIMAGE_FILENAME)
endif
+ifeq (,$(wildcard $(ADK_TOPDIR)/target/$(ADK_TARGET_ARCH)/$(ADK_TARGET_SYSTEM)/$(ADK_TARGET_EXTLINUX_FILENAME)))
+EXTLINUX:=$(ADK_TOPDIR)/adk/extlinux/$(ADK_TARGET_EXTLINUX_FILENAME)
+else
+EXTLINUX:=$(ADK_TOPDIR)/target/$(ADK_TARGET_ARCH)/$(ADK_TARGET_SYSTEM)/$(ADK_TARGET_EXTLINUX_FILENAME)
+endif
${FW_DIR}/${GENIMAGE}: ${TARGET_DIR} kernel-package
@rm -rf ${FW_DIR}/temp
@mkdir -p ${FW_DIR}/temp
@$(CP) $(KERNEL) $(FW_DIR)/kernel
- @dd if=/dev/zero of=${FW_DIR}/cfgfs.img bs=16384 count=1 $(MAKE_TRACE)
+ @dd if=/dev/zero of=${FW_DIR}/cfgfs.img bs=16384 count=1024 $(MAKE_TRACE)
+ mkdir -p ${FW_DIR}/extlinux
+ $(CP) $(EXTLINUX) $(FW_DIR)/extlinux
+ mkdir -p $(TARGET_DIR)/boot/extlinux
+ $(CP) $(EXTLINUX) $(TARGET_DIR)/boot/extlinux
+ $(CP) $(FW_DIR)/kernel $(TARGET_DIR)/boot
+ -$(CP) $(FW_DIR)/*.dtb $(TARGET_DIR)/boot
ifeq ($(ADK_RUNTIME_FIX_PERMISSION),y)
echo '#!/bin/sh' > $(ADK_TOPDIR)/scripts/fakeroot.sh
echo "chown -R 0:0 $(TARGET_DIR)" >> $(ADK_TOPDIR)/scripts/fakeroot.sh
@@ -367,23 +357,46 @@ ifeq ($(ADK_RUNTIME_FIX_PERMISSION),y)
PATH='$(HOST_PATH)' $(FAKEROOT) $(ADK_TOPDIR)/scripts/fakeroot.sh
rm $(ADK_TOPDIR)/scripts/fakeroot.sh $(STAGING_TARGET_DIR)/scripts/permissions.sh
endif
- PATH='${HOST_PATH}' $(FAKEROOT) mke2img \
- -G 4 \
+ifeq ($(ADK_TARGET_DUAL_BOOT),y)
+ $(CP) $(FW_DIR)/kernel $(TARGET_DIR)
+ -$(CP) $(FW_DIR)/*.dtb $(TARGET_DIR)
+ mkdir $(TARGET_DIR)/extlinux
+ $(CP) $(EXTLINUX) $(TARGET_DIR)/extlinux
+ $(SED) "s#root=.*#root=/dev/$(ADK_TARGET_ROOTDEV)p1#" $(TARGET_DIR)/extlinux/extlinux.conf
+ PATH='${HOST_PATH}' $(FAKEROOT) mkfs.ext2 \
-d "$(TARGET_DIR)" \
- -o $(FW_DIR)/rootfs.ext $(MAKE_TRACE)
+ -r 1 -N 0 -m 5 -L "rootfs1" \
+ $(FW_DIR)/rootfs1.ext "64M" $(MAKE_TRACE)
+ $(SED) "s#root=.*#root=/dev/$(ADK_TARGET_ROOTDEV)p2#" $(TARGET_DIR)/extlinux/extlinux.conf
+ PATH='${HOST_PATH}' $(FAKEROOT) mkfs.ext2 \
+ -d "$(TARGET_DIR)" \
+ -r 1 -N 0 -m 5 -L "rootfs2" \
+ $(FW_DIR)/rootfs2.ext "64M" $(MAKE_TRACE)
+ PATH='${HOST_PATH}' genimage \
+ --config "$(GENCFG)" \
+ --tmppath "${FW_DIR}/temp" \
+ --rootpath "$(TARGET_DIR)" \
+ --inputpath "$(FW_DIR)" \
+ --outputpath "$(FW_DIR)" $(MAKE_TRACE)
+else
+ PATH='${HOST_PATH}' $(FAKEROOT) mkfs.ext2 \
+ -d "$(TARGET_DIR)" \
+ -r 1 -N 0 -m 5 -L "rootfs" \
+ $(FW_DIR)/rootfs.ext "64M" $(MAKE_TRACE)
PATH='${HOST_PATH}' genimage \
--config "$(GENCFG)" \
--tmppath "${FW_DIR}/temp" \
--rootpath "$(TARGET_DIR)" \
--inputpath "$(FW_DIR)" \
--outputpath "$(FW_DIR)" $(MAKE_TRACE)
+endif
ifeq ($(ADK_TARGET_DUAL_BOOT),y)
- (cd ${TARGET_DIR}; find . | grep -v ./boot/ | sed -n '/^\.\//s///p' | sort | \
+ (cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | sort | \
PATH='${HOST_PATH}' $(CPIO) -o --quiet -Hustar --owner=0:0 | \
- ${XZ} -c > ${FW_DIR}/openadk.tar.xz)
- (cd ${FW_DIR}; PATH='${HOST_PATH}' sha256sum openadk.tar.xz \
+ ${GZIP} -c > ${FW_DIR}/openadk.tar.gz)
+ (cd ${FW_DIR}; PATH='${HOST_PATH}' sha256sum openadk.tar.gz \
| cut -d\ -f1 > sha256.txt)
- (cd ${FW_DIR}; PATH='${HOST_PATH}' tar -cf ${ADK_TARGET_SYSTEM}-update.tar openadk.tar.xz sha256.txt)
+ (cd ${FW_DIR}; PATH='${HOST_PATH}' tar -cf ${ADK_TARGET_SYSTEM}-update.tar openadk.tar.gzip sha256.txt)
@rm -rf ${FW_DIR}/temp
endif
ifeq ($(ADK_PACKAGE_GRUB_EFI_X86)$(ADK_PACKAGE_GRUB_EFI_X86_64),y)
diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk
index fb7ffc955..29458abf0 100644
--- a/mk/kernel-build.mk
+++ b/mk/kernel-build.mk
@@ -9,29 +9,21 @@ include $(ADK_TOPDIR)/mk/kernel-vars.mk
ifeq ($(ADK_TARGET_OS_LINUX),y)
KERNEL_MODULES_USED:=$(shell grep ^ADK_LINUX_KERNEL $(ADK_TOPDIR)/.config|grep =m)
endif
-ifeq ($(ADK_TARGET_OS_WALDUX),y)
-KERNEL_MODULES_USED:=$(shell grep ^ADK_WALDUX_KERNEL $(ADK_TOPDIR)/.config|grep =m)
-endif
ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_CUSTOMCONFIG),y)
KERNEL_MODULES_USED:=$(shell grep -s =m $(ADK_TOPDIR)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH))
endif
-ifeq ($(ADK_TARGET_WALDUX_KERNEL_USE_CUSTOMCONFIG),y)
-KERNEL_MODULES_USED:=$(shell grep -s =m $(ADK_TOPDIR)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH))
-endif
KERNEL_FILE:=$(ADK_TARGET_KERNEL)
KERNEL_TARGET:=$(ADK_TARGET_KERNEL)
ifeq ($(ADK_TARGET_KERNEL_LINUXBIN),y)
KERNEL_FILE:=vmlinux
-KERNEL_TARGET:=$(ADK_TARGET_KERNEL)
endif
ifeq ($(ADK_TARGET_KERNEL_ZIMAGE),y)
KERNEL_FILE:=vmlinux
-KERNEL_TARGET:=$(ADK_TARGET_KERNEL)
endif
-ifeq ($(ADK_TARGET_KERNEL_VMLINUX_BOOTP),y)
-KERNEL_FILE:=bootpfile
-KERNEL_TARGET:=bootpfile
+ifeq ($(ADK_TARGET_KERNEL_VMLINUX_EFI),y)
+KERNEL_FILE:=vmlinux.efi
+KERNEL_TARGET:=all
endif
ifeq ($(ADK_TARGET_KERNEL_VMLINUX_GZ),y)
KERNEL_FILE:=vmlinux
@@ -43,7 +35,10 @@ KERNEL_TARGET:=all
endif
ifeq ($(ADK_TARGET_KERNEL_IMAGE),y)
KERNEL_FILE:=vmlinux
-KERNEL_TARGET:=$(ADK_TARGET_KERNEL)
+endif
+ifeq ($(ADK_TARGET_KERNEL_SIMPLEIMAGE),y)
+KERNEL_FILE:=vmlinux.bin
+KERNEL_TARGET:=simpleImage.milkymist_one
endif
ifneq ($(KERNEL_MODULES_USED),)
@@ -61,7 +56,7 @@ $(LINUX_DIR)/.prepared: $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PK
mkdir -p $(LINUX_BUILD_DIR)/kmod-control
touch $@
-ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_MINICONFIG)$(ADK_TARGET_WALDUX_KERNEL_USE_MINICONFIG),y)
+ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_MINICONFIG),y)
$(LINUX_DIR)/.config: $(BUILD_DIR)/.kernelconfig
endif
@@ -69,38 +64,33 @@ ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_CUSTOMCONFIG),y)
$(ADK_TOPDIR)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH):
$(LINUX_DIR)/.config: $(ADK_TOPDIR)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH)
endif
-ifeq ($(ADK_TARGET_WALDUX_KERNEL_USE_CUSTOMCONFIG),y)
-$(ADK_TOPDIR)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH):
-$(LINUX_DIR)/.config: $(ADK_TOPDIR)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH)
-endif
$(LINUX_DIR)/.config: $(LINUX_DIR)/.prepared
$(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-configure.. "
echo "-${KERNEL_RELEASE}" >${LINUX_DIR}/localversion
-ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG)$(ADK_TARGET_WALDUX_KERNEL_USE_DEFCONFIG),y)
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} $(ADK_TARGET_KERNEL_DEFCONFIG) $(MAKE_TRACE)
+ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG),y)
+ ${KERNEL_MAKE} $(ADK_TARGET_LINUX_KERNEL_DEFCONFIG) $(MAKE_TRACE)
else ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_CUSTOMCONFIG),y)
@if [ ! -f $(ADK_TOPDIR)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH) ];then \
echo "no kernel configuration found in $(ADK_TOPDIR)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH)"; \
exit 1; \
fi
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG=$(ADK_TOPDIR)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH) allnoconfig $(MAKE_TRACE)
-else ifeq ($(ADK_TARGET_WALDUX_KERNEL_USE_CUSTOMCONFIG),y)
- @if [ ! -f $(ADK_TOPDIR)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH) ];then \
- echo "no kernel configuration found in $(ADK_TOPDIR)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH)"; \
- exit 1; \
- fi
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG=$(ADK_TOPDIR)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH) allnoconfig $(MAKE_TRACE)
+ ${KERNEL_MAKE} KCONFIG_ALLCONFIG=$(ADK_TOPDIR)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH) allnoconfig $(MAKE_TRACE)
else
$(CP) $(BUILD_DIR)/.kernelconfig $(LINUX_DIR)/mini.config
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG=mini.config allnoconfig $(MAKE_TRACE)
+ ${KERNEL_MAKE} KCONFIG_ALLCONFIG=mini.config allnoconfig $(MAKE_TRACE)
endif
$(CMD_TRACE) " done"
$(END_TRACE)
$(LINUX_DIR)/$(KERNEL_FILE): $(LINUX_DIR)/.config
$(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-compile.. "
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} $(KERNEL_TARGET) $(MAKE_TRACE)
+ifneq ($(ADK_TARGET_KERNEL_APPEND_DTB),)
+ ${KERNEL_MAKE} zImage dtbs $(MAKE_TRACE)
+ (cd $(LINUX_DIR)/arch/$(ADK_TARGET_ARCH)/boot && \
+ cat dts/${ADK_TARGET_KERNEL_APPEND_DTB}.dtb >> zImage)
+endif
+ ${KERNEL_MAKE} $(KERNEL_TARGET) $(MAKE_TRACE)
$(CMD_TRACE) " done"
$(END_TRACE)
@@ -110,13 +100,11 @@ install:
ifneq ($(KERNEL_MODULES_USED),)
$(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-modules-install.. "
rm -rf $(LINUX_BUILD_DIR)/modules
- ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} \
- DEPMOD=$(ADK_DEPMOD) \
+ ${KERNEL_MAKE} DEPMOD=$(ADK_DEPMOD) \
INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules \
modules_install $(MAKE_TRACE)
$(CMD_TRACE) " done"
$(END_TRACE)
-ifeq ($(ADK_RUNTIME_DEV_UDEV),)
$(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-modules-create-packages.. "
rm -f ${PACKAGE_DIR}/kmod-*
PATH='${HOST_PATH}' ${BASH} ${SCRIPT_DIR}/make-module-ipkgs.sh \
@@ -127,13 +115,14 @@ ifeq ($(ADK_RUNTIME_DEV_UDEV),)
"${PACKAGE_DIR}"
$(CMD_TRACE) " done"
$(END_TRACE)
-endif
$(START_TRACE) "target/${ADK_TARGET_ARCH}-kernel-modules-install-packages.. "
- for pkg in $(PACKAGE_DIR)/kmod-*; do \
+ -for pkg in $(PACKAGE_DIR)/kmod-*; do \
[[ -e "$$pkg" ]] && $(PKG_INSTALL) $$pkg; \
done
$(CMD_TRACE) " done"
$(END_TRACE)
+ $(CP) $(LINUX_BUILD_DIR)/modules/lib/modules/$(KERNEL_VERSION)/modules.{order,builtin} \
+ $(TARGET_DIR)/lib/modules/$(KERNEL_VERSION)/
endif
clean:
diff --git a/mk/kernel-vars.mk b/mk/kernel-vars.mk
index eeaffcf8f..475353d6f 100644
--- a/mk/kernel-vars.mk
+++ b/mk/kernel-vars.mk
@@ -1,10 +1,17 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
-KERNEL_MAKE_OPTS:= V=1 \
+KERNEL_MAKE_OPTS:= CC="$(TARGET_CC)"
+ifeq ($(ADK_TARGET_BINFMT_FDPIC),y)
+KERNEL_MAKE_OPTS:= CC="$(TARGET_CC) -mno-fdpic"
+endif
+ifeq ($(ADK_TARGET_ARCH_MICROBLAZE),y)
+KERNEL_MAKE_OPTS:= CC="$(TARGET_CC) -fno-tree-loop-distribute-patterns"
+endif
+
+KERNEL_MAKE_OPTS+= V=1 \
ARCH="$(ADK_TARGET_KARCH)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
- CC="$(TARGET_CC)" \
HOSTCC="${HOST_CC}" \
HOSTCXX="${HOST_CXX}" \
SHELL='${SHELL}' \
@@ -18,14 +25,17 @@ endif
# non-Linux platforms need elf.h
ifneq ($(OS_FOR_BUILD),Linux)
KERNEL_MAKE_OPTS+= HOSTCFLAGS='$(HOST_CPPFLAGS) ${HOST_CFLAGS}'
-KERNEL_MAKE_OPTS+= HOST_EXTRACFLAGS='-I${LINUX_DIR}/tools/include -I${LINUX_DIR}/security/selinux/include -I${ADK_TOPDIR}/adk/include -DKBUILD_NO_NLS'
+KERNEL_MAKE_OPTS+= HOST_EXTRACFLAGS='-I${LINUX_DIR}/tools/include -I${LINUX_DIR}/usr/include -I${LINUX_DIR}/security/selinux/include -I${ADK_TOPDIR}/adk/include -I${LINUX_DIR}/scripts/dtc/libfdt -DKBUILD_NO_NLS'
else
KERNEL_MAKE_OPTS+= HOSTCFLAGS='${HOST_CFLAGS}'
endif
-ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO)$(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
-KERNEL_MAKE_OPTS+= LOADADDR=0x40008000
+ifneq ($(ADK_TARGET_KERNEL_LOADADDR),)
+KERNEL_MAKE_OPTS+= LOADADDR=$(ADK_TARGET_KERNEL_LOADADDR)
endif
KERNEL_MAKE_ENV:= PATH="${TOOLCHAIN_DIR}/usr/bin:${STAGING_HOST_DIR}/usr/bin:$$PATH"
LINUX_BUILD_DIR:= $(BUILD_DIR)/$(ADK_TARGET_OS)-$(ADK_TARGET_ARCH)
+
+# wrapper to simplify calling make in kernel tree
+KERNEL_MAKE:= env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) -j${ADK_MAKE_JOBS}
diff --git a/mk/linux-ver.mk b/mk/linux-ver.mk
index b16f54076..5e0fae716 100644
--- a/mk/linux-ver.mk
+++ b/mk/linux-ver.mk
@@ -15,57 +15,75 @@ KERNEL_FILE_VER:= $(ADK_TARGET_LINUX_KERNEL_GIT)
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(ADK_TARGET_LINUX_KERNEL_GIT_VER)-$(KERNEL_RELEASE)
endif
-ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_19),y)
-KERNEL_FILE_VER:= 4.19.55
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_6_8),y)
+KERNEL_FILE_VER:= 6.8.6
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:= c906f0cba7998c5942aaf7034ef8ea925f04f47a673816da05b203e97360b947
+KERNEL_HASH:= 9e723232d603ab45ebf043c34714c48f277ab195c29abcb8472f2a4c3a5a1995
endif
-ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_14),y)
-KERNEL_FILE_VER:= 4.14.121
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_6_6),y)
+KERNEL_FILE_VER:= 6.6.28
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:= 2eecd6825a0998c8b6dd686cd4cd76e9f0d195bbace89f0b82495cc11ddb2884
+KERNEL_HASH:= 818716ed13e7dba6aaeae24e3073993e260812ed128d10272e94b922ee6d3394
endif
-ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_9),y)
-KERNEL_FILE_VER:= 4.9.179
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_6_1),y)
+KERNEL_FILE_VER:= 6.1.82
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:= 532e4b7b0103806dad9124fd09d15d19594eca08e7f900e94ff805d3b4171ee3
+KERNEL_HASH:= d150d2d9d416877668d8b56f75759f166168d192419eefaa942ed67225cbec06
endif
-ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_4),y)
-KERNEL_FILE_VER:= 4.4.132
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_5_15),y)
+KERNEL_FILE_VER:= 5.15.152
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:= c415b01c810ad88284f9ffaebe0526efce8b1643d930dac6d8ef6a55cf6e0634
+KERNEL_HASH:= f0805225f4a5b24d0bba9302c2c2f261c04f737ac5dd931da9b112e9f3e4a47e
endif
-ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_1),y)
-KERNEL_FILE_VER:= 4.1.51
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_5_10),y)
+KERNEL_FILE_VER:= 5.10.213
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:= 02285752a9da7a2e05c2a0fc8def00d73088bd3018ad3d7de876a1b81b382a11
+KERNEL_HASH:= 84cf30223239ec3333a5f7b2a7fba2042bba70d1582a139f7543956af871ad80
endif
-ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_3_16),y)
-KERNEL_FILE_VER:= 3.16.56
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_5_4),y)
+KERNEL_FILE_VER:= 5.4.272
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:= 50a69d586b197b1f0dead9fef7232a39ecb25fafdcd6045e1d80db4d9e753cbb
+KERNEL_HASH:= 3599d5959a403e64be407d7f05e56cb270d6ddd154e89a596609919ab1e2e366
endif
-ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_3_2),y)
-KERNEL_FILE_VER:= 3.2.101
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_19),y)
+KERNEL_FILE_VER:= 4.19.310
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:= 4453686b001685144f44c88d57c716fcb6e85ef8a2aad2f95d36df82fa972c59
+KERNEL_HASH:= 95ec94c4ab8f46d8a54430893f9bd653c46b0f1587d216818aa8f52fd313de69
endif
-ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_2_6_32),y)
-KERNEL_FILE_VER:= 2.6.32.70
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_14),y)
+KERNEL_FILE_VER:= 4.14.334
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:= d7d0ee4588711d4f85ed67b65d447b4bbbe215e600a771fb87a62524b6341c43
+KERNEL_HASH:= 8a1d520cfa71e9faebae9d8c24101f5bffe48fcb897dede4cecad5af67c34a45
endif
-ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_3_10_NDS32),y)
-KERNEL_FILE_VER:= 3.10-nds32
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_9),y)
+KERNEL_FILE_VER:= 4.9.287
KERNEL_RELEASE:= 1
KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
-KERNEL_HASH:= 2f3e06924b850ca4d383ebb6baed154e1bb20440df6f38ca47c33950ec0e05c5
+KERNEL_HASH:= d44128674702529dd26214d6cd1c19542c37c5cc516f352bebbb78f0a9ed97c2
+endif
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_4_4),y)
+KERNEL_FILE_VER:= 4.4.302
+KERNEL_RELEASE:= 1
+KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
+KERNEL_HASH:= 35017bb40b604e0b577fc2b87e727632b46608a2ba3a4f5858b9177f58f376b3
+endif
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_3_16),y)
+KERNEL_FILE_VER:= 3.16.85
+KERNEL_RELEASE:= 1
+KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
+KERNEL_HASH:= 80b1598d389c94e83fdf15d99c7da452aeb3093fbf8ed7c91584c06c09fc1fa6
+endif
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_2_6_32),y)
+KERNEL_FILE_VER:= 2.6.32.70
+KERNEL_RELEASE:= 1
+KERNEL_VERSION:= $(KERNEL_FILE_VER)-$(KERNEL_RELEASE)
+KERNEL_HASH:= d7d0ee4588711d4f85ed67b65d447b4bbbe215e600a771fb87a62524b6341c43
endif
diff --git a/mk/linux.mk b/mk/linux.mk
index 037b48cbd..920c1749b 100644
--- a/mk/linux.mk
+++ b/mk/linux.mk
@@ -9,7 +9,9 @@ PKG_GIT:= $(ADK_TARGET_LINUX_KERNEL_GIT_TYPE)
PKG_SITES:= $(ADK_TARGET_LINUX_KERNEL_GIT_REPO)
else
PKG_VERSION:= $(KERNEL_FILE_VER)
-PKG_SITES:= ${MASTER_SITE_KERNEL:=kernel/v4.x/} \
+PKG_SITES:= ${MASTER_SITE_KERNEL:=kernel/v6.x/} \
+ ${MASTER_SITE_KERNEL:=kernel/v5.x/} \
+ ${MASTER_SITE_KERNEL:=kernel/v4.x/} \
${MASTER_SITE_KERNEL:=kernel/v3.x/} \
${MASTER_SITE_KERNEL:=kernel/v3.0/testing/} \
${MASTER_SITE_KERNEL:=kernel/v4.x/testing/} \
diff --git a/mk/mirrors.mk b/mk/mirrors.mk
index a3b36be0b..a8dc27f6a 100644
--- a/mk/mirrors.mk
+++ b/mk/mirrors.mk
@@ -55,6 +55,7 @@ MASTER_SITE_MYSQL?= \
http://mysql.easynet.be/ \
MASTER_SITE_GNOME?= \
+ https://download.gnome.org/sources/ \
ftp://ftp.gnome.org/pub/GNOME/sources/ \
ftp://ftp.linux.org.uk/mirrors/ftp.gnome.org/sources/ \
ftp://ftp.acc.umu.se/pub/GNOME/sources/ \
diff --git a/mk/package.mk b/mk/package.mk
index 96add5789..2a3e1f414 100644
--- a/mk/package.mk
+++ b/mk/package.mk
@@ -224,15 +224,6 @@ endif
ifneq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y)
-@rm -rf $${IDIR_$(1)}/etc/network
endif
-ifeq (${ADK_RUNTIME_INIT_SYSTEMD},y)
- @for file in $$$$(ls ./files/*.service 2>/dev/null); do \
- fname=$$$$(echo $$$$file| sed -e "s#.*/##"); \
- mkdir -p $$(IDIR_$(1))/usr/lib/systemd/system && cp $$$$file $$(IDIR_$(1))/usr/lib/systemd/system/$$$$fname; \
- mkdir -p $$(IDIR_$(1))/etc/systemd/system/multi-user.target.wants; \
- ln -sf ../../../../usr/lib/systemd/system/$$$$fname \
- $$(IDIR_$(1))/etc/systemd/system/multi-user.target.wants; \
- done
-endif
endif
@mkdir -p $${PACKAGE_DIR} '$${STAGING_PKG_DIR}/stamps' \
'$${STAGING_TARGET_DIR}/scripts'
diff --git a/mk/perl.mk b/mk/perl.mk
index c28a4aef3..faaf078a9 100644
--- a/mk/perl.mk
+++ b/mk/perl.mk
@@ -1,4 +1,4 @@
-PERL_VERSION=5.24.1
+PERL_VERSION=5.38.0
PERL_ARCHNAME:=$(ADK_TARGET_CPU_ARCH)-linux
PERL_SITEDIR:=/usr/lib/perl5/site_perl/$(PERL_VERSION)
PERL_INCDIR:=/usr/lib/perl5/$(PERL_VERSION)/$(PERL_ARCHNAME)/CORE
diff --git a/mk/pkg-bottom.mk b/mk/pkg-bottom.mk
index b46e381de..abc1e1604 100644
--- a/mk/pkg-bottom.mk
+++ b/mk/pkg-bottom.mk
@@ -53,10 +53,11 @@ ifneq ($(filter manual,${CONFIG_STYLE}),)
else ifneq ($(filter meson,${CONFIG_STYLE}),)
@$(CMD_TRACE) "configuring meson.. "
(cd ${WRKSRC} && $(MESON_ENV) \
- meson --prefix /usr --libdir lib \
+ meson setup --prefix /usr --libdir lib \
--cross-file $(STAGING_HOST_DIR)/etc/meson/cross-compilation.conf \
+ --build.pkg-config-path $(STAGING_HOST_DIR)/usr/lib/pkgconfig \
--buildtype release $(MESON_FLAGS) \
- $(WRKSRC) $(WRKBUILD))
+ $(WRKSRC) $(WRKBUILD)) $(MAKE_TRACE)
else ifneq ($(filter cmake,${CONFIG_STYLE}),)
@$(CMD_TRACE) "configuring cmake.. "
sed -e "s#@@TARGET_CC@@#$(TARGET_CC_NO_CCACHE)#" \
@@ -115,6 +116,7 @@ else ifeq ($(strip ${CONFIG_STYLE}),)
--disable-dependency-tracking \
--disable-libtool-lock \
--disable-nls \
+ --disable-silent-rules \
${CONFIGURE_LIB} \
${CONFIGURE_ARGS} $(MAKE_TRACE)
else
@@ -138,7 +140,7 @@ ${_BUILD_COOKIE}: ${_CONFIGURE_COOKIE}
@env ${MAKE_ENV} ${MAKE} pre-build $(MAKE_TRACE)
@$(CMD_TRACE) "compiling.. "
ifneq ($(filter meson,${BUILD_STYLE}),)
- PATH='$(HOST_PATH)' ninja -v -C $(WRKBUILD)
+ PATH='$(HOST_PATH)' ninja -v -C $(WRKBUILD) $(MAKE_TRACE)
else ifneq ($(filter manual,${BUILD_STYLE}),)
env ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} do-build $(MAKE_TRACE)
else ifeq ($(strip ${BUILD_STYLE}),)
@@ -212,7 +214,7 @@ endif
ifeq (,$(filter nostaging,${PKG_OPTS}))
@-cd ${WRKINST}; \
find usr ! -type d 2>/dev/null | \
- grep -E -v -e '^usr/share' -e '^usr/src' -e '^usr/doc' -e '^usr/local' -e '^usr/man' -e '^usr/info' \
+ grep -E -v -e '^usr/src' -e '^usr/doc' -e '^usr/local' -e '^usr/man' -e '^usr/info' \
-e '^usr/lib/libc.so' -e '^usr/bin/[a-z0-9-]+-config*' -e '^usr/lib/.*\.la$$' \
-e '^/usr/lib/libpthread_nonshared.a' | \
tee '${STAGING_PKG_DIR}/${PKG_NAME}' | \
diff --git a/mk/python.mk b/mk/python.mk
deleted file mode 100644
index 56008760a..000000000
--- a/mk/python.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-PYTHON_VERSION=2.7
-PYTHON_LIBDIR:=$(STAGING_HOST_DIR)/usr/lib
-PYTHON:=${STAGING_HOST_DIR}/usr/bin/python
diff --git a/mk/python3.mk b/mk/python3.mk
new file mode 100644
index 000000000..c2e9f7a27
--- /dev/null
+++ b/mk/python3.mk
@@ -0,0 +1,3 @@
+PYTHON_VERSION=3.11
+PYTHON_LIBDIR:=$(STAGING_HOST_DIR)/usr/lib
+PYTHON:=${STAGING_HOST_DIR}/usr/bin/python3
diff --git a/mk/rootfs.mk b/mk/rootfs.mk
index 492d9e3c4..e02b259f9 100644
--- a/mk/rootfs.mk
+++ b/mk/rootfs.mk
@@ -51,6 +51,14 @@ ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
BLOCKDEV:= root=/dev/mmcblk1p1
endif
+ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_IMX6),y)
+BLOCKDEV:= root=/dev/mmcblk1p1
+endif
+
+ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_WEGA),y)
+BLOCKDEV:= root=/dev/mmcblk1p1
+endif
+
ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
USBDEV:= root=/dev/sdb1
endif
diff --git a/mk/vars.mk b/mk/vars.mk
index eaa8c5333..1585833c6 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -81,18 +81,12 @@ GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_VENDOR)-$(ADK_TARGET_LINUXTYPE)-$
ifeq ($(ADK_TARGET_ARCH_C6X),y)
GNU_TARGET_NAME:= ti$(ADK_TARGET_CPU_ARCH)-$(ADK_VENDOR)-$(ADK_TARGET_LINUXTYPE)
endif
+ifeq ($(ADK_TARGET_ARCH_ARM)$(ADK_TARGET_BINFMT_FDPIC),yy)
+GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_VENDOR)-$(ADK_TARGET_SUFFIX)
+endif
ifeq ($(ADK_TARGET_OS_BAREMETAL),y)
GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_SUFFIX)
endif
-ifeq ($(ADK_TARGET_OS_FROSTED),y)
-GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_OS)-$(ADK_TARGET_SUFFIX)
-endif
-ifeq ($(ADK_TARGET_OS_RTEMS),y)
-GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_OS)
-endif
-ifeq ($(ADK_TARGET_OS_ZEPHYR),y)
-GNU_TARGET_NAME:= $(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_OS)
-endif
TARGET_CROSS:= $(TOOLCHAIN_DIR)/usr/bin/$(GNU_TARGET_NAME)-
TARGET_COMPILER_PREFIX?=${TARGET_CROSS}
@@ -148,7 +142,7 @@ TARGET_CFLAGS+= -mcpu=$(ADK_TARGET_GCC_CPU)
TARGET_CXXFLAGS+= -mcpu=$(ADK_TARGET_GCC_CPU)
endif
-# for archiectures where gcc --with-arch matches -march=
+# for architectures where gcc --with-arch matches -march=
ifneq ($(ADK_TARGET_GCC_ARCH),)
TARGET_CFLAGS+= -march=$(ADK_TARGET_GCC_ARCH)
TARGET_CXXFLAGS+= -march=$(ADK_TARGET_GCC_ARCH)
@@ -176,10 +170,10 @@ TARGET_CXXFLAGS+= -m$(ADK_TARGET_FLOAT)-float
endif
endif
-ifeq ($(ADK_TARGET_BINFMT_FLAT)$(ADK_TARGET_OS_FROSTED),y)
-TARGET_LDFLAGS+= -Wl,-elf2flt
-TARGET_CFLAGS+= -Wl,-elf2flt
-TARGET_CXXFLAGS+= -Wl,-elf2flt
+ifeq ($(ADK_TARGET_BINFMT_FLAT),y)
+TARGET_LDFLAGS+= -Wl,-elf2flt=-r
+TARGET_CFLAGS+= -Wl,-elf2flt=-r
+TARGET_CXXFLAGS+= -Wl,-elf2flt=-r
endif
ifeq ($(ADK_TARGET_BINFMT_FLAT_SEP_DATA),y)
@@ -204,6 +198,13 @@ ifneq ($(ADK_TARGET_USE_LD_BIND_NOW),)
TARGET_LDFLAGS+= -Wl,-z,now
endif
+ifeq ($(ADK_TARGET_ARCH_RISCV64)$(ADK_TARGET_ARCH_RISCV32),y)
+ifeq ($(ADK_TARGET_BINFMT_FLAT),y)
+TARGET_CFLAGS+= -fPIC
+TARGET_CXXFLAGS+= -fPIC
+endif
+endif
+
# needed for musl ppc
ifeq ($(ADK_TARGET_ARCH_PPC),y)
ifeq ($(ADK_TARGET_LIB_MUSL),y)
@@ -211,11 +212,17 @@ TARGET_LDFLAGS+= -Wl,--secure-plt
endif
endif
+ifneq ($(ADK_TARGET_BINFMT_ELF)$(ADK_TARGET_WITH_MMU),y)
ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY)$(ADK_TARGET_USE_STATIC_AND_SHARED_LIBS),y)
TARGET_CFLAGS+= -static
TARGET_CXXFLAGS+= -static
TARGET_LDFLAGS+= -static
endif
+else
+TARGET_CFLAGS+= -fpie
+TARGET_CXXFLAGS+= -fpie
+TARGET_LDFLAGS+= -fpie -pie
+endif
ifneq ($(ADK_TARGET_USE_SSP),)
TARGET_CFLAGS+= -fstack-protector-all --param=ssp-buffer-size=4
@@ -240,23 +247,16 @@ ifneq ($(ADK_TARGET_USE_GNU_HASHSTYLE),)
TARGET_LDFLAGS+= -Wl,--hash-style=gnu
endif
-# special operating system flags
-ifeq ($(ADK_TARGET_OS_FROSTED),y)
-TARGET_CFLAGS+= -fPIC -mlong-calls -fno-common -msingle-pic-base -mno-pic-data-is-text-relative
-endif
-
# special architecture optimization flags
ifeq ($(ADK_TARGET_ARCH_XTENSA),y)
-ifeq ($(ADK_TARGET_BIG_ENDIAN),)
ifeq ($(ADK_TARGET_LIB_NEWLIB),)
TARGET_CFLAGS+= -mlongcalls -mauto-litpools
TARGET_CXXFLAGS+= -mlongcalls -mauto-litpools
endif
endif
-endif
ifeq ($(ADK_TARGET_ARCH_MICROBLAZE),y)
-TARGET_CFLAGS+= -mxl-barrel-shift
-TARGET_CXXFLAGS+= -mxl-barrel-shift
+TARGET_CFLAGS+= -mxl-barrel-shift -fno-tree-loop-distribute-patterns
+TARGET_CXXFLAGS+= -mxl-barrel-shift -fno-tree-loop-distribute-patterns
endif
endif
@@ -293,8 +293,8 @@ endif
# workaround gcc bug for m68k/coldfire
ifeq ($(ADK_TARGET_CPU_CF),y)
-TARGET_CFLAGS+= -fno-dwarf2-cfi-asm
-TARGET_CXXFLAGS+= -fno-dwarf2-cfi-asm
+TARGET_CFLAGS+= -fno-dwarf2-cfi-asm -mxgot
+TARGET_CXXFLAGS+= -fno-dwarf2-cfi-asm -mxgot
endif
ifeq ($(ADK_TARGET_ARCH_ARM),y)
@@ -333,7 +333,6 @@ HOST_STATIC_LDFLAGS:= -Wl,-static
endif
SED:= PATH='${HOST_PATH}' sed -i -e
-XZ:= PATH='${HOST_PATH}' xz
CPIO:= PATH='${HOST_PATH}' cpio
LINUX_DIR:= $(BUILD_DIR)/$(ADK_TARGET_OS)
KERNEL_MODULE_FLAGS:= ARCH=${ADK_TARGET_KARCH} \
@@ -417,7 +416,7 @@ PKG_INSTALL:= PATH='${HOST_PATH}' \
PKG_STATE_DIR:= $(TARGET_DIR)/usr/lib/opkg
endif
-ifeq ($(ADK_TARGET_PACKAGE_TXZ),y)
+ifeq ($(ADK_TARGET_PACKAGE_TGZ),y)
PKG_BUILD:= ${BASH} ${SCRIPT_DIR}/tarpkg build
PKG_INSTALL:= PKG_INSTROOT='$(TARGET_DIR)' \
PATH='${HOST_PATH}' ${BASH} ${SCRIPT_DIR}/tarpkg install
diff --git a/mk/waldux-ver.mk b/mk/waldux-ver.mk
deleted file mode 100644
index a88c4501b..000000000
--- a/mk/waldux-ver.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-#
-# On the various kernel version variables:
-#
-# KERNEL_FILE_VER: version numbering used for tarball and contained
-# top level directory
-# KERNEL_RELEASE: OpenADK internal versioning
-# KERNEL_VERSION: final kernel version how we want to identify a
-# specific kernel
-
-ifeq ($(ADK_TARGET_WALDUX_KERNEL_VERSION_GIT),y)
-KERNEL_FILE_VER:= $(ADK_TARGET_WALDUX_KERNEL_GIT)
-KERNEL_RELEASE:= 1
-KERNEL_VERSION:= $(ADK_TARGET_WALDUX_KERNEL_GIT_VER)-$(KERNEL_RELEASE)
-endif
diff --git a/mk/waldux.mk b/mk/waldux.mk
deleted file mode 100644
index 15a021a3c..000000000
--- a/mk/waldux.mk
+++ /dev/null
@@ -1,10 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-PKG_NAME:= waldux
-PKG_RELEASE:= $(KERNEL_RELEASE)
-ifeq ($(ADK_TARGET_WALDUX_KERNEL_VERSION_GIT),y)
-PKG_VERSION:= $(ADK_TARGET_WALDUX_KERNEL_GIT)
-PKG_GIT:= $(ADK_TARGET_WALDUX_KERNEL_GIT_TYPE)
-PKG_SITES:= $(ADK_TARGET_WALDUX_KERNEL_GIT_REPO)
-endif
diff --git a/package/.template/Makefile b/package/.template/Makefile
index 2c54be734..e753dc84e 100644
--- a/package/.template/Makefile
+++ b/package/.template/Makefile
@@ -62,7 +62,7 @@ $(eval $(call PKG_template,@UPKG@,@PKG@,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPE
#CONFIG_STYLE:= manual
# use following to add ./configure options
#CONFIGURE_ARGS+= --disable-foo
-# overwrite any configure variables
+# override any configure variables
#CONFIGURE_ENV+= ac_cv_func_setpgrp_void=yes
#BUILD_STYLE:= manual
#INSTALL_STYLE:= manual
diff --git a/package/Config.in b/package/Config.in
index fd578b8c9..248d66fff 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -26,6 +26,7 @@ source package/Config.in.auto.app.chat
source package/Config.in.auto.app.crypto
source package/Config.in.auto.app.debug
source package/Config.in.auto.app.editor
+source package/Config.in.auto.app.games
source package/Config.in.auto.app.p2p
endmenu
diff --git a/package/Config.in.options b/package/Config.in.options
index 39e6a0b96..cdf3f436a 100644
--- a/package/Config.in.options
+++ b/package/Config.in.options
@@ -2,14 +2,14 @@ config ADK_PACKAGE_SUFFIX
string
default "ipk" if ADK_TARGET_PACKAGE_IPKG
default "ipk" if ADK_TARGET_PACKAGE_OPKG
- default "tar.xz" if ADK_TARGET_PACKAGE_TXZ
+ default "tar.gz" if ADK_TARGET_PACKAGE_TGZ
choice
prompt "Package format"
-default ADK_TARGET_PACKAGE_TXZ
+default ADK_TARGET_PACKAGE_TGZ
-config ADK_TARGET_PACKAGE_TXZ
- bool "xz compressed tar archive"
+config ADK_TARGET_PACKAGE_TGZ
+ bool "gzip compressed tar archive"
help
Create compressed tar archives of packages.
Pre- and post install scripts will be executed in the target
@@ -47,7 +47,7 @@ config ADK_LEAVE_ETC_ALONE
config ADK_INSTALL_PACKAGE_INIT_SCRIPTS
bool "ship custom init-scripts along with packages"
- default y if !ADK_RUNTIME_INIT_SYSTEMD
+ default y
depends on !ADK_LEAVE_ETC_ALONE
help
Turning this option to false will prevent the ADK from
@@ -59,7 +59,7 @@ config ADK_INSTALL_PACKAGE_INIT_SCRIPTS
config ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS
bool "ship custom network-scripts along with packages"
- default y if !ADK_RUNTIME_INIT_SYSTEMD
+ default y
depends on !ADK_LEAVE_ETC_ALONE
help
Turning this option to false will prevent the ADK from
diff --git a/package/DirectFB/Makefile b/package/DirectFB/Makefile
index e669ee059..c3fec321b 100644
--- a/package/DirectFB/Makefile
+++ b/package/DirectFB/Makefile
@@ -4,16 +4,16 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= DirectFB
-PKG_VERSION:= 1.6.3
-PKG_RELEASE:= 3
-PKG_EXTRAVER:= 1.6-0
-PKG_HASH:= 7a96aced0f69b2ec0810e9923068e61c21e6b19dd593e09394c872414df75e70
+PKG_VERSION:= 1.7.7
+PKG_EXTRAVER:= 1.7-7
+PKG_RELEASE:= 1
+PKG_HASH:= b785c638dc31b8fe3a7c81be1475c89b2255ab3d67b777c747d3fbc52f8027a3
PKG_DESCR:= thin graphic library for framebuffer devices
PKG_SECTION:= libs/image
PKG_DEPENDS:= libpng libjpeg-turbo libfreetype
PKG_BUILDDEP:= libpng libjpeg-turbo freetype
PKG_URL:= http://www.directfb.org/
-PKG_SITES:= http://directfb.org/downloads/Core/DirectFB-1.6/
+PKG_SITES:= https://distfiles.openadk.org/
PKG_LIBNAME:= directfb
PKG_OPTS:= dev
diff --git a/package/ImageMagick/Makefile b/package/ImageMagick/Makefile
index 2981a2930..aca4f647f 100644
--- a/package/ImageMagick/Makefile
+++ b/package/ImageMagick/Makefile
@@ -4,10 +4,10 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= ImageMagick
-PKG_VERSION:= 7.0.5
-PKG_EXTRAVER:= 10
+PKG_VERSION:= 7.1.1
+PKG_EXTRAVER:= 29
PKG_RELEASE:= 1
-PKG_HASH:= 0058fcde533986334458a5c99600b1b9633182dd9562cbad4ba618c5ccf2a28f
+PKG_HASH:= f140465fbeb0b4724cba4394bc6f6fb32715731c1c62572d586f4f1c8b9b0685
PKG_DESCR:= image processing and converting utility
PKG_SECTION:= mm/image
PKG_BUILDDEP:= libpng libjpeg-turbo libtiff fontconfig
diff --git a/package/adktest/Makefile b/package/adktest/Makefile
index 3e1ad35c3..b6571a199 100644
--- a/package/adktest/Makefile
+++ b/package/adktest/Makefile
@@ -5,7 +5,7 @@ include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= adktest
PKG_VERSION:= 0.1
-PKG_RELEASE:= 10
+PKG_RELEASE:= 11
PKG_DESCR:= helper tools and scripts for qemu testing
PKG_SECTION:= base/tests
PKG_URL:= http://openadk.org/
diff --git a/package/adktest/files/adktest.init b/package/adktest/files/adktest.init
index e1fe9a8c2..3969eb585 100755
--- a/package/adktest/files/adktest.init
+++ b/package/adktest/files/adktest.init
@@ -17,6 +17,7 @@ start)
fi
echo "Starting test script ..."
if [ -x /run.sh ];then
+ mount -o remount,rw /
/run.sh
quit
else
diff --git a/package/adktest/src/quit b/package/adktest/src/quit
index 15cbc5515..00468d36a 100755
--- a/package/adktest/src/quit
+++ b/package/adktest/src/quit
@@ -1,7 +1,7 @@
#!/bin/sh
arch=$(uname -m)
case $arch in
- arc|blackfin|m68k|metag|openrisc|s390x|sh4eb)
+ arc|blackfin|kvx|m68k|metag|riscv64|s390x|sh4eb)
poweroff
;;
*)
diff --git a/package/afboot-stm32/Makefile b/package/afboot-stm32/Makefile
index 127b9c21a..49a01a9c0 100644
--- a/package/afboot-stm32/Makefile
+++ b/package/afboot-stm32/Makefile
@@ -4,7 +4,7 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= afboot-stm32
-PKG_VERSION:= 8e9e03159ce47629d40dbed4c50c1879b69bb197
+PKG_VERSION:= 3566acd582e5536fb60864281788a30f5527df2d
PKG_RELEASE:= 1
PKG_DESCR:= bootloader for stm32 devices
PKG_SECTION:= base/boot
diff --git a/package/afboot-stm32/patches/patch-Makefile b/package/afboot-stm32/patches/patch-Makefile
new file mode 100644
index 000000000..c063052c9
--- /dev/null
+++ b/package/afboot-stm32/patches/patch-Makefile
@@ -0,0 +1,19 @@
+--- afboot-stm32-3566acd582e5536fb60864281788a30f5527df2d.orig/Makefile 2021-12-31 07:02:01.000000000 +0100
++++ afboot-stm32-3566acd582e5536fb60864281788a30f5527df2d/Makefile 2021-12-31 12:02:33.236273664 +0100
+@@ -7,13 +7,14 @@ OBJDUMP = $(CROSS_COMPILE)objdump
+ SIZE = $(CROSS_COMPILE)size
+ GDB = $(CROSS_COMPILE)gdb
+ OPENOCD = openocd
+-KERNEL_ADDR?=0x08008000
++KERNEL_ADDR?=0x0800C000
+ DTB_ADDR?=0x08004000
+
+ CFLAGS := -mthumb -mcpu=cortex-m4
+ CFLAGS += -ffunction-sections -fdata-sections
+ CFLAGS += -Os -std=gnu99 -Wall
+-LINKERFLAGS := -nostartfiles --gc-sections
++CFLAGS += -mno-fdpic -fno-builtin
++LINKERFLAGS := --gc-sections
+
+ obj-y += gpio.o mpu.o qspi.o start_kernel.o
+ obj-f4 += $(obj-y) usart-f4.o
diff --git a/package/afpfs-ng/Makefile b/package/afpfs-ng/Makefile
index 96380df46..28cbb57ba 100644
--- a/package/afpfs-ng/Makefile
+++ b/package/afpfs-ng/Makefile
@@ -11,7 +11,6 @@ PKG_DESCR:= client for apple filing protocol
PKG_SECTION:= net/fs
PKG_DEPENDS:= libgcrypt
PKG_BUILDDEP:= fuse libgcrypt readline
-PKG_URL:= https://sites.google.com/site/alexthepuffin/home
PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=afpfs-ng/}
PKG_LIBNAME:= libafpclient
PKG_OPTS:= dev
@@ -29,6 +28,7 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,AFPFS_NG,afpfs-ng,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,LIBAFPCLIENT,libafpclient,$(PKG_VERSION)-${PKG_RELEASE},${PKGSS_LIBAFPCLIENT},${PKGSD_LIBAFPCLIENT},${PKGSC_LIBAFPCLIENT},$(PKG_OPTS)))
+TARGET_CFLAGS+= -fcommon
AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --enable-gcrypt
CONFIGURE_ENV+= ac_cv_func_malloc_0_nonnull=yes
diff --git a/package/aircrack-ng/Makefile b/package/aircrack-ng/Makefile
index 40437b144..154e19922 100644
--- a/package/aircrack-ng/Makefile
+++ b/package/aircrack-ng/Makefile
@@ -4,31 +4,28 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= aircrack-ng
-PKG_VERSION:= 1.2
+PKG_VERSION:= 1.7
PKG_RELEASE:= 1
-PKG_HASH:= d93ac16aade5b4d37ab8cdf6ce4b855835096ccf83deb65ffdeff6d666eaff36
+PKG_HASH:= 05a704e3c8f7792a17315080a21214a4448fd2452c1b0dd5226a3a55f90b58c3
PKG_DESCR:= set of tools for auditing wireless networks
PKG_SECTION:= net/wifi
-PKG_DEPENDS:= libpcap libnl libressl
-PKG_BUILDDEP:= libpcap libnl libressl
-PKG_NEEDS:= threads
+PKG_DEPENDS:= libpcap libnl libressl zlib
+PKG_BUILDDEP:= libpcap libnl libressl zlib
+PKG_NEEDS:= threads c++
PKG_URL:= http://www.aircrack-ng.org/
PKG_SITES:= http://download.aircrack-ng.org/
# do not build parallel, otherwise libosdep.a may not be ready when compiling airtun-ng
PKG_NOPARALLEL:= 1
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}-rc4.tar.gz
-WRKDIST= ${WRKDIR}/${PKG_NAME}-${PKG_VERSION}-rc4
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,AIRCRACK_NG,${PKG_NAME},$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-CONFIG_STYLE:= manual
-
-XAKE_FLAGS+= CC="$(TARGET_CC)" \
- TOOL_PREFIX="$(TARGET_CROSS)" \
- OSNAME="Linux" prefix="/usr"
+AUTOTOOL_STYLE:= autogen
+XAKE_FLAGS+= V=1
+CONFIGURE_ARGS+= --with-libpcap-include='$(STAGING_TARGET_DIR)/usr/include'
aircrack-ng-install:
$(INSTALL_DIR) $(IDIR_AIRCRACK_NG)/usr/bin
diff --git a/package/aircrack-ng/patches/patch-common_mak b/package/aircrack-ng/patches/patch-common_mak
deleted file mode 100644
index 9a8bf9c3c..000000000
--- a/package/aircrack-ng/patches/patch-common_mak
+++ /dev/null
@@ -1,27 +0,0 @@
---- aircrack-ng-1.2-rc4.orig/common.mak 2015-12-31 20:42:10.000000000 +0100
-+++ aircrack-ng-1.2-rc4/common.mak 2017-06-06 21:16:36.954790985 +0200
-@@ -1,6 +1,6 @@
- PKG_CONFIG ?= pkg-config
-
--NEWSSE = true
-+NEWSSE = false
- # Newer version of the core can be enabled via SIMDCORE
- # but should be automatically flipped on thru autodetection
- SIMDCORE = false
-@@ -231,16 +231,6 @@ ifeq ($(GCC_OVER49), 0)
- GCC_OVER49 = $(shell expr 4.9 \<= `$(CC) -dumpversion | awk -F. '{ print $1$2 }'`)
- endif
-
--ifeq ($(GCC_OVER49), 0)
-- ifeq ($(GCC_OVER41), 1)
-- COMMON_CFLAGS += -fstack-protector
-- endif
--endif
--
--ifeq ($(GCC_OVER49), 1)
-- COMMON_CFLAGS += -fstack-protector-strong
--endif
--
- ifeq ($(GCC_OVER45), 1)
- CFLAGS += -Wno-unused-but-set-variable -Wno-array-bounds
- endif
diff --git a/package/aircrack-ng/patches/patch-src_osdep_linux_c b/package/aircrack-ng/patches/patch-src_osdep_linux_c
deleted file mode 100644
index 1811eb90a..000000000
--- a/package/aircrack-ng/patches/patch-src_osdep_linux_c
+++ /dev/null
@@ -1,26 +0,0 @@
- When search for wireless-tools, also check $PATH
---- aircrack-ng-1.2-rc4.orig/src/osdep/linux.c 2016-02-15 00:34:57.000000000 +0100
-+++ aircrack-ng-1.2-rc4/src/osdep/linux.c 2017-06-06 20:36:32.460367791 +0200
-@@ -263,6 +263,7 @@ static char * wiToolsPath(const char * t
- "/usr/local/bin",
- "/tmp"
- };
-+ char *envpath, *token;
-
- // Also search in other known location just in case we haven't found it yet
- nbelems = sizeof(paths) / sizeof(char *);
-@@ -273,6 +274,14 @@ static char * wiToolsPath(const char * t
- return path;
- }
-
-+ /* search again in $PATH */
-+ for (envpath = getenv("PATH"); ; envpath = NULL) {
-+ if ((token = strtok(envpath, ":")) == NULL)
-+ break;
-+ if ((path = searchInside(token, tool)) != NULL)
-+ return path;
-+ }
-+
- return NULL;
- }
-
diff --git a/package/alsa-lib/Makefile b/package/alsa-lib/Makefile
index bf7f496d1..bbafdfd70 100644
--- a/package/alsa-lib/Makefile
+++ b/package/alsa-lib/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= alsa-lib
-PKG_VERSION:= 1.1.4
+PKG_VERSION:= 1.2.11
PKG_RELEASE:= 1
-PKG_HASH:= 82f50a09487079755d93e4c9384912196995bade6280bce9bfdcabf094bfb515
+PKG_HASH:= 9f3f2f69b995f9ad37359072fbc69a3a88bfba081fc83e9be30e14662795bb4d
PKG_DESCR:= sound library
PKG_SECTION:= libs/audio
PKG_URL:= http://www.alsa-project.org/
@@ -28,7 +28,8 @@ endif
HOST_STYLE:= auto
HOST_CONFIGURE_ARGS+= --disable-python
CONFIGURE_ARGS+= --disable-python \
- --without-versioned
+ --without-versioned \
+ --disable-topology
alsa-lib-install:
${INSTALL_DIR} ${IDIR_ALSA_LIB}/usr/lib
diff --git a/package/alsa-utils/Makefile b/package/alsa-utils/Makefile
index cabc1ca31..2caa08f05 100644
--- a/package/alsa-utils/Makefile
+++ b/package/alsa-utils/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= alsa-utils
-PKG_VERSION:= 1.1.4
+PKG_VERSION:= 1.2.11
PKG_RELEASE:= 1
-PKG_HASH:= a7831044de92c5bf33bf3365a3f36e49397f4191e934df460ae1ca15138c9d9d
+PKG_HASH:= 9ac6ca3a883f151e568dcf979b8d2e5cbecc51b819bb0e6bb8a2e9b34cc428a7
PKG_DESCR:= mixer/player/record utilities
PKG_SECTION:= mm/audio
PKG_DEPENDS:= alsa-lib
diff --git a/package/alsa-utils/files/amixer.init b/package/alsa-utils/files/amixer.init
index 884b2acf2..58813a96c 100644
--- a/package/alsa-utils/files/amixer.init
+++ b/package/alsa-utils/files/amixer.init
@@ -11,7 +11,7 @@ autostart)
exec sh $0 start
;;
start)
- for shell in $(ls /etc/amixer.d/*.sh); do
+ for shell in $(ls /etc/amixer.d/*.sh 2>/dev/null); do
./$shell >/dev/null
done
;;
diff --git a/package/apr-util/Makefile b/package/apr-util/Makefile
index 7046779ac..3ee12d26b 100644
--- a/package/apr-util/Makefile
+++ b/package/apr-util/Makefile
@@ -23,7 +23,8 @@ $(eval $(call PKG_template,APR_UTIL,apr-util,${PKG_VERSION}-${PKG_RELEASE},${PKG
CONFIGURE_ARGS+= --without-berkeley-db \
--with-apr=${STAGING_TARGET_DIR}/usr \
- --with-expat=${STAGING_TARGET_DIR}/usr
+ --with-expat=${STAGING_TARGET_DIR}/usr \
+ --without-iconv
XAKE_FLAGS+= apr_builddir=${STAGING_TARGET_DIR}/usr/share/build-1 \
apr_builders=${STAGING_TARGET_DIR}/usr/share/build-1
diff --git a/package/arm-trusted-firmware/Makefile b/package/arm-trusted-firmware/Makefile
new file mode 100644
index 000000000..10bb72a25
--- /dev/null
+++ b/package/arm-trusted-firmware/Makefile
@@ -0,0 +1,26 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= arm-trusted-firmware
+PKG_VERSION:= 6952ce49c29be021eb07159c2f472e9e23633135
+PKG_GIT:= hash
+PKG_RELEASE:= 1
+PKG_DESCR:= ARM Trusted Firmware
+PKG_SECTION:= base/boot
+PKG_SITES:= https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,ARM_TRUSTED_FIRMWARE,arm-trusted-firmware,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+TARGET_LDFLAGS:=
+XAKE_FLAGS+= V=1
+ALL_TARGET:= bl31
+CONFIG_STYLE:= manual
+INSTALL_STYLE:= manual
+
+arm-trusted-firmware-install:
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/arm-trusted-firmware/patches/patch-plat_rockchip_rk3328_rk3328_def_h b/package/arm-trusted-firmware/patches/patch-plat_rockchip_rk3328_rk3328_def_h
new file mode 100644
index 000000000..cbe6a2b07
--- /dev/null
+++ b/package/arm-trusted-firmware/patches/patch-plat_rockchip_rk3328_rk3328_def_h
@@ -0,0 +1,11 @@
+--- arm-trusted-firmware-6952ce49c29be021eb07159c2f472e9e23633135.orig/plat/rockchip/rk3328/rk3328_def.h 2022-12-19 22:36:56.000000000 +0100
++++ arm-trusted-firmware-6952ce49c29be021eb07159c2f472e9e23633135/plat/rockchip/rk3328/rk3328_def.h 2022-12-25 03:14:08.860679511 +0100
+@@ -103,7 +103,7 @@
+ /**************************************************************************
+ * UART related constants
+ **************************************************************************/
+-#define RK3328_BAUDRATE 1500000
++#define RK3328_BAUDRATE 115200
+ #define RK3328_UART_CLOCK 24000000
+
+ /******************************************************************************
diff --git a/package/asterisk/Makefile b/package/asterisk/Makefile
index 2504e1abc..bfda5995d 100644
--- a/package/asterisk/Makefile
+++ b/package/asterisk/Makefile
@@ -4,24 +4,26 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= asterisk
-PKG_VERSION:= 1.8.28.2
-PKG_RELEASE:= 2
-PKG_HASH:= 7b3d84a3403fce590377808eaa4b08b6320666ca0e37eba0ad578b66211b13c8
+PKG_VERSION:= 20.7.0
+PKG_RELEASE:= 1
+PKG_HASH:= 3d47889d2c4501974a8adaaba49738e6268a836dc177c7887a93a8ecf1d38b26
PKG_DESCR:= open source pbx
PKG_SECTION:= net/voip
-PKG_DEPENDS:= libncurses libcurl libressl
-PKG_BUILDDEP:= ncurses zlib curl popt libressl
+PKG_DEPENDS:= libncurses libcurl libressl libedit libuuid libjansson
+PKG_DEPENDS+= libxml2 libsqlite libxslt
+PKG_BUILDDEP:= ncurses zlib curl popt libressl libedit util-linux libjansson
+PKG_BUILDDEP+= libxml2 sqlite libxslt
PKG_NEEDS:= threads c++
PKG_URL:= http://www.asterisk.org/
PKG_SITES:= http://downloads.asterisk.org/pub/telephony/asterisk/releases/
-PKG_NOPARALLEL:= 1
+#PKG_NOPARALLEL:= 1
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
PKG_LIBC_DEPENDS:= uclibc-ng glibc
PKG_SUBPKGS:= ASTERISK ASTERISK_VOICEMAIL ASTERISK_SOUNDS
-PKG_SUBPKGS+= ASTERISK_CHAN_SKINNY ASTERISK_CHAN_IAX2 ASTERISK_CODEC_SPEEX ASTERISK_CODEC_GSM
+PKG_SUBPKGS+= ASTERISK_CHAN_IAX2 ASTERISK_CODEC_SPEEX ASTERISK_CODEC_GSM
PKG_SUBPKGS+= ASTERISK_PBX_DUNDI ASTERISK_RES_AGI
PKGSD_ASTERISK_VOICEMAIL:= voicemail support
PKGSN_ASTERISK_VOICEMAIL:= asterisk
@@ -31,10 +33,6 @@ PKGSD_ASTERISK_PBX_DUNDI:= PBX dundi support
PKGSN_ASTERISK_PBX_DUNDI:= asterisk
PKGSD_ASTERISK_RES_AGI:= res agi support
PKGSN_ASTERISK_RES_AGI:= asterisk
-PKGSD_ASTERISK_CHAN_MGCP:= Media Gateway Control Protocol implementation
-PKGSN_ASTERISK_CHAN_MGCP:= asterisk
-PKGSD_ASTERISK_CHAN_SKINNY:= skinny client control protocol implementation
-PKGSN_ASTERISK_CHAN_SKINNY:= asterisk
PKGSD_ASTERISK_CHAN_IAX2:= support for the Inter Asterisk Protocol
PKGSN_ASTERISK_CHAN_IAX2:= asterisk
PKGSD_ASTERISK_CODEC_SPEEX:= speex/PCM16 Codec translator
@@ -49,8 +47,6 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,ASTERISK,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,ASTERISK_VOICEMAIL,asterisk-voicemail,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_VOICEMAIL},${PKG_SECTION}))
$(eval $(call PKG_template,ASTERISK_SOUNDS,asterisk-sounds,$(PKG_VERSION)-${PKG_RELEASE},${PKGSS_ASTERISK_SOUNDS},${PKGSD_ASTERISK_SOUNDS},${PKG_SECTION}))
-#$(eval $(call PKG_template,ASTERISK_CHAN_MGCP,asterisk-chan-mgcp,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_CHAN_MGCP},${PKG_SECTION}))
-$(eval $(call PKG_template,ASTERISK_CHAN_SKINNY,asterisk-chan-skinny,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_CHAN_SKINNY},${PKG_SECTION}))
$(eval $(call PKG_template,ASTERISK_CHAN_IAX2,asterisk-chan-iax2,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_CHAN_IAX2},${PKG_SECTION}))
$(eval $(call PKG_template,ASTERISK_CODEC_SPEEX,asterisk-codec-speex,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_CODEC_SPEEX},${PKG_SECTION}))
$(eval $(call PKG_template,ASTERISK_CODEC_GSM,asterisk-codec-gsm,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_ASTERISK_CODEC_GSM},${PKG_SECTION}))
@@ -59,16 +55,16 @@ $(eval $(call PKG_template,ASTERISK_RES_AGI,asterisk-res-agi,$(PKG_VERSION)-${PK
CONFIGURE_ARGS= --with-z=${STAGING_TARGET_DIR}/usr \
--with-ncurses=${STAGING_TARGET_DIR}/usr \
+ --with-libedit=${STAGING_TARGET_DIR}/usr \
+ --with-jansson=${STAGING_TARGET_DIR}/usr \
--with-ssl=${STAGING_TARGET_DIR}/usr \
--disable-xmldoc \
--without-tonezone \
--without-asound \
- --without-curses \
--without-gtk2 \
--without-h323 \
--without-iksemel \
--without-imap \
- --without-nbs \
--without-netsnmp \
--without-newt \
--without-openais \
@@ -78,12 +74,6 @@ CONFIGURE_ARGS= --with-z=${STAGING_TARGET_DIR}/usr \
--without-pri \
--without-pwlib \
--without-tds \
- --without-termcap \
- --without-tinfo \
- --without-vpb \
- --without-misdn \
- --without-isdnnet \
- --without-suppserv \
--without-postgres
ifneq (${ADK_PACKAGE_ASTERISK_CODEC_GSM},)
@@ -123,10 +113,10 @@ pre-configure:
pre-build:
$(MAKE) -C $(WRKBUILD)/menuselect
-post-build:
- cd ${WRKBUILD}/sounds ; \
- tar xzf asterisk-core-sounds-en-gsm-1.4.25.tar.gz ; \
- rm asterisk-core-sounds-en-gsm-1.4.25.tar.gz
+#post-build:
+# cd ${WRKBUILD}/sounds ; \
+# tar xzf asterisk-core-sounds-en-gsm-1.4.25.tar.gz ; \
+# rm asterisk-core-sounds-en-gsm-1.4.25.tar.gz
do-install:
$(CP) $(WRKINST)/* $(IDIR_ASTERISK)
@@ -189,38 +179,19 @@ asterisk-sounds-install:
asterisk-voicemail-install:
${INSTALL_DIR} $(IDIR_ASTERISK_VOICEMAIL)/etc/asterisk
${INSTALL_DIR} $(IDIR_ASTERISK_VOICEMAIL)/usr/lib/asterisk/modules
- ${INSTALL_DATA} $(WRKBUILD)/configs/voicemail.conf.sample \
+ ${INSTALL_DATA} $(WRKBUILD)/configs/samples/voicemail.conf.sample \
$(IDIR_ASTERISK_VOICEMAIL)/etc/asterisk/voicemail.conf
${CP} $(WRKBUILD)/apps/*voicemail.so \
$(IDIR_ASTERISK_VOICEMAIL)/usr/lib/asterisk/modules/
${INSTALL_BIN} $(WRKBUILD)/res/res_adsi.so \
$(IDIR_ASTERISK_VOICEMAIL)/usr/lib/asterisk/modules/
- ${INSTALL_DIR} $(IDIR_ASTERISK_VOICEMAIL)/usr/lib/asterisk/sounds
- $(CP) $(WRKBUILD)/sounds/vm-*.gsm \
- $(IDIR_ASTERISK_VOICEMAIL)/usr/lib/asterisk/sounds/
-
-asterisk-chan-mgcp-install:
- ${INSTALL_DIR} $(IDIR_ASTERISK_CHAN_MGCP)/etc/asterisk
- ${INSTALL_DATA} $(WRKBUILD)/configs/mgcp.conf.sample \
- $(IDIR_ASTERISK_CHAN_MGCP)/etc/asterisk/mgcp.conf
- ${INSTALL_DIR} $(IDIR_ASTERISK_CHAN_MGCP)/usr/lib/asterisk/modules
- ${INSTALL_BIN} $(WRKBUILD)/channels/chan_mgcp.so \
- $(IDIR_ASTERISK_CHAN_MGCP)/usr/lib/asterisk/modules/
-
-asterisk-chan-skinny-install:
- ${INSTALL_DIR} $(IDIR_ASTERISK_CHAN_SKINNY)/etc/asterisk
- ${INSTALL_DATA} $(WRKBUILD)/configs/skinny.conf.sample \
- $(IDIR_ASTERISK_CHAN_SKINNY)/etc/asterisk/skinny.conf
- ${INSTALL_DIR} $(IDIR_ASTERISK_CHAN_SKINNY)/usr/lib/asterisk/modules
- ${INSTALL_BIN} $(WRKBUILD)/channels/chan_skinny.so \
- $(IDIR_ASTERISK_CHAN_SKINNY)/usr/lib/asterisk/modules/
asterisk-chan-iax2-install:
${INSTALL_DIR} $(IDIR_ASTERISK_CHAN_IAX2)/etc/asterisk
${INSTALL_DIR} $(IDIR_ASTERISK_CHAN_IAX2)/usr/lib/asterisk/modules
- ${INSTALL_DATA} $(WRKBUILD)/configs/iax.conf.sample \
+ ${INSTALL_DATA} $(WRKBUILD)/configs/samples/iax.conf.sample \
$(IDIR_ASTERISK_CHAN_IAX2)/etc/asterisk/iax.conf
- ${INSTALL_DATA} $(WRKBUILD)/configs/iaxprov.conf.sample \
+ ${INSTALL_DATA} $(WRKBUILD)/configs/samples/iaxprov.conf.sample \
$(IDIR_ASTERISK_CHAN_IAX2)/etc/asterisk/iaxprov.conf
${INSTALL_BIN} $(WRKBUILD)/channels/chan_iax2.so \
$(IDIR_ASTERISK_CHAN_IAX2)/usr/lib/asterisk/modules/
@@ -237,7 +208,7 @@ asterisk-codec-gsm-install:
asterisk-pbx-dundi-install:
${INSTALL_DIR} $(IDIR_ASTERISK_PBX_DUNDI)/etc/asterisk
- ${INSTALL_DATA} $(WRKBUILD)/configs/dundi.conf.sample \
+ ${INSTALL_DATA} $(WRKBUILD)/configs/samples/dundi.conf.sample \
$(IDIR_ASTERISK_PBX_DUNDI)/etc/asterisk/dundi.conf
${INSTALL_DIR} $(IDIR_ASTERISK_PBX_DUNDI)/usr/lib/asterisk/modules
${INSTALL_BIN} $(WRKBUILD)/pbx/pbx_dundi.so \
@@ -252,7 +223,7 @@ asterisk-res-agi-install:
asterisk-meetme-install:
${INSTALL_DIR} ${IDIR_ASTERISK_MEETME}/etc/asterisk/
${INSTALL_DIR} ${IDIR_ASTERISK_MEETME}/usr/lib/asterisk/modules
- ${INSTALL_DATA} ${WRKBUILD}/configs/meetme.conf.sample \
+ ${INSTALL_DATA} ${WRKBUILD}/configs/samples/meetme.conf.sample \
${IDIR_ASTERISK_MEETME}/etc/asterisk/meetme.conf
${INSTALL_BIN} ${WRKBUILD}/apps/app_meetme.so \
${IDIR_ASTERISK_MEETME}/usr/lib/asterisk/modules
diff --git a/package/asterisk/files/asterisk.init b/package/asterisk/files/asterisk.init
index 9dfbed4a1..9f3e2aa5c 100644
--- a/package/asterisk/files/asterisk.init
+++ b/package/asterisk/files/asterisk.init
@@ -11,7 +11,7 @@ autostart)
exec sh $0 start
;;
start)
- for dir in run log spool lib; do
+ for dir in run log spool lib keys; do
[ -d /var/$dir/asterisk ] || mkdir -p /var/$dir/asterisk
done
/usr/sbin/asterisk
diff --git a/package/asterisk/patches/patch-main_dns_c b/package/asterisk/patches/patch-main_dns_c
deleted file mode 100644
index 0c3684d52..000000000
--- a/package/asterisk/patches/patch-main_dns_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- asterisk-1.8.20.1.orig/main/dns.c 2012-06-15 17:56:08.000000000 +0200
-+++ asterisk-1.8.20.1/main/dns.c 2013-03-05 14:49:01.000000000 +0100
-@@ -45,6 +45,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revisi
- #include "asterisk/dns.h"
- #include "asterisk/endian.h"
-
-+#undef HAVE_RES_NINIT
-+
- #define MAX_SIZE 4096
-
- #ifdef __PDP_ENDIAN
diff --git a/package/asterisk/patches/patch-main_tcptls_c b/package/asterisk/patches/patch-main_tcptls_c
deleted file mode 100644
index bf1c21c25..000000000
--- a/package/asterisk/patches/patch-main_tcptls_c
+++ /dev/null
@@ -1,16 +0,0 @@
---- asterisk-1.8.28.2.orig/main/tcptls.c 2014-06-13 07:06:27.000000000 +0200
-+++ asterisk-1.8.28.2/main/tcptls.c 2016-09-25 20:47:30.313327069 +0200
-@@ -753,9 +753,12 @@ static int __ssl_setup(struct ast_tls_co
- cfg->ssl_ctx = SSL_CTX_new(SSLv2_client_method());
- } else
- #endif
-+#ifndef OPENSSL_NO_SSL3_METHOD
- if (ast_test_flag(&cfg->flags, AST_SSL_SSLV3_CLIENT)) {
- cfg->ssl_ctx = SSL_CTX_new(SSLv3_client_method());
-- } else if (ast_test_flag(&cfg->flags, AST_SSL_TLSV1_CLIENT)) {
-+ } else
-+#endif
-+ if (ast_test_flag(&cfg->flags, AST_SSL_TLSV1_CLIENT)) {
- cfg->ssl_ctx = SSL_CTX_new(TLSv1_client_method());
- } else {
- /* SSLv23_client_method() sends SSLv2, this was the original
diff --git a/package/asterisk/patches/patch-res_stasis_control_c b/package/asterisk/patches/patch-res_stasis_control_c
new file mode 100644
index 000000000..5c80756e0
--- /dev/null
+++ b/package/asterisk/patches/patch-res_stasis_control_c
@@ -0,0 +1,11 @@
+--- asterisk-20.6.0.orig/res/stasis/control.c 2024-01-25 17:19:33.000000000 +0100
++++ asterisk-20.6.0/res/stasis/control.c 2024-02-05 15:20:24.824145190 +0100
+@@ -25,6 +25,8 @@
+
+ #include "asterisk.h"
+
++#include <signal.h>
++
+ #include "asterisk/stasis_channels.h"
+ #include "asterisk/stasis_app.h"
+
diff --git a/package/atk/Makefile b/package/atk/Makefile
index d199dec57..ad6335f1b 100644
--- a/package/atk/Makefile
+++ b/package/atk/Makefile
@@ -4,13 +4,13 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= atk
-PKG_VERSION:= 2.20.0
-PKG_EXTRAVER:= 2.20
+PKG_VERSION:= 2.36.0
+PKG_EXTRAVER:= 2.36
PKG_RELEASE:= 1
-PKG_HASH:= 493a50f6c4a025f588d380a551ec277e070b28a82e63ef8e3c06b3ee7c1238f0
+PKG_HASH:= fb76247e369402be23f1f5c65d38a9639c1164d934e40f6a9cf3c9e96b652788
PKG_DESCR:= accessibility toolkit library
PKG_SECTION:= libs/misc
-PKG_BUILDDEP:= glib
+PKG_BUILDDEP:= glib meson-host
PKG_URL:= http://www.gnome.org/
PKG_SITES:= $(MASTER_SITE_GNOME:=atk/$(PKG_EXTRAVER)/)
PKG_LIBNAME:= libatk
@@ -20,6 +20,14 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LIBATK,libatk,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+MESON_FLAGS+= -Dintrospection=false
+
libatk-install:
$(INSTALL_DIR) $(IDIR_LIBATK)/usr/lib
$(CP) $(WRKINST)/usr/lib/libatk-*.so* $(IDIR_LIBATK)/usr/lib
diff --git a/package/autofs/Makefile b/package/autofs/Makefile
index 9fd28a258..63d41c44f 100644
--- a/package/autofs/Makefile
+++ b/package/autofs/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= autofs
-PKG_VERSION:= 5.1.3
+PKG_VERSION:= 5.1.9
PKG_RELEASE:= 1
-PKG_HASH:= e96eebfe3ed5fb1a30f4510f538198affde223e370c6dc2bed9780309272b1bf
+PKG_HASH:= 87e6af6a03794b9462ea519781e50e7d23b5f7c92cd59e1142c85d2493b3c24b
PKG_DESCR:= automount filesystems
PKG_SECTION:= net/fs
PKG_DEPENDS:= libtirpc
@@ -17,12 +17,14 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,AUTOFS,autofs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --with-libtirpc
autofs-install:
- $(INSTALL_DIR) $(IDIR_AUTOFS)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/autofs \
- $(IDIR_AUTOFS)/usr/bin
+ $(INSTALL_DIR) $(IDIR_AUTOFS)/usr/lib/autofs
+ $(CP) $(WRKINST)/usr/lib/autofs/*.so \
+ $(IDIR_AUTOFS)/usr/lib/autofs
+ $(INSTALL_DIR) $(IDIR_AUTOFS)/usr/sbin
+ $(INSTALL_BIN) $(WRKINST)/usr/sbin/automount \
+ $(IDIR_AUTOFS)/usr/sbin
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/autofs/patches/patch-configure_in b/package/autofs/patches/patch-configure_in
deleted file mode 100644
index bf4fe87a8..000000000
--- a/package/autofs/patches/patch-configure_in
+++ /dev/null
@@ -1,12 +0,0 @@
---- autofs-5.1.3.orig/configure.in 2017-05-24 04:16:59.000000000 +0200
-+++ autofs-5.1.3/configure.in 2017-06-25 22:09:22.834510245 +0200
-@@ -124,8 +124,7 @@ AC_SUBST(flagdir)
- #
- # Use libtirpc
- #
--AF_WITH_LIBTIRPC()
--AC_SUBST(TIRPCLIB)
-+PKG_CHECK_MODULES([TIRPC], [tirpc])
-
- #
- # Optional include dmalloc
diff --git a/package/automake/patches/patch-Makefile_in b/package/automake/patches/patch-Makefile_in
new file mode 100644
index 000000000..24682ad19
--- /dev/null
+++ b/package/automake/patches/patch-Makefile_in
@@ -0,0 +1,11 @@
+--- automake-1.15.1.orig/Makefile.in 2017-06-18 19:35:04.000000000 +0200
++++ automake-1.15.1/Makefile.in 2020-10-31 08:38:23.322590385 +0100
+@@ -710,7 +710,7 @@ update_mans = \
+ $(AM_V_GEN): \
+ && $(MKDIR_P) doc \
+ && $(extend_PATH) \
+- && $(PERL) $(srcdir)/doc/help2man --output=$@
++ && $(PERL) $(srcdir)/doc/help2man --no-discard-stderr --output=$@
+
+ amhello_sources = \
+ doc/amhello/configure.ac \
diff --git a/package/automake16/Makefile b/package/automake16/Makefile
new file mode 100644
index 000000000..a8df601a1
--- /dev/null
+++ b/package/automake16/Makefile
@@ -0,0 +1,43 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= automake16
+PKG_VERSION:= 1.16.3
+PKG_EXTRAVER:= 1.16
+PKG_RELEASE:= 1
+PKG_HASH:= ff2bf7656c4d1c6fdda3b8bebb21f09153a736bcba169aaf65eab25fa113bf3a
+PKG_DESCR:= tool for automatically generating makefiles
+PKG_SECTION:= dev/tools
+PKG_BUILDDEP:= m4-host autoconf-host autoconf
+HOST_BUILDDEP:= autoconf-host
+PKG_URL:= http://www.gnu.org/software/automake/
+PKG_SITES:= $(MASTER_SITE_GNU:=automake/)
+PKG_OPTS:= noscripts
+
+DISTFILES:= automake-${PKG_VERSION}.tar.xz
+
+WRKDIST= ${WRKDIR}/automake-$(PKG_VERSION)
+
+include $(ADK_TOPDIR)/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,AUTOMAKE16,automake16,$(PKG_VERSION)-$(PKG_RELEASE)))
+$(eval $(call PKG_template,AUTOMAKE16,automake16,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+XAKE_FLAGS+= PERL="/usr/bin/perl"
+
+automake16-install:
+ $(INSTALL_DIR) $(IDIR_AUTOMAKE16)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/automake $(IDIR_AUTOMAKE16)/usr/bin/automake16
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/aclocal $(IDIR_AUTOMAKE16)/usr/bin/aclocal16
+ $(INSTALL_DIR) $(IDIR_AUTOMAKE16)/usr/share/aclocal-$(PKG_EXTRAVER)
+ $(CP) $(WRKINST)/usr/share/aclocal-$(PKG_EXTRAVER) \
+ $(IDIR_AUTOMAKE16)/usr/share
+ $(INSTALL_DIR) $(IDIR_AUTOMAKE16)/usr/share/automake-$(PKG_EXTRAVER)
+ $(CP) $(WRKINST)/usr/share/automake-$(PKG_EXTRAVER) \
+ $(IDIR_AUTOMAKE16)/usr/share
+
+include $(ADK_TOPDIR)/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/avahi/Makefile b/package/avahi/Makefile
index c9449baea..94b894c5b 100644
--- a/package/avahi/Makefile
+++ b/package/avahi/Makefile
@@ -4,12 +4,12 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= avahi
-PKG_VERSION:= 0.6.32
+PKG_VERSION:= 0.8
PKG_RELEASE:= 1
-PKG_HASH:= d54991185d514a0aba54ebeb408d7575b60f5818a772e28fa0e18b98bc1db454
+PKG_HASH:= 060309d7a333d38d951bc27598c677af1796934dbd98e1024e7ad8de798fedda
PKG_DESCR:= multicast dns daemon and dns-sd server
PKG_SECTION:= net/dns
-PKG_BUILDDEP:= libdaemon expat gdbm glib
+PKG_BUILDDEP:= libdaemon expat gdbm glib libevent
PKG_NEEDS:= c++ intl
PKG_URL:= http://avahi.org/
PKG_SITES:= https://github.com/lathiat/avahi/releases/download/v$(PKG_VERSION)/
@@ -19,7 +19,7 @@ PKG_OPTS:= dev
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SUBPKGS:= AVAHI LIBAVAHI
-PKGSS_AVAHI:= libavahi libdaemon libexpat libintl dbus
+PKGSS_AVAHI:= libavahi libdaemon libexpat dbus
PKGSB_AVAHI:= dbus
PKGSS_LIBAVAHI:= dbus
PKGSB_LIBAVAHI:= dbus
@@ -31,12 +31,12 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,AVAHI,avahi,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS_AVAHI),$(PKG_DESCR),$(PKG_SECTION)))
$(eval $(call PKG_template,LIBAVAHI,libavahi,$(PKG_VERSION)-$(PKG_RELEASE),,$(PKGSD_LIBAVAHI),$(PKGSC_LIBAVAHI),$(PKG_OPTS)))
-AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --enable-glib \
--enable-libdaemon \
--enable-dbus \
--disable-qt3 \
--disable-qt4 \
+ --disable-qt5 \
--disable-gtk \
--disable-gtk3 \
--disable-python \
diff --git a/package/avahi/files/avahi-daemon.conffiles b/package/avahi/files/avahi.conffiles
index 46379ed96..46379ed96 100644
--- a/package/avahi/files/avahi-daemon.conffiles
+++ b/package/avahi/files/avahi.conffiles
diff --git a/package/avahi/files/avahi.init b/package/avahi/files/avahi.init
index ca78aa486..bf4614ad3 100644
--- a/package/avahi/files/avahi.init
+++ b/package/avahi/files/avahi.init
@@ -1,5 +1,5 @@
#!/bin/sh
-#PKG avahi-daemon
+#PKG avahi
#INIT 75
. /etc/rc.conf
diff --git a/package/avahi/files/avahi-daemon.postinst b/package/avahi/files/avahi.postinst
index 8fe8f1e32..8fe8f1e32 100644
--- a/package/avahi/files/avahi-daemon.postinst
+++ b/package/avahi/files/avahi.postinst
diff --git a/package/avahi/patches/patch-Makefile_am b/package/avahi/patches/patch-Makefile_am
deleted file mode 100644
index ff5160336..000000000
--- a/package/avahi/patches/patch-Makefile_am
+++ /dev/null
@@ -1,12 +0,0 @@
---- avahi-0.6.31.orig/Makefile.am 2011-12-30 22:26:44.000000000 +0100
-+++ avahi-0.6.31/Makefile.am 2014-03-04 09:57:29.000000000 +0100
-@@ -75,8 +75,7 @@ SUBDIRS = \
- avahi-compat-howl \
- avahi-autoipd \
- avahi-ui \
-- avahi-ui-sharp \
-- po
-+ avahi-ui-sharp
-
- DX_INPUT = \
- $(srcdir)/avahi-common/address.h \
diff --git a/package/avahi/patches/patch-avahi-ui_Makefile_am b/package/avahi/patches/patch-avahi-ui_Makefile_am
deleted file mode 100644
index c1744d9d0..000000000
--- a/package/avahi/patches/patch-avahi-ui_Makefile_am
+++ /dev/null
@@ -1,19 +0,0 @@
---- avahi-0.6.31.orig/avahi-ui/Makefile.am 2012-02-14 23:22:16.000000000 +0100
-+++ avahi-0.6.31/avahi-ui/Makefile.am 2014-03-04 09:45:16.000000000 +0100
-@@ -79,9 +79,6 @@ libavahi_ui_gtk3_la_CFLAGS += -DDATABASE
- endif
-
- bin_PROGRAMS = bssh
--desktop_DATA += bssh.desktop bvnc.desktop
--@INTLTOOL_DESKTOP_RULE@
--
- bssh_SOURCES = bssh.c
-
- if HAVE_GTK3
-@@ -108,6 +105,4 @@ endif # HAVE_GLIB
- endif
- endif
-
--@INTLTOOL_DESKTOP_RULE@
--
- CLEANFILES = $(desktop_DATA) $(desktop_DATA_in)
diff --git a/package/avahi/patches/patch-configure_ac b/package/avahi/patches/patch-configure_ac
deleted file mode 100644
index 53f1aea23..000000000
--- a/package/avahi/patches/patch-configure_ac
+++ /dev/null
@@ -1,14 +0,0 @@
---- avahi-0.6.31.orig/configure.ac 2012-02-14 22:44:25.484742099 +0100
-+++ avahi-0.6.31/configure.ac 2014-06-15 20:50:12.072045207 +0200
-@@ -412,11 +412,9 @@ if test "x$have_kqueue" = "xyes" ; then
- AC_DEFINE([HAVE_KQUEUE], 1, [Enable BSD kqueue() usage])
- fi
-
--IT_PROG_INTLTOOL([0.35.0])
- GETTEXT_PACKAGE=avahi
- AC_SUBST([GETTEXT_PACKAGE])
- AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
--AM_GLIB_GNU_GETTEXT
-
- avahilocaledir='${prefix}/${DATADIRNAME}/locale'
- AC_SUBST(avahilocaledir)
diff --git a/package/barebox/Makefile b/package/barebox/Makefile
index cb5f774bb..b4490f1d6 100644
--- a/package/barebox/Makefile
+++ b/package/barebox/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= barebox
-PKG_VERSION:= 2017.11.0
+PKG_VERSION:= 2019.09.0
PKG_RELEASE:= 1
-PKG_HASH:= 7dff97dd94807fd7c0012fd9ddb8bc799a220e2b65e46dcc56724105a56feecc
+PKG_HASH:= beab6bdba2466bece57d23834daf4f0d530a594efc11ca0ddb69372981e6e159
PKG_DESCR:= portable bootloader
PKG_SECTION:= base/boot
PKG_BUILDDEP:= lzop-host
@@ -38,6 +38,9 @@ endif
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9),y)
CONFIG:= vexpress_ca9_defconfig
endif
+ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_IMX6),y)
+CONFIG:= imx_v7_defconfig
+endif
do-configure:
(cd $(WRKBUILD) && $(MAKE) ARCH=$(BAREBOX_ARCH) $(CONFIG))
@@ -50,6 +53,6 @@ do-build:
$(MAKE))
barebox-install:
- $(INSTALL_DIR) $(IDIR_BAREBOX)/usr/bin
+ $(CP) $(WRKBUILD)/barebox.bin $(FW_DIR)
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 95f22f6f0..9b3191ae7 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -6,7 +6,7 @@ include $(ADK_TOPDIR)/mk/rootfs.mk
PKG_NAME:= base-files
PKG_VERSION:= 1.1
-PKG_RELEASE:= 27
+PKG_RELEASE:= 29
PKG_SECTION:= base/apps
PKG_DESCR:= basic files and scripts
@@ -40,7 +40,6 @@ do-install:
ln -sf ../run $(IDIR_BASE_FILES)/var/run
chmod 600 $(IDIR_BASE_FILES)/etc/shadow
chmod 1777 ${IDIR_BASE_FILES}/tmp
-ifeq ($(ADK_RUNTIME_INIT_SYSTEMD),)
echo $(ADK_RUNTIME_TMPFS_SIZE) > $(IDIR_BASE_FILES)/etc/tmpfs
mkdir -p $(IDIR_BASE_FILES)/etc/init.d
cp ./files/init.d/* $(IDIR_BASE_FILES)/etc/init.d
@@ -64,7 +63,6 @@ ifeq (${ADK_TARGET_ROOTFS_NFSROOT},y)
else
(cd $(IDIR_BASE_FILES)/etc; ln -sf ../tmp/resolv.conf .)
endif
-endif
ifeq ($(ADK_RUNTIME_DEV_MDEV),y)
$(CP) ./files/rcdev.mdev $(IDIR_BASE_FILES)/etc/init.d/rcdev
$(SED) "s#@ADK_RUNTIME_DEV_MDEV_LOGGING@#"$(ADK_RUNTIME_DEV_MDEV_LOGGING_LINE)"#g" $(IDIR_BASE_FILES)/etc/init.d/rcdev
@@ -91,9 +89,6 @@ endif
$(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab
$(SED) 's#@AUTOLOGIN@#$(ADK_RUNTIME_GETTY_SERIAL_AUTOLOGIN_STANZA)#' $(IDIR_BASE_FILES)/etc/inittab
endif
-ifeq ($(ADK_RUNTIME_INIT_SYSVINIT),y)
- cp ./files/inittab.sysvinit $(IDIR_BASE_FILES)/etc/inittab
-endif
ifeq ($(ADK_RUNTIME_MOUNT_DEBUGFS),y)
echo debugfs /sys/kernel/debug debugfs defaults 0 0 >> $(IDIR_BASE_FILES)/etc/fstab
echo null::sysinit:/bin/mount -a -t debugfs >> $(IDIR_BASE_FILES)/etc/inittab
@@ -225,9 +220,9 @@ endif
ifeq ($(ADK_RUNTIME_ADDUSER),y)
mkdir -p ${IDIR_BASE_FILES}/$(ADK_RUNTIME_USER_HOME)
- printf "$(ADK_RUNTIME_USER_NAME):x:100:100:$(ADK_RUNTIME_USER_NAME):$(ADK_RUNTIME_USER_HOME):$(ADK_RUNTIME_USER_SHELL)" >> ${IDIR_BASE_FILES}/etc/passwd
- printf "$(ADK_RUNTIME_USER_NAME):$(ADK_RUNTIME_USER_PASSWORD):16514:0:::::" >> ${IDIR_BASE_FILES}/etc/shadow
- printf "$(ADK_RUNTIME_USER_NAME):x:100:" >> ${IDIR_BASE_FILES}/etc/group
+ printf "$(ADK_RUNTIME_USER_NAME):x:100:100:$(ADK_RUNTIME_USER_NAME):$(ADK_RUNTIME_USER_HOME):$(ADK_RUNTIME_USER_SHELL)\n" >> ${IDIR_BASE_FILES}/etc/passwd
+ printf "$(ADK_RUNTIME_USER_NAME):$(ADK_RUNTIME_USER_PASSWORD):16514:0:::::\n" >> ${IDIR_BASE_FILES}/etc/shadow
+ printf "$(ADK_RUNTIME_USER_NAME):x:100:\n" >> ${IDIR_BASE_FILES}/etc/group
endif
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/base-files/files/base-files.conffiles b/package/base-files/files/base-files.conffiles
index 2ee449379..4845c1855 100644
--- a/package/base-files/files/base-files.conffiles
+++ b/package/base-files/files/base-files.conffiles
@@ -1,4 +1,3 @@
-/etc/mdev.conf
/etc/inittab
/etc/banner
/etc/group
diff --git a/package/base-files/files/init.d/rcS b/package/base-files/files/init.d/rcS
index db03a76e5..9015a71ac 100755
--- a/package/base-files/files/init.d/rcS
+++ b/package/base-files/files/init.d/rcS
@@ -17,6 +17,7 @@ fi
mkdir -p /var/log
mkdir -p /var/run
mkdir -p /var/tmp
+mkdir -p /var/lock
touch /var/log/lastlog
touch /var/log/wtmp
diff --git a/package/base-files/files/profile b/package/base-files/files/profile
index c89b12c92..22bf8655d 100644
--- a/package/base-files/files/profile
+++ b/package/base-files/files/profile
@@ -1,6 +1,7 @@
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
export TERM=linux
export EDITOR=/bin/vi
+export M4=/usr/bin/m4
if [[ $(id -u) = 0 ]]; then
export PS1='`whoami`@`hostname`:`pwd` # '
else
diff --git a/package/base-files/src/etc/network/if-pre-up.d/04-wireless b/package/base-files/src/etc/network/if-pre-up.d/04-wireless
index fa68058bf..ef070c5bc 100755
--- a/package/base-files/src/etc/network/if-pre-up.d/04-wireless
+++ b/package/base-files/src/etc/network/if-pre-up.d/04-wireless
@@ -81,6 +81,8 @@ case "$IF_WIRELESS_MODE" in
cat /etc/hostapd.conf.post >> /tmp/hostapd.conf
;;
sta)
+ # need to wait for wlan drivers to settle down
+ sleep 1
ip link set up dev ${IFACE}
[ $IF_WIRELESS_EXTENSION -eq 1 ] && {
[ -x /usr/sbin/iwconfig ] || {
@@ -96,9 +98,9 @@ case "$IF_WIRELESS_MODE" in
}
driver=nl80211
[ $sec -eq 2 ] && {
- iw dev ${IFACE} connect $IF_WIRELESS_SSID key d:0:$IF_WIRELESS_PASSPHRASE
+ iw dev ${IFACE} connect "$IF_WIRELESS_SSID" key d:0:$IF_WIRELESS_PASSPHRASE
} || {
- iw dev ${IFACE} connect $IF_WIRELESS_SSID
+ iw dev ${IFACE} connect "$IF_WIRELESS_SSID" 2>/dev/null
}
}
[ $wpa2 -eq 1 ] && {
diff --git a/package/bash/Makefile b/package/bash/Makefile
index d30bd533d..bfed5373c 100644
--- a/package/bash/Makefile
+++ b/package/bash/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= bash
-PKG_VERSION:= 4.4.18
+PKG_VERSION:= 5.2.21
PKG_RELEASE:= 1
-PKG_HASH:= 604d9eec5e4ed5fd2180ee44dd756ddca92e0b6aa4217bbab2b6227380317f23
+PKG_HASH:= c8e31bdc59b69aaffc5b36509905ba3e5cbb12747091d27b4b977f078560d5b8
PKG_DESCR:= bourne-again shell
PKG_SECTION:= base/shells
PKG_URL:= http://www.gnu.org/software/bash/
diff --git a/package/bcm28xx-bootloader/Makefile b/package/bcm28xx-bootloader/Makefile
index 4ea08bf74..83a594ad0 100644
--- a/package/bcm28xx-bootloader/Makefile
+++ b/package/bcm28xx-bootloader/Makefile
@@ -5,31 +5,25 @@ include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= bcm28xx-bootloader
# not cloned, local src directory used
-PKG_VERSION:= 784fe6cebd9e5726c0c7b9e449f7cdbf2cf6959d
-PKG_RELEASE:= 1
+PKG_VERSION:= 1e403e23baab5673f0494a200f57cd01287d5b1a
+PKG_RELEASE:= 3
PKG_DESCR:= bootloader for bcm28xx
PKG_SECTION:= base/boot
PKG_URL:= https://github.com/raspberrypi/firmware
PKG_SITES:= https://github.com/raspberrypi/firmware.git
-PKG_SYSTEM_DEPENDS:= raspberry-pi raspberry-pi0 raspberry-pi2 raspberry-pi3 raspberry-pi3-64 raspberry-pi3p raspberry-pi3p-64
+PKG_SYSTEM_DEPENDS:= raspberry-pi raspberry-pi0 raspberry-pi2 raspberry-pi3 raspberry-pi3-64 raspberry-pi4 raspberry-pi4-64 raspberry-pi5
PKG_CHOICES_BCM28XX_BOOTLOADER:= DEFAULT EXTRA CUTDOWN
PKGCD_DEFAULT:= default bootloader
PKGCD_EXTRA:= bootloader with extra features and codecs
PKGCD_CUTDOWN:= cut down bootloader
-PKG_SUBPKGS:= BCM28XX_BOOTLOADER BCM28XX_DEBUGTOOL
-PKGSD_BCM28XX_DEBUGTOOL:= bcm28xx debugtool (vcdbg)
-PKGSC_BCM28XX_DEBUGTOOL:= sys/hw
-PKGSS_BCM28XX_DEBUGTOOL:= bcm28xx-vc-debug bcm28xx-vc-libs
-
NO_DISTFILES:= 1
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,BCM28XX_BOOTLOADER,bcm28xx-bootloader,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-$(eval $(call PKG_template,BCM28XX_DEBUGTOOL,bcm28xx-debugtool,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKGSC_BCM28XX_DEBUGTOOL)))
CONFIG_STYLE:= manual
BUILD_STYLE:= manual
@@ -38,14 +32,28 @@ INSTALL_STYLE:= manual
do-install:
$(INSTALL_DIR) $(IDIR_BCM28XX_BOOTLOADER)/boot
$(CP) $(WRKBUILD)/boot/bootcode.bin $(IDIR_BCM28XX_BOOTLOADER)/boot/
+ifeq ($(ADK_RUNTIME_VERBOSE_KERNEL_SERIAL_ONLY),y)
+ printf "console=serial0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait" > \
+ $(IDIR_BCM28XX_BOOTLOADER)/boot/cmdline.txt
+endif
+ifeq ($(ADK_RUNTIME_VERBOSE_KERNEL_VGA_ONLY),y)
+ printf "console=tty0 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait" > \
+ $(IDIR_BCM28XX_BOOTLOADER)/boot/cmdline.txt
+endif
printf "kernel=kernel\n" > $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
printf "dtparam=audio,i2s,spi,i2c\n" >> \
$(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
ifeq ($(ADK_PACKAGE_BCM28XX_BOOTLOADER_DEFAULT),y)
+ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI4)$(ADK_TARGET_SYSTEM_RASPBERRY_PI4_64),y)
+ $(CP) $(WRKBUILD)/boot/{start4.elf,fixup4.dat} $(IDIR_BCM28XX_BOOTLOADER)/boot/
+ printf "start_file=start4.elf\n" >> $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
+ printf "fixup_file=fixup4.dat\n" >> $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
+else
$(CP) $(WRKBUILD)/boot/{start.elf,fixup.dat} $(IDIR_BCM28XX_BOOTLOADER)/boot/
printf "start_file=start.elf\n" >> $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
printf "fixup_file=fixup.dat\n" >> $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
endif
+endif
ifeq ($(ADK_PACKAGE_BCM28XX_BOOTLOADER_EXTRA),y)
$(CP) $(WRKBUILD)/boot/{start_x.elf,fixup_x.dat} $(IDIR_BCM28XX_BOOTLOADER)/boot/
printf "start_file=start_x.elf\n" >> $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
@@ -58,6 +66,16 @@ ifeq ($(ADK_PACKAGE_BCM28XX_BOOTLOADER_CUTDOWN),y)
endif
printf "gpu_mem=$(ADK_TARGET_GPU_MEM)\n" >> \
$(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
+ifeq ($(ADK_PACKAGE_KODI),y)
+ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI4)$(ADK_TARGET_SYSTEM_RASPBERRY_PI4_64),y)
+ printf "dtoverlay=vc4-kms-v3d-pi4\n" >> \
+ $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
+endif
+ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI5),y)
+ printf "dtoverlay=vc4-kms-v3d-pi5\n" >> \
+ $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
+endif
+endif
ifneq ($(ADK_TARGET_HARDWARE_HIFIBERRY_AMP),)
printf "dtoverlay=hifiberry-amp\n" >> \
$(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
@@ -98,12 +116,28 @@ ifeq ($(ADK_TARGET_HARDWARE_RPI3_SERIAL),y)
printf "enable_uart=1\n" >> \
$(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
endif
-ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI3_64)$(ADK_TARGET_SYSTEM_RASPBERRY_PI3_64),y)
+ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI4),y)
+ printf "enable_uart=1\n" >> \
+ $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
+endif
+ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI3_64)$(ADK_TARGET_SYSTEM_RASPBERRY_PI4_64),y)
printf "arm_control=0x200\n" >> \
$(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
printf "enable_uart=1\n" >> \
$(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
endif
+ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI5),y)
+ printf "dtparam=fan_temp0=0\n" >> \
+ $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
+ printf "dtparam=fan_temp0_speed=64\n" >> \
+ $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
+ printf "dtparam=fan_temp1_speed=64\n" >> \
+ $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
+ printf "dtparam=fan_temp2_speed=64\n" >> \
+ $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
+ printf "dtparam=fan_temp3_speed=64\n" >> \
+ $(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
+endif
ifneq ($(ADK_RUNTIME_MPEG2_KEY),)
printf "decode_MPG2=$(ADK_RUNTIME_MPEG2_KEY)\n" >> \
$(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
@@ -112,10 +146,5 @@ ifneq ($(ADK_RUNTIME_VC1_KEY),)
printf "decode_WVC1=$(ADK_RUNTIME_VC1_KEY)\n" >> \
$(IDIR_BCM28XX_BOOTLOADER)/boot/config.txt
endif
-ifeq ($(ADK_PACKAGE_BCM28XX_DEBUGTOOL),y)
- $(INSTALL_DIR) $(IDIR_BCM28XX_DEBUGTOOL)/usr/bin
- $(INSTALL_BIN) ./files/vcdbg \
- $(IDIR_BCM28XX_DEBUGTOOL)/usr/bin
-endif
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/bcm28xx-bootloader/files/vcdbg b/package/bcm28xx-bootloader/files/vcdbg
deleted file mode 100755
index ba3e55e8e..000000000
--- a/package/bcm28xx-bootloader/files/vcdbg
+++ /dev/null
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/bootcode.bin b/package/bcm28xx-bootloader/src/boot/bootcode.bin
index 1a8f6402a..9e831a273 100644
--- a/package/bcm28xx-bootloader/src/boot/bootcode.bin
+++ b/package/bcm28xx-bootloader/src/boot/bootcode.bin
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/fixup.dat b/package/bcm28xx-bootloader/src/boot/fixup.dat
index 79e9aa171..2ff966820 100644
--- a/package/bcm28xx-bootloader/src/boot/fixup.dat
+++ b/package/bcm28xx-bootloader/src/boot/fixup.dat
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/fixup4.dat b/package/bcm28xx-bootloader/src/boot/fixup4.dat
new file mode 100644
index 000000000..4380d320e
--- /dev/null
+++ b/package/bcm28xx-bootloader/src/boot/fixup4.dat
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/fixup4cd.dat b/package/bcm28xx-bootloader/src/boot/fixup4cd.dat
new file mode 100644
index 000000000..79a0b55e7
--- /dev/null
+++ b/package/bcm28xx-bootloader/src/boot/fixup4cd.dat
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/fixup4db.dat b/package/bcm28xx-bootloader/src/boot/fixup4db.dat
new file mode 100644
index 000000000..4d13d6581
--- /dev/null
+++ b/package/bcm28xx-bootloader/src/boot/fixup4db.dat
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/fixup4x.dat b/package/bcm28xx-bootloader/src/boot/fixup4x.dat
new file mode 100644
index 000000000..4d8ff5a96
--- /dev/null
+++ b/package/bcm28xx-bootloader/src/boot/fixup4x.dat
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/fixup_cd.dat b/package/bcm28xx-bootloader/src/boot/fixup_cd.dat
index 79b53400c..79a0b55e7 100644
--- a/package/bcm28xx-bootloader/src/boot/fixup_cd.dat
+++ b/package/bcm28xx-bootloader/src/boot/fixup_cd.dat
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/fixup_db.dat b/package/bcm28xx-bootloader/src/boot/fixup_db.dat
index 210ccb81d..3927ea52e 100644
--- a/package/bcm28xx-bootloader/src/boot/fixup_db.dat
+++ b/package/bcm28xx-bootloader/src/boot/fixup_db.dat
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/fixup_x.dat b/package/bcm28xx-bootloader/src/boot/fixup_x.dat
index 1f52982a6..b93bc0620 100644
--- a/package/bcm28xx-bootloader/src/boot/fixup_x.dat
+++ b/package/bcm28xx-bootloader/src/boot/fixup_x.dat
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/start.elf b/package/bcm28xx-bootloader/src/boot/start.elf
index 030be853e..f5d78d670 100644
--- a/package/bcm28xx-bootloader/src/boot/start.elf
+++ b/package/bcm28xx-bootloader/src/boot/start.elf
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/start4.elf b/package/bcm28xx-bootloader/src/boot/start4.elf
new file mode 100644
index 000000000..300e7a8a4
--- /dev/null
+++ b/package/bcm28xx-bootloader/src/boot/start4.elf
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/start4cd.elf b/package/bcm28xx-bootloader/src/boot/start4cd.elf
new file mode 100644
index 000000000..b7fe9328d
--- /dev/null
+++ b/package/bcm28xx-bootloader/src/boot/start4cd.elf
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/start4db.elf b/package/bcm28xx-bootloader/src/boot/start4db.elf
new file mode 100644
index 000000000..acd07e82c
--- /dev/null
+++ b/package/bcm28xx-bootloader/src/boot/start4db.elf
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/start4x.elf b/package/bcm28xx-bootloader/src/boot/start4x.elf
new file mode 100644
index 000000000..274a62944
--- /dev/null
+++ b/package/bcm28xx-bootloader/src/boot/start4x.elf
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/start_cd.elf b/package/bcm28xx-bootloader/src/boot/start_cd.elf
index 43e40673f..5e616d0c6 100644
--- a/package/bcm28xx-bootloader/src/boot/start_cd.elf
+++ b/package/bcm28xx-bootloader/src/boot/start_cd.elf
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/start_db.elf b/package/bcm28xx-bootloader/src/boot/start_db.elf
index 3db397d43..f10f87fa3 100644
--- a/package/bcm28xx-bootloader/src/boot/start_db.elf
+++ b/package/bcm28xx-bootloader/src/boot/start_db.elf
Binary files differ
diff --git a/package/bcm28xx-bootloader/src/boot/start_x.elf b/package/bcm28xx-bootloader/src/boot/start_x.elf
index 21d7bbfae..26c1de866 100644
--- a/package/bcm28xx-bootloader/src/boot/start_x.elf
+++ b/package/bcm28xx-bootloader/src/boot/start_x.elf
Binary files differ
diff --git a/package/bcm28xx-utils/Makefile b/package/bcm28xx-utils/Makefile
new file mode 100644
index 000000000..e59dbde56
--- /dev/null
+++ b/package/bcm28xx-utils/Makefile
@@ -0,0 +1,32 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= bcm28xx-utils
+PKG_VERSION:= e65f5ec102e74218cda7da9fdc8b1caa0fd1127d
+PKG_GIT:= hash
+PKG_RELEASE:= 1
+PKG_DESCR:= videocore tools and utils
+PKG_SECTION:= sys/hw
+PKG_BUILDDEP:= cmake-host
+PKG_NEEDS:= c++ threads
+PKG_URL:= https://github.com/raspberrypi/utils
+PKG_SITES:= https://github.com/raspberrypi/utils.git
+
+PKG_SYSTEM_DEPENDS:= raspberry-pi raspberry-pi0 raspberry-pi2 raspberry-pi3 raspberry-pi3-64 raspberry-pi4 raspberry-pi4-64 raspberry-pi5
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,BCM28XX_UTILS,bcm28xx-utils,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= cmake
+
+bcm28xx-utils-install:
+ $(INSTALL_DIR) $(IDIR_BCM28XX_UTILS)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/vcgencmd \
+ $(IDIR_BCM28XX_UTILS)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/vclog \
+ $(IDIR_BCM28XX_UTILS)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/bcm28xx-utils/patches/patch-CMakeLists_txt b/package/bcm28xx-utils/patches/patch-CMakeLists_txt
new file mode 100644
index 000000000..956feac7e
--- /dev/null
+++ b/package/bcm28xx-utils/patches/patch-CMakeLists_txt
@@ -0,0 +1,16 @@
+--- bcm28xx-utils-e65f5ec102e74218cda7da9fdc8b1caa0fd1127d.orig/CMakeLists.txt 2024-01-23 03:17:28.000000000 +0100
++++ bcm28xx-utils-e65f5ec102e74218cda7da9fdc8b1caa0fd1127d/CMakeLists.txt 2024-01-23 03:21:39.257325745 +0100
+@@ -3,13 +3,10 @@ cmake_minimum_required(VERSION 3.1...3.2
+ project(utils)
+
+ # List of subsidiary CMakeLists
+-add_subdirectory(dtmerge)
+ add_subdirectory(eeptools)
+ add_subdirectory(otpset)
+ add_subdirectory(overlaycheck)
+ add_subdirectory(ovmerge)
+-add_subdirectory(pinctrl)
+ add_subdirectory(raspinfo)
+ add_subdirectory(vcgencmd)
+ add_subdirectory(vclog)
+-add_subdirectory(vcmailbox)
diff --git a/package/bcm28xx-vc/Makefile b/package/bcm28xx-vc/Makefile
deleted file mode 100644
index c7337c859..000000000
--- a/package/bcm28xx-vc/Makefile
+++ /dev/null
@@ -1,84 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= bcm28xx-vc
-PKG_VERSION:= 2448644657e5fbfd82299416d218396ee1115ece
-PKG_GIT:= hash
-PKG_RELEASE:= 1
-PKG_DESCR:= videocore tools and libraries
-PKG_SECTION:= libs/video
-PKG_BUILDDEP:= cmake-host
-PKG_NEEDS:= c++ threads
-PKG_URL:= https://github.com/raspberrypi/userland
-PKG_SITES:= https://github.com/raspberrypi/userland.git
-
-PKG_SUBPKGS:= BCM28XX_VC_TOOLS BCM28XX_VC_LIBS BCM28XX_VC_GL_LIBS BCM28XX_VC_DEBUG
-PKGSS_BCM28XX_VC_TOOLS:=bcm28xx-vc-libs
-PKGSC_BCM28XX_VC_TOOLS:=sys/hw
-PKGSD_BCM28XX_VC_TOOLS:=videocore tools (vcgencmd,..)
-PKGSC_BCM28XX_VC_LIBS:= libs/misc
-PKGSD_BCM28XX_VC_LIBS:=videocore library
-PKGSC_BCM28XX_VC_DEBUG:=libs/misc
-PKGSD_BCM28XX_VC_DEBUG:=videocore debug library
-PKGSC_BCM28XX_VC_GL_LIBS:=libs/video
-PKGSS_BCM28XX_VC_GL_LIBS:=bcm28xx-vc-libs
-PKGSD_BCM28XX_VC_GL_LIBS:=videocore gl library
-
-PKG_SYSTEM_DEPENDS:= raspberry-pi raspberry-pi0 raspberry-pi2 raspberry-pi3 raspberry-pi3-64 raspberry-pi3p raspberry-pi3p-64
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,BCM28XX_VC_TOOLS,bcm28xx-vc-tools,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS_BCM28XX_VC_TOOLS),$(PKG_DESCR),$(PKGSC_BCM28XX_VC_TOOLS)))
-$(eval $(call PKG_template,BCM28XX_VC_LIBS,bcm28xx-vc-libs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-$(eval $(call PKG_template,BCM28XX_VC_DEBUG,bcm28xx-vc-debug,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-$(eval $(call PKG_template,BCM28XX_VC_GL_LIBS,bcm28xx-vc-gl-libs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-CONFIG_STYLE:= cmake
-CMAKE_FLAGS+= -DVMCS_INSTALL_PREFIX=/usr
-
-bcm28xx-vc-tools-install:
- $(INSTALL_DIR) $(IDIR_BCM28XX_VC_TOOLS)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/vcgencmd \
- $(IDIR_BCM28XX_VC_TOOLS)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/dtoverlay \
- $(IDIR_BCM28XX_VC_TOOLS)/usr/bin
-
-bcm28xx-vc-debug-install:
- $(INSTALL_DIR) $(IDIR_BCM28XX_VC_DEBUG)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libdebug_sym.so \
- $(IDIR_BCM28XX_VC_DEBUG)/usr/lib
-
-bcm28xx-vc-libs-install:
- $(INSTALL_DIR) $(IDIR_BCM28XX_VC_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libvcos.so \
- $(IDIR_BCM28XX_VC_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libvchiq_arm.so \
- $(IDIR_BCM28XX_VC_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libbcm_host.so \
- $(IDIR_BCM28XX_VC_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libcontainers.so \
- $(IDIR_BCM28XX_VC_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libdtovl.so \
- $(IDIR_BCM28XX_VC_LIBS)/usr/lib
-
-bcm28xx-vc-gl-libs-install:
- $(INSTALL_DIR) $(IDIR_BCM28XX_VC_GL_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libmmal*.so \
- $(IDIR_BCM28XX_VC_GL_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libopenmaxil.so \
- $(IDIR_BCM28XX_VC_GL_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libvcsm.so \
- $(IDIR_BCM28XX_VC_GL_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libEGL.so \
- $(IDIR_BCM28XX_VC_GL_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libGLESv2.so \
- $(IDIR_BCM28XX_VC_GL_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libOpenVG.so \
- $(IDIR_BCM28XX_VC_GL_LIBS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libbrcm*.so \
- $(IDIR_BCM28XX_VC_GL_LIBS)/usr/lib
- (cd $(IDIR_BCM28XX_VC_GL_LIBS)/usr/lib && ln -sf libEGL.so libEGL.so.1)
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/bcm28xx-vc/patches/patch-host_applications_android_apps_vidtex_CMakeLists_txt b/package/bcm28xx-vc/patches/patch-host_applications_android_apps_vidtex_CMakeLists_txt
deleted file mode 100644
index a36625f8e..000000000
--- a/package/bcm28xx-vc/patches/patch-host_applications_android_apps_vidtex_CMakeLists_txt
+++ /dev/null
@@ -1,10 +0,0 @@
---- bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8.orig/host_applications/android/apps/vidtex/CMakeLists.txt 2015-10-27 10:59:47.000000000 +0100
-+++ bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8/host_applications/android/apps/vidtex/CMakeLists.txt 2015-11-16 20:31:58.396542125 +0100
-@@ -1,6 +1,6 @@
- cmake_minimum_required(VERSION 2.8)
-
--SET(COMPILE_DEFINITIONS -Werror -Wall)
-+SET(COMPILE_DEFINITIONS -Wall)
- include_directories(${PROJECT_SOURCE_DIR}/host_applications/linux/libs/bcm_host/include)
-
- set (VIDTEX_SOURCES
diff --git a/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_dtmerge_dtmerge_c b/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_dtmerge_dtmerge_c
deleted file mode 100644
index fa78c0e3a..000000000
--- a/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_dtmerge_dtmerge_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- bcm28xx-vc-7c026fa7a4ded2c525916cc853a32731c072ed1e.orig/host_applications/linux/apps/dtmerge/dtmerge.c 2016-09-20 09:43:37.000000000 +0200
-+++ bcm28xx-vc-7c026fa7a4ded2c525916cc853a32731c072ed1e/host_applications/linux/apps/dtmerge/dtmerge.c 2016-09-20 10:22:23.000000000 +0200
-@@ -28,6 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
- #include <stdio.h>
- #include <stdlib.h>
- #include <libfdt.h>
-+#include <stdarg.h>
-
- #include "dtoverlay.h"
-
diff --git a/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_gencmd_CMakeLists_txt b/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_gencmd_CMakeLists_txt
deleted file mode 100644
index d67980b11..000000000
--- a/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_gencmd_CMakeLists_txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8.orig/host_applications/linux/apps/gencmd/CMakeLists.txt 2015-10-27 10:59:47.000000000 +0100
-+++ bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8/host_applications/linux/apps/gencmd/CMakeLists.txt 2015-11-16 20:30:46.553286656 +0100
-@@ -4,7 +4,7 @@ if (WIN32)
- set(VCOS_PLATFORM win32)
- else ()
- set(VCOS_PLATFORM pthreads)
-- add_definitions(-Wall -Werror)
-+ add_definitions(-Wall)
- endif ()
-
- include_directories( ../../../..
diff --git a/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_raspicam_CMakeLists_txt b/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_raspicam_CMakeLists_txt
deleted file mode 100644
index b92e1e625..000000000
--- a/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_raspicam_CMakeLists_txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- bcm28xx-vc-8d518460723779f95b49efafc04c183e83da3a18.orig/host_applications/linux/apps/raspicam/CMakeLists.txt 2017-06-27 18:59:31.000000000 +0200
-+++ bcm28xx-vc-8d518460723779f95b49efafc04c183e83da3a18/host_applications/linux/apps/raspicam/CMakeLists.txt 2017-06-30 23:35:09.949011873 +0200
-@@ -1,8 +1,6 @@
-
- # raspistill/raspivid/raspiyuv
-
--SET(COMPILE_DEFINITIONS -Werror)
--
- include_directories(${PROJECT_SOURCE_DIR}/host_applications/linux/libs/bcm_host/include)
- include_directories(${PROJECT_SOURCE_DIR}/host_applications/linux/apps/raspicam/)
- include_directories(${PROJECT_SOURCE_DIR}/host_applications/linux/libs/sm)
diff --git a/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_smem_CMakeLists_txt b/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_smem_CMakeLists_txt
deleted file mode 100644
index f1e293abe..000000000
--- a/package/bcm28xx-vc/patches/patch-host_applications_linux_apps_smem_CMakeLists_txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8.orig/host_applications/linux/apps/smem/CMakeLists.txt 2015-10-27 10:59:48.000000000 +0100
-+++ bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8/host_applications/linux/apps/smem/CMakeLists.txt 2015-11-16 20:31:12.527571311 +0100
-@@ -4,7 +4,7 @@ get_filename_component (VIDEOCORE_ROOT .
- include (${VIDEOCORE_ROOT}/makefiles/cmake/global_settings.cmake)
-
- if (NOT WIN32)
-- add_definitions(-Wall -Werror)
-+ add_definitions(-Wall)
- endif ()
-
- include_directories (
diff --git a/package/bcm28xx-vc/patches/patch-host_applications_linux_libs_bcm_host_CMakeLists_txt b/package/bcm28xx-vc/patches/patch-host_applications_linux_libs_bcm_host_CMakeLists_txt
deleted file mode 100644
index 2b6a25111..000000000
--- a/package/bcm28xx-vc/patches/patch-host_applications_linux_libs_bcm_host_CMakeLists_txt
+++ /dev/null
@@ -1,19 +0,0 @@
---- bcm28xx-vc-8d518460723779f95b49efafc04c183e83da3a18.orig/host_applications/linux/libs/bcm_host/CMakeLists.txt 2017-06-27 18:59:31.000000000 +0200
-+++ bcm28xx-vc-8d518460723779f95b49efafc04c183e83da3a18/host_applications/linux/libs/bcm_host/CMakeLists.txt 2017-07-01 14:33:21.139286425 +0200
-@@ -3,7 +3,7 @@ if (WIN32)
- set(VCOS_PLATFORM win32)
- else ()
- set(VCOS_PLATFORM pthreads)
-- add_definitions(-Wall -Werror)
-+ add_definitions(-Wall)
- endif ()
-
- include_directories( ../../../..
-@@ -20,3 +20,7 @@ target_link_libraries(bcm_host vcos vcho
-
- install(TARGETS bcm_host DESTINATION lib)
-
-+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/bcm_host.pc.in"
-+ "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc" @ONLY)
-+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bcm_host.pc"
-+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
diff --git a/package/bcm28xx-vc/patches/patch-host_applications_linux_libs_sm_CMakeLists_txt b/package/bcm28xx-vc/patches/patch-host_applications_linux_libs_sm_CMakeLists_txt
deleted file mode 100644
index 3269c550c..000000000
--- a/package/bcm28xx-vc/patches/patch-host_applications_linux_libs_sm_CMakeLists_txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8.orig/host_applications/linux/libs/sm/CMakeLists.txt 2015-10-27 10:59:48.000000000 +0100
-+++ bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8/host_applications/linux/libs/sm/CMakeLists.txt 2015-11-16 20:31:27.946553043 +0100
-@@ -3,7 +3,7 @@ if (WIN32)
- set(VCOS_PLATFORM win32)
- else ()
- set(VCOS_PLATFORM pthreads)
-- add_definitions(-Wall -Werror)
-+ add_definitions(-Wall)
- endif ()
-
- include_directories( ../../../..
diff --git a/package/bcm28xx-vc/patches/patch-interface_khronos_CMakeLists_txt b/package/bcm28xx-vc/patches/patch-interface_khronos_CMakeLists_txt
deleted file mode 100644
index 068283106..000000000
--- a/package/bcm28xx-vc/patches/patch-interface_khronos_CMakeLists_txt
+++ /dev/null
@@ -1,17 +0,0 @@
---- bcm28xx-vc-8d518460723779f95b49efafc04c183e83da3a18.orig/interface/khronos/CMakeLists.txt 2017-06-27 18:59:31.000000000 +0200
-+++ bcm28xx-vc-8d518460723779f95b49efafc04c183e83da3a18/interface/khronos/CMakeLists.txt 2017-07-01 14:33:21.139286425 +0200
-@@ -80,6 +80,14 @@ target_link_libraries(OpenVG EGL)
-
- install(TARGETS EGL GLESv2 OpenVG WFC khrn_client DESTINATION lib)
- install(TARGETS EGL_static GLESv2_static khrn_static DESTINATION lib)
-+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/egl/egl.pc.in"
-+ "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc" @ONLY)
-+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/egl/egl.pc"
-+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
-+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/glxx/glesv2.pc.in"
-+ "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc" @ONLY)
-+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glxx/glesv2.pc"
-+ DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
-
- # recommended names to use to avoid conflicts with mesa libs
- add_library(brcmEGL ${SHARED} ${EGL_SOURCE})
diff --git a/package/bcm28xx-vc/patches/patch-interface_mmal_CMakeLists_txt b/package/bcm28xx-vc/patches/patch-interface_mmal_CMakeLists_txt
deleted file mode 100644
index 8e4a1dace..000000000
--- a/package/bcm28xx-vc/patches/patch-interface_mmal_CMakeLists_txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8.orig/interface/mmal/CMakeLists.txt 2015-10-27 10:59:48.000000000 +0100
-+++ bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8/interface/mmal/CMakeLists.txt 2015-11-16 20:18:59.755962062 +0100
-@@ -3,7 +3,7 @@ if (NOT DEFINED LIBRARY_TYPE)
- set(LIBRARY_TYPE SHARED)
- endif (NOT DEFINED LIBRARY_TYPE)
-
--add_definitions(-Wall -Werror)
-+add_definitions(-Wall)
-
- add_library(mmal SHARED util/mmal_util.c)
-
diff --git a/package/bcm28xx-vc/patches/patch-interface_vcos_CMakeLists_txt b/package/bcm28xx-vc/patches/patch-interface_vcos_CMakeLists_txt
deleted file mode 100644
index c962c3acf..000000000
--- a/package/bcm28xx-vc/patches/patch-interface_vcos_CMakeLists_txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8.orig/interface/vcos/CMakeLists.txt 2015-10-27 10:59:48.000000000 +0100
-+++ bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8/interface/vcos/CMakeLists.txt 2015-11-16 20:22:22.274588157 +0100
-@@ -43,7 +43,7 @@ foreach (header ${HEADERS})
- endforeach ()
-
- if (CMAKE_COMPILER_IS_GNUCC)
-- add_definitions (-ggdb -Werror -Wall)
-+ add_definitions (-Wall)
- endif ()
-
- if (CMAKE_COMPILER_2005)
diff --git a/package/bcm28xx-vc/patches/patch-interface_vcos_pthreads_CMakeLists_txt b/package/bcm28xx-vc/patches/patch-interface_vcos_pthreads_CMakeLists_txt
deleted file mode 100644
index 34ac618fb..000000000
--- a/package/bcm28xx-vc/patches/patch-interface_vcos_pthreads_CMakeLists_txt
+++ /dev/null
@@ -1,11 +0,0 @@
---- bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8.orig/interface/vcos/pthreads/CMakeLists.txt 2015-10-27 10:59:48.000000000 +0100
-+++ bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8/interface/vcos/pthreads/CMakeLists.txt 2015-11-16 20:22:39.353464208 +0100
-@@ -1,7 +1,7 @@
- # MSVC5 does not fully support C99, enabling declaration-after-statement
- # warnings allows a common MSVC5 build error to be detected in Linux builds.
- if (CMAKE_COMPILER_IS_GNUCC)
-- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -Wdeclaration-after-statement")
-+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wdeclaration-after-statement")
- add_definitions (-D_GNU_SOURCE)
- endif ()
-
diff --git a/package/bcm28xx-vc/patches/patch-interface_vmcs_host_linux_vcfiled_CMakeLists_txt b/package/bcm28xx-vc/patches/patch-interface_vmcs_host_linux_vcfiled_CMakeLists_txt
deleted file mode 100644
index 06bc3da60..000000000
--- a/package/bcm28xx-vc/patches/patch-interface_vmcs_host_linux_vcfiled_CMakeLists_txt
+++ /dev/null
@@ -1,9 +0,0 @@
---- bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8.orig/interface/vmcs_host/linux/vcfiled/CMakeLists.txt 2015-10-27 10:59:48.000000000 +0100
-+++ bcm28xx-vc-c2f27fb8e581f8e5af83bf28422553ade8f7a7c8/interface/vmcs_host/linux/vcfiled/CMakeLists.txt 2015-11-16 20:16:31.801734911 +0100
-@@ -1,6 +1,4 @@
-
--add_definitions(-Werror)
--
- # vcfiled - serves files to videocore. used for media handlers from
- # OpenMAX/IL and loading VLLs.
- add_executable(vcfiled vcfiled.c)
diff --git a/package/bcm28xx-vc/patches/patch-interface_vmcs_host_vc_vchi_tvservice_c b/package/bcm28xx-vc/patches/patch-interface_vmcs_host_vc_vchi_tvservice_c
deleted file mode 100644
index 2dfbf722c..000000000
--- a/package/bcm28xx-vc/patches/patch-interface_vmcs_host_vc_vchi_tvservice_c
+++ /dev/null
@@ -1,18 +0,0 @@
---- bcm28xx-vc-9cc14b29288f913ef0e3286f4b3232bf73ab59d2.orig/interface/vmcs_host/vc_vchi_tvservice.c 2015-05-25 13:22:55.000000000 -0500
-+++ bcm28xx-vc-9cc14b29288f913ef0e3286f4b3232bf73ab59d2/interface/vmcs_host/vc_vchi_tvservice.c 2015-06-08 13:01:47.348595327 -0500
-@@ -417,7 +417,6 @@ VCHPRE_ void VCHPOST_ vc_tv_register_cal
- ***********************************************************/
- VCHPRE_ void VCHPOST_ vc_tv_unregister_callback(TVSERVICE_CALLBACK_T callback)
- {
-- vcos_assert(callback != NULL);
-
- vcos_log_trace("[%s]", VCOS_FUNCTION);
- if(tvservice_lock_obtain() == 0)
-@@ -433,7 +432,6 @@ VCHPRE_ void VCHPOST_ vc_tv_unregister_c
- done = 1;
- } // if
- } // for
-- vcos_assert(done);
- tvservice_lock_release();
- }
- }
diff --git a/package/bcm28xx-vc/src/host_applications/linux/libs/bcm_host/bcm_host.pc.in b/package/bcm28xx-vc/src/host_applications/linux/libs/bcm_host/bcm_host.pc.in
deleted file mode 100644
index d40d35049..000000000
--- a/package/bcm28xx-vc/src/host_applications/linux/libs/bcm_host/bcm_host.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=/usr
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: bcm_host
-Description: Broadcom VideoCore host API library
-Version: 1
-Libs: -L${libdir} -lbcm_host -lvcos -lvchiq_arm
-Cflags: -I${includedir} -I${includedir}/interface/vmcs_host/linux -I${includedir}/interface/vcos/pthreads -DUSE_VCHIQ_ARM
diff --git a/package/bcm28xx-vc/src/interface/khronos/egl/egl.pc.in b/package/bcm28xx-vc/src/interface/khronos/egl/egl.pc.in
deleted file mode 100644
index 58687062b..000000000
--- a/package/bcm28xx-vc/src/interface/khronos/egl/egl.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: egl
-Description: RasberryPi implementation of EGL
-Version: 10
-Libs: -L${libdir} -lEGL -lGLESv2 -lbcm_host -lvchostif
-Cflags: -I${includedir}/ -I${includedir}/interface/vcos/pthreads/ \
- -I${includedir}/interface/vmcs_host/linux/
diff --git a/package/bcm28xx-vc/src/interface/khronos/glxx/glesv2.pc.in b/package/bcm28xx-vc/src/interface/khronos/glxx/glesv2.pc.in
deleted file mode 100644
index 2f58eede5..000000000
--- a/package/bcm28xx-vc/src/interface/khronos/glxx/glesv2.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: glesv2
-Description: RasberryPi implementation of OpenGL ESv2
-Version: 2.0
-Libs: -L${libdir} -lGLESv2
-Cflags: -I${includedir}/
diff --git a/package/bind/Makefile b/package/bind/Makefile
index 0a2852fcc..ac59cc624 100644
--- a/package/bind/Makefile
+++ b/package/bind/Makefile
@@ -4,21 +4,19 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= bind
-PKG_VERSION:= 9.10.4
+PKG_VERSION:= 9.18.24
PKG_RELEASE:= 1
-PKG_HASH:= f8d412b38d5ac390275b943bde69f4608f67862a45487ec854b30e4448fcb056
+PKG_HASH:= 709d73023c9115ddad3bab65b6c8c79a590196d0d114f5d0ca2533dbd52ddf66
PKG_DESCR:= dns server
PKG_SECTION:= net/dns
-PKG_DEPENDS:= libxml2 libressl
-PKG_BUILDDEP:= libxml2 libressl
+PKG_DEPENDS:= libxml2 libressl libuv libressl-util
+PKG_BUILDDEP:= libxml2 libressl libuv
PKG_NEEDS:= c++
PKG_URL:= https://www.isc.org/software/bind/
PKG_SITES:= ftp://ftp.isc.org/isc/bind9/${PKG_VERSION}/
PKG_LIBNAME:= libbind
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
PKG_SUBPKGS:= LIBBIND BIND_SERVER BIND_NSUPDATE BIND_RNDC BIND_CHECK BIND_DNSSEC BIND_HOST BIND_DIG
PKGSD_LIBBIND:= library for the bind software suite
PKGSC_LIBBIND:= libs/net
@@ -44,9 +42,6 @@ PKGSD_BIND_DIG:= dig utility
PKGSC_BIND_DIG:= net/dns
PKGSS_BIND_DIG:= libbind libxml2
-PKG_FLAVOURS_LIBBIND:= WITH_IPV6
-PKGFD_WITH_IPV6:= enable IPv6 support
-
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,BIND_SERVER,bind-server,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
@@ -60,22 +55,10 @@ $(eval $(call PKG_template,LIBBIND,libbind,${PKG_VERSION}-${PKG_RELEASE},,${PKGS
AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ENV+= BUILD_CC="${HOST_CC}" BUILD_CFLAGS='${HOST_CFLAGS}' BUILD_LDFLAGS='${HOST_LDFLAGS}'
-CONFIGURE_ARGS+= --with-randomdev=/dev/urandom \
- --with-export-libdir=/usr/lib \
- --enable-exportlib \
- --with-ecdsa=no \
- --with-gost=no \
- --with-gssapi=no \
+CONFIGURE_ARGS+= --with-gssapi=no \
--with-openssl=${STAGING_TARGET_DIR}/usr \
- --with-libxml2=${STAGING_TARGET_DIR}/usr \
- --enable-epoll \
- --with-libtool
-
-ifneq (${ADK_PACKAGE_LIBBIND_WITH_IPV6},)
-CONFIGURE_ARGS+= --enable-ipv6
-else
-CONFIGURE_ARGS+= --disable-ipv6
-endif
+ --disable-linux-caps \
+ --disable-doh
bind-server-install:
${INSTALL_DIR} ${IDIR_BIND_SERVER}/usr/sbin ${IDIR_BIND_SERVER}/etc
@@ -93,18 +76,18 @@ bind-rndc-install:
${IDIR_BIND_RNDC}/usr/sbin
bind-check-install:
- ${INSTALL_DIR} ${IDIR_BIND_CHECK}/usr/sbin
- ${INSTALL_BIN} ${WRKINST}/usr/sbin/named-checkconf \
- ${IDIR_BIND_CHECK}/usr/sbin/
- ${INSTALL_BIN} ${WRKINST}/usr/sbin/named-checkzone \
- ${IDIR_BIND_CHECK}/usr/sbin/
+ ${INSTALL_DIR} ${IDIR_BIND_CHECK}/usr/bin
+ ${INSTALL_BIN} ${WRKINST}/usr/bin/named-checkconf \
+ ${IDIR_BIND_CHECK}/usr/bin/
+ ${INSTALL_BIN} ${WRKINST}/usr/bin/named-checkzone \
+ ${IDIR_BIND_CHECK}/usr/bin/
bind-dnssec-install:
- ${INSTALL_DIR} ${IDIR_BIND_DNSSEC}/usr/sbin
- ${INSTALL_BIN} ${WRKINST}/usr/sbin/dnssec-keygen \
- ${IDIR_BIND_DNSSEC}/usr/sbin
- ${INSTALL_BIN} ${WRKINST}/usr/sbin/dnssec-signzone \
- ${IDIR_BIND_DNSSEC}/usr/sbin
+ ${INSTALL_DIR} ${IDIR_BIND_DNSSEC}/usr/bin
+ ${INSTALL_BIN} ${WRKINST}/usr/bin/dnssec-keygen \
+ ${IDIR_BIND_DNSSEC}/usr/bin
+ ${INSTALL_BIN} ${WRKINST}/usr/bin/dnssec-signzone \
+ ${IDIR_BIND_DNSSEC}/usr/bin
bind-host-install:
${INSTALL_DIR} ${IDIR_BIND_HOST}/usr/bin
@@ -116,11 +99,12 @@ bind-dig-install:
libbind-install:
${INSTALL_DIR} ${IDIR_LIBBIND}/usr/lib
- ${CP} ${WRKINST}/usr/lib/libbind9.so.* ${IDIR_LIBBIND}/usr/lib
- ${CP} ${WRKINST}/usr/lib/libdns.so.* ${IDIR_LIBBIND}/usr/lib
- ${CP} ${WRKINST}/usr/lib/libisccc.so.* ${IDIR_LIBBIND}/usr/lib
- ${CP} ${WRKINST}/usr/lib/libisccfg.so.* ${IDIR_LIBBIND}/usr/lib
- ${CP} ${WRKINST}/usr/lib/libisc.so.* ${IDIR_LIBBIND}/usr/lib
- ${CP} ${WRKINST}/usr/lib/liblwres.so.* ${IDIR_LIBBIND}/usr/lib
+ ${CP} ${WRKINST}/usr/lib/libbind9*.so ${IDIR_LIBBIND}/usr/lib
+ ${CP} ${WRKINST}/usr/lib/libdns*.so ${IDIR_LIBBIND}/usr/lib
+ ${CP} ${WRKINST}/usr/lib/libisccc*.so ${IDIR_LIBBIND}/usr/lib
+ ${CP} ${WRKINST}/usr/lib/libisccfg*.so ${IDIR_LIBBIND}/usr/lib
+ ${CP} ${WRKINST}/usr/lib/libisc*.so ${IDIR_LIBBIND}/usr/lib
+ ${CP} ${WRKINST}/usr/lib/libirs*.so ${IDIR_LIBBIND}/usr/lib
+ ${CP} ${WRKINST}/usr/lib/libns*.so ${IDIR_LIBBIND}/usr/lib
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/bind/files/bind/named.conf.example b/package/bind/files/bind/named.conf
index 162454955..162454955 100644
--- a/package/bind/files/bind/named.conf.example
+++ b/package/bind/files/bind/named.conf
diff --git a/package/bind/patches/patch-bin_rndc_Makefile_am b/package/bind/patches/patch-bin_rndc_Makefile_am
new file mode 100644
index 000000000..4bf3b893c
--- /dev/null
+++ b/package/bind/patches/patch-bin_rndc_Makefile_am
@@ -0,0 +1,18 @@
+--- bind-9.18.24.orig/bin/rndc/Makefile.am 2024-02-11 11:42:55.296980787 +0100
++++ bind-9.18.24/bin/rndc/Makefile.am 2024-02-20 08:02:25.039885442 +0100
+@@ -2,6 +2,7 @@ include $(top_srcdir)/Makefile.top
+
+ AM_CPPFLAGS += \
+ $(LIBISC_CFLAGS) \
++ $(LIBNS_CFLAGS) \
+ $(LIBDNS_CFLAGS) \
+ $(LIBISCCFG_CFLAGS) \
+ $(LIBISCCC_CFLAGS) \
+@@ -20,6 +21,7 @@ rndc_SOURCES = \
+
+ rndc_LDADD = \
+ $(LIBISC_LIBS) \
++ $(LIBNS_LIBS) \
+ $(LIBDNS_LIBS) \
+ $(LIBISCCC_LIBS) \
+ $(LIBISCCFG_LIBS) \
diff --git a/package/binutils/Makefile b/package/binutils/Makefile
index 9efce8208..27748b0d1 100644
--- a/package/binutils/Makefile
+++ b/package/binutils/Makefile
@@ -36,6 +36,7 @@ else
CONFIGURE_ARGS+= --enable-multilib
endif
CONFIGURE_ARGS+= --disable-werror \
+ --disable-gprofng \
--disable-gdb \
--disable-sim \
--disable-install-libiberty \
diff --git a/package/bison/Makefile b/package/bison/Makefile
index f7716611e..5bc9cce8d 100644
--- a/package/bison/Makefile
+++ b/package/bison/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= bison
-PKG_VERSION:= 3.0.4
+PKG_VERSION:= 3.8.2
PKG_RELEASE:= 1
-PKG_HASH:= a72428c7917bdf9fa93cb8181c971b6e22834125848cf1d03ce10b1bb0716fe1
+PKG_HASH:= 9bba0214ccf7f1079c5d59210045227bcf619519840ebfa80cd3849cff5a5bf2
PKG_DESCR:= parser generator
PKG_SECTION:= dev/tools
PKG_BUILDDEP:= m4-host bison-host
diff --git a/package/bison/patches/patch-lib_fseterr_c b/package/bison/patches/patch-lib_fseterr_c
deleted file mode 100644
index 06af7469f..000000000
--- a/package/bison/patches/patch-lib_fseterr_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- bison-3.0.4.orig/lib/fseterr.c 2015-01-04 16:43:50.000000000 +0000
-+++ bison-3.0.4/lib/fseterr.c 2019-05-06 08:24:42.407830562 +0000
-@@ -29,7 +29,7 @@ fseterr (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_flags |= _IO_ERR_SEEN;
- #elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin */
- fp_->_flags |= __SERR;
diff --git a/package/bison/patches/patch-lib_vasnprintf_c b/package/bison/patches/patch-lib_vasnprintf_c
deleted file mode 100644
index cb21d90fa..000000000
--- a/package/bison/patches/patch-lib_vasnprintf_c
+++ /dev/null
@@ -1,28 +0,0 @@
---- bison-3.0.4.orig/lib/vasnprintf.c 2015-01-04 17:46:03.000000000 +0100
-+++ bison-3.0.4/lib/vasnprintf.c 2018-02-24 21:13:43.000000000 +0100
-@@ -4858,7 +4858,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
- #endif
- *fbp = dp->conversion;
- #if USE_SNPRINTF
--# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
-+# if ! (((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \
-+ && !defined __UCLIBC__) \
-+ || (defined __APPLE__ && defined __MACH__) \
-+ || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
- fbp[1] = '%';
- fbp[2] = 'n';
- fbp[3] = '\0';
-@@ -4872,6 +4875,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
- in format strings in writable memory may crash the program
- (if compiled with _FORTIFY_SOURCE=2), so we should avoid it
- in this situation. */
-+ /* On Mac OS X 10.3 or newer, we know that snprintf's return
-+ value conforms to ISO C 99: the tests gl_SNPRINTF_RETVAL_C99
-+ and gl_SNPRINTF_TRUNCATION_C99 pass.
-+ Therefore we can avoid using %n in this situation.
-+ On Mac OS X 10.13 or newer, the use of %n in format strings
-+ in writable memory by default crashes the program, so we
-+ should avoid it in this situation. */
- /* On native Windows systems (such as mingw), we can avoid using
- %n because:
- - Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
diff --git a/package/bitlbee/Makefile b/package/bitlbee/Makefile
index dae6d01c4..d9a8cf6b8 100644
--- a/package/bitlbee/Makefile
+++ b/package/bitlbee/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= bitlbee
-PKG_VERSION:= 3.5.1
+PKG_VERSION:= 3.6
PKG_RELEASE:= 1
-PKG_HASH:= 9636d7fd89ebb3756c13a9a3387736ca6d56ccf66ec0580d512f07b21db0fa69
+PKG_HASH:= 9f15de46f29b46bf1e39fc50bdf4515e71b17f551f3955094c5da792d962107e
PKG_DESCR:= irc gateway to im chat networks
PKG_SECTION:= app/chat
PKG_DEPENDS:= glib libressl
@@ -35,6 +35,7 @@ CONFIGURE_ARGS:= --target=${GNU_TARGET_NAME} \
--ipv6=1 \
--ssl=openssl
INSTALL_TARGET= install-etc install-bin
+XAKE_ENV+= VERBOSE=1
post-configure:
@echo 'CFLAGS+="-I${STAGING_TARGET_DIR}/usr/include/iconv"' >> \
diff --git a/package/bitlbee/patches/patch-lib_Makefile b/package/bitlbee/patches/patch-lib_Makefile
index f55340876..a0f65192c 100644
--- a/package/bitlbee/patches/patch-lib_Makefile
+++ b/package/bitlbee/patches/patch-lib_Makefile
@@ -1,8 +1,8 @@
---- bitlbee-3.5.1.orig/lib/Makefile 2017-01-30 21:45:59.000000000 +0100
-+++ bitlbee-3.5.1/lib/Makefile 2017-05-20 12:20:09.898551807 +0200
+--- bitlbee-3.6.orig/lib/Makefile 2019-02-07 20:53:38.000000000 +0100
++++ bitlbee-3.6/lib/Makefile 2024-02-14 17:50:24.243531011 +0100
@@ -14,7 +14,7 @@ endif
# [SH] Program variables
- objects = arc.o base64.o $(EVENT_HANDLER) ftutil.o http_client.o ini.o json.o json_util.o md5.o misc.o oauth.o oauth2.o proxy.o sha1.o $(SSL_CLIENT) url.o xmltree.o ns_parse.o
+ objects = arc.o base64.o canohost.o $(EVENT_HANDLER) ftutil.o http_client.o ini.o json.o json_util.o md5.o misc.o oauth.o oauth2.o proxy.o sha1.o $(SSL_CLIENT) url.o xmltree.o ns_parse.o
-LFLAGS += -r
+LFLAGS += -Wl,-r -nostdlib
@@ -13,8 +13,8 @@
lib.o: $(objects) $(subdirs)
@echo '*' Linking lib.o
-- @$(LD) $(LFLAGS) $(objects) -o lib.o
-+ @$(CC) $(LFLAGS) $(objects) -o lib.o
+- $(VERBOSE) $(LD) $(LFLAGS) $(objects) -o lib.o
++ $(VERBOSE) $(CC) $(LFLAGS) $(objects) -o lib.o
$(objects): ../Makefile.settings Makefile
diff --git a/package/bitlbee/patches/patch-protocols_Makefile b/package/bitlbee/patches/patch-protocols_Makefile
index 77ce80f3d..80407a7e6 100644
--- a/package/bitlbee/patches/patch-protocols_Makefile
+++ b/package/bitlbee/patches/patch-protocols_Makefile
@@ -1,5 +1,5 @@
---- bitlbee-3.5.1.orig/protocols/Makefile 2017-01-30 21:45:59.000000000 +0100
-+++ bitlbee-3.5.1/protocols/Makefile 2017-05-20 12:17:34.748567834 +0200
+--- bitlbee-3.6.orig/protocols/Makefile 2019-02-07 20:53:38.000000000 +0100
++++ bitlbee-3.6/protocols/Makefile 2024-02-14 17:50:36.259530848 +0100
@@ -24,7 +24,7 @@ subdirobjs = $(PROTOOBJS)
# Expansion of variables
@@ -13,8 +13,8 @@
protocols.o: $(objects) $(subdirs)
@echo '*' Linking protocols.o
-- @$(LD) $(LFLAGS) $(objects) $(subdirobjs) -o protocols.o
-+ @$(CC) $(LFLAGS) $(objects) $(subdirobjs) -o protocols.o
+- $(VERBOSE) $(LD) $(LFLAGS) $(objects) $(subdirobjs) -o protocols.o
++ $(VERBOSE) $(CC) $(LFLAGS) $(objects) $(subdirobjs) -o protocols.o
$(objects): ../Makefile.settings Makefile
diff --git a/package/bitlbee/patches/patch-protocols_jabber_Makefile b/package/bitlbee/patches/patch-protocols_jabber_Makefile
index 9bf83badc..3eca97198 100644
--- a/package/bitlbee/patches/patch-protocols_jabber_Makefile
+++ b/package/bitlbee/patches/patch-protocols_jabber_Makefile
@@ -1,5 +1,5 @@
---- bitlbee-3.5.1.orig/protocols/jabber/Makefile 2017-01-30 21:45:59.000000000 +0100
-+++ bitlbee-3.5.1/protocols/jabber/Makefile 2017-05-20 12:15:26.360306005 +0200
+--- bitlbee-3.6.orig/protocols/jabber/Makefile 2019-02-07 20:53:38.000000000 +0100
++++ bitlbee-3.6/protocols/jabber/Makefile 2024-02-14 17:50:47.363530697 +0100
@@ -14,7 +14,7 @@ endif
# [SH] Program variables
objects = conference.o io.o iq.o jabber.o jabber_util.o message.o presence.o s5bytestream.o sasl.o si.o hipchat.o
@@ -13,7 +13,7 @@
jabber_mod.o: $(objects)
@echo '*' Linking jabber_mod.o
-- @$(LD) $(LFLAGS) $(objects) -o jabber_mod.o
-+ @$(CC) $(LFLAGS) $(objects) -o jabber_mod.o
+- $(VERBOSE) $(LD) $(LFLAGS) $(objects) -o jabber_mod.o
++ $(VERBOSE) $(CC) $(LFLAGS) $(objects) -o jabber_mod.o
-include .depend/*.d
diff --git a/package/bitlbee/patches/patch-protocols_msn_Makefile b/package/bitlbee/patches/patch-protocols_msn_Makefile
deleted file mode 100644
index b2b730cc7..000000000
--- a/package/bitlbee/patches/patch-protocols_msn_Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
---- bitlbee-3.5.1.orig/protocols/msn/Makefile 2017-01-30 21:45:59.000000000 +0100
-+++ bitlbee-3.5.1/protocols/msn/Makefile 2017-05-20 12:15:47.329655386 +0200
-@@ -14,7 +14,7 @@ endif
- # [SH] Program variables
- objects = msn.o msn_util.o ns.o soap.o tables.o gw.o
-
--LFLAGS += -r
-+LFLAGS += -Wl,-r -nostdlib
-
- # [SH] Phony targets
- all: msn_mod.o
-@@ -41,6 +41,6 @@ $(objects): %.o: $(_SRCDIR_)%.c
-
- msn_mod.o: $(objects)
- @echo '*' Linking msn_mod.o
-- @$(LD) $(LFLAGS) $(objects) -o msn_mod.o
-+ @$(CC) $(LFLAGS) $(objects) -o msn_mod.o
-
- -include .depend/*.d
diff --git a/package/bitlbee/patches/patch-protocols_oscar_Makefile b/package/bitlbee/patches/patch-protocols_oscar_Makefile
deleted file mode 100644
index b9dcedf9f..000000000
--- a/package/bitlbee/patches/patch-protocols_oscar_Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
---- bitlbee-3.5.1.orig/protocols/oscar/Makefile 2017-01-30 21:45:59.000000000 +0100
-+++ bitlbee-3.5.1/protocols/oscar/Makefile 2017-05-20 12:16:09.175061142 +0200
-@@ -15,7 +15,7 @@ endif
- # [SH] Program variables
- objects = admin.o auth.o bos.o buddylist.o chat.o chatnav.o conn.o icq.o im.o info.o misc.o msgcookie.o rxhandlers.o rxqueue.o search.o service.o snac.o ssi.o stats.o tlv.o txqueue.o oscar_util.o oscar.o
-
--LFLAGS += -r
-+LFLAGS += -Wl,-r -nostdlib
-
- # [SH] Phony targets
- all: oscar_mod.o
-@@ -38,10 +38,10 @@ $(objects): ../../Makefile.settings Make
-
- $(objects): %.o: $(_SRCDIR_)%.c
- @echo '*' Compiling $<
-- @$(CC) -c $(CFLAGS) $(CFLAGS_BITLBEE) $< -o $@
-+ $(CC) -c $(CFLAGS) $(CFLAGS_BITLBEE) $< -o $@
-
- oscar_mod.o: $(objects)
- @echo '*' Linking oscar_mod.o
-- @$(LD) $(LFLAGS) $(objects) -o oscar_mod.o
-+ $(CC) $(LFLAGS) $(objects) -o oscar_mod.o
-
- -include .depend/*.d
diff --git a/package/bitlbee/patches/patch-protocols_twitter_Makefile b/package/bitlbee/patches/patch-protocols_twitter_Makefile
index 1dba18e51..f9be7d888 100644
--- a/package/bitlbee/patches/patch-protocols_twitter_Makefile
+++ b/package/bitlbee/patches/patch-protocols_twitter_Makefile
@@ -1,5 +1,5 @@
---- bitlbee-3.5.1.orig/protocols/twitter/Makefile 2017-01-30 21:45:59.000000000 +0100
-+++ bitlbee-3.5.1/protocols/twitter/Makefile 2017-05-20 12:16:01.590573095 +0200
+--- bitlbee-3.6.orig/protocols/twitter/Makefile 2019-02-07 20:53:38.000000000 +0100
++++ bitlbee-3.6/protocols/twitter/Makefile 2024-02-14 17:50:59.239530536 +0100
@@ -14,7 +14,7 @@ endif
# [SH] Program variables
objects = twitter.o twitter_http.o twitter_lib.o
@@ -13,7 +13,7 @@
twitter_mod.o: $(objects)
@echo '*' Linking twitter_mod.o
-- @$(LD) $(LFLAGS) $(objects) -o twitter_mod.o
-+ @$(CC) $(LFLAGS) $(objects) -o twitter_mod.o
+- $(VERBOSE) $(LD) $(LFLAGS) $(objects) -o twitter_mod.o
++ $(VERBOSE) $(CC) $(LFLAGS) $(objects) -o twitter_mod.o
-include .depend/*.d
diff --git a/package/bluez/Makefile b/package/bluez/Makefile
index bf12c5187..4741808b9 100644
--- a/package/bluez/Makefile
+++ b/package/bluez/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= bluez
-PKG_VERSION:= 5.43
+PKG_VERSION:= 5.66
PKG_RELEASE:= 1
-PKG_HASH:= 16c9c05d2a1da644ce3570d975ada3643d2e60c007a955bac09c0a0efeb58d15
+PKG_HASH:= 39fea64b590c9492984a0c27a89fc203e1cdc74866086efb8f4698677ab2b574
PKG_DESCR:= bluetooth applications
PKG_SECTION:= net/wifi
PKG_DEPENDS:= glib dbus libreadline libudev
@@ -36,6 +36,7 @@ CONFIGURE_ARGS+= --enable-tools \
--enable-udev \
--with-udevdir=/usr/bin \
--disable-test \
+ --disable-manpages \
--disable-systemd \
--disable-obex \
--disable-cups
diff --git a/package/bluez/patches/patch-tools_csr_usb_c b/package/bluez/patches/patch-tools_csr_usb_c
deleted file mode 100644
index 509061b56..000000000
--- a/package/bluez/patches/patch-tools_csr_usb_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- bluez-5.12.orig/tools/csr_usb.c 2013-09-16 10:36:07.000000000 +0200
-+++ bluez-5.12/tools/csr_usb.c 2013-12-21 19:22:48.000000000 +0100
-@@ -29,6 +29,7 @@
- #include <errno.h>
- #include <ctype.h>
- #include <fcntl.h>
-+#include <limits.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <string.h>
diff --git a/package/bluez/patches/patch-tools_hciattach_bcm43xx_c b/package/bluez/patches/patch-tools_hciattach_bcm43xx_c
deleted file mode 100644
index 0b8799193..000000000
--- a/package/bluez/patches/patch-tools_hciattach_bcm43xx_c
+++ /dev/null
@@ -1,32 +0,0 @@
---- bluez-5.40.orig/tools/hciattach_bcm43xx.c 2015-03-11 11:01:57.000000000 +0100
-+++ bluez-5.40/tools/hciattach_bcm43xx.c 2016-06-18 23:25:59.991459117 +0200
-@@ -43,7 +43,7 @@
- #include "hciattach.h"
-
- #ifndef FIRMWARE_DIR
--#define FIRMWARE_DIR "/etc/firmware"
-+#define FIRMWARE_DIR "/lib/firmware"
- #endif
-
- #define FW_EXT ".hcd"
-@@ -366,11 +366,8 @@ int bcm43xx_init(int fd, int def_speed,
- return -1;
-
- if (bcm43xx_locate_patch(FIRMWARE_DIR, chip_name, fw_path)) {
-- fprintf(stderr, "Patch not found, continue anyway\n");
-+ fprintf(stderr, "Patch not found for %s, continue anyway\n", chip_name);
- } else {
-- if (bcm43xx_set_speed(fd, ti, speed))
-- return -1;
--
- if (bcm43xx_load_firmware(fd, fw_path))
- return -1;
-
-@@ -380,6 +377,7 @@ int bcm43xx_init(int fd, int def_speed,
- return -1;
- }
-
-+ sleep(1);
- if (bcm43xx_reset(fd))
- return -1;
- }
diff --git a/package/boost/Makefile b/package/boost/Makefile
index 2add96f5e..4bd846e0f 100644
--- a/package/boost/Makefile
+++ b/package/boost/Makefile
@@ -4,13 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= boost
-PKG_VERSION:= 1.67.0
-PKG_EXTRAVER:= 1_67
+PKG_VERSION:= 1.84.0
+PKG_EXTRAVER:= 1_84
PKG_RELEASE:= 1
-PKG_HASH:= 8aa4e330c870ef50a896634c931adf468b21f8a69b77007e45c444151229f665
+PKG_HASH:= a5800f405508f5df8114558ca9855d2640a2de8f0445f051fa1c7c3383045724
PKG_DESCR:= portable c++ library
PKG_SECTION:= libs/misc
-PKG_BUILDDEP:= python2-host
+PKG_BUILDDEP:= python3-host
PKG_NEEDS:= c++
PKG_URL:= http://www.boost.org/
PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=boost/}
@@ -19,12 +19,13 @@ PKG_OPTS:= dev
DISTFILES:= boost_$(PKG_EXTRAVER)_0.tar.gz
WRKDIST= ${WRKDIR}/${PKG_NAME}_$(PKG_EXTRAVER)_0
-PKG_FLAVOURS_BOOST:= DATE_TIME GRAPH GRAPH_PARALLEL IOSTREAMS LOG MATH PROGRAM_OPTIONS PYTHON REGEX SERIALIZATION SIGNALS TEST WAVE
+PKG_FLAVOURS_BOOST:= DATE_TIME JSON GRAPH GRAPH_PARALLEL IOSTREAMS LOG MATH PROGRAM_OPTIONS PYTHON REGEX SERIALIZATION TEST WAVE
PKGFD_DATE_TIME:= with date-time
+PKGFD_JSON:= with json
PKGFD_PYTHON:= with python
-PKGFB_PYTHON:= python2
-PKGFS_PYTHON:= python2
+PKGFB_PYTHON:= python3
+PKGFS_PYTHON:= python3
PKGFD_IOSTREAMS:= with iostreams
PKGFD_GRAPH:= with graph
PKGFD_GRAPH_PARALLEL:= with graph_parallel
@@ -33,7 +34,6 @@ PKGFD_LOG:= with log
PKGFD_PROGRAM_OPTIONS:= with program_options
PKGFD_REGEX:= with regex
PKGFD_SERIALIZATION:= with serialization
-PKGFD_SIGNALS:= with signals
PKGFD_TEST:= with test
PKGFD_WAVE:= with wave
@@ -41,7 +41,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,BOOST,boost,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-include ${ADK_TOPDIR}/mk/python.mk
+include ${ADK_TOPDIR}/mk/python3.mk
CONFIG_STYLE:= manual
BUILD_STYLE:= manual
@@ -65,6 +65,9 @@ endif
ifeq (${ADK_PACKAGE_BOOST_DATE_TIME},)
CONFIGURE_ARGS+= --without-date_time
endif
+ifeq (${ADK_PACKAGE_BOOST_JSON},)
+CONFIGURE_ARGS+= --without-json
+endif
ifeq (${ADK_PACKAGE_BOOST_PYTHON},)
CONFIGURE_ARGS+= --without-python
endif
@@ -86,9 +89,6 @@ endif
ifeq (${ADK_PACKAGE_BOOST_SERIALIZATION},)
CONFIGURE_ARGS+= --without-serialization
endif
-ifeq (${ADK_PACKAGE_BOOST_SIGNALS},)
-CONFIGURE_ARGS+= --without-signals
-endif
ifeq (${ADK_PACKAGE_BOOST_TEST},)
CONFIGURE_ARGS+= --without-test
endif
@@ -96,6 +96,9 @@ ifeq (${ADK_PACKAGE_BOOST_WAVE},)
CONFIGURE_ARGS+= --without-wave
endif
+ifeq ($(ADK_TARGET_ARCH),aarch64)
+BOOST_ARCH:= architecture=arm
+endif
ifeq ($(ADK_TARGET_ARCH),arm)
BOOST_ARCH:= architecture=arm
endif
@@ -121,6 +124,9 @@ endif
ifeq ($(ADK_TARGET_ARCH),arm)
BOOST_ABI:= abi=aapcs
endif
+ifeq ($(ADK_TARGET_ARCH),aarch64)
+BOOST_ABI:= abi=aapcs
+endif
ifeq ($(ADK_TARGET_ARCH),mips)
BOOST_ABI:= abi=o32
endif
@@ -128,7 +134,7 @@ endif
# some variables for build
GPP_PATH:= ${TOOLCHAIN_DIR}/usr/bin/${GNU_TARGET_NAME}-g++
GPP_VERSION:= "`${GPP_PATH} -v 2>&1 | tail -1 | awk '{print $$3}'`"
-BJAM_PATH:= "`find ${WRKBUILD} -type f -name "bjam$(EXEEXT)"`"
+BJAM_PATH:= "`find ${WRKBUILD} -type f -name "b2$(EXEEXT)"`"
PYTHON_PATH:= ${STAGING_HOST_DIR}/usr/bin/python
PYTHON_INCLUDE:="`find ${STAGING_TARGET_DIR}/usr/include/ -maxdepth 1 -type d -name "python*" | head -1`"
PYTHON_LIB:= "`find ${STAGING_TARGET_DIR}/usr/lib/ -maxdepth 1 -type d -name "python*" | head -1`"
diff --git a/package/boost/patches/patch-boost_atomic_detail_caps_gcc_atomic_hpp b/package/boost/patches/patch-boost_atomic_detail_caps_gcc_atomic_hpp
deleted file mode 100644
index c9ec14ebb..000000000
--- a/package/boost/patches/patch-boost_atomic_detail_caps_gcc_atomic_hpp
+++ /dev/null
@@ -1,12 +0,0 @@
---- boost_1_67_0.orig/boost/atomic/detail/caps_gcc_atomic.hpp 2018-04-11 15:49:00.000000000 +0200
-+++ boost_1_67_0/boost/atomic/detail/caps_gcc_atomic.hpp 2018-05-14 05:53:50.064807243 +0200
-@@ -127,7 +127,7 @@
- #define BOOST_ATOMIC_CHAR32_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
- #define BOOST_ATOMIC_CHAR16_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
-
--#define BOOST_ATOMIC_THREAD_FENCE 2
--#define BOOST_ATOMIC_SIGNAL_FENCE 2
-+#define BOOST_ATOMIC_THREAD_FENCE 0
-+#define BOOST_ATOMIC_SIGNAL_FENCE 0
-
- #endif // BOOST_ATOMIC_DETAIL_CAPS_GCC_ATOMIC_HPP_INCLUDED_
diff --git a/package/brcm-bluetooth/files/hci b/package/brcm-bluetooth/files/hci
index 69716e147..ecc86a210 100644
--- a/package/brcm-bluetooth/files/hci
+++ b/package/brcm-bluetooth/files/hci
@@ -11,10 +11,9 @@ start)
target=$(cat /etc/.adktarget)
case $target in
raspberry-pi3 | raspberry-pi3p)
- hciattach /dev/ttyAMA0 bcm43xx 921600 noflow -
+ btattach -B /dev/ttyAMA0 -P bcm
;;
*)
- echo "No supported target found"
;;
esac
;;
diff --git a/package/brcm-bluetooth/src/BCM4345C5.hcd b/package/brcm-bluetooth/src/BCM4345C5.hcd
new file mode 100644
index 000000000..f92310c94
--- /dev/null
+++ b/package/brcm-bluetooth/src/BCM4345C5.hcd
Binary files differ
diff --git a/package/brcmfmac-firmware/Makefile b/package/brcmfmac-firmware/Makefile
index 4fd65ab52..c714fd044 100644
--- a/package/brcmfmac-firmware/Makefile
+++ b/package/brcmfmac-firmware/Makefile
@@ -5,7 +5,7 @@ include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= brcmfmac-firmware
PKG_VERSION:= 1.0
-PKG_RELEASE:= 3
+PKG_RELEASE:= 6
PKG_DESCR:= firmware for broadcom wireless cards
PKG_SECTION:= sys/firmware
@@ -21,6 +21,8 @@ INSTALL_STYLE:= manual
do-install:
${INSTALL_DIR} ${IDIR_BRCMFMAC_FIRMWARE}/lib/firmware/brcm
- ${CP} ${WRKBUILD}/* ${IDIR_BRCMFMAC_FIRMWARE}/lib/firmware/brcm
+ ${CP} ${WRKBUILD}/brcm/* ${IDIR_BRCMFMAC_FIRMWARE}/lib/firmware/brcm
+ ${INSTALL_DIR} ${IDIR_BRCMFMAC_FIRMWARE}/lib/firmware/cypress
+ ${CP} ${WRKBUILD}/cypress/* ${IDIR_BRCMFMAC_FIRMWARE}/lib/firmware/cypress
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/brcmfmac-firmware/src/BCM43430A1.hcd b/package/brcmfmac-firmware/src/BCM43430A1.hcd
deleted file mode 100644
index 9b087f1b6..000000000
--- a/package/brcmfmac-firmware/src/BCM43430A1.hcd
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/BCM4345C0.hcd b/package/brcmfmac-firmware/src/BCM4345C0.hcd
deleted file mode 100644
index 6870153de..000000000
--- a/package/brcmfmac-firmware/src/BCM4345C0.hcd
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/BCM-0a5c-6410.hcd b/package/brcmfmac-firmware/src/brcm/BCM-0a5c-6410.hcd
new file mode 120000
index 000000000..df0229362
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM-0a5c-6410.hcd
@@ -0,0 +1 @@
+BCM-0bb4-0306.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/BCM-0bb4-0306.hcd b/package/brcmfmac-firmware/src/brcm/BCM-0bb4-0306.hcd
new file mode 100644
index 000000000..dee1dc756
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM-0bb4-0306.hcd
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/BCM43430A1.hcd b/package/brcmfmac-firmware/src/brcm/BCM43430A1.hcd
new file mode 100644
index 000000000..2a7ec965f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM43430A1.hcd
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,3-model-b.hcd b/package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,3-model-b.hcd
new file mode 120000
index 000000000..51441492a
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,3-model-b.hcd
@@ -0,0 +1 @@
+BCM43430A1.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,model-zero-2-w.hcd b/package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,model-zero-2-w.hcd
new file mode 120000
index 000000000..2bc194fc9
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,model-zero-2-w.hcd
@@ -0,0 +1 @@
+../synaptics/SYN43430A1.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,model-zero-w.hcd b/package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,model-zero-w.hcd
new file mode 120000
index 000000000..51441492a
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM43430A1.raspberrypi,model-zero-w.hcd
@@ -0,0 +1 @@
+BCM43430A1.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/BCM43430B0.hcd b/package/brcmfmac-firmware/src/brcm/BCM43430B0.hcd
new file mode 100644
index 000000000..5c44f2a5d
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM43430B0.hcd
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/BCM43430B0.raspberrypi,model-zero-2-w.hcd b/package/brcmfmac-firmware/src/brcm/BCM43430B0.raspberrypi,model-zero-2-w.hcd
new file mode 120000
index 000000000..d62254786
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM43430B0.raspberrypi,model-zero-2-w.hcd
@@ -0,0 +1 @@
+../synaptics/SYN43430B0.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/BCM4345C0.hcd b/package/brcmfmac-firmware/src/brcm/BCM4345C0.hcd
new file mode 100644
index 000000000..007611e37
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM4345C0.hcd
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,3-model-a-plus.hcd b/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,3-model-a-plus.hcd
new file mode 120000
index 000000000..d8d4f1d34
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,3-model-a-plus.hcd
@@ -0,0 +1 @@
+BCM4345C0.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,3-model-b-plus.hcd b/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,3-model-b-plus.hcd
new file mode 120000
index 000000000..d8d4f1d34
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,3-model-b-plus.hcd
@@ -0,0 +1 @@
+BCM4345C0.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,4-compute-module.hcd b/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,4-compute-module.hcd
new file mode 120000
index 000000000..d8d4f1d34
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,4-compute-module.hcd
@@ -0,0 +1 @@
+BCM4345C0.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,4-model-b.hcd b/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,4-model-b.hcd
new file mode 120000
index 000000000..d8d4f1d34
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,4-model-b.hcd
@@ -0,0 +1 @@
+BCM4345C0.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,5-model-b.hcd b/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,5-model-b.hcd
new file mode 120000
index 000000000..d8d4f1d34
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM4345C0.raspberrypi,5-model-b.hcd
@@ -0,0 +1 @@
+BCM4345C0.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/BCM4345C5.hcd b/package/brcmfmac-firmware/src/brcm/BCM4345C5.hcd
new file mode 100644
index 000000000..762359d31
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM4345C5.hcd
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/BCM4345C5.raspberrypi,4-compute-module.hcd b/package/brcmfmac-firmware/src/brcm/BCM4345C5.raspberrypi,4-compute-module.hcd
new file mode 120000
index 000000000..00da8bb90
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM4345C5.raspberrypi,4-compute-module.hcd
@@ -0,0 +1 @@
+BCM4345C5.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/BCM4345C5.raspberrypi,400.hcd b/package/brcmfmac-firmware/src/brcm/BCM4345C5.raspberrypi,400.hcd
new file mode 120000
index 000000000..00da8bb90
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/BCM4345C5.raspberrypi,400.hcd
@@ -0,0 +1 @@
+BCM4345C5.hcd \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/bcm43xx-0.fw b/package/brcmfmac-firmware/src/brcm/bcm43xx-0.fw
index 9ee5ccc10..9ee5ccc10 100644
--- a/package/brcmfmac-firmware/src/bcm43xx-0.fw
+++ b/package/brcmfmac-firmware/src/brcm/bcm43xx-0.fw
Binary files differ
diff --git a/package/brcmfmac-firmware/src/bcm43xx_hdr-0.fw b/package/brcmfmac-firmware/src/brcm/bcm43xx_hdr-0.fw
index a6db78de0..a6db78de0 100644
--- a/package/brcmfmac-firmware/src/bcm43xx_hdr-0.fw
+++ b/package/brcmfmac-firmware/src/brcm/bcm43xx_hdr-0.fw
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43012-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43012-sdio.bin
new file mode 120000
index 000000000..6ed9407a6
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43012-sdio.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43012-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43012-sdio.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43012-sdio.clm_blob
new file mode 120000
index 000000000..4715e14ce
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43012-sdio.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac43012-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcmfmac43143-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43143-sdio.bin
index e4f56f3d1..e4f56f3d1 100644
--- a/package/brcmfmac-firmware/src/brcmfmac43143-sdio.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43143-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43143.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43143.bin
index 28b8db998..28b8db998 100644
--- a/package/brcmfmac-firmware/src/brcmfmac43143.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43143.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43236b.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43236b.bin
index 8a2004a91..8a2004a91 100644
--- a/package/brcmfmac-firmware/src/brcmfmac43236b.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43236b.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43241b0-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43241b0-sdio.bin
new file mode 100644
index 000000000..8cc3cd208
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43241b0-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43241b4-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43241b4-sdio.bin
index 5d10c24f1..5d10c24f1 100644
--- a/package/brcmfmac-firmware/src/brcmfmac43241b4-sdio.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43241b4-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43241b5-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43241b5-sdio.bin
index 8d70d17cf..8d70d17cf 100644
--- a/package/brcmfmac-firmware/src/brcmfmac43241b5-sdio.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43241b5-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43242a.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43242a.bin
index 80604d853..80604d853 100644
--- a/package/brcmfmac-firmware/src/brcmfmac43242a.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43242a.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac4329-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.bin
index d4c4560cd..d4c4560cd 100644
--- a/package/brcmfmac-firmware/src/brcmfmac4329-sdio.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-dl.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-dl.bin
new file mode 100644
index 000000000..d4c4560cd
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-dl.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-dl.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-dl.txt
new file mode 100644
index 000000000..d0fa0f556
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-dl.txt
@@ -0,0 +1,70 @@
+# bcm4329 NVRAM
+# $Copyright (C) 2008 Broadcom Corporation$
+# $id$
+
+sromrev=3
+vendid=0x14e4
+devid=0x432f
+boardtype=0x53e
+
+boardrev=0x41
+
+#boardflags=0x1200
+boardflags=0x200
+
+# Specify the xtalfreq if it is otherthan 38.4MHz
+xtalfreq=37400
+
+aa2g=3
+aa5g=0
+
+ag0=255
+#tri2g=0x64
+
+# 11g paparams
+pa0b0=5542,5542,5542
+pa0b1=64244,64244,64244
+pa0b2=65202,65202,65202
+
+pa0itssit=62
+pa0maxpwr=74
+opo=0
+mcs2gpo0=0x6666
+mcs2gpo1=0x6666
+
+# 11g rssi params
+rssismf2g=0xa,0xa,0xa
+rssismc2g=0xb,0xb,0xb
+rssisav2g=0x3,0x3,0x3
+bxa2g=0
+
+# country code
+ccode=ALL
+cctl=0x0
+cckdigfilttype=0
+ofdmdigfilttype=1
+
+rxpo2g=0
+
+boardnum=1
+macaddr=00:90:4c:c5:00:34
+
+# xtal pu and pd time control variable
+# pu time is driver default (0x1501)
+#r13t=0x1501
+
+#######
+nocrc=1
+
+#for mfgc
+otpimagesize=182
+
+# sdio extra configs
+hwhdr=0x05ffff031030031003100000
+
+#This generates empty F1, F2 and F3 tuple chains, and may be used if the host SDIO stack does not require the standard tuples.
+#RAW1=80 02 fe ff
+
+#This includes the standard FUNCID and FUNCE tuples in the F1, F2, F3 and common CIS.
+RAW1=80 32 fe 21 02 0c 00 22 2a 01 01 00 00 c5 0 e6 00 00 00 00 00 40 00 00 ff ff 80 00 00 00 00 00 00 00 00 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 20 04 D0 2 29 43 21 02 0c 00 22 04 00 20 00 5A
+nvramver=4.218.214.0
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-q.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-q.bin
new file mode 100644
index 000000000..d4c4560cd
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-q.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-q.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-q.txt
new file mode 100644
index 000000000..d0fa0f556
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.solidrun,cubox-i-q.txt
@@ -0,0 +1,70 @@
+# bcm4329 NVRAM
+# $Copyright (C) 2008 Broadcom Corporation$
+# $id$
+
+sromrev=3
+vendid=0x14e4
+devid=0x432f
+boardtype=0x53e
+
+boardrev=0x41
+
+#boardflags=0x1200
+boardflags=0x200
+
+# Specify the xtalfreq if it is otherthan 38.4MHz
+xtalfreq=37400
+
+aa2g=3
+aa5g=0
+
+ag0=255
+#tri2g=0x64
+
+# 11g paparams
+pa0b0=5542,5542,5542
+pa0b1=64244,64244,64244
+pa0b2=65202,65202,65202
+
+pa0itssit=62
+pa0maxpwr=74
+opo=0
+mcs2gpo0=0x6666
+mcs2gpo1=0x6666
+
+# 11g rssi params
+rssismf2g=0xa,0xa,0xa
+rssismc2g=0xb,0xb,0xb
+rssisav2g=0x3,0x3,0x3
+bxa2g=0
+
+# country code
+ccode=ALL
+cctl=0x0
+cckdigfilttype=0
+ofdmdigfilttype=1
+
+rxpo2g=0
+
+boardnum=1
+macaddr=00:90:4c:c5:00:34
+
+# xtal pu and pd time control variable
+# pu time is driver default (0x1501)
+#r13t=0x1501
+
+#######
+nocrc=1
+
+#for mfgc
+otpimagesize=182
+
+# sdio extra configs
+hwhdr=0x05ffff031030031003100000
+
+#This generates empty F1, F2 and F3 tuple chains, and may be used if the host SDIO stack does not require the standard tuples.
+#RAW1=80 02 fe ff
+
+#This includes the standard FUNCID and FUNCE tuples in the F1, F2, F3 and common CIS.
+RAW1=80 32 fe 21 02 0c 00 22 2a 01 01 00 00 c5 0 e6 00 00 00 00 00 40 00 00 ff ff 80 00 00 00 00 00 00 00 00 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 20 04 D0 2 29 43 21 02 0c 00 22 04 00 20 00 5A
+nvramver=4.218.214.0
diff --git a/package/brcmfmac-firmware/src/brcmfmac4329-sdio.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.txt
index 6be3013aa..6be3013aa 100644
--- a/package/brcmfmac-firmware/src/brcmfmac4329-sdio.txt
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4329-sdio.txt
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.Prowise-PT301.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.Prowise-PT301.txt
new file mode 100644
index 000000000..67381ab43
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.Prowise-PT301.txt
@@ -0,0 +1,89 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2018 Linaro Ltd
+# NVRAM config file for the Ampak AP6330 4330 WiFi/BT module found on the
+# Prowise PT301 tablet
+aa2g=1
+aa5g=1
+ag0=0x40
+ag1=0xBF
+boardflags=0x10080a00
+# boardflags3 is not set
+boardnum=22
+boardrev=0x1202
+boardtype=0x05e1
+bphyscale=17
+# btc_params is not set
+cckPwrIdxCorr=-15
+cckPwrOffset=6
+cckdigfilttype=20
+ccode=X2
+# cldo_pwm is not set
+dacrate2g=160
+dacrate5g=160
+devid=0x4360
+il0macaddr=00:90:4c:c5:12:38
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=0x44
+maxp5ga0=0x3A
+maxp5gha0=0x3A
+maxp5gla0=0x3A
+mcs2gpo0=0x4444
+mcs2gpo1=0x4444
+mcs5ghpo0=0x2222
+mcs5ghpo1=0x2222
+mcs5glpo0=0x2222
+mcs5glpo1=0x2222
+mcs5gpo0=0x2222
+mcs5gpo1=0x2222
+nocrc=1
+noise_cal_adj_2g=-3
+noise_cal_ref_2g=53
+ofdm2gpo=0x22222222
+ofdm5ghpo=0x00000000
+ofdm5glpo=0x00000000
+ofdm5gpo=0x00000000
+pa0b0=4924
+pa0b1=-595
+pa0b2=-157
+pa0itssit=0x20
+pa1b0=4880
+pa1b1=-625
+pa1b2=-200
+pa1hib0=4880
+pa1hib1=-620
+pa1hib2=-190
+pa1lob0=5050
+pa1lob1=-630
+pa1lob2=-195
+pacalpwr2g=13
+pacalpwr5g1=11
+pacalpwr5g=13
+pacalpwr5ghi1=11
+pacalpwr5ghi=13
+pacalpwr5glo1=11
+pacalpwr5glo=13
+prodid=0x0547
+rfreg033=0x19
+rfreg033_cck=0x1f
+rfreg088=15
+rssisav2g=0x7
+rssisav5g=0x7
+rssismc2g=0x3
+rssismc5g=0x3
+rssismf2g=0xa
+rssismf5g=0x4
+rxpo5g=0
+sd_gpdc=0
+sd_gpout=0
+sd_gpval=1
+sromrev=3
+swctrlmap_2g=0x04040404,0x02020202,0x02020202,0x18282,0x1ff
+swctrlmap_5g=0x10101010,0x28282020,0x20202020,0x10202,0x0f8
+triso2g=3
+triso5g=6
+txalpfbyp2g=1
+txgaintbl=1
+vendid=0x14e4
+wl0id=0x431b
+xtalfreq=26000
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.bin
new file mode 100644
index 000000000..3dd04446e
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac4330-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-dl.bin
index e3bc35546..e3bc35546 100644
--- a/package/brcmfmac-firmware/src/brcmfmac4330-sdio.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-dl.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-dl.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-dl.txt
new file mode 100644
index 000000000..09a044f78
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-dl.txt
@@ -0,0 +1,118 @@
+manfid=0x2d0
+prodid=0x0532
+vendid=0x14e4
+devid=0x4360
+boardtype=0x0532
+boardrev=0x20
+boardflags=0x10080201
+
+nocrc=1
+xtalfreq=37400
+xtalmode=0x20,0x4,0
+boardnum=22
+macaddr=00:90:4c:c5:12:38
+ag0=252
+ag1=252
+aa2g=1
+aa5g=1
+ccode=EU
+regrev=5
+
+#for BT-coexistence
+btc_params80=0
+btc_params6=10
+btc_params8=10000
+
+sd_gpout=0
+# sd_oobonly=1
+muxenab=0x10
+
+# 2G PA param_B42R 110927
+pa0b0=0x12E4
+pa0b1=0xFE09
+pa0b2=0xFF9A
+#pa0itssit=62
+rssismf2g=0xa
+rssismc2g=0x3
+rssisav2g=0x7
+
+# rssi params for 5GHz B42R_110803
+#rssismf5g=0x4
+rssismf5g=0xa
+rssismc5g=0x7
+rssisav5g=0x1
+#PA parameters for lower band
+pa1lob0=0x144F
+pa1lob1=0xFD6B
+pa1lob2=0xFF3B
+#PA parameters for midband
+pa1b0=0x139C
+pa1b1=0xFD87
+pa1b2=0xFF4F
+#PA parameters for high band
+pa1hib0=0x12CA
+pa1hib1=0xFD9A
+pa1hib2=0xFF4E
+
+# 2G PA offset
+maxp2ga0=64
+sromrev=3
+cckpo=0
+ofdm2gpo=0x66666666
+mcs2gpo0=0xaaaa
+mcs2gpo1=0xaaaa
+
+# 5G PA offset
+maxp5ga0=66
+maxp5gla0=66
+maxp5gha0=66
+ofdm5gpo=0x22222222
+ofdm5glpo=0x11111111
+ofdm5ghpo=0x22222222
+mcs5gpo0=0x6666
+mcs5gpo1=0x6666
+mcs5glpo0=0x5555
+mcs5glpo1=0x5555
+mcs5ghpo0=0x6666
+mcs5ghpo1=0x6666
+
+cckPwrOffset=4
+cckdigfilttype=22
+ofdmdigfilttype=2
+extpagain5g=2
+#wl0id=0x431b
+
+# For 2GHz Tx EVM/SM
+rfreg033=0x19
+rfreg033_cck=0x1d
+pacalidx2g=65
+dacrate2g=160
+txalpfbyp2g=1
+bphyscale=17
+
+# 5GHz LOFT and IQ CAL
+txgaintbl5g=1
+txiqlopapu5g=1
+txiqlopag5g=0x10
+iqlocalidx5g=24
+
+# 5GHz Noise CAL parameter
+noise_cal_po_5g=5
+noise_cal_enable_5g=0
+
+# 2GHz RxPER at low rates
+noise_cal_ref_2g=56
+noise_cal_po_bias_2g=-4
+noise_cal_enable_2g=1
+
+# Max input level on a-band
+triso5g=9
+
+# Tx power control, especially temp.
+tssitime=1
+
+#fc+1.7GHz Spur Elimination
+loidacmode5g=1
+
+swctrlmap_2g=0x84048404, 0x82028202, 0x84048404, 0x010202, 0x1ff
+swctrlmap_5g=0xC040C040, 0xB030A020, 0xA020C040, 0x010A02, 0x2F8
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-q.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-q.bin
new file mode 100644
index 000000000..e3bc35546
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-q.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-q.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-q.txt
new file mode 100644
index 000000000..09a044f78
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.solidrun,cubox-i-q.txt
@@ -0,0 +1,118 @@
+manfid=0x2d0
+prodid=0x0532
+vendid=0x14e4
+devid=0x4360
+boardtype=0x0532
+boardrev=0x20
+boardflags=0x10080201
+
+nocrc=1
+xtalfreq=37400
+xtalmode=0x20,0x4,0
+boardnum=22
+macaddr=00:90:4c:c5:12:38
+ag0=252
+ag1=252
+aa2g=1
+aa5g=1
+ccode=EU
+regrev=5
+
+#for BT-coexistence
+btc_params80=0
+btc_params6=10
+btc_params8=10000
+
+sd_gpout=0
+# sd_oobonly=1
+muxenab=0x10
+
+# 2G PA param_B42R 110927
+pa0b0=0x12E4
+pa0b1=0xFE09
+pa0b2=0xFF9A
+#pa0itssit=62
+rssismf2g=0xa
+rssismc2g=0x3
+rssisav2g=0x7
+
+# rssi params for 5GHz B42R_110803
+#rssismf5g=0x4
+rssismf5g=0xa
+rssismc5g=0x7
+rssisav5g=0x1
+#PA parameters for lower band
+pa1lob0=0x144F
+pa1lob1=0xFD6B
+pa1lob2=0xFF3B
+#PA parameters for midband
+pa1b0=0x139C
+pa1b1=0xFD87
+pa1b2=0xFF4F
+#PA parameters for high band
+pa1hib0=0x12CA
+pa1hib1=0xFD9A
+pa1hib2=0xFF4E
+
+# 2G PA offset
+maxp2ga0=64
+sromrev=3
+cckpo=0
+ofdm2gpo=0x66666666
+mcs2gpo0=0xaaaa
+mcs2gpo1=0xaaaa
+
+# 5G PA offset
+maxp5ga0=66
+maxp5gla0=66
+maxp5gha0=66
+ofdm5gpo=0x22222222
+ofdm5glpo=0x11111111
+ofdm5ghpo=0x22222222
+mcs5gpo0=0x6666
+mcs5gpo1=0x6666
+mcs5glpo0=0x5555
+mcs5glpo1=0x5555
+mcs5ghpo0=0x6666
+mcs5ghpo1=0x6666
+
+cckPwrOffset=4
+cckdigfilttype=22
+ofdmdigfilttype=2
+extpagain5g=2
+#wl0id=0x431b
+
+# For 2GHz Tx EVM/SM
+rfreg033=0x19
+rfreg033_cck=0x1d
+pacalidx2g=65
+dacrate2g=160
+txalpfbyp2g=1
+bphyscale=17
+
+# 5GHz LOFT and IQ CAL
+txgaintbl5g=1
+txiqlopapu5g=1
+txiqlopag5g=0x10
+iqlocalidx5g=24
+
+# 5GHz Noise CAL parameter
+noise_cal_po_5g=5
+noise_cal_enable_5g=0
+
+# 2GHz RxPER at low rates
+noise_cal_ref_2g=56
+noise_cal_po_bias_2g=-4
+noise_cal_enable_2g=1
+
+# Max input level on a-band
+triso5g=9
+
+# Tx power control, especially temp.
+tssitime=1
+
+#fc+1.7GHz Spur Elimination
+loidacmode5g=1
+
+swctrlmap_2g=0x84048404, 0x82028202, 0x84048404, 0x010202, 0x1ff
+swctrlmap_5g=0xC040C040, 0xB030A020, 0xA020C040, 0x010A02, 0x2F8
diff --git a/package/brcmfmac-firmware/src/brcmfmac4330-sdio.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.txt
index 9546246b9..9546246b9 100644
--- a/package/brcmfmac-firmware/src/brcmfmac4330-sdio.txt
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4330-sdio.txt
diff --git a/package/brcmfmac-firmware/src/brcmfmac4334-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4334-sdio.bin
index ade994fbf..ade994fbf 100644
--- a/package/brcmfmac-firmware/src/brcmfmac4334-sdio.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4334-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.bin
new file mode 120000
index 000000000..ffd98c6fd
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43340-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.meegopad-t08.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.meegopad-t08.txt
new file mode 100644
index 000000000..9535a4b6f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.meegopad-t08.txt
@@ -0,0 +1,98 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2018 Linaro Ltd
+# NVRAM config file for the Ampak AP6234 43340 WiFi/BT module found on the
+# Meegopad T08 HDMI stick
+aa2g=1
+ag0=255
+boardflags=0x0090201
+boardnum=22
+boardrev=0x1203
+boardtype=0x0653
+btc_flags=71
+btc_params22=8000
+btc_params83=9000
+btc_params84=4500
+btc_params8=15000
+cck2gpo=0x2222
+cckPwrOffset=3
+cckpapden=0
+ccode=X2
+dacrate2xen=1
+devid=0x4386
+dlocalidx5g=70
+dlorange_lowlimit=5
+gain=32
+gain_settle_dly_2g=4
+gain_settle_dly_5g=4
+iqcalidx5g=50
+iqlocalidx5g=40
+loflag=0
+lpbckmode5g=1
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=80
+maxp5ga0=80
+maxp5gha0=78
+maxp5gla0=78
+mcs2gpo0=0x5555
+mcs2gpo1=0x5555
+mcs5ghpo0=0x7777
+mcs5ghpo1=0x7777
+mcs5glpo0=0x7777
+mcs5glpo1=0x7777
+mcs5gpo0=0x8888
+mcs5gpo1=0x8888
+nocrc=1
+noise_cal_high_gain_2g=73
+noise_cal_high_gain_5g=73
+noise_cal_nf_substract_val_2g=346
+noise_cal_nf_substract_val_5g=346
+noise_cal_po_2g=-1
+noise_cal_po_40_2g=-1
+noise_cal_po_40_5g=-1
+noise_cal_po_5g=-1
+ofdm2gpo=0x333333333
+ofdm5ghpo=0x66666666
+ofdm5glpo=0x66666666
+ofdm5gpo=0x66666666
+pa0b0=6957 default
+pa0b1=-808
+pa0b2=-178
+pa0itssit=0x20
+pa1b0=5372
+pa1b1=-671
+pa1b2=-212
+pa1hib0=5620
+pa1hib1=-663
+pa1hib2=-179
+pa1lob0=5859
+pa1lob1=-693
+pa1lob2=-178
+papden2g=1
+papden5g=1
+prodid=0x0653
+rssisav2g=0x1
+rssisav5g=0x3
+rssismc2g=0x8
+rssismc5g=0x7
+rssismf2g=0xf
+rssismf5g=0xf
+rxpo5g=0
+sd_gpdc=0
+sd_gpout=4
+sd_gpval=1
+sromrev=3
+swctrlmap_2g=0x00080008,0x00100010,0x00080008,0x011010,0x11f
+swctrlmap_5g=0x00040004,0x00020002,0x00040004,0x011010,0x2fe
+triso2g=8
+triso5g=8
+tssifloor2g=69
+tssifloor5gh=74
+tssifloor5gl=77
+tssifloor5gm=77
+txalpfbyp=1
+txalpfpu=1
+txiqlopapu2g=0
+txiqlopapu5g=0
+vendid=0x14e4
+xtalfreq=37400
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt
new file mode 100644
index 000000000..1bec11e4a
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.pov-tab-p1006w-data.txt
@@ -0,0 +1,98 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2018 Linaro Ltd
+# NVRAM config file for the Ampak AP6234 43340 WiFi/BT module found on the
+# Point of View TAB-P1006W-232-3G tablet
+aa2g=1
+ag0=255
+boardflags=0x0090201
+boardnum=22
+boardrev=0x1203
+boardtype=0x0653
+btc_flags=71
+btc_params22=8000
+btc_params83=9000
+btc_params84=4500
+btc_params8=15000
+cck2gpo=0x2222
+cckPwrOffset=3
+cckpapden=0
+ccode=X2
+dacrate2xen=1
+devid=0x4386
+dlocalidx5g=70
+dlorange_lowlimit=5
+gain=32
+gain_settle_dly_2g=4
+gain_settle_dly_5g=4
+iqcalidx5g=50
+iqlocalidx5g=40
+loflag=0
+lpbckmode5g=1
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=72
+maxp5ga0=68
+maxp5gha0=68
+maxp5gla0=68
+mcs2gpo0=0x5555
+mcs2gpo1=0x5555
+mcs5ghpo0=0x7777
+mcs5ghpo1=0x7777
+mcs5glpo0=0x7777
+mcs5glpo1=0x7777
+mcs5gpo0=0x8888
+mcs5gpo1=0x8888
+nocrc=1
+noise_cal_high_gain_2g=73
+noise_cal_high_gain_5g=73
+noise_cal_nf_substract_val_2g=346
+noise_cal_nf_substract_val_5g=346
+noise_cal_po_2g=-1
+noise_cal_po_40_2g=-1
+noise_cal_po_40_5g=-1
+noise_cal_po_5g=-1
+ofdm2gpo=0x333333333
+ofdm5ghpo=0x66666666
+ofdm5glpo=0x66666666
+ofdm5gpo=0x66666666
+pa0b0=0x1ce6
+pa0b1=0xfca1
+pa0b2=0xff62
+pa0itssit=0x20
+pa1b0=0x10cb
+pa1b1=0xfdac
+pa1b2=0xfefa
+pa1hib0=0x1481
+pa1hib1=0xfd90
+pa1hib2=0xff56
+pa1lob0=0x15ef
+pa1lob1=0xfd61
+pa1lob2=0xff57
+papden2g=1
+papden5g=1
+prodid=0x0653
+rssisav2g=0x1
+rssisav5g=0x3
+rssismc2g=0x8
+rssismc5g=0x7
+rssismf2g=0xf
+rssismf5g=0xf
+rxpo5g=0
+sd_gpdc=0
+sd_gpout=4
+sd_gpval=1
+sromrev=3
+swctrlmap_2g=0x00080008,0x00100010,0x00080008,0x011010,0x11f
+swctrlmap_5g=0x00040004,0x00020002,0x00040004,0x011010,0x2fe
+triso2g=8
+triso5g=8
+tssifloor2g=69
+tssifloor5gh=74
+tssifloor5gl=77
+tssifloor5gm=77
+txalpfbyp=1
+txalpfpu=1
+txiqlopapu2g=0
+txiqlopapu5g=0
+vendid=0x14e4
+xtalfreq=37400
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.predia-basic.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.predia-basic.txt
new file mode 100644
index 000000000..c899475cc
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43340-sdio.predia-basic.txt
@@ -0,0 +1,98 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2018 Linaro Ltd
+# NVRAM config file for the Ampak AP6234 43340 WiFi/BT module found on the
+# Predia Basic tablet
+aa2g=1
+ag0=255
+boardflags=0x0090201
+boardnum=22
+boardrev=0x1203
+boardtype=0x0653
+btc_flags=71
+btc_params22=8000
+btc_params83=9000
+btc_params84=4500
+btc_params8=15000
+cck2gpo=0x2222
+cckPwrOffset=3
+cckpapden=0
+ccode=X2
+dacrate2xen=1
+devid=0x4386
+dlocalidx5g=70
+dlorange_lowlimit=5
+gain=32
+gain_settle_dly_2g=4
+gain_settle_dly_5g=4
+iqcalidx5g=50
+iqlocalidx5g=40
+loflag=0
+lpbckmode5g=1
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=76
+maxp5ga0=68
+maxp5gha0=68
+maxp5gla0=68
+mcs2gpo0=0x5555
+mcs2gpo1=0x5555
+mcs5ghpo0=0x7777
+mcs5ghpo1=0x7777
+mcs5glpo0=0x7777
+mcs5glpo1=0x7777
+mcs5gpo0=0x8888
+mcs5gpo1=0x8888
+nocrc=1
+noise_cal_high_gain_2g=73
+noise_cal_high_gain_5g=73
+noise_cal_nf_substract_val_2g=346
+noise_cal_nf_substract_val_5g=346
+noise_cal_po_2g=-1
+noise_cal_po_40_2g=-1
+noise_cal_po_40_5g=-1
+noise_cal_po_5g=-1
+ofdm2gpo=0x333333333
+ofdm5ghpo=0x66666666
+ofdm5glpo=0x66666666
+ofdm5gpo=0x66666666
+pa0b0=6957 default
+pa0b1=-808
+pa0b2=-178
+pa0itssit=0x20
+pa1b0=5372
+pa1b1=-671
+pa1b2=-212
+pa1hib0=5620
+pa1hib1=-663
+pa1hib2=-179
+pa1lob0=5859
+pa1lob1=-693
+pa1lob2=-178
+papden2g=1
+papden5g=1
+prodid=0x0653
+rssisav2g=0x1
+rssisav5g=0x3
+rssismc2g=0x8
+rssismc5g=0x7
+rssismf2g=0xf
+rssismf5g=0xf
+rxpo5g=0
+sd_gpdc=0
+sd_gpout=4
+sd_gpval=1
+sromrev=3
+swctrlmap_2g=0x00080008,0x00100010,0x00080008,0x011010,0x11f
+swctrlmap_5g=0x00040004,0x00020002,0x00040004,0x011010,0x2fe
+triso2g=8
+triso5g=8
+tssifloor2g=69
+tssifloor5gh=74
+tssifloor5gl=77
+tssifloor5gm=77
+txalpfbyp=1
+txalpfpu=1
+txiqlopapu2g=0
+txiqlopapu5g=0
+vendid=0x14e4
+xtalfreq=37400
diff --git a/package/brcmfmac-firmware/src/brcmfmac4335-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4335-sdio.bin
index a670e962c..a670e962c 100644
--- a/package/brcmfmac-firmware/src/brcmfmac4335-sdio.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4335-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.bin
new file mode 120000
index 000000000..459879f13
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43362-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt
new file mode 100644
index 000000000..90b46682f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.cubietech,cubietruck.txt
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2018 Linaro Ltd
+# NVRAM config file for the Ampak AP6210 43362 WiFi/BT module found on the
+# Cubietech Cubietruck board
+aa2g=1
+ag0=2
+boardflags2=0x80
+boardflags=0x80201
+boardnum=777
+boardrev=0x1307
+boardtype=0x0598
+btc_flags=0x6
+btc_params0=5000
+btc_params1=1000
+btc_params6=63
+cck2gpo=0x2222
+cckPwrOffset=5
+ccode=0
+devid=0x4343
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=74
+mcs2gpo0=0x6666
+mcs2gpo1=0x6666
+noise_cal_enable_2g=0
+noise_cal_po_2g=0
+ofdm2gpo=0x44444444
+pa0b0=5447
+pa0b1=-607
+pa0b2=-160
+pa0itssit=62
+pa0maxpwr=56
+pa1itssit=62
+prodid=0x492
+rssisav2g=0x7
+rssismc2g=0x3
+rssismf2g=0xa
+sromrev=3
+swctrlmap_2g=0x04040404,0x02020202,0x02020202,0x010101,0x1ff
+temp_add=29767
+temp_mult=425
+triso2g=0
+vendid=0x14e4
+wl0id=0x431b
+xtalfreq=26000
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.lemaker,bananapro.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.lemaker,bananapro.txt
new file mode 120000
index 000000000..c3f3fe933
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43362-sdio.lemaker,bananapro.txt
@@ -0,0 +1 @@
+brcmfmac43362-sdio.cubietech,cubietruck.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4339-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4339-sdio.bin
new file mode 120000
index 000000000..ee51e67ff
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4339-sdio.bin
@@ -0,0 +1 @@
+../cypress/cyfmac4339-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.AP6212.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.AP6212.txt
new file mode 100644
index 000000000..901854e67
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.AP6212.txt
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2018 Linaro Ltd
+# NVRAM config file for the Ampak AP6212 43430 WiFi/BT module
+aa2g=1
+ag0=255
+AvVmid_c0=0x0,0xc8
+boardflags=0x00404201
+# boardflags3 is not set
+boardnum=22
+boardrev=0x1101
+boardtype=0x0726
+# btc_params is not set
+cckbw202gpo=0x5555
+cckpwroffset0=5
+ccode=ALL
+# cldo_pwm is not set
+deadman_to=0xffffffff
+devid=0x43e2
+extpagain2g=0
+il0macaddr=00:90:4c:c5:12:38
+legofdmbw202gpo=0x77777777
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=90
+mcsbw202gpo=0xaaaaaaaa
+muxenab=0x10
+nocrc=1
+ofdmdigfilttype=7
+# ofdmdigfilttypebe is not set
+pa0itssit=0x20
+pa2ga0=-168,7161,-820
+# pacalidx2g is not set
+# papdendidx is not set
+# papdepsoffset is not set
+papdmode=2
+# papdvalidtest is not set
+prodid=0x0726
+# propbw202gpois not set
+# spurconfig is not set
+sromrev=11
+txpwrbckof=6
+vendid=0x14e4
+wl0id=0x431b
+xtalfreq=26000
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt
new file mode 100644
index 000000000..5b854d430
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.Hampoo-D2D3_Vi8A1.txt
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2018 Linaro Ltd
+# NVRAM config file for the 43430 WiFi/BT chip as found on the Chuwi Vi8 Plus
+# tablet's mainboard
+aa2g=1
+ag0=255
+AvVmid_c0=0x0,0xc8
+boardflags=0x00404201
+# boardflags3 is not set
+boardnum=22
+boardrev=0x1101
+boardtype=0x0726
+# btc_params is not set
+cckbw202gpo=0
+cckpwroffset0=5
+ccode=X2
+# cldo_pwm is not set
+deadman_to=0xffffffff
+devid=0x43e2
+extpagain2g=0
+il0macaddr=00:90:4c:c5:12:38
+legofdmbw202gpo=0x66111111
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=90
+mcsbw202gpo=0x77711111
+muxenab=0x1
+nocrc=1
+ofdmdigfilttype=18
+ofdmdigfilttypebe=18
+pa0itssit=0x20
+pa2ga0=-168,7161,-820
+# pacalidx2g is not set
+# papdendidx is not set
+# papdepsoffset is not set
+papdmode=1
+# papdvalidtest is not set
+prodid=0x0726
+# propbw202gpois not set
+sd_gpdc=0
+sd_gpout=0
+sd_gpval=1
+# spurconfig is not set
+sromrev=11
+txpwrbckof=6
+vendid=0x14e4
+wl0id=0x431b
+xtalfreq=26000
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.MUR1DX.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.MUR1DX.txt
new file mode 100644
index 000000000..06d4e3169
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.MUR1DX.txt
@@ -0,0 +1,44 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2018 Linaro Ltd
+# NVRAM config file for the Murata 1DX 43430 WiFi/BT module
+aa2g=1
+ag0=0
+AvVmid_c0=0x0,0xc8
+boardflags=0x00404201
+boardflags3=0x08000000
+boardnum=22
+boardrev=0x1202
+boardtype=0x0726
+# btc_params is not set
+cckbw202gpo=0x0
+cckpwroffset0=2
+ccode=ALL
+# cldo_pwm is not set
+# deadman_to is not set
+devid=0x43e2
+extpagain2g=0
+il0macaddr=00:90:4c:c5:12:38
+legofdmbw202gpo=0x88888888
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=74
+mcsbw202gpo=0xaaaaaaaa
+muxenab=0x10
+nocrc=1
+ofdmdigfilttype=18
+ofdmdigfilttypebe=18
+# pa0itssit is not set
+pa2ga0=-145,6667,-751
+pacalidx2g=48
+papdendidx=58
+papdepsoffset=-22
+papdmode=1
+papdvalidtest=1
+prodid=0x0726
+propbw202gpo=0xdd
+# spurconfig is not set
+sromrev=11
+# txpwrbckof is not set
+vendid=0x14e4
+wl0id=0x431b
+xtalfreq=37400
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.bin
new file mode 120000
index 000000000..1c68d4a58
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43430-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.clm_blob
new file mode 120000
index 000000000..6e69616c4
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac43430-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.bin
new file mode 120000
index 000000000..1c68d4a58
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43430-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.clm_blob
new file mode 120000
index 000000000..6e69616c4
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac43430-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt
new file mode 120000
index 000000000..2ed668982
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,3-model-b.txt
@@ -0,0 +1 @@
+brcmfmac43430-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.bin
new file mode 120000
index 000000000..81b110413
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.bin
@@ -0,0 +1 @@
+brcmfmac43436s-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.txt
new file mode 120000
index 000000000..8d4e628b8
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-2-w.txt
@@ -0,0 +1 @@
+brcmfmac43436s-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.bin
new file mode 120000
index 000000000..1c68d4a58
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43430-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.clm_blob
new file mode 120000
index 000000000..6e69616c4
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac43430-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt
new file mode 120000
index 000000000..2ed668982
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt
@@ -0,0 +1 @@
+brcmfmac43430-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-plus.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-plus.txt
new file mode 120000
index 000000000..e06912f7d
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-plus.txt
@@ -0,0 +1 @@
+brcmfmac43430-sdio.AP6212.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-ultra.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-ultra.txt
new file mode 120000
index 000000000..e06912f7d
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-ultra.txt
@@ -0,0 +1 @@
+brcmfmac43430-sdio.AP6212.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt
new file mode 120000
index 000000000..e06912f7d
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt
@@ -0,0 +1 @@
+brcmfmac43430-sdio.AP6212.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m3.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m3.txt
new file mode 120000
index 000000000..e06912f7d
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.sinovoip,bpi-m3.txt
@@ -0,0 +1 @@
+brcmfmac43430-sdio.AP6212.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.txt
new file mode 100644
index 000000000..25a4f9b6e
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430-sdio.txt
@@ -0,0 +1,64 @@
+# NVRAM file for BCM943430WLSELG
+# 2.4 GHz, 20 MHz BW mode
+
+# The following parameter values are just placeholders, need to be updated.
+manfid=0x2d0
+prodid=0x0726
+vendid=0x14e4
+devid=0x43e2
+boardtype=0x0726
+boardrev=0x1202
+boardnum=22
+macaddr=00:90:4c:c5:12:38
+sromrev=11
+boardflags=0x00404201
+boardflags3=0x08000000
+xtalfreq=37400
+#xtalfreq=19200
+nocrc=1
+ag0=255
+aa2g=1
+ccode=ALL
+
+pa0itssit=0x20
+extpagain2g=0
+
+#PA parameters for 2.4GHz, measured at CHIP OUTPUT
+pa2ga0=-168,7161,-820
+AvVmid_c0=0x0,0xc8
+cckpwroffset0=5
+
+# PPR params
+maxp2ga0=84
+txpwrbckof=6
+cckbw202gpo=0
+legofdmbw202gpo=0x66111111
+mcsbw202gpo=0x77711111
+propbw202gpo=0xdd
+
+# OFDM IIR :
+ofdmdigfilttype=18
+ofdmdigfilttypebe=18
+# PAPD mode:
+papdmode=1
+papdvalidtest=1
+pacalidx2g=32
+papdepsoffset=-36
+papdendidx=61
+
+il0macaddr=00:90:4c:c5:12:38
+wl0id=0x431b
+
+deadman_to=0xffffffff
+# muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG
+muxenab=0x1
+# CLDO PWM voltage settings - 0x4 - 1.1 volt
+#cldo_pwm=0x4
+
+#VCO freq 326.4MHz
+spurconfig=0x3
+
+# Improved Bluetooth coexistence parameters from Cypress
+btc_mode=1
+btc_params8=0x4e20
+btc_params1=0x7530
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.bin
new file mode 100644
index 000000000..dc5ef912d
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.ilife-S806.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.ilife-S806.txt
new file mode 100644
index 000000000..c0ec87375
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.ilife-S806.txt
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2018 Linaro Ltd
+# NVRAM config file for the 43430a0 WiFi/BT chip found on the Chuwi Hi8 tablet
+aa2g=1
+ag0=255
+AvVmid_c0=0x0,0xc8
+boardflags=0x00404201
+# boardflags3 is not set
+boardnum=22
+boardrev=0x1101
+boardtype=0x0726
+# btc_params is not set
+cckbw202gpo=0
+cckpwroffset0=5
+ccode=X2
+# cldo_pwm is not set
+deadman_to=0xffffffff
+devid=0x43e2
+extpagain2g=0
+il0macaddr=00:90:4c:c5:12:38
+legofdmbw202gpo=0x66111111
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=90
+mcsbw202gpo=0x77711111
+muxenab=0x1
+nocrc=1
+ofdmdigfilttype=18
+ofdmdigfilttypebe=18
+pa0itssit=0x20
+pa2ga0=-168,7161,-820
+# pacalidx2g is not set
+# papdendidx is not set
+# papdepsoffset is not set
+papdmode=1
+# papdvalidtest is not set
+prodid=0x0726
+# propbw202gpois not set
+sd_gpdc=0
+sd_gpout=0
+sd_gpval=1
+# spurconfig is not set
+sromrev=11
+txpwrbckof=6
+vendid=0x14e4
+wl0id=0x431b
+xtalfreq=26000
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt
new file mode 100644
index 000000000..14f56292d
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430a0-sdio.jumper-ezpad-mini3.txt
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2018 Linaro Ltd
+# NVRAM config file for the Ampak AP6212 43430a0 WiFi/BT module found on the
+# Jumper EZpad mini 3 tablet
+aa2g=1
+ag0=255
+AvVmid_c0=0x0,0xc8
+boardflags=0x00404201
+# boardflags3 is not set
+boardnum=22
+boardrev=0x1101
+boardtype=0x0726
+# btc_params is not set
+cckbw202gpo=0
+cckpwroffset0=5
+ccode=X2
+# cldo_pwm is not set
+deadman_to=0xffffffff
+devid=0x43e2
+extpagain2g=0
+il0macaddr=00:90:4c:c5:12:38
+legofdmbw202gpo=0x66111111
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=78
+mcsbw202gpo=0x77711111
+muxenab=0x1
+nocrc=1
+ofdmdigfilttype=18
+ofdmdigfilttypebe=18
+pa0itssit=0x20
+pa2ga0=-168,6009,-726
+# pacalidx2g is not set
+# papdendidx is not set
+# papdepsoffset is not set
+papdmode=1
+# papdvalidtest is not set
+prodid=0x0726
+# propbw202gpois not set
+rssicorrnorm=15
+sd_gpdc=0
+sd_gpout=0
+sd_gpval=1
+# spurconfig is not set
+sromrev=11
+txpwrbckof=6
+vendid=0x14e4
+wl0id=0x431b
+xtalfreq=26000
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.bin
new file mode 120000
index 000000000..3c46e4c67
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.bin
@@ -0,0 +1 @@
+brcmfmac43436-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.clm_blob
new file mode 120000
index 000000000..0b8821bd4
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.clm_blob
@@ -0,0 +1 @@
+brcmfmac43436-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.txt
new file mode 120000
index 000000000..545893f15
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43430b0-sdio.raspberrypi,model-zero-2-w.txt
@@ -0,0 +1 @@
+brcmfmac43436-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.bin
new file mode 100644
index 000000000..a09e0e1c9
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.clm_blob
new file mode 100644
index 000000000..1efac5060
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.clm_blob
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.bin
new file mode 120000
index 000000000..3c46e4c67
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.bin
@@ -0,0 +1 @@
+brcmfmac43436-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.clm_blob
new file mode 120000
index 000000000..0b8821bd4
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.clm_blob
@@ -0,0 +1 @@
+brcmfmac43436-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.txt
new file mode 120000
index 000000000..545893f15
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.raspberrypi,model-zero-2-w.txt
@@ -0,0 +1 @@
+brcmfmac43436-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.txt
new file mode 100644
index 000000000..8eba004ee
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43436-sdio.txt
@@ -0,0 +1,93 @@
+# NVRAM file for BCM943430WLPTH, Bx Chip
+# 2.4 GHz, 20 MHz BW mode
+# $ Copyright Broadcom $
+#
+#
+# <<Broadcom-WL-IPTag/Proprietary:>>
+
+# The following parameter values are just placeholders, need to be updated.
+manfid=0x2d0
+prodid=0x0727
+vendid=0x14e4
+devid=0x43e2
+boardtype=0x0727
+boardrev=0x1331
+boardnum=22
+macaddr=00:90:4c:c5:12:38
+sromrev=11
+boardflags=0x00404201
+boardflags3=0x08000000
+xtalfreq=37400
+nocrc=1
+ag0=255
+aa2g=1
+ccode=ALL
+
+pa0itssit=0x20
+extpagain2g=0
+
+#PA parameters for 2.4GHz, measured at CHIP OUTPUT
+pa2ga0=-203,6150,-732
+
+#PA parameters for 2.4GHz, measured at CELL_BLOCK_PORT output
+#pa2ga0=-191,6027,-713
+
+#PA parameters for 2.4GHz, measured at LTE_BLOCK_PORT output
+#pa2ga0=-161,5458,-639
+
+
+AvVmid_c0=0x0,0xc8
+cckpwroffset0=5
+
+# PPR params
+maxp2ga0=78
+txpwrbckof=6
+cckbw202gpo=0
+legofdmbw202gpo=0x66111111
+mcsbw202gpo=0x76611111
+propbw202gpo=0xcc
+
+# OFDM IIR :
+ofdmdigfilttype=18
+ofdmdigfilttypebe=18
+# PAPD mode:
+papdmode=1
+pacalidx2g=42
+papdepsoffset=-22
+papdendidx=58
+
+# LTECX flags
+#ltecxmux=0
+#ltecxpadnum=0x0102
+#ltecxfnsel=0x44
+#ltecxgcigpio=0x01
+
+il0macaddr=00:90:4c:c5:12:38
+wl0id=0x431b
+
+deadman_to=0xffffffff
+# muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG, 0x10 for OOB
+muxenab=0x10
+# CLDO PWM voltage settings - 0x4 - 1.1 volt
+#cldo_pwm=0x4
+
+#VCO freq 326.4MHz
+spurconfig=0x3
+
+AvVmidIQcal=0x2,0xa8
+
+#SW based desense - Enable by default
+#i.e using glitich statistcs as critria to change crsmin
+glitch_based_crsmin=1
+
+#/* EDTHRESH default value */
+edonthd20l=-62
+edoffthd20ul=-68
+#/* EDTHRESH adjust offset once ACI active */
+edonthd20l_adj=2
+edoffthd20ul_adj=2
+
+# Improved Bluetooth coexistence parameters
+btc_mode=1
+btc_params8=0x4e20
+btc_params1=0x7530
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.bin
new file mode 100644
index 000000000..85dca9790
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.raspberrypi,model-zero-2-w.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.raspberrypi,model-zero-2-w.bin
new file mode 120000
index 000000000..81b110413
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.raspberrypi,model-zero-2-w.bin
@@ -0,0 +1 @@
+brcmfmac43436s-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.raspberrypi,model-zero-2-w.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.raspberrypi,model-zero-2-w.txt
new file mode 120000
index 000000000..8d4e628b8
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.raspberrypi,model-zero-2-w.txt
@@ -0,0 +1 @@
+brcmfmac43436s-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.txt
new file mode 100644
index 000000000..bac892656
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43436s-sdio.txt
@@ -0,0 +1,67 @@
+# NVRAM file for BCM943430WLPTH
+# 2.4 GHz, 20 MHz BW mode
+
+# The following parameter values are just placeholders, need to be updated.
+manfid=0x2d0
+prodid=0x0727
+vendid=0x14e4
+devid=0x43e2
+boardtype=0x0727
+boardrev=0x1101
+boardnum=22
+macaddr=00:90:4c:c5:12:38
+sromrev=11
+boardflags=0x00404201
+boardflags3=0x08000000
+xtalfreq=37400
+nocrc=1
+ag0=255
+aa2g=1
+ccode=ALL
+
+pa0itssit=0x20
+extpagain2g=0
+
+#PA parameters for 2.4GHz
+pa2ga0=-191,6027,-713
+AvVmid_c0=0x0,0xc8
+cckpwroffset0=5
+
+# PPR params
+maxp2ga0=78
+txpwrbckof=6
+cckbw202gpo=0
+legofdmbw202gpo=0x66111111
+mcsbw202gpo=0x77711111
+propbw202gpo=0xdd
+
+# OFDM IIR :
+ofdmdigfilttype=18
+ofdmdigfilttypebe=18
+# PAPD mode:
+papdmode=1
+papdvalidtest=1
+pacalidx2g=45
+papdepsoffset=-30
+papdendidx=58
+
+il0macaddr=00:90:4c:c5:12:38
+wl0id=0x431b
+
+deadman_to=0xffffffff
+# muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG
+muxenab=0x1
+# CLDO PWM voltage settings - 0x4 - 1.1 volt
+#cldo_pwm=0x4
+
+#VCO freq 326.4MHz
+spurconfig=0x3
+
+#SW based desense - Enable by default
+#i.e using glitich statistcs as critria to change crsmin
+glitch_based_crsmin=1
+
+# Improved Bluetooth coexistence parameters
+btc_mode=1
+btc_params8=0x4e20
+btc_params1=0x7530
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.AW-CM256SM.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.AW-CM256SM.txt
new file mode 100644
index 000000000..4ca98ee71
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.AW-CM256SM.txt
@@ -0,0 +1,66 @@
+aa2g=1
+aa5g=1
+AvVmid_c0=0,157,1,126,1,126,1,126,1,126
+boardflags=0x00080201
+boardflags2=0x40000000
+boardflags3=0x48200100
+boardrev=0x1304
+boardtype=0x6e4
+deadman_to=481500000
+devid=0x43ab
+dot11agofdmhrbw202gpo=0x1553
+ed_thresh2g=-54
+ed_thresh5g=-54
+extpagain2g=2
+extpagain5g=2
+femctrl=0
+itrsw=1
+ltecxfnsel=0x22
+ltecxgcigpio=0x32
+ltecxmux=0
+ltecxpadnum=0x0504
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=64
+maxp5ga0=80,82,76,77
+mcsbw202gpo=0x99355533
+mcsbw205ghpo=0x99855000
+mcsbw205glpo=0x99755000
+mcsbw205gmpo=0x9df55000
+mcsbw405ghpo=0xd9755000
+mcsbw405glpo=0xb8555000
+mcsbw405gmpo=0xed955000
+mcsbw805ghpo=0xd9555000
+mcsbw805glpo=0xc8555000
+mcsbw805gmpo=0xe9555000
+muxenab=0x10
+nocrc=1
+ofdmlrbw202gpo=0x0033
+pa2ga0=-112,6296,-662
+pa2ga1=-165,3699,-515
+pa5ga0=-143,6016,-683,-141,6013,-678,-137,5988,-670,-136,5982,-670
+pa5ga1=-161,3544,-499,-166,3543,-497,-169,3569,-497,-171,3598,-498
+pdoffset2g40ma0=10
+pdoffset40ma0=0xaaaa
+pdoffset80ma0=0xaaaa
+prodid=0x06e4
+rxchain=1
+rxgains2gelnagaina0=0
+rxgains2gtrelnabypa0=0
+rxgains2gtrisoa0=0
+rxgains5gelnagaina0=0
+rxgains5gtrelnabypa0=0
+rxgains5gtrisoa0=0
+sromrev=11
+swctrlmap_2g=0x00040004,0x00020002,0x00040004,0x010a02,0x1ff
+swctrlmap_5g=0x00100010,0x00200020,0x00100010,0x010a02,0x2f4
+swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x000
+swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x000
+tssipos2g=1
+tssipos5g=1
+tworangetssi2g=1
+tworangetssi5g=1
+txchain=1
+vcodivmode=1
+vendid=0x14e4
+xtalfreq=37400
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.bin
new file mode 120000
index 000000000..9c392080f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.clm_blob
new file mode 120000
index 000000000..0ebe01506
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,pinebook-pro.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,pinebook-pro.txt
new file mode 120000
index 000000000..4c9a175e5
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,pinebook-pro.txt
@@ -0,0 +1 @@
+brcmfmac43455-sdio.AW-CM256SM.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,pinephone-pro.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,pinephone-pro.txt
new file mode 120000
index 000000000..4c9a175e5
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,pinephone-pro.txt
@@ -0,0 +1 @@
+brcmfmac43455-sdio.AW-CM256SM.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,quartz64-b.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,quartz64-b.txt
new file mode 120000
index 000000000..4c9a175e5
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.pine64,quartz64-b.txt
@@ -0,0 +1 @@
+brcmfmac43455-sdio.AW-CM256SM.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
new file mode 120000
index 000000000..9c392080f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.clm_blob
new file mode 120000
index 000000000..0ebe01506
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.txt
new file mode 120000
index 000000000..2aba486e0
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.txt
@@ -0,0 +1 @@
+brcmfmac43455-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
new file mode 120000
index 000000000..9c392080f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.clm_blob
new file mode 120000
index 000000000..0ebe01506
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
new file mode 120000
index 000000000..2aba486e0
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt
@@ -0,0 +1 @@
+brcmfmac43455-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
new file mode 120000
index 000000000..9c392080f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.clm_blob
new file mode 120000
index 000000000..0ebe01506
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt
new file mode 120000
index 000000000..2aba486e0
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt
@@ -0,0 +1 @@
+brcmfmac43455-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
new file mode 120000
index 000000000..9c392080f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.clm_blob
new file mode 120000
index 000000000..0ebe01506
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
new file mode 120000
index 000000000..2aba486e0
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt
@@ -0,0 +1 @@
+brcmfmac43455-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
new file mode 120000
index 000000000..9c392080f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.clm_blob
new file mode 120000
index 000000000..0ebe01506
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac43455-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.txt
new file mode 120000
index 000000000..2aba486e0
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.txt
@@ -0,0 +1 @@
+brcmfmac43455-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.txt
new file mode 100644
index 000000000..9a20cb7e4
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43455-sdio.txt
@@ -0,0 +1,98 @@
+# Cloned from bcm94345wlpagb_p2xx.txt
+NVRAMRev=$Rev: 498373 $
+sromrev=11
+vendid=0x14e4
+devid=0x43ab
+manfid=0x2d0
+prodid=0x06e4
+#macaddr=00:90:4c:c5:12:38
+macaddr=b8:27:eb:74:f2:6c
+nocrc=1
+boardtype=0x6e4
+boardrev=0x1304
+
+#XTAL 37.4MHz
+xtalfreq=37400
+
+btc_mode=1
+#------------------------------------------------------
+#boardflags: 5GHz eTR switch by default
+# 2.4GHz eTR switch by default
+# bit1 for btcoex
+boardflags=0x00480201
+boardflags2=0x40800000
+boardflags3=0x44200100
+phycal_tempdelta=15
+rxchain=1
+txchain=1
+aa2g=1
+aa5g=1
+tssipos5g=1
+tssipos2g=1
+femctrl=0
+AvVmid_c0=1,165,2,100,2,100,2,100,2,100
+pa2ga0=-129,6525,-718
+pa2ga1=-149,4408,-601
+pa5ga0=-185,6836,-815,-186,6838,-815,-184,6859,-815,-184,6882,-818
+pa5ga1=-202,4285,-574,-201,4312,-578,-196,4391,-586,-201,4294,-575
+itrsw=1
+pdoffsetcckma0=2
+pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0
+pdoffset2g40ma0=16
+pdoffset40ma0=0x8888
+pdoffset80ma0=0x8888
+extpagain5g=2
+extpagain2g=2
+tworangetssi2g=1
+tworangetssi5g=1
+# LTECX flags
+# WCI2
+ltecxmux=0
+ltecxpadnum=0x0504
+ltecxfnsel=0x22
+ltecxgcigpio=0x32
+
+maxp2ga0=80
+ofdmlrbw202gpo=0x0022
+dot11agofdmhrbw202gpo=0x4442
+mcsbw202gpo=0x98444422
+mcsbw402gpo=0x98444422
+maxp5ga0=82,82,82,82
+mcsbw205glpo=0xb9555000
+mcsbw205gmpo=0xb9555000
+mcsbw205ghpo=0xb9555000
+mcsbw405glpo=0xb9555000
+mcsbw405gmpo=0xb9555000
+mcsbw405ghpo=0xb9555000
+mcsbw805glpo=0xb9555000
+mcsbw805gmpo=0xb9555000
+mcsbw805ghpo=0xb9555000
+
+swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff
+swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe
+swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3
+swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3
+
+vcodivmode=1
+deadman_to=481500000
+
+ed_thresh2g=-54
+ed_thresh5g=-54
+eu_edthresh2g=-54
+eu_edthresh5g=-54
+ldo1=4
+rawtempsense=0x1ff
+cckPwrIdxCorr=3
+cckTssiDelay=150
+ofdmTssiDelay=150
+txpwr2gAdcScale=1
+txpwr5gAdcScale=1
+dot11b_opts=0x3aa85
+cbfilttype=1
+fdsslevel_ch11=6
+
+# Improved Bluetooth coexistence parameters from Cypress
+btc_mode=1
+btc_params8=0x4e20
+btc_params1=0x7530
+btc_params50=0x972c
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.bin
new file mode 100644
index 000000000..0a9df2a4b
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.clm_blob
new file mode 100644
index 000000000..36b865265
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.clm_blob
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.bin
new file mode 120000
index 000000000..a8909e119
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.bin
@@ -0,0 +1 @@
+brcmfmac43456-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.clm_blob
new file mode 120000
index 000000000..ec7513b10
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.clm_blob
@@ -0,0 +1 @@
+brcmfmac43456-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.txt
new file mode 120000
index 000000000..94cd555b2
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.txt
@@ -0,0 +1 @@
+brcmfmac43456-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.bin
new file mode 120000
index 000000000..a8909e119
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.bin
@@ -0,0 +1 @@
+brcmfmac43456-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.clm_blob
new file mode 120000
index 000000000..ec7513b10
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.clm_blob
@@ -0,0 +1 @@
+brcmfmac43456-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.txt
new file mode 120000
index 000000000..94cd555b2
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.raspberrypi,400.txt
@@ -0,0 +1 @@
+brcmfmac43456-sdio.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.txt
new file mode 100644
index 000000000..a34c69167
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43456-sdio.txt
@@ -0,0 +1,97 @@
+# Cloned from bcm94345wlpagb_p2xx.txt
+NVRAMRev=$Rev: 498373 $
+sromrev=11
+vendid=0x14e4
+devid=0x43ab
+manfid=0x2d0
+prodid=0x06e4
+#macaddr=00:90:4c:c5:12:38
+macaddr=b8:27:eb:74:f2:6c
+nocrc=1
+boardtype=0x6e4
+boardrev=0x1304
+
+#XTAL 37.4MHz
+xtalfreq=37400
+
+btc_mode=1
+#------------------------------------------------------
+#boardflags: 5GHz eTR switch by default
+# 2.4GHz eTR switch by default
+# bit1 for btcoex
+boardflags=0x00480201
+boardflags2=0x40800000
+boardflags3=0x44200100
+phycal_tempdelta=15
+rxchain=1
+txchain=1
+aa2g=1
+aa5g=1
+tssipos5g=1
+tssipos2g=1
+femctrl=0
+AvVmid_c0=0,157,1,126,1,126,1,126,1,126
+pa2ga0=-170,5896,-680
+pa2ga1=-156,4032,-547
+pa5ga0=-150,5547,-628,-150,5583,-640,-158,5608,-649,-160,5757,-673
+pa5ga1=-109,3831,-519,-88,3821,-512,-125,3731,-528,-103,3829,-516
+itrsw=1
+pdoffsetcckma0=2
+pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0
+pdoffset2g40ma0=16
+pdoffset40ma0=0x8888
+pdoffset80ma0=0x8888
+extpagain5g=2
+extpagain2g=2
+tworangetssi2g=1
+tworangetssi5g=1
+# LTECX flags
+# WCI2
+ltecxmux=0
+ltecxpadnum=0x0504
+ltecxfnsel=0x22
+ltecxgcigpio=0x32
+
+maxp2ga0=80
+ofdmlrbw202gpo=0x0022
+dot11agofdmhrbw202gpo=0x4442
+mcsbw202gpo=0x98444422
+mcsbw402gpo=0x98444422
+maxp5ga0=82,82,82,82
+mcsbw205glpo=0xb9555000
+mcsbw205gmpo=0xb9555000
+mcsbw205ghpo=0xb9555000
+mcsbw405glpo=0xb9555000
+mcsbw405gmpo=0xb9555000
+mcsbw405ghpo=0xb9555000
+mcsbw805glpo=0xb9555000
+mcsbw805gmpo=0xb9555000
+mcsbw805ghpo=0xb9555000
+
+swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff
+swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe
+swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3
+swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3
+
+vcodivmode=1
+deadman_to=481500000
+
+ed_thresh2g=-54
+ed_thresh5g=-54
+eu_edthresh2g=-54
+eu_edthresh5g=-54
+ldo1=4
+rawtempsense=0x1ff
+cckPwrIdxCorr=3
+cckTssiDelay=150
+ofdmTssiDelay=150
+txpwr2gAdcScale=1
+txpwr5gAdcScale=1
+dot11b_opts=0x3aa85
+cbfilttype=1
+fdsslevel_ch11=6
+
+# Improved Bluetooth coexistence parameters from Cypress
+btc_mode=1
+btc_params8=0x4e20
+btc_params1=0x7530
diff --git a/package/brcmfmac-firmware/src/brcmfmac4350-pcie.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4350-pcie.bin
index 303125197..303125197 100644
--- a/package/brcmfmac-firmware/src/brcmfmac4350-pcie.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4350-pcie.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac4350c2-pcie.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4350c2-pcie.bin
index 256ded123..256ded123 100644
--- a/package/brcmfmac-firmware/src/brcmfmac4350c2-pcie.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4350c2-pcie.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4354-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4354-sdio.bin
new file mode 120000
index 000000000..083453ec9
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4354-sdio.bin
@@ -0,0 +1 @@
+../cypress/cyfmac4354-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4354-sdio.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac4354-sdio.clm_blob
new file mode 120000
index 000000000..cf94fd7ab
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4354-sdio.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac4354-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.bin
new file mode 120000
index 000000000..6cc54b431
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.bin
@@ -0,0 +1 @@
+../cypress/cyfmac4356-pcie.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.clm_blob
new file mode 120000
index 000000000..7a86692d1
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac4356-pcie.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.gpd-win-pocket.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.gpd-win-pocket.txt
new file mode 100644
index 000000000..16254f55a
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-pcie.gpd-win-pocket.txt
@@ -0,0 +1,121 @@
+# SPDX-License-Identifier: GPL-2.0+
+# (C) Copyright 2018 Linaro Ltd
+# NVRAM config file for the Ampak AP6356 4356 WiFi/BT module found on the
+# GPD win / pocket handheld
+aa2g=3
+aa5g=3
+aga0=2
+aga1=2
+agbg0=2
+agbg1=2
+antswitch=0
+boardflags2=0x00802000
+boardflags3=0x0000000a
+boardflags=0x02400201
+boardrev=0x1101
+boardtype=0x073e
+cckbw202gpo=0x0000
+cckbw20ul2gpo=0x0000
+ccode=X2
+devid=0x43a3
+dot11agduphrpo=0x0
+dot11agduplrpo=0x0
+dot11agofdmhrbw202gpo=0x6666
+extpagain2g=2
+extpagain5g=2
+femctrl=10
+macaddr=00:90:4c:c5:12:38
+manfid=0x2d0
+maxp2ga0=80
+maxp2ga1=80
+maxp5ga0=78,78,78,78
+maxp5ga1=78,78,78,78
+mcsbw202gpo=0x99644422
+mcsbw205ghpo=0xdc666663
+mcsbw205glpo=0x88766663
+mcsbw205gmpo=0xd8666663
+mcsbw402gpo=0x99644422
+mcsbw405ghpo=0xaa666663
+mcsbw405glpo=0x88666663
+mcsbw405gmpo=0x88666663
+mcsbw805ghpo=0xdd666665
+mcsbw805glpo=0xbb666665
+mcsbw805gmpo=0xcc666665
+mcslr5ghpo=0x0000
+mcslr5glpo=0x0000
+mcslr5gmpo=0x0000
+nocrc=1
+ofdmlrbw202gpo=0x0022
+otpimagesize=502
+pa2ga0=-147,6192,-705
+pa2ga1=-161,6041,-701
+pa5ga0=-194,6069,-739,-188,6137,-743,-185,5931,-725,-171,5898,-715
+pa5ga1=-190,6248,-757,-190,6275,-759,-190,6225,-757,-184,6131,-746
+paprdis=0
+pdgain2g=4
+pdgain5g=4
+pdoffset40ma0=0x0000
+pdoffset40ma1=0x0000
+pdoffset80ma0=0x0000
+pdoffset80ma1=0x0000
+pdoffsetcckma0=0x4
+pdoffsetcckma1=0x4
+phycal_tempdelta=255
+rawtempsense=0x1ff
+regrev=1
+rssicorrnorm5g_c0=1,2,3,1,2,3,6,6,8,6,6,8
+rssicorrnorm5g_c1=1,2,3,2,2,2,7,7,8,7,7,8
+rssicorrnorm_c0=4,4
+rssicorrnorm_c1=4,4
+rxchain=3
+rxgains2gelnagaina0=0
+rxgains2gelnagaina1=0
+rxgains2gtrelnabypa0=0
+rxgains2gtrelnabypa1=0
+rxgains2gtrisoa0=7
+rxgains2gtrisoa1=7
+rxgains5gelnagaina0=0
+rxgains5gelnagaina1=0
+rxgains5ghelnagaina0=0
+rxgains5ghelnagaina1=0
+rxgains5ghtrelnabypa0=0
+rxgains5ghtrelnabypa1=0
+rxgains5ghtrisoa0=12
+rxgains5ghtrisoa1=11
+rxgains5gmelnagaina0=0
+rxgains5gmelnagaina1=0
+rxgains5gmtrelnabypa0=0
+rxgains5gmtrelnabypa1=0
+rxgains5gmtrisoa0=13
+rxgains5gmtrisoa1=11
+rxgains5gtrelnabypa0=0
+rxgains5gtrelnabypa1=0
+rxgains5gtrisoa0=11
+rxgains5gtrisoa1=10
+sb20in40hrpo=0x0
+sb20in40lrpo=0x0
+sb20in80and160hr5ghpo=0x0
+sb20in80and160hr5glpo=0x0
+sb20in80and160hr5gmpo=0x0
+sb20in80and160lr5ghpo=0x0
+sb20in80and160lr5glpo=0x0
+sb20in80and160lr5gmpo=0x0
+sb40and80hr5ghpo=0x0
+sb40and80hr5glpo=0x0
+sb40and80hr5gmpo=0x0
+sb40and80lr5ghpo=0x0
+sb40and80lr5glpo=0x0
+sb40and80lr5gmpo=0x0
+sromrev=11
+subband5gver=0x4
+tempoffset=255
+temps_hysteresis=15
+temps_period=15
+tempthresh=255
+tssipos2g=1
+tssipos5g=1
+tworangetssi2g=0
+tworangetssi5g=0
+txchain=3
+vendid=0x14e4
+xtalfreq=37400
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.AP6356S.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.AP6356S.txt
new file mode 100644
index 000000000..4b38c26e4
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.AP6356S.txt
@@ -0,0 +1,122 @@
+aa2g=3
+aa5g=3
+aga0=2
+aga1=2
+agbg0=2
+agbg1=2
+antswitch=0
+boardflags=0x02400201
+boardflags2=0x00802000
+boardflags3=0x0000010a
+boardrev=0x1121
+boardtype=0x073e
+cckbw202gpo=0x1222
+cckbw20ul2gpo=0x0000
+ccode=0x5855
+devid=0x43a3
+dot11agduphrpo=0x0
+dot11agduplrpo=0x0
+dot11agofdmhrbw202gpo=0x4444
+extpagain2g=2
+extpagain5g=2
+femctrl=10
+macaddr=00:90:4c:1a:10:01
+manfid=0x2d0
+maxp2ga0=72
+maxp2ga1=71
+maxp5ga0=69,70,69,68
+maxp5ga1=67,67,67,67
+mcsbw202gpo=0x9E644422
+mcsbw205ghpo=0xCC986663
+mcsbw205glpo=0xEEA86661
+mcsbw205gmpo=0xAAA86663
+mcsbw402gpo=0xE9744424
+mcsbw405ghpo=0xEEA86663
+mcsbw405glpo=0xEEB86663
+mcsbw405gmpo=0xECB86663
+mcsbw805ghpo=0xEEA86663
+mcsbw805glpo=0xEEB86663
+mcsbw805gmpo=0xEEA86663
+mcslr5ghpo=0x0000
+mcslr5glpo=0x0000
+mcslr5gmpo=0x0000
+muxenab=0x10
+nocrc=1
+ofdmlrbw202gpo=0x0022
+otpimagesize=502
+pa2ga0=-135,5769,-647
+pa2ga1=-143,6023,-677
+pa5ga0=-183,5746,-697,-172,5801,-685,-176,5707,-680,-180,5445,-659
+pa5ga1=-186,5543,-669,-193,5506,-675,-210,5282,-661,-199,5367,-665
+paprdis=0
+pdgain2g=4
+pdgain5g=4
+pdoffset40ma0=0x0000
+pdoffset40ma1=0x0000
+pdoffset80ma0=0x0000
+pdoffset80ma1=0x0000
+pdoffsetcckma0=0x4
+pdoffsetcckma1=0x4
+phycal_tempdelta=255
+rawtempsense=0x1ff
+regrev=1
+rssicorrnorm5g_c0=1,2,3,1,2,3,6,6,8,6,6,8
+rssicorrnorm5g_c1=1,2,3,2,2,2,7,7,8,7,7,8
+rssicorrnorm_c0=4,4
+rssicorrnorm_c1=4,4
+rxchain=3
+rxgains2gelnagaina0=0
+rxgains2gelnagaina1=0
+rxgains2gtrelnabypa0=0
+rxgains2gtrelnabypa1=0
+rxgains2gtrisoa0=7
+rxgains2gtrisoa1=7
+rxgains5gelnagaina0=0
+rxgains5gelnagaina1=0
+rxgains5ghelnagaina0=0
+rxgains5ghelnagaina1=0
+rxgains5ghtrelnabypa0=0
+rxgains5ghtrelnabypa1=0
+rxgains5ghtrisoa0=12
+rxgains5ghtrisoa1=11
+rxgains5gmelnagaina0=0
+rxgains5gmelnagaina1=0
+rxgains5gmtrelnabypa0=0
+rxgains5gmtrelnabypa1=0
+rxgains5gmtrisoa0=13
+rxgains5gmtrisoa1=11
+rxgains5gtrelnabypa0=0
+rxgains5gtrelnabypa1=0
+rxgains5gtrisoa0=11
+rxgains5gtrisoa1=10
+sb20in40hrpo=0x0
+sb20in40lrpo=0x0
+sb20in80and160hr5ghpo=0x0
+sb20in80and160hr5glpo=0x0
+sb20in80and160hr5gmpo=0x0
+sb20in80and160lr5ghpo=0x0
+sb20in80and160lr5glpo=0x0
+sb20in80and160lr5gmpo=0x0
+sb40and80hr5ghpo=0x0
+sb40and80hr5glpo=0x0
+sb40and80hr5gmpo=0x0
+sb40and80lr5ghpo=0x0
+sb40and80lr5glpo=0x0
+sb40and80lr5gmpo=0x0
+sromrev=11
+subband5gver=0x4
+swctrlmap_2g=0x00001040,0x00004010,0x00004010,0x200010,0xff
+swctrlmap_5g=0x00000202,0x00000101,0x00000101,0x000000,0x47
+swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x000
+swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x000
+tempoffset=255
+temps_hysteresis=15
+temps_period=15
+tempthresh=255
+tssipos2g=1
+tssipos5g=1
+tworangetssi2g=0
+tworangetssi5g=0
+txchain=3
+vendid=0x14e4
+xtalfreq=37400
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.bin
new file mode 120000
index 000000000..53115e0cc
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.bin
@@ -0,0 +1 @@
+../cypress/cyfmac4356-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.clm_blob
new file mode 120000
index 000000000..bac41e636
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac4356-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.firefly,firefly-rk3399.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.firefly,firefly-rk3399.txt
new file mode 120000
index 000000000..dffd0158f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.firefly,firefly-rk3399.txt
@@ -0,0 +1 @@
+brcmfmac4356-sdio.AP6356S.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.khadas,vim2.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.khadas,vim2.txt
new file mode 120000
index 000000000..dffd0158f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.khadas,vim2.txt
@@ -0,0 +1 @@
+brcmfmac4356-sdio.AP6356S.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.txt
new file mode 100644
index 000000000..fca63053f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.txt
@@ -0,0 +1,126 @@
+# Sample variables file for BCM94356Z NGFF 22x30mm iPA, iLNA board with PCIe for production package
+NVRAMRev=$Rev: 492104 $
+#4356 chip = 4354 A2 chip
+sromrev=11
+boardrev=0x1102
+boardtype=0x073e
+boardflags=0x02400201
+#0x2000 enable 2G spur WAR
+boardflags2=0x00802000
+boardflags3=0x0000000a
+#boardflags3 0x00000100 /* to read swctrlmap from nvram*/
+#define BFL3_5G_SPUR_WAR 0x00080000 /* enable spur WAR in 5G band */
+#define BFL3_AvVim 0x40000000 /* load AvVim from nvram */
+macaddr=00:90:4c:1a:10:01
+ccode=0x5854
+regrev=205
+antswitch=0
+pdgain5g=4
+pdgain2g=4
+tworangetssi2g=0
+tworangetssi5g=0
+paprdis=0
+femctrl=10
+vendid=0x14e4
+devid=0x43ec
+manfid=0x2d0
+#prodid=0x052e
+nocrc=1
+otpimagesize=502
+xtalfreq=37400
+rxgains2gelnagaina0=0
+rxgains2gtrisoa0=7
+rxgains2gtrelnabypa0=0
+rxgains5gelnagaina0=0
+rxgains5gtrisoa0=11
+rxgains5gtrelnabypa0=0
+rxgains5gmelnagaina0=0
+rxgains5gmtrisoa0=13
+rxgains5gmtrelnabypa0=0
+rxgains5ghelnagaina0=0
+rxgains5ghtrisoa0=12
+rxgains5ghtrelnabypa0=0
+rxgains2gelnagaina1=0
+rxgains2gtrisoa1=7
+rxgains2gtrelnabypa1=0
+rxgains5gelnagaina1=0
+rxgains5gtrisoa1=10
+rxgains5gtrelnabypa1=0
+rxgains5gmelnagaina1=0
+rxgains5gmtrisoa1=11
+rxgains5gmtrelnabypa1=0
+rxgains5ghelnagaina1=0
+rxgains5ghtrisoa1=11
+rxgains5ghtrelnabypa1=0
+rxchain=3
+txchain=3
+aa2g=3
+aa5g=3
+agbg0=2
+agbg1=2
+aga0=2
+aga1=2
+tssipos2g=1
+extpagain2g=2
+tssipos5g=1
+extpagain5g=2
+tempthresh=255
+tempoffset=255
+rawtempsense=0x1ff
+pa2ga0=-147,6192,-705
+pa2ga1=-161,6041,-701
+pa5ga0=-194,6069,-739,-188,6137,-743,-185,5931,-725,-171,5898,-715
+pa5ga1=-190,6248,-757,-190,6275,-759,-190,6225,-757,-184,6131,-746
+subband5gver=0x4
+pdoffsetcckma0=0x4
+pdoffsetcckma1=0x4
+pdoffset40ma0=0x0000
+pdoffset80ma0=0x0000
+pdoffset40ma1=0x0000
+pdoffset80ma1=0x0000
+maxp2ga0=76
+maxp5ga0=74,74,74,74
+maxp2ga1=76
+maxp5ga1=74,74,74,74
+cckbw202gpo=0x0000
+cckbw20ul2gpo=0x0000
+mcsbw202gpo=0x99644422
+mcsbw402gpo=0x99644422
+dot11agofdmhrbw202gpo=0x6666
+ofdmlrbw202gpo=0x0022
+mcsbw205glpo=0x88766663
+mcsbw405glpo=0x88666663
+mcsbw805glpo=0xbb666665
+mcsbw205gmpo=0xd8666663
+mcsbw405gmpo=0x88666663
+mcsbw805gmpo=0xcc666665
+mcsbw205ghpo=0xdc666663
+mcsbw405ghpo=0xaa666663
+mcsbw805ghpo=0xdd666665
+mcslr5glpo=0x0000
+mcslr5gmpo=0x0000
+mcslr5ghpo=0x0000
+sb20in40hrpo=0x0
+sb20in80and160hr5glpo=0x0
+sb40and80hr5glpo=0x0
+sb20in80and160hr5gmpo=0x0
+sb40and80hr5gmpo=0x0
+sb20in80and160hr5ghpo=0x0
+sb40and80hr5ghpo=0x0
+sb20in40lrpo=0x0
+sb20in80and160lr5glpo=0x0
+sb40and80lr5glpo=0x0
+sb20in80and160lr5gmpo=0x0
+sb40and80lr5gmpo=0x0
+sb20in80and160lr5ghpo=0x0
+sb40and80lr5ghpo=0x0
+dot11agduphrpo=0x0
+dot11agduplrpo=0x0
+phycal_tempdelta=255
+temps_period=15
+temps_hysteresis=15
+rssicorrnorm_c0=4,4
+rssicorrnorm_c1=4,4
+rssicorrnorm5g_c0=1,2,3,1,2,3,6,6,8,6,6,8
+rssicorrnorm5g_c1=1,2,3,2,2,2,7,7,8,7,7,8
+
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.vamrs,rock960.txt b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.vamrs,rock960.txt
new file mode 120000
index 000000000..dffd0158f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4356-sdio.vamrs,rock960.txt
@@ -0,0 +1 @@
+brcmfmac4356-sdio.AP6356S.txt \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcmfmac43569.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43569.bin
index 8323536a7..8323536a7 100644
--- a/package/brcmfmac-firmware/src/brcmfmac43569.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43569.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43570-pcie.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43570-pcie.bin
new file mode 120000
index 000000000..b807c17a4
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43570-pcie.bin
@@ -0,0 +1 @@
+../cypress/cyfmac43570-pcie.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac43570-pcie.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac43570-pcie.clm_blob
new file mode 120000
index 000000000..3290c6c10
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43570-pcie.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac43570-pcie.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4358-pcie.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4358-pcie.bin
new file mode 100644
index 000000000..17bdcaf98
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4358-pcie.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43602-pcie.ap.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43602-pcie.ap.bin
index b4a589d5a..b4a589d5a 100644
--- a/package/brcmfmac-firmware/src/brcmfmac43602-pcie.ap.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43602-pcie.ap.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43602-pcie.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac43602-pcie.bin
index 488b4c04a..488b4c04a 100644
--- a/package/brcmfmac-firmware/src/brcmfmac43602-pcie.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac43602-pcie.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4366b-pcie.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4366b-pcie.bin
new file mode 100644
index 000000000..7df6d1805
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4366b-pcie.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4366c-pcie.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4366c-pcie.bin
new file mode 100644
index 000000000..fcd19ac1b
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4366c-pcie.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac4371-pcie.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4371-pcie.bin
index 8b3a51b91..8b3a51b91 100644
--- a/package/brcmfmac-firmware/src/brcmfmac4371-pcie.bin
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4371-pcie.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4373-sdio.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4373-sdio.bin
new file mode 120000
index 000000000..fb5b9c59f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4373-sdio.bin
@@ -0,0 +1 @@
+../cypress/cyfmac4373-sdio.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4373-sdio.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac4373-sdio.clm_blob
new file mode 120000
index 000000000..be67c89aa
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4373-sdio.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac4373-sdio.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac4373.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac4373.bin
new file mode 100644
index 000000000..e85d3fd79
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac4373.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac54591-pcie.bin b/package/brcmfmac-firmware/src/brcm/brcmfmac54591-pcie.bin
new file mode 120000
index 000000000..01e331714
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac54591-pcie.bin
@@ -0,0 +1 @@
+../cypress/cyfmac54591-pcie.bin \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcm/brcmfmac54591-pcie.clm_blob b/package/brcmfmac-firmware/src/brcm/brcmfmac54591-pcie.clm_blob
new file mode 120000
index 000000000..30efcb474
--- /dev/null
+++ b/package/brcmfmac-firmware/src/brcm/brcmfmac54591-pcie.clm_blob
@@ -0,0 +1 @@
+../cypress/cyfmac54591-pcie.clm_blob \ No newline at end of file
diff --git a/package/brcmfmac-firmware/src/brcmfmac43241b0-sdio.bin b/package/brcmfmac-firmware/src/brcmfmac43241b0-sdio.bin
deleted file mode 100644
index 729b89421..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac43241b0-sdio.bin
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43340-sdio.bin b/package/brcmfmac-firmware/src/brcmfmac43340-sdio.bin
deleted file mode 100644
index 368b0a150..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac43340-sdio.bin
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43362-sdio.bin b/package/brcmfmac-firmware/src/brcmfmac43362-sdio.bin
deleted file mode 100644
index c11dfb2a6..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac43362-sdio.bin
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac4339-sdio.bin b/package/brcmfmac-firmware/src/brcmfmac4339-sdio.bin
deleted file mode 100644
index 8d1b3819a..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac4339-sdio.bin
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43430-sdio.bin b/package/brcmfmac-firmware/src/brcmfmac43430-sdio.bin
deleted file mode 100644
index 4b2945eac..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac43430-sdio.bin
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43430-sdio.txt b/package/brcmfmac-firmware/src/brcmfmac43430-sdio.txt
deleted file mode 100644
index 3d917a7fd..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac43430-sdio.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-# NVRAM file for BCM943430WLSELG
-# 2.4 GHz, 20 MHz BW mode
-
-# The following parameter values are just placeholders, need to be updated.
-manfid=0x2d0
-prodid=0x0726
-vendid=0x14e4
-devid=0x43e2
-boardtype=0x0726
-boardrev=0x1202
-boardnum=22
-macaddr=00:90:4c:c5:12:38
-sromrev=11
-boardflags=0x00404201
-boardflags3=0x08000000
-xtalfreq=37400
-#xtalfreq=19200
-nocrc=1
-ag0=255
-aa2g=1
-ccode=ALL
-
-pa0itssit=0x20
-extpagain2g=0
-
-#PA parameters for 2.4GHz, measured at CHIP OUTPUT
-pa2ga0=-168,7161,-820
-AvVmid_c0=0x0,0xc8
-cckpwroffset0=5
-
-# PPR params
-maxp2ga0=84
-txpwrbckof=6
-cckbw202gpo=0
-legofdmbw202gpo=0x66111111
-mcsbw202gpo=0x77711111
-propbw202gpo=0xdd
-
-# OFDM IIR :
-ofdmdigfilttype=18
-ofdmdigfilttypebe=18
-# PAPD mode:
-papdmode=1
-papdvalidtest=1
-pacalidx2g=32
-papdepsoffset=-36
-papdendidx=61
-
-il0macaddr=00:90:4c:c5:12:38
-wl0id=0x431b
-
-deadman_to=0xffffffff
-# muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG
-muxenab=0x1
-# CLDO PWM voltage settings - 0x4 - 1.1 volt
-#cldo_pwm=0x4
-
-#VCO freq 326.4MHz
-spurconfig=0x3
diff --git a/package/brcmfmac-firmware/src/brcmfmac43455-sdio.bin b/package/brcmfmac-firmware/src/brcmfmac43455-sdio.bin
deleted file mode 100644
index 94f2add70..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac43455-sdio.bin
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43455-sdio.clm_blob b/package/brcmfmac-firmware/src/brcmfmac43455-sdio.clm_blob
deleted file mode 100644
index 3b9b5bdc1..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac43455-sdio.clm_blob
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43455-sdio.txt b/package/brcmfmac-firmware/src/brcmfmac43455-sdio.txt
deleted file mode 100644
index 260c9299c..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac43455-sdio.txt
+++ /dev/null
@@ -1,92 +0,0 @@
-# Cloned from bcm94345wlpagb_p2xx.txt
-NVRAMRev=$Rev: 498373 $
-sromrev=11
-vendid=0x14e4
-devid=0x43ab
-manfid=0x2d0
-prodid=0x06e4
-#macaddr=00:90:4c:c5:12:38
-macaddr=b8:27:eb:74:f2:6c
-nocrc=1
-boardtype=0x6e4
-boardrev=0x1304
-
-#XTAL 37.4MHz
-xtalfreq=37400
-
-btc_mode=1
-#------------------------------------------------------
-#boardflags: 5GHz eTR switch by default
-# 2.4GHz eTR switch by default
-# bit1 for btcoex
-boardflags=0x00480201
-boardflags2=0x40800000
-boardflags3=0x48200100
-phycal_tempdelta=15
-rxchain=1
-txchain=1
-aa2g=1
-aa5g=1
-tssipos5g=1
-tssipos2g=1
-femctrl=0
-AvVmid_c0=1,165,2,100,2,100,2,100,2,100
-pa2ga0=-129,6525,-718
-pa2ga1=-149,4408,-601
-pa5ga0=-185,6836,-815,-186,6838,-815,-184,6859,-815,-184,6882,-818
-pa5ga1=-202,4285,-574,-201,4312,-578,-196,4391,-586,-201,4294,-575
-itrsw=1
-pdoffsetcckma0=2
-pdoffset2gperchan=0,-2,1,0,1,0,1,1,1,0,0,-1,-1,0
-pdoffset2g40ma0=16
-pdoffset40ma0=0x8888
-pdoffset80ma0=0x8888
-extpagain5g=2
-extpagain2g=2
-tworangetssi2g=1
-tworangetssi5g=1
-# LTECX flags
-# WCI2
-ltecxmux=0
-ltecxpadnum=0x0504
-ltecxfnsel=0x22
-ltecxgcigpio=0x32
-
-maxp2ga0=80
-ofdmlrbw202gpo=0x0022
-dot11agofdmhrbw202gpo=0x4442
-mcsbw202gpo=0x98444422
-mcsbw402gpo=0x98444422
-maxp5ga0=82,82,82,82
-mcsbw205glpo=0xb9555000
-mcsbw205gmpo=0xb9555000
-mcsbw205ghpo=0xb9555000
-mcsbw405glpo=0xb9555000
-mcsbw405gmpo=0xb9555000
-mcsbw405ghpo=0xb9555000
-mcsbw805glpo=0xb9555000
-mcsbw805gmpo=0xb9555000
-mcsbw805ghpo=0xb9555000
-
-swctrlmap_2g=0x00000000,0x00000000,0x00000000,0x010000,0x3ff
-swctrlmap_5g=0x00100010,0x00200020,0x00200020,0x010000,0x3fe
-swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x3
-swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x3
-
-vcodivmode=1
-deadman_to=481500000
-
-ed_thresh2g=-54
-ed_thresh5g=-54
-eu_edthresh2g=-54
-eu_edthresh5g=-54
-ldo1=4
-rawtempsense=0x1ff
-cckPwrIdxCorr=3
-cckTssiDelay=150
-ofdmTssiDelay=150
-txpwr2gAdcScale=1
-txpwr5gAdcScale=1
-dot11b_opts=0x3aa85
-cbfilttype=1
-fdsslevel_ch11=6
diff --git a/package/brcmfmac-firmware/src/brcmfmac4354-sdio.bin b/package/brcmfmac-firmware/src/brcmfmac4354-sdio.bin
deleted file mode 100644
index 48afad606..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac4354-sdio.bin
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac4356-pcie.bin b/package/brcmfmac-firmware/src/brcmfmac4356-pcie.bin
deleted file mode 100644
index 9ed885214..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac4356-pcie.bin
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac43570-pcie.bin b/package/brcmfmac-firmware/src/brcmfmac43570-pcie.bin
deleted file mode 100644
index c0c82d005..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac43570-pcie.bin
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/brcmfmac4366b-pcie.bin b/package/brcmfmac-firmware/src/brcmfmac4366b-pcie.bin
deleted file mode 100644
index 6fc932ed9..000000000
--- a/package/brcmfmac-firmware/src/brcmfmac4366b-pcie.bin
+++ /dev/null
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43012-sdio.bin b/package/brcmfmac-firmware/src/cypress/cyfmac43012-sdio.bin
new file mode 100644
index 000000000..7a78e15cb
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43012-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43012-sdio.clm_blob b/package/brcmfmac-firmware/src/cypress/cyfmac43012-sdio.clm_blob
new file mode 100644
index 000000000..59f09f6a7
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43012-sdio.clm_blob
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43340-sdio.bin b/package/brcmfmac-firmware/src/cypress/cyfmac43340-sdio.bin
new file mode 100644
index 000000000..dcf894beb
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43340-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43362-sdio.bin b/package/brcmfmac-firmware/src/cypress/cyfmac43362-sdio.bin
new file mode 100644
index 000000000..51d64d63e
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43362-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac4339-sdio.bin b/package/brcmfmac-firmware/src/cypress/cyfmac4339-sdio.bin
new file mode 100644
index 000000000..43e86ca2e
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac4339-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43430-sdio.bin b/package/brcmfmac-firmware/src/cypress/cyfmac43430-sdio.bin
new file mode 100644
index 000000000..7a35578b9
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43430-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43430-sdio.clm_blob b/package/brcmfmac-firmware/src/cypress/cyfmac43430-sdio.clm_blob
new file mode 100644
index 000000000..d93449f28
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43430-sdio.clm_blob
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio-minimal.bin b/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio-minimal.bin
new file mode 100644
index 000000000..cc9768bde
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio-minimal.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio-standard.bin b/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio-standard.bin
new file mode 100644
index 000000000..1e7f61272
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio-standard.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio.bin b/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio.bin
new file mode 100644
index 000000000..1e7f61272
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio.clm_blob b/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio.clm_blob
new file mode 100644
index 000000000..c905a503e
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43455-sdio.clm_blob
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac4354-sdio.bin b/package/brcmfmac-firmware/src/cypress/cyfmac4354-sdio.bin
new file mode 100644
index 000000000..1e123ba6c
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac4354-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac4354-sdio.clm_blob b/package/brcmfmac-firmware/src/cypress/cyfmac4354-sdio.clm_blob
new file mode 100644
index 000000000..86d66e367
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac4354-sdio.clm_blob
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac4356-pcie.bin b/package/brcmfmac-firmware/src/cypress/cyfmac4356-pcie.bin
new file mode 100644
index 000000000..8904edc24
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac4356-pcie.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac4356-pcie.clm_blob b/package/brcmfmac-firmware/src/cypress/cyfmac4356-pcie.clm_blob
new file mode 100644
index 000000000..c6ff1701f
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac4356-pcie.clm_blob
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac4356-sdio.bin b/package/brcmfmac-firmware/src/cypress/cyfmac4356-sdio.bin
new file mode 100644
index 000000000..63896b607
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac4356-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac4356-sdio.clm_blob b/package/brcmfmac-firmware/src/cypress/cyfmac4356-sdio.clm_blob
new file mode 100644
index 000000000..35ce3751b
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac4356-sdio.clm_blob
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43570-pcie.bin b/package/brcmfmac-firmware/src/cypress/cyfmac43570-pcie.bin
new file mode 100644
index 000000000..97898b548
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43570-pcie.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac43570-pcie.clm_blob b/package/brcmfmac-firmware/src/cypress/cyfmac43570-pcie.clm_blob
new file mode 100644
index 000000000..f14fd9244
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac43570-pcie.clm_blob
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac4373-sdio.bin b/package/brcmfmac-firmware/src/cypress/cyfmac4373-sdio.bin
new file mode 100644
index 000000000..00ecde003
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac4373-sdio.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac4373-sdio.clm_blob b/package/brcmfmac-firmware/src/cypress/cyfmac4373-sdio.clm_blob
new file mode 100644
index 000000000..9d0299772
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac4373-sdio.clm_blob
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac54591-pcie.bin b/package/brcmfmac-firmware/src/cypress/cyfmac54591-pcie.bin
new file mode 100644
index 000000000..70ef9f9e0
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac54591-pcie.bin
Binary files differ
diff --git a/package/brcmfmac-firmware/src/cypress/cyfmac54591-pcie.clm_blob b/package/brcmfmac-firmware/src/cypress/cyfmac54591-pcie.clm_blob
new file mode 100644
index 000000000..61f0d562a
--- /dev/null
+++ b/package/brcmfmac-firmware/src/cypress/cyfmac54591-pcie.clm_blob
Binary files differ
diff --git a/package/btrfs-progs/Makefile b/package/btrfs-progs/Makefile
new file mode 100644
index 000000000..585b02574
--- /dev/null
+++ b/package/btrfs-progs/Makefile
@@ -0,0 +1,37 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= btrfs-progs
+PKG_VERSION:= 6.1.3
+PKG_RELEASE:= 1
+PKG_HASH:= d37fc9ec4fa5778b20aa7548fe706eb3a300338c1473318271ae54024dac7167
+PKG_DESCR:= btrfs progs
+PKG_DEPENDS:= zstd
+PKG_BUILDDEP:= zstd
+PKG_KDEPENDS:= btrfs-fs
+PKG_SECTION:= sys/fs
+PKG_SITES:= https://mirrors.edge.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/
+
+DISTFILES:= $(PKG_NAME)-v$(PKG_VERSION).tar.xz
+WRKDIST= $(WRKDIR)/$(PKG_NAME)-v$(PKG_VERSION)
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,BTRFS_PROGS,btrfs-progs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIGURE_ARGS+= --disable-backtrace \
+ --disable-documentation \
+ --disable-python \
+ --disable-libudev
+
+btrfs-progs-install:
+ $(INSTALL_DIR) $(IDIR_BTRFS_PROGS)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libbtrfs*.so* \
+ $(IDIR_BTRFS_PROGS)/usr/lib
+ $(INSTALL_DIR) $(IDIR_BTRFS_PROGS)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/* \
+ $(IDIR_BTRFS_PROGS)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/busybox/Config.in.manual b/package/busybox/Config.in.manual
index 184ccb996..48c6212e0 100644
--- a/package/busybox/Config.in.manual
+++ b/package/busybox/Config.in.manual
@@ -10,224 +10,6 @@ config ADK_PACKAGE_BUSYBOX
WWW: http://www.busybox.net
-choice
-prompt "Choose predefined set of applets"
-depends on ADK_PACKAGE_BUSYBOX
-default ADK_PACKAGE_BUSYBOX_MINIMAL if !ADK_TARGET_WITH_MMU
-
-config ADK_PACKAGE_BUSYBOX_DEFAULT
- bool "activate standard set of applets"
- select BUSYBOX_AWK
- select BUSYBOX_BASENAME
- select BUSYBOX_CLEAR
- select BUSYBOX_CMP
- select BUSYBOX_CAT
- select BUSYBOX_CAL
- select BUSYBOX_CHGRP
- select BUSYBOX_CHMOD
- select BUSYBOX_CHOWN
- select BUSYBOX_CHROOT
- select BUSYBOX_CP
- select BUSYBOX_CUT
- select BUSYBOX_DATE
- select BUSYBOX_DD
- select BUSYBOX_DF
- select BUSYBOX_DIFF
- select BUSYBOX_DIRNAME
- select BUSYBOX_DU
- select BUSYBOX_ECHO
- select BUSYBOX_EGREP if !BUSYBOX_DISABLE_GREP
- select BUSYBOX_ENV
- select BUSYBOX_EXPR
- select BUSYBOX_FDISK if !BUSYBOX_DISABLE_FDISK
- select BUSYBOX_FIND if !BUSYBOX_DISABLE_FIND
- select BUSYBOX_GREP if !BUSYBOX_DISABLE_GREP
- select BUSYBOX_GROUPS
- select BUSYBOX_GUNZIP
- select BUSYBOX_GZIP
- select BUSYBOX_HALT
- select BUSYBOX_HEAD
- select BUSYBOX_ID
- select BUSYBOX_INIT if ADK_RUNTIME_INIT_SYSV
- select BUSYBOX_LESS if !BUSYBOX_DISABLE_LESS
- select BUSYBOX_LN
- select BUSYBOX_LOSETUP
- select BUSYBOX_LS
- select BUSYBOX_MD5SUM
- select BUSYBOX_MKDIR
- select BUSYBOX_MKFIFO
- select BUSYBOX_MKNOD
- select BUSYBOX_MKTEMP
- select BUSYBOX_MV
- select BUSYBOX_NC
- select BUSYBOX_PASSWD
- select BUSYBOX_PRINTF
- select BUSYBOX_PWD
- select BUSYBOX_RDATE if !BUSYBOX_DISABLE_RDATE
- select BUSYBOX_READLINK
- select BUSYBOX_RESET
- select BUSYBOX_RFKILL if !BUSYBOX_DISABLE_RFKILL
- select BUSYBOX_RM
- select BUSYBOX_RMDIR
- select BUSYBOX_RUN_PARTS
- select BUSYBOX_SED if !BUSYBOX_DISABLE_SED
- select BUSYBOX_SEQ
- select BUSYBOX_SLEEP
- select BUSYBOX_SORT
- select BUSYBOX_FEATURE_SORT_BIG
- select BUSYBOX_STAT
- select BUSYBOX_STRINGS
- select BUSYBOX_SU
- select BUSYBOX_SYNC
- select BUSYBOX_TAIL
- select BUSYBOX_FEATURE_FANCY_TAIL
- select BUSYBOX_TAR if !BUSYBOX_DISABLE_TAR
- select BUSYBOX_TEE
- select BUSYBOX_TEST
- select BUSYBOX_TIME
- select BUSYBOX_TOUCH
- select BUSYBOX_TOP
- select BUSYBOX_TR
- select BUSYBOX_TRUE
- select BUSYBOX_UNAME
- select BUSYBOX_VI
- select BUSYBOX_WC
- select BUSYBOX_WHOAMI
- select BUSYBOX_WHO
- select BUSYBOX_WHICH
- select BUSYBOX_XARGS
-
-config ADK_PACKAGE_BUSYBOX_MINIMAL
- bool "activate minimal set of applets"
- select BUSYBOX_AWK
- select BUSYBOX_BASENAME
- select BUSYBOX_CAT
- select BUSYBOX_CHGRP
- select BUSYBOX_CHMOD
- select BUSYBOX_CHOWN
- select BUSYBOX_CHROOT
- select BUSYBOX_CMP
- select BUSYBOX_CP
- select BUSYBOX_CUT
- select BUSYBOX_DATE
- select BUSYBOX_DD
- select BUSYBOX_DF
- select BUSYBOX_DIRNAME
- select BUSYBOX_DIFF
- select BUSYBOX_DU
- select BUSYBOX_ECHO
- select BUSYBOX_EGREP if !BUSYBOX_DISABLE_GREP
- select BUSYBOX_ENV
- select BUSYBOX_EXPR
- select BUSYBOX_FIND if !BUSYBOX_DISABLE_FIND
- select BUSYBOX_GREP if !BUSYBOX_DISABLE_GREP
- select BUSYBOX_GUNZIP
- select BUSYBOX_GZIP
- select BUSYBOX_HALT
- select BUSYBOX_HEAD
- select BUSYBOX_ID
- select BUSYBOX_INIT if ADK_RUNTIME_INIT_SYSV
- select BUSYBOX_LESS if !BUSYBOX_DISABLE_LESS
- select BUSYBOX_LN
- select BUSYBOX_LS
- select BUSYBOX_MKDIR
- select BUSYBOX_MV
- select BUSYBOX_PRINTF
- select BUSYBOX_PWD
- select BUSYBOX_RM
- select BUSYBOX_READLINK
- select BUSYBOX_RUN_PARTS
- select BUSYBOX_SED if !BUSYBOX_DISABLE_SED
- select BUSYBOX_SORT
- select BUSYBOX_TAIL
- select BUSYBOX_FEATURE_FANCY_TAIL
- select BUSYBOX_TEE
- select BUSYBOX_TAR if !BUSYBOX_DISABLE_TAR
- select BUSYBOX_TEST
- select BUSYBOX_TOUCH
- select BUSYBOX_TRUE
- select BUSYBOX_UNAME
- select BUSYBOX_VI
- select BUSYBOX_WHICH
- select BUSYBOX_WHOAMI
-
-config ADK_PACKAGE_BUSYBOX_ALL
- bool "activate all applets"
- select BUSYBOX_AWK
- select BUSYBOX_BASENAME
- select BUSYBOX_CAL
- select BUSYBOX_CAT
- select BUSYBOX_CHGRP
- select BUSYBOX_CHMOD
- select BUSYBOX_CHOWN
- select BUSYBOX_CHROOT
- select BUSYBOX_CLEAR
- select BUSYBOX_CMP
- select BUSYBOX_CP
- select BUSYBOX_CUT
- select BUSYBOX_DATE
- select BUSYBOX_DD
- select BUSYBOX_DESKTOP
- select BUSYBOX_DF
- select BUSYBOX_DIFF if !BUSYBOX_DISABLE_DIFF
- select BUSYBOX_DIRNAME
- select BUSYBOX_DU
- select BUSYBOX_ECHO
- select BUSYBOX_EGREP if !BUSYBOX_DISABLE_GREP
- select BUSYBOX_ENV
- select BUSYBOX_EXPR
- select BUSYBOX_FDISK if !BUSYBOX_DISABLE_FDISK
- select BUSYBOX_FIND if !BUSYBOX_DISABLE_FIND
- select BUSYBOX_FEATURE_UTMP
- select BUSYBOX_GREP if !BUSYBOX_DISABLE_GREP
- select BUSYBOX_GROUPS
- select BUSYBOX_GUNZIP
- select BUSYBOX_GZIP
- select BUSYBOX_HALT
- select BUSYBOX_HEAD
- select BUSYBOX_ID
- select BUSYBOX_INIT if ADK_RUNTIME_INIT_SYSV
- select BUSYBOX_LESS if !BUSYBOX_DISABLE_LESS
- select BUSYBOX_LN
- select BUSYBOX_LS
- select BUSYBOX_MD5SUM
- select BUSYBOX_MKDIR
- select BUSYBOX_MKFIFO
- select BUSYBOX_MKNOD
- select BUSYBOX_MKTEMP
- select BUSYBOX_MV
- select BUSYBOX_PRINTF
- select BUSYBOX_PWD
- select BUSYBOX_READLINK
- select BUSYBOX_RESET
- select BUSYBOX_RUN_PARTS
- select BUSYBOX_RM
- select BUSYBOX_SED if !BUSYBOX_DISABLE_SED
- select BUSYBOX_SLEEP
- select BUSYBOX_SORT
- select BUSYBOX_STAT
- select BUSYBOX_STRINGS
- select BUSYBOX_SU
- select BUSYBOX_SYNC
- select BUSYBOX_TAIL
- select BUSYBOX_TAR if !BUSYBOX_DISABLE_TAR
- select BUSYBOX_TEE
- select BUSYBOX_FEATURE_FANCY_TAIL
- select BUSYBOX_TRUE
- select BUSYBOX_TEST
- select BUSYBOX_TIME
- select BUSYBOX_TOUCH
- select BUSYBOX_TR
- select BUSYBOX_UNAME
- select BUSYBOX_VI
- select BUSYBOX_WC
- select BUSYBOX_WHICH
- select BUSYBOX_WHO
- select BUSYBOX_WHOAMI
- select BUSYBOX_XARGS
-
-endchoice
-
config ADK_PACKAGE_BUSYBOX_HIDE
bool "hide packages provided by busybox applets"
depends on ADK_PACKAGE_BUSYBOX
diff --git a/package/busybox/Makefile b/package/busybox/Makefile
index f9a94828c..78b76ead5 100644
--- a/package/busybox/Makefile
+++ b/package/busybox/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= busybox
-PKG_VERSION:= 1.26.2
-PKG_RELEASE:= 2
-PKG_HASH:= da3e44913fc1a9c9b7c5337ea5292da518683cbff32be630777f565d6036af16
+PKG_VERSION:= 1.36.1
+PKG_RELEASE:= 1
+PKG_HASH:= b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314
PKG_DESCR:= core utilities for embedded systems
PKG_SECTION:= base/apps
PKG_URL:= http://www.busybox.net/
@@ -69,7 +69,6 @@ do-build:
do-install:
PATH='$(HOST_PATH)' $(MAKE) ${BB_MAKE_FLAGS} -C ${WRKBUILD} install $(MAKE_TRACE)
$(CP) $(WRKINST)/* $(IDIR_BUSYBOX)/
-ifeq ($(ADK_RUNTIME_INIT_SYSTEMD),)
ifeq ($(BUSYBOX_IFUP),y)
$(INSTALL_DIR) $(IDIR_BUSYBOX)/etc/init.d
ifeq ($(ADK_RUNTIME_WAIT_FOR_ETHERNET),y)
@@ -78,7 +77,6 @@ else
$(INSTALL_BIN) ./files/network $(IDIR_BUSYBOX)/etc/init.d/network
endif
endif
-endif
ifeq ($(ADK_DEBUG),y)
${INSTALL_BIN} $(WRKBUILD)/busybox_unstripped \
$(IDIR_BUSYBOX)/bin/busybox
diff --git a/package/busybox/config/Config.in b/package/busybox/config/Config.in
index 868f0b9ff..d5cbed6a5 100644
--- a/package/busybox/config/Config.in
+++ b/package/busybox/config/Config.in
@@ -1,485 +1,352 @@
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
-# mainmenu "BusyBox Configuration"
+# mainmenu "Configuration"
config BUSYBOX_HAVE_DOT_CONFIG
bool
default y
-menu "Busybox Settings"
-
-menu "General Configuration"
+menu "Settings"
config BUSYBOX_DESKTOP
- bool "Enable options for full-blown desktop systems"
- default n
+ bool "Enable compatibility for full-blown desktop systems (8kb)"
+ default y
help
- Enable options and features which are not essential.
- Select this only if you plan to use busybox on full-blown
- desktop machine with common Linux distro, not on an embedded box.
+ Enable applet options and features which are not essential.
+ Many applet options have dedicated config options to (de)select them
+ under that applet; this options enables those options which have no
+ individual config item for them.
+
+ Select this if you plan to use busybox on full-blown desktop machine
+ with common Linux distro, which needs higher level of command-line
+ compatibility.
+
+ If you are preparing your build to be used on an embedded box
+ where you have tighter control over the entire set of userspace
+ tools, you can unselect this option for smaller code size.
config BUSYBOX_EXTRA_COMPAT
bool "Provide compatible behavior for rare corner cases (bigger code)"
default n
help
- This option makes grep, sed etc handle rare corner cases
- (embedded NUL bytes and such). This makes code bigger and uses
- some GNU extensions in libc. You probably only need this option
- if you plan to run busybox on desktop.
+ This option makes grep, sed etc handle rare corner cases
+ (embedded NUL bytes and such). This makes code bigger and uses
+ some GNU extensions in libc. You probably only need this option
+ if you plan to run busybox on desktop.
-config BUSYBOX_INCLUDE_SUSv2
- bool "Enable obsolete features removed before SUSv3"
+config BUSYBOX_FEDORA_COMPAT
+ bool "Building for Fedora distribution"
default n
help
- This option will enable backwards compatibility with SuSv2,
- specifically, old-style numeric options ('command -1 <file>')
- will be supported in head, tail, and fold. (Note: should
- affect renice too.)
+ This option makes some tools behave like they do on Fedora.
-config BUSYBOX_USE_PORTABLE_CODE
- bool "Avoid using GCC-specific code constructs"
- default n
- help
- Use this option if you are trying to compile busybox with
- compiler other than gcc.
- If you do use gcc, this option may needlessly increase code size.
+ At the time of this writing (2017-08) this only affects uname:
+ normally, uname -p (processor) and uname -i (platform)
+ are shown as "unknown", but with this option uname -p
+ shows the same string as uname -m (machine type),
+ and so does uname -i unless machine type is i486/i586/i686 -
+ then uname -i shows "i386".
-config BUSYBOX_INSTALL_NO_USR
- bool "Don't use /usr"
- default n
- help
- Disable use of /usr. busybox --install and "make install"
- will install applets only to /bin and /sbin,
- never to /usr/bin or /usr/sbin.
-
-config BUSYBOX_PLATFORM_LINUX
- bool "Enable Linux-specific applets and features"
+config BUSYBOX_INCLUDE_SUSv2
+ bool "Enable obsolete features removed before SUSv3"
default y
help
- For the most part, busybox requires only POSIX compatibility
- from the target system, but some applets and features use
- Linux-specific interfaces.
-
- Answering 'N' here will disable such applets and hide the
- corresponding configuration options.
+ This option will enable backwards compatibility with SuSv2,
+ specifically, old-style numeric options ('command -1 <file>')
+ will be supported in head, tail, and fold. (Note: should
+ affect renice too.)
-choice
- prompt "Buffer allocation policy"
- default FEATURE_BUFFERS_USE_MALLOC
+config BUSYBOX_LONG_OPTS
+ bool "Support --long-options"
+ default y
help
- There are 3 ways BusyBox can handle buffer allocations:
- - Use malloc. This costs code size for the call to xmalloc.
- - Put them on stack. For some very small machines with limited stack
- space, this can be deadly. For most folks, this works just fine.
- - Put them in BSS. This works beautifully for computers with a real
- MMU (and OS support), but wastes runtime RAM for uCLinux. This
- behavior was the only one available for BusyBox versions 0.48 and
- earlier.
-
-config BUSYBOX_FEATURE_BUFFERS_USE_MALLOC
- bool "Allocate with Malloc"
-
-config BUSYBOX_FEATURE_BUFFERS_GO_ON_STACK
- bool "Allocate on the Stack"
-
-config BUSYBOX_FEATURE_BUFFERS_GO_IN_BSS
- bool "Allocate in the .bss section"
-
-endchoice
+ Enable this if you want busybox applets to use the gnu --long-option
+ style, in addition to single character -a -b -c style options.
config BUSYBOX_SHOW_USAGE
bool "Show applet usage messages"
default y
help
- Enabling this option, BusyBox applets will show terse help messages
- when invoked with wrong arguments.
- If you do not want to show any (helpful) usage message when
- issuing wrong command syntax, you can say 'N' here,
- saving approximately 7k.
+ Enabling this option, applets will show terse help messages
+ when invoked with wrong arguments.
+ If you do not want to show any (helpful) usage message when
+ issuing wrong command syntax, you can say 'N' here,
+ saving approximately 7k.
config BUSYBOX_FEATURE_VERBOSE_USAGE
bool "Show verbose applet usage messages"
default y
depends on BUSYBOX_SHOW_USAGE
help
- All BusyBox applets will show verbose help messages when
- busybox is invoked with --help. This will add a lot of text to the
- busybox binary. In the default configuration, this will add about
- 13k, but it can add much more depending on your configuration.
+ All applets will show verbose help messages when invoked with --help.
+ This will add a lot of text to the binary.
config BUSYBOX_FEATURE_COMPRESS_USAGE
bool "Store applet usage messages in compressed form"
default y
depends on BUSYBOX_SHOW_USAGE
help
- Store usage messages in .bz compressed form, uncompress them
- on-the-fly when <applet> --help is called.
+ Store usage messages in .bz2 compressed form, uncompress them
+ on-the-fly when "APPLET --help" is run.
- If you have a really tiny busybox with few applets enabled (and
- bunzip2 isn't one of them), the overhead of the decompressor might
- be noticeable. Also, if you run executables directly from ROM
- and have very little memory, this might not be a win. Otherwise,
- you probably want this.
+ If you have a really tiny busybox with few applets enabled (and
+ bunzip2 isn't one of them), the overhead of the decompressor might
+ be noticeable. Also, if you run executables directly from ROM
+ and have very little memory, this might not be a win. Otherwise,
+ you probably want this.
-config BUSYBOX_BUSYBOX
- bool "Include busybox applet"
- default y
- help
- The busybox applet provides general help regarding busybox and
- allows the included applets to be listed. It's also required
- if applet links are to be installed at runtime.
-
- If you can live without these features disabling this will save
- some space.
-
-config BUSYBOX_FEATURE_INSTALLER
- bool "Support --install [-s] to install applet links at runtime"
- default n
- help
- Enable 'busybox --install [-s]' support. This will allow you to use
- busybox at runtime to create hard links or symlinks for all the
- applets that are compiled into busybox.
-
-config BUSYBOX_LOCALE_SUPPORT
- bool "Enable locale support (system needs locale for this to work)"
- default n
- help
- Enable this if your system has locale support and you would like
- busybox to support locale settings.
-
-config BUSYBOX_UNICODE_SUPPORT
- bool "Support Unicode"
+config BUSYBOX_LFS
+ bool "Support files > 2 GB"
default y
help
- This makes various applets aware that one byte is not
- one character on screen.
-
- Busybox aims to eventually work correctly with Unicode displays.
- Any older encodings are not guaranteed to work.
- Probably by the time when busybox will be fully Unicode-clean,
- other encodings will be mainly of historic interest.
-
-config BUSYBOX_UNICODE_USING_LOCALE
- bool "Use libc routines for Unicode (else uses internal ones)"
- default n
- depends on BUSYBOX_UNICODE_SUPPORT && BUSYBOX_LOCALE_SUPPORT
- help
- With this option on, Unicode support is implemented using libc
- routines. Otherwise, internal implementation is used.
- Internal implementation is smaller.
-
-config BUSYBOX_FEATURE_CHECK_UNICODE_IN_ENV
- bool "Check $LANG environment variable"
- default n
- depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
- help
- With this option on, Unicode support is activated
- only if LANG variable has the value of the form "xxxx.utf8"
-
- Otherwise, Unicode support will be always enabled and active.
-
-config BUSYBOX_SUBST_WCHAR
- int "Character code to substitute unprintable characters with"
- depends on BUSYBOX_UNICODE_SUPPORT
- default 63
- help
- Typical values are 63 for '?' (works with any output device),
- 30 for ASCII substitute control code,
- 65533 (0xfffd) for Unicode replacement character.
-
-config BUSYBOX_LAST_SUPPORTED_WCHAR
- int "Range of supported Unicode characters"
- depends on BUSYBOX_UNICODE_SUPPORT
- default 767
- help
- Any character with Unicode value bigger than this is assumed
- to be non-printable on output device. Many applets replace
- such chars with substitution character.
-
- The idea is that many valid printable Unicode chars are
- nevertheless are not displayed correctly. Think about
- combining charachers, double-wide hieroglyphs, obscure
- characters in dozens of ancient scripts...
- Many terminals, terminal emulators, xterms etc will fail
- to handle them correctly. Choose the smallest value
- which suits your needs.
-
- Typical values are:
- 126 - ASCII only
- 767 (0x2ff) - there are no combining chars in [0..767] range
- (the range includes Latin 1, Latin Ext. A and B),
- code is ~700 bytes smaller for this case.
- 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
- code is ~300 bytes smaller for this case.
- 12799 (0x31ff) - nearly all non-ideographic characters are
- available in [0..12799] range, including
- East Asian scripts like katakana, hiragana, hangul,
- bopomofo...
- 0 - off, any valid printable Unicode character will be printed.
-
-config BUSYBOX_UNICODE_COMBINING_WCHARS
- bool "Allow zero-width Unicode characters on output"
- default n
- depends on BUSYBOX_UNICODE_SUPPORT
- help
- With this option off, any Unicode char with width of 0
- is substituted on output.
-
-config BUSYBOX_UNICODE_WIDE_WCHARS
- bool "Allow wide Unicode characters on output"
- default n
- depends on BUSYBOX_UNICODE_SUPPORT
- help
- With this option off, any Unicode char with width > 1
- is substituted on output.
-
-config BUSYBOX_UNICODE_BIDI_SUPPORT
- bool "Bidirectional character-aware line input"
- default n
- depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
- help
- With this option on, right-to-left Unicode characters
- are treated differently on input (e.g. cursor movement).
-
-config BUSYBOX_UNICODE_NEUTRAL_TABLE
- bool "In bidi input, support non-ASCII neutral chars too"
- default n
- depends on BUSYBOX_UNICODE_BIDI_SUPPORT
- help
- In most cases it's enough to treat only ASCII non-letters
- (i.e. punctuation, numbers and space) as characters
- with neutral directionality.
- With this option on, more extensive (and bigger) table
- of neutral chars will be used.
-
-config BUSYBOX_UNICODE_PRESERVE_BROKEN
- bool "Make it possible to enter sequences of chars which are not Unicode"
- default n
- depends on BUSYBOX_UNICODE_SUPPORT
- help
- With this option on, on line-editing input (such as used by shells)
- invalid UTF-8 bytes are not substituted with the selected
- substitution character.
- For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
- at shell prompt will list file named 0xff (single char name
- with char value 255), not file named '?'.
+ If you need to work with large files, enable this option.
+ This will have no effect if your kernel or your C
+ library lacks large file support for large files. Some of the
+ programs that can benefit from large file support include dd, gzip,
+ cp, mount, tar.
config BUSYBOX_PAM
- bool "Support for PAM (Pluggable Authentication Modules)"
+ bool "Support PAM (Pluggable Authentication Modules)"
default n
help
- Use PAM in some busybox applets (currently login and httpd) instead
- of direct access to password database.
-
-config BUSYBOX_FEATURE_USE_SENDFILE
- bool "Use sendfile system call"
- default y
- select BUSYBOX_PLATFORM_LINUX
- help
- When enabled, busybox will use the kernel sendfile() function
- instead of read/write loops to copy data between file descriptors
- (for example, cp command does this a lot).
- If sendfile() doesn't work, copying code falls back to read/write
- loop. sendfile() was originally implemented for faster I/O
- from files to sockets, but since Linux 2.6.33 it was extended
- to work for many more file types.
-
-config BUSYBOX_LONG_OPTS
- bool "Support for --long-options"
- default y
- help
- Enable this if you want busybox applets to use the gnu --long-option
- style, in addition to single character -a -b -c style options.
+ Use PAM in some applets (currently login and httpd) instead
+ of direct access to password database.
config BUSYBOX_FEATURE_DEVPTS
bool "Use the devpts filesystem for Unix98 PTYs"
default y
help
- Enable if you want BusyBox to use Unix98 PTY support. If enabled,
- busybox will use /dev/ptmx for the master side of the pseudoterminal
- and /dev/pts/<number> for the slave side. Otherwise, BSD style
- /dev/ttyp<number> will be used. To use this option, you should have
- devpts mounted.
-
-config BUSYBOX_FEATURE_CLEAN_UP
- bool "Clean up all memory before exiting (usually not needed)"
- default n
- help
- As a size optimization, busybox normally exits without explicitly
- freeing dynamically allocated memory or closing files. This saves
- space since the OS will clean up for us, but it can confuse debuggers
- like valgrind, which report tons of memory and resource leaks.
-
- Don't enable this unless you have a really good reason to clean
- things up manually.
+ Enable if you want to use Unix98 PTY support. If enabled,
+ busybox will use /dev/ptmx for the master side of the pseudoterminal
+ and /dev/pts/<number> for the slave side. Otherwise, BSD style
+ /dev/ttyp<number> will be used. To use this option, you should have
+ devpts mounted.
config BUSYBOX_FEATURE_UTMP
bool "Support utmp file"
- default n
+ default y
help
- The file /var/run/utmp is used to track who is currently logged in.
- With this option on, certain applets (getty, login, telnetd etc)
- will create and delete entries there.
- "who" applet requires this option.
+ The file /var/run/utmp is used to track who is currently logged in.
+ With this option on, certain applets (getty, login, telnetd etc)
+ will create and delete entries there.
+ "who" applet requires this option.
config BUSYBOX_FEATURE_WTMP
bool "Support wtmp file"
- default n
+ default y
depends on BUSYBOX_FEATURE_UTMP
help
- The file /var/run/wtmp is used to track when users have logged into
- and logged out of the system.
- With this option on, certain applets (getty, login, telnetd etc)
- will append new entries there.
- "last" applet requires this option.
+ The file /var/run/wtmp is used to track when users have logged into
+ and logged out of the system.
+ With this option on, certain applets (getty, login, telnetd etc)
+ will append new entries there.
+ "last" applet requires this option.
config BUSYBOX_FEATURE_PIDFILE
bool "Support writing pidfiles"
default y
help
- This option makes some applets (e.g. crond, syslogd, inetd) write
- a pidfile in /var/run. Some applications rely on them.
+ This option makes some applets (e.g. crond, syslogd, inetd) write
+ a pidfile at the configured BUSYBOX_PID_FILE_PATH. It has no effect
+ on applets which require pidfiles to run.
config BUSYBOX_PID_FILE_PATH
- string "Path to directory for pidfile"
- default "/var/run"
- depends on BUSYBOX_FEATURE_PIDFILE
- help
- This is the default path where pidfiles are created. Applets which
- allow you to set the pidfile path on the command line will override
- this value. The option has no effect on applets that require you to
- specify a pidfile path.
+ string "Directory for pidfiles"
+ default "/var/run"
+ depends on BUSYBOX_FEATURE_PIDFILE || BUSYBOX_FEATURE_CROND_SPECIAL_TIMES
+ help
+ This is the default path where pidfiles are created. Applets which
+ allow you to set the pidfile path on the command line will override
+ this value. The option has no effect on applets that require you to
+ specify a pidfile path. When crond has the 'Support special times'
+ option enabled, the 'crond.reboot' file is also stored here.
-config BUSYBOX_FEATURE_SUID
- bool "Support for SUID/SGID handling"
+config BUSYBOX_BUSYBOX
+ bool "Include busybox applet"
default y
help
- With this option you can install the busybox binary belonging
- to root with the suid bit set, enabling some applets to perform
- root-level operations even when run by ordinary users
- (for example, mounting of user mounts in fstab needs this).
-
- Busybox will automatically drop priviledges for applets
- that don't need root access.
-
- If you are really paranoid and don't want to do this, build two
- busybox binaries with different applets in them (and the appropriate
- symlinks pointing to each binary), and only set the suid bit on the
- one that needs it.
+ The busybox applet provides general help message and allows
+ the included applets to be listed. It also provides
+ optional --install command to create applet links. If you unselect
+ this option, running busybox without any arguments will give
+ just a cryptic error message:
- The applets which require root rights (need suid bit or
- to be run by root) and will refuse to execute otherwise:
- crontab, login, passwd, su, vlock, wall.
+ $ busybox
+ busybox: applet not found
- The applets which will use root rights if they have them
- (via suid bit, or because run by root), but would try to work
- without root right nevertheless:
- findfs, ping[6], traceroute[6], mount.
+ Running "busybox APPLET [ARGS...]" will still work, of course.
- Note that if you DONT select this option, but DO make busybox
- suid root, ALL applets will run under root, which is a huge
- security hole (think "cp /some/file /etc/passwd").
+config BUSYBOX_FEATURE_SHOW_SCRIPT
+ bool "Support --show SCRIPT"
+ default y
+ depends on BUSYBOX_BUSYBOX
-config BUSYBOX_FEATURE_SUID_CONFIG
- bool "Runtime SUID/SGID configuration via /etc/busybox.conf"
+config BUSYBOX_FEATURE_INSTALLER
+ bool "Support --install [-s] to install applet links at runtime"
default y
- depends on BUSYBOX_FEATURE_SUID
+ depends on BUSYBOX_BUSYBOX
help
- Allow the SUID / SGID state of an applet to be determined at runtime
- by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
- The format of this file is as follows:
+ Enable 'busybox --install [-s]' support. This will allow you to use
+ busybox at runtime to create hard links or symlinks for all the
+ applets that are compiled into busybox.
- APPLET = [Ssx-][Ssx-][x-] [USER.GROUP]
+config BUSYBOX_INSTALL_NO_USR
+ bool "Don't use /usr"
+ default n
+ help
+ Disable use of /usr. "busybox --install" and "make install"
+ will install applets only to /bin and /sbin,
+ never to /usr/bin or /usr/sbin.
- s: USER or GROUP is allowed to execute APPLET.
- APPLET will run under USER or GROUP
- (reagardless of who's running it).
- S: USER or GROUP is NOT allowed to execute APPLET.
- APPLET will run under USER or GROUP.
- This option is not very sensical.
- x: USER/GROUP/others are allowed to execute APPLET.
- No UID/GID change will be done when it is run.
- -: USER/GROUP/others are not allowed to execute APPLET.
+config BUSYBOX_FEATURE_SUID
+ bool "Drop SUID state for most applets"
+ default y
+ help
+ With this option you can install the busybox binary belonging
+ to root with the suid bit set, enabling some applets to perform
+ root-level operations even when run by ordinary users
+ (for example, mounting of user mounts in fstab needs this).
- An example might help:
+ With this option enabled, busybox drops privileges for applets
+ that don't need root access, before entering their main() function.
- [SUID]
- su = ssx root.0 # applet su can be run by anyone and runs with
- # euid=0/egid=0
- su = ssx # exactly the same
+ If you are really paranoid and don't want even initial busybox code
+ to run under root for every applet, build two busybox binaries with
+ different applets in them (and the appropriate symlinks pointing
+ to each binary), and only set the suid bit on the one that needs it.
- mount = sx- root.disk # applet mount can be run by root and members
- # of group disk (but not anyone else)
- # and runs with euid=0 (egid is not changed)
+ Some applets which require root rights (need suid bit on the binary
+ or to be run by root) and will refuse to execute otherwise:
+ crontab, login, passwd, su, vlock, wall.
- cp = --- # disable applet cp for everyone
+ The applets which will use root rights if they have them
+ (via suid bit, or because run by root), but would try to work
+ without root right nevertheless:
+ findfs, ping[6], traceroute[6], mount.
- The file has to be owned by user root, group root and has to be
- writeable only by root:
- (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
- The busybox executable has to be owned by user root, group
- root and has to be setuid root for this to work:
- (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
+ Note that if you DO NOT select this option, but DO make busybox
+ suid root, ALL applets will run under root, which is a huge
+ security hole (think "cp /some/file /etc/passwd").
- Robert 'sandman' Griebl has more information here:
- <url: http://www.softforge.de/bb/suid.html >.
+config BUSYBOX_FEATURE_SUID_CONFIG
+ bool "Enable SUID configuration via /etc/busybox.conf"
+ default y
+ depends on BUSYBOX_FEATURE_SUID
+ help
+ Allow the SUID/SGID state of an applet to be determined at runtime
+ by checking /etc/busybox.conf. (This is sort of a poor man's sudo.)
+ The format of this file is as follows:
+
+ APPLET = [Ssx-][Ssx-][x-] [USER.GROUP]
+
+ s: USER or GROUP is allowed to execute APPLET.
+ APPLET will run under USER or GROUP
+ (regardless of who's running it).
+ S: USER or GROUP is NOT allowed to execute APPLET.
+ APPLET will run under USER or GROUP.
+ This option is not very sensical.
+ x: USER/GROUP/others are allowed to execute APPLET.
+ No UID/GID change will be done when it is run.
+ -: USER/GROUP/others are not allowed to execute APPLET.
+
+ An example might help:
+
+ |[SUID]
+ |su = ssx root.0 # applet su can be run by anyone and runs with
+ | # euid=0,egid=0
+ |su = ssx # exactly the same
+ |
+ |mount = sx- root.disk # applet mount can be run by root and members
+ | # of group disk (but not anyone else)
+ | # and runs with euid=0 (egid is not changed)
+ |
+ |cp = --- # disable applet cp for everyone
+
+ The file has to be owned by user root, group root and has to be
+ writeable only by root:
+ (chown 0.0 /etc/busybox.conf; chmod 600 /etc/busybox.conf)
+ The busybox executable has to be owned by user root, group
+ root and has to be setuid root for this to work:
+ (chown 0.0 /bin/busybox; chmod 4755 /bin/busybox)
+
+ Robert 'sandman' Griebl has more information here:
+ <url: http://www.softforge.de/bb/suid.html >.
config BUSYBOX_FEATURE_SUID_CONFIG_QUIET
bool "Suppress warning message if /etc/busybox.conf is not readable"
default y
depends on BUSYBOX_FEATURE_SUID_CONFIG
help
- /etc/busybox.conf should be readable by the user needing the SUID,
- check this option to avoid users to be notified about missing
- permissions.
+ /etc/busybox.conf should be readable by the user needing the SUID,
+ check this option to avoid users to be notified about missing
+ permissions.
+
+config BUSYBOX_FEATURE_PREFER_APPLETS
+ bool "exec prefers applets"
+ default n
+ help
+ This is an experimental option which directs applets about to
+ call 'exec' to try and find an applicable busybox applet before
+ searching the PATH. This is typically done by exec'ing
+ /proc/self/exe.
+
+ This may affect shell, find -exec, xargs and similar applets.
+ They will use applets even if /bin/APPLET -> busybox link
+ is missing (or is not a link to busybox). However, this causes
+ problems in chroot jails without mounted /proc and with ps/top
+ (command name can be shown as 'exe' for applets started this way).
+
+config BUSYBOX_BUSYBOX_EXEC_PATH
+ string "Path to busybox executable"
+ default "/proc/self/exe"
+ help
+ When applets need to run other applets, busybox
+ sometimes needs to exec() itself. When the /proc filesystem is
+ mounted, /proc/self/exe always points to the currently running
+ executable. If you haven't got /proc, set this to wherever you
+ want to run busybox from.
config BUSYBOX_SELINUX
bool "Support NSA Security Enhanced Linux"
default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Enable support for SELinux in applets ls, ps, and id. Also provide
- the option of compiling in SELinux applets.
-
- If you do not have a complete SELinux userland installed, this stuff
- will not compile. Go visit
- http://www.nsa.gov/selinux/index.html
- to download the necessary stuff to allow busybox to compile with
- this option enabled. Specifially, libselinux 1.28 or better is
- directly required by busybox. If the installation is located in a
- non-standard directory, provide it by invoking make as follows:
+ help
+ Enable support for SELinux in applets ls, ps, and id. Also provide
+ the option of compiling in SELinux applets.
+
+ If you do not have a complete SELinux userland installed, this stuff
+ will not compile. Specifially, libselinux 1.28 or better is
+ directly required by busybox. If the installation is located in a
+ non-standard directory, provide it by invoking make as follows:
+
CFLAGS=-I<libselinux-include-path> \
LDFLAGS=-L<libselinux-lib-path> \
make
- Most people will leave this set to 'N'.
+ Most people will leave this set to 'N'.
-config BUSYBOX_FEATURE_PREFER_APPLETS
- bool "exec prefers applets"
+config BUSYBOX_FEATURE_CLEAN_UP
+ bool "Clean up all memory before exiting (usually not needed)"
default n
help
- This is an experimental option which directs applets about to
- call 'exec' to try and find an applicable busybox applet before
- searching the PATH. This is typically done by exec'ing
- /proc/self/exe.
- This may affect shell, find -exec, xargs and similar applets.
- They will use applets even if /bin/<applet> -> busybox link
- is missing (or is not a link to busybox). However, this causes
- problems in chroot jails without mounted /proc and with ps/top
- (command name can be shown as 'exe' for applets started this way).
+ As a size optimization, busybox normally exits without explicitly
+ freeing dynamically allocated memory or closing files. This saves
+ space since the OS will clean up for us, but it can confuse debuggers
+ like valgrind, which report tons of memory and resource leaks.
-config BUSYBOX_BUSYBOX_EXEC_PATH
- string "Path to BusyBox executable"
- default "/proc/self/exe"
+ Don't enable this unless you have a really good reason to clean
+ things up manually.
+
+config BUSYBOX_FEATURE_SYSLOG_INFO
+ bool "Support LOG_INFO level syslog messages"
+ default y
+ depends on BUSYBOX_FEATURE_SYSLOG
help
- When Busybox applets need to run other busybox applets, BusyBox
- sometimes needs to exec() itself. When the /proc filesystem is
- mounted, /proc/self/exe always points to the currently running
- executable. If you haven't got /proc, set this to wherever you
- want to run BusyBox from.
+ Applets which send their output to syslog use either LOG_INFO or
+ LOG_ERR log levels, but by disabling this option all messages will
+ be logged at the LOG_ERR level, saving just under 200 bytes.
# These are auto-selected by other options
@@ -487,57 +354,42 @@ config BUSYBOX_FEATURE_SYSLOG
bool #No description makes it a hidden option
default n
#help
- # This option is auto-selected when you select any applet which may
- # send its output to syslog. You do not need to select it manually.
+ #This option is auto-selected when you select any applet which may
+ #send its output to syslog. You do not need to select it manually.
-config BUSYBOX_FEATURE_HAVE_RPC
- bool #No description makes it a hidden option
- default n
- #help
- # This is automatically selected if any of enabled applets need it.
- # You do not need to select it manually.
-
-endmenu
-
-menu 'Build Options'
+comment 'Build Options'
config BUSYBOX_STATIC
- bool "Build BusyBox as a static binary (no shared libs)"
- default y if ADK_STATIC
+ bool "Build static binary (no shared libs)"
default n
help
- If you want to build a static BusyBox binary, which does not
- use or require any shared libraries, then enable this option.
- This can cause BusyBox to be considerably larger, so you should
- leave this option false unless you have a good reason (i.e.
- your target platform does not support shared libraries, or
- you are building an initrd which doesn't need anything but
- BusyBox, etc).
-
- Most people will leave this set to 'N'.
+ If you want to build a static binary, which does not use
+ or require any shared libraries, enable this option.
+ Static binaries are larger, but do not require functioning
+ dynamic libraries to be present, which is important if used
+ as a system rescue tool.
config BUSYBOX_PIE
- bool "Build BusyBox as a position independent executable"
- default n
+ bool "Build position independent executable"
+ default y if !ADK_TARGET_WITH_MMU && ADK_TARGET_BINFMT_ELF
depends on !BUSYBOX_STATIC
help
- Hardened code option. PIE binaries are loaded at a different
- address at each invocation. This has some overhead,
- particularly on x86-32 which is short on registers.
+ Hardened code option. PIE binaries are loaded at a different
+ address at each invocation. This has some overhead,
+ particularly on x86-32 which is short on registers.
- Most people will leave this set to 'N'.
+ Most people will leave this set to 'N'.
config BUSYBOX_NOMMU
bool "Force NOMMU build"
- default n if ADK_TARGET_WITH_MMU
- default y
+ default y if !ADK_TARGET_WITH_MMU
help
- Busybox tries to detect whether architecture it is being
- built against supports MMU or not. If this detection fails,
- or if you want to build NOMMU version of busybox for testing,
- you may force NOMMU build here.
+ Busybox tries to detect whether architecture it is being
+ built against supports MMU or not. If this detection fails,
+ or if you want to build NOMMU version of busybox for testing,
+ you may force NOMMU build here.
- Most people will leave this set to 'N'.
+ Most people will leave this set to 'N'.
# PIE can be made to work with BUILD_LIBBUSYBOX, but currently
# build system does not support that
@@ -546,299 +398,320 @@ config BUSYBOX_BUILD_LIBBUSYBOX
default n
depends on !BUSYBOX_FEATURE_PREFER_APPLETS && !BUSYBOX_PIE && !BUSYBOX_STATIC
help
- Build a shared library libbusybox.so.N.N.N which contains all
- busybox code.
+ Build a shared library libbusybox.so.N.N.N which contains all
+ busybox code.
- This feature allows every applet to be built as a tiny
- separate executable. Enabling it for "one big busybox binary"
- approach serves no purpose and increases code size.
- You should almost certainly say "no" to this.
+ This feature allows every applet to be built as a really tiny
+ separate executable linked against the library:
+ |$ size 0_lib/l*
+ | text data bss dec hex filename
+ | 939 212 28 1179 49b 0_lib/last
+ | 939 212 28 1179 49b 0_lib/less
+ | 919138 8328 1556 929022 e2cfe 0_lib/libbusybox.so.1.N.M
-### config FEATURE_FULL_LIBBUSYBOX
-### bool "Feature-complete libbusybox"
-### default n if !FEATURE_SHARED_BUSYBOX
-### depends on BUSYBOX_BUILD_LIBBUSYBOX
-### help
-### Build a libbusybox with the complete feature-set, disregarding
-### the actually selected config.
-###
-### Normally, libbusybox will only contain the features which are
-### used by busybox itself. If you plan to write a separate
-### standalone application which uses libbusybox say 'Y'.
-###
-### Note: libbusybox is GPL, not LGPL, and exports no stable API that
-### might act as a copyright barrier. We can and will modify the
-### exported function set between releases (even minor version number
-### changes), and happily break out-of-tree features.
-###
-### Say 'N' if in doubt.
+ This is useful on NOMMU systems which are not capable
+ of sharing executables, but are capable of sharing code
+ in dynamic libraries.
+
+config BUSYBOX_FEATURE_LIBBUSYBOX_STATIC
+ bool "Pull in all external references into libbusybox"
+ default n
+ depends on BUSYBOX_BUILD_LIBBUSYBOX
+ help
+ Make libbusybox library independent, not using or requiring
+ any other shared libraries.
config BUSYBOX_FEATURE_INDIVIDUAL
bool "Produce a binary for each applet, linked against libbusybox"
default y
depends on BUSYBOX_BUILD_LIBBUSYBOX
help
- If your CPU architecture doesn't allow for sharing text/rodata
- sections of running binaries, but allows for runtime dynamic
- libraries, this option will allow you to reduce memory footprint
- when you have many different applets running at once.
+ If your CPU architecture doesn't allow for sharing text/rodata
+ sections of running binaries, but allows for runtime dynamic
+ libraries, this option will allow you to reduce memory footprint
+ when you have many different applets running at once.
- If your CPU architecture allows for sharing text/rodata,
- having single binary is more optimal.
+ If your CPU architecture allows for sharing text/rodata,
+ having single binary is more optimal.
- Each applet will be a tiny program, dynamically linked
- against libbusybox.so.N.N.N.
+ Each applet will be a tiny program, dynamically linked
+ against libbusybox.so.N.N.N.
- You need to have a working dynamic linker.
+ You need to have a working dynamic linker.
config BUSYBOX_FEATURE_SHARED_BUSYBOX
bool "Produce additional busybox binary linked against libbusybox"
default y
depends on BUSYBOX_BUILD_LIBBUSYBOX
help
- Build busybox, dynamically linked against libbusybox.so.N.N.N.
+ Build busybox, dynamically linked against libbusybox.so.N.N.N.
- You need to have a working dynamic linker.
+ You need to have a working dynamic linker.
### config BUILD_AT_ONCE
### bool "Compile all sources at once"
### default n
### help
-### Normally each source-file is compiled with one invocation of
-### the compiler.
-### If you set this option, all sources are compiled at once.
-### This gives the compiler more opportunities to optimize which can
-### result in smaller and/or faster binaries.
+### Normally each source-file is compiled with one invocation of
+### the compiler.
+### If you set this option, all sources are compiled at once.
+### This gives the compiler more opportunities to optimize which can
+### result in smaller and/or faster binaries.
###
-### Setting this option will consume alot of memory, e.g. if you
-### enable all applets with all features, gcc uses more than 300MB
-### RAM during compilation of busybox.
+### Setting this option will consume alot of memory, e.g. if you
+### enable all applets with all features, gcc uses more than 300MB
+### RAM during compilation of busybox.
###
-### This option is most likely only beneficial for newer compilers
-### such as gcc-4.1 and above.
+### This option is most likely only beneficial for newer compilers
+### such as gcc-4.1 and above.
###
-### Say 'N' unless you know what you are doing.
-
-config BUSYBOX_LFS
- bool "Build with Large File Support (for accessing files > 2 GB)"
- default y
- help
- If you want to build BusyBox with large file support, then enable
- this option. This will have no effect if your kernel or your C
- library lacks large file support for large files. Some of the
- programs that can benefit from large file support include dd, gzip,
- cp, mount, tar, and many others. If you want to access files larger
- than 2 Gigabytes, enable this option. Otherwise, leave it set to 'N'.
+### Say 'N' unless you know what you are doing.
config BUSYBOX_CROSS_COMPILER_PREFIX
- string "Cross Compiler prefix"
+ string "Cross compiler prefix"
default ""
help
- If you want to build BusyBox with a cross compiler, then you
- will need to set this to the cross-compiler prefix, for example,
- "i386-uclibc-".
+ If you want to build busybox with a cross compiler, then you
+ will need to set this to the cross-compiler prefix, for example,
+ "i386-uclibc-".
- Note that CROSS_COMPILE environment variable or
- "make CROSS_COMPILE=xxx ..." will override this selection.
+ Note that CROSS_COMPILE environment variable or
+ "make CROSS_COMPILE=xxx ..." will override this selection.
- Native builds leave this empty.
+ Native builds leave this empty.
config BUSYBOX_SYSROOT
string "Path to sysroot"
default ""
help
- If you want to build BusyBox with a cross compiler, then you
- might also need to specify where /usr/include and /usr/lib
- will be found.
+ If you want to build busybox with a cross compiler, then you
+ might also need to specify where /usr/include and /usr/lib
+ will be found.
- For example, BusyBox can be built against an installed
- Android NDK, platform version 9, for ARM ABI with
+ For example, busybox can be built against an installed
+ Android NDK, platform version 9, for ARM ABI with
- CONFIG_SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm
+ CONFIG_SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm
- Native builds leave this empty.
+ Native builds leave this empty.
config BUSYBOX_EXTRA_CFLAGS
string "Additional CFLAGS"
default ""
help
- Additional CFLAGS to pass to the compiler verbatim.
+ Additional CFLAGS to pass to the compiler verbatim.
config BUSYBOX_EXTRA_LDFLAGS
string "Additional LDFLAGS"
default ""
help
- Additional LDFLAGS to pass to the linker verbatim.
+ Additional LDFLAGS to pass to the linker verbatim.
config BUSYBOX_EXTRA_LDLIBS
string "Additional LDLIBS"
default ""
help
- Additional LDLIBS to pass to the linker with -l.
-
-endmenu
+ Additional LDLIBS to pass to the linker with -l.
-menu 'Debugging Options'
-
-config BUSYBOX_DEBUG
- bool "Build BusyBox with extra Debugging symbols"
- default n
- help
- Say Y here if you wish to examine BusyBox internals while applets are
- running. This increases the size of the binary considerably, and
- should only be used when doing development. If you are doing
- development and want to debug BusyBox, answer Y.
-
- Most people should answer N.
-
-config BUSYBOX_DEBUG_PESSIMIZE
- bool "Disable compiler optimizations"
- default n
- depends on BUSYBOX_DEBUG
- help
- The compiler's optimization of source code can eliminate and reorder
- code, resulting in an executable that's hard to understand when
- stepping through it with a debugger. This switches it off, resulting
- in a much bigger executable that more closely matches the source
- code.
-
-config BUSYBOX_DEBUG_SANITIZE
- bool "Enable runtime sanitizers (ASAN/LSAN/USAN/etc...)"
+config BUSYBOX_USE_PORTABLE_CODE
+ bool "Avoid using GCC-specific code constructs"
default n
help
- Say Y here if you want to enable runtime sanitizers. These help
- catch bad memory accesses (e.g. buffer overflows), but will make
- the executable larger and slow down runtime a bit.
-
- If you aren't developing/testing busybox, say N here.
+ Use this option if you are trying to compile busybox with
+ compiler other than gcc.
+ If you do use gcc, this option may needlessly increase code size.
-config BUSYBOX_UNIT_TEST
- bool "Build unit tests"
- default n
+config BUSYBOX_STACK_OPTIMIZATION_386
+ bool "Use -mpreferred-stack-boundary=2 on i386 arch"
+ default y
help
- Say Y here if you want to build unit tests (both the framework and
- test cases) as a Busybox applet. This results in bigger code, so you
- probably don't want this option in production builds.
+ This option makes for smaller code, but some libc versions
+ do not work with it (they use SSE instructions without
+ ensuring stack alignment).
-config BUSYBOX_WERROR
- bool "Abort compilation on any warning"
- default n
+config BUSYBOX_STATIC_LIBGCC
+ bool "Use -static-libgcc"
+ default y
help
- Selecting this will add -Werror to gcc command line.
+ This option instructs gcc to link in a static version of its
+ support library, libgcc. This means that the binary will require
+ one fewer dynamic library at run time.
- Most people should answer N.
-
-choice
- prompt "Additional debugging library"
- default NO_DEBUG_LIB
- help
- Using an additional debugging library will make BusyBox become
- considerable larger and will cause it to run more slowly. You
- should always leave this option disabled for production use.
-
- dmalloc support:
- ----------------
- This enables compiling with dmalloc ( http://dmalloc.com/ )
- which is an excellent public domain mem leak and malloc problem
- detector. To enable dmalloc, before running busybox you will
- want to properly set your environment, for example:
- export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
- The 'debug=' value is generated using the following command
- dmalloc -p log-stats -p log-non-free -p log-bad-space \
- -p log-elapsed-time -p check-fence -p check-heap \
- -p check-lists -p check-blank -p check-funcs -p realloc-copy \
- -p allow-free-null
-
- Electric-fence support:
- -----------------------
- This enables compiling with Electric-fence support. Electric
- fence is another very useful malloc debugging library which uses
- your computer's virtual memory hardware to detect illegal memory
- accesses. This support will make BusyBox be considerable larger
- and run slower, so you should leave this option disabled unless
- you are hunting a hard to find memory problem.
-
-
-config BUSYBOX_NO_DEBUG_LIB
- bool "None"
-
-config BUSYBOX_DMALLOC
- bool "Dmalloc"
-
-config BUSYBOX_EFENCE
- bool "Electric-fence"
-
-endchoice
-
-endmenu
-
-menu 'Installation Options ("make install" behavior)'
+comment 'Installation Options ("make install" behavior)'
choice
prompt "What kind of applet links to install"
- default INSTALL_APPLET_SYMLINKS
+ default BUSYBOX_INSTALL_APPLET_SYMLINKS
help
- Choose what kind of links to applets are created by "make install".
+ Choose what kind of links to applets are created by "make install".
config BUSYBOX_INSTALL_APPLET_SYMLINKS
bool "as soft-links"
help
- Install applets as soft-links to the busybox binary. This needs some
- free inodes on the filesystem, but might help with filesystem
- generators that can't cope with hard-links.
+ Install applets as soft-links to the busybox binary. This needs some
+ free inodes on the filesystem, but might help with filesystem
+ generators that can't cope with hard-links.
config BUSYBOX_INSTALL_APPLET_HARDLINKS
bool "as hard-links"
help
- Install applets as hard-links to the busybox binary. This might
- count on a filesystem with few inodes.
+ Install applets as hard-links to the busybox binary. This might
+ count on a filesystem with few inodes.
config BUSYBOX_INSTALL_APPLET_SCRIPT_WRAPPERS
bool "as script wrappers"
help
- Install applets as script wrappers that call the busybox binary.
+ Install applets as script wrappers that call the busybox binary.
config BUSYBOX_INSTALL_APPLET_DONT
bool "not installed"
help
- Do not install applet links. Useful when you plan to use
- busybox --install for installing links, or plan to use
- a standalone shell and thus don't need applet links.
+ Do not install applet links. Useful when you plan to use
+ busybox --install for installing links, or plan to use
+ a standalone shell and thus don't need applet links.
endchoice
choice
prompt "/bin/sh applet link"
- default INSTALL_SH_APPLET_SYMLINK
+ default BUSYBOX_INSTALL_SH_APPLET_SYMLINK
depends on BUSYBOX_INSTALL_APPLET_SCRIPT_WRAPPERS
help
- Choose how you install /bin/sh applet link.
+ Choose how you install /bin/sh applet link.
config BUSYBOX_INSTALL_SH_APPLET_SYMLINK
bool "as soft-link"
help
- Install /bin/sh applet as soft-link to the busybox binary.
+ Install /bin/sh applet as soft-link to the busybox binary.
config BUSYBOX_INSTALL_SH_APPLET_HARDLINK
bool "as hard-link"
help
- Install /bin/sh applet as hard-link to the busybox binary.
+ Install /bin/sh applet as hard-link to the busybox binary.
config BUSYBOX_INSTALL_SH_APPLET_SCRIPT_WRAPPER
bool "as script wrapper"
help
- Install /bin/sh applet as script wrapper that calls
- the busybox binary.
+ Install /bin/sh applet as script wrapper that calls
+ the busybox binary.
endchoice
config BUSYBOX_PREFIX
- string "BusyBox installation prefix"
+ string "Destination path for 'make install'"
default "@IDIR@"
help
- Define your directory to install BusyBox files/subdirs in.
+ Where "make install" should install busybox binary and links.
-endmenu
+comment 'Debugging Options'
+
+config BUSYBOX_DEBUG
+ bool "Build with debug information"
+ default n
+ help
+ Say Y here to compile with debug information.
+ This increases the size of the binary considerably, and
+ should only be used when doing development.
+
+ This adds -g option to gcc command line.
+
+ Most people should answer N.
+
+config BUSYBOX_DEBUG_PESSIMIZE
+ bool "Disable compiler optimizations"
+ default n
+ depends on BUSYBOX_DEBUG
+ help
+ The compiler's optimization of source code can eliminate and reorder
+ code, resulting in an executable that's hard to understand when
+ stepping through it with a debugger. This switches it off, resulting
+ in a much bigger executable that more closely matches the source
+ code.
+
+ This replaces -Os/-O2 with -O0 in gcc command line.
+
+config BUSYBOX_DEBUG_SANITIZE
+ bool "Enable runtime sanitizers (ASAN/LSAN/USAN/etc...)"
+ default n
+ help
+ Say Y here if you want to enable runtime sanitizers. These help
+ catch bad memory accesses (e.g. buffer overflows), but will make
+ the executable larger and slow down runtime a bit.
+
+ This adds -fsanitize=foo options to gcc command line.
+
+ If you aren't developing/testing busybox, say N here.
+
+config BUSYBOX_UNIT_TEST
+ bool "Build unit tests"
+ default n
+ help
+ Say Y here if you want to build unit tests (both the framework and
+ test cases) as an applet. This results in bigger code, so you
+ probably don't want this option in production builds.
+
+config BUSYBOX_WERROR
+ bool "Abort compilation on any warning"
+ default n
+ help
+ This adds -Werror to gcc command line.
+
+ Most people should answer N.
+
+config BUSYBOX_WARN_SIMPLE_MSG
+ bool "Warn about single parameter bb_xx_msg calls"
+ default n
+ help
+ This will cause warnings to be shown for any instances of
+ bb_error_msg(), bb_error_msg_and_die(), bb_perror_msg(),
+ bb_perror_msg_and_die(), bb_herror_msg() or bb_herror_msg_and_die()
+ being called with a single parameter. In these cases the equivalent
+ bb_simple_xx_msg function should be used instead.
+ Note that use of STRERROR_FMT may give false positives.
+
+ If you aren't developing busybox, say N here.
+
+choice
+ prompt "Additional debugging library"
+ default BUSYBOX_NO_DEBUG_LIB
+ help
+ Using an additional debugging library will make busybox become
+ considerably larger and will cause it to run more slowly. You
+ should always leave this option disabled for production use.
+
+ dmalloc support:
+ ----------------
+ This enables compiling with dmalloc ( http://dmalloc.com/ )
+ which is an excellent public domain mem leak and malloc problem
+ detector. To enable dmalloc, before running busybox you will
+ want to properly set your environment, for example:
+ export DMALLOC_OPTIONS=debug=0x34f47d83,inter=100,log=logfile
+ The 'debug=' value is generated using the following command
+ dmalloc -p log-stats -p log-non-free -p log-bad-space \
+ -p log-elapsed-time -p check-fence -p check-heap \
+ -p check-lists -p check-blank -p check-funcs -p realloc-copy \
+ -p allow-free-null
+
+ Electric-fence support:
+ -----------------------
+ This enables compiling with Electric-fence support. Electric
+ fence is another very useful malloc debugging library which uses
+ your computer's virtual memory hardware to detect illegal memory
+ accesses. This support will make busybox be considerably larger
+ and run slower, so you should leave this option disabled unless
+ you are hunting a hard to find memory problem.
+
+
+config BUSYBOX_NO_DEBUG_LIB
+ bool "None"
+
+config BUSYBOX_DMALLOC
+ bool "Dmalloc"
+
+config BUSYBOX_EFENCE
+ bool "Electric-fence"
+
+endchoice
source package/busybox/config/libbb/Config.in
@@ -850,6 +723,7 @@ source package/busybox/config/archival/Config.in
source package/busybox/config/coreutils/Config.in
source package/busybox/config/console-tools/Config.in
source package/busybox/config/debianutils/Config.in
+source package/busybox/config/klibc-utils/Config.in
source package/busybox/config/editors/Config.in
source package/busybox/config/findutils/Config.in
source package/busybox/config/init/Config.in
diff --git a/package/busybox/config/archival/Config.in b/package/busybox/config/archival/Config.in
index 8532767c2..fe68eeb18 100644
--- a/package/busybox/config/archival/Config.in
+++ b/package/busybox/config/archival/Config.in
@@ -1,7 +1,7 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Archival Utilities"
@@ -9,452 +9,449 @@ menu "Archival Utilities"
config BUSYBOX_FEATURE_SEAMLESS_XZ
bool "Make tar, rpm, modprobe etc understand .xz data"
default y
- help
- Make tar, rpm, modprobe etc understand .xz data.
config BUSYBOX_FEATURE_SEAMLESS_LZMA
bool "Make tar, rpm, modprobe etc understand .lzma data"
default y
- help
- Make tar, rpm, modprobe etc understand .lzma data.
config BUSYBOX_FEATURE_SEAMLESS_BZ2
bool "Make tar, rpm, modprobe etc understand .bz2 data"
default y
- help
- Make tar, rpm, modprobe etc understand .bz2 data.
config BUSYBOX_FEATURE_SEAMLESS_GZ
bool "Make tar, rpm, modprobe etc understand .gz data"
default y
- help
- Make tar, rpm, modprobe etc understand .gz data.
config BUSYBOX_FEATURE_SEAMLESS_Z
- bool "tar, rpm, modprobe etc understand .Z data"
- default n
- help
- Make tar, rpm, modprobe etc understand .Z data.
+ bool "Make tar, rpm, modprobe etc understand .Z data"
+ default n # it is ancient
config BUSYBOX_AR
- bool "ar"
- depends on !BUSYBOX_DISABLE_AR
+ bool "ar (9.5 kb)"
default n # needs to be improved to be able to replace binutils ar
help
- ar is an archival utility program used to create, modify, and
- extract contents from archives. An archive is a single file holding
- a collection of other files in a structure that makes it possible to
- retrieve the original individual files (called archive members).
- The original files' contents, mode (permissions), timestamp, owner,
- and group are preserved in the archive, and can be restored on
- extraction.
+ ar is an archival utility program used to create, modify, and
+ extract contents from archives. In practice, it is used exclusively
+ for object module archives used by compilers.
- The stored filename is limited to 15 characters. (for more information
- see long filename support).
- ar has 60 bytes of overheads for every stored file.
-
- This implementation of ar can extract archives, it cannot create or
- modify them.
- On an x86 system, the ar applet adds about 1K.
-
- Unless you have a specific application which requires ar, you should
- probably say N here.
+ Unless you have a specific application which requires ar, you should
+ probably say N here: most compilers come with their own ar utility.
config BUSYBOX_FEATURE_AR_LONG_FILENAMES
- bool "Support for long filenames (not needed for debs)"
+ bool "Support long filenames (not needed for debs)"
default y
depends on BUSYBOX_AR
help
- By default the ar format can only store the first 15 characters
- of the filename, this option removes that limitation.
- It supports the GNU ar long filename method which moves multiple long
- filenames into a the data section of a new ar entry.
+ By default the ar format can only store the first 15 characters
+ of the filename, this option removes that limitation.
+ It supports the GNU ar long filename method which moves multiple long
+ filenames into a the data section of a new ar entry.
config BUSYBOX_FEATURE_AR_CREATE
bool "Support archive creation"
default y
depends on BUSYBOX_AR
help
- This enables archive creation (-c and -r) with busybox ar.
+ This enables archive creation (-c and -r) with busybox ar.
+config BUSYBOX_UNCOMPRESS
+ bool "uncompress (7.1 kb)"
+ default n # ancient
+ help
+ uncompress is used to decompress archives created by compress.
+ Not much used anymore, replaced by gzip/gunzip.
+config BUSYBOX_GUNZIP
+ bool "gunzip (11 kb)"
+ default y
+ select BUSYBOX_FEATURE_GZIP_DECOMPRESS
+ help
+ gunzip is used to decompress archives created by gzip.
+ You can use the '-t' option to test the integrity of
+ an archive, without decompressing it.
+
+config BUSYBOX_ZCAT
+ bool "zcat (24 kb)"
+ default y
+ select BUSYBOX_FEATURE_GZIP_DECOMPRESS
+ help
+ Alias to "gunzip -c".
+config BUSYBOX_FEATURE_GUNZIP_LONG_OPTIONS
+ bool "Enable long options"
+ default y
+ depends on (BUSYBOX_GUNZIP || BUSYBOX_ZCAT) && BUSYBOX_LONG_OPTS
config BUSYBOX_BUNZIP2
- bool "bunzip2"
- depends on !BUSYBOX_DISABLE_BUNZIP2
- default n
+ bool "bunzip2 (8.7 kb)"
+ default y
+ select BUSYBOX_FEATURE_BZIP2_DECOMPRESS
help
- bunzip2 is a compression utility using the Burrows-Wheeler block
- sorting text compression algorithm, and Huffman coding. Compression
- is generally considerably better than that achieved by more
- conventional LZ77/LZ78-based compressors, and approaches the
- performance of the PPM family of statistical compressors.
+ bunzip2 is a compression utility using the Burrows-Wheeler block
+ sorting text compression algorithm, and Huffman coding. Compression
+ is generally considerably better than that achieved by more
+ conventional LZ77/LZ78-based compressors, and approaches the
+ performance of the PPM family of statistical compressors.
- Unless you have a specific application which requires bunzip2, you
- should probably say N here.
+ Unless you have a specific application which requires bunzip2, you
+ should probably say N here.
config BUSYBOX_BZCAT
- bool "bzcat"
+ bool "bzcat (8.7 kb)"
default y
+ select BUSYBOX_FEATURE_BZIP2_DECOMPRESS
help
- Alias to "bunzip2 -c".
+ Alias to "bunzip2 -c".
+config BUSYBOX_UNLZMA
+ bool "unlzma (7.5 kb)"
+ default y
+ help
+ unlzma is a compression utility using the Lempel-Ziv-Markov chain
+ compression algorithm, and range coding. Compression
+ is generally considerably better than that achieved by the bzip2
+ compressors.
-config BUSYBOX_BZIP2
- bool "bzip2"
- depends on !BUSYBOX_DISABLE_BZIP2
- default n
+config BUSYBOX_LZCAT
+ bool "lzcat (7.5 kb)"
+ default y
+ help
+ Alias to "unlzma -c".
+
+config BUSYBOX_LZMA
+ bool "lzma -d"
+ default y
+ help
+ Enable this option if you want commands like "lzma -d" to work.
+ IOW: you'll get lzma applet, but it will always require -d option.
+config BUSYBOX_UNXZ
+ bool "unxz (13 kb)"
+ default y
help
- bzip2 is a compression utility using the Burrows-Wheeler block
- sorting text compression algorithm, and Huffman coding. Compression
- is generally considerably better than that achieved by more
- conventional LZ77/LZ78-based compressors, and approaches the
- performance of the PPM family of statistical compressors.
+ unxz is a unlzma successor.
- Unless you have a specific application which requires bzip2, you
- should probably say N here.
+config BUSYBOX_XZCAT
+ bool "xzcat (13 kb)"
+ default y
+ help
+ Alias to "unxz -c".
+config BUSYBOX_XZ
+ bool "xz -d"
+ default y
+ help
+ Enable this option if you want commands like "xz -d" to work.
+ IOW: you'll get xz applet, but it will always require -d option.
+config BUSYBOX_BZIP2
+ bool "bzip2 (16 kb)"
+ default y
+ help
+ bzip2 is a compression utility using the Burrows-Wheeler block
+ sorting text compression algorithm, and Huffman coding. Compression
+ is generally considerably better than that achieved by more
+ conventional LZ77/LZ78-based compressors, and approaches the
+ performance of the PPM family of statistical compressors.
+
+ Unless you have a specific application which requires bzip2, you
+ should probably say N here.
+
+config BUSYBOX_BZIP2_SMALL
+ int "Trade bytes for speed (0:fast, 9:small)"
+ default 8 # all "fast or small" options default to small
+ range 0 9
+ depends on BUSYBOX_BZIP2
+ help
+ Trade code size versus speed.
+ Approximate values with gcc-6.3.0 "bzip -9" compressing
+ linux-4.15.tar were:
+ value time (sec) code size (386)
+ 9 (smallest) 70.11 7687
+ 8 67.93 8091
+ 7 67.88 8405
+ 6 67.78 8624
+ 5 67.05 9427
+ 4-0 (fastest) 64.14 12083
+
+config BUSYBOX_FEATURE_BZIP2_DECOMPRESS
+ bool "Enable decompression"
+ default y
+ depends on BUSYBOX_BZIP2 || BUSYBOX_BUNZIP2 || BUSYBOX_BZCAT
+ help
+ Enable -d (--decompress) and -t (--test) options for bzip2.
+ This will be automatically selected if bunzip2 or bzcat is
+ enabled.
config BUSYBOX_CPIO
- bool "cpio"
- depends on !BUSYBOX_DISABLE_CPIO
- default n
+ bool "cpio (15 kb)"
+ default y
help
- cpio is an archival utility program used to create, modify, and
- extract contents from archives.
- cpio has 110 bytes of overheads for every stored file.
+ cpio is an archival utility program used to create, modify, and
+ extract contents from archives.
+ cpio has 110 bytes of overheads for every stored file.
- This implementation of cpio can extract cpio archives created in the
- "newc" or "crc" format, it cannot create or modify them.
+ This implementation of cpio can extract cpio archives created in the
+ "newc" or "crc" format.
- Unless you have a specific application which requires cpio, you
- should probably say N here.
+ Unless you have a specific application which requires cpio, you
+ should probably say N here.
config BUSYBOX_FEATURE_CPIO_O
- bool "Support for archive creation"
+ bool "Support archive creation"
default y
depends on BUSYBOX_CPIO
help
- This implementation of cpio can create cpio archives in the "newc"
- format only.
+ This implementation of cpio can create cpio archives in the "newc"
+ format only.
config BUSYBOX_FEATURE_CPIO_P
- bool "Support for passthrough mode"
+ bool "Support passthrough mode"
default y
depends on BUSYBOX_FEATURE_CPIO_O
help
- Passthrough mode. Rarely used.
-
-config BUSYBOX_DPKG
- bool "dpkg"
- default n
- select BUSYBOX_FEATURE_SEAMLESS_GZ
- help
- dpkg is a medium-level tool to install, build, remove and manage
- Debian packages.
-
- This implementation of dpkg has a number of limitations,
- you should use the official dpkg if possible.
-
-config BUSYBOX_DPKG_DEB
- bool "dpkg_deb"
- default n
- select BUSYBOX_FEATURE_SEAMLESS_GZ
- help
- dpkg-deb unpacks and provides information about Debian archives.
-
- This implementation of dpkg-deb cannot pack archives.
+ Passthrough mode. Rarely used.
- Unless you have a specific application which requires dpkg-deb,
- say N here.
-
-config BUSYBOX_FEATURE_DPKG_DEB_EXTRACT_ONLY
- bool "Extract only (-x)"
- default n
- depends on BUSYBOX_DPKG_DEB
+config BUSYBOX_FEATURE_CPIO_IGNORE_DEVNO
+ bool "Support --ignore-devno like GNU cpio"
+ default y
+ depends on BUSYBOX_FEATURE_CPIO_O && BUSYBOX_LONG_OPTS
help
- This reduces dpkg-deb to the equivalent of
- "ar -p <deb> data.tar.gz | tar -zx". However it saves space as none
- of the extra dpkg-deb, ar or tar options are needed, they are linked
- to internally.
+ Optionally ignore device numbers when creating archives.
-config BUSYBOX_GUNZIP
- bool "gunzip"
+config BUSYBOX_FEATURE_CPIO_RENUMBER_INODES
+ bool "Support --renumber-inodes like GNU cpio"
default y
+ depends on BUSYBOX_FEATURE_CPIO_O && BUSYBOX_LONG_OPTS
help
- gunzip is used to decompress archives created by gzip.
- You can use the `-t' option to test the integrity of
- an archive, without decompressing it.
-
-config BUSYBOX_ZCAT
- bool "zcat"
+ Optionally renumber inodes when creating archives.
+config BUSYBOX_DPKG
+ bool "dpkg (43 kb)"
default y
+ select BUSYBOX_FEATURE_SEAMLESS_GZ
help
- Alias to "gunzip -c".
+ dpkg is a medium-level tool to install, build, remove and manage
+ Debian packages.
-config BUSYBOX_FEATURE_GUNZIP_LONG_OPTIONS
- bool "Enable long options"
+ This implementation of dpkg has a number of limitations,
+ you should use the official dpkg if possible.
+config BUSYBOX_DPKG_DEB
+ bool "dpkg-deb (30 kb)"
default y
- depends on BUSYBOX_GUNZIP && BUSYBOX_LONG_OPTS
+ select BUSYBOX_FEATURE_SEAMLESS_GZ
help
- Enable use of long options.
+ dpkg-deb unpacks and provides information about Debian archives.
+
+ This implementation of dpkg-deb cannot pack archives.
+ Unless you have a specific application which requires dpkg-deb,
+ say N here.
config BUSYBOX_GZIP
- bool "gzip"
+ bool "gzip (17 kb)"
default y
help
- gzip is used to compress files.
- It's probably the most widely used UNIX compression program.
+ gzip is used to compress files.
+ It's probably the most widely used UNIX compression program.
config BUSYBOX_FEATURE_GZIP_LONG_OPTIONS
bool "Enable long options"
default y
depends on BUSYBOX_GZIP && BUSYBOX_LONG_OPTS
- help
- Enable use of long options, increases size by about 106 Bytes
config BUSYBOX_GZIP_FAST
- int "Trade memory for gzip speed (0:small,slow - 2:fast,big)"
+ int "Trade memory for speed (0:small,slow - 2:fast,big)"
default 0
range 0 2
depends on BUSYBOX_GZIP
help
- Enable big memory options for gzip.
- 0: small buffers, small hash-tables
- 1: larger buffers, larger hash-tables
- 2: larger buffers, largest hash-tables
- Larger models may give slightly better compression
+ Enable big memory options for gzip.
+ 0: small buffers, small hash-tables
+ 1: larger buffers, larger hash-tables
+ 2: larger buffers, largest hash-tables
+ Larger models may give slightly better compression
-config BUSYBOX_LZOP
- bool "lzop"
+config BUSYBOX_FEATURE_GZIP_LEVELS
+ bool "Enable compression levels"
default n
+ depends on BUSYBOX_GZIP
help
- Lzop compression/decompresion.
+ Enable support for compression levels 4-9. The default level
+ is 6. If levels 1-3 are specified, 4 is used.
+ If this option is not selected, -N options are ignored and -6
+ is used.
-config BUSYBOX_UNLZOP
- bool "unlzop"
- default n
+config BUSYBOX_FEATURE_GZIP_DECOMPRESS
+ bool "Enable decompression"
+ default y
+ depends on BUSYBOX_GZIP || BUSYBOX_GUNZIP || BUSYBOX_ZCAT
help
- Lzop decompresion.
-
-config BUSYBOX_LZOPCAT
- bool "lzopcat"
+ Enable -d (--decompress) and -t (--test) options for gzip.
+ This will be automatically selected if gunzip or zcat is
+ enabled.
+config BUSYBOX_IPKG
+ bool "ipkg"
default n
help
- Alias to "unlzop -c".
+ ipkg is a tool to install, build, remove and manage
+ packages.
-config BUSYBOX_LZOP_COMPR_HIGH
- bool "lzop compression levels 7,8,9 (not very useful)"
- default n
- depends on BUSYBOX_LZOP
+config BUSYBOX_LZOP
+ bool "lzop (12 kb)"
+ default y
help
- High levels (7,8,9) of lzop compression. These levels
- are actually slower than gzip at equivalent compression ratios
- and take up 3.2K of code.
+ Lzop compression/decompresion.
-config BUSYBOX_FEATURE_GZIP_LEVELS
- bool "Enable compression levels"
- default n
- depends on BUSYBOX_GZIP
+config BUSYBOX_UNLZOP
+ bool "unlzop (13 kb)"
+ default n # INCOMPAT: upstream lzop does not provide such tool
help
- Enable support for compression levels 4-9. The default level
- is 6. If levels 1-3 are specified, 4 is used.
- If this option is not selected, -N options are ignored and -9
- is used.
+ Lzop decompresion.
-config BUSYBOX_IPKG
- bool "ipkg"
- default n
+config BUSYBOX_LZOPCAT
+ bool "lzopcat (13 kb)"
+ default n # INCOMPAT: upstream lzop does not provide such tool
help
- ipkg is the itsy package management system.
+ Alias to "lzop -dc".
-config BUSYBOX_RPM2CPIO
- bool "rpm2cpio"
- depends on !BUSYBOX_DISABLE_RPM
+config BUSYBOX_LZOP_COMPR_HIGH
+ bool "lzop compression levels 7,8,9 (not very useful)"
default n
+ depends on BUSYBOX_LZOP || BUSYBOX_UNLZOP || BUSYBOX_LZOPCAT
help
- Converts a RPM file into a CPIO archive.
-
+ High levels (7,8,9) of lzop compression. These levels
+ are actually slower than gzip at equivalent compression ratios
+ and take up 3.2K of code.
config BUSYBOX_RPM
- bool "rpm"
- depends on !BUSYBOX_DISABLE_RPM
- default n
+ bool "rpm (32 kb)"
+ default y
help
- Mini RPM applet - queries and extracts RPM packages.
-
+ Mini RPM applet - queries and extracts RPM packages.
+config BUSYBOX_RPM2CPIO
+ bool "rpm2cpio (21 kb)"
+ default y
+ help
+ Converts a RPM file into a CPIO archive.
config BUSYBOX_TAR
- bool "tar"
- depends on !BUSYBOX_DISABLE_TAR
+ bool "tar (39 kb)"
default y
help
- tar is an archiving program. It's commonly used with gzip to
- create compressed archives. It's probably the most widely used
- UNIX archive program.
+ tar is an archiving program. It's commonly used with gzip to
+ create compressed archives. It's probably the most widely used
+ UNIX archive program.
+
+config BUSYBOX_FEATURE_TAR_LONG_OPTIONS
+ bool "Enable long options"
+ default y
+ depends on BUSYBOX_TAR && BUSYBOX_LONG_OPTS
config BUSYBOX_FEATURE_TAR_CREATE
- bool "Enable archive creation"
+ bool "Enable -c (archive creation)"
default y
depends on BUSYBOX_TAR
- help
- If you enable this option you'll be able to create
- tar archives using the `-c' option.
config BUSYBOX_FEATURE_TAR_AUTODETECT
bool "Autodetect compressed tarballs"
default y
depends on BUSYBOX_TAR && (BUSYBOX_FEATURE_SEAMLESS_Z || BUSYBOX_FEATURE_SEAMLESS_GZ || BUSYBOX_FEATURE_SEAMLESS_BZ2 || BUSYBOX_FEATURE_SEAMLESS_LZMA || BUSYBOX_FEATURE_SEAMLESS_XZ)
help
- With this option tar can automatically detect compressed
- tarballs. Currently it works only on files (not pipes etc).
+ With this option tar can automatically detect compressed
+ tarballs. Currently it works only on files (not pipes etc).
config BUSYBOX_FEATURE_TAR_FROM
- bool "Enable -X (exclude from) and -T (include from) options)"
+ bool "Enable -X (exclude from) and -T (include from) options"
default y
depends on BUSYBOX_TAR
help
- If you enable this option you'll be able to specify
- a list of files to include or exclude from an archive.
+ If you enable this option you'll be able to specify
+ a list of files to include or exclude from an archive.
config BUSYBOX_FEATURE_TAR_OLDGNU_COMPATIBILITY
- bool "Support for old tar header format"
+ bool "Support old tar header format"
default y
depends on BUSYBOX_TAR || BUSYBOX_DPKG
help
- This option is required to unpack archives created in
- the old GNU format; help to kill this old format by
- repacking your ancient archives with the new format.
+ This option is required to unpack archives created in
+ the old GNU format; help to kill this old format by
+ repacking your ancient archives with the new format.
config BUSYBOX_FEATURE_TAR_OLDSUN_COMPATIBILITY
bool "Enable untarring of tarballs with checksums produced by buggy Sun tar"
- default n
+ default y
depends on BUSYBOX_TAR || BUSYBOX_DPKG
help
- This option is required to unpack archives created by some old
- version of Sun's tar (it was calculating checksum using signed
- arithmetic). It is said to be fixed in newer Sun tar, but "old"
- tarballs still exist.
+ This option is required to unpack archives created by some old
+ version of Sun's tar (it was calculating checksum using signed
+ arithmetic). It is said to be fixed in newer Sun tar, but "old"
+ tarballs still exist.
config BUSYBOX_FEATURE_TAR_GNU_EXTENSIONS
- bool "Support for GNU tar extensions (long filenames)"
+ bool "Support GNU tar extensions (long filenames)"
default y
depends on BUSYBOX_TAR || BUSYBOX_DPKG
- help
- With this option busybox supports GNU long filenames and
- linknames.
-
-config BUSYBOX_FEATURE_TAR_LONG_OPTIONS
- bool "Enable long options"
- default y
- depends on BUSYBOX_TAR && BUSYBOX_LONG_OPTS
- help
- Enable use of long options, increases size by about 400 Bytes
config BUSYBOX_FEATURE_TAR_TO_COMMAND
- bool "Support for writing to an external program"
+ bool "Support writing to an external program (--to-command)"
default y
depends on BUSYBOX_TAR && BUSYBOX_FEATURE_TAR_LONG_OPTIONS
help
- If you enable this option you'll be able to instruct tar to send
- the contents of each extracted file to the standard input of an
- external program.
+ If you enable this option you'll be able to instruct tar to send
+ the contents of each extracted file to the standard input of an
+ external program.
config BUSYBOX_FEATURE_TAR_UNAME_GNAME
bool "Enable use of user and group names"
default y
depends on BUSYBOX_TAR
help
- Enables use of user and group names in tar. This affects contents
- listings (-t) and preserving permissions when unpacking (-p).
- +200 bytes.
+ Enable use of user and group names in tar. This affects contents
+ listings (-t) and preserving permissions when unpacking (-p).
+ +200 bytes.
config BUSYBOX_FEATURE_TAR_NOPRESERVE_TIME
- bool "Enable -m (do not preserve time) option"
+ bool "Enable -m (do not preserve time) GNU option"
default y
depends on BUSYBOX_TAR
- help
- With this option busybox supports GNU tar -m
- (do not preserve time) option.
config BUSYBOX_FEATURE_TAR_SELINUX
- bool "Support for extracting SELinux labels"
+ bool "Support extracting SELinux labels"
default n
depends on BUSYBOX_TAR && BUSYBOX_SELINUX
help
- With this option busybox supports restoring SELinux labels
- when extracting files from tar archives.
-
-config BUSYBOX_UNCOMPRESS
- bool "uncompress"
- default n
- help
- uncompress is used to decompress archives created by compress.
- Not much used anymore, replaced by gzip/gunzip.
-
-config BUSYBOX_UNLZMA
- bool "unlzma"
- default n
- help
- unlzma is a compression utility using the Lempel-Ziv-Markov chain
- compression algorithm, and range coding. Compression
- is generally considerably better than that achieved by the bzip2
- compressors.
-
- The BusyBox unlzma applet is limited to decompression only.
- On an x86 system, this applet adds about 4K.
-
-config BUSYBOX_FEATURE_LZMA_FAST
- bool "Optimize unlzma for speed"
- default n
- depends on BUSYBOX_UNLZMA || BUSYBOX_LZCAT || BUSYBOX_LZMA
- help
- This option reduces decompression time by about 25% at the cost of
- a 1K bigger binary.
-
-config BUSYBOX_LZCAT
- bool "lzcat"
- default n
+ With this option busybox supports restoring SELinux labels
+ when extracting files from tar archives.
+config BUSYBOX_UNZIP
+ bool "unzip (26 kb)"
+ default y
help
- unlzma is a compression utility using the Lempel-Ziv-Markov chain
- compression algorithm, and range coding. Compression
- is generally considerably better than that achieved by the bzip2
- compressors.
-
- The BusyBox unlzma applet is limited to decompression only.
- On an x86 system, this applet adds about 4K.
+ unzip will list or extract files from a ZIP archive,
+ commonly found on DOS/WIN systems. The default behavior
+ (with no options) is to extract the archive into the
+ current directory.
-config BUSYBOX_LZMA
- bool "Provide lzma alias which supports only unpacking"
- default n
+config BUSYBOX_FEATURE_UNZIP_CDF
+ bool "Read and use Central Directory data"
+ default y
+ depends on BUSYBOX_UNZIP
help
- Enable this option if you want commands like "lzma -d" to work.
- IOW: you'll get lzma applet, but it will always require -d option.
+ If you know that you only need to deal with simple
+ ZIP files without deleted/updated files, SFX archives etc,
+ you can reduce code size by unselecting this option.
+ To support less trivial ZIPs, say Y.
-config BUSYBOX_UNXZ
- bool "unxz"
- depends on !BUSYBOX_DISABLE_UNXZ
- default n
- help
- unxz is a unlzma successor.
+config BUSYBOX_FEATURE_UNZIP_BZIP2
+ bool "Support compression method 12 (bzip2)"
+ default y
+ depends on BUSYBOX_FEATURE_UNZIP_CDF && BUSYBOX_DESKTOP
-config BUSYBOX_XZCAT
- bool "xzcat"
- default n
- help
- Alias to "unxz -c".
+config BUSYBOX_FEATURE_UNZIP_LZMA
+ bool "Support compression method 14 (lzma)"
+ default y
+ depends on BUSYBOX_FEATURE_UNZIP_CDF && BUSYBOX_DESKTOP
-config BUSYBOX_XZ
- bool "Provide xz alias which supports only unpacking"
- depends on !BUSYBOX_DISABLE_XZ
- default n
- help
- Enable this option if you want commands like "xz -d" to work.
- IOW: you'll get xz applet, but it will always require -d option.
+config BUSYBOX_FEATURE_UNZIP_XZ
+ bool "Support compression method 95 (xz)"
+ default y
+ depends on BUSYBOX_FEATURE_UNZIP_CDF && BUSYBOX_DESKTOP
-config BUSYBOX_UNZIP
- bool "unzip"
- depends on !BUSYBOX_DISABLE_UNZIP
+config BUSYBOX_FEATURE_LZMA_FAST
+ bool "Optimize lzma for speed"
default n
+ depends on BUSYBOX_UNLZMA || BUSYBOX_LZCAT || BUSYBOX_LZMA || BUSYBOX_FEATURE_SEAMLESS_LZMA
help
- unzip will list or extract files from a ZIP archive,
- commonly found on DOS/WIN systems. The default behavior
- (with no options) is to extract the archive into the
- current directory. Use the `-d' option to extract to a
- directory of your choice.
+ This option reduces decompression time by about 25% at the cost of
+ a 1K bigger binary.
endmenu
diff --git a/package/busybox/config/console-tools/Config.in b/package/busybox/config/console-tools/Config.in
index 2e338e264..d0e43ca43 100644
--- a/package/busybox/config/console-tools/Config.in
+++ b/package/busybox/config/console-tools/Config.in
@@ -1,175 +1,144 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Console Utilities"
config BUSYBOX_CHVT
- bool "chvt"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- This program is used to change to another terminal.
- Example: chvt 4 (change to terminal /dev/tty4)
-
-config BUSYBOX_FGCONSOLE
- bool "fgconsole"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "chvt (2 kb)"
+ default y
help
- This program prints active (foreground) console number.
-
+ This program is used to change to another terminal.
+ Example: chvt 4 (change to terminal /dev/tty4)
config BUSYBOX_CLEAR
- bool "clear"
- default n
+ bool "clear (tiny)"
+ default y
help
- This program clears the terminal screen.
-
+ This program clears the terminal screen.
config BUSYBOX_DEALLOCVT
- bool "deallocvt"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "deallocvt (1.9 kb)"
+ default y
help
- This program deallocates unused virtual consoles.
-
+ This program deallocates unused virtual consoles.
config BUSYBOX_DUMPKMAP
- bool "dumpkmap"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "dumpkmap (1.6 kb)"
+ default y
help
- This program dumps the kernel's keyboard translation table to
- stdout, in binary format. You can then use loadkmap to load it.
-
+ This program dumps the kernel's keyboard translation table to
+ stdout, in binary format. You can then use loadkmap to load it.
+config BUSYBOX_FGCONSOLE
+ bool "fgconsole (1.5 kb)"
+ default y
+ help
+ This program prints active (foreground) console number.
config BUSYBOX_KBD_MODE
- bool "kbd_mode"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "kbd_mode (4.1 kb)"
+ default y
help
- This program reports and sets keyboard mode.
-
+ This program reports and sets keyboard mode.
config BUSYBOX_LOADFONT
- bool "loadfont"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "loadfont (5.2 kb)"
+ default y
help
- This program loads a console font from standard input.
+ This program loads a console font from standard input.
-config BUSYBOX_LOADKMAP
- bool "loadkmap"
- default n
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_SETFONT
+ bool "setfont (24 kb)"
+ default y
help
- This program loads a keyboard translation table from
- standard input.
+ Allows to load console screen map. Useful for i18n.
-config BUSYBOX_OPENVT
- bool "openvt"
- default n
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_FEATURE_SETFONT_TEXTUAL_MAP
+ bool "Support reading textual screen maps"
+ default y
+ depends on BUSYBOX_SETFONT
help
- This program is used to start a command on an unused
- virtual terminal.
+ Support reading textual screen maps.
-config BUSYBOX_RESET
- bool "reset"
- default n
+config BUSYBOX_DEFAULT_SETFONT_DIR
+ string "Default directory for console-tools files"
+ default ""
+ depends on BUSYBOX_SETFONT
help
- This program is used to reset the terminal screen, if it
- gets messed up.
+ Directory to use if setfont's params are simple filenames
+ (not /path/to/file or ./file). Default is "" (no default directory).
+
+comment "Common options for loadfont and setfont"
+ depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
+config BUSYBOX_FEATURE_LOADFONT_PSF2
+ bool "Support PSF2 console fonts"
+ default y
+ depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
+
+config BUSYBOX_FEATURE_LOADFONT_RAW
+ bool "Support old (raw) console fonts"
+ default y
+ depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
+config BUSYBOX_LOADKMAP
+ bool "loadkmap (1.8 kb)"
+ default y
+ help
+ This program loads a keyboard translation table from
+ standard input.
+config BUSYBOX_OPENVT
+ bool "openvt (7.2 kb)"
+ default y
+ help
+ This program is used to start a command on an unused
+ virtual terminal.
+config BUSYBOX_RESET
+ bool "reset (345 bytes)"
+ default y
+ help
+ This program is used to reset the terminal screen, if it
+ gets messed up.
config BUSYBOX_RESIZE
- bool "resize"
- default n
+ bool "resize (903 bytes)"
+ default y
help
- This program is used to (re)set the width and height of your current
- terminal.
+ This program is used to (re)set the width and height of your current
+ terminal.
config BUSYBOX_FEATURE_RESIZE_PRINT
bool "Print environment variables"
default y
depends on BUSYBOX_RESIZE
help
- Prints the newly set size (number of columns and rows) of
- the terminal.
- E.g.:
- COLUMNS=80;LINES=44;export COLUMNS LINES;
-
+ Prints the newly set size (number of columns and rows) of
+ the terminal.
+ E.g.:
+ COLUMNS=80;LINES=44;export COLUMNS LINES;
config BUSYBOX_SETCONSOLE
- bool "setconsole"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "setconsole (3.6 kb)"
+ default y
help
- This program redirects the system console to another device,
- like the current tty while logged in via telnet.
+ Redirect writes to /dev/console to another device,
+ like the current tty while logged in via telnet.
+ This does not redirect kernel log, only writes
+ from user space.
config BUSYBOX_FEATURE_SETCONSOLE_LONG_OPTIONS
bool "Enable long options"
default y
depends on BUSYBOX_SETCONSOLE && BUSYBOX_LONG_OPTS
- help
- Support long options for the setconsole applet.
-
-config BUSYBOX_SETFONT
- bool "setfont"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Allows to load console screen map. Useful for i18n.
-
-config BUSYBOX_FEATURE_SETFONT_TEXTUAL_MAP
- bool "Support reading textual screen maps"
- default y
- depends on BUSYBOX_SETFONT
- help
- Support reading textual screen maps.
-
-config BUSYBOX_DEFAULT_SETFONT_DIR
- string "Default directory for console-tools files"
- default ""
- depends on BUSYBOX_SETFONT
- help
- Directory to use if setfont's params are simple filenames
- (not /path/to/file or ./file). Default is "" (no default directory).
-
config BUSYBOX_SETKEYCODES
- bool "setkeycodes"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "setkeycodes (2.1 kb)"
+ default y
help
- This program loads entries into the kernel's scancode-to-keycode
- map, allowing unusual keyboards to generate usable keycodes.
-
+ This program loads entries into the kernel's scancode-to-keycode
+ map, allowing unusual keyboards to generate usable keycodes.
config BUSYBOX_SETLOGCONS
- bool "setlogcons"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- This program redirects the output console of kernel messages.
-
-config BUSYBOX_SHOWKEY
- bool "showkey"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Shows keys pressed.
-
-comment "Common options for loadfont and setfont"
- depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
-
-config BUSYBOX_FEATURE_LOADFONT_PSF2
- bool "Support for PSF2 console fonts"
+ bool "setlogcons (1.8 kb)"
default y
- depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
help
- Support PSF2 console fonts.
-
-config BUSYBOX_FEATURE_LOADFONT_RAW
- bool "Support for old (raw) console fonts"
+ This program redirects the output console of kernel messages.
+config BUSYBOX_SHOWKEY
+ bool "showkey (4.7 kb)"
default y
- depends on BUSYBOX_LOADFONT || BUSYBOX_SETFONT
help
- Support old (raw) console fonts.
+ Shows keys pressed.
endmenu
diff --git a/package/busybox/config/coreutils/Config.in b/package/busybox/config/coreutils/Config.in
index bb0d2a121..00d646599 100644
--- a/package/busybox/config/coreutils/Config.in
+++ b/package/busybox/config/coreutils/Config.in
@@ -1,1016 +1,965 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Coreutils"
-config BUSYBOX_BASENAME
- bool "basename"
- default y
- help
- basename is used to strip the directory and suffix from filenames,
- leaving just the filename itself. Enable this option if you wish
- to enable the 'basename' utility.
-
-config BUSYBOX_CAT
- bool "cat"
- default y
- help
- cat is used to concatenate files and print them to the standard
- output. Enable this option if you wish to enable the 'cat' utility.
-
-config BUSYBOX_DATE
- bool "date"
+config BUSYBOX_FEATURE_VERBOSE
+ bool "Support verbose options (usually -v) for various applets"
default y
help
- date is used to set the system date or display the
- current time in the given format.
-
-config BUSYBOX_FEATURE_DATE_ISOFMT
- bool "Enable ISO date format output (-I)"
- default n
- depends on BUSYBOX_DATE
- help
- Enable option (-I) to output an ISO-8601 compliant
- date/time string.
-
-# defaults to "no": stat's nanosecond field is a bit non-portable
-config BUSYBOX_FEATURE_DATE_NANO
- bool "Support %[num]N nanosecond format specifier"
- default n
- depends on BUSYBOX_DATE # syscall(__NR_clock_gettime)
- select BUSYBOX_PLATFORM_LINUX
- help
- Support %[num]N format specifier. Adds ~250 bytes of code.
-
-config BUSYBOX_FEATURE_DATE_COMPAT
- bool "Support weird 'date MMDDhhmm[[YY]YY][.ss]' format"
- default n
- depends on BUSYBOX_DATE
- help
- System time can be set by 'date -s DATE' and simply 'date DATE',
- but formats of DATE string are different. 'date DATE' accepts
- a rather weird MMDDhhmm[[YY]YY][.ss] format with completely
- unnatural placement of year between minutes and seconds.
- date -s (and other commands like touch -d) use more sensible
- formats (for one, ISO format YYYY-MM-DD hh:mm:ss.ssssss).
-
- With this option off, 'date DATE' is 'date -s DATE' support
- the same format. With it on, 'date DATE' additionally supports
- MMDDhhmm[[YY]YY][.ss] format.
+ Enable cp -v, rm -v and similar messages.
+ Also enables long option (--verbose) if it exists.
+ Without this option, -v is accepted but ignored.
-config BUSYBOX_HOSTID
- bool "hostid"
- default n
- help
- hostid prints the numeric identifier (in hexadecimal) for
- the current host.
+comment "Common options for date and touch"
-config BUSYBOX_ID
- bool "id"
+config BUSYBOX_FEATURE_TIMEZONE
+ bool "Allow timezone in dates"
default y
+ depends on BUSYBOX_DESKTOP
help
- id displays the current user and group ID names.
+ Permit the use of timezones when parsing user-provided data
+ strings, e.g. '1996-04-09 12:45:00 -0500'.
-config BUSYBOX_GROUPS
- bool "groups"
- default n
- help
- Print the group names associated with current user id.
+ This requires support for the '%z' extension to strptime() which
+ may not be available in all implementations.
-config BUSYBOX_SHUF
- bool "shuf"
- default n
- help
- Generate random permutations
+comment "Common options for cp and mv"
+ depends on BUSYBOX_CP || BUSYBOX_MV
-config BUSYBOX_TEST
- bool "test"
+config BUSYBOX_FEATURE_PRESERVE_HARDLINKS
+ bool "Preserve hard links"
default y
+ depends on BUSYBOX_CP || BUSYBOX_MV
help
- test is used to check file types and compare values,
- returning an appropriate exit code. The bash shell
- has test built in, ash can build it in optionally.
+ Allow cp and mv to preserve hard links.
-config BUSYBOX_TEST1
- bool "test as ["
- default y
- help
- Provide test command in the "[ EXPR ]" form
+comment "Common options for df, du, ls"
+ depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS
-config BUSYBOX_TEST2
- bool "test as [["
+config BUSYBOX_FEATURE_HUMAN_READABLE
+ bool "Support human readable output (example 13k, 23M, 235G)"
default y
+ depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS
help
- Provide test command in the "[[ EXPR ]]" form
+ Allow df, du, and ls to have human readable output.
-config BUSYBOX_FEATURE_TEST_64
- bool "Extend test to 64 bit"
+config BUSYBOX_BASENAME
+ bool "basename (438 bytes)"
default y
- depends on BUSYBOX_TEST || BUSYBOX_ASH_BUILTIN_TEST || BUSYBOX_HUSH
help
- Enable 64-bit support in test.
-
-config BUSYBOX_TOUCH
- bool "touch"
+ basename is used to strip the directory and suffix from filenames,
+ leaving just the filename itself. Enable this option if you wish
+ to enable the 'basename' utility.
+config BUSYBOX_CAT
+ bool "cat (5.6 kb)"
default y
help
- touch is used to create or change the access and/or
- modification timestamp of specified files.
-
-config BUSYBOX_FEATURE_TOUCH_NODEREF
- bool "Add support for -h"
- default n
- depends on BUSYBOX_TOUCH
- help
- Enable touch to have the -h option.
- This requires libc support for lutimes() function.
-
-config BUSYBOX_FEATURE_TOUCH_SUSV3
- bool "Add support for SUSV3 features (-d -t -r)"
- default n
- depends on BUSYBOX_TOUCH
- help
- Enable touch to use a reference file or a given date/time argument.
-
-config BUSYBOX_TR
- bool "tr"
- default n
- help
- tr is used to squeeze, and/or delete characters from standard
- input, writing to standard output.
+ cat is used to concatenate files and print them to the standard
+ output. Enable this option if you wish to enable the 'cat' utility.
-config BUSYBOX_FEATURE_TR_CLASSES
- bool "Enable character classes (such as [:upper:])"
+config BUSYBOX_FEATURE_CATN
+ bool "Enable -n and -b options"
default y
- depends on BUSYBOX_TR
+ depends on BUSYBOX_CAT
help
- Enable character classes, enabling commands such as:
- tr [:upper:] [:lower:] to convert input into lowercase.
+ -n numbers all output lines while -b numbers nonempty output lines.
-config BUSYBOX_FEATURE_TR_EQUIV
- bool "Enable equivalence classes"
+config BUSYBOX_FEATURE_CATV
+ bool "cat -v[etA]"
default y
- depends on BUSYBOX_TR
- help
- Enable equivalence classes, which essentially add the enclosed
- character to the current set. For instance, tr [=a=] xyz would
- replace all instances of 'a' with 'xyz'. This option is mainly
- useful for cases when no other way of expressing a character
- is possible.
-
-config BUSYBOX_TRUNCATE
- bool "truncate"
- default n
- help
- truncate truncates files to a given size. If a file does
- not exist, it is created unless told otherwise.
-
-config BUSYBOX_UNLINK
- bool "unlink"
- default n
- help
- unlink deletes a file by calling unlink()
-
-config BUSYBOX_BASE64
- bool "base64"
- default n
+ depends on BUSYBOX_CAT
help
- Base64 encode and decode
-
-config BUSYBOX_WHO
- bool "who"
- default n
- depends on BUSYBOX_FEATURE_UTMP
- help
- who is used to show who is logged on.
-
-config BUSYBOX_USERS
- bool "users"
- default n
- depends on BUSYBOX_FEATURE_UTMP
- help
- Print users currently logged on.
-
-config BUSYBOX_CAL
- bool "cal"
- default n
- help
- cal is used to display a monthly calender.
-
-config BUSYBOX_CATV
- bool "catv"
- default n
- help
- Display nonprinting characters as escape sequences (like some
- implementations' cat -v option).
-
+ Display nonprinting characters as escape sequences
config BUSYBOX_CHGRP
- bool "chgrp"
+ bool "chgrp (7.6 kb)"
default y
help
- chgrp is used to change the group ownership of files.
-
+ chgrp is used to change the group ownership of files.
config BUSYBOX_CHMOD
- bool "chmod"
+ bool "chmod (5.5 kb)"
default y
help
- chmod is used to change the access permission of files.
-
+ chmod is used to change the access permission of files.
config BUSYBOX_CHOWN
- bool "chown"
+ bool "chown (7.6 kb)"
default y
help
- chown is used to change the user and/or group ownership
- of files.
+ chown is used to change the user and/or group ownership
+ of files.
config BUSYBOX_FEATURE_CHOWN_LONG_OPTIONS
bool "Enable long options"
- default n
+ default y
depends on BUSYBOX_CHOWN && BUSYBOX_LONG_OPTS
- help
- Enable use of long options
-
config BUSYBOX_CHROOT
- bool "chroot"
+ bool "chroot (3.7 kb)"
default y
help
- chroot is used to change the root directory and run a command.
- The default command is `/bin/sh'.
-
+ chroot is used to change the root directory and run a command.
+ The default command is '/bin/sh'.
config BUSYBOX_CKSUM
- bool "cksum"
- default n
- help
- cksum is used to calculate the CRC32 checksum of a file.
+ bool "cksum (4.1 kb)"
+ default y
+config BUSYBOX_CRC32
+ bool "crc32 (4.1 kb)"
+ default y
config BUSYBOX_COMM
- bool "comm"
- default n
+ bool "comm (4.2 kb)"
+ default y
help
- comm is used to compare two files line by line and return
- a three-column output.
-
+ comm is used to compare two files line by line and return
+ a three-column output.
config BUSYBOX_CP
- bool "cp"
+ bool "cp (10 kb)"
default y
help
- cp is used to copy files and directories.
+ cp is used to copy files and directories.
config BUSYBOX_FEATURE_CP_LONG_OPTIONS
- bool "Enable long options for cp"
- default n
+ bool "Enable long options"
+ default y
depends on BUSYBOX_CP && BUSYBOX_LONG_OPTS
help
- Enable long options for cp.
- Also add support for --parents option.
+ Enable long options.
+ Also add support for --parents option.
+config BUSYBOX_FEATURE_CP_REFLINK
+ bool "Enable --reflink[=auto]"
+ default y
+ depends on BUSYBOX_FEATURE_CP_LONG_OPTIONS
config BUSYBOX_CUT
- bool "cut"
+ bool "cut (5.8 kb)"
default y
help
- cut is used to print selected parts of lines from
- each file to stdout.
+ cut is used to print selected parts of lines from
+ each file to stdout.
+config BUSYBOX_FEATURE_CUT_REGEX
+ bool "cut -F"
+ default y
+ depends on BUSYBOX_CUT
+ help
+ Allow regex based delimiters.
+config BUSYBOX_DATE
+ bool "date (7 kb)"
+ default y
+ help
+ date is used to set the system date or display the
+ current time in the given format.
+
+config BUSYBOX_FEATURE_DATE_ISOFMT
+ bool "Enable ISO date format output (-I)"
+ default y
+ depends on BUSYBOX_DATE
+ help
+ Enable option (-I) to output an ISO-8601 compliant
+ date/time string.
+
+config BUSYBOX_FEATURE_DATE_NANO
+ bool "Support %[num]N nanosecond format specifier"
+ default n # stat's nanosecond field is a bit non-portable
+ depends on BUSYBOX_DATE
+ help
+ Support %[num]N format specifier. Adds ~250 bytes of code.
+
+config BUSYBOX_FEATURE_DATE_COMPAT
+ bool "Support weird 'date MMDDhhmm[[YY]YY][.ss]' format"
+ default y
+ depends on BUSYBOX_DATE
+ help
+ System time can be set by 'date -s DATE' and simply 'date DATE',
+ but formats of DATE string are different. 'date DATE' accepts
+ a rather weird MMDDhhmm[[YY]YY][.ss] format with completely
+ unnatural placement of year between minutes and seconds.
+ date -s (and other commands like touch -d) use more sensible
+ formats (for one, ISO format YYYY-MM-DD hh:mm:ss.ssssss).
+
+ With this option off, 'date DATE' and 'date -s DATE' support
+ the same format. With it on, 'date DATE' additionally supports
+ MMDDhhmm[[YY]YY][.ss] format.
config BUSYBOX_DD
- bool "dd"
+ bool "dd (7.5 kb)"
default y
help
- dd copies a file (from standard input to standard output,
- by default) using specific input and output blocksizes,
- while optionally performing conversions on it.
+ dd copies a file (from standard input to standard output,
+ by default) using specific input and output blocksizes,
+ while optionally performing conversions on it.
config BUSYBOX_FEATURE_DD_SIGNAL_HANDLING
- bool "Enable DD signal handling for status reporting"
- default n
+ bool "Enable signal handling for status reporting"
+ default y
depends on BUSYBOX_DD
help
- Sending a SIGUSR1 signal to a running `dd' process makes it
- print to standard error the number of records read and written
- so far, then to resume copying.
+ Sending a SIGUSR1 signal to a running 'dd' process makes it
+ print to standard error the number of records read and written
+ so far, then to resume copying.
- $ dd if=/dev/zero of=/dev/null&
- $ pid=$! kill -USR1 $pid; sleep 1; kill $pid
- 10899206+0 records in
- 10899206+0 records out
+ $ dd if=/dev/zero of=/dev/null &
+ $ pid=$!; kill -USR1 $pid; sleep 1; kill $pid
+ 10899206+0 records in
+ 10899206+0 records out
config BUSYBOX_FEATURE_DD_THIRD_STATUS_LINE
bool "Enable the third status line upon signal"
- default n
+ default y
depends on BUSYBOX_DD && BUSYBOX_FEATURE_DD_SIGNAL_HANDLING
help
- Displays a coreutils-like third status line with transferred bytes,
- elapsed time and speed.
+ Displays a coreutils-like third status line with transferred bytes,
+ elapsed time and speed.
config BUSYBOX_FEATURE_DD_IBS_OBS
- bool "Enable ibs, obs and conv options"
+ bool "Enable ibs, obs, iflag, oflag and conv options"
default y
depends on BUSYBOX_DD
help
- Enables support for writing a certain number of bytes in and out,
- at a time, and performing conversions on the data stream.
+ Enable support for writing a certain number of bytes in and out,
+ at a time, and performing conversions on the data stream.
config BUSYBOX_FEATURE_DD_STATUS
bool "Enable status display options"
- default n
+ default y
depends on BUSYBOX_DD
help
- Enables support for status=noxfer/none option.
-
+ Enable support for status=noxfer/none option.
config BUSYBOX_DF
- bool "df"
+ bool "df (6.8 kb)"
default y
help
- df reports the amount of disk space used and available
- on filesystems.
+ df reports the amount of disk space used and available
+ on filesystems.
config BUSYBOX_FEATURE_DF_FANCY
bool "Enable -a, -i, -B"
- default n
+ default y
depends on BUSYBOX_DF
help
- This option enables -a, -i and -B.
+ -a Show all filesystems
+ -i Inodes
+ -B <SIZE> Blocksize
- -a Show all filesystems
- -i Inodes
- -B <SIZE> Blocksize
+config BUSYBOX_FEATURE_SKIP_ROOTFS
+ bool "Skip rootfs in mount table"
+ default y
+ depends on BUSYBOX_DF
+ help
+ Ignore rootfs entry in mount table.
+ In Linux, kernel has a special filesystem, rootfs, which is initially
+ mounted on /. It contains initramfs data, if kernel is configured
+ to have one. Usually, another file system is mounted over / early
+ in boot process, and therefore most tools which manipulate
+ mount table, such as df, will skip rootfs entry.
+
+ However, some systems do not mount anything on /.
+ If you need to configure busybox for one of these systems,
+ you may find it useful to turn this option off to make df show
+ initramfs statistics.
+
+ Otherwise, choose Y.
config BUSYBOX_DIRNAME
- bool "dirname"
+ bool "dirname (329 bytes)"
default y
help
- dirname is used to strip a non-directory suffix from
- a file name.
-
+ dirname is used to strip a non-directory suffix from
+ a file name.
config BUSYBOX_DOS2UNIX
- bool "dos2unix"
- default n
+ bool "dos2unix (5.2 kb)"
+ default y
help
- dos2unix is used to convert a text file from DOS format to
- UNIX format, and vice versa.
+ dos2unix is used to convert a text file from DOS format to
+ UNIX format, and vice versa.
config BUSYBOX_UNIX2DOS
- bool "unix2dos"
- default n
+ bool "unix2dos (5.2 kb)"
+ default y
help
- unix2dos is used to convert a text file from UNIX format to
- DOS format, and vice versa.
-
+ unix2dos is used to convert a text file from UNIX format to
+ DOS format, and vice versa.
config BUSYBOX_DU
- bool "du (default blocksize of 512 bytes)"
+ bool "du (6.3 kb)"
default y
help
- du is used to report the amount of disk space used
- for specified files.
+ du is used to report the amount of disk space used
+ for specified files.
config BUSYBOX_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
- bool "Use a default blocksize of 1024 bytes (1K)"
+ bool "Use default blocksize of 1024 bytes (else it's 512 bytes)"
default y
depends on BUSYBOX_DU
- help
- Use a blocksize of (1K) instead of the default 512b.
-
config BUSYBOX_ECHO
- bool "echo (basic SuSv3 version taking no options)"
+ bool "echo (1.8 kb)"
default y
help
- echo is used to print a specified string to stdout.
+ echo prints a specified string to stdout.
# this entry also appears in shell/Config.in, next to the echo builtin
config BUSYBOX_FEATURE_FANCY_ECHO
- bool "Enable echo options (-n and -e)"
+ bool "Enable -n and -e options"
default y
- depends on BUSYBOX_ECHO || BUSYBOX_ASH_BUILTIN_ECHO || BUSYBOX_HUSH
- help
- This adds options (-n and -e) to echo.
-
+ depends on BUSYBOX_ECHO || BUSYBOX_ASH_ECHO || BUSYBOX_HUSH_ECHO
config BUSYBOX_ENV
- bool "env"
+ bool "env (4 kb)"
default y
help
- env is used to set an environment variable and run
- a command; without options it displays the current
- environment.
-
-config BUSYBOX_FEATURE_ENV_LONG_OPTIONS
- bool "Enable long options"
- default n
- depends on BUSYBOX_ENV && BUSYBOX_LONG_OPTS
- help
- Support long options for the env applet.
-
+ env is used to set an environment variable and run
+ a command; without options it displays the current
+ environment.
config BUSYBOX_EXPAND
- bool "expand"
- default n
+ bool "expand (5.1 kb)"
+ default y
help
- By default, convert all tabs to spaces.
+ By default, convert all tabs to spaces.
-config BUSYBOX_FEATURE_EXPAND_LONG_OPTIONS
- bool "Enable long options"
- default n
- depends on BUSYBOX_EXPAND && BUSYBOX_LONG_OPTS
+config BUSYBOX_UNEXPAND
+ bool "unexpand (5.3 kb)"
+ default y
help
- Support long options for the expand applet.
-
+ By default, convert only leading sequences of blanks to tabs.
config BUSYBOX_EXPR
- bool "expr"
- default n
+ bool "expr (6.6 kb)"
+ default y
help
- expr is used to calculate numbers and print the result
- to standard output.
+ expr is used to calculate numbers and print the result
+ to standard output.
config BUSYBOX_EXPR_MATH_SUPPORT_64
bool "Extend Posix numbers support to 64 bit"
default y
depends on BUSYBOX_EXPR
help
- Enable 64-bit math support in the expr applet. This will make
- the applet slightly larger, but will allow computation with very
- large numbers.
-
+ Enable 64-bit math support in the expr applet. This will make
+ the applet slightly larger, but will allow computation with very
+ large numbers.
+config BUSYBOX_FACTOR
+ bool "factor (2.7 kb)"
+ default y
+ help
+ factor factorizes integers
config BUSYBOX_FALSE
- bool "false"
- default n
+ bool "false (tiny)"
+ default y
help
- false returns an exit code of FALSE (1).
-
+ false returns an exit code of FALSE (1).
config BUSYBOX_FOLD
- bool "fold"
- default n
- help
- Wrap text to fit a specific width.
-
-config BUSYBOX_FSYNC
- bool "fsync"
- default n
+ bool "fold (4.6 kb)"
+ default y
help
- fsync is used to flush file-related cached blocks to disk.
-
+ Wrap text to fit a specific width.
config BUSYBOX_HEAD
- bool "head"
+ bool "head (3.8 kb)"
default y
help
- head is used to print the first specified number of lines
- from files.
+ head is used to print the first specified number of lines
+ from files.
config BUSYBOX_FEATURE_FANCY_HEAD
- bool "Enable head options (-c, -q, and -v)"
- default n
+ bool "Enable -c, -q, and -v"
+ default y
depends on BUSYBOX_HEAD
+config BUSYBOX_HOSTID
+ bool "hostid (286 bytes)"
+ default y
+ help
+ hostid prints the numeric identifier (in hexadecimal) for
+ the current host.
+config BUSYBOX_ID
+ bool "id (7 kb)"
+ default y
help
- This enables the head options (-c, -q, and -v).
+ id displays the current user and group ID names.
+config BUSYBOX_GROUPS
+ bool "groups (6.7 kb)"
+ default y
+ help
+ Print the group names associated with current user id.
config BUSYBOX_INSTALL
- bool "install"
- default n
+ bool "install (12 kb)"
+ default y
help
- Copy files and set attributes.
+ Copy files and set attributes.
config BUSYBOX_FEATURE_INSTALL_LONG_OPTIONS
bool "Enable long options"
- default n
+ default y
depends on BUSYBOX_INSTALL && BUSYBOX_LONG_OPTS
+config BUSYBOX_LINK
+ bool "link (3.2 kb)"
+ default y
help
- Support long options for the install applet.
-
-####config LENGTH
-#### bool "length"
-#### default y
-#### help
-#### length is used to print out the length of a specified string.
-
+ link creates hard links between files.
config BUSYBOX_LN
- bool "ln"
+ bool "ln (4.9 kb)"
default y
help
- ln is used to create hard or soft links between files.
-
+ ln is used to create hard or soft links between files.
config BUSYBOX_LOGNAME
- bool "logname"
- default n
+ bool "logname (1.1 kb)"
+ default y
help
- logname is used to print the current user's login name.
-
+ logname is used to print the current user's login name.
config BUSYBOX_LS
- bool "ls"
+ bool "ls (14 kb)"
default y
help
- ls is used to list the contents of directories.
+ ls is used to list the contents of directories.
config BUSYBOX_FEATURE_LS_FILETYPES
bool "Enable filetyping options (-p and -F)"
- default n
+ default y
depends on BUSYBOX_LS
- help
- Enable the ls options (-p and -F).
config BUSYBOX_FEATURE_LS_FOLLOWLINKS
bool "Enable symlinks dereferencing (-L)"
- default n
+ default y
depends on BUSYBOX_LS
- help
- Enable the ls option (-L).
config BUSYBOX_FEATURE_LS_RECURSIVE
bool "Enable recursion (-R)"
default y
depends on BUSYBOX_LS
- help
- Enable the ls option (-R).
+
+config BUSYBOX_FEATURE_LS_WIDTH
+ bool "Enable -w WIDTH and window size autodetection"
+ default y
+ depends on BUSYBOX_LS
config BUSYBOX_FEATURE_LS_SORTFILES
bool "Sort the file names"
default y
depends on BUSYBOX_LS
help
- Allow ls to sort file names alphabetically.
+ Allow ls to sort file names alphabetically.
config BUSYBOX_FEATURE_LS_TIMESTAMPS
bool "Show file timestamps"
default y
depends on BUSYBOX_LS
help
- Allow ls to display timestamps for files.
+ Allow ls to display timestamps for files.
config BUSYBOX_FEATURE_LS_USERNAME
bool "Show username/groupnames"
default y
depends on BUSYBOX_LS
help
- Allow ls to display username/groupname for files.
+ Allow ls to display username/groupname for files.
config BUSYBOX_FEATURE_LS_COLOR
bool "Allow use of color to identify file types"
- default n
+ default y
depends on BUSYBOX_LS && BUSYBOX_LONG_OPTS
help
- This enables the --color option to ls.
+ This enables the --color option to ls.
config BUSYBOX_FEATURE_LS_COLOR_IS_DEFAULT
bool "Produce colored ls output by default"
- default n
+ default y
depends on BUSYBOX_FEATURE_LS_COLOR
help
- Saying yes here will turn coloring on by default,
- even if no "--color" option is given to the ls command.
- This is not recommended, since the colors are not
- configurable, and the output may not be legible on
- many output screens.
-
+ Saying yes here will turn coloring on by default,
+ even if no "--color" option is given to the ls command.
+ This is not recommended, since the colors are not
+ configurable, and the output may not be legible on
+ many output screens.
config BUSYBOX_MD5SUM
- bool "md5sum"
- default n
+ bool "md5sum (6.5 kb)"
+ default y
help
- md5sum is used to print or check MD5 checksums.
+ Compute and check MD5 message digest
-config BUSYBOX_MKDIR
- bool "mkdir"
+config BUSYBOX_SHA1SUM
+ bool "sha1sum (5.9 kb)"
default y
help
- mkdir is used to create directories with the specified names.
+ Compute and check SHA1 message digest
-config BUSYBOX_FEATURE_MKDIR_LONG_OPTIONS
- bool "Enable long options"
- default n
- depends on BUSYBOX_MKDIR && BUSYBOX_LONG_OPTS
+config BUSYBOX_SHA256SUM
+ bool "sha256sum (7 kb)"
+ default y
help
- Support long options for the mkdir applet.
+ Compute and check SHA256 message digest
-config BUSYBOX_MKFIFO
- bool "mkfifo"
- default n
+config BUSYBOX_SHA512SUM
+ bool "sha512sum (7.4 kb)"
+ default y
help
- mkfifo is used to create FIFOs (named pipes).
- The `mknod' program can also create FIFOs.
+ Compute and check SHA512 message digest
-config BUSYBOX_MKNOD
- bool "mknod"
- default n
+config BUSYBOX_SHA3SUM
+ bool "sha3sum (6.1 kb)"
+ default y
help
- mknod is used to create FIFOs or block/character special
- files with the specified names.
+ Compute and check SHA3 message digest
-config BUSYBOX_MV
- bool "mv"
+comment "Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum"
+ depends on BUSYBOX_MD5SUM || BUSYBOX_SHA1SUM || BUSYBOX_SHA256SUM || BUSYBOX_SHA512SUM || BUSYBOX_SHA3SUM
+
+config BUSYBOX_FEATURE_MD5_SHA1_SUM_CHECK
+ bool "Enable -c, -s and -w options"
default y
+ depends on BUSYBOX_MD5SUM || BUSYBOX_SHA1SUM || BUSYBOX_SHA256SUM || BUSYBOX_SHA512SUM || BUSYBOX_SHA3SUM
help
- mv is used to move or rename files or directories.
-
-config BUSYBOX_FEATURE_MV_LONG_OPTIONS
- bool "Enable long options"
- default n
- depends on BUSYBOX_MV && BUSYBOX_LONG_OPTS
+ Enabling the -c options allows files to be checked
+ against pre-calculated hash values.
+ -s and -w are useful options when verifying checksums.
+config BUSYBOX_MKDIR
+ bool "mkdir (4.5 kb)"
+ default y
help
- Support long options for the mv applet.
-
+ mkdir is used to create directories with the specified names.
+config BUSYBOX_MKFIFO
+ bool "mkfifo (3.8 kb)"
+ default y
+ help
+ mkfifo is used to create FIFOs (named pipes).
+ The 'mknod' program can also create FIFOs.
+config BUSYBOX_MKNOD
+ bool "mknod (4.5 kb)"
+ default y
+ help
+ mknod is used to create FIFOs or block/character special
+ files with the specified names.
+config BUSYBOX_MKTEMP
+ bool "mktemp (4.2 kb)"
+ default y
+ help
+ mktemp is used to create unique temporary files
+config BUSYBOX_MV
+ bool "mv (10 kb)"
+ default y
+ help
+ mv is used to move or rename files or directories.
config BUSYBOX_NICE
- bool "nice"
- default n
+ bool "nice (2.1 kb)"
+ default y
help
- nice runs a program with modified scheduling priority.
-
+ nice runs a program with modified scheduling priority.
+config BUSYBOX_NL
+ bool "nl (4.6 kb)"
+ default y
+ help
+ nl is used to number lines of files.
config BUSYBOX_NOHUP
- bool "nohup"
- default n
+ bool "nohup (2 kb)"
+ default y
help
- run a command immune to hangups, with output to a non-tty.
-
+ run a command immune to hangups, with output to a non-tty.
+config BUSYBOX_NPROC
+ bool "nproc (3.7 kb)"
+ default y
+ help
+ Print number of CPUs
config BUSYBOX_OD
- bool "od"
- default n
+ bool "od (11 kb)"
+ default y
help
- od is used to dump binary files in octal and other formats.
-
+ od is used to dump binary files in octal and other formats.
+config BUSYBOX_PASTE
+ bool "paste (4.9 kb)"
+ default y
+ help
+ paste is used to paste lines of different files together
+ and write the result to stdout
config BUSYBOX_PRINTENV
- bool "printenv"
- default n
+ bool "printenv (1.3 kb)"
+ default y
help
- printenv is used to print all or part of environment.
-
+ printenv is used to print all or part of environment.
config BUSYBOX_PRINTF
- bool "printf"
+ bool "printf (3.8 kb)"
default y
help
- printf is used to format and print specified strings.
- It's similar to `echo' except it has more options.
-
+ printf is used to format and print specified strings.
+ It's similar to 'echo' except it has more options.
config BUSYBOX_PWD
- bool "pwd"
+ bool "pwd (3.7 kb)"
default y
help
- pwd is used to print the current directory.
-
+ pwd is used to print the current directory.
config BUSYBOX_READLINK
- bool "readlink"
- default n
+ bool "readlink (4 kb)"
+ default y
help
- This program reads a symbolic link and returns the name
- of the file it points to
+ This program reads a symbolic link and returns the name
+ of the file it points to
config BUSYBOX_FEATURE_READLINK_FOLLOW
bool "Enable canonicalization by following all symlinks (-f)"
- default n
+ default y
depends on BUSYBOX_READLINK
help
- Enable the readlink option (-f).
-
+ Enable the readlink option (-f).
config BUSYBOX_REALPATH
- bool "realpath"
- default n
+ bool "realpath (1.6 kb)"
+ default y
help
- Return the canonicalized absolute pathname.
- This isn't provided by GNU shellutils, but where else does it belong.
-
+ Return the canonicalized absolute pathname.
+ This isn't provided by GNU shellutils, but where else does it belong.
config BUSYBOX_RM
- bool "rm"
+ bool "rm (5.4 kb)"
default y
help
- rm is used to remove files or directories.
-
+ rm is used to remove files or directories.
config BUSYBOX_RMDIR
- bool "rmdir"
- default n
- help
- rmdir is used to remove empty directories.
-
-config BUSYBOX_FEATURE_RMDIR_LONG_OPTIONS
- bool "Enable long options"
- default n
- depends on BUSYBOX_RMDIR && BUSYBOX_LONG_OPTS
+ bool "rmdir (3.5 kb)"
+ default y
help
- Support long options for the rmdir applet, including
- --ignore-fail-on-non-empty for compatibility with GNU rmdir.
-
+ rmdir is used to remove empty directories.
config BUSYBOX_SEQ
- bool "seq"
- default n
- help
- print a sequence of numbers
-
-config BUSYBOX_SHA1SUM
- bool "sha1sum"
- default n
+ bool "seq (3.8 kb)"
+ default y
help
- Compute and check SHA1 message digest
-
-config BUSYBOX_SHA256SUM
- bool "sha256sum"
- default n
+ print a sequence of numbers
+config BUSYBOX_SHRED
+ bool "shred (4.9 kb)"
+ default y
help
- Compute and check SHA256 message digest
-
-config BUSYBOX_SHA512SUM
- bool "sha512sum"
- default n
+ Overwrite a file to hide its contents, and optionally delete it
+config BUSYBOX_SHUF
+ bool "shuf (5.4 kb)"
+ default y
help
- Compute and check SHA512 message digest
-
-config BUSYBOX_SHA3SUM
- bool "sha3sum"
- default n
- help
- Compute and check SHA3 (512-bit) message digest
-
+ Generate random permutations
config BUSYBOX_SLEEP
- bool "sleep"
- default n
- help
- sleep is used to pause for a specified number of seconds.
- It comes in 3 versions:
- - small: takes one integer parameter
- - fancy: takes multiple integer arguments with suffixes:
- sleep 1d 2h 3m 15s
- - fancy with fractional numbers:
- sleep 2.3s 4.5h sleeps for 16202.3 seconds
- Last one is "the most compatible" with coreutils sleep,
- but it adds around 1k of code.
+ bool "sleep (2 kb)"
+ default y
+ help
+ sleep is used to pause for a specified number of seconds.
+ It comes in 3 versions:
+ - small: takes one integer parameter
+ - fancy: takes multiple integer arguments with suffixes:
+ sleep 1d 2h 3m 15s
+ - fancy with fractional numbers:
+ sleep 2.3s 4.5h sleeps for 16202.3 seconds
+ Last one is "the most compatible" with coreutils sleep,
+ but it adds around 1k of code.
config BUSYBOX_FEATURE_FANCY_SLEEP
bool "Enable multiple arguments and s/m/h/d suffixes"
- default n
- depends on BUSYBOX_SLEEP
- help
- Allow sleep to pause for specified minutes, hours, and days.
-
-config BUSYBOX_FEATURE_FLOAT_SLEEP
- bool "Enable fractional arguments"
default y
- depends on BUSYBOX_FEATURE_FANCY_SLEEP
+ depends on BUSYBOX_SLEEP
help
- Allow for fractional numeric parameters.
-
+ Allow sleep to pause for specified minutes, hours, and days.
config BUSYBOX_SORT
- bool "sort"
- default n
+ bool "sort (7.7 kb)"
+ default y
help
- sort is used to sort lines of text in specified files.
+ sort is used to sort lines of text in specified files.
config BUSYBOX_FEATURE_SORT_BIG
- bool "Full SuSv3 compliant sort (support -ktcsbdfiozgM)"
+ bool "Full SuSv3 compliant sort (support -ktcbdfioghM)"
default y
depends on BUSYBOX_SORT
help
- Without this, sort only supports -r, -u, and an integer version
- of -n. Selecting this adds sort keys, floating point support, and
- more. This adds a little over 3k to a nonstatic build on x86.
+ Without this, sort only supports -rusz, and an integer version
+ of -n. Selecting this adds sort keys, floating point support, and
+ more. This adds a little over 3k to a nonstatic build on x86.
- The SuSv3 sort standard is available at:
- http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html
+ The SuSv3 sort standard is available at:
+ http://www.opengroup.org/onlinepubs/007904975/utilities/sort.html
+config BUSYBOX_FEATURE_SORT_OPTIMIZE_MEMORY
+ bool "Use less memory (but might be slower)"
+ default n # defaults to N since we are size-paranoid tribe
+ depends on BUSYBOX_SORT
+ help
+ Attempt to use less memory (by storing only one copy
+ of duplicated lines, and such). Useful if you work on huge files.
config BUSYBOX_SPLIT
- bool "split"
- default n
+ bool "split (5 kb)"
+ default y
help
- split a file into pieces.
+ Split a file into pieces.
config BUSYBOX_FEATURE_SPLIT_FANCY
bool "Fancy extensions"
- default n
+ default y
depends on BUSYBOX_SPLIT
help
- Add support for features not required by SUSv3.
- Supports additional suffixes 'b' for 512 bytes,
- 'g' for 1GiB for the -b option.
-
+ Add support for features not required by SUSv3.
+ Supports additional suffixes 'b' for 512 bytes,
+ 'g' for 1GiB for the -b option.
config BUSYBOX_STAT
- bool "stat"
- default n
- select BUSYBOX_PLATFORM_LINUX # statfs()
+ bool "stat (11 kb)"
+ default y
help
- display file or filesystem status.
+ display file or filesystem status.
config BUSYBOX_FEATURE_STAT_FORMAT
bool "Enable custom formats (-c)"
- default n
+ default y
depends on BUSYBOX_STAT
help
- Without this, stat will not support the '-c format' option where
- users can pass a custom format string for output. This adds about
- 7k to a nonstatic build on amd64.
+ Without this, stat will not support the '-c format' option where
+ users can pass a custom format string for output. This adds about
+ 7k to a nonstatic build on amd64.
config BUSYBOX_FEATURE_STAT_FILESYSTEM
bool "Enable display of filesystem status (-f)"
- default n
+ default y
depends on BUSYBOX_STAT
- select BUSYBOX_PLATFORM_LINUX # statfs()
help
- Without this, stat will not support the '-f' option to display
- information about filesystem status.
-
+ Without this, stat will not support the '-f' option to display
+ information about filesystem status.
config BUSYBOX_STTY
- bool "stty"
- default n
+ bool "stty (8.9 kb)"
+ default y
help
- stty is used to change and print terminal line settings.
-
+ stty is used to change and print terminal line settings.
config BUSYBOX_SUM
- bool "sum"
- default n
+ bool "sum (4 kb)"
+ default y
help
- checksum and count the blocks in a file
-
+ checksum and count the blocks in a file
config BUSYBOX_SYNC
- bool "sync"
- default n
+ bool "sync (3.8 kb)"
+ default y
help
- sync is used to flush filesystem buffers.
-
+ sync is used to flush filesystem buffers.
config BUSYBOX_FEATURE_SYNC_FANCY
- bool "Enable -d and -f flags (requres syncfs(2) in libc)"
- default n
+ bool "Enable -d and -f flags (requires syncfs(2) in libc)"
+ default y
depends on BUSYBOX_SYNC
help
- sync -d FILE... executes fdatasync() on each FILE.
- sync -f FILE... executes syncfs() on each FILE.
-
+ sync -d FILE... executes fdatasync() on each FILE.
+ sync -f FILE... executes syncfs() on each FILE.
+config BUSYBOX_FSYNC
+ bool "fsync (3.6 kb)"
+ default y
+ help
+ fsync is used to flush file-related cached blocks to disk.
config BUSYBOX_TAC
- bool "tac"
- default n
+ bool "tac (3.9 kb)"
+ default y
help
- tac is used to concatenate and print files in reverse.
-
+ tac is used to concatenate and print files in reverse.
config BUSYBOX_TAIL
- bool "tail"
- default n
+ bool "tail (6.8 kb)"
+ default y
help
- tail is used to print the last specified number of lines
- from files.
+ tail is used to print the last specified number of lines
+ from files.
config BUSYBOX_FEATURE_FANCY_TAIL
- bool "Enable extra tail options (-q, -s, -v, and -F)"
- default n
+ bool "Enable -q, -s, -v, and -F options"
+ default y
depends on BUSYBOX_TAIL
help
- The options (-q, -s, and -v) are provided by GNU tail, but
- are not specific in the SUSv3 standard.
-
- -q Never output headers giving file names
- -s SEC Wait SEC seconds between reads with -f
- -v Always output headers giving file names
-
+ These options are provided by GNU tail, but
+ are not specified in the SUSv3 standard:
+ -q Never output headers giving file names
+ -s SEC Wait SEC seconds between reads with -f
+ -v Always output headers giving file names
+ -F Same as -f, but keep retrying
config BUSYBOX_TEE
- bool "tee"
- default n
+ bool "tee (4.2 kb)"
+ default y
help
- tee is used to read from standard input and write
- to standard output and files.
+ tee is used to read from standard input and write
+ to standard output and files.
config BUSYBOX_FEATURE_TEE_USE_BLOCK_IO
bool "Enable block I/O (larger/faster) instead of byte I/O"
default y
depends on BUSYBOX_TEE
help
- Enable this option for a faster tee, at expense of size.
+ Enable this option for a faster tee, at expense of size.
+config BUSYBOX_TEST
+ bool "test (4.1 kb)"
+ default y
+ help
+ test is used to check file types and compare values,
+ returning an appropriate exit code. The bash shell
+ has test built in, ash can build it in optionally.
-config BUSYBOX_TRUE
- bool "true"
- default n
+config BUSYBOX_TEST1
+ bool "test as ["
+ default y
help
- true returns an exit code of TRUE (0).
+ Provide test command in the "[ EXPR ]" form
-config BUSYBOX_TTY
- bool "tty"
- default n
+config BUSYBOX_TEST2
+ bool "test as [["
+ default y
+ help
+ Provide test command in the "[[ EXPR ]]" form
+
+config BUSYBOX_FEATURE_TEST_64
+ bool "Extend test to 64 bit"
+ default y
+ depends on BUSYBOX_TEST || BUSYBOX_TEST1 || BUSYBOX_TEST2 || BUSYBOX_ASH_TEST || BUSYBOX_HUSH_TEST
+ help
+ Enable 64-bit support in test.
+config BUSYBOX_TIMEOUT
+ bool "timeout (6 kb)"
+ default y
+ help
+ Runs a program and watches it. If it does not terminate in
+ specified number of seconds, it is sent a signal.
+config BUSYBOX_TOUCH
+ bool "touch (5.9 kb)"
+ default y
+ help
+ touch is used to create or change the access and/or
+ modification timestamp of specified files.
+
+config BUSYBOX_FEATURE_TOUCH_SUSV3
+ bool "Add support for SUSV3 features (-a -d -m -t -r)"
+ default y
+ depends on BUSYBOX_TOUCH
+ help
+ Enable touch to use a reference file or a given date/time argument.
+config BUSYBOX_TR
+ bool "tr (5.1 kb)"
+ default y
+ help
+ tr is used to squeeze, and/or delete characters from standard
+ input, writing to standard output.
+
+config BUSYBOX_FEATURE_TR_CLASSES
+ bool "Enable character classes (such as [:upper:])"
+ default y
+ depends on BUSYBOX_TR
help
- tty is used to print the name of the current terminal to
- standard output.
+ Enable character classes, enabling commands such as:
+ tr [:upper:] [:lower:] to convert input into lowercase.
+config BUSYBOX_FEATURE_TR_EQUIV
+ bool "Enable equivalence classes"
+ default y
+ depends on BUSYBOX_TR
+ help
+ Enable equivalence classes, which essentially add the enclosed
+ character to the current set. For instance, tr [=a=] xyz would
+ replace all instances of 'a' with 'xyz'. This option is mainly
+ useful for cases when no other way of expressing a character
+ is possible.
+config BUSYBOX_TRUE
+ bool "true (tiny)"
+ default y
+ help
+ true returns an exit code of TRUE (0).
+config BUSYBOX_TRUNCATE
+ bool "truncate (4.2 kb)"
+ default y
+ help
+ truncate truncates files to a given size. If a file does
+ not exist, it is created unless told otherwise.
+config BUSYBOX_TSORT
+ bool "tsort (0.7 kb)"
+ default y
+ help
+ tsort performs a topological sort.
+config BUSYBOX_TTY
+ bool "tty (3.6 kb)"
+ default y
+ help
+ tty is used to print the name of the current terminal to
+ standard output.
config BUSYBOX_UNAME
- bool "uname"
+ bool "uname (3.9 kb)"
default y
help
- uname is used to print system information.
+ uname is used to print system information.
config BUSYBOX_UNAME_OSNAME
string "Operating system name"
default "GNU/Linux"
depends on BUSYBOX_UNAME
help
- Sets the operating system name reported by uname -o. The
- default is "GNU/Linux".
-
-config BUSYBOX_UNEXPAND
- bool "unexpand"
- default n
- help
- By default, convert only leading sequences of blanks to tabs.
+ Sets the operating system name reported by uname -o. The
+ default is "GNU/Linux".
-config BUSYBOX_FEATURE_UNEXPAND_LONG_OPTIONS
- bool "Enable long options"
- default n
- depends on BUSYBOX_UNEXPAND && BUSYBOX_LONG_OPTS
+config BUSYBOX_BB_ARCH
+ bool "arch (1.1 kb)"
+ default y
help
- Support long options for the unexpand applet.
-
+ Same as uname -m.
config BUSYBOX_UNIQ
- bool "uniq"
- default n
+ bool "uniq (4.9 kb)"
+ default y
help
- uniq is used to remove duplicate lines from a sorted file.
-
+ uniq is used to remove duplicate lines from a sorted file.
+config BUSYBOX_UNLINK
+ bool "unlink (3.2 kb)"
+ default y
+ help
+ unlink deletes a file by calling unlink()
config BUSYBOX_USLEEP
- bool "usleep"
- default n
+ bool "usleep (1.3 kb)"
+ default y
help
- usleep is used to pause for a specified number of microseconds.
-
+ usleep is used to pause for a specified number of microseconds.
config BUSYBOX_UUDECODE
- bool "uudecode"
- default n
+ bool "uudecode (5.8 kb)"
+ default y
help
- uudecode is used to decode a uuencoded file.
-
+ uudecode is used to decode a uuencoded file.
+config BUSYBOX_BASE32
+ bool "base32 (4.9 kb)"
+ default y
+ help
+ Base32 encode and decode
+config BUSYBOX_BASE64
+ bool "base64 (4.9 kb)"
+ default y
+ help
+ Base64 encode and decode
config BUSYBOX_UUENCODE
- bool "uuencode"
- default n
+ bool "uuencode (4.4 kb)"
+ default y
help
- uuencode is used to uuencode a file.
-
+ uuencode is used to uuencode a file.
config BUSYBOX_WC
- bool "wc"
- default n
+ bool "wc (4.5 kb)"
+ default y
help
- wc is used to print the number of bytes, words, and lines,
- in specified files.
+ wc is used to print the number of bytes, words, and lines,
+ in specified files.
config BUSYBOX_FEATURE_WC_LARGE
- bool "Support very large files in wc"
- default n
+ bool "Support very large counts"
+ default y
depends on BUSYBOX_WC
help
- Use "unsigned long long" in wc for counter variables.
-
-config BUSYBOX_WHOAMI
- bool "whoami"
- default n
- help
- whoami is used to print the username of the current
- user id (same as id -un).
-
-config BUSYBOX_YES
- bool "yes"
- default n
- help
- yes is used to repeatedly output a specific string, or
- the default string `y'.
-
-comment "Common options"
-
-config BUSYBOX_FEATURE_VERBOSE
- bool "Support verbose options (usually -v) for various applets"
- default n
+ Use "unsigned long long" for counter variables.
+config BUSYBOX_WHO
+ bool "who (3.9 kb)"
+ default y
+ depends on BUSYBOX_FEATURE_UTMP
help
- Enable cp -v, rm -v and similar messages.
- Also enables long option (--verbose) if it exists.
- Without this option, -v is accepted but ignored.
-
-comment "Common options for cp and mv"
- depends on BUSYBOX_CP || BUSYBOX_MV
+ Print users currently logged on.
-config BUSYBOX_FEATURE_PRESERVE_HARDLINKS
- bool "Preserve hard links"
+config BUSYBOX_W
+ bool "w (3.8 kb)"
default y
- depends on BUSYBOX_CP || BUSYBOX_MV
+ depends on BUSYBOX_FEATURE_UTMP
help
- Allow cp and mv to preserve hard links.
+ Print users currently logged on.
-comment "Common options for ls, more and telnet"
- depends on BUSYBOX_LS || BUSYBOX_MORE || BUSYBOX_TELNET
-
-config BUSYBOX_FEATURE_AUTOWIDTH
- bool "Calculate terminal & column widths"
+config BUSYBOX_USERS
+ bool "users (3.4 kb)"
default y
- depends on BUSYBOX_LS || BUSYBOX_MORE || BUSYBOX_TELNET
+ depends on BUSYBOX_FEATURE_UTMP
help
- This option allows utilities such as 'ls', 'more' and 'telnet'
- to determine the width of the screen, which can allow them to
- display additional text or avoid wrapping text onto the next line.
- If you leave this disabled, your utilities will be especially
- primitive and will be unable to determine the current screen width.
-
-comment "Common options for df, du, ls"
- depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS
-
-config BUSYBOX_FEATURE_HUMAN_READABLE
- bool "Support for human readable output (example 13k, 23M, 235G)"
+ Print users currently logged on.
+config BUSYBOX_WHOAMI
+ bool "whoami (3.2 kb)"
default y
- depends on BUSYBOX_DF || BUSYBOX_DU || BUSYBOX_LS
help
- Allow df, du, and ls to have human readable output.
-
-comment "Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum"
- depends on BUSYBOX_MD5SUM || BUSYBOX_SHA1SUM || BUSYBOX_SHA256SUM || BUSYBOX_SHA512SUM || BUSYBOX_SHA3SUM
-
-config BUSYBOX_FEATURE_MD5_SHA1_SUM_CHECK
- bool "Enable -c, -s and -w options"
+ whoami is used to print the username of the current
+ user id (same as id -un).
+config BUSYBOX_YES
+ bool "yes (1.2 kb)"
default y
- depends on BUSYBOX_MD5SUM || BUSYBOX_SHA1SUM || BUSYBOX_SHA256SUM || BUSYBOX_SHA512SUM || BUSYBOX_SHA3SUM
help
- Enabling the -c options allows files to be checked
- against pre-calculated hash values.
-
- -s and -w are useful options when verifying checksums.
+ yes is used to repeatedly output a specific string, or
+ the default string 'y'.
endmenu
diff --git a/package/busybox/config/debianutils/Config.in b/package/busybox/config/debianutils/Config.in
index d48a2aacb..d215debab 100644
--- a/package/busybox/config/debianutils/Config.in
+++ b/package/busybox/config/debianutils/Config.in
@@ -1,84 +1,70 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Debian Utilities"
-config BUSYBOX_MKTEMP
- bool "mktemp"
- default n
- help
- mktemp is used to create unique temporary files
-
config BUSYBOX_PIPE_PROGRESS
- bool "pipe_progress"
- default n
+ bool "pipe_progress (275 bytes)"
+ default y
help
- Display a dot to indicate pipe activity.
-
+ Display a dot to indicate pipe activity.
config BUSYBOX_RUN_PARTS
- bool "run-parts"
- default n
+ bool "run-parts (6.1 kb)"
+ default y
help
- run-parts is a utility designed to run all the scripts in a directory.
+ run-parts is a utility designed to run all the scripts in a directory.
- It is useful to set up a directory like cron.daily, where you need to
- execute all the scripts in that directory.
+ It is useful to set up a directory like cron.daily, where you need to
+ execute all the scripts in that directory.
- In this implementation of run-parts some features (such as report
- mode) are not implemented.
+ In this implementation of run-parts some features (such as report
+ mode) are not implemented.
- Unless you know that run-parts is used in some of your scripts
- you can safely say N here.
+ Unless you know that run-parts is used in some of your scripts
+ you can safely say N here.
config BUSYBOX_FEATURE_RUN_PARTS_LONG_OPTIONS
bool "Enable long options"
- default n
+ default y
depends on BUSYBOX_RUN_PARTS && BUSYBOX_LONG_OPTS
- help
- Support long options for the run-parts applet.
config BUSYBOX_FEATURE_RUN_PARTS_FANCY
bool "Support additional arguments"
- default n
+ default y
depends on BUSYBOX_RUN_PARTS
help
- Support additional options:
- -l --list print the names of the all matching files (not
- limited to executables), but don't actually run them.
-
+ Support additional options:
+ -l --list print the names of the all matching files (not
+ limited to executables), but don't actually run them.
config BUSYBOX_START_STOP_DAEMON
- bool "start-stop-daemon"
- default n
+ bool "start-stop-daemon (12 kb)"
+ default y
help
- start-stop-daemon is used to control the creation and
- termination of system-level processes, usually the ones
- started during the startup of the system.
-
-config BUSYBOX_FEATURE_START_STOP_DAEMON_FANCY
- bool "Support additional arguments"
- default n
- depends on BUSYBOX_START_STOP_DAEMON
- help
- Support additional arguments.
- -o|--oknodo ignored since we exit with 0 anyway
- -v|--verbose
- -N|--nicelevel N
+ start-stop-daemon is used to control the creation and
+ termination of system-level processes, usually the ones
+ started during the startup of the system.
config BUSYBOX_FEATURE_START_STOP_DAEMON_LONG_OPTIONS
bool "Enable long options"
- default n
+ default y
depends on BUSYBOX_START_STOP_DAEMON && BUSYBOX_LONG_OPTS
- help
- Support long options for the start-stop-daemon applet.
+config BUSYBOX_FEATURE_START_STOP_DAEMON_FANCY
+ bool "Support additional arguments"
+ default y
+ depends on BUSYBOX_START_STOP_DAEMON
+ help
+ -o|--oknodo ignored since we exit with 0 anyway
+ -v|--verbose
+ -N|--nicelevel N
config BUSYBOX_WHICH
- bool "which"
- default n
+ bool "which (3.8 kb)"
+ default y
help
- which is used to find programs in your PATH and
- print out their pathnames.
+ which is used to find programs in your PATH and
+ print out their pathnames.
endmenu
diff --git a/package/busybox/config/e2fsprogs/Config.in b/package/busybox/config/e2fsprogs/Config.in
index 6e7755dab..08533d6cc 100644
--- a/package/busybox/config/e2fsprogs/Config.in
+++ b/package/busybox/config/e2fsprogs/Config.in
@@ -1,16 +1,34 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Linux Ext2 FS Progs"
config BUSYBOX_CHATTR
- bool "chattr"
- default n
+ bool "chattr (3.8 kb)"
+ default y
help
- chattr changes the file attributes on a second extended file system.
+ chattr changes the file attributes on a second extended file system.
+config BUSYBOX_FSCK
+ bool "fsck (7.4 kb)"
+ default y
+ help
+ fsck is used to check and optionally repair one or more filesystems.
+ In actuality, fsck is simply a front-end for the various file system
+ checkers (fsck.fstype) available under Linux.
+config BUSYBOX_LSATTR
+ bool "lsattr (5.5 kb)"
+ default y
+ help
+ lsattr lists the file attributes on a second extended file system.
+config BUSYBOX_TUNE2FS
+ bool "tune2fs (4.4 kb)"
+ default n # off: it is too limited compared to upstream version
+ help
+ tune2fs allows the system administrator to adjust various tunable
+ filesystem parameters on Linux ext2/ext3 filesystems.
### config E2FSCK
### bool "e2fsck"
@@ -21,35 +39,13 @@ config BUSYBOX_CHATTR
### The normal compat symlinks 'fsck.ext2' and 'fsck.ext3' are also
### provided.
-config BUSYBOX_FSCK
- bool "fsck"
- default n
- help
- fsck is used to check and optionally repair one or more filesystems.
- In actuality, fsck is simply a front-end for the various file system
- checkers (fsck.fstype) available under Linux.
-
-config BUSYBOX_LSATTR
- bool "lsattr"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- lsattr lists the file attributes on a second extended file system.
-
-### config MKE2FS
+### config BUSYBOX_MKE2FS
### bool "mke2fs"
### default y
### help
### mke2fs is used to create an ext2/ext3 filesystem. The normal compat
### symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
-config BUSYBOX_TUNE2FS
- bool "tune2fs"
- default n # off: it is too limited compared to upstream version
- help
- tune2fs allows the system administrator to adjust various tunable
- filesystem parameters on Linux ext2/ext3 filesystems.
-
### config E2LABEL
### bool "e2label"
### default y
@@ -59,7 +55,7 @@ config BUSYBOX_TUNE2FS
### filesystem located on device.
### NB: this one is now provided by util-linux/volume_id/*
-### config FINDFS
+### config BUSYBOX_FINDFS
### bool "findfs"
### default y
### depends on BUSYBOX_TUNE2FS
diff --git a/package/busybox/config/e2fsprogs/old_e2fsprogs/Config.in b/package/busybox/config/e2fsprogs/old_e2fsprogs/Config.in
deleted file mode 100644
index 2146bb9a9..000000000
--- a/package/busybox/config/e2fsprogs/old_e2fsprogs/Config.in
+++ /dev/null
@@ -1,69 +0,0 @@
-# DO NOT EDIT. This file is generated from Config.src
-#
-# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
-#
-
-menu "Linux Ext2 FS Progs"
-
-
-config BUSYBOX_CHATTR
- bool "chattr"
- default n
- help
- chattr changes the file attributes on a second extended file system.
-
-config BUSYBOX_E2FSCK
- bool "e2fsck"
- default n
- help
- e2fsck is used to check Linux second extended file systems (ext2fs).
- e2fsck also supports ext2 filesystems countaining a journal (ext3).
- The normal compat symlinks 'fsck.ext2' and 'fsck.ext3' are also
- provided.
-
-config BUSYBOX_FSCK
- bool "fsck"
- default n
- help
- fsck is used to check and optionally repair one or more filesystems.
- In actuality, fsck is simply a front-end for the various file system
- checkers (fsck.fstype) available under Linux.
-
-config BUSYBOX_LSATTR
- bool "lsattr"
- default n
- help
- lsattr lists the file attributes on a second extended file system.
-
-config BUSYBOX_MKE2FS
- bool "mke2fs"
- default n
- help
- mke2fs is used to create an ext2/ext3 filesystem. The normal compat
- symlinks 'mkfs.ext2' and 'mkfs.ext3' are also provided.
-
-config BUSYBOX_TUNE2FS
- bool "tune2fs"
- default n
- help
- tune2fs allows the system administrator to adjust various tunable
- filesystem parameters on Linux ext2/ext3 filesystems.
-
-config BUSYBOX_E2LABEL
- bool "e2label"
- default n
- depends on BUSYBOX_TUNE2FS
- help
- e2label will display or change the filesystem label on the ext2
- filesystem located on device.
-
-config BUSYBOX_FINDFS
- bool "findfs"
- default n
- depends on BUSYBOX_TUNE2FS
- help
- findfs will search the disks in the system looking for a filesystem
- which has a label matching label or a UUID equal to uuid.
-
-endmenu
diff --git a/package/busybox/config/editors/Config.in b/package/busybox/config/editors/Config.in
index 5c6b8a8be..2858f60d1 100644
--- a/package/busybox/config/editors/Config.in
+++ b/package/busybox/config/editors/Config.in
@@ -1,152 +1,215 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Editors"
-config BUSYBOX_PATCH
- bool "patch"
- depends on !BUSYBOX_DISABLE_PATCH
- default n
+config BUSYBOX_AWK
+ bool "awk (23 kb)"
+ default y
+ help
+ Awk is used as a pattern scanning and processing language.
+
+config BUSYBOX_FEATURE_AWK_LIBM
+ bool "Enable math functions (requires libm)"
+ default y
+ depends on BUSYBOX_AWK
help
- Apply a unified diff formatted patch.
+ Enable math functions of the Awk programming language.
+ NOTE: This requires libm to be present for linking.
+
+config BUSYBOX_FEATURE_AWK_GNU_EXTENSIONS
+ bool "Enable a few GNU extensions"
+ default y
+ depends on BUSYBOX_AWK
+ help
+ Enable a few features from gawk:
+ * command line option -e AWK_PROGRAM
+ * simultaneous use of -f and -e on the command line.
+ This enables the use of awk library files.
+ Example: awk -f mylib.awk -e '{print myfunction($1);}' ...
+config BUSYBOX_CMP
+ bool "cmp (4.9 kb)"
+ default y
+ help
+ cmp is used to compare two files and returns the result
+ to standard output.
+config BUSYBOX_DIFF
+ bool "diff (13 kb)"
+ default y
+ help
+ diff compares two files or directories and outputs the
+ differences between them in a form that can be given to
+ the patch command.
+
+config BUSYBOX_FEATURE_DIFF_LONG_OPTIONS
+ bool "Enable long options"
+ default y
+ depends on BUSYBOX_DIFF && BUSYBOX_LONG_OPTS
+config BUSYBOX_FEATURE_DIFF_DIR
+ bool "Enable directory support"
+ default y
+ depends on BUSYBOX_DIFF
+ help
+ This option enables support for directory and subdirectory
+ comparison.
+config BUSYBOX_ED
+ bool "ed (21 kb)"
+ default y
+ help
+ The original 1970's Unix text editor, from the days of teletypes.
+ Small, simple, evil. Part of SUSv3. If you're not already using
+ this, you don't need it.
+config BUSYBOX_PATCH
+ bool "patch (9.4 kb)"
+ default y
+ help
+ Apply a unified diff formatted patch.
+config BUSYBOX_SED
+ bool "sed (12 kb)"
+ default y
+ help
+ sed is used to perform text transformations on a file
+ or input from a pipeline.
config BUSYBOX_VI
- bool "vi"
+ bool "vi (23 kb)"
default y
help
- 'vi' is a text editor. More specifically, it is the One True
- text editor <grin>. It does, however, have a rather steep
- learning curve. If you are not already comfortable with 'vi'
- you may wish to use something else.
+ 'vi' is a text editor. More specifically, it is the One True
+ text editor <grin>. It does, however, have a rather steep
+ learning curve. If you are not already comfortable with 'vi'
+ you may wish to use something else.
config BUSYBOX_FEATURE_VI_MAX_LEN
- int "Maximum screen width in vi"
+ int "Maximum screen width"
range 256 16384
default 4096
depends on BUSYBOX_VI
help
- Contrary to what you may think, this is not eating much.
- Make it smaller than 4k only if you are very limited on memory.
+ Contrary to what you may think, this is not eating much.
+ Make it smaller than 4k only if you are very limited on memory.
config BUSYBOX_FEATURE_VI_8BIT
- bool "Allow vi to display 8-bit chars (otherwise shows dots)"
+ bool "Allow to display 8-bit chars (otherwise shows dots)"
default n
depends on BUSYBOX_VI
help
- If your terminal can display characters with high bit set,
- you may want to enable this. Note: vi is not Unicode-capable.
- If your terminal combines several 8-bit bytes into one character
- (as in Unicode mode), this will not work properly.
+ If your terminal can display characters with high bit set,
+ you may want to enable this. Note: vi is not Unicode-capable.
+ If your terminal combines several 8-bit bytes into one character
+ (as in Unicode mode), this will not work properly.
config BUSYBOX_FEATURE_VI_COLON
bool "Enable \":\" colon commands (no \"ex\" mode)"
default y
depends on BUSYBOX_VI
help
- Enable a limited set of colon commands for vi. This does not
- provide an "ex" mode.
+ Enable a limited set of colon commands. This does not
+ provide an "ex" mode.
+
+config BUSYBOX_FEATURE_VI_COLON_EXPAND
+ bool "Expand \"%\" and \"#\" in colon commands"
+ default y
+ depends on BUSYBOX_FEATURE_VI_COLON
+ help
+ Expand the special characters \"%\" (current filename)
+ and \"#\" (alternate filename) in colon commands.
config BUSYBOX_FEATURE_VI_YANKMARK
bool "Enable yank/put commands and mark cmds"
default y
depends on BUSYBOX_VI
help
- This will enable you to use yank and put, as well as mark in
- busybox vi.
+ This enables you to use yank and put, as well as mark.
config BUSYBOX_FEATURE_VI_SEARCH
bool "Enable search and replace cmds"
default y
depends on BUSYBOX_VI
help
- Select this if you wish to be able to do search and replace in
- busybox vi.
+ Select this if you wish to be able to do search and replace.
config BUSYBOX_FEATURE_VI_REGEX_SEARCH
bool "Enable regex in search and replace"
default n # Uses GNU regex, which may be unavailable. FIXME
depends on BUSYBOX_FEATURE_VI_SEARCH
help
- Use extended regex search.
+ Use extended regex search.
config BUSYBOX_FEATURE_VI_USE_SIGNALS
bool "Catch signals"
default y
depends on BUSYBOX_VI
help
- Selecting this option will make busybox vi signal aware. This will
- make busybox vi support SIGWINCH to deal with Window Changes, catch
- Ctrl-Z and Ctrl-C and alarms.
+ Selecting this option will make vi signal aware. This will support
+ SIGWINCH to deal with Window Changes, catch ^Z and ^C and alarms.
config BUSYBOX_FEATURE_VI_DOT_CMD
bool "Remember previous cmd and \".\" cmd"
default y
depends on BUSYBOX_VI
help
- Make busybox vi remember the last command and be able to repeat it.
+ Make vi remember the last command and be able to repeat it.
config BUSYBOX_FEATURE_VI_READONLY
bool "Enable -R option and \"view\" mode"
default y
depends on BUSYBOX_VI
help
- Enable the read-only command line option, which allows the user to
- open a file in read-only mode.
+ Enable the read-only command line option, which allows the user to
+ open a file in read-only mode.
config BUSYBOX_FEATURE_VI_SETOPTS
- bool "Enable set-able options, ai ic showmatch"
+ bool "Enable settable options, ai ic showmatch"
default y
depends on BUSYBOX_VI
help
- Enable the editor to set some (ai, ic, showmatch) options.
+ Enable the editor to set some (ai, ic, showmatch) options.
config BUSYBOX_FEATURE_VI_SET
- bool "Support for :set"
+ bool "Support :set"
default y
depends on BUSYBOX_VI
- help
- Support for ":set".
config BUSYBOX_FEATURE_VI_WIN_RESIZE
bool "Handle window resize"
default y
depends on BUSYBOX_VI
help
- Make busybox vi behave nicely with terminals that get resized.
+ Behave nicely with terminals that get resized.
config BUSYBOX_FEATURE_VI_ASK_TERMINAL
bool "Use 'tell me cursor position' ESC sequence to measure window"
default y
depends on BUSYBOX_VI
help
- If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
- this option makes vi perform a last-ditch effort to find it:
- position cursor to 999,999 and ask terminal to report real
- cursor position using "ESC [ 6 n" escape sequence, then read stdin.
-
- This is not clean but helps a lot on serial lines and such.
+ If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
+ this option makes vi perform a last-ditch effort to find it:
+ position cursor to 999,999 and ask terminal to report real
+ cursor position using "ESC [ 6 n" escape sequence, then read stdin.
+ This is not clean but helps a lot on serial lines and such.
config BUSYBOX_FEATURE_VI_UNDO
- bool "Support undo command 'u'"
+ bool "Support undo command \"u\""
default y
depends on BUSYBOX_VI
help
- Support the 'u' command to undo insertion, deletion, and replacement
- of text.
+ Support the 'u' command to undo insertion, deletion, and replacement
+ of text.
config BUSYBOX_FEATURE_VI_UNDO_QUEUE
bool "Enable undo operation queuing"
default y
depends on BUSYBOX_FEATURE_VI_UNDO
help
- The vi undo functions can use an intermediate queue to greatly lower
- malloc() calls and overhead. When the maximum size of this queue is
- reached, the contents of the queue are committed to the undo stack.
- This increases the size of the undo code and allows some undo
- operations (especially un-typing/backspacing) to be far more useful.
+ The vi undo functions can use an intermediate queue to greatly lower
+ malloc() calls and overhead. When the maximum size of this queue is
+ reached, the contents of the queue are committed to the undo stack.
+ This increases the size of the undo code and allows some undo
+ operations (especially un-typing/backspacing) to be far more useful.
config BUSYBOX_FEATURE_VI_UNDO_QUEUE_MAX
int "Maximum undo character queue size"
@@ -154,94 +217,28 @@ config BUSYBOX_FEATURE_VI_UNDO_QUEUE_MAX
range 32 65536
depends on BUSYBOX_FEATURE_VI_UNDO_QUEUE
help
- This option sets the number of bytes used at runtime for the queue.
- Smaller values will create more undo objects and reduce the amount
- of typed or backspaced characters that are grouped into one undo
- operation; larger values increase the potential size of each undo
- and will generally malloc() larger objects and less frequently.
- Unless you want more (or less) frequent "undo points" while typing,
- you should probably leave this unchanged.
+ This option sets the number of bytes used at runtime for the queue.
+ Smaller values will create more undo objects and reduce the amount
+ of typed or backspaced characters that are grouped into one undo
+ operation; larger values increase the potential size of each undo
+ and will generally malloc() larger objects and less frequently.
+ Unless you want more (or less) frequent "undo points" while typing,
+ you should probably leave this unchanged.
-config BUSYBOX_AWK
- bool "awk"
- default n
- help
- Awk is used as a pattern scanning and processing language. This is
- the BusyBox implementation of that programming language.
-
-config BUSYBOX_FEATURE_AWK_LIBM
- bool "Enable math functions (requires libm)"
- default n
- depends on BUSYBOX_AWK
- help
- Enable math functions of the Awk programming language.
- NOTE: This will require libm to be present for linking.
-
-config BUSYBOX_FEATURE_AWK_GNU_EXTENSIONS
- bool "Enable a few GNU extensions"
- default n
- depends on BUSYBOX_AWK
- help
- Enable a few features from gawk:
- * command line option -e AWK_PROGRAM
- * simultaneous use of -f and -e on the command line.
- This enables the use of awk library files.
- Ex: awk -f mylib.awk -e '{print myfunction($1);}' ...
-
-config BUSYBOX_CMP
- bool "cmp"
- default n
- help
- cmp is used to compare two files and returns the result
- to standard output.
-
-config BUSYBOX_DIFF
- bool "diff"
- depends on !BUSYBOX_DISABLE_DIFF
- default n
- help
- diff compares two files or directories and outputs the
- differences between them in a form that can be given to
- the patch command.
-
-config BUSYBOX_FEATURE_DIFF_LONG_OPTIONS
- bool "Enable long options"
- default n
- depends on BUSYBOX_DIFF && BUSYBOX_LONG_OPTS
- help
- Enable use of long options.
-
-config BUSYBOX_FEATURE_DIFF_DIR
- bool "Enable directory support"
- default n
- depends on BUSYBOX_DIFF
- help
- This option enables support for directory and subdirectory
- comparison.
-
-config BUSYBOX_ED
- bool "ed"
- depends on !BUSYBOX_DISABLE_ED
- default n
- help
- The original 1970's Unix text editor, from the days of teletypes.
- Small, simple, evil. Part of SUSv3. If you're not already using
- this, you don't need it.
-
-config BUSYBOX_SED
- bool "sed"
- depends on !BUSYBOX_DISABLE_SED
- default n
+config BUSYBOX_FEATURE_VI_VERBOSE_STATUS
+ bool "Enable verbose status reporting"
+ default y
+ depends on BUSYBOX_VI
help
- sed is used to perform text transformations on a file
- or input from a pipeline.
+ Enable more verbose reporting of the results of yank, change,
+ delete, undo and substitution commands.
config BUSYBOX_FEATURE_ALLOW_EXEC
bool "Allow vi and awk to execute shell commands"
- default n
+ default y
depends on BUSYBOX_VI || BUSYBOX_AWK
help
- Enables vi and awk features which allows user to execute
- shell commands (using system() C call).
+ Enables vi and awk features which allow user to execute
+ shell commands (using system() C call).
endmenu
diff --git a/package/busybox/config/findutils/Config.in b/package/busybox/config/findutils/Config.in
index a9bb761b2..d4aa403a5 100644
--- a/package/busybox/config/findutils/Config.in
+++ b/package/busybox/config/findutils/Config.in
@@ -1,277 +1,318 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Finding Utilities"
config BUSYBOX_FIND
- bool "find"
- depends on !BUSYBOX_DISABLE_FIND
+ bool "find (14 kb)"
default y
help
- find is used to search your system to find specified files.
+ find is used to search your system to find specified files.
config BUSYBOX_FEATURE_FIND_PRINT0
bool "Enable -print0: NUL-terminated output"
default y
depends on BUSYBOX_FIND
help
- Causes output names to be separated by a NUL character
- rather than a newline. This allows names that contain
- newlines and other whitespace to be more easily
- interpreted by other programs.
+ Causes output names to be separated by a NUL character
+ rather than a newline. This allows names that contain
+ newlines and other whitespace to be more easily
+ interpreted by other programs.
config BUSYBOX_FEATURE_FIND_MTIME
- bool "Enable -mtime: modified time matching"
+ bool "Enable -mtime: modification time matching"
default y
depends on BUSYBOX_FIND
help
- Allow searching based on the modification time of
- files, in days.
+ Allow searching based on the modification time of
+ files, in days.
+
+config BUSYBOX_FEATURE_FIND_ATIME
+ bool "Enable -atime: access time matching"
+ default y
+ depends on BUSYBOX_FEATURE_FIND_MTIME
+ help
+ Allow searching based on the access time of
+ files, in days.
+
+config BUSYBOX_FEATURE_FIND_CTIME
+ bool "Enable -ctime: status change timestamp matching"
+ default y
+ depends on BUSYBOX_FEATURE_FIND_MTIME
+ help
+ Allow searching based on the status change timestamp of
+ files, in days.
config BUSYBOX_FEATURE_FIND_MMIN
- bool "Enable -mmin: modified time matching by minutes"
+ bool "Enable -mmin: modification time matching by minutes"
default y
depends on BUSYBOX_FIND
help
- Allow searching based on the modification time of
- files, in minutes.
+ Allow searching based on the modification time of
+ files, in minutes.
+
+config BUSYBOX_FEATURE_FIND_AMIN
+ bool "Enable -amin: access time matching by minutes"
+ default y
+ depends on BUSYBOX_FEATURE_FIND_MMIN
+ help
+ Allow searching based on the access time of
+ files, in minutes.
+
+config BUSYBOX_FEATURE_FIND_CMIN
+ bool "Enable -cmin: status change timestamp matching by minutes"
+ default y
+ depends on BUSYBOX_FEATURE_FIND_MMIN
+ help
+ Allow searching based on the status change timestamp of
+ files, in minutes.
config BUSYBOX_FEATURE_FIND_PERM
bool "Enable -perm: permissions matching"
default y
depends on BUSYBOX_FIND
- help
- Enable searching based on file permissions.
config BUSYBOX_FEATURE_FIND_TYPE
bool "Enable -type: file type matching (file/dir/link/...)"
default y
depends on BUSYBOX_FIND
help
- Enable searching based on file type (file,
- directory, socket, device, etc.).
+ Enable searching based on file type (file,
+ directory, socket, device, etc.).
+
+config BUSYBOX_FEATURE_FIND_EXECUTABLE
+ bool "Enable -executable: file is executable"
+ default y
+ depends on BUSYBOX_FIND
config BUSYBOX_FEATURE_FIND_XDEV
bool "Enable -xdev: 'stay in filesystem'"
default y
depends on BUSYBOX_FIND
- help
- This option allows find to restrict searches to a single filesystem.
config BUSYBOX_FEATURE_FIND_MAXDEPTH
bool "Enable -mindepth N and -maxdepth N"
default y
depends on BUSYBOX_FIND
- help
- This option enables -mindepth N and -maxdepth N option.
config BUSYBOX_FEATURE_FIND_NEWER
bool "Enable -newer: compare file modification times"
default y
depends on BUSYBOX_FIND
help
- Support the 'find -newer' option for finding any files which have
- modification time that is more recent than the specified FILE.
+ Support the 'find -newer' option for finding any files which have
+ modification time that is more recent than the specified FILE.
config BUSYBOX_FEATURE_FIND_INUM
bool "Enable -inum: inode number matching"
default y
depends on BUSYBOX_FIND
- help
- Support the 'find -inum' option for searching by inode number.
-config BUSYBOX_FEATURE_FIND_EMPTY
- bool "Enable -empty option matching empty files and directories"
- default y
- depends on BUSYBOX_FIND
- help
- Support the 'find -empty' option for searching empty files
- and directories.
+config BUSYBOX_FEATURE_FIND_SAMEFILE
+ bool "Enable -samefile: reference file matching"
+ default y
+ depends on BUSYBOX_FIND
+ help
+ Support the 'find -samefile' option for searching by a reference file.
config BUSYBOX_FEATURE_FIND_EXEC
bool "Enable -exec: execute commands"
default y
depends on BUSYBOX_FIND
help
- Support the 'find -exec' option for executing commands based upon
- the files matched.
+ Support the 'find -exec' option for executing commands based upon
+ the files matched.
config BUSYBOX_FEATURE_FIND_EXEC_PLUS
bool "Enable -exec ... {} +"
default y
depends on BUSYBOX_FEATURE_FIND_EXEC
help
- Support the 'find -exec ... {} +' option for executing commands
- for all matched files at once.
- Without this option, -exec + is a synonym for -exec ;
- (IOW: it works correctly, but without expected speedup)
+ Support the 'find -exec ... {} +' option for executing commands
+ for all matched files at once.
+ Without this option, -exec + is a synonym for -exec ;
+ (IOW: it works correctly, but without expected speedup)
config BUSYBOX_FEATURE_FIND_USER
bool "Enable -user: username/uid matching"
default y
depends on BUSYBOX_FIND
- help
- Support the 'find -user' option for searching by username or uid.
config BUSYBOX_FEATURE_FIND_GROUP
bool "Enable -group: group/gid matching"
default y
depends on BUSYBOX_FIND
- help
- Support the 'find -group' option for searching by group name or gid.
config BUSYBOX_FEATURE_FIND_NOT
bool "Enable the 'not' (!) operator"
default y
depends on BUSYBOX_FIND
help
- Support the '!' operator to invert the test results.
- If 'Enable full-blown desktop' is enabled, then will also support
- the non-POSIX notation '-not'.
+ Support the '!' operator to invert the test results.
+ If 'Enable full-blown desktop' is enabled, then will also support
+ the non-POSIX notation '-not'.
config BUSYBOX_FEATURE_FIND_DEPTH
bool "Enable -depth"
default y
depends on BUSYBOX_FIND
help
- Process each directory's contents before the directory itself.
+ Process each directory's contents before the directory itself.
config BUSYBOX_FEATURE_FIND_PAREN
bool "Enable parens in options"
default y
depends on BUSYBOX_FIND
help
- Enable usage of parens '(' to specify logical order of arguments.
+ Enable usage of parens '(' to specify logical order of arguments.
config BUSYBOX_FEATURE_FIND_SIZE
bool "Enable -size: file size matching"
default y
depends on BUSYBOX_FIND
- help
- Support the 'find -size' option for searching by file size.
config BUSYBOX_FEATURE_FIND_PRUNE
bool "Enable -prune: exclude subdirectories"
default y
depends on BUSYBOX_FIND
help
- If the file is a directory, dont descend into it. Useful for
- exclusion .svn and CVS directories.
+ If the file is a directory, don't descend into it. Useful for
+ exclusion .svn and CVS directories.
+
+config BUSYBOX_FEATURE_FIND_QUIT
+ bool "Enable -quit: exit"
+ default y
+ depends on BUSYBOX_FIND
+ help
+ If this action is reached, 'find' exits.
config BUSYBOX_FEATURE_FIND_DELETE
bool "Enable -delete: delete files/dirs"
default y
depends on BUSYBOX_FIND && BUSYBOX_FEATURE_FIND_DEPTH
help
- Support the 'find -delete' option for deleting files and directories.
- WARNING: This option can do much harm if used wrong. Busybox will not
- try to protect the user from doing stupid things. Use with care.
+ Support the 'find -delete' option for deleting files and directories.
+ WARNING: This option can do much harm if used wrong. Busybox will not
+ try to protect the user from doing stupid things. Use with care.
+
+config BUSYBOX_FEATURE_FIND_EMPTY
+ bool "Enable -empty: match empty files or directories"
+ default y
+ depends on BUSYBOX_FIND
+ help
+ Support the 'find -empty' option to find empty regular files
+ or directories.
config BUSYBOX_FEATURE_FIND_PATH
bool "Enable -path: match pathname with shell pattern"
default y
depends on BUSYBOX_FIND
help
- The -path option matches whole pathname instead of just filename.
+ The -path option matches whole pathname instead of just filename.
config BUSYBOX_FEATURE_FIND_REGEX
bool "Enable -regex: match pathname with regex"
default y
depends on BUSYBOX_FIND
help
- The -regex option matches whole pathname against regular expression.
+ The -regex option matches whole pathname against regular expression.
config BUSYBOX_FEATURE_FIND_CONTEXT
bool "Enable -context: security context matching"
default n
depends on BUSYBOX_FIND && BUSYBOX_SELINUX
help
- Support the 'find -context' option for matching security context.
+ Support the 'find -context' option for matching security context.
config BUSYBOX_FEATURE_FIND_LINKS
bool "Enable -links: link count matching"
default y
depends on BUSYBOX_FIND
help
- Support the 'find -links' option for matching number of links.
-
+ Support the 'find -links' option for matching number of links.
config BUSYBOX_GREP
- bool "grep"
- depends on !BUSYBOX_DISABLE_GREP
+ bool "grep (8.6 kb)"
default y
help
- grep is used to search files for a specified pattern.
+ grep is used to search files for a specified pattern.
config BUSYBOX_EGREP
- bool "egrep"
- depends on !BUSYBOX_DISABLE_GREP
+ bool "egrep (7.8 kb)"
default y
help
- Alias to "grep -E"
+ Alias to "grep -E".
config BUSYBOX_FGREP
- bool "fgrep"
- depends on !BUSYBOX_DISABLE_GREP
+ bool "fgrep (7.8 kb)"
default y
help
- Alias to "grep -F"
+ Alias to "grep -F".
config BUSYBOX_FEATURE_GREP_CONTEXT
bool "Enable before and after context flags (-A, -B and -C)"
default y
- depends on BUSYBOX_GREP
+ depends on BUSYBOX_GREP || BUSYBOX_EGREP || BUSYBOX_FGREP
help
- Print the specified number of leading (-B) and/or trailing (-A)
- context surrounding our matching lines.
- Print the specified number of context lines (-C).
-
+ Print the specified number of leading (-B) and/or trailing (-A)
+ context surrounding our matching lines.
+ Print the specified number of context lines (-C).
config BUSYBOX_XARGS
- bool "xargs"
- default n
+ bool "xargs (7.2 kb)"
+ default y
help
- xargs is used to execute a specified command for
- every item from standard input.
+ xargs is used to execute a specified command for
+ every item from standard input.
config BUSYBOX_FEATURE_XARGS_SUPPORT_CONFIRMATION
bool "Enable -p: prompt and confirmation"
default y
depends on BUSYBOX_XARGS
help
- Support -p: prompt the user whether to run each command
- line and read a line from the terminal.
+ Support -p: prompt the user whether to run each command
+ line and read a line from the terminal.
config BUSYBOX_FEATURE_XARGS_SUPPORT_QUOTES
bool "Enable single and double quotes and backslash"
default y
depends on BUSYBOX_XARGS
help
- Support quoting in the input.
+ Support quoting in the input.
config BUSYBOX_FEATURE_XARGS_SUPPORT_TERMOPT
bool "Enable -x: exit if -s or -n is exceeded"
default y
depends on BUSYBOX_XARGS
help
- Support -x: exit if the command size (see the -s or -n option)
- is exceeded.
+ Support -x: exit if the command size (see the -s or -n option)
+ is exceeded.
config BUSYBOX_FEATURE_XARGS_SUPPORT_ZERO_TERM
bool "Enable -0: NUL-terminated input"
default y
depends on BUSYBOX_XARGS
help
- Support -0: input items are terminated by a NUL character
- instead of whitespace, and the quotes and backslash
- are not special.
+ Support -0: input items are terminated by a NUL character
+ instead of whitespace, and the quotes and backslash
+ are not special.
config BUSYBOX_FEATURE_XARGS_SUPPORT_REPL_STR
bool "Enable -I STR: string to replace"
default y
depends on BUSYBOX_XARGS
help
- Support -I STR and -i[STR] options.
+ Support -I STR and -i[STR] options.
+
+config BUSYBOX_FEATURE_XARGS_SUPPORT_PARALLEL
+ bool "Enable -P N: processes to run in parallel"
+ default y
+ depends on BUSYBOX_XARGS
+
+config BUSYBOX_FEATURE_XARGS_SUPPORT_ARGS_FILE
+ bool "Enable -a FILE: use FILE instead of stdin"
+ default y
+ depends on BUSYBOX_XARGS
endmenu
diff --git a/package/busybox/config/init/Config.in b/package/busybox/config/init/Config.in
index 9e17c790c..e27e0ea86 100644
--- a/package/busybox/config/init/Config.in
+++ b/package/busybox/config/init/Config.in
@@ -1,122 +1,130 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Init Utilities"
config BUSYBOX_BOOTCHARTD
- bool "bootchartd"
- default n
+ bool "bootchartd (10 kb)"
+ default y
help
- bootchartd is commonly used to profile the boot process
- for the purpose of speeding it up. In this case, it is started
- by the kernel as the init process. This is configured by adding
- the init=/sbin/bootchartd option to the kernel command line.
+ bootchartd is commonly used to profile the boot process
+ for the purpose of speeding it up. In this case, it is started
+ by the kernel as the init process. This is configured by adding
+ the init=/sbin/bootchartd option to the kernel command line.
- It can also be used to monitor the resource usage of a specific
- application or the running system in general. In this case,
- bootchartd is started interactively by running bootchartd start
- and stopped using bootchartd stop.
+ It can also be used to monitor the resource usage of a specific
+ application or the running system in general. In this case,
+ bootchartd is started interactively by running bootchartd start
+ and stopped using bootchartd stop.
config BUSYBOX_FEATURE_BOOTCHARTD_BLOATED_HEADER
bool "Compatible, bloated header"
default y
depends on BUSYBOX_BOOTCHARTD
help
- Create extended header file compatible with "big" bootchartd.
- "Big" bootchartd is a shell script and it dumps some
- "convenient" info int the header, such as:
- title = Boot chart for `hostname` (`date`)
- system.uname = `uname -srvm`
- system.release = `cat /etc/DISTRO-release`
- system.cpu = `grep '^model name' /proc/cpuinfo | head -1` ($cpucount)
- system.kernel.options = `cat /proc/cmdline`
- This data is not mandatory for bootchart graph generation,
- and is considered bloat. Nevertheless, this option
- makes bootchartd applet to dump a subset of it.
+ Create extended header file compatible with "big" bootchartd.
+ "Big" bootchartd is a shell script and it dumps some
+ "convenient" info into the header, such as:
+ title = Boot chart for `hostname` (`date`)
+ system.uname = `uname -srvm`
+ system.release = `cat /etc/DISTRO-release`
+ system.cpu = `grep '^model name' /proc/cpuinfo | head -1` ($cpucount)
+ system.kernel.options = `cat /proc/cmdline`
+ This data is not mandatory for bootchart graph generation,
+ and is considered bloat. Nevertheless, this option
+ makes bootchartd applet to dump a subset of it.
config BUSYBOX_FEATURE_BOOTCHARTD_CONFIG_FILE
bool "Support bootchartd.conf"
default y
depends on BUSYBOX_BOOTCHARTD
help
- Enable reading and parsing of $PWD/bootchartd.conf
- and /etc/bootchartd.conf files.
-
+ Enable reading and parsing of $PWD/bootchartd.conf
+ and /etc/bootchartd.conf files.
config BUSYBOX_HALT
- bool "halt"
+ bool "halt (4 kb)"
default y
help
- Stop all processes and either halt, reboot, or power off the system.
+ Stop all processes and halt the system.
config BUSYBOX_POWEROFF
- bool "poweroff"
+ bool "poweroff (4 kb)"
default y
help
- Stop all processes and power off the system.
+ Stop all processes and power off the system.
config BUSYBOX_REBOOT
- bool "reboot"
+ bool "reboot (4 kb)"
+ default y
+ help
+ Stop all processes and reboot the system.
+
+config BUSYBOX_FEATURE_WAIT_FOR_INIT
+ bool "Before signaling init, make sure it is ready for it"
default y
+ depends on BUSYBOX_HALT || BUSYBOX_POWEROFF || BUSYBOX_REBOOT
help
- Stop all processes and reboot the system.
+ In rare cases, poweroff may be commanded by firmware to OS
+ even before init process exists. On Linux, this spawns
+ "/sbin/poweroff" very early. This option adds code
+ which checks that init is ready to receive poweroff
+ commands. Code size increase of ~80 bytes.
config BUSYBOX_FEATURE_CALL_TELINIT
bool "Call telinit on shutdown and reboot"
- default n
- depends on BUSYBOX_HALT && !BUSYBOX_INIT
+ default y
+ depends on (BUSYBOX_HALT || BUSYBOX_POWEROFF || BUSYBOX_REBOOT) && !BUSYBOX_INIT
help
- Call an external program (normally telinit) to facilitate
- a switch to a proper runlevel.
+ Call an external program (normally telinit) to facilitate
+ a switch to a proper runlevel.
- This option is only available if you selected halt and friends,
- but did not select init.
+ This option is only available if you selected halt and friends,
+ but did not select init.
config BUSYBOX_TELINIT_PATH
string "Path to telinit executable"
default "/sbin/telinit"
depends on BUSYBOX_FEATURE_CALL_TELINIT
help
- When busybox halt and friends have to call external telinit
- to facilitate proper shutdown, this path is to be used when
- locating telinit executable.
-
+ When busybox halt and friends have to call external telinit
+ to facilitate proper shutdown, this path is to be used when
+ locating telinit executable.
config BUSYBOX_INIT
- bool "init"
+ bool "init (10 kb)"
default y
- depends on !ADK_PACKAGE_SIMPLEINIT
select BUSYBOX_FEATURE_SYSLOG
help
- init is the first program run when the system boots.
+ init is the first program run when the system boots.
config BUSYBOX_LINUXRC
- bool "Support running init from within an initrd (not initramfs)"
- default n
+ bool "linuxrc: support running init from initrd (not initramfs)"
+ default y
select BUSYBOX_FEATURE_SYSLOG
help
- Legacy support for running init under the old-style initrd. Allows
- the name linuxrc to act as init, and it doesn't assume init is PID 1.
+ Legacy support for running init under the old-style initrd. Allows
+ the name linuxrc to act as init, and it doesn't assume init is PID 1.
- This does not apply to initramfs, which runs /init as PID 1 and
- requires no special support.
+ This does not apply to initramfs, which runs /init as PID 1 and
+ requires no special support.
config BUSYBOX_FEATURE_USE_INITTAB
bool "Support reading an inittab file"
default y
- depends on BUSYBOX_INIT
+ depends on BUSYBOX_INIT || BUSYBOX_LINUXRC
help
- Allow init to read an inittab file when the system boot.
+ Allow init to read an inittab file when the system boot.
config BUSYBOX_FEATURE_KILL_REMOVED
bool "Support killing processes that have been removed from inittab"
default n
depends on BUSYBOX_FEATURE_USE_INITTAB
help
- When respawn entries are removed from inittab and a SIGHUP is
- sent to init, this option will make init kill the processes
- that have been removed.
+ When respawn entries are removed from inittab and a SIGHUP is
+ sent to init, this option will make init kill the processes
+ that have been removed.
config BUSYBOX_FEATURE_KILL_DELAY
int "How long to wait between TERM and KILL (0 - send TERM only)" if FEATURE_KILL_REMOVED
@@ -124,92 +132,75 @@ config BUSYBOX_FEATURE_KILL_DELAY
default 0
depends on BUSYBOX_FEATURE_KILL_REMOVED
help
- With nonzero setting, init sends TERM, forks, child waits N
- seconds, sends KILL and exits. Setting it too high is unwise
- (child will hang around for too long and could actually kill
- the wrong process!)
+ With nonzero setting, init sends TERM, forks, child waits N
+ seconds, sends KILL and exits. Setting it too high is unwise
+ (child will hang around for too long and could actually kill
+ the wrong process!)
config BUSYBOX_FEATURE_INIT_SCTTY
bool "Run commands with leading dash with controlling tty"
default y
- depends on BUSYBOX_INIT
- help
- If this option is enabled, init will try to give a controlling
- tty to any command which has leading hyphen (often it's "-/bin/sh").
- More precisely, init will do "ioctl(STDIN_FILENO, TIOCSCTTY, 0)".
- If device attached to STDIN_FILENO can be a ctty but is not yet
- a ctty for other session, it will become this process' ctty.
- This is not the traditional init behavour, but is often what you want
- in an embedded system where the console is only accessed during
- development or for maintenance.
- NB: using cttyhack applet may work better.
+ depends on BUSYBOX_INIT || BUSYBOX_LINUXRC
+ help
+ If this option is enabled, init will try to give a controlling
+ tty to any command which has leading hyphen (often it's "-/bin/sh").
+ More precisely, init will do "ioctl(STDIN_FILENO, TIOCSCTTY, 0)".
+ If device attached to STDIN_FILENO can be a ctty but is not yet
+ a ctty for other session, it will become this process' ctty.
+ This is not the traditional init behavour, but is often what you want
+ in an embedded system where the console is only accessed during
+ development or for maintenance.
+ NB: using cttyhack applet may work better.
config BUSYBOX_FEATURE_INIT_SYSLOG
bool "Enable init to write to syslog"
default y
- depends on BUSYBOX_INIT
+ depends on BUSYBOX_INIT || BUSYBOX_LINUXRC
+ help
+ If selected, some init messages are sent to syslog.
+ Otherwise, they are sent to VT #5 if linux virtual tty is detected
+ (if not, no separate logging is done).
-config BUSYBOX_FEATURE_EXTRA_QUIET
- bool "Be _extra_ quiet on boot"
+config BUSYBOX_FEATURE_INIT_QUIET
+ bool "Be quiet on boot (no 'init started:' message)"
default y
- depends on BUSYBOX_INIT
- help
- Prevent init from logging some messages to the console during boot.
+ depends on BUSYBOX_INIT || BUSYBOX_LINUXRC
config BUSYBOX_FEATURE_INIT_COREDUMPS
bool "Support dumping core for child processes (debugging only)"
- default n
- depends on BUSYBOX_INIT
+ default n # not Y because this is a debug option
+ depends on BUSYBOX_INIT || BUSYBOX_LINUXRC
help
- If this option is enabled and the file /.init_enable_core
- exists, then init will call setrlimit() to allow unlimited
- core file sizes. If this option is disabled, processes
- will not generate any core files.
+ If this option is enabled and the file /.init_enable_core
+ exists, then init will call setrlimit() to allow unlimited
+ core file sizes. If this option is disabled, processes
+ will not generate any core files.
config BUSYBOX_INIT_TERMINAL_TYPE
string "Initial terminal type"
default "linux"
- depends on BUSYBOX_INIT
+ depends on BUSYBOX_INIT || BUSYBOX_LINUXRC
help
- This is the initial value set by init for the TERM environment
- variable. This variable is used by programs which make use of
- extended terminal capabilities.
+ This is the initial value set by init for the TERM environment
+ variable. This variable is used by programs which make use of
+ extended terminal capabilities.
- Note that on Linux, init attempts to detect serial terminal and
- sets TERM to "vt102" if one is found.
+ Note that on Linux, init attempts to detect serial terminal and
+ sets TERM to "vt102" if one is found.
config BUSYBOX_FEATURE_INIT_MODIFY_CMDLINE
- bool "Modify the command-line to \"init\""
- default n
- depends on BUSYBOX_INIT || BUSYBOX_LINUXRC
- help
- When launched as PID 1 and after parsing its arguments, init
- wipes all the arguments but argv[0] and rewrites argv[0] to
- contain only "init", so that its command-line appears solely as
- "init" in tools such as ps.
- If this option is set to Y, init will keep its original behavior,
- otherwise, all the arguments including argv[0] will be preserved,
- be they parsed or ignored by init.
- The original command-line used to launch init can then be
- retrieved in /proc/1/cmdline on Linux, for example.
-
-config BUSYBOX_MESG
- bool "mesg"
- default n
- help
- Mesg controls access to your terminal by others. It is typically
- used to allow or disallow other users to write to your terminal
-
-config BUSYBOX_FEATURE_MESG_ENABLE_ONLY_GROUP
- bool "Enable writing to tty only by group, not by everybody"
+ bool "Clear init's command line"
default y
- depends on BUSYBOX_MESG
+ depends on BUSYBOX_INIT || BUSYBOX_LINUXRC
help
- Usually, ttys are owned by group "tty", and "write" tool is
- setgid to this group. This way, "mesg y" only needs to enable
- "write by owning group" bit in tty mode.
-
- If you set this option to N, "mesg y" will enable writing
- by anybody at all. This is not recommended.
+ When launched as PID 1 and after parsing its arguments, init
+ wipes all the arguments but argv[0] and rewrites argv[0] to
+ contain only "init", so that its command line appears solely as
+ "init" in tools such as ps.
+ If this option is set to Y, init will keep its original behavior,
+ otherwise, all the arguments including argv[0] will be preserved,
+ be they parsed or ignored by init.
+ The original command-line used to launch init can then be
+ retrieved in /proc/1/cmdline on Linux, for example.
endmenu
diff --git a/package/busybox/config/klibc-utils/Config.in b/package/busybox/config/klibc-utils/Config.in
new file mode 100644
index 000000000..f2ff057fb
--- /dev/null
+++ b/package/busybox/config/klibc-utils/Config.in
@@ -0,0 +1,42 @@
+# DO NOT EDIT. This file is generated from Config.src
+#
+# For a description of the syntax of this configuration file,
+# see docs/Kconfig-language.txt.
+#
+
+menu "klibc-utils"
+
+config BUSYBOX_MINIPS
+ bool "minips (11 kb)"
+ default n # for god's sake, just use "ps" name in your scripts
+ help
+ Alias to "ps".
+config BUSYBOX_NUKE
+ bool "nuke (2.9 kb)"
+ default n # off by default: too "accidentally destructive"
+ help
+ Alias to "rm -rf".
+config BUSYBOX_RESUME
+ bool "resume (3.2 kb)"
+ default y
+ help
+ Resume from saved "suspend-to-disk" image
+config BUSYBOX_RUN_INIT
+ bool "run-init (7.7 kb)"
+ default y
+ help
+ The run-init utility is used from initramfs to select a new
+ root device. Under initramfs, you have to use this instead of
+ pivot_root.
+
+ Booting with initramfs extracts a gzipped cpio archive into rootfs
+ (which is a variant of ramfs/tmpfs). Because rootfs can't be moved
+ or unmounted, pivot_root will not work from initramfs. Instead,
+ run-init deletes everything out of rootfs (including itself),
+ does a mount --move that overmounts rootfs with the new root, and
+ then execs the specified init program.
+
+ util-linux has a similar tool, switch-root.
+ run-init differs by also having a "-d CAPS_TO_DROP" option.
+
+endmenu
diff --git a/package/busybox/config/libbb/Config.in b/package/busybox/config/libbb/Config.in
index 6aff24699..66c135ec6 100644
--- a/package/busybox/config/libbb/Config.in
+++ b/package/busybox/config/libbb/Config.in
@@ -1,113 +1,221 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
-menu "Busybox Library Tuning"
+comment "Library Tuning"
config BUSYBOX_FEATURE_USE_BSS_TAIL
bool "Use the end of BSS page"
default n
help
- Attempt to reclaim a small unused part of BSS.
+ Attempt to reclaim a small unused part of BSS.
+
+ Executables have the following parts:
+ = read-only executable code and constants, also known as "text"
+ = read-write data
+ = non-initialized (zeroed on demand) data, also known as "bss"
+
+ At link time, "text" is padded to a full page. At runtime, all "text"
+ pages are mapped RO and executable.
+
+ "Data" starts on the next page boundary, but is not padded
+ to a full page at the end. "Bss" starts wherever "data" ends.
+ At runtime, "data" pages are mapped RW and they are file-backed
+ (this includes a small portion of "bss" which may live in the last
+ partial page of "data").
+ Pages which are fully in "bss" are mapped to anonymous memory.
+
+ "Bss" end is usually not page-aligned. There is an unused space
+ in the last page. Linker marks its start with the "_end" symbol.
+
+ This option will attempt to use that space for bb_common_bufsiz1[]
+ array. If it fits after _end, it will be used, and COMMON_BUFSIZE
+ will be enlarged from its guaranteed minimum size of 1 kbyte.
+ This may require recompilation a second time, since value of _end
+ is known only after final link.
+
+ If you are getting a build error like this:
+ appletlib.c:(.text.main+0xd): undefined reference to '_end'
+ disable this option.
+config BUSYBOX_FLOAT_DURATION
+ bool "Enable fractional duration arguments"
+ default y
+ help
+ Allow sleep N.NNN, top -d N.NNN etc.
+config BUSYBOX_FEATURE_RTMINMAX
+ bool "Support RTMIN[+n] and RTMAX[-n] signal names"
+ default y
+ help
+ Support RTMIN[+n] and RTMAX[-n] signal names
+ in kill, killall etc. This costs ~250 bytes.
- Executables have the following parts:
- = read-only executable code and constants, also known as "text"
- = read-write data
- = non-initialized (zeroed on demand) data, also known as "bss"
+config BUSYBOX_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS
+ bool "Use the definitions of SIGRTMIN/SIGRTMAX provided by libc"
+ default y
+ depends on BUSYBOX_FEATURE_RTMINMAX
+ help
+ Some C libraries reserve a few real-time signals for internal
+ use, and adjust the values of SIGRTMIN/SIGRTMAX seen by
+ applications accordingly. Saying yes here means that a signal
+ name RTMIN+n will be interpreted according to the libc definition
+ of SIGRTMIN, and not the raw definition provided by the kernel.
+ This behavior matches "kill -l RTMIN+n" from bash.
+
+choice
+ prompt "Buffer allocation policy"
+ default BUSYBOX_FEATURE_BUFFERS_USE_MALLOC
+ help
+ There are 3 ways busybox can handle buffer allocations:
+ - Use malloc. This costs code size for the call to xmalloc.
+ - Put them on stack. For some very small machines with limited stack
+ space, this can be deadly. For most folks, this works just fine.
+ - Put them in BSS. This works beautifully for computers with a real
+ MMU (and OS support), but wastes runtime RAM for uCLinux. This
+ behavior was the only one available for versions 0.48 and earlier.
- At link time, "text" is padded to a full page. At runtime, all "text"
- pages are mapped RO and executable.
- "Data" starts on the next page boundary, but is not padded
- to a full page at the end. "Bss" starts wherever "data" ends.
- At runtime, "data" pages are mapped RW and they are file-backed
- (this includes a small portion of "bss" which may live in the last
- partial page of "data").
- Pages which are fully in "bss" are mapped to anonymous memory.
+config BUSYBOX_FEATURE_BUFFERS_USE_MALLOC
+ bool "Allocate with Malloc"
- "Bss" end is usually not page-aligned. There is an unused space
- in the last page. Linker marks its start with the "_end" symbol.
+config BUSYBOX_FEATURE_BUFFERS_GO_ON_STACK
+ bool "Allocate on the Stack"
- This option will attempt to use that space for bb_common_bufsiz1[]
- array. If it fits after _end, it will be used, and COMMON_BUFSIZE
- will be enlarged from its guaranteed minimum size of 1 kbyte.
- This may require recompilation a second time, since value of _end
- is known only after final link.
+config BUSYBOX_FEATURE_BUFFERS_GO_IN_BSS
+ bool "Allocate in the .bss section"
- If you are getting a build error like this:
- appletlib.c:(.text.main+0xd): undefined reference to '_end'
- disable this option.
-
-config BUSYBOX_FEATURE_RTMINMAX
- bool "Support RTMIN[+n] and RTMAX[-n] signal names"
- default y
- help
- Support RTMIN[+n] and RTMAX[-n] signal names
- in kill, killall etc. This costs ~250 bytes.
+endchoice
config BUSYBOX_PASSWORD_MINLEN
int "Minimum password length"
default 6
range 5 32
help
- Minimum allowable password length.
+ Minimum allowable password length.
config BUSYBOX_MD5_SMALL
int "MD5: Trade bytes for speed (0:fast, 3:slow)"
- default 1
+ default 1 # all "fast or small" options default to small
+ range 0 3
+ help
+ Trade binary size versus speed for the md5 algorithm.
+ Approximate values running uClibc and hashing
+ linux-2.4.4.tar.bz2 were:
+ value user times (sec) text size (386)
+ 0 (fastest) 1.1 6144
+ 1 1.4 5392
+ 2 3.0 5088
+ 3 (smallest) 5.1 4912
+
+config BUSYBOX_SHA1_SMALL
+ int "SHA1: Trade bytes for speed (0:fast, 3:slow)"
+ default 3 # all "fast or small" options default to small
range 0 3
help
- Trade binary size versus speed for the md5sum algorithm.
- Approximate values running uClibc and hashing
- linux-2.4.4.tar.bz2 were:
- user times (sec) text size (386)
- 0 (fastest) 1.1 6144
- 1 1.4 5392
- 2 3.0 5088
- 3 (smallest) 5.1 4912
+ Trade binary size versus speed for the sha1 algorithm.
+ With FEATURE_COPYBUF_KB=64:
+ throughput MB/s size of sha1_process_block64
+ value 486 x86-64 486 x86-64
+ 0 440 485 3481 3502
+ 1 265 265 641 696
+ 2,3 220 210 342 364
+
+config BUSYBOX_SHA1_HWACCEL
+ bool "SHA1: Use hardware accelerated instructions if possible"
+ default y
+ help
+ On x86, this adds ~590 bytes of code. Throughput
+ is about twice as fast as fully-unrolled generic code.
+
+config BUSYBOX_SHA256_HWACCEL
+ bool "SHA256: Use hardware accelerated instructions if possible"
+ default y
+ help
+ On x86, this adds ~1k bytes of code.
config BUSYBOX_SHA3_SMALL
- int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
- default 1
- range 0 1
- help
- Trade binary size versus speed for the sha3sum algorithm.
- SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
- 64-bit x86: +270 bytes of code, 45% faster
- 32-bit x86: +450 bytes of code, 75% faster
-
-config BUSYBOX_FEATURE_FAST_TOP
- bool "Faster /proc scanning code (+100 bytes)"
+ int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
+ default 1 # all "fast or small" options default to small
+ range 0 1
+ help
+ Trade binary size versus speed for the sha3 algorithm.
+ SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
+ 64-bit x86: +270 bytes of code, 45% faster
+ 32-bit x86: +450 bytes of code, 75% faster
+
+config BUSYBOX_FEATURE_NON_POSIX_CP
+ bool "Non-POSIX, but safer, copying to special nodes"
default y
help
- This option makes top (and ps) ~20% faster (or 20% less CPU hungry),
- but code size is slightly bigger.
+ With this option, "cp file symlink" will delete symlink
+ and create a regular file. This does not conform to POSIX,
+ but prevents a symlink attack.
+ Similarly, "cp file device" will not send file's data
+ to the device. (To do that, use "cat file >device")
-config BUSYBOX_FEATURE_ETC_NETWORKS
- bool "Support for /etc/networks"
+config BUSYBOX_FEATURE_VERBOSE_CP_MESSAGE
+ bool "Give more precise messages when copy fails (cp, mv etc)"
default n
help
- Enable support for network names in /etc/networks. This is
- a rarely used feature which allows you to use names
- instead of IP/mask pairs in route command.
+ Error messages with this feature enabled:
+
+ $ cp file /does_not_exist/file
+ cp: cannot create '/does_not_exist/file': Path does not exist
+ $ cp file /vmlinuz/file
+ cp: cannot stat '/vmlinuz/file': Path has non-directory component
+
+ If this feature is not enabled, they will be, respectively:
+
+ cp: cannot create '/does_not_exist/file': No such file or directory
+ cp: cannot stat '/vmlinuz/file': Not a directory
+
+ This will cost you ~60 bytes.
+
+config BUSYBOX_FEATURE_USE_SENDFILE
+ bool "Use sendfile system call"
+ default y
+ help
+ When enabled, busybox will use the kernel sendfile() function
+ instead of read/write loops to copy data between file descriptors
+ (for example, cp command does this a lot).
+ If sendfile() doesn't work, copying code falls back to read/write
+ loop. sendfile() was originally implemented for faster I/O
+ from files to sockets, but since Linux 2.6.33 it was extended
+ to work for many more file types.
+
+config BUSYBOX_FEATURE_COPYBUF_KB
+ int "Copy buffer size, in kilobytes"
+ range 1 1024
+ default 4
+ help
+ Size of buffer used by cp, mv, install, wget etc.
+ Buffers which are 4 kb or less will be allocated on stack.
+ Bigger buffers will be allocated with mmap, with fallback to 4 kb
+ stack buffer if mmap fails.
+
+config BUSYBOX_MONOTONIC_SYSCALL
+ bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
+ default y
+ help
+ Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
+ time intervals (time, ping, traceroute etc need this).
+ Probably requires Linux 2.6+. If not selected, gettimeofday
+ will be used instead (which gives wrong results if date/time
+ is reset).
-config BUSYBOX_FEATURE_USE_TERMIOS
- bool "Use termios to manipulate the screen"
+config BUSYBOX_IOCTL_HEX2STR_ERROR
+ bool "Use ioctl names rather than hex values in error messages"
default y
- depends on BUSYBOX_MORE || BUSYBOX_TOP || BUSYBOX_POWERTOP
help
- This option allows utilities such as 'more' and 'top' to determine
- the size of the screen. If you leave this disabled, your utilities
- that display things on the screen will be especially primitive and
- will be unable to determine the current screen size, and will be
- unable to move the cursor.
+ Use ioctl names rather than hex values in error messages
+ (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
+ saves about 1400 bytes.
config BUSYBOX_FEATURE_EDITING
bool "Command line editing"
default y
help
- Enable line editing (mainly for shell command line).
+ Enable line editing (mainly for shell command line).
config BUSYBOX_FEATURE_EDITING_MAX_LEN
int "Maximum length of input"
@@ -115,17 +223,17 @@ config BUSYBOX_FEATURE_EDITING_MAX_LEN
default 1024
depends on BUSYBOX_FEATURE_EDITING
help
- Line editing code uses on-stack buffers for storage.
- You may want to decrease this parameter if your target machine
- benefits from smaller stack usage.
+ Line editing code uses on-stack buffers for storage.
+ You may want to decrease this parameter if your target machine
+ benefits from smaller stack usage.
config BUSYBOX_FEATURE_EDITING_VI
bool "vi-style line editing commands"
default n
depends on BUSYBOX_FEATURE_EDITING
help
- Enable vi-style line editing. In shells, this mode can be
- turned on and off with "set -o vi" and "set +o vi".
+ Enable vi-style line editing. In shells, this mode can be
+ turned on and off with "set -o vi" and "set +o vi".
config BUSYBOX_FEATURE_EDITING_HISTORY
int "History size"
@@ -134,141 +242,208 @@ config BUSYBOX_FEATURE_EDITING_HISTORY
default 255
depends on BUSYBOX_FEATURE_EDITING
help
- Specify command history size (0 - disable).
+ Specify command history size (0 - disable).
config BUSYBOX_FEATURE_EDITING_SAVEHISTORY
bool "History saving"
default y
depends on BUSYBOX_FEATURE_EDITING
help
- Enable history saving in shells.
+ Enable history saving in shells.
config BUSYBOX_FEATURE_EDITING_SAVE_ON_EXIT
bool "Save history on shell exit, not after every command"
default n
depends on BUSYBOX_FEATURE_EDITING_SAVEHISTORY
help
- Save history on shell exit, not after every command.
+ Save history on shell exit, not after every command.
config BUSYBOX_FEATURE_REVERSE_SEARCH
bool "Reverse history search"
default y
- depends on BUSYBOX_FEATURE_EDITING_SAVEHISTORY
+ depends on BUSYBOX_FEATURE_EDITING
help
- Enable readline-like Ctrl-R combination for reverse history search.
- Increases code by about 0.5k.
+ Enable readline-like Ctrl-R combination for reverse history search.
+ Increases code by about 0.5k.
config BUSYBOX_FEATURE_TAB_COMPLETION
bool "Tab completion"
default y
depends on BUSYBOX_FEATURE_EDITING
- help
- Enable tab completion.
config BUSYBOX_FEATURE_USERNAME_COMPLETION
bool "Username completion"
- default n
+ default y
depends on BUSYBOX_FEATURE_TAB_COMPLETION
- help
- Enable username completion.
config BUSYBOX_FEATURE_EDITING_FANCY_PROMPT
bool "Fancy shell prompts"
default y
depends on BUSYBOX_FEATURE_EDITING
help
- Setting this option allows for prompts to use things like \w and
- \$ and escape codes.
+ Setting this option allows for prompts to use things like \w and
+ \$ and escape codes.
+
+config BUSYBOX_FEATURE_EDITING_WINCH
+ bool "Enable automatic tracking of window size changes"
+ default y
+ depends on BUSYBOX_FEATURE_EDITING
config BUSYBOX_FEATURE_EDITING_ASK_TERMINAL
bool "Query cursor position from terminal"
default n
depends on BUSYBOX_FEATURE_EDITING
help
- Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
- current cursor position. This information is used to make line
- editing more robust in some cases.
- If you are not sure whether your terminals respond to this code
- correctly, or want to save on code size (about 400 bytes),
- then do not turn this option on.
+ Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
+ current cursor position. This information is used to make line
+ editing more robust in some cases.
+ If you are not sure whether your terminals respond to this code
+ correctly, or want to save on code size (about 400 bytes),
+ then do not turn this option on.
+
+config BUSYBOX_LOCALE_SUPPORT
+ bool "Enable locale support (system needs locale for this to work)"
+ default n
+ help
+ Enable this if your system has locale support and you would like
+ busybox to support locale settings.
-config BUSYBOX_FEATURE_NON_POSIX_CP
- bool "Non-POSIX, but safer, copying to special nodes"
+config BUSYBOX_UNICODE_SUPPORT
+ bool "Support Unicode"
default y
help
- With this option, "cp file symlink" will delete symlink
- and create a regular file. This does not conform to POSIX,
- but prevents a symlink attack.
- Similarly, "cp file device" will not send file's data
- to the device. (To do that, use "cat file >device")
+ This makes various applets aware that one byte is not
+ one character on screen.
-config BUSYBOX_FEATURE_VERBOSE_CP_MESSAGE
- bool "Give more precise messages when copy fails (cp, mv etc)"
- default n
- help
- Error messages with this feature enabled:
- $ cp file /does_not_exist/file
- cp: cannot create '/does_not_exist/file': Path does not exist
- $ cp file /vmlinuz/file
- cp: cannot stat '/vmlinuz/file': Path has non-directory component
- If this feature is not enabled, they will be, respectively:
- cp: cannot create '/does_not_exist/file': No such file or directory
- cp: cannot stat '/vmlinuz/file': Not a directory
- This will cost you ~60 bytes.
+ Busybox aims to eventually work correctly with Unicode displays.
+ Any older encodings are not guaranteed to work.
+ Probably by the time when busybox will be fully Unicode-clean,
+ other encodings will be mainly of historic interest.
-config BUSYBOX_FEATURE_COPYBUF_KB
- int "Copy buffer size, in kilobytes"
- range 1 1024
- default 4
+config BUSYBOX_UNICODE_USING_LOCALE
+ bool "Use libc routines for Unicode (else uses internal ones)"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT && BUSYBOX_LOCALE_SUPPORT
help
- Size of buffer used by cp, mv, install, wget etc.
- Buffers which are 4 kb or less will be allocated on stack.
- Bigger buffers will be allocated with mmap, with fallback to 4 kb
- stack buffer if mmap fails.
+ With this option on, Unicode support is implemented using libc
+ routines. Otherwise, internal implementation is used.
+ Internal implementation is smaller.
-config BUSYBOX_FEATURE_SKIP_ROOTFS
- bool "Skip rootfs in mount table"
- default y
+config BUSYBOX_FEATURE_CHECK_UNICODE_IN_ENV
+ bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
help
- Ignore rootfs entry in mount table.
+ With this option on, Unicode support is activated
+ only if locale-related variables have the value of the form
+ "xxxx.utf8"
- In Linux, kernel has a special filesystem, rootfs, which is initially
- mounted on /. It contains initramfs data, if kernel is configured
- to have one. Usually, another file system is mounted over / early
- in boot process, and therefore most tools which manipulate
- mount table, such as df, will skip rootfs entry.
+ Otherwise, Unicode support will be always enabled and active.
- However, some systems do not mount anything on /.
- If you need to configure busybox for one of these systems,
- you may find it useful to turn this option off to make df show
- initramfs statistics.
-
- Otherwise, choose Y.
+config BUSYBOX_SUBST_WCHAR
+ int "Character code to substitute unprintable characters with"
+ depends on BUSYBOX_UNICODE_SUPPORT
+ default 63
+ help
+ Typical values are 63 for '?' (works with any output device),
+ 30 for ASCII substitute control code,
+ 65533 (0xfffd) for Unicode replacement character.
+
+config BUSYBOX_LAST_SUPPORTED_WCHAR
+ int "Range of supported Unicode characters"
+ depends on BUSYBOX_UNICODE_SUPPORT
+ default 767
+ help
+ Any character with Unicode value bigger than this is assumed
+ to be non-printable on output device. Many applets replace
+ such characters with substitution character.
+
+ The idea is that many valid printable Unicode chars
+ nevertheless are not displayed correctly. Think about
+ combining charachers, double-wide hieroglyphs, obscure
+ characters in dozens of ancient scripts...
+ Many terminals, terminal emulators, xterms etc will fail
+ to handle them correctly. Choose the smallest value
+ which suits your needs.
+
+ Typical values are:
+ 126 - ASCII only
+ 767 (0x2ff) - there are no combining chars in [0..767] range
+ (the range includes Latin 1, Latin Ext. A and B),
+ code is ~700 bytes smaller for this case.
+ 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
+ code is ~300 bytes smaller for this case.
+ 12799 (0x31ff) - nearly all non-ideographic characters are
+ available in [0..12799] range, including
+ East Asian scripts like katakana, hiragana, hangul,
+ bopomofo...
+ 0 - off, any valid printable Unicode character will be printed.
+
+config BUSYBOX_UNICODE_COMBINING_WCHARS
+ bool "Allow zero-width Unicode characters on output"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT
+ help
+ With this option off, any Unicode char with width of 0
+ is substituted on output.
-config BUSYBOX_MONOTONIC_SYSCALL
- bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
- default y
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_UNICODE_WIDE_WCHARS
+ bool "Allow wide Unicode characters on output"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT
help
- Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
- time intervals (time, ping, traceroute etc need this).
- Probably requires Linux 2.6+. If not selected, gettimeofday
- will be used instead (which gives wrong results if date/time
- is reset).
+ With this option off, any Unicode char with width > 1
+ is substituted on output.
-config BUSYBOX_IOCTL_HEX2STR_ERROR
- bool "Use ioctl names rather than hex values in error messages"
- default y
+config BUSYBOX_UNICODE_BIDI_SUPPORT
+ bool "Bidirectional character-aware line input"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT && !BUSYBOX_UNICODE_USING_LOCALE
help
- Use ioctl names rather than hex values in error messages
- (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
- saves about 1400 bytes.
+ With this option on, right-to-left Unicode characters
+ are treated differently on input (e.g. cursor movement).
-config BUSYBOX_FEATURE_HWIB
- bool "Support infiniband HW"
+config BUSYBOX_UNICODE_NEUTRAL_TABLE
+ bool "In bidi input, support non-ASCII neutral chars too"
default n
+ depends on BUSYBOX_UNICODE_BIDI_SUPPORT
help
- Support for printing infiniband addresses in
- network applets.
+ In most cases it's enough to treat only ASCII non-letters
+ (i.e. punctuation, numbers and space) as characters
+ with neutral directionality.
+ With this option on, more extensive (and bigger) table
+ of neutral chars will be used.
+
+config BUSYBOX_UNICODE_PRESERVE_BROKEN
+ bool "Make it possible to enter sequences of chars which are not Unicode"
+ default n
+ depends on BUSYBOX_UNICODE_SUPPORT
+ help
+ With this option on, on line-editing input (such as used by shells)
+ invalid UTF-8 bytes are not substituted with the selected
+ substitution character.
+ For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
+ at shell prompt will list file named 0xff (single char name
+ with char value 255), not file named '?'.
+
+choice
+ prompt "Use LOOP_CONFIGURE for losetup and loop mounts"
+ default BUSYBOX_TRY_LOOP_CONFIGURE
+ help
+ LOOP_CONFIGURE is added to Linux 5.8
+ https://lwn.net/Articles/820408/
+ This allows userspace to completely setup a loop device with a single
+ ioctl, removing the in-between state where the device can be partially
+ configured - eg the loop device has a backing file associated with it,
+ but is reading from the wrong offset.
+
+config BUSYBOX_LOOP_CONFIGURE
+ bool "use LOOP_CONFIGURE, needs kernel >= 5.8"
+
+config BUSYBOX_NO_LOOP_CONFIGURE
+ bool "use LOOP_SET_FD + LOOP_SET_STATUS"
+
+config BUSYBOX_TRY_LOOP_CONFIGURE
+ bool "try LOOP_CONFIGURE, fall back to LOOP_SET_FD + LOOP_SET_STATUS"
-endmenu
+endchoice
diff --git a/package/busybox/config/loginutils/Config.in b/package/busybox/config/loginutils/Config.in
index 3e435a25c..5f12bbbee 100644
--- a/package/busybox/config/loginutils/Config.in
+++ b/package/busybox/config/loginutils/Config.in
@@ -1,358 +1,330 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Login/Password Management Utilities"
-config BUSYBOX_ADD_SHELL
- bool "add-shell"
- default y if DESKTOP
- help
- Add shells to /etc/shells.
-
-config BUSYBOX_REMOVE_SHELL
- bool "remove-shell"
- default y if DESKTOP
- help
- Remove shells from /etc/shells.
-
config BUSYBOX_FEATURE_SHADOWPASSWDS
- bool "Support for shadow passwords"
+ bool "Support shadow passwords"
default y
help
- Build support for shadow password in /etc/shadow. This file is only
- readable by root and thus the encrypted passwords are no longer
- publicly readable.
+ Build support for shadow password in /etc/shadow. This file is only
+ readable by root and thus the encrypted passwords are no longer
+ publicly readable.
config BUSYBOX_USE_BB_PWD_GRP
bool "Use internal password and group functions rather than system functions"
- default n
+ default y
help
- If you leave this disabled, busybox will use the system's password
- and group functions. And if you are using the GNU C library
- (glibc), you will then need to install the /etc/nsswitch.conf
- configuration file and the required /lib/libnss_* libraries in
- order for the password and group functions to work. This generally
- makes your embedded system quite a bit larger.
+ If you leave this disabled, busybox will use the system's password
+ and group functions. And if you are using the GNU C library
+ (glibc), you will then need to install the /etc/nsswitch.conf
+ configuration file and the required /lib/libnss_* libraries in
+ order for the password and group functions to work. This generally
+ makes your embedded system quite a bit larger.
- Enabling this option will cause busybox to directly access the
- system's /etc/password, /etc/group files (and your system will be
- smaller, and I will get fewer emails asking about how glibc NSS
- works). When this option is enabled, you will not be able to use
- PAM to access remote LDAP password servers and whatnot. And if you
- want hostname resolution to work with glibc, you still need the
- /lib/libnss_* libraries.
+ Enabling this option will cause busybox to directly access the
+ system's /etc/password, /etc/group files (and your system will be
+ smaller, and I will get fewer emails asking about how glibc NSS
+ works). When this option is enabled, you will not be able to use
+ PAM to access remote LDAP password servers and whatnot. And if you
+ want hostname resolution to work with glibc, you still need the
+ /lib/libnss_* libraries.
- If you need to use glibc's nsswitch.conf mechanism
- (e.g. if user/group database is NOT stored in /etc/passwd etc),
- you must NOT use this option.
+ If you need to use glibc's nsswitch.conf mechanism
+ (e.g. if user/group database is NOT stored in /etc/passwd etc),
+ you must NOT use this option.
- If you enable this option, it will add about 1.5k.
+ If you enable this option, it will add about 1.5k.
config BUSYBOX_USE_BB_SHADOW
bool "Use internal shadow password functions"
- default n
+ default y
depends on BUSYBOX_USE_BB_PWD_GRP && BUSYBOX_FEATURE_SHADOWPASSWDS
help
- If you leave this disabled, busybox will use the system's shadow
- password handling functions. And if you are using the GNU C library
- (glibc), you will then need to install the /etc/nsswitch.conf
- configuration file and the required /lib/libnss_* libraries in
- order for the shadow password functions to work. This generally
- makes your embedded system quite a bit larger.
+ If you leave this disabled, busybox will use the system's shadow
+ password handling functions. And if you are using the GNU C library
+ (glibc), you will then need to install the /etc/nsswitch.conf
+ configuration file and the required /lib/libnss_* libraries in
+ order for the shadow password functions to work. This generally
+ makes your embedded system quite a bit larger.
- Enabling this option will cause busybox to directly access the
- system's /etc/shadow file when handling shadow passwords. This
- makes your system smaller (and I will get fewer emails asking about
- how glibc NSS works). When this option is enabled, you will not be
- able to use PAM to access shadow passwords from remote LDAP
- password servers and whatnot.
+ Enabling this option will cause busybox to directly access the
+ system's /etc/shadow file when handling shadow passwords. This
+ makes your system smaller (and I will get fewer emails asking about
+ how glibc NSS works). When this option is enabled, you will not be
+ able to use PAM to access shadow passwords from remote LDAP
+ password servers and whatnot.
config BUSYBOX_USE_BB_CRYPT
bool "Use internal crypt functions"
- default n
+ default y
help
- Busybox has internal DES and MD5 crypt functions.
- They produce results which are identical to corresponding
- standard C library functions.
+ Busybox has internal DES and MD5 crypt functions.
+ They produce results which are identical to corresponding
+ standard C library functions.
- If you leave this disabled, busybox will use the system's
- crypt functions. Most C libraries use large (~70k)
- static buffers there, and also combine them with more general
- DES encryption/decryption.
+ If you leave this disabled, busybox will use the system's
+ crypt functions. Most C libraries use large (~70k)
+ static buffers there, and also combine them with more general
+ DES encryption/decryption.
- For busybox, having large static buffers is undesirable,
- especially on NOMMU machines. Busybox also doesn't need
- DES encryption/decryption and can do with smaller code.
+ For busybox, having large static buffers is undesirable,
+ especially on NOMMU machines. Busybox also doesn't need
+ DES encryption/decryption and can do with smaller code.
- If you enable this option, it will add about 4.8k of code
- if you are building dynamically linked executable.
- In static build, it makes code _smaller_ by about 1.2k,
- and likely many kilobytes less of bss.
+ If you enable this option, it will add about 4.8k of code
+ if you are building dynamically linked executable.
+ In static build, it makes code _smaller_ by about 1.2k,
+ and likely many kilobytes less of bss.
config BUSYBOX_USE_BB_CRYPT_SHA
bool "Enable SHA256/512 crypt functions"
- default n
+ default y
depends on BUSYBOX_USE_BB_CRYPT
help
- Enable this if you have passwords starting with "$5$" or "$6$"
- in your /etc/passwd or /etc/shadow files. These passwords
- are hashed using SHA256 and SHA512 algorithms. Support for them
- was added to glibc in 2008.
- With this option off, login will fail password check for any
- user which has password encrypted with these algorithms.
+ Enable this if you have passwords starting with "$5$" or "$6$"
+ in your /etc/passwd or /etc/shadow files. These passwords
+ are hashed using SHA256 and SHA512 algorithms. Support for them
+ was added to glibc in 2008.
+ With this option off, login will fail password check for any
+ user which has password encrypted with these algorithms.
-config BUSYBOX_ADDUSER
- bool "adduser"
- default n
+config BUSYBOX_ADD_SHELL
+ bool "add-shell (3.1 kb)"
+ default y if BUSYBOX_DESKTOP
help
- Utility for creating a new user account.
+ Add shells to /etc/shells.
-config BUSYBOX_FEATURE_ADDUSER_LONG_OPTIONS
- bool "Enable long options"
- default n
- depends on BUSYBOX_ADDUSER && BUSYBOX_LONG_OPTS
+config BUSYBOX_REMOVE_SHELL
+ bool "remove-shell (3 kb)"
+ default y if BUSYBOX_DESKTOP
+ help
+ Remove shells from /etc/shells.
+config BUSYBOX_ADDGROUP
+ bool "addgroup (8.6 kb)"
+ default y
+ select BUSYBOX_LONG_OPTS
help
- Support long options for the adduser applet.
+ Utility for creating a new group account.
+
+config BUSYBOX_FEATURE_ADDUSER_TO_GROUP
+ bool "Support adding users to groups"
+ default y
+ depends on BUSYBOX_ADDGROUP
+ help
+ If called with two non-option arguments,
+ addgroup will add an existing user to an
+ existing group.
+config BUSYBOX_ADDUSER
+ bool "adduser (15 kb)"
+ default y
+ select BUSYBOX_LONG_OPTS
+ help
+ Utility for creating a new user account.
config BUSYBOX_FEATURE_CHECK_NAMES
bool "Enable sanity check on user/group names in adduser and addgroup"
default n
depends on BUSYBOX_ADDUSER || BUSYBOX_ADDGROUP
help
- Enable sanity check on user and group names in adduser and addgroup.
- To avoid problems, the user or group name should consist only of
- letters, digits, underscores, periods, at signs and dashes,
- and not start with a dash (as defined by IEEE Std 1003.1-2001).
- For compatibility with Samba machine accounts "$" is also supported
- at the end of the user or group name.
+ Enable sanity check on user and group names in adduser and addgroup.
+ To avoid problems, the user or group name should consist only of
+ letters, digits, underscores, periods, at signs and dashes,
+ and not start with a dash (as defined by IEEE Std 1003.1-2001).
+ For compatibility with Samba machine accounts "$" is also supported
+ at the end of the user or group name.
config BUSYBOX_LAST_ID
int "Last valid uid or gid for adduser and addgroup"
depends on BUSYBOX_ADDUSER || BUSYBOX_ADDGROUP
default 60000
help
- Last valid uid or gid for adduser and addgroup
+ Last valid uid or gid for adduser and addgroup
config BUSYBOX_FIRST_SYSTEM_ID
int "First valid system uid or gid for adduser and addgroup"
depends on BUSYBOX_ADDUSER || BUSYBOX_ADDGROUP
- range 0 64900
+ range 0 BUSYBOX_LAST_ID
default 100
help
- First valid system uid or gid for adduser and addgroup
+ First valid system uid or gid for adduser and addgroup
config BUSYBOX_LAST_SYSTEM_ID
int "Last valid system uid or gid for adduser and addgroup"
depends on BUSYBOX_ADDUSER || BUSYBOX_ADDGROUP
- range 0 64900
+ range BUSYBOX_FIRST_SYSTEM_ID BUSYBOX_LAST_ID
default 999
help
- Last valid system uid or gid for adduser and addgroup
-
-config BUSYBOX_ADDGROUP
- bool "addgroup"
- default n
+ Last valid system uid or gid for adduser and addgroup
+config BUSYBOX_CHPASSWD
+ bool "chpasswd (18 kb)"
+ default y
help
- Utility for creating a new group account.
+ Reads a file of user name and password pairs from standard input
+ and uses this information to update a group of existing users.
-config BUSYBOX_FEATURE_ADDGROUP_LONG_OPTIONS
- bool "Enable long options"
- default n
- depends on BUSYBOX_ADDGROUP && BUSYBOX_LONG_OPTS
+config BUSYBOX_FEATURE_DEFAULT_PASSWD_ALGO
+ string "Default encryption method (passwd -a, cryptpw -m, chpasswd -c ALG)"
+ default "des"
+ depends on BUSYBOX_PASSWD || BUSYBOX_CRYPTPW || BUSYBOX_CHPASSWD
help
- Support long options for the addgroup applet.
-
-config BUSYBOX_FEATURE_ADDUSER_TO_GROUP
- bool "Support for adding users to groups"
- default n
- depends on BUSYBOX_ADDGROUP
+ Possible choices are "d[es]", "m[d5]", "s[ha256]" or "sha512".
+config BUSYBOX_CRYPTPW
+ bool "cryptpw (14 kb)"
+ default y
help
- If called with two non-option arguments,
- addgroup will add an existing user to an
- existing group.
+ Encrypts the given password with the crypt(3) libc function
+ using the given salt.
+config BUSYBOX_MKPASSWD
+ bool "mkpasswd (15 kb)"
+ default y
+ help
+ Encrypts the given password with the crypt(3) libc function
+ using the given salt. Debian has this utility under mkpasswd
+ name. Busybox provides mkpasswd as an alias for cryptpw.
config BUSYBOX_DELUSER
- bool "deluser"
- default n
+ bool "deluser (9.1 kb)"
+ default y
help
- Utility for deleting a user account.
+ Utility for deleting a user account.
config BUSYBOX_DELGROUP
- bool "delgroup"
- default n
+ bool "delgroup (6.4 kb)"
+ default y
help
- Utility for deleting a group account.
+ Utility for deleting a group account.
config BUSYBOX_FEATURE_DEL_USER_FROM_GROUP
- bool "Support for removing users from groups"
- default n
+ bool "Support removing users from groups"
+ default y
depends on BUSYBOX_DELGROUP
help
- If called with two non-option arguments, deluser
- or delgroup will remove an user from a specified group.
-
+ If called with two non-option arguments, deluser
+ or delgroup will remove an user from a specified group.
config BUSYBOX_GETTY
- bool "getty"
+ bool "getty (10 kb)"
default y
select BUSYBOX_FEATURE_SYSLOG
help
- getty lets you log in on a tty. It is normally invoked by init.
+ getty lets you log in on a tty. It is normally invoked by init.
- Note that you can save a few bytes by disabling it and
- using login applet directly.
- If you need to reset tty attributes before calling login,
- this script approximates getty:
-
- exec </dev/$1 >/dev/$1 2>&1 || BUSYBOX_exit 1
- reset
- stty sane; stty ispeed 38400; stty ospeed 38400
- printf "%s login: " "`hostname`"
- read -r login
- exec /bin/login "$login"
+ Note that you can save a few bytes by disabling it and
+ using login applet directly.
+ If you need to reset tty attributes before calling login,
+ this script approximates getty:
+ exec </dev/$1 >/dev/$1 2>&1 || exit 1
+ reset
+ stty sane; stty ispeed 38400; stty ospeed 38400
+ printf "%s login: " "`hostname`"
+ read -r login
+ exec /bin/login "$login"
config BUSYBOX_LOGIN
- bool "login"
+ bool "login (24 kb)"
default y
select BUSYBOX_FEATURE_SYSLOG
help
- login is used when signing onto a system.
+ login is used when signing onto a system.
- Note that Busybox binary must be setuid root for this applet to
- work properly.
+ Note that busybox binary must be setuid root for this applet to
+ work properly.
config BUSYBOX_LOGIN_SESSION_AS_CHILD
bool "Run logged in session in a child process"
- default y if PAM
- depends on BUSYBOX_LOGIN
- help
- Run the logged in session in a child process. This allows
- login to clean up things such as utmp entries or PAM sessions
- when the login session is complete. If you use PAM, you
- almost always would want this to be set to Y, else PAM session
- will not be cleaned up.
-
-config BUSYBOX_PAM
- bool "Support for PAM (Pluggable Authentication Modules)"
- depends on !BUSYBOX_DISABLE_PAM
- default n
+ default y if BUSYBOX_PAM
depends on BUSYBOX_LOGIN
help
- Use PAM in login(1) instead of direct access to password database.
+ Run the logged in session in a child process. This allows
+ login to clean up things such as utmp entries or PAM sessions
+ when the login session is complete. If you use PAM, you
+ almost always would want this to be set to Y, else PAM session
+ will not be cleaned up.
config BUSYBOX_LOGIN_SCRIPTS
- bool "Support for login scripts"
+ bool "Support login scripts"
depends on BUSYBOX_LOGIN
- default n
+ default y
help
- Enable this if you want login to execute $LOGIN_PRE_SUID_SCRIPT
- just prior to switching from root to logged-in user.
+ Enable this if you want login to execute $LOGIN_PRE_SUID_SCRIPT
+ just prior to switching from root to logged-in user.
config BUSYBOX_FEATURE_NOLOGIN
- bool "Support for /etc/nologin"
- default n
+ bool "Support /etc/nologin"
+ default y
depends on BUSYBOX_LOGIN
help
- The file /etc/nologin is used by (some versions of) login(1).
- If it exists, non-root logins are prohibited.
+ The file /etc/nologin is used by (some versions of) login(1).
+ If it exists, non-root logins are prohibited.
config BUSYBOX_FEATURE_SECURETTY
- bool "Support for /etc/securetty"
- default n
+ bool "Support /etc/securetty"
+ default y
depends on BUSYBOX_LOGIN
help
- The file /etc/securetty is used by (some versions of) login(1).
- The file contains the device names of tty lines (one per line,
- without leading /dev/) on which root is allowed to login.
-
+ The file /etc/securetty is used by (some versions of) login(1).
+ The file contains the device names of tty lines (one per line,
+ without leading /dev/) on which root is allowed to login.
config BUSYBOX_PASSWD
- bool "passwd"
- default n
+ bool "passwd (21 kb)"
+ default y
select BUSYBOX_FEATURE_SYSLOG
help
- passwd changes passwords for user and group accounts. A normal user
- may only change the password for his/her own account, the super user
- may change the password for any account. The administrator of a group
- may change the password for the group.
+ passwd changes passwords for user and group accounts. A normal user
+ may only change the password for his/her own account, the super user
+ may change the password for any account. The administrator of a group
+ may change the password for the group.
- Note that Busybox binary must be setuid root for this applet to
- work properly.
+ Note that busybox binary must be setuid root for this applet to
+ work properly.
config BUSYBOX_FEATURE_PASSWD_WEAK_CHECK
bool "Check new passwords for weakness"
- default n
+ default y
depends on BUSYBOX_PASSWD
help
- With this option passwd will refuse new passwords which are "weak".
-
-config BUSYBOX_CRYPTPW
- bool "cryptpw"
- default n
- help
- Encrypts the given password with the crypt(3) libc function
- using the given salt. Debian has this utility under mkpasswd
- name. Busybox provides mkpasswd as an alias for cryptpw.
-
-config BUSYBOX_MKPASSWD
- bool "mkpasswd"
- default n
- help
- Encrypts the given password with the crypt(3) libc function
- using the given salt. Debian has this utility under mkpasswd
- name. Busybox provides mkpasswd as an alias for cryptpw.
-
-config BUSYBOX_CHPASSWD
- bool "chpasswd"
- default n
- help
- Reads a file of user name and password pairs from standard input
- and uses this information to update a group of existing users.
-
-config BUSYBOX_FEATURE_DEFAULT_PASSWD_ALGO
- string "Default password encryption method (passwd -a, cryptpw -m parameter)"
- default "des"
- depends on BUSYBOX_PASSWD || BUSYBOX_CRYPTPW
- help
- Possible choices are "d[es]", "m[d5]", "s[ha256]" or "sha512".
-
+ With this option passwd will refuse new passwords which are "weak".
config BUSYBOX_SU
- bool "su"
- default n
+ bool "su (19 kb)"
+ default y
select BUSYBOX_FEATURE_SYSLOG
help
- su is used to become another user during a login session.
- Invoked without a username, su defaults to becoming the super user.
-
- Note that Busybox binary must be setuid root for this applet to
- work properly.
+ su is used to become another user during a login session.
+ Invoked without a username, su defaults to becoming the super user.
+ Note that busybox binary must be setuid root for this applet to
+ work properly.
config BUSYBOX_FEATURE_SU_SYSLOG
- bool "Enable su to write to syslog"
+ bool "Log to syslog all attempts to use su"
default y
depends on BUSYBOX_SU
config BUSYBOX_FEATURE_SU_CHECKS_SHELLS
- bool "Enable su to check user's shell to be listed in /etc/shells"
- depends on BUSYBOX_SU
+ bool "If user's shell is not in /etc/shells, disallow -s PROG"
default y
+ depends on BUSYBOX_SU
-config BUSYBOX_SULOGIN
- bool "sulogin"
+config BUSYBOX_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY
+ bool "Allow blank passwords only on TTYs in /etc/securetty"
default n
+ depends on BUSYBOX_SU
+config BUSYBOX_SULOGIN
+ bool "sulogin (17 kb)"
+ default y
select BUSYBOX_FEATURE_SYSLOG
help
- sulogin is invoked when the system goes into single user
- mode (this is done through an entry in inittab).
-
+ sulogin is invoked when the system goes into single user
+ mode (this is done through an entry in inittab).
config BUSYBOX_VLOCK
- bool "vlock"
- default n
+ bool "vlock (17 kb)"
+ default y
help
- Build the "vlock" applet which allows you to lock (virtual) terminals.
+ Build the "vlock" applet which allows you to lock (virtual) terminals.
- Note that Busybox binary must be setuid root for this applet to
- work properly.
+ Note that busybox binary must be setuid root for this applet to
+ work properly.
endmenu
diff --git a/package/busybox/config/mailutils/Config.in b/package/busybox/config/mailutils/Config.in
index 263f80dd7..29890dcbd 100644
--- a/package/busybox/config/mailutils/Config.in
+++ b/package/busybox/config/mailutils/Config.in
@@ -1,55 +1,51 @@
# DO NOT EDIT. This file is generated from Config.src
menu "Mail Utilities"
-
-config BUSYBOX_MAKEMIME
- bool "makemime"
- default n
- help
- Create MIME-formatted messages.
-
config BUSYBOX_FEATURE_MIME_CHARSET
string "Default charset"
default "us-ascii"
depends on BUSYBOX_MAKEMIME || BUSYBOX_REFORMIME || BUSYBOX_SENDMAIL
help
- Default charset of the message.
+ Default charset of the message.
+config BUSYBOX_MAKEMIME
+ bool "makemime (5.4 kb)"
+ default y
+ help
+ Create MIME-formatted messages.
config BUSYBOX_POPMAILDIR
- bool "popmaildir"
- default n
+ bool "popmaildir (10 kb)"
+ default y
help
- Simple yet powerful POP3 mail popper. Delivers content
- of remote mailboxes to local Maildir.
+ Simple yet powerful POP3 mail popper. Delivers content
+ of remote mailboxes to local Maildir.
config BUSYBOX_FEATURE_POPMAILDIR_DELIVERY
bool "Allow message filters and custom delivery program"
default y
depends on BUSYBOX_POPMAILDIR
help
- Allow to use a custom program to filter the content
- of the message before actual delivery (-F "prog [args...]").
- Allow to use a custom program for message actual delivery
- (-M "prog [args...]").
-
+ Allow to use a custom program to filter the content
+ of the message before actual delivery (-F "prog [args...]").
+ Allow to use a custom program for message actual delivery
+ (-M "prog [args...]").
config BUSYBOX_REFORMIME
- bool "reformime"
- default n
+ bool "reformime (7.5 kb)"
+ default y
help
- Parse MIME-formatted messages.
+ Parse MIME-formatted messages.
config BUSYBOX_FEATURE_REFORMIME_COMPAT
bool "Accept and ignore options other than -x and -X"
default y
depends on BUSYBOX_REFORMIME
help
- Accept (for compatibility only) and ignore options
- other than -x and -X.
-
+ Accept (for compatibility only) and ignore options
+ other than -x and -X.
config BUSYBOX_SENDMAIL
- bool "sendmail"
- default n
+ bool "sendmail (14 kb)"
+ default y
help
- Barebones sendmail.
+ Barebones sendmail.
endmenu
diff --git a/package/busybox/config/miscutils/Config.in b/package/busybox/config/miscutils/Config.in
index 107a96664..82aeff339 100644
--- a/package/busybox/config/miscutils/Config.in
+++ b/package/busybox/config/miscutils/Config.in
@@ -1,247 +1,142 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Miscellaneous Utilities"
-config BUSYBOX_CONSPY
- bool "conspy"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- A text-mode VNC like program for Linux virtual terminals.
- example: conspy NUM shared access to console num
- or conspy -nd NUM screenshot of console num
- or conspy -cs NUM poor man's GNU screen like
-
-config BUSYBOX_I2CGET
- bool "i2cget"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Read from I2C/SMBus chip registers.
-
-config BUSYBOX_I2CSET
- bool "i2cset"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Set I2C registers.
-
-config BUSYBOX_I2CDUMP
- bool "i2cdump"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Examine I2C registers.
-
-config BUSYBOX_I2CDETECT
- bool "i2cdetect"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Detect I2C chips.
-
-config BUSYBOX_LESS
- bool "less"
- depends on !BUSYBOX_DISABLE_LESS
- default n
- help
- 'less' is a pager, meaning that it displays text files. It possesses
- a wide array of features, and is an improvement over 'more'.
-
-config BUSYBOX_FEATURE_LESS_MAXLINES
- int "Max number of input lines less will try to eat"
- default 9999999
- depends on BUSYBOX_LESS
-
-config BUSYBOX_FEATURE_LESS_BRACKETS
- bool "Enable bracket searching"
+config BUSYBOX_ADJTIMEX
+ bool "adjtimex (4.7 kb)"
default y
- depends on BUSYBOX_LESS
help
- This option adds the capability to search for matching left and right
- brackets, facilitating programming.
-
-config BUSYBOX_FEATURE_LESS_FLAGS
- bool "Enable -m/-M"
+ Adjtimex reads and optionally sets adjustment parameters for
+ the Linux clock adjustment algorithm.
+config BUSYBOX_ASCII
+ bool "ascii"
default y
- depends on BUSYBOX_LESS
help
- The -M/-m flag enables a more sophisticated status line.
+ Print ascii table.
-config BUSYBOX_FEATURE_LESS_TRUNCATE
- bool "Enable -S"
- default y
- depends on BUSYBOX_LESS
+config BUSYBOX_BBCONFIG
+ bool "bbconfig (9.7 kb)"
+ default n
help
- The -S flag causes long lines to be truncated rather than
- wrapped.
+ The bbconfig applet will print the config file with which
+ busybox was built.
-config BUSYBOX_FEATURE_LESS_MARKS
- bool "Enable marks"
+config BUSYBOX_FEATURE_COMPRESS_BBCONFIG
+ bool "Compress bbconfig data"
default y
- depends on BUSYBOX_LESS
+ depends on BUSYBOX_BBCONFIG
help
- Marks enable positions in a file to be stored for easy reference.
+ Store bbconfig data in compressed form, uncompress them on-the-fly
+ before output.
-config BUSYBOX_FEATURE_LESS_REGEXP
- bool "Enable regular expressions"
+ If you have a really tiny busybox with few applets enabled (and
+ bunzip2 isn't one of them), the overhead of the decompressor might
+ be noticeable. Also, if you run executables directly from ROM
+ and have very little memory, this might not be a win. Otherwise,
+ you probably want this.
+config BUSYBOX_BC
+ bool "bc (45 kb)"
default y
- depends on BUSYBOX_LESS
- help
- Enable regular expressions, allowing complex file searches.
+ select BUSYBOX_FEATURE_DC_BIG
+ help
+ bc is a command-line, arbitrary-precision calculator with a
+ Turing-complete language. See the GNU bc manual
+ (https://www.gnu.org/software/bc/manual/bc.html) and bc spec
+ (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html).
+
+ This bc has five differences to the GNU bc:
+ 1) The period (.) is a shortcut for "last", as in the BSD bc.
+ 2) Arrays are copied before being passed as arguments to
+ functions. This behavior is required by the bc spec.
+ 3) Arrays can be passed to the builtin "length" function to get
+ the number of elements in the array. This prints "1":
+ a[0] = 0; length(a[])
+ 4) The precedence of the boolean "not" operator (!) is equal to
+ that of the unary minus (-) negation operator. This still
+ allows POSIX-compliant scripts to work while somewhat
+ preserving expected behavior (versus C) and making parsing
+ easier.
+ 5) "read()" accepts expressions, not only numeric literals.
-config BUSYBOX_FEATURE_LESS_WINCH
- bool "Enable automatic resizing on window size changes"
+config BUSYBOX_DC
+ bool "dc (36 kb)"
default y
- depends on BUSYBOX_LESS
help
- Makes less track window size changes.
-
-config BUSYBOX_FEATURE_LESS_ASK_TERMINAL
- bool "Use 'tell me cursor position' ESC sequence to measure window"
+ dc is a reverse-polish notation command-line calculator which
+ supports unlimited precision arithmetic. See the FreeBSD man page
+ (https://www.unix.com/man-page/FreeBSD/1/dc/) and GNU dc manual
+ (https://www.gnu.org/software/bc/manual/dc-1.05/html_mono/dc.html).
+
+ This dc has a few differences from the two above:
+ 1) When printing a byte stream (command "P"), this dc follows what
+ the FreeBSD dc does.
+ 2) Implements the GNU extensions for divmod ("~") and
+ modular exponentiation ("|").
+ 3) Implements all FreeBSD extensions, except for "J" and "M".
+ 4) Like the FreeBSD dc, this dc supports extended registers.
+ However, they are implemented differently. When it encounters
+ whitespace where a register should be, it skips the whitespace.
+ If the character following is not a lowercase letter, an error
+ is issued. Otherwise, the register name is parsed by the
+ following regex: [a-z][a-z0-9_]*
+ This generally means that register names will be surrounded by
+ whitespace. Examples:
+ l idx s temp L index S temp2 < do_thing
+ Also note that, like the FreeBSD dc, extended registers are not
+ allowed unless the "-x" option is given.
+
+if BUSYBOX_BC || BUSYBOX_DC # for menuconfig indenting
+
+config BUSYBOX_FEATURE_DC_BIG
+ bool "Use bc code base for dc (larger, more features)"
default y
- depends on BUSYBOX_FEATURE_LESS_WINCH
- help
- Makes less track window size changes.
- If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
- this option makes less perform a last-ditch effort to find it:
- position cursor to 999,999 and ask terminal to report real
- cursor position using "ESC [ 6 n" escape sequence, then read stdin.
-
- This is not clean but helps a lot on serial lines and such.
-config BUSYBOX_FEATURE_LESS_DASHCMD
- bool "Enable flag changes ('-' command)"
+config BUSYBOX_FEATURE_DC_LIBM
+ bool "Enable power and exp functions (requires libm)"
default y
- depends on BUSYBOX_LESS
+ depends on BUSYBOX_DC && !BUSYBOX_BC && !BUSYBOX_FEATURE_DC_BIG
help
- This enables the ability to change command-line flags within
- less itself ('-' keyboard command).
+ Enable power and exp functions.
+ NOTE: This will require libm to be present for linking.
-config BUSYBOX_FEATURE_LESS_LINENUMS
- bool "Enable dynamic switching of line numbers"
+config BUSYBOX_FEATURE_BC_INTERACTIVE
+ bool "Interactive mode (+4kb)"
default y
- depends on BUSYBOX_FEATURE_LESS_DASHCMD
+ depends on BUSYBOX_BC || (BUSYBOX_DC && BUSYBOX_FEATURE_DC_BIG)
help
- Enables "-N" command.
+ Enable interactive mode: when started on a tty,
+ ^C interrupts execution and returns to command line,
+ errors also return to command line instead of exiting,
+ line editing with history is available.
-config BUSYBOX_NANDWRITE
- bool "nandwrite"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Write to the specified MTD device, with bad blocks awareness
-
-config BUSYBOX_NANDDUMP
- bool "nanddump"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Dump the content of raw NAND chip
-
-config BUSYBOX_SETSERIAL
- bool "setserial"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Retrieve or set Linux serial port.
+ With this option off, input can still be taken from tty,
+ but all errors are fatal, ^C is fatal,
+ tty is treated exactly the same as any other
+ standard input (IOW: no line editing).
-config BUSYBOX_UBIATTACH
- bool "ubiattach"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Attach MTD device to an UBI device.
-
-config BUSYBOX_UBIDETACH
- bool "ubidetach"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Detach MTD device from an UBI device.
-
-config BUSYBOX_UBIMKVOL
- bool "ubimkvol"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Create a UBI volume.
-
-config BUSYBOX_UBIRMVOL
- bool "ubirmvol"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Delete a UBI volume.
-
-config BUSYBOX_UBIRSVOL
- bool "ubirsvol"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Resize a UBI volume.
-
-config BUSYBOX_UBIUPDATEVOL
- bool "ubiupdatevol"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Update a UBI volume.
-
-config BUSYBOX_UBIRENAME
- bool "ubirename"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Utility to rename UBI volumes
-
-config BUSYBOX_ADJTIMEX
- bool "adjtimex"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Adjtimex reads and optionally sets adjustment parameters for
- the Linux clock adjustment algorithm.
-
-config BUSYBOX_BBCONFIG
- bool "bbconfig"
- default n
- help
- The bbconfig applet will print the config file with which
- busybox was built.
-
-config BUSYBOX_FEATURE_COMPRESS_BBCONFIG
- bool "Compress bbconfig data"
+config BUSYBOX_FEATURE_BC_LONG_OPTIONS
+ bool "Enable bc/dc long options"
default y
- depends on BUSYBOX_BBCONFIG
- help
- Store bbconfig data in compressed form, uncompress them on-the-fly
- before output.
-
- If you have a really tiny busybox with few applets enabled (and
- bunzip2 isn't one of them), the overhead of the decompressor might
- be noticeable. Also, if you run executables directly from ROM
- and have very little memory, this might not be a win. Otherwise,
- you probably want this.
+ depends on BUSYBOX_BC || (BUSYBOX_DC && BUSYBOX_FEATURE_DC_BIG)
+endif
config BUSYBOX_BEEP
- bool "beep"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "beep (2.4 kb)"
+ default y
help
- The beep applets beeps in a given freq/Hz.
+ The beep applets beeps in a given freq/Hz.
config BUSYBOX_FEATURE_BEEP_FREQ
int "default frequency"
- range 0 2147483647
+ range 20 50000 # allowing 0 here breaks the build
default 4000
depends on BUSYBOX_BEEP
help
- Frequency for default beep.
+ Frequency for default beep.
config BUSYBOX_FEATURE_BEEP_LENGTH_MS
int "default length"
@@ -249,392 +144,466 @@ config BUSYBOX_FEATURE_BEEP_LENGTH_MS
default 30
depends on BUSYBOX_BEEP
help
- Length in ms for default beep.
-
+ Length in ms for default beep.
config BUSYBOX_CHAT
- bool "chat"
- default n
+ bool "chat (6.3 kb)"
+ default y
help
- Simple chat utility.
+ Simple chat utility.
config BUSYBOX_FEATURE_CHAT_NOFAIL
bool "Enable NOFAIL expect strings"
depends on BUSYBOX_CHAT
default y
help
- When enabled expect strings which are started with a dash trigger
- no-fail mode. That is when expectation is not met within timeout
- the script is not terminated but sends next SEND string and waits
- for next EXPECT string. This allows to compose far more flexible
- scripts.
+ When enabled expect strings which are started with a dash trigger
+ no-fail mode. That is when expectation is not met within timeout
+ the script is not terminated but sends next SEND string and waits
+ for next EXPECT string. This allows to compose far more flexible
+ scripts.
config BUSYBOX_FEATURE_CHAT_TTY_HIFI
bool "Force STDIN to be a TTY"
depends on BUSYBOX_CHAT
default n
help
- Original chat always treats STDIN as a TTY device and sets for it
- so-called raw mode. This option turns on such behaviour.
+ Original chat always treats STDIN as a TTY device and sets for it
+ so-called raw mode. This option turns on such behaviour.
config BUSYBOX_FEATURE_CHAT_IMPLICIT_CR
bool "Enable implicit Carriage Return"
depends on BUSYBOX_CHAT
default y
help
- When enabled make chat to terminate all SEND strings with a "\r"
- unless "\c" is met anywhere in the string.
+ When enabled make chat to terminate all SEND strings with a "\r"
+ unless "\c" is met anywhere in the string.
config BUSYBOX_FEATURE_CHAT_SWALLOW_OPTS
bool "Swallow options"
depends on BUSYBOX_CHAT
default y
help
- Busybox chat require no options. To make it not fail when used
- in place of original chat (which has a bunch of options) turn
- this on.
+ Busybox chat require no options. To make it not fail when used
+ in place of original chat (which has a bunch of options) turn
+ this on.
config BUSYBOX_FEATURE_CHAT_SEND_ESCAPES
bool "Support weird SEND escapes"
depends on BUSYBOX_CHAT
default y
help
- Original chat uses some escape sequences in SEND arguments which
- are not sent to device but rather performs special actions.
- E.g. "\K" means to send a break sequence to device.
- "\d" delays execution for a second, "\p" -- for a 1/100 of second.
- Before turning this option on think twice: do you really need them?
+ Original chat uses some escape sequences in SEND arguments which
+ are not sent to device but rather performs special actions.
+ E.g. "\K" means to send a break sequence to device.
+ "\d" delays execution for a second, "\p" -- for a 1/100 of second.
+ Before turning this option on think twice: do you really need them?
config BUSYBOX_FEATURE_CHAT_VAR_ABORT_LEN
bool "Support variable-length ABORT conditions"
depends on BUSYBOX_CHAT
default y
help
- Original chat uses fixed 50-bytes length ABORT conditions. Say N here.
+ Original chat uses fixed 50-bytes length ABORT conditions. Say N here.
config BUSYBOX_FEATURE_CHAT_CLR_ABORT
bool "Support revoking of ABORT conditions"
depends on BUSYBOX_CHAT
default y
help
- Support CLR_ABORT directive.
-
-config BUSYBOX_CHRT
- bool "chrt"
- default n
+ Support CLR_ABORT directive.
+config BUSYBOX_CONSPY
+ bool "conspy (10 kb)"
+ default y
help
- manipulate real-time attributes of a process.
- This requires sched_{g,s}etparam support in your libc.
-
+ A text-mode VNC like program for Linux virtual terminals.
+ example: conspy NUM shared access to console num
+ or conspy -nd NUM screenshot of console num
+ or conspy -cs NUM poor man's GNU screen like
config BUSYBOX_CROND
- bool "crond"
- default n
+ bool "crond (14 kb)"
+ default y
select BUSYBOX_FEATURE_SYSLOG
help
- Crond is a background daemon that parses individual crontab
- files and executes commands on behalf of the users in question.
- This is a port of dcron from slackware. It uses files of the
- format /var/spool/cron/crontabs/<username> files, for example:
- $ cat /var/spool/cron/crontabs/root
- # Run daily cron jobs at 4:40 every day:
- 40 4 * * * /etc/cron/daily > /dev/null 2>&1
+ Crond is a background daemon that parses individual crontab
+ files and executes commands on behalf of the users in question.
+ This is a port of dcron from slackware. It uses files of the
+ format /var/spool/cron/crontabs/<username> files, for example:
+ $ cat /var/spool/cron/crontabs/root
+ # Run daily cron jobs at 4:40 every day:
+ 40 4 * * * /etc/cron/daily > /dev/null 2>&1
config BUSYBOX_FEATURE_CROND_D
- bool "Support option -d to redirect output to stderr"
+ bool "Support -d (redirect output to stderr)"
depends on BUSYBOX_CROND
default y
help
- -d sets loglevel to 0 (most verbose) and directs all output to stderr.
+ -d N sets loglevel (0:most verbose) and directs all output to stderr.
config BUSYBOX_FEATURE_CROND_CALL_SENDMAIL
bool "Report command output via email (using sendmail)"
- default n
+ default y
depends on BUSYBOX_CROND
help
- Command output will be sent to corresponding user via email.
+ Command output will be sent to corresponding user via email.
+
+config BUSYBOX_FEATURE_CROND_SPECIAL_TIMES
+ bool "Support special times (@reboot, @daily, etc) in crontabs"
+ default y
+ depends on BUSYBOX_CROND
+ help
+ string meaning
+ ------ -------
+ @reboot Run once, at startup
+ @yearly Run once a year: "0 0 1 1 *"
+ @annually Same as @yearly: "0 0 1 1 *"
+ @monthly Run once a month: "0 0 1 * *"
+ @weekly Run once a week: "0 0 * * 0"
+ @daily Run once a day: "0 0 * * *"
+ @midnight Same as @daily: "0 0 * * *"
+ @hourly Run once an hour: "0 * * * *"
config BUSYBOX_FEATURE_CROND_DIR
string "crond spool directory"
default "/var/spool/cron"
depends on BUSYBOX_CROND || BUSYBOX_CRONTAB
help
- Location of crond spool.
-
+ Location of crond spool.
config BUSYBOX_CRONTAB
- bool "crontab"
- default n
- help
- Crontab manipulates the crontab for a particular user. Only
- the superuser may specify a different user and/or crontab directory.
- Note that Busybox binary must be setuid root for this applet to
- work properly.
-
-config BUSYBOX_DC
- bool "dc"
- default n
- help
- Dc is a reverse-polish desk calculator which supports unlimited
- precision arithmetic.
-
-config BUSYBOX_FEATURE_DC_LIBM
- bool "Enable power and exp functions (requires libm)"
- default n
- depends on BUSYBOX_DC
+ bool "crontab (10 kb)"
+ default y
help
- Enable power and exp functions.
- NOTE: This will require libm to be present for linking.
-
+ Crontab manipulates the crontab for a particular user. Only
+ the superuser may specify a different user and/or crontab directory.
+ Note that busybox binary must be setuid root for this applet to
+ work properly.
config BUSYBOX_DEVFSD
bool "devfsd (obsolete)"
default n
- select BUSYBOX_PLATFORM_LINUX
select BUSYBOX_FEATURE_SYSLOG
help
- This is deprecated and should NOT be used anymore.
- Use linux >= 2.6 (optionally with hotplug) and mdev instead!
- See docs/mdev.txt for detailed instructions on how to use mdev
- instead.
+ This is deprecated and should NOT be used anymore.
+ Use linux >= 2.6 (optionally with hotplug) and mdev instead!
+ See docs/mdev.txt for detailed instructions on how to use mdev
+ instead.
- Provides compatibility with old device names on a devfs systems.
- You should set it to true if you have devfs enabled.
- The following keywords in devsfd.conf are supported:
- "CLEAR_CONFIG", "INCLUDE", "OPTIONAL_INCLUDE", "RESTORE",
- "PERMISSIONS", "EXECUTE", "COPY", "IGNORE",
- "MKOLDCOMPAT", "MKNEWCOMPAT","RMOLDCOMPAT", "RMNEWCOMPAT".
+ Provides compatibility with old device names on a devfs systems.
+ You should set it to true if you have devfs enabled.
+ The following keywords in devsfd.conf are supported:
+ "CLEAR_CONFIG", "INCLUDE", "OPTIONAL_INCLUDE", "RESTORE",
+ "PERMISSIONS", "EXECUTE", "COPY", "IGNORE",
+ "MKOLDCOMPAT", "MKNEWCOMPAT","RMOLDCOMPAT", "RMNEWCOMPAT".
- But only if they are written UPPERCASE!!!!!!!!
+ But only if they are written UPPERCASE!!!!!!!!
config BUSYBOX_DEVFSD_MODLOAD
bool "Adds support for MODLOAD keyword in devsfd.conf"
- default n
+ default y
depends on BUSYBOX_DEVFSD
help
- This actually doesn't work with busybox modutils but needs
- the external modutils.
+ This actually doesn't work with busybox modutils but needs
+ the external modutils.
config BUSYBOX_DEVFSD_FG_NP
- bool "Enables the -fg and -np options"
- default n
+ bool "Enable the -fg and -np options"
+ default y
depends on BUSYBOX_DEVFSD
help
- -fg Run the daemon in the foreground.
- -np Exit after parsing the configuration file.
- Do not poll for events.
+ -fg Run the daemon in the foreground.
+ -np Exit after parsing config. Do not poll for events.
config BUSYBOX_DEVFSD_VERBOSE
bool "Increases logging (and size)"
- default n
+ default y
depends on BUSYBOX_DEVFSD
help
- Increases logging to stderr or syslog.
+ Increases logging to stderr or syslog.
config BUSYBOX_FEATURE_DEVFS
bool "Use devfs names for all devices (obsolete)"
default n
- select BUSYBOX_PLATFORM_LINUX
help
- This is obsolete and should NOT be used anymore.
- Use linux >= 2.6 (optionally with hotplug) and mdev instead!
-
- For legacy systems -- if there is no way around devfsd -- this
- tells busybox to look for names like /dev/loop/0 instead of
- /dev/loop0. If your /dev directory has normal names instead of
- devfs names, you don't want this.
+ This is obsolete and should NOT be used anymore.
+ Use linux >= 2.6 (optionally with hotplug) and mdev instead!
+ For legacy systems -- if there is no way around devfsd -- this
+ tells busybox to look for names like /dev/loop/0 instead of
+ /dev/loop0. If your /dev directory has normal names instead of
+ devfs names, you don't want this.
config BUSYBOX_DEVMEM
- bool "devmem"
- default n
- help
- devmem is a small program that reads and writes from physical
- memory using /dev/mem.
-
-config BUSYBOX_EJECT
- bool "eject"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Used to eject cdroms. (defaults to /dev/cdrom)
-
-config BUSYBOX_FEATURE_EJECT_SCSI
- bool "SCSI support"
- default n
- depends on BUSYBOX_EJECT
+ bool "devmem (2.5 kb)"
+ default y
help
- Add the -s option to eject, this allows to eject SCSI-Devices and
- usb-storage devices.
-
+ devmem is a small program that reads and writes from physical
+ memory using /dev/mem.
config BUSYBOX_FBSPLASH
- bool "fbsplash"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Shows splash image and progress bar on framebuffer device.
- Can be used during boot phase of an embedded device. ~2kb.
- Usage:
- - use kernel option 'vga=xxx' or otherwise enable fb device.
- - put somewhere fbsplash.cfg file and an image in .ppm format.
- - $ setsid fbsplash [params] &
+ bool "fbsplash (26 kb)"
+ default y
+ help
+ Shows splash image and progress bar on framebuffer device.
+ Can be used during boot phase of an embedded device.
+ Usage:
+ - use kernel option 'vga=xxx' or otherwise enable fb device.
+ - put somewhere fbsplash.cfg file and an image in .ppm format.
+ - $ setsid fbsplash [params] &
-c: hide cursor
-d /dev/fbN: framebuffer device (if not /dev/fb0)
-s path_to_image_file (can be "-" for stdin)
-i path_to_cfg_file (can be "-" for stdin)
-f path_to_fifo (can be "-" for stdin)
- - if you want to run it only in presence of kernel parameter:
- grep -q "fbsplash=on" </proc/cmdline && BUSYBOX_setsid fbsplash [params] &
- - commands for fifo:
+ - if you want to run it only in presence of kernel parameter:
+ grep -q "fbsplash=on" </proc/cmdline && setsid fbsplash [params] &
+ - commands for fifo:
"NN" (ASCII decimal number) - percentage to show on progress bar
"exit" - well you guessed it
-
-config BUSYBOX_FLASHCP
- bool "flashcp"
+config BUSYBOX_FLASH_ERASEALL
+ bool "flash_eraseall (5.9 kb)"
default n # doesn't build on Ubuntu 8.04
help
- The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
- This utility is used to copy images into a MTD device.
-
+ The flash_eraseall binary from mtd-utils as of git head c4c6a59eb.
+ This utility is used to erase the whole MTD device.
config BUSYBOX_FLASH_LOCK
- bool "flash_lock"
+ bool "flash_lock (2.1 kb)"
default n # doesn't build on Ubuntu 8.04
help
- The flash_lock binary from mtd-utils as of git head 5ec0c10d0. This
- utility locks part or all of the flash device.
+ The flash_lock binary from mtd-utils as of git head 5ec0c10d0. This
+ utility locks part or all of the flash device.
config BUSYBOX_FLASH_UNLOCK
- bool "flash_unlock"
+ bool "flash_unlock (1.3 kb)"
default n # doesn't build on Ubuntu 8.04
help
- The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This
- utility unlocks part or all of the flash device.
-
-config BUSYBOX_FLASH_ERASEALL
- bool "flash_eraseall"
+ The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This
+ utility unlocks part or all of the flash device.
+config BUSYBOX_FLASHCP
+ bool "flashcp (5.3 kb)"
default n # doesn't build on Ubuntu 8.04
help
- The flash_eraseall binary from mtd-utils as of git head c4c6a59eb.
- This utility is used to erase the whole MTD device.
-
-config BUSYBOX_IONICE
- bool "ionice"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Set/set program io scheduling class and priority
- Requires kernel >= 2.6.13
-
-config BUSYBOX_INOTIFYD
- bool "inotifyd"
- default n # doesn't build on Knoppix 5
- help
- Simple inotify daemon. Reports filesystem changes. Requires
- kernel >= 2.6.13
-
-config BUSYBOX_LAST
- bool "last"
- default n
- depends on BUSYBOX_FEATURE_WTMP
- help
- 'last' displays a list of the last users that logged into the system.
-
-choice
- prompt "Choose last implementation"
- depends on BUSYBOX_LAST
- default FEATURE_LAST_FANCY
-
-config BUSYBOX_FEATURE_LAST_SMALL
- bool "small"
- help
- This is a small version of last with just the basic set of
- features.
-
-config BUSYBOX_FEATURE_LAST_FANCY
- bool "huge"
- help
- 'last' displays detailed information about the last users that
- logged into the system (mimics sysvinit last). +900 bytes.
-endchoice
-
+ The flashcp binary, inspired by mtd-utils as of git head 5eceb74f7.
+ This utility is used to copy images into a MTD device.
config BUSYBOX_HDPARM
- bool "hdparm"
- default n
- depends on !BUSYBOX_DISABLE_HDPARM
- select BUSYBOX_PLATFORM_LINUX
+ bool "hdparm (25 kb)"
+ default y
help
- Get/Set hard drive parameters. Primarily intended for ATA
- drives. Adds about 13k (or around 30k if you enable the
- FEATURE_HDPARM_GET_IDENTITY option)....
+ Get/Set hard drive parameters. Primarily intended for ATA
+ drives.
config BUSYBOX_FEATURE_HDPARM_GET_IDENTITY
bool "Support obtaining detailed information directly from drives"
default y
depends on BUSYBOX_HDPARM
help
- Enables the -I and -i options to obtain detailed information
- directly from drives about their capabilities and supported ATA
- feature set. If no device name is specified, hdparm will read
- identify data from stdin. Enabling this option will add about 16k...
+ Enable the -I and -i options to obtain detailed information
+ directly from drives about their capabilities and supported ATA
+ feature set. If no device name is specified, hdparm will read
+ identify data from stdin. Enabling this option will add about 16k...
config BUSYBOX_FEATURE_HDPARM_HDIO_SCAN_HWIF
bool "Register an IDE interface (DANGEROUS)"
default y
depends on BUSYBOX_HDPARM
help
- Enables the 'hdparm -R' option to register an IDE interface.
- This is dangerous stuff, so you should probably say N.
+ Enable the 'hdparm -R' option to register an IDE interface.
+ This is dangerous stuff, so you should probably say N.
config BUSYBOX_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
bool "Un-register an IDE interface (DANGEROUS)"
default y
depends on BUSYBOX_HDPARM
help
- Enables the 'hdparm -U' option to un-register an IDE interface.
- This is dangerous stuff, so you should probably say N.
+ Enable the 'hdparm -U' option to un-register an IDE interface.
+ This is dangerous stuff, so you should probably say N.
config BUSYBOX_FEATURE_HDPARM_HDIO_DRIVE_RESET
bool "Perform device reset (DANGEROUS)"
default y
depends on BUSYBOX_HDPARM
help
- Enables the 'hdparm -w' option to perform a device reset.
- This is dangerous stuff, so you should probably say N.
+ Enable the 'hdparm -w' option to perform a device reset.
+ This is dangerous stuff, so you should probably say N.
config BUSYBOX_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
bool "Tristate device for hotswap (DANGEROUS)"
default y
depends on BUSYBOX_HDPARM
help
- Enables the 'hdparm -x' option to tristate device for hotswap,
- and the '-b' option to get/set bus state. This is dangerous
- stuff, so you should probably say N.
+ Enable the 'hdparm -x' option to tristate device for hotswap,
+ and the '-b' option to get/set bus state. This is dangerous
+ stuff, so you should probably say N.
config BUSYBOX_FEATURE_HDPARM_HDIO_GETSET_DMA
bool "Get/set using_dma flag"
default y
depends on BUSYBOX_HDPARM
help
- Enables the 'hdparm -d' option to get/set using_dma flag.
+ Enable the 'hdparm -d' option to get/set using_dma flag.
+config BUSYBOX_HEXEDIT
+ bool "hexedit (21 kb)"
+ default y
+ help
+ Edit file in hexadecimal.
+config BUSYBOX_I2CGET
+ bool "i2cget (5.5 kb)"
+ default y
+ help
+ Read from I2C/SMBus chip registers.
+
+config BUSYBOX_I2CSET
+ bool "i2cset (6.7 kb)"
+ default y
+ help
+ Set I2C registers.
+
+config BUSYBOX_I2CDUMP
+ bool "i2cdump (7.1 kb)"
+ default y
+ help
+ Examine I2C registers.
+
+config BUSYBOX_I2CDETECT
+ bool "i2cdetect (7.1 kb)"
+ default y
+ help
+ Detect I2C chips.
+
+config BUSYBOX_I2CTRANSFER
+ bool "i2ctransfer (4.0 kb)"
+ default y
+ help
+ Send user-defined I2C messages in one transfer.
+
+config BUSYBOX_INOTIFYD
+ bool "inotifyd (3.6 kb)"
+ default n # doesn't build on Knoppix 5
+ help
+ Simple inotify daemon. Reports filesystem changes. Requires
+ kernel >= 2.6.13
+config BUSYBOX_LESS
+ bool "less (16 kb)"
+ default y
+ help
+ 'less' is a pager, meaning that it displays text files. It possesses
+ a wide array of features, and is an improvement over 'more'.
+
+config BUSYBOX_FEATURE_LESS_MAXLINES
+ int "Max number of input lines less will try to eat"
+ default 9999999
+ depends on BUSYBOX_LESS
+
+config BUSYBOX_FEATURE_LESS_BRACKETS
+ bool "Enable bracket searching"
+ default y
+ depends on BUSYBOX_LESS
+ help
+ This option adds the capability to search for matching left and right
+ brackets, facilitating programming.
+
+config BUSYBOX_FEATURE_LESS_FLAGS
+ bool "Enable -m/-M"
+ default y
+ depends on BUSYBOX_LESS
+ help
+ The -M/-m flag enables a more sophisticated status line.
+
+config BUSYBOX_FEATURE_LESS_TRUNCATE
+ bool "Enable -S"
+ default y
+ depends on BUSYBOX_LESS
+ help
+ The -S flag causes long lines to be truncated rather than
+ wrapped.
+
+config BUSYBOX_FEATURE_LESS_MARKS
+ bool "Enable marks"
+ default y
+ depends on BUSYBOX_LESS
+ help
+ Marks enable positions in a file to be stored for easy reference.
+
+config BUSYBOX_FEATURE_LESS_REGEXP
+ bool "Enable regular expressions"
+ default y
+ depends on BUSYBOX_LESS
+ help
+ Enable regular expressions, allowing complex file searches.
+
+config BUSYBOX_FEATURE_LESS_WINCH
+ bool "Enable automatic resizing on window size changes"
+ default y
+ depends on BUSYBOX_LESS
+ help
+ Makes less track window size changes.
+
+config BUSYBOX_FEATURE_LESS_ASK_TERMINAL
+ bool "Use 'tell me cursor position' ESC sequence to measure window"
+ default y
+ depends on BUSYBOX_FEATURE_LESS_WINCH
+ help
+ Makes less track window size changes.
+ If terminal size can't be retrieved and $LINES/$COLUMNS are not set,
+ this option makes less perform a last-ditch effort to find it:
+ position cursor to 999,999 and ask terminal to report real
+ cursor position using "ESC [ 6 n" escape sequence, then read stdin.
+ This is not clean but helps a lot on serial lines and such.
+
+config BUSYBOX_FEATURE_LESS_DASHCMD
+ bool "Enable flag changes ('-' command)"
+ default y
+ depends on BUSYBOX_LESS
+ help
+ This enables the ability to change command-line flags within
+ less itself ('-' keyboard command).
+
+config BUSYBOX_FEATURE_LESS_LINENUMS
+ bool "Enable -N (dynamic switching of line numbers)"
+ default y
+ depends on BUSYBOX_FEATURE_LESS_DASHCMD
+
+config BUSYBOX_FEATURE_LESS_RAW
+ bool "Enable -R ('raw control characters')"
+ default y
+ depends on BUSYBOX_FEATURE_LESS_DASHCMD
+ help
+ This is essential for less applet to work with tools that use colors
+ and paging, such as git, systemd tools or nmcli.
+
+config BUSYBOX_FEATURE_LESS_ENV
+ bool "Take options from $LESS environment variable"
+ default y
+ depends on BUSYBOX_FEATURE_LESS_DASHCMD
+ help
+ This is essential for less applet to work with tools that use colors
+ and paging, such as git, systemd tools or nmcli.
+config BUSYBOX_LSSCSI
+ bool "lsscsi (2.5 kb)"
+ default y
+ help
+ lsscsi is a utility for displaying information about SCSI buses in the
+ system and devices connected to them.
+ This version uses sysfs (/sys/bus/scsi/devices) only.
config BUSYBOX_MAKEDEVS
- bool "makedevs"
- default n
+ bool "makedevs (9.2 kb)"
+ default y
help
- 'makedevs' is a utility used to create a batch of devices with
- one command.
+ 'makedevs' is a utility used to create a batch of devices with
+ one command.
- There are two choices for command line behaviour, the interface
- as used by LEAF/Linux Router Project, or a device table file.
+ There are two choices for command line behaviour, the interface
+ as used by LEAF/Linux Router Project, or a device table file.
- 'leaf' is traditionally what busybox follows, it allows multiple
- devices of a particluar type to be created per command.
- e.g. /dev/hda[0-9]
- Device properties are passed as command line arguments.
+ 'leaf' is traditionally what busybox follows, it allows multiple
+ devices of a particluar type to be created per command.
+ e.g. /dev/hda[0-9]
+ Device properties are passed as command line arguments.
- 'table' reads device properties from a file or stdin, allowing
- a batch of unrelated devices to be made with one command.
- User/group names are allowed as an alternative to uid/gid.
+ 'table' reads device properties from a file or stdin, allowing
+ a batch of unrelated devices to be made with one command.
+ User/group names are allowed as an alternative to uid/gid.
choice
prompt "Choose makedevs behaviour"
depends on BUSYBOX_MAKEDEVS
- default FEATURE_MAKEDEVS_TABLE
+ default BUSYBOX_FEATURE_MAKEDEVS_TABLE
config BUSYBOX_FEATURE_MAKEDEVS_LEAF
bool "leaf"
@@ -643,167 +612,208 @@ config BUSYBOX_FEATURE_MAKEDEVS_TABLE
bool "table"
endchoice
-
config BUSYBOX_MAN
- bool "man"
- default n
+ bool "man (26 kb)"
+ default y
help
- Format and display manual pages.
-
+ Format and display manual pages.
config BUSYBOX_MICROCOM
- bool "microcom"
- default n
+ bool "microcom (5.7 kb)"
+ default y
help
- The poor man's minicom utility for chatting with serial port devices.
-
-config BUSYBOX_MOUNTPOINT
- bool "mountpoint"
- default n
+ The poor man's minicom utility for chatting with serial port devices.
+config BUSYBOX_MIM
+ bool "mim (0.5 kb)"
+ default y
+ depends on BUSYBOX_FEATURE_SH_EMBEDDED_SCRIPTS
help
- mountpoint checks if the directory is a mountpoint.
-
+ Run a script from a Makefile-like specification file.
+ Unlike 'make' dependencies aren't supported.
config BUSYBOX_MT
- bool "mt"
- default n
+ bool "mt (2.5 kb)"
+ default y
+ help
+ mt is used to control tape devices. You can use the mt utility
+ to advance or rewind a tape past a specified number of archive
+ files on the tape.
+config BUSYBOX_NANDWRITE
+ bool "nandwrite (4.8 kb)"
+ default y
help
- mt is used to control tape devices. You can use the mt utility
- to advance or rewind a tape past a specified number of archive
- files on the tape.
+ Write to the specified MTD device, with bad blocks awareness
+config BUSYBOX_NANDDUMP
+ bool "nanddump (5.2 kb)"
+ default y
+ help
+ Dump the content of raw NAND chip
+config BUSYBOX_PARTPROBE
+ bool "partprobe (3.5 kb)"
+ default y
+ help
+ Ask kernel to rescan partition table.
config BUSYBOX_RAIDAUTORUN
- bool "raidautorun"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "raidautorun (1.3 kb)"
+ default y
help
- raidautorun tells the kernel md driver to
- search and start RAID arrays.
-
+ raidautorun tells the kernel md driver to
+ search and start RAID arrays.
config BUSYBOX_READAHEAD
- bool "readahead"
- default n
+ bool "readahead (1.5 kb)"
+ default y
depends on BUSYBOX_LFS
- select BUSYBOX_PLATFORM_LINUX
help
- Preload the files listed on the command line into RAM cache so that
- subsequent reads on these files will not block on disk I/O.
-
- This applet just calls the readahead(2) system call on each file.
- It is mainly useful in system startup scripts to preload files
- or executables before they are used. When used at the right time
- (in particular when a CPU bound process is running) it can
- significantly speed up system startup.
+ Preload the files listed on the command line into RAM cache so that
+ subsequent reads on these files will not block on disk I/O.
- As readahead(2) blocks until each file has been read, it is best to
- run this applet as a background job.
+ This applet just calls the readahead(2) system call on each file.
+ It is mainly useful in system startup scripts to preload files
+ or executables before they are used. When used at the right time
+ (in particular when a CPU bound process is running) it can
+ significantly speed up system startup.
+ As readahead(2) blocks until each file has been read, it is best to
+ run this applet as a background job.
config BUSYBOX_RFKILL
- bool "rfkill"
- depends on !BUSYBOX_DISABLE_RFKILL
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "rfkill (4.4 kb)"
+ default n # doesn't build on Ubuntu 9.04
help
- Enable/disable wireless devices.
+ Enable/disable wireless devices.
- rfkill list : list all wireless devices
- rfkill list bluetooth : list all bluetooth devices
- rfkill list 1 : list device corresponding to the given index
- rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
+ rfkill list : list all wireless devices
+ rfkill list bluetooth : list all bluetooth devices
+ rfkill list 1 : list device corresponding to the given index
+ rfkill block|unblock wlan : block/unblock all wlan(wifi) devices
config BUSYBOX_RUNLEVEL
- bool "runlevel"
- default n
+ bool "runlevel (559 bytes)"
+ default y
depends on BUSYBOX_FEATURE_UTMP
help
- find the current and previous system runlevel.
-
- This applet uses utmp but does not rely on busybox supporing
- utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc.
+ Find the current and previous system runlevel.
+ This applet uses utmp but does not rely on busybox supporing
+ utmp on purpose. It is used by e.g. emdebian via /etc/init.d/rc.
config BUSYBOX_RX
- bool "rx"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "rx (2.9 kb)"
+ default y
help
- Receive files using the Xmodem protocol.
-
-config BUSYBOX_SETSID
- bool "setsid"
+ Receive files using the Xmodem protocol.
+config BUSYBOX_SEEDRNG
+ bool "seedrng (1.3 kb)"
default n
help
- setsid runs a program in a new session
-
-config BUSYBOX_STRINGS
- bool "strings"
- default n
+ Seed the kernel RNG from seed files, meant to be called
+ once during startup, once during shutdown, and optionally
+ at some periodic interval in between.
+config BUSYBOX_SETFATTR
+ bool "setfattr (3.7 kb)"
+ default y
help
- strings prints the printable character sequences for each file
- specified.
-
-config BUSYBOX_TASKSET
- bool "taskset"
- default n # doesn't build on some non-x86 targets (m68k)
+ Set/delete extended attributes on files
+config BUSYBOX_SETSERIAL
+ bool "setserial (6.9 kb)"
+ default y
help
- Retrieve or set a processes's CPU affinity.
- This requires sched_{g,s}etaffinity support in your libc.
-
-config BUSYBOX_FEATURE_TASKSET_FANCY
- bool "Fancy output"
+ Retrieve or set Linux serial port.
+config BUSYBOX_STRINGS
+ bool "strings (4.6 kb)"
default y
- depends on BUSYBOX_TASKSET
help
- Add code for fancy output. This merely silences a compiler-warning
- and adds about 135 Bytes. May be needed for machines with alot
- of CPUs.
-
+ strings prints the printable character sequences for each file
+ specified.
config BUSYBOX_TIME
- bool "time"
- default n
+ bool "time (6.8 kb)"
+ default y
+ help
+ The time command runs the specified program with the given arguments.
+ When the command finishes, time writes a message to standard output
+ giving timing statistics about this program run.
+config BUSYBOX_TREE
+ bool "tree (0.6 kb)"
+ default y
+ help
+ List files and directories in a tree structure.
+config BUSYBOX_TS
+ bool "ts (450 bytes)"
+ default y
+config BUSYBOX_TTYSIZE
+ bool "ttysize (432 bytes)"
+ default y
+ help
+ A replacement for "stty size". Unlike stty, can report only width,
+ only height, or both, in any order. It also does not complain on
+ error, but returns default 80x24.
+ Usage in shell scripts: width=`ttysize w`.
+config BUSYBOX_UBIATTACH
+ bool "ubiattach (4.2 kb)"
+ default y
help
- The time command runs the specified program with the given arguments.
- When the command finishes, time writes a message to standard output
- giving timing statistics about this program run.
+ Attach MTD device to an UBI device.
-config BUSYBOX_TIMEOUT
- bool "timeout"
- default n
+config BUSYBOX_UBIDETACH
+ bool "ubidetach (4.1 kb)"
+ default y
help
- Runs a program and watches it. If it does not terminate in
- specified number of seconds, it is sent a signal.
+ Detach MTD device from an UBI device.
-config BUSYBOX_TTYSIZE
- bool "ttysize"
- default n
+config BUSYBOX_UBIMKVOL
+ bool "ubimkvol (5.3 kb)"
+ default y
help
- A replacement for "stty size". Unlike stty, can report only width,
- only height, or both, in any order. It also does not complain on
- error, but returns default 80x24.
- Usage in shell scripts: width=`ttysize w`.
+ Create a UBI volume.
-config BUSYBOX_VOLNAME
- bool "volname"
- default n
+config BUSYBOX_UBIRMVOL
+ bool "ubirmvol (4.9 kb)"
+ default y
help
- Prints a CD-ROM volume name.
+ Delete a UBI volume.
-config BUSYBOX_WALL
- bool "wall"
- default n
- depends on BUSYBOX_FEATURE_UTMP
+config BUSYBOX_UBIRSVOL
+ bool "ubirsvol (4.2 kb)"
+ default y
help
- Write a message to all users that are logged in.
+ Resize a UBI volume.
+config BUSYBOX_UBIUPDATEVOL
+ bool "ubiupdatevol (5.2 kb)"
+ default y
+ help
+ Update a UBI volume.
+config BUSYBOX_UBIRENAME
+ bool "ubirename (2.4 kb)"
+ default y
+ help
+ Utility to rename UBI volumes
+config BUSYBOX_VOLNAME
+ bool "volname (1.6 kb)"
+ default y
+ help
+ Prints a CD-ROM volume name.
config BUSYBOX_WATCHDOG
- bool "watchdog"
- default y if ADK_TARGET_WITH_WATCHDOG
- default n
- depends on !BUSYBOX_DISABLE_WATCHDOG
- select BUSYBOX_PLATFORM_LINUX
- help
- The watchdog utility is used with hardware or software watchdog
- device drivers. It opens the specified watchdog device special file
- and periodically writes a magic character to the device. If the
- watchdog applet ever fails to write the magic character within a
- certain amount of time, the watchdog device assumes the system has
- hung, and will cause the hardware to reboot.
+ bool "watchdog (5.3 kb)"
+ default y
+ help
+ The watchdog utility is used with hardware or software watchdog
+ device drivers. It opens the specified watchdog device special file
+ and periodically writes a magic character to the device. If the
+ watchdog applet ever fails to write the magic character within a
+ certain amount of time, the watchdog device assumes the system has
+ hung, and will cause the hardware to reboot.
+
+config BUSYBOX_FEATURE_WATCHDOG_OPEN_TWICE
+ bool "Open watchdog device twice, closing it gracefully in between"
+ depends on BUSYBOX_WATCHDOG
+ default n # this behavior was essentially a hack for a broken driver
+ help
+ When enabled, the watchdog device is opened and then immediately
+ magic-closed, before being opened a second time. This may be necessary
+ for some watchdog devices, but can cause spurious warnings in the
+ kernel log if the nowayout feature is enabled. If this workaround
+ is really needed for you machine to work properly, consider whether
+ it should be fixed in the kernel driver instead. Even when disabled,
+ the behaviour is easily emulated with a "printf 'V' > /dev/watchdog"
+ immediately before starting the busybox watchdog daemon. Say n unless
+ you know that you absolutely need this.
endmenu
diff --git a/package/busybox/config/modutils/Config.in b/package/busybox/config/modutils/Config.in
index 27709277d..795b00a0d 100644
--- a/package/busybox/config/modutils/Config.in
+++ b/package/busybox/config/modutils/Config.in
@@ -1,276 +1,239 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Linux Module Utilities"
-config BUSYBOX_MODINFO
- bool "modinfo"
- default n
- depends on !BUSYBOX_DISABLE_KMOD
- select BUSYBOX_PLATFORM_LINUX
- help
- Show information about a Linux Kernel module
-
config BUSYBOX_MODPROBE_SMALL
bool "Simplified modutils"
- default n
- depends on !BUSYBOX_DISABLE_KMOD
- select BUSYBOX_PLATFORM_LINUX
+ default y
help
- Simplified modutils.
-
- With this option modprobe does not require modules.dep file
- and does not use /etc/modules.conf file.
- It scans module files in /lib/modules/`uname -r` and
- determines dependencies and module alias names on the fly.
- This may make module loading slower, most notably
- when one needs to load module by alias (this requires
- scanning through module _bodies_).
-
- At the first attempt to load a module by alias modprobe
- will try to generate modules.dep.bb file in order to speed up
- future loads by alias. Failure to do so (read-only /lib/modules,
- etc) is not reported, and future modprobes will be slow too.
+ Build smaller (~1.5 kbytes), simplified module tools.
- NB: modules.dep.bb file format is not compatible
- with modules.dep file as created/used by standard module tools.
+ This option by itself does not enable any applets -
+ you need to select applets individually below.
- Additional module parameters can be stored in
- /etc/modules/$module_name files.
+ With this option modprobe does not require modules.dep file
+ and does not use /etc/modules.conf file.
+ It scans module files in /lib/modules/`uname -r` and
+ determines dependencies and module alias names on the fly.
+ This may make module loading slower, most notably
+ when one needs to load module by alias (this requires
+ scanning through module _bodies_).
- Apart from modprobe, other utilities are also provided:
- - insmod is an alias to modprobe
- - rmmod is an alias to modprobe -r
- - depmod generates modules.dep.bb
+ At the first attempt to load a module by alias modprobe
+ will try to generate modules.dep.bb file in order to speed up
+ future loads by alias. Failure to do so (read-only /lib/modules,
+ etc) is not reported, and future modprobes will be slow too.
- As of 2008-07, this code is experimental. It is 14kb smaller
- than "non-small" modutils.
+ NB: modules.dep.bb file format is not compatible
+ with modules.dep file as created/used by standard module tools.
-config BUSYBOX_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
- bool "Accept module options on modprobe command line"
- default y
- depends on BUSYBOX_MODPROBE_SMALL
- select BUSYBOX_PLATFORM_LINUX
- help
- Allow insmod and modprobe take module options from command line.
+ Additional module parameters can be stored in
+ /etc/modules/$module_name files.
-config BUSYBOX_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
- bool "Skip loading of already loaded modules"
+config BUSYBOX_DEPMOD
+ bool "depmod (27 kb)"
default y
- depends on BUSYBOX_MODPROBE_SMALL
help
- Check if the module is already loaded.
-
+ depmod generates modules.dep (and potentially modules.alias
+ and modules.symbols) that contain dependency information
+ for modprobe.
config BUSYBOX_INSMOD
- bool "insmod"
+ bool "insmod (22 kb)"
default y
- depends on !BUSYBOX_MODPROBE_SMALL
- depends on !BUSYBOX_DISABLE_KMOD
- select BUSYBOX_PLATFORM_LINUX
help
- insmod is used to load specified modules in the running kernel.
-
-config BUSYBOX_RMMOD
- bool "rmmod"
- default y
- depends on !BUSYBOX_MODPROBE_SMALL
- depends on !BUSYBOX_DISABLE_KMOD
- select BUSYBOX_PLATFORM_LINUX
- help
- rmmod is used to unload specified modules from the kernel.
-
+ insmod is used to load specified modules in the running kernel.
config BUSYBOX_LSMOD
- bool "lsmod"
+ bool "lsmod (1.9 kb)"
default y
- depends on !BUSYBOX_MODPROBE_SMALL
- depends on !BUSYBOX_DISABLE_KMOD
- select BUSYBOX_PLATFORM_LINUX
help
- lsmod is used to display a list of loaded modules.
+ lsmod is used to display a list of loaded modules.
config BUSYBOX_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
bool "Pretty output"
- default n
- depends on BUSYBOX_LSMOD
- select BUSYBOX_PLATFORM_LINUX
+ default y
+ depends on BUSYBOX_LSMOD && !BUSYBOX_MODPROBE_SMALL
help
- This option makes output format of lsmod adjusted to
- the format of module-init-tools for Linux kernel 2.6.
- Increases size somewhat.
-
+ This option makes output format of lsmod adjusted to
+ the format of module-init-tools for Linux kernel 2.6.
+ Increases size somewhat.
+config BUSYBOX_MODINFO
+ bool "modinfo (24 kb)"
+ default y
+ help
+ Show information about a Linux Kernel module
config BUSYBOX_MODPROBE
- bool "modprobe"
- default n
- depends on !BUSYBOX_DISABLE_KMOD
- depends on !BUSYBOX_MODPROBE_SMALL
- select BUSYBOX_PLATFORM_LINUX
+ bool "modprobe (28 kb)"
+ default y
help
- Handle the loading of modules, and their dependencies on a high
- level.
+ Handle the loading of modules, and their dependencies on a high
+ level.
config BUSYBOX_FEATURE_MODPROBE_BLACKLIST
bool "Blacklist support"
- default n
- depends on BUSYBOX_MODPROBE
- select BUSYBOX_PLATFORM_LINUX
+ default y
+ depends on BUSYBOX_MODPROBE && !BUSYBOX_MODPROBE_SMALL
help
- Say 'y' here to enable support for the 'blacklist' command in
- modprobe.conf. This prevents the alias resolver to resolve
- blacklisted modules. This is useful if you want to prevent your
- hardware autodetection scripts to load modules like evdev, frame
- buffer drivers etc.
-
-config BUSYBOX_DEPMOD
- bool "depmod"
- default n
- depends on !BUSYBOX_DISABLE_KMOD
- depends on !BUSYBOX_MODPROBE_SMALL
- select BUSYBOX_PLATFORM_LINUX
+ Say 'y' here to enable support for the 'blacklist' command in
+ modprobe.conf. This prevents the alias resolver to resolve
+ blacklisted modules. This is useful if you want to prevent your
+ hardware autodetection scripts to load modules like evdev, frame
+ buffer drivers etc.
+config BUSYBOX_RMMOD
+ bool "rmmod (3.3 kb)"
+ default y
help
- depmod generates modules.dep (and potentially modules.alias
- and modules.symbols) that contain dependency information
- for modprobe.
+ rmmod is used to unload specified modules from the kernel.
comment "Options common to multiple modutils"
-config BUSYBOX_FEATURE_2_4_MODULES
- bool "Support version 2.2/2.4 Linux kernels"
- default n
- depends on BUSYBOX_INSMOD || BUSYBOX_RMMOD || BUSYBOX_LSMOD
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_FEATURE_CMDLINE_MODULE_OPTIONS
+ bool "Accept module options on modprobe command line"
+ default y
+ depends on BUSYBOX_INSMOD || BUSYBOX_MODPROBE
help
- Support module loading for 2.2.x and 2.4.x Linux kernels.
- This increases size considerably. Say N unless you plan
- to run ancient kernels.
+ Allow insmod and modprobe take module options from the applets'
+ command line.
-config BUSYBOX_FEATURE_INSMOD_TRY_MMAP
- bool "Try to load module from a mmap'ed area"
- default n
- depends on BUSYBOX_INSMOD || BUSYBOX_MODPROBE_SMALL
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
+ bool "Skip loading of already loaded modules"
+ default y
+ depends on BUSYBOX_MODPROBE_SMALL && (BUSYBOX_DEPMOD || BUSYBOX_INSMOD || BUSYBOX_MODPROBE)
help
- This option causes module loading code to try to mmap
- module first. If it does not work (for example,
- it does not work for compressed modules), module will be read
- (and unpacked if needed) into a memory block allocated by malloc.
+ Check if the module is already loaded.
- The only case when mmap works but malloc does not is when
- you are trying to load a big module on a very memory-constrained
- machine. Malloc will momentarily need 2x as much memory as mmap.
-
- Choosing N saves about 250 bytes of code (on 32-bit x86).
+config BUSYBOX_FEATURE_2_4_MODULES
+ bool "Support version 2.2/2.4 Linux kernels"
+ default n
+ depends on (BUSYBOX_INSMOD || BUSYBOX_LSMOD || BUSYBOX_MODPROBE || BUSYBOX_RMMOD) && !BUSYBOX_MODPROBE_SMALL
+ help
+ Support module loading for 2.2.x and 2.4.x Linux kernels.
+ This increases size considerably. Say N unless you plan
+ to run ancient kernels.
config BUSYBOX_FEATURE_INSMOD_VERSION_CHECKING
bool "Enable module version checking"
default n
depends on BUSYBOX_FEATURE_2_4_MODULES && (BUSYBOX_INSMOD || BUSYBOX_MODPROBE)
- select BUSYBOX_PLATFORM_LINUX
help
- Support checking of versions for modules. This is used to
- ensure that the kernel and module are made for each other.
+ Support checking of versions for modules. This is used to
+ ensure that the kernel and module are made for each other.
config BUSYBOX_FEATURE_INSMOD_KSYMOOPS_SYMBOLS
bool "Add module symbols to kernel symbol table"
default n
depends on BUSYBOX_FEATURE_2_4_MODULES && (BUSYBOX_INSMOD || BUSYBOX_MODPROBE)
- select BUSYBOX_PLATFORM_LINUX
help
- By adding module symbols to the kernel symbol table, Oops messages
- occuring within kernel modules can be properly debugged. By enabling
- this feature, module symbols will always be added to the kernel symbol
- table for proper debugging support. If you are not interested in
- Oops messages from kernel modules, say N.
+ By adding module symbols to the kernel symbol table, Oops messages
+ occurring within kernel modules can be properly debugged. By enabling
+ this feature, module symbols will always be added to the kernel symbol
+ table for proper debugging support. If you are not interested in
+ Oops messages from kernel modules, say N.
config BUSYBOX_FEATURE_INSMOD_LOADINKMEM
bool "In kernel memory optimization (uClinux only)"
default n
depends on BUSYBOX_FEATURE_2_4_MODULES && (BUSYBOX_INSMOD || BUSYBOX_MODPROBE)
- select BUSYBOX_PLATFORM_LINUX
help
- This is a special uClinux only memory optimization that lets insmod
- load the specified kernel module directly into kernel space, reducing
- memory usage by preventing the need for two copies of the module
- being loaded into memory.
+ This is a special uClinux only memory optimization that lets insmod
+ load the specified kernel module directly into kernel space, reducing
+ memory usage by preventing the need for two copies of the module
+ being loaded into memory.
config BUSYBOX_FEATURE_INSMOD_LOAD_MAP
bool "Enable insmod load map (-m) option"
default n
depends on BUSYBOX_FEATURE_2_4_MODULES && BUSYBOX_INSMOD
- select BUSYBOX_PLATFORM_LINUX
help
- Enabling this, one would be able to get a load map
- output on stdout. This makes kernel module debugging
- easier.
- If you don't plan to debug kernel modules, you
- don't need this option.
+ Enabling this, one would be able to get a load map
+ output on stdout. This makes kernel module debugging
+ easier.
+ If you don't plan to debug kernel modules, you
+ don't need this option.
config BUSYBOX_FEATURE_INSMOD_LOAD_MAP_FULL
bool "Symbols in load map"
- default n
- depends on BUSYBOX_FEATURE_INSMOD_LOAD_MAP && !BUSYBOX_MODPROBE_SMALL
- select BUSYBOX_PLATFORM_LINUX
+ default y
+ depends on BUSYBOX_FEATURE_INSMOD_LOAD_MAP
help
- Without this option, -m will only output section
- load map. With this option, -m will also output
- symbols load map.
+ Without this option, -m will only output section
+ load map. With this option, -m will also output
+ symbols load map.
config BUSYBOX_FEATURE_CHECK_TAINTED_MODULE
bool "Support tainted module checking with new kernels"
default y
depends on (BUSYBOX_LSMOD || BUSYBOX_FEATURE_2_4_MODULES) && !BUSYBOX_MODPROBE_SMALL
- select BUSYBOX_PLATFORM_LINUX
help
- Support checking for tainted modules. These are usually binary
- only modules that will make the linux-kernel list ignore your
- support request.
- This option is required to support GPLONLY modules.
+ Support checking for tainted modules. These are usually binary
+ only modules that will make the linux-kernel list ignore your
+ support request.
+ This option is required to support GPLONLY modules.
+
+config BUSYBOX_FEATURE_INSMOD_TRY_MMAP
+ bool "Try to load module from a mmap'ed area"
+ default n
+ depends on (BUSYBOX_INSMOD || BUSYBOX_MODPROBE) && !BUSYBOX_MODPROBE_SMALL
+ help
+ This option causes module loading code to try to mmap
+ module first. If it does not work (for example,
+ it does not work for compressed modules), module will be read
+ (and unpacked if needed) into a memory block allocated by malloc.
+
+ The only case when mmap works but malloc does not is when
+ you are trying to load a big module on a very memory-constrained
+ machine. Malloc will momentarily need 2x as much memory as mmap.
+
+ Choosing N saves about 250 bytes of code (on 32-bit x86).
config BUSYBOX_FEATURE_MODUTILS_ALIAS
- bool "Support for module.aliases file"
+ bool "Support module.aliases file"
default y
- depends on BUSYBOX_DEPMOD || BUSYBOX_MODPROBE
- select BUSYBOX_PLATFORM_LINUX
+ depends on (BUSYBOX_DEPMOD || BUSYBOX_MODPROBE) && !BUSYBOX_MODPROBE_SMALL
help
- Generate and parse modules.alias containing aliases for bus
- identifiers:
- alias pcmcia:m*c*f03fn*pfn*pa*pb*pc*pd* parport_cs
+ Generate and parse modules.alias containing aliases for bus
+ identifiers:
+ alias pcmcia:m*c*f03fn*pfn*pa*pb*pc*pd* parport_cs
- and aliases for logical modules names e.g.:
- alias padlock_aes aes
- alias aes_i586 aes
- alias aes_generic aes
+ and aliases for logical modules names e.g.:
+ alias padlock_aes aes
+ alias aes_i586 aes
+ alias aes_generic aes
- Say Y if unsure.
+ Say Y if unsure.
config BUSYBOX_FEATURE_MODUTILS_SYMBOLS
- bool "Support for module.symbols file"
+ bool "Support module.symbols file"
default y
- depends on BUSYBOX_DEPMOD || BUSYBOX_MODPROBE
- select BUSYBOX_PLATFORM_LINUX
+ depends on (BUSYBOX_DEPMOD || BUSYBOX_MODPROBE) && !BUSYBOX_MODPROBE_SMALL
help
- Generate and parse modules.symbols containing aliases for
- symbol_request() kernel calls, such as:
- alias symbol:usb_sg_init usbcore
+ Generate and parse modules.symbols containing aliases for
+ symbol_request() kernel calls, such as:
+ alias symbol:usb_sg_init usbcore
- Say Y if unsure.
+ Say Y if unsure.
config BUSYBOX_DEFAULT_MODULES_DIR
string "Default directory containing modules"
default "/lib/modules"
- depends on BUSYBOX_DEPMOD || BUSYBOX_MODPROBE || BUSYBOX_MODPROBE_SMALL || BUSYBOX_MODINFO
+ depends on BUSYBOX_DEPMOD || BUSYBOX_MODPROBE || BUSYBOX_MODINFO
help
- Directory that contains kernel modules.
- Defaults to "/lib/modules"
+ Directory that contains kernel modules.
+ Defaults to "/lib/modules"
config BUSYBOX_DEFAULT_DEPMOD_FILE
string "Default name of modules.dep"
default "modules.dep"
- depends on BUSYBOX_DEPMOD || BUSYBOX_MODPROBE || BUSYBOX_MODPROBE_SMALL || BUSYBOX_MODINFO
- help
- Filename that contains kernel modules dependencies.
- Defaults to "modules.dep"
+ depends on BUSYBOX_DEPMOD || BUSYBOX_MODPROBE || BUSYBOX_MODINFO
+ help
+ Filename that contains kernel modules dependencies.
+ Defaults to "modules.dep".
+ If you configured the "simplified modutils" (BUSYBOX_MODPROBE_SMALL), a
+ ".bb" suffix will be added after this name. Do not specify ".bb"
+ here unless you intend your depmod or modprobe to work on
+ "modules.dep.bb.bb" or such.
endmenu
diff --git a/package/busybox/config/networking/Config.in b/package/busybox/config/networking/Config.in
index 8a1eeb085..341092334 100644
--- a/package/busybox/config/networking/Config.in
+++ b/package/busybox/config/networking/Config.in
@@ -1,1148 +1,1259 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Networking Utilities"
-config BUSYBOX_NAMEIF
- bool "nameif"
- default n
- select BUSYBOX_PLATFORM_LINUX
- select BUSYBOX_FEATURE_SYSLOG
- help
- nameif is used to rename network interface by its MAC address.
- Renamed interfaces MUST be in the down state.
- It is possible to use a file (default: /etc/mactab)
- with list of new interface names and MACs.
- Maximum interface name length: IFNAMSIZ = 16
- File fields are separated by space or tab.
- File format:
- # Comment
- new_interface_name XX:XX:XX:XX:XX:XX
-
-config BUSYBOX_FEATURE_NAMEIF_EXTENDED
- bool "Extended nameif"
+config BUSYBOX_FEATURE_IPV6
+ bool "Enable IPv6 support"
default y
- depends on BUSYBOX_NAMEIF
- help
- This extends the nameif syntax to support the bus_info, driver,
- phyaddr selectors. The syntax is compatible to the normal nameif.
- File format:
- new_interface_name driver=asix bus=usb-0000:00:08.2-3
- new_interface_name bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5
- new_interface_name phy_address=2 00:80:C8:38:91:B5
- new_interface_name mac=00:80:C8:38:91:B5
- new_interface_name 00:80:C8:38:91:B5
-
-config BUSYBOX_NBDCLIENT
- bool "nbd-client"
- default n
help
- Network block device client
+ Enable IPv6 support in busybox.
+ This adds IPv6 support in the networking applets.
-config BUSYBOX_NC
- bool "nc"
+config BUSYBOX_FEATURE_UNIX_LOCAL
+ bool "Enable Unix domain socket support (usually not needed)"
default n
help
- A simple Unix utility which reads and writes data across network
- connections.
+ Enable Unix domain socket support in all busybox networking
+ applets. Address of the form local:/path/to/unix/socket
+ will be recognized.
-config BUSYBOX_NC_SERVER
- bool "Netcat server options (-l)"
- default y
- depends on BUSYBOX_NC
- help
- Allow netcat to act as a server.
+ This extension is almost never used in real world usage.
+ You most likely want to say N.
-config BUSYBOX_NC_EXTRA
- bool "Netcat extensions (-eiw and filename)"
+config BUSYBOX_FEATURE_PREFER_IPV4_ADDRESS
+ bool "Prefer IPv4 addresses from DNS queries"
default y
- depends on BUSYBOX_NC
- help
- Add -e (support for executing the rest of the command line after
- making or receiving a successful connection), -i (delay interval for
- lines sent), -w (timeout for initial connection).
-
-config BUSYBOX_NC_110_COMPAT
- bool "Netcat 1.10 compatibility (+2.5k)"
- default n # off specially for Rob
- depends on BUSYBOX_NC
- help
- This option makes nc closely follow original nc-1.10.
- The code is about 2.5k bigger. It enables
- -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
- busybox-specific extensions: -f FILE and -ll.
-
-config BUSYBOX_PING
- bool "ping"
- default y if ADK_TARGET_WITH_NET
- select BUSYBOX_PLATFORM_LINUX
+ depends on BUSYBOX_FEATURE_IPV6
help
- ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to
- elicit an ICMP ECHO_RESPONSE from a host or gateway.
+ Use IPv4 address of network host if it has one.
-config BUSYBOX_PING6
- bool "ping6"
- default y if ADK_TARGET_WITH_NET
- depends on BUSYBOX_FEATURE_IPV6 && BUSYBOX_PING
- help
- This will give you a ping that can talk IPv6.
+ If this option is off, the first returned address will be used.
+ This may cause problems when your DNS server is IPv6-capable and
+ is returning IPv6 host addresses too. If IPv6 address
+ precedes IPv4 one in DNS reply, busybox network applets
+ (e.g. wget) will use IPv6 address. On an IPv6-incapable host
+ or network applets will fail to connect to the host
+ using IPv6 address.
-config BUSYBOX_FEATURE_FANCY_PING
- bool "Enable fancy ping output"
- default y
- depends on BUSYBOX_PING
- help
- Make the output from the ping applet include statistics, and at the
- same time provide full support for ICMP packets.
-
-config BUSYBOX_WHOIS
- bool "whois"
+config BUSYBOX_VERBOSE_RESOLUTION_ERRORS
+ bool "Verbose resolution errors"
default n
help
- whois is a client for the whois directory service
+ Enable if you are not satisfied with simplistic
+ "can't resolve 'hostname.com'" and want to know more.
+ This may increase size of your executable a bit.
-config BUSYBOX_FEATURE_IPV6
- bool "Enable IPv6 support"
+config BUSYBOX_FEATURE_ETC_NETWORKS
+ bool "Support /etc/networks"
default n
help
- Enable IPv6 support in busybox.
- This adds IPv6 support in the networking applets.
+ Enable support for network names in /etc/networks. This is
+ a rarely used feature which allows you to use names
+ instead of IP/mask pairs in route command.
-config BUSYBOX_FEATURE_UNIX_LOCAL
- bool "Enable Unix domain socket support (usually not needed)"
+config BUSYBOX_FEATURE_ETC_SERVICES
+ bool "Consult /etc/services even for well-known ports"
default n
help
- Enable Unix domain socket support in all busybox networking
- applets. Address of the form local:/path/to/unix/socket
- will be recognized.
-
- This extension is almost never used in real world usage.
- You most likely want to say N.
+ Look up e.g. "telnet" and "http" in /etc/services file
+ instead of assuming ports 23 and 80.
+ This is almost never necessary (everybody uses standard ports),
+ and it makes sense to avoid reading this file.
+ If you disable this option, in the cases where port is explicitly
+ specified as a service name (e.g. "telnet HOST PORTNAME"),
+ it will still be looked up in /etc/services.
-config BUSYBOX_FEATURE_PREFER_IPV4_ADDRESS
- bool "Prefer IPv4 addresses from DNS queries"
+config BUSYBOX_FEATURE_HWIB
+ bool "Support infiniband HW"
default y
- depends on BUSYBOX_FEATURE_IPV6
help
- Use IPv4 address of network host if it has one.
+ Support for printing infiniband addresses in network applets.
- If this option is off, the first returned address will be used.
- This may cause problems when your DNS server is IPv6-capable and
- is returning IPv6 host addresses too. If IPv6 address
- precedes IPv4 one in DNS reply, busybox network applets
- (e.g. wget) will use IPv6 address. On an IPv6-incapable host
- or network applets will fail to connect to the host
- using IPv6 address.
-
-config BUSYBOX_VERBOSE_RESOLUTION_ERRORS
- bool "Verbose resolution errors"
+config BUSYBOX_FEATURE_TLS_SHA1
+ bool "In TLS code, support ciphers which use deprecated SHA1"
+ depends on BUSYBOX_TLS
default n
help
- Enable if you are not satisfied with simplistic
- "can't resolve 'hostname.com'" and want to know more.
- This may increase size of your executable a bit.
+ Selecting this option increases interoperability with very old
+ servers, but slightly increases code size.
+
+ Most TLS servers support SHA256 today (2018), since SHA1 is
+ considered possibly insecure (although not yet definitely broken).
config BUSYBOX_ARP
- bool "arp"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "arp (10 kb)"
+ default y
help
- Manipulate the system ARP cache.
-
+ Manipulate the system ARP cache.
config BUSYBOX_ARPING
- bool "arping"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "arping (9 kb)"
+ default y
help
- Ping hosts by ARP packets.
-
+ Ping hosts by ARP packets.
config BUSYBOX_BRCTL
- bool "brctl"
- depends on !BUSYBOX_DISABLE_BRCTL
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "brctl (4.7 kb)"
+ default y
help
- Manage ethernet bridges.
- Supports addbr/delbr and addif/delif.
+ Manage ethernet bridges.
+ Supports addbr/delbr and addif/delif.
config BUSYBOX_FEATURE_BRCTL_FANCY
bool "Fancy options"
default y
depends on BUSYBOX_BRCTL
help
- Add support for extended option like:
- setageing, setfd, sethello, setmaxage,
- setpathcost, setportprio, setbridgeprio,
- stp
- This adds about 600 bytes.
+ Add support for extended option like:
+ setageing, setfd, sethello, setmaxage,
+ setpathcost, setportprio, setbridgeprio,
+ stp
+ This adds about 600 bytes.
config BUSYBOX_FEATURE_BRCTL_SHOW
- bool "Support show, showmac and showstp"
+ bool "Support show"
default y
depends on BUSYBOX_BRCTL && BUSYBOX_FEATURE_BRCTL_FANCY
help
- Add support for option which prints the current config:
- showmacs, showstp, show
-
+ Add support for option which prints the current config:
+ show
config BUSYBOX_DNSD
- bool "dnsd"
- default n
+ bool "dnsd (9.8 kb)"
+ default y
help
- Small and static DNS server daemon.
-
+ Small and static DNS server daemon.
config BUSYBOX_ETHER_WAKE
- bool "ether-wake"
- depends on !BUSYBOX_DISABLE_ETHER_WAKE
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Send a magic packet to wake up sleeping machines.
-
-config BUSYBOX_FAKEIDENTD
- bool "fakeidentd"
- default n
- select BUSYBOX_FEATURE_SYSLOG
+ bool "ether-wake (4.9 kb)"
+ default y
help
- fakeidentd listens on the ident port and returns a predefined
- fake value on any query.
-
+ Send a magic packet to wake up sleeping machines.
config BUSYBOX_FTPD
- bool "ftpd"
- default n
+ bool "ftpd (30 kb)"
+ default y
help
- simple FTP daemon. You have to run it via inetd.
+ Simple FTP daemon. You have to run it via inetd.
-config BUSYBOX_FEATURE_FTP_WRITE
- bool "Enable upload commands"
+config BUSYBOX_FEATURE_FTPD_WRITE
+ bool "Enable -w (upload commands)"
default y
depends on BUSYBOX_FTPD
help
- Enable all kinds of FTP upload commands (-w option)
+ Enable -w option. "ftpd -w" will accept upload commands
+ such as STOR, STOU, APPE, DELE, MKD, RMD, rename commands.
config BUSYBOX_FEATURE_FTPD_ACCEPT_BROKEN_LIST
bool "Enable workaround for RFC-violating clients"
default y
depends on BUSYBOX_FTPD
help
- Some ftp clients (among them KDE's Konqueror) issue illegal
- "LIST -l" requests. This option works around such problems.
- It might prevent you from listing files starting with "-" and
- it increases the code size by ~40 bytes.
- Most other ftp servers seem to behave similar to this.
+ Some ftp clients (among them KDE's Konqueror) issue illegal
+ "LIST -l" requests. This option works around such problems.
+ It might prevent you from listing files starting with "-" and
+ it increases the code size by ~40 bytes.
+ Most other ftp servers seem to behave similar to this.
+config BUSYBOX_FEATURE_FTPD_AUTHENTICATION
+ bool "Enable authentication"
+ default y
+ depends on BUSYBOX_FTPD
+ help
+ Require login, and change to logged in user's UID:GID before
+ accessing any files. Option "-a USER" allows "anonymous"
+ logins (treats them as if USER logged in).
+
+ If this option is not selected, ftpd runs with the rights
+ of the user it was started under, and does not require login.
+ Take care to not launch it under root.
config BUSYBOX_FTPGET
- bool "ftpget"
- default n
+ bool "ftpget (7.8 kb)"
+ default y
help
- Retrieve a remote file via FTP.
+ Retrieve a remote file via FTP.
config BUSYBOX_FTPPUT
- bool "ftpput"
- default n
+ bool "ftpput (7.5 kb)"
+ default y
help
- Store a remote file via FTP.
+ Store a remote file via FTP.
config BUSYBOX_FEATURE_FTPGETPUT_LONG_OPTIONS
bool "Enable long options in ftpget/ftpput"
default y
depends on BUSYBOX_LONG_OPTS && (BUSYBOX_FTPGET || BUSYBOX_FTPPUT)
- help
- Support long options for the ftpget/ftpput applet.
-
config BUSYBOX_HOSTNAME
- bool "hostname"
+ bool "hostname (5.5 kb)"
default y
help
- Show or set the system's host name.
+ Show or set the system's host name.
config BUSYBOX_DNSDOMAINNAME
- bool "dnsdomainname"
- default n
+ bool "dnsdomainname (3.6 kb)"
+ default y
help
- Alias to "hostname -d".
-
+ Alias to "hostname -d".
config BUSYBOX_HTTPD
- bool "httpd"
- default n
+ bool "httpd (32 kb)"
+ default y
help
- Serve web pages via an HTTP server.
+ HTTP server.
-config BUSYBOX_FEATURE_HTTPD_RANGES
- bool "Support 'Ranges:' header"
- default y
+config BUSYBOX_FEATURE_HTTPD_PORT_DEFAULT
+ int "Default port"
+ default 80
+ range 1 65535
depends on BUSYBOX_HTTPD
- help
- Makes httpd emit "Accept-Ranges: bytes" header and understand
- "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
- downloads, seeking in multimedia players etc.
-config BUSYBOX_FEATURE_HTTPD_USE_SENDFILE
- bool "Use sendfile system call"
+config BUSYBOX_FEATURE_HTTPD_RANGES
+ bool "Support 'Ranges:' header"
default y
depends on BUSYBOX_HTTPD
help
- When enabled, httpd will use the kernel sendfile() function
- instead of read/write loop.
+ Makes httpd emit "Accept-Ranges: bytes" header and understand
+ "Range: bytes=NNN-[MMM]" header. Allows for resuming interrupted
+ downloads, seeking in multimedia players etc.
config BUSYBOX_FEATURE_HTTPD_SETUID
bool "Enable -u <user> option"
default y
depends on BUSYBOX_HTTPD
help
- This option allows the server to run as a specific user
- rather than defaulting to the user that starts the server.
- Use of this option requires special privileges to change to a
- different user.
+ This option allows the server to run as a specific user
+ rather than defaulting to the user that starts the server.
+ Use of this option requires special privileges to change to a
+ different user.
config BUSYBOX_FEATURE_HTTPD_BASIC_AUTH
- bool "Enable Basic http Authentication"
+ bool "Enable HTTP authentication"
default y
depends on BUSYBOX_HTTPD
help
- Utilizes password settings from /etc/httpd.conf for basic
- authentication on a per url basis.
- Example for httpd.conf file:
- /adm:toor:PaSsWd
+ Utilizes password settings from /etc/httpd.conf for basic
+ authentication on a per url basis.
+ Example for httpd.conf file:
+ /adm:toor:PaSsWd
config BUSYBOX_FEATURE_HTTPD_AUTH_MD5
- bool "Support MD5 crypted passwords for http Authentication"
+ bool "Support MD5-encrypted passwords in HTTP authentication"
default y
depends on BUSYBOX_FEATURE_HTTPD_BASIC_AUTH
help
- Enables encrypted passwords, and wildcard user/passwords
- in httpd.conf file.
- User '*' means 'any system user name is ok',
- password of '*' means 'use system password for this user'
- Examples:
- /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0
- /adm:root:*
- /wiki:*:*
+ Enables encrypted passwords, and wildcard user/passwords
+ in httpd.conf file.
+ User '*' means 'any system user name is ok',
+ password of '*' means 'use system password for this user'
+ Examples:
+ /adm:toor:$1$P/eKnWXS$aI1aPGxT.dJD5SzqAKWrF0
+ /adm:root:*
+ /wiki:*:*
config BUSYBOX_FEATURE_HTTPD_CGI
bool "Support Common Gateway Interface (CGI)"
default y
depends on BUSYBOX_HTTPD
help
- This option allows scripts and executables to be invoked
- when specific URLs are requested.
+ This option allows scripts and executables to be invoked
+ when specific URLs are requested.
config BUSYBOX_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR
- bool "Support for running scripts through an interpreter"
+ bool "Support running scripts through an interpreter"
default y
depends on BUSYBOX_FEATURE_HTTPD_CGI
help
- This option enables support for running scripts through an
- interpreter. Turn this on if you want PHP scripts to work
- properly. You need to supply an additional line in your
- httpd.conf file:
- *.php:/path/to/your/php
+ This option enables support for running scripts through an
+ interpreter. Turn this on if you want PHP scripts to work
+ properly. You need to supply an additional line in your
+ httpd.conf file:
+ *.php:/path/to/your/php
config BUSYBOX_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV
bool "Set REMOTE_PORT environment variable for CGI"
default y
depends on BUSYBOX_FEATURE_HTTPD_CGI
help
- Use of this option can assist scripts in generating
- references that contain a unique port number.
+ Use of this option can assist scripts in generating
+ references that contain a unique port number.
config BUSYBOX_FEATURE_HTTPD_ENCODE_URL_STR
bool "Enable -e option (useful for CGIs written as shell scripts)"
default y
depends on BUSYBOX_HTTPD
help
- This option allows html encoding of arbitrary strings for display
- by the browser. Output goes to stdout.
- For example, httpd -e "<Hello World>" produces
- "&#60Hello&#32World&#62".
+ This option allows html encoding of arbitrary strings for display
+ by the browser. Output goes to stdout.
+ For example, httpd -e "<Hello World>" produces
+ "&#60Hello&#32World&#62".
config BUSYBOX_FEATURE_HTTPD_ERROR_PAGES
- bool "Support for custom error pages"
+ bool "Support custom error pages"
default y
depends on BUSYBOX_HTTPD
help
- This option allows you to define custom error pages in
- the configuration file instead of the default HTTP status
- error pages. For instance, if you add the line:
- E404:/path/e404.html
- in the config file, the server will respond the specified
- '/path/e404.html' file instead of the terse '404 NOT FOUND'
- message.
+ This option allows you to define custom error pages in
+ the configuration file instead of the default HTTP status
+ error pages. For instance, if you add the line:
+ E404:/path/e404.html
+ in the config file, the server will respond the specified
+ '/path/e404.html' file instead of the terse '404 NOT FOUND'
+ message.
config BUSYBOX_FEATURE_HTTPD_PROXY
- bool "Support for reverse proxy"
+ bool "Support reverse proxy"
default y
depends on BUSYBOX_HTTPD
help
- This option allows you to define URLs that will be forwarded
- to another HTTP server. To setup add the following line to the
- configuration file
- P:/url/:http://hostname[:port]/new/path/
- Then a request to /url/myfile will be forwarded to
- http://hostname[:port]/new/path/myfile.
+ This option allows you to define URLs that will be forwarded
+ to another HTTP server. To setup add the following line to the
+ configuration file
+ P:/url/:http://hostname[:port]/new/path/
+ Then a request to /url/myfile will be forwarded to
+ http://hostname[:port]/new/path/myfile.
config BUSYBOX_FEATURE_HTTPD_GZIP
- bool "Support for GZIP content encoding"
+ bool "Support GZIP content encoding"
+ default y
+ depends on BUSYBOX_HTTPD
+ help
+ Makes httpd send files using GZIP content encoding if the
+ client supports it and a pre-compressed <file>.gz exists.
+
+config BUSYBOX_FEATURE_HTTPD_ETAG
+ bool "Support caching via ETag header"
default y
depends on BUSYBOX_HTTPD
help
- Makes httpd send files using GZIP content encoding if the
- client supports it and a pre-compressed <file>.gz exists.
+ If server responds with ETag then next time client (browser)
+ resend it via If-None-Match header.
+ Then httpd will check if file wasn't modified and if not,
+ return 304 Not Modified status code.
+ The ETag value is constructed from last modification date
+ in unix epoch, and size: "hex(last_mod)-hex(file_size)".
+ It's not completely reliable as hash functions but fair enough.
+config BUSYBOX_FEATURE_HTTPD_LAST_MODIFIED
+ bool "Add Last-Modified header to response"
+ default y
+ depends on BUSYBOX_HTTPD
+ help
+ The Last-Modified header is used for cache validation.
+ The client sends last seen mtime to server in If-Modified-Since.
+ Both headers MUST be an RFC 1123 formatted, which is hard to parse.
+ Use ETag header instead.
+
+config BUSYBOX_FEATURE_HTTPD_DATE
+ bool "Add Date header to response"
+ default y
+ depends on BUSYBOX_HTTPD
+ help
+ RFC2616 says that server MUST add Date header to response.
+ But it is almost useless and can be omitted.
+
+config BUSYBOX_FEATURE_HTTPD_ACL_IP
+ bool "ACL IP"
+ default y
+ depends on BUSYBOX_HTTPD
+ help
+ Support IP deny/allow rules
config BUSYBOX_IFCONFIG
- bool "ifconfig"
- default y if ADK_TARGET_WITH_NET
- select BUSYBOX_PLATFORM_LINUX
+ bool "ifconfig (12 kb)"
+ default y
help
- Ifconfig is used to configure the kernel-resident network interfaces.
+ Ifconfig is used to configure the kernel-resident network interfaces.
config BUSYBOX_FEATURE_IFCONFIG_STATUS
bool "Enable status reporting output (+7k)"
default y
depends on BUSYBOX_IFCONFIG
help
- If ifconfig is called with no arguments it will display the status
- of the currently active interfaces.
+ If ifconfig is called with no arguments it will display the status
+ of the currently active interfaces.
config BUSYBOX_FEATURE_IFCONFIG_SLIP
bool "Enable slip-specific options \"keepalive\" and \"outfill\""
- default n
+ default y
depends on BUSYBOX_IFCONFIG
help
- Allow "keepalive" and "outfill" support for SLIP. If you're not
- planning on using serial lines, leave this unchecked.
+ Allow "keepalive" and "outfill" support for SLIP. If you're not
+ planning on using serial lines, leave this unchecked.
config BUSYBOX_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
bool "Enable options \"mem_start\", \"io_addr\", and \"irq\""
- default n
+ default y
depends on BUSYBOX_IFCONFIG
help
- Allow the start address for shared memory, start address for I/O,
- and/or the interrupt line used by the specified device.
+ Allow the start address for shared memory, start address for I/O,
+ and/or the interrupt line used by the specified device.
config BUSYBOX_FEATURE_IFCONFIG_HW
bool "Enable option \"hw\" (ether only)"
default y
depends on BUSYBOX_IFCONFIG
help
- Set the hardware address of this interface, if the device driver
- supports this operation. Currently, we only support the 'ether'
- class.
+ Set the hardware address of this interface, if the device driver
+ supports this operation. Currently, we only support the 'ether'
+ class.
config BUSYBOX_FEATURE_IFCONFIG_BROADCAST_PLUS
bool "Set the broadcast automatically"
default y
depends on BUSYBOX_IFCONFIG
help
- Setting this will make ifconfig attempt to find the broadcast
- automatically if the value '+' is used.
-
+ Setting this will make ifconfig attempt to find the broadcast
+ automatically if the value '+' is used.
config BUSYBOX_IFENSLAVE
- bool "ifenslave"
- select ADK_LINUX_KERNEL_BONDING m if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_BONDING m if ADK_TARGET_OS_WALDUX
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "ifenslave (13 kb)"
+ default y
help
- Userspace application to bind several interfaces
- to a logical interface (use with kernel bonding driver).
-
+ Userspace application to bind several interfaces
+ to a logical interface (use with kernel bonding driver).
config BUSYBOX_IFPLUGD
- bool "ifplugd"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "ifplugd (10 kb)"
+ default y
help
- Network interface plug detection daemon.
-
+ Network interface plug detection daemon.
config BUSYBOX_IFUP
- bool "ifup"
- default y if ADK_TARGET_WITH_NET
- help
- Activate the specified interfaces. This applet makes use
- of either "ifconfig" and "route" or the "ip" command to actually
- configure network interfaces. Therefore, you will probably also want
- to enable either IFCONFIG and ROUTE, or enable
- FEATURE_IFUPDOWN_IP and the various IP options. Of
- course you could use non-busybox versions of these programs, so
- against my better judgement (since this will surely result in plenty
- of support questions on the mailing list), I do not force you to
- enable these additional options. It is up to you to supply either
- "ifconfig", "route" and "run-parts" or the "ip" command, either
- via busybox or via standalone utilities.
+ bool "ifup (14 kb)"
+ default y
+ help
+ Activate the specified interfaces. This applet makes use
+ of either "ifconfig" and "route" or the "ip" command to actually
+ configure network interfaces. Therefore, you will probably also want
+ to enable either IFCONFIG and ROUTE, or enable
+ FEATURE_IFUPDOWN_IP and the various IP options. Of
+ course you could use non-busybox versions of these programs, so
+ against my better judgement (since this will surely result in plenty
+ of support questions on the mailing list), I do not force you to
+ enable these additional options. It is up to you to supply either
+ "ifconfig", "route" and "run-parts" or the "ip" command, either
+ via busybox or via standalone utilities.
config BUSYBOX_IFDOWN
- bool "ifdown"
- default y if ADK_TARGET_WITH_NET
+ bool "ifdown (13 kb)"
+ default y
help
- Deactivate the specified interfaces.
+ Deactivate the specified interfaces.
config BUSYBOX_IFUPDOWN_IFSTATE_PATH
string "Absolute path to ifstate file"
default "/var/run/ifstate"
- depends on BUSYBOX_IFUP
+ depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
help
- ifupdown keeps state information in a file called ifstate.
- Typically it is located in /var/run/ifstate, however
- some distributions tend to put it in other places
- (debian, for example, uses /etc/network/run/ifstate).
- This config option defines location of ifstate.
+ ifupdown keeps state information in a file called ifstate.
+ Typically it is located in /var/run/ifstate, however
+ some distributions tend to put it in other places
+ (debian, for example, uses /etc/network/run/ifstate).
+ This config option defines location of ifstate.
config BUSYBOX_FEATURE_IFUPDOWN_IP
- bool "Use ip applet"
+ bool "Use ip tool (else ifconfig/route is used)"
default y
- depends on BUSYBOX_IFUP
+ depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
help
- Use the iproute "ip" command to implement "ifup" and "ifdown", rather
- than the default of using the older 'ifconfig' and 'route' utilities.
+ Use the iproute "ip" command to implement "ifup" and "ifdown", rather
+ than the default of using the older "ifconfig" and "route" utilities.
-config BUSYBOX_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN
- bool "Use busybox ifconfig and route applets"
- default n
- depends on BUSYBOX_IFUP && !BUSYBOX_FEATURE_IFUPDOWN_IP
- select BUSYBOX_IFCONFIG
- select BUSYBOX_ROUTE
- help
- Use the busybox iproute "ifconfig" and "route" applets to
- implement the "ifup" and "ifdown" utilities.
+ If Y: you must install either the full-blown iproute2 package
+ or enable "ip" applet in busybox, or the "ifup" and "ifdown" applets
+ will not work.
- If left disabled, you must install the full-blown ifconfig
- and route utilities, or the "ifup" and "ifdown" applets will not
- work.
+ If N: you must install either the full-blown ifconfig and route
+ utilities, or enable these applets in busybox.
config BUSYBOX_FEATURE_IFUPDOWN_IPV4
- bool "Support for IPv4"
+ bool "Support IPv4"
default y
- depends on BUSYBOX_IFUP
+ depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
help
- If you want ifup/ifdown to talk IPv4, leave this on.
+ If you want ifup/ifdown to talk IPv4, leave this on.
config BUSYBOX_FEATURE_IFUPDOWN_IPV6
- bool "Support for IPv6"
+ bool "Support IPv6"
default y
- depends on BUSYBOX_IFUP && BUSYBOX_FEATURE_IPV6
+ depends on (BUSYBOX_IFUP || BUSYBOX_IFDOWN) && BUSYBOX_FEATURE_IPV6
help
- If you need support for IPv6, turn this option on.
+ If you need support for IPv6, turn this option on.
-### UNUSED
-###config FEATURE_IFUPDOWN_IPX
-### bool "Support for IPX"
-### default y
-### depends on BUSYBOX_IFUPDOWN
-### help
-### If this option is selected you can use busybox to work with IPX
-### networks.
config BUSYBOX_FEATURE_IFUPDOWN_MAPPING
bool "Enable mapping support"
- default n
- depends on BUSYBOX_IFUP
+ default y
+ depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
help
- This enables support for the "mapping" stanza, unless you have
- a weird network setup you don't need it.
+ This enables support for the "mapping" stanza, unless you have
+ a weird network setup you don't need it.
config BUSYBOX_FEATURE_IFUPDOWN_EXTERNAL_DHCP
- bool "Support for external dhcp clients"
+ bool "Support external DHCP clients"
default n
- depends on BUSYBOX_IFUP
+ depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
help
- This enables support for the external dhcp clients. Clients are
- tried in the following order: dhcpcd, dhclient, pump and udhcpc.
- Otherwise, if udhcpc applet is enabled, it is used.
- Otherwise, ifup/ifdown will have no support for DHCP.
-
+ This enables support for the external dhcp clients. Clients are
+ tried in the following order: dhcpcd, dhclient, pump and udhcpc.
+ Otherwise, if udhcpc applet is enabled, it is used.
+ Otherwise, ifup/ifdown will have no support for DHCP.
config BUSYBOX_INETD
- bool "inetd"
- default n
+ bool "inetd (18 kb)"
+ default y
select BUSYBOX_FEATURE_SYSLOG
help
- Internet superserver daemon
+ Internet superserver daemon
config BUSYBOX_FEATURE_INETD_SUPPORT_BUILTIN_ECHO
- bool "Support echo service"
+ bool "Support echo service on port 7"
default y
depends on BUSYBOX_INETD
help
- Echo received data internal inetd service
+ Internal service which echoes data back.
+ Activated by configuration lines like these:
+ echo stream tcp nowait root internal
+ echo dgram udp wait root internal
config BUSYBOX_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD
- bool "Support discard service"
+ bool "Support discard service on port 8"
default y
depends on BUSYBOX_INETD
help
- Internet /dev/null internal inetd service
+ Internal service which discards all input.
+ Activated by configuration lines like these:
+ discard stream tcp nowait root internal
+ discard dgram udp wait root internal
config BUSYBOX_FEATURE_INETD_SUPPORT_BUILTIN_TIME
- bool "Support time service"
+ bool "Support time service on port 37"
default y
depends on BUSYBOX_INETD
help
- Return 32 bit time since 1900 internal inetd service
+ Internal service which returns big-endian 32-bit number
+ of seconds passed since 1900-01-01. The number wraps around
+ on overflow.
+ Activated by configuration lines like these:
+ time stream tcp nowait root internal
+ time dgram udp wait root internal
config BUSYBOX_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME
- bool "Support daytime service"
+ bool "Support daytime service on port 13"
default y
depends on BUSYBOX_INETD
help
- Return human-readable time internal inetd service
+ Internal service which returns human-readable time.
+ Activated by configuration lines like these:
+ daytime stream tcp nowait root internal
+ daytime dgram udp wait root internal
config BUSYBOX_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN
- bool "Support chargen service"
+ bool "Support chargen service on port 19"
default y
depends on BUSYBOX_INETD
help
- Familiar character generator internal inetd service
+ Internal service which generates endless stream
+ of all ASCII chars beetween space and char 126.
+ Activated by configuration lines like these:
+ chargen stream tcp nowait root internal
+ chargen dgram udp wait root internal
config BUSYBOX_FEATURE_INETD_RPC
bool "Support RPC services"
- default n
+ default n # very rarely used, and needs Sun RPC support in libc
depends on BUSYBOX_INETD
- select BUSYBOX_FEATURE_HAVE_RPC
help
- Support Sun-RPC based services
-
+ Support Sun-RPC based services
config BUSYBOX_IP
- bool "ip"
- depends on !BUSYBOX_DISABLE_IP
- default y if ADK_TARGET_WITH_NET
- select BUSYBOX_PLATFORM_LINUX
+ bool "ip (35 kb)"
+ default y
+ help
+ The "ip" applet is a TCP/BUSYBOX_IP interface configuration and routing
+ utility.
+ Short forms (enabled below) are busybox-specific extensions.
+ The standard "ip" utility does not provide them. If you are
+ trying to be portable, it's better to use "ip CMD" forms.
+
+config BUSYBOX_IPADDR
+ bool "ipaddr (14 kb)"
+ default y
+ select BUSYBOX_FEATURE_IP_ADDRESS
+ help
+ Short form of "ip addr"
+
+config BUSYBOX_IPLINK
+ bool "iplink (17 kb)"
+ default y
+ select BUSYBOX_FEATURE_IP_LINK
+ help
+ Short form of "ip link"
+
+config BUSYBOX_IPROUTE
+ bool "iproute (15 kb)"
+ default y
+ select BUSYBOX_FEATURE_IP_ROUTE
+ help
+ Short form of "ip route"
+
+config BUSYBOX_IPTUNNEL
+ bool "iptunnel (9.6 kb)"
+ default y
+ select BUSYBOX_FEATURE_IP_TUNNEL
+ help
+ Short form of "ip tunnel"
+
+config BUSYBOX_IPRULE
+ bool "iprule (10 kb)"
+ default y
+ select BUSYBOX_FEATURE_IP_RULE
+ help
+ Short form of "ip rule"
+
+config BUSYBOX_IPNEIGH
+ bool "ipneigh (8.3 kb)"
+ default y
+ select BUSYBOX_FEATURE_IP_NEIGH
help
- The "ip" applet is a TCP/IP interface configuration and routing
- utility. You generally don't need "ip" to use busybox with
- TCP/IP.
+ Short form of "ip neigh"
config BUSYBOX_FEATURE_IP_ADDRESS
bool "ip address"
default y
- depends on BUSYBOX_IP
+ depends on BUSYBOX_IP || BUSYBOX_IPADDR
help
- Address manipulation support for the "ip" applet.
+ Address manipulation support for the "ip" applet.
config BUSYBOX_FEATURE_IP_LINK
bool "ip link"
default y
- depends on BUSYBOX_IP
+ depends on BUSYBOX_IP || BUSYBOX_IPLINK
help
- Configure network devices with "ip".
+ Configure network devices with "ip".
config BUSYBOX_FEATURE_IP_ROUTE
bool "ip route"
default y
- depends on BUSYBOX_IP
+ depends on BUSYBOX_IP || BUSYBOX_IPROUTE
help
- Add support for routing table management to "ip".
+ Add support for routing table management to "ip".
config BUSYBOX_FEATURE_IP_ROUTE_DIR
string "ip route configuration directory"
default "/etc/iproute2"
depends on BUSYBOX_FEATURE_IP_ROUTE
help
- Location of the "ip" applet routing configuration.
+ Location of the "ip" applet routing configuration.
config BUSYBOX_FEATURE_IP_TUNNEL
bool "ip tunnel"
- default n
- depends on BUSYBOX_IP
+ default y
+ depends on BUSYBOX_IP || BUSYBOX_IPTUNNEL
help
- Add support for tunneling commands to "ip".
+ Add support for tunneling commands to "ip".
config BUSYBOX_FEATURE_IP_RULE
bool "ip rule"
- default n
- depends on BUSYBOX_IP
+ default y
+ depends on BUSYBOX_IP || BUSYBOX_IPRULE
help
- Add support for rule commands to "ip".
+ Add support for rule commands to "ip".
config BUSYBOX_FEATURE_IP_NEIGH
bool "ip neighbor"
- default n
- depends on BUSYBOX_IP
+ default y
+ depends on BUSYBOX_IP || BUSYBOX_IPNEIGH
help
- Add support for neighbor commands to "ip".
+ Add support for neighbor commands to "ip".
config BUSYBOX_FEATURE_IP_RARE_PROTOCOLS
bool "Support displaying rarely used link types"
default n
- depends on BUSYBOX_IP
+ depends on BUSYBOX_IP || BUSYBOX_IPADDR || BUSYBOX_IPLINK || BUSYBOX_IPROUTE || BUSYBOX_IPTUNNEL || BUSYBOX_IPRULE || BUSYBOX_IPNEIGH
help
- If you are not going to use links of type "frad", "econet",
- "bif" etc, you probably don't need to enable this.
- Ethernet, wireless, infrared, ppp/slip, ip tunnelling
- link types are supported without this option selected.
-
-config BUSYBOX_IPADDR
- bool
- default n
-
-config BUSYBOX_IPLINK
- bool
- default n
-
-config BUSYBOX_IPROUTE
- bool
- default n
+ If you are not going to use links of type "frad", "econet",
+ "bif" etc, you probably don't need to enable this.
+ Ethernet, wireless, infrared, ppp/slip, ip tunnelling
+ link types are supported without this option selected.
+config BUSYBOX_IPCALC
+ bool "ipcalc (4.4 kb)"
+ default y
+ help
+ ipcalc takes an IP address and netmask and calculates the
+ resulting broadcast, network, and host range.
-config BUSYBOX_IPTUNNEL
- bool
- default n
+config BUSYBOX_FEATURE_IPCALC_LONG_OPTIONS
+ bool "Enable long options"
+ default y
+ depends on BUSYBOX_IPCALC && BUSYBOX_LONG_OPTS
-config BUSYBOX_IPRULE
- bool
- default n
+config BUSYBOX_FEATURE_IPCALC_FANCY
+ bool "Fancy IPCALC, more options, adds 1 kbyte"
+ default y
+ depends on BUSYBOX_IPCALC
+ help
+ Adds the options hostname, prefix and silent to the output of
+ "ipcalc".
+config BUSYBOX_FAKEIDENTD
+ bool "fakeidentd (8.7 kb)"
+ default y
+ select BUSYBOX_FEATURE_SYSLOG
+ help
+ fakeidentd listens on the ident port and returns a predefined
+ fake value on any query.
+config BUSYBOX_NAMEIF
+ bool "nameif (6.6 kb)"
+ default y
+ select BUSYBOX_FEATURE_SYSLOG
+ help
+ nameif is used to rename network interface by its MAC address.
+ Renamed interfaces MUST be in the down state.
+ It is possible to use a file (default: /etc/mactab)
+ with list of new interface names and MACs.
+ Maximum interface name length: IFNAMSIZ = 16
+ File fields are separated by space or tab.
+ File format:
+ # Comment
+ new_interface_name XX:XX:XX:XX:XX:XX
-config BUSYBOX_IPNEIGH
- bool
- default n
+config BUSYBOX_FEATURE_NAMEIF_EXTENDED
+ bool "Extended nameif"
+ default y
+ depends on BUSYBOX_NAMEIF
+ help
+ This extends the nameif syntax to support the bus_info, driver,
+ phyaddr selectors. The syntax is compatible to the normal nameif.
+ File format:
+ new_interface_name driver=asix bus=usb-0000:00:08.2-3
+ new_interface_name bus=usb-0000:00:08.2-3 00:80:C8:38:91:B5
+ new_interface_name phy_address=2 00:80:C8:38:91:B5
+ new_interface_name mac=00:80:C8:38:91:B5
+ new_interface_name 00:80:C8:38:91:B5
+config BUSYBOX_NBDCLIENT
+ bool "nbd-client (6 kb)"
+ default y
+ help
+ Network block device client
+config BUSYBOX_NC
+ bool "nc (11 kb)"
+ default y
+ help
+ A simple Unix utility which reads and writes data across network
+ connections.
-config BUSYBOX_IPCALC
- bool "ipcalc"
+config BUSYBOX_NETCAT
+ bool "netcat (11 kb)"
default n
help
- ipcalc takes an IP address and netmask and calculates the
- resulting broadcast, network, and host range.
+ Alias to nc.
-config BUSYBOX_FEATURE_IPCALC_FANCY
- bool "Fancy IPCALC, more options, adds 1 kbyte"
+config BUSYBOX_NC_SERVER
+ bool "Netcat server options (-l)"
default y
- depends on BUSYBOX_IPCALC
+ depends on BUSYBOX_NC || BUSYBOX_NETCAT
help
- Adds the options hostname, prefix and silent to the output of
- "ipcalc".
+ Allow netcat to act as a server.
-config BUSYBOX_FEATURE_IPCALC_LONG_OPTIONS
- bool "Enable long options"
+config BUSYBOX_NC_EXTRA
+ bool "Netcat extensions (-eiw and -f FILE)"
default y
- depends on BUSYBOX_IPCALC && BUSYBOX_LONG_OPTS
+ depends on BUSYBOX_NC || BUSYBOX_NETCAT
help
- Support long options for the ipcalc applet.
+ Add -e (support for executing the rest of the command line after
+ making or receiving a successful connection), -i (delay interval for
+ lines sent), -w (timeout for initial connection).
+config BUSYBOX_NC_110_COMPAT
+ bool "Netcat 1.10 compatibility (+2.5k)"
+ default y
+ depends on BUSYBOX_NC || BUSYBOX_NETCAT
+ help
+ This option makes nc closely follow original nc-1.10.
+ The code is about 2.5k bigger. It enables
+ -s ADDR, -n, -u, -v, -o FILE, -z options, but loses
+ busybox-specific extensions: -f FILE.
config BUSYBOX_NETSTAT
- bool "netstat"
- default y if ADK_TARGET_WITH_NET
- select BUSYBOX_PLATFORM_LINUX
+ bool "netstat (10 kb)"
+ default y
help
- netstat prints information about the Linux networking subsystem.
+ netstat prints information about the Linux networking subsystem.
config BUSYBOX_FEATURE_NETSTAT_WIDE
- bool "Enable wide netstat output"
- default n
+ bool "Enable wide output"
+ default y
depends on BUSYBOX_NETSTAT
help
- Add support for wide columns. Useful when displaying IPv6 addresses
- (-W option).
+ Add support for wide columns. Useful when displaying IPv6 addresses
+ (-W option).
config BUSYBOX_FEATURE_NETSTAT_PRG
bool "Enable PID/Program name output"
default y
depends on BUSYBOX_NETSTAT
help
- Add support for -p flag to print out PID and program name.
- +700 bytes of code.
-
+ Add support for -p flag to print out PID and program name.
+ +700 bytes of code.
config BUSYBOX_NSLOOKUP
- bool "nslookup"
- default y if ADK_TARGET_WITH_NET
+ bool "nslookup (9.7 kb)"
+ default y
help
- nslookup is a tool to query Internet name servers.
+ nslookup is a tool to query Internet name servers.
+
+config BUSYBOX_FEATURE_NSLOOKUP_BIG
+ bool "Use internal resolver code instead of libc"
+ depends on BUSYBOX_NSLOOKUP
+ default y
+config BUSYBOX_FEATURE_NSLOOKUP_LONG_OPTIONS
+ bool "Enable long options"
+ default y
+ depends on BUSYBOX_FEATURE_NSLOOKUP_BIG && BUSYBOX_LONG_OPTS
config BUSYBOX_NTPD
- bool "ntpd"
- depends on !BUSYBOX_DISABLE_NTPD
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "ntpd (22 kb)"
+ default y
help
- The NTP client/server daemon.
+ The NTP client/server daemon.
config BUSYBOX_FEATURE_NTPD_SERVER
bool "Make ntpd usable as a NTP server"
- default n
- depends on !BUSYBOX_DISABLE_NTPD
+ default y
depends on BUSYBOX_NTPD
help
- Make ntpd usable as a NTP server. If you disable this option
- ntpd will be usable only as a NTP client.
+ Make ntpd usable as a NTP server. If you disable this option
+ ntpd will be usable only as a NTP client.
config BUSYBOX_FEATURE_NTPD_CONF
bool "Make ntpd understand /etc/ntp.conf"
- default n
+ default y
depends on BUSYBOX_NTPD
help
- Make ntpd look in /etc/ntp.conf for peers. Only "server address"
- is supported.
+ Make ntpd look in /etc/ntp.conf for peers. Only "server address"
+ is supported.
-config BUSYBOX_PSCAN
- bool "pscan"
- default n
+config BUSYBOX_FEATURE_NTP_AUTH
+ bool "Support md5/sha1 message authentication codes"
+ default y
+ depends on BUSYBOX_NTPD
+config BUSYBOX_PING
+ bool "ping (10 kb)"
+ default y
help
- Simple network port scanner.
+ ping uses the ICMP protocol's mandatory ECHO_REQUEST datagram to
+ elicit an ICMP ECHO_RESPONSE from a host or gateway.
-config BUSYBOX_ROUTE
- bool "route"
- default y if ADK_TARGET_WITH_NET
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_PING6
+ bool "ping6 (11 kb)"
+ default y
+ depends on BUSYBOX_FEATURE_IPV6
help
- Route displays or manipulates the kernel's IP routing tables.
+ Alias to "ping -6".
+config BUSYBOX_FEATURE_FANCY_PING
+ bool "Enable fancy ping output"
+ default y
+ depends on BUSYBOX_PING || BUSYBOX_PING6
+ help
+ With this option off, ping will say "HOST is alive!"
+ or terminate with SIGALRM in 5 seconds otherwise.
+ No command-line options will be recognized.
+config BUSYBOX_PSCAN
+ bool "pscan (6 kb)"
+ default y
+ help
+ Simple network port scanner.
+config BUSYBOX_ROUTE
+ bool "route (8.7 kb)"
+ default y
+ help
+ Route displays or manipulates the kernel's IP routing tables.
config BUSYBOX_SLATTACH
- bool "slattach"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "slattach (6.2 kb)"
+ default y
help
- slattach is a small utility to attach network interfaces to serial
- lines.
-
-#config TC
-# bool "tc"
-# default y
-# help
-# show / manipulate traffic control settings
-#
-#config FEATURE_TC_INGRESS
-# def_bool n
-# depends on BUSYBOX_TC
+ slattach configures serial line as SLIP network interface.
+config BUSYBOX_SSL_CLIENT
+ bool "ssl_client (25 kb)"
+ default y
+ select BUSYBOX_TLS
+ help
+ This tool pipes data to/from a socket, TLS-encrypting it.
+config BUSYBOX_TC
+ bool "tc (8.3 kb)"
+ default y
+ help
+ Show / manipulate traffic control settings
+config BUSYBOX_FEATURE_TC_INGRESS
+ bool "Enable ingress"
+ default y
+ depends on BUSYBOX_TC
config BUSYBOX_TCPSVD
- bool "tcpsvd"
- default n
+ bool "tcpsvd (14 kb)"
+ default y
help
- tcpsvd listens on a TCP port and runs a program for each new
- connection.
+ tcpsvd listens on a TCP port and runs a program for each new
+ connection.
+config BUSYBOX_UDPSVD
+ bool "udpsvd (13 kb)"
+ default y
+ help
+ udpsvd listens on an UDP port and runs a program for each new
+ connection.
config BUSYBOX_TELNET
- bool "telnet"
- default y if ADK_TARGET_WITH_NET
+ bool "telnet (8.8 kb)"
+ default y
help
- Telnet is an interface to the TELNET protocol, but is also commonly
- used to test other simple protocols.
+ Telnet is an interface to the TELNET protocol, but is also commonly
+ used to test other simple protocols.
config BUSYBOX_FEATURE_TELNET_TTYPE
bool "Pass TERM type to remote host"
default y
depends on BUSYBOX_TELNET
help
- Setting this option will forward the TERM environment variable to the
- remote host you are connecting to. This is useful to make sure that
- things like ANSI colors and other control sequences behave.
+ Setting this option will forward the TERM environment variable to the
+ remote host you are connecting to. This is useful to make sure that
+ things like ANSI colors and other control sequences behave.
config BUSYBOX_FEATURE_TELNET_AUTOLOGIN
bool "Pass USER type to remote host"
default y
depends on BUSYBOX_TELNET
help
- Setting this option will forward the USER environment variable to the
- remote host you are connecting to. This is useful when you need to
- log into a machine without telling the username (autologin). This
- option enables `-a' and `-l USER' arguments.
+ Setting this option will forward the USER environment variable to the
+ remote host you are connecting to. This is useful when you need to
+ log into a machine without telling the username (autologin). This
+ option enables '-a' and '-l USER' options.
+config BUSYBOX_FEATURE_TELNET_WIDTH
+ bool "Enable window size autodetection"
+ default y
+ depends on BUSYBOX_TELNET
config BUSYBOX_TELNETD
- bool "telnetd"
- default n
+ bool "telnetd (12 kb)"
+ default y
select BUSYBOX_FEATURE_SYSLOG
help
- A daemon for the TELNET protocol, allowing you to log onto the host
- running the daemon. Please keep in mind that the TELNET protocol
- sends passwords in plain text. If you can't afford the space for an
- SSH daemon and you trust your network, you may say 'y' here. As a
- more secure alternative, you should seriously consider installing the
- very small Dropbear SSH daemon instead:
+ A daemon for the TELNET protocol, allowing you to log onto the host
+ running the daemon. Please keep in mind that the TELNET protocol
+ sends passwords in plain text. If you can't afford the space for an
+ SSH daemon and you trust your network, you may say 'y' here. As a
+ more secure alternative, you should seriously consider installing the
+ very small Dropbear SSH daemon instead:
http://matt.ucc.asn.au/dropbear/dropbear.html
- Note that for busybox telnetd to work you need several things:
- First of all, your kernel needs:
- UNIX98_PTYS=y
- DEVPTS_FS=y
+ Note that for busybox telnetd to work you need several things:
+ First of all, your kernel needs:
+ CONFIG_UNIX98_PTYS=y
- Next, you need a /dev/pts directory on your root filesystem:
+ Next, you need a /dev/pts directory on your root filesystem:
$ ls -ld /dev/pts
drwxr-xr-x 2 root root 0 Sep 23 13:21 /dev/pts/
- Next you need the pseudo terminal master multiplexer /dev/ptmx:
+ Next you need the pseudo terminal master multiplexer /dev/ptmx:
$ ls -la /dev/ptmx
crw-rw-rw- 1 root tty 5, 2 Sep 23 13:55 /dev/ptmx
- Any /dev/ttyp[0-9]* files you may have can be removed.
- Next, you need to mount the devpts filesystem on /dev/pts using:
+ Any /dev/ttyp[0-9]* files you may have can be removed.
+ Next, you need to mount the devpts filesystem on /dev/pts using:
mount -t devpts devpts /dev/pts
- You need to be sure that busybox has LOGIN and
- FEATURE_SUID enabled. And finally, you should make
- certain that Busybox has been installed setuid root:
+ You need to be sure that busybox has LOGIN and
+ FEATURE_SUID enabled. And finally, you should make
+ certain that busybox has been installed setuid root:
chown root.root /bin/busybox
chmod 4755 /bin/busybox
- with all that done, telnetd _should_ work....
-
+ with all that done, telnetd _should_ work....
config BUSYBOX_FEATURE_TELNETD_STANDALONE
bool "Support standalone telnetd (not inetd only)"
default y
depends on BUSYBOX_TELNETD
help
- Selecting this will make telnetd able to run standalone.
+ Selecting this will make telnetd able to run standalone.
+
+config BUSYBOX_FEATURE_TELNETD_PORT_DEFAULT
+ int "Default port"
+ default 23
+ range 1 65535
+ depends on BUSYBOX_FEATURE_TELNETD_STANDALONE
config BUSYBOX_FEATURE_TELNETD_INETD_WAIT
bool "Support -w SEC option (inetd wait mode)"
default y
depends on BUSYBOX_FEATURE_TELNETD_STANDALONE
help
- This option allows you to run telnetd in "inet wait" mode.
- Example inetd.conf line (note "wait", not usual "nowait"):
-
- telnet stream tcp wait root /bin/telnetd telnetd -w10
+ This option allows you to run telnetd in "inet wait" mode.
+ Example inetd.conf line (note "wait", not usual "nowait"):
- In this example, inetd passes _listening_ socket_ as fd 0
- to telnetd when connection appears.
- telnetd will wait for connections until all existing
- connections are closed, and no new connections
- appear during 10 seconds. Then it exits, and inetd continues
- to listen for new connections.
+ telnet stream tcp wait root /bin/telnetd telnetd -w10
- This option is rarely used. "tcp nowait" is much more usual
- way of running tcp services, including telnetd.
- You most probably want to say N here.
+ In this example, inetd passes _listening_ socket_ as fd 0
+ to telnetd when connection appears.
+ telnetd will wait for connections until all existing
+ connections are closed, and no new connections
+ appear during 10 seconds. Then it exits, and inetd continues
+ to listen for new connections.
+ This option is rarely used. "tcp nowait" is much more usual
+ way of running tcp services, including telnetd.
+ You most probably want to say N here.
config BUSYBOX_TFTP
- bool "tftp"
- default n
+ bool "tftp (11 kb)"
+ default y
help
- This enables the Trivial File Transfer Protocol client program. TFTP
- is usually used for simple, small transfers such as a root image
- for a network-enabled bootloader.
+ Trivial File Transfer Protocol client. TFTP is usually used
+ for simple, small transfers such as a root image
+ for a network-enabled bootloader.
+
+config BUSYBOX_FEATURE_TFTP_PROGRESS_BAR
+ bool "Enable progress bar"
+ default y
+ depends on BUSYBOX_TFTP
+
+config BUSYBOX_FEATURE_TFTP_HPA_COMPAT
+ bool "tftp-hpa compat (support -c get/put FILE)"
+ default y
+ depends on BUSYBOX_TFTP
config BUSYBOX_TFTPD
- bool "tftpd"
- default n
+ bool "tftpd (10 kb)"
+ default y
help
- This enables the Trivial File Transfer Protocol server program.
- It expects that stdin is a datagram socket and a packet
- is already pending on it. It will exit after one transfer.
- In other words: it should be run from inetd in nowait mode,
- or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
-
-comment "Common options for tftp/tftpd"
- depends on BUSYBOX_TFTP || BUSYBOX_TFTPD
+ Trivial File Transfer Protocol server.
+ It expects that stdin is a datagram socket and a packet
+ is already pending on it. It will exit after one transfer.
+ In other words: it should be run from inetd in nowait mode,
+ or from udpsvd. Example: "udpsvd -E 0 69 tftpd DIR"
config BUSYBOX_FEATURE_TFTP_GET
bool "Enable 'tftp get' and/or tftpd upload code"
default y
depends on BUSYBOX_TFTP || BUSYBOX_TFTPD
help
- Add support for the GET command within the TFTP client. This allows
- a client to retrieve a file from a TFTP server.
- Also enable upload support in tftpd, if tftpd is selected.
+ Add support for the GET command within the TFTP client. This allows
+ a client to retrieve a file from a TFTP server.
+ Also enable upload support in tftpd, if tftpd is selected.
- Note: this option does _not_ make tftpd capable of download
- (the usual operation people need from it)!
+ Note: this option does _not_ make tftpd capable of download
+ (the usual operation people need from it)!
config BUSYBOX_FEATURE_TFTP_PUT
bool "Enable 'tftp put' and/or tftpd download code"
default y
depends on BUSYBOX_TFTP || BUSYBOX_TFTPD
help
- Add support for the PUT command within the TFTP client. This allows
- a client to transfer a file to a TFTP server.
- Also enable download support in tftpd, if tftpd is selected.
+ Add support for the PUT command within the TFTP client. This allows
+ a client to transfer a file to a TFTP server.
+ Also enable download support in tftpd, if tftpd is selected.
config BUSYBOX_FEATURE_TFTP_BLOCKSIZE
bool "Enable 'blksize' and 'tsize' protocol options"
default y
depends on BUSYBOX_TFTP || BUSYBOX_TFTPD
help
- Allow tftp to specify block size, and tftpd to understand
- "blksize" and "tsize" options.
-
-config BUSYBOX_FEATURE_TFTP_PROGRESS_BAR
- bool "Enable tftp progress meter"
- default y
- depends on BUSYBOX_TFTP && BUSYBOX_FEATURE_TFTP_BLOCKSIZE
- help
- Show progress bar.
+ Allow tftp to specify block size, and tftpd to understand
+ "blksize" and "tsize" options.
config BUSYBOX_TFTP_DEBUG
bool "Enable debug"
default n
depends on BUSYBOX_TFTP || BUSYBOX_TFTPD
help
- Make tftp[d] print debugging messages on stderr.
- This is useful if you are diagnosing a bug in tftp[d].
-
-config BUSYBOX_TRACEROUTE
- bool "traceroute"
+ Make tftp[d] print debugging messages on stderr.
+ This is useful if you are diagnosing a bug in tftp[d].
+config BUSYBOX_TLS
+ bool #No description makes it a hidden option
default n
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_TRACEROUTE
+ bool "traceroute (11 kb)"
+ default y
help
- Utility to trace the route of IP packets.
+ Utility to trace the route of IP packets.
config BUSYBOX_TRACEROUTE6
- bool "traceroute6"
- default n
- depends on BUSYBOX_FEATURE_IPV6 && BUSYBOX_TRACEROUTE
+ bool "traceroute6 (13 kb)"
+ default y
+ depends on BUSYBOX_FEATURE_IPV6
help
- Utility to trace the route of IPv6 packets.
+ Utility to trace the route of IPv6 packets.
config BUSYBOX_FEATURE_TRACEROUTE_VERBOSE
bool "Enable verbose output"
default y
- depends on BUSYBOX_TRACEROUTE
- help
- Add some verbosity to traceroute. This includes among other things
- hostnames and ICMP response types.
-
-config BUSYBOX_FEATURE_TRACEROUTE_SOURCE_ROUTE
- bool "Enable loose source route"
- default n
- depends on BUSYBOX_TRACEROUTE
+ depends on BUSYBOX_TRACEROUTE || BUSYBOX_TRACEROUTE6
help
- Add option to specify a loose source route gateway
- (8 maximum).
+ Add some verbosity to traceroute. This includes among other things
+ hostnames and ICMP response types.
config BUSYBOX_FEATURE_TRACEROUTE_USE_ICMP
- bool "Use ICMP instead of UDP"
- default n
- depends on BUSYBOX_TRACEROUTE
- help
- Add option -I to use ICMP ECHO instead of UDP datagrams.
-
+ bool "Enable -I option (use ICMP instead of UDP)"
+ default y
+ depends on BUSYBOX_TRACEROUTE || BUSYBOX_TRACEROUTE6
config BUSYBOX_TUNCTL
- bool "tunctl"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "tunctl (6.2 kb)"
+ default y
help
- tunctl creates or deletes tun devices.
+ tunctl creates or deletes tun devices.
config BUSYBOX_FEATURE_TUNCTL_UG
bool "Support owner:group assignment"
default y
depends on BUSYBOX_TUNCTL
help
- Allow to specify owner and group of newly created interface.
- 340 bytes of pure bloat. Say no here.
-
-source package/busybox/config/networking/udhcp/Config.in
-
-config BUSYBOX_IFUPDOWN_UDHCPC_CMD_OPTIONS
- string "ifup udhcpc command line options"
- default "-R" if BUSYBOX_NOMMU
- default "-R -b"
- depends on BUSYBOX_IFUP && BUSYBOX_UDHCPC
- help
- Command line options to pass to udhcpc from ifup.
- Intended to alter options not available in /etc/network/interfaces.
- (IE: --syslog --background etc...)
-
-config BUSYBOX_UDPSVD
- bool "udpsvd"
- default n
- help
- udpsvd listens on an UDP port and runs a program for each new
- connection.
-
+ Allow to specify owner and group of newly created interface.
+ 340 bytes of pure bloat. Say no here.
config BUSYBOX_VCONFIG
- bool "vconfig"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "vconfig (2.3 kb)"
+ default y
help
- Creates, removes, and configures VLAN interfaces
-
+ Creates, removes, and configures VLAN interfaces
config BUSYBOX_WGET
- bool "wget"
- depends on !BUSYBOX_DISABLE_WGET
- default n
+ bool "wget (38 kb)"
+ default y
help
- wget is a utility for non-interactive download of files from HTTP,
- HTTPS, and FTP servers.
+ wget is a utility for non-interactive download of files from HTTP
+ and FTP servers.
+
+config BUSYBOX_FEATURE_WGET_LONG_OPTIONS
+ bool "Enable long options"
+ default y
+ depends on BUSYBOX_WGET && BUSYBOX_LONG_OPTS
config BUSYBOX_FEATURE_WGET_STATUSBAR
- bool "Enable a nifty process meter (+2k)"
- default n
+ bool "Enable progress bar (+2k)"
+ default y
+ depends on BUSYBOX_WGET
+
+config BUSYBOX_FEATURE_WGET_FTP
+ bool "Enable FTP protocol (+1k)"
+ default y
depends on BUSYBOX_WGET
help
- Enable the transfer progress bar for wget transfers.
+ To support FTPS, enable FEATURE_WGET_HTTPS as well.
config BUSYBOX_FEATURE_WGET_AUTHENTICATION
bool "Enable HTTP authentication"
default y
depends on BUSYBOX_WGET
help
- Support authenticated HTTP transfers.
+ Support authenticated HTTP transfers.
-config BUSYBOX_FEATURE_WGET_LONG_OPTIONS
- bool "Enable long options"
+config BUSYBOX_FEATURE_WGET_TIMEOUT
+ bool "Enable timeout option -T SEC"
default y
- depends on BUSYBOX_WGET && BUSYBOX_LONG_OPTS
+ depends on BUSYBOX_WGET
help
- Support long options for the wget applet.
+ Supports network read and connect timeouts for wget,
+ so that wget will give up and timeout, through the -T
+ command line option.
-config BUSYBOX_FEATURE_WGET_TIMEOUT
- bool "Enable read timeout option -T SEC"
+ Currently only connect and network data read timeout are
+ supported (i.e., timeout is not applied to the DNS query). When
+ FEATURE_WGET_LONG_OPTIONS is also enabled, the --timeout option
+ will work in addition to -T.
+
+config BUSYBOX_FEATURE_WGET_HTTPS
+ bool "Support HTTPS using internal TLS code"
default y
depends on BUSYBOX_WGET
- help
- Supports network read timeout for wget, so that wget will give
- up and timeout when reading network data, through the -T command
- line option. Currently only network data read timeout is
- supported (i.e., timeout is not applied to the DNS nor TCP
- connection initialization). When FEATURE_WGET_LONG_OPTIONS is
- also enabled, the --timeout option will work in addition to -T.
+ select BUSYBOX_TLS
+ help
+ wget will use internal TLS code to connect to https:// URLs.
+ It also enables FTPS support, but it's not well tested yet.
+ Note:
+ On NOMMU machines, ssl_helper applet should be available
+ in the $PATH for this to work. Make sure to select that applet.
+
+ Note: currently, TLS code only makes TLS I/O work, it
+ does *not* check that the peer is who it claims to be, etc.
+ IOW: it uses peer-supplied public keys to establish encryption
+ and signing keys, then encrypts and signs outgoing data and
+ decrypts incoming data.
+ It does not check signature hashes on the incoming data:
+ this means that attackers manipulating TCP packets can
+ send altered data and we unknowingly receive garbage.
+ (This check might be relatively easy to add).
+ It does not check public key's certificate:
+ this means that the peer may be an attacker impersonating
+ the server we think we are talking to.
+
+ If you think this is unacceptable, consider this. As more and more
+ servers switch to HTTPS-only operation, without such "crippled"
+ TLS code it is *impossible* to simply download a kernel source
+ from kernel.org. Which can in real world translate into
+ "my small automatic tooling to build cross-compilers from sources
+ no longer works, I need to additionally keep a local copy
+ of ~4 megabyte source tarball of a SSL library and ~2 megabyte
+ source of wget, need to compile and built both before I can
+ download anything. All this despite the fact that the build
+ is done in a QEMU sandbox on a machine with absolutely nothing
+ worth stealing, so I don't care if someone would go to a lot
+ of trouble to intercept my HTTPS download to send me an altered
+ kernel tarball".
+
+ If you still think this is unacceptable, send patches.
+
+ If you still think this is unacceptable, do not want to send
+ patches, but do want to waste bandwidth expaining how wrong
+ it is, you will be ignored.
+
+ FEATURE_WGET_OPENSSL does implement TLS verification
+ using the certificates available to OpenSSL.
config BUSYBOX_FEATURE_WGET_OPENSSL
bool "Try to connect to HTTPS using openssl"
- default n
+ default y
depends on BUSYBOX_WGET
help
- Choose how wget establishes SSL connection for https:// URLs.
-
- Busybox itself contains no SSL code. wget will spawn
- a helper program to talk over HTTPS.
-
- OpenSSL has a simple SSL client for debug purposes.
- If you select "openssl" helper, wget will effectively call
- "openssl s_client -quiet -connect IP:443 2>/dev/null"
- and pipe its data through it.
- Note inconvenient API: host resolution is done twice,
- and there is no guarantee openssl's idea of IPv6 address
- format is the same as ours.
- Another problem is that s_client prints debug information
- to stderr, and it needs to be suppressed. This means
- all error messages get suppressed too.
- openssl is also a big binary, often dynamically linked
- against ~15 libraries.
-
-config BUSYBOX_FEATURE_WGET_SSL_HELPER
- bool "Try to connect to HTTPS using ssl_helper"
- default n
- depends on BUSYBOX_WGET
+ Try to use openssl to handle HTTPS.
+
+ OpenSSL has a simple SSL client for debug purposes.
+ If you select this option, wget will effectively run:
+ "openssl s_client -quiet -connect hostname:443
+ -servername hostname 2>/dev/null" and pipe its data
+ through it. -servername is not used if hostname is numeric.
+ Note inconvenient API: host resolution is done twice,
+ and there is no guarantee openssl's idea of IPv6 address
+ format is the same as ours.
+ Another problem is that s_client prints debug information
+ to stderr, and it needs to be suppressed. This means
+ all error messages get suppressed too.
+ openssl is also a big binary, often dynamically linked
+ against ~15 libraries.
+
+ If openssl can't be executed, internal TLS code will be used
+ (if you enabled it); if openssl can be executed but fails later,
+ wget can't detect this, and download will fail.
+
+ By default BUSYBOX_TLS verification is performed, unless
+ --no-check-certificate option is passed.
+config BUSYBOX_WHOIS
+ bool "whois (6.3 kb)"
+ default y
help
- Choose how wget establishes SSL connection for https:// URLs.
-
- Busybox itself contains no SSL code. wget will spawn
- a helper program to talk over HTTPS.
-
- ssl_helper is a tool which can be built statically
- from busybox sources against a small embedded SSL library.
- Please see networking/ssl_helper/README.
- It does not require double host resolution and emits
- error messages to stderr.
-
- Precompiled static binary may be available at
- http://busybox.net/downloads/binaries/
-
+ whois is a client for the whois directory service
config BUSYBOX_ZCIP
- bool "zcip"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "zcip (8.4 kb)"
+ default y
select BUSYBOX_FEATURE_SYSLOG
help
- ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
- It's a daemon that allocates and defends a dynamically assigned
- address on the 169.254/16 network, requiring no system administrator.
+ BUSYBOX_ZCIP provides ZeroConf IPv4 address selection, according to RFC 3927.
+ It's a daemon that allocates and defends a dynamically assigned
+ address on the 169.254/16 network, requiring no system administrator.
+
+ See http://www.zeroconf.org for further details, and "zcip.script"
+ in the busybox examples.
- See http://www.zeroconf.org for further details, and "zcip.script"
- in the busybox examples.
+source package/busybox/config/networking/udhcp/Config.in
+
+config BUSYBOX_IFUPDOWN_UDHCPC_CMD_OPTIONS
+ string "ifup udhcpc command line options"
+ default "-R -n" if BUSYBOX_NOMMU
+ default "-R -n -b"
+ depends on BUSYBOX_IFUP || BUSYBOX_IFDOWN
+ help
+ Command line options to pass to udhcpc from ifup.
+ Intended to alter options not available in /etc/network/interfaces.
+ (IE: --syslog --background etc...)
endmenu
diff --git a/package/busybox/config/networking/udhcp/Config.in b/package/busybox/config/networking/udhcp/Config.in
index 02e56c3ef..111e6b5f5 100644
--- a/package/busybox/config/networking/udhcp/Config.in
+++ b/package/busybox/config/networking/udhcp/Config.in
@@ -1,148 +1,179 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
-config BUSYBOX_UDHCPC6
- bool "udhcp client for DHCPv6 (udhcpc6)"
- default n # not yet ready
- help
- udhcpc6 is a DHCPv6 client
-
config BUSYBOX_UDHCPD
- bool "udhcp server (udhcpd)"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "udhcpd (21 kb)"
+ default y
help
- udhcpd is a DHCP server geared primarily toward embedded systems,
- while striving to be fully functional and RFC compliant.
+ udhcpd is a DHCP server geared primarily toward embedded systems,
+ while striving to be fully functional and RFC compliant.
-config BUSYBOX_DHCPRELAY
- bool "dhcprelay"
+config BUSYBOX_FEATURE_UDHCPD_BASE_IP_ON_MAC
+ bool "Select IP address based on client MAC"
default n
+ depends on BUSYBOX_UDHCPD
help
- dhcprelay listens for dhcp requests on one or more interfaces
- and forwards these requests to a different interface or dhcp
- server.
+ If selected, udhcpd will base its selection of BUSYBOX_IP address to offer
+ on the client's hardware address. Otherwise udhcpd uses the next
+ consecutive free address.
-config BUSYBOX_DUMPLEASES
- bool "Lease display utility (dumpleases)"
- default n
- help
- dumpleases displays the leases written out by the udhcpd server.
- Lease times are stored in the file by time remaining in lease, or
- by the absolute time that it expires in seconds from epoch.
+ This reduces the frequency of IP address changes for clients
+ which let their lease expire, and makes consecutive DHCPOFFERS
+ for the same client to (almost always) contain the same
+ IP address.
config BUSYBOX_FEATURE_UDHCPD_WRITE_LEASES_EARLY
- bool "Rewrite the lease file at every new acknowledge"
+ bool "Rewrite lease file at every new acknowledge"
default y
depends on BUSYBOX_UDHCPD
help
- If selected, udhcpd will write a new file with leases every
- time a new lease has been accepted, thus eliminating the need
- to send SIGUSR1 for the initial writing or updating. Any timed
- rewriting remains undisturbed.
-
-config BUSYBOX_FEATURE_UDHCPD_BASE_IP_ON_MAC
- bool "Select IP address based on client MAC"
- default n
- depends on BUSYBOX_UDHCPD
- help
- If selected, udhcpd will base its selection of IP address to offer
- on the client's hardware address. Otherwise udhcpd uses the next
- consecutive free address.
-
- This reduces the frequency of IP address changes for clients
- which let their lease expire, and makes consecutive DHCPOFFERS
- for the same client to (almost always) contain the same
- IP address.
+ If selected, udhcpd will write a new file with leases every
+ time a new lease has been accepted, thus eliminating the need
+ to send SIGUSR1 for the initial writing or updating. Any timed
+ rewriting remains undisturbed.
config BUSYBOX_DHCPD_LEASES_FILE
string "Absolute path to lease file"
default "/var/lib/misc/udhcpd.leases"
depends on BUSYBOX_UDHCPD
help
- udhcpd stores addresses in a lease file. This is the absolute path
- of the file. Normally it is safe to leave it untouched.
+ udhcpd stores addresses in a lease file. This is the absolute path
+ of the file. Normally it is safe to leave it untouched.
+
+config BUSYBOX_DUMPLEASES
+ bool "dumpleases (5.1 kb)"
+ default y
+ help
+ dumpleases displays the leases written out by the udhcpd.
+ Lease times are stored in the file by time remaining in lease, or
+ by the absolute time that it expires in seconds from epoch.
+
+config BUSYBOX_DHCPRELAY
+ bool "dhcprelay (5.2 kb)"
+ default y
+ help
+ dhcprelay listens for DHCP requests on one or more interfaces
+ and forwards these requests to a different interface or DHCP
+ server.
config BUSYBOX_UDHCPC
- bool "udhcp client (udhcpc)"
+ bool "udhcpc (24 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
- udhcpc is a DHCP client geared primarily toward embedded systems,
- while striving to be fully functional and RFC compliant.
+ udhcpc is a DHCP client geared primarily toward embedded systems,
+ while striving to be fully functional and RFC compliant.
- The udhcp client negotiates a lease with the DHCP server and
- runs a script when a lease is obtained or lost.
+ The udhcp client negotiates a lease with the DHCP server and
+ runs a script when a lease is obtained or lost.
config BUSYBOX_FEATURE_UDHCPC_ARPING
bool "Verify that the offered address is free, using ARP ping"
default y
depends on BUSYBOX_UDHCPC
help
- If selected, udhcpc will send ARP probes and make sure
- the offered address is really not in use by anyone. The client
- will DHCPDECLINE the offer if the address is in use,
- and restart the discover process.
+ If selected, udhcpc will send BUSYBOX_ARP probes and make sure
+ the offered address is really not in use by anyone. The client
+ will DHCPDECLINE the offer if the address is in use,
+ and restart the discover process.
config BUSYBOX_FEATURE_UDHCPC_SANITIZEOPT
bool "Do not pass malformed host and domain names"
default y
depends on BUSYBOX_UDHCPC
help
- If selected, udhcpc will check some options (such as option 12 -
- hostname) and if they don't look like valid hostnames
- (for example, if they start with dash or contain spaces),
- they will be replaced with string "bad" when exporting
- to the environment.
+ If selected, udhcpc will check some options (such as option 12 -
+ hostname) and if they don't look like valid hostnames
+ (for example, if they start with dash or contain spaces),
+ they will be replaced with string "bad" when exporting
+ to the environment.
-config BUSYBOX_FEATURE_UDHCP_PORT
- bool "Enable '-P port' option for udhcpd and udhcpc"
- default n
- depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC
+config BUSYBOX_UDHCPC_DEFAULT_SCRIPT
+ string "Absolute path to config script"
+ default "/usr/share/udhcpc/default.script"
+ depends on BUSYBOX_UDHCPC
help
- At the cost of ~300 bytes, enables -P port option.
- This feature is typically not needed.
+ This script is called after udhcpc receives an answer. See
+ examples/udhcp for a working example. Normally it is safe
+ to leave this untouched.
-config BUSYBOX_UDHCP_DEBUG
- int "Maximum verbosity level for udhcp applets (0..9)"
- default 0
- range 0 9
- depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC || BUSYBOX_DHCPRELAY
+config BUSYBOX_UDHCPC6_DEFAULT_SCRIPT
+ string "Absolute path to config script for IPv6"
+ default "/usr/share/udhcpc/default6.script"
+ depends on BUSYBOX_UDHCPC6
+
+# udhcpc6 config is inserted here:
+config BUSYBOX_UDHCPC6
+ bool "udhcpc6 (21 kb)"
+ default y
+ depends on BUSYBOX_FEATURE_IPV6
help
- Verbosity can be increased with multiple -v options.
- This option controls how high it can be cranked up.
+ udhcpc6 is a DHCPv6 client
- Bigger values result in bigger code. Levels above 1
- are very verbose and useful for debugging only.
+config BUSYBOX_FEATURE_UDHCPC6_RFC3646
+ bool "Support RFC 3646 (DNS server and search list)"
+ default y
+ depends on BUSYBOX_UDHCPC6
+ help
+ List of DNS servers and domain search list can be requested with
+ "-O dns" and "-O search". If server gives these values,
+ they will be set in environment variables "dns" and "search".
-config BUSYBOX_FEATURE_UDHCP_RFC3397
- bool "Support for RFC3397 domain search (experimental)"
+config BUSYBOX_FEATURE_UDHCPC6_RFC4704
+ bool "Support RFC 4704 (Client FQDN)"
default y
- depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC
+ depends on BUSYBOX_UDHCPC6
help
- If selected, both client and server will support passing of domain
- search lists via option 119, specified in RFC 3397,
- and SIP servers option 120, specified in RFC 3361.
+ You can request FQDN to be given by server using "-O fqdn".
-config BUSYBOX_FEATURE_UDHCP_8021Q
- bool "Support for 802.1Q VLAN parameters"
+config BUSYBOX_FEATURE_UDHCPC6_RFC4833
+ bool "Support RFC 4833 (Timezones)"
default y
- depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC
+ depends on BUSYBOX_UDHCPC6
help
- If selected, both client and server will support passing of VLAN
- ID and priority via options 132 and 133 as per 802.1Q.
+ You can request POSIX timezone with "-O tz" and timezone name
+ with "-O timezone".
-config BUSYBOX_UDHCPC_DEFAULT_SCRIPT
- string "Absolute path to config script"
- default "/usr/share/udhcpc/default.script"
- depends on BUSYBOX_UDHCPC
+config BUSYBOX_FEATURE_UDHCPC6_RFC5970
+ bool "Support RFC 5970 (Network Boot)"
+ default y
+ depends on BUSYBOX_UDHCPC6
+ help
+ You can request bootfile-url with "-O bootfile_url" and
+ bootfile-params with "-O bootfile_params".
+
+comment "Common options for DHCP applets"
+ depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC || BUSYBOX_UDHCPC6 || BUSYBOX_DHCPRELAY
+
+config BUSYBOX_UDHCPC_DEFAULT_INTERFACE
+ string "Default interface name"
+ default "eth0"
+ depends on BUSYBOX_UDHCPC || BUSYBOX_UDHCPC6
+ help
+ The interface that will be used if no other interface is
+ specified on the commandline.
+
+config BUSYBOX_FEATURE_UDHCP_PORT
+ bool "Enable '-P port' option for udhcpd and udhcpc"
+ default n
+ depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC || BUSYBOX_UDHCPC6
help
- This script is called after udhcpc receives an answer. See
- examples/udhcp for a working example. Normally it is safe
- to leave this untouched.
+ At the cost of ~300 bytes, enables -P port option.
+ This feature is typically not needed.
+
+config BUSYBOX_UDHCP_DEBUG
+ int "Maximum verbosity level (0..9)"
+ default 2
+ range 0 9
+ depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC || BUSYBOX_UDHCPC6 || BUSYBOX_DHCPRELAY
+ help
+ Verbosity can be increased with multiple -v options.
+ This option controls how high it can be cranked up.
+
+ Bigger values result in bigger code. Levels above 1
+ are very verbose and useful for debugging only.
config BUSYBOX_UDHCPC_SLACK_FOR_BUGGY_SERVERS
int "DHCP options slack buffer size"
@@ -150,19 +181,36 @@ config BUSYBOX_UDHCPC_SLACK_FOR_BUGGY_SERVERS
range 0 924
depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC
help
- Some buggy DHCP servers send DHCP offer packets with option
- field larger than we expect (which might also be considered a
- buffer overflow attempt). These packets are normally discarded.
- If circumstances beyond your control force you to support such
- servers, this may help. The upper limit (924) makes dhcpc accept
- even 1500 byte packets (maximum-sized ethernet packets).
-
- This option does not make dhcp[cd] emit non-standard
- sized packets.
-
- Known buggy DHCP servers:
- 3Com OfficeConnect Remote 812 ADSL Router:
- seems to confuse maximum allowed UDP packet size with
- maximum size of entire IP packet, and sends packets which are
- 28 bytes too large.
- Seednet (ISP) VDSL: sends packets 2 bytes too large.
+ Some buggy DHCP servers send DHCP offer packets with option
+ field larger than we expect (which might also be considered a
+ buffer overflow attempt). These packets are normally discarded.
+ If circumstances beyond your control force you to support such
+ servers, this may help. The upper limit (924) makes udhcpc accept
+ even 1500 byte packets (maximum-sized ethernet packets).
+
+ This option does not make udhcp[cd] emit non-standard
+ sized packets.
+
+ Known buggy DHCP servers:
+ 3Com OfficeConnect Remote 812 ADSL Router:
+ seems to confuse maximum allowed UDP packet size with
+ maximum size of entire IP packet, and sends packets
+ which are 28 bytes too large.
+ Seednet (ISP) VDSL: sends packets 2 bytes too large.
+
+config BUSYBOX_FEATURE_UDHCP_RFC3397
+ bool "Support RFC 3397 domain search options"
+ default y
+ depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC
+ help
+ If selected, both client and server will support passing of domain
+ search lists via option 119, specified in RFC 3397,
+ and SIP servers option 120, specified in RFC 3361.
+
+config BUSYBOX_FEATURE_UDHCP_8021Q
+ bool "Support 802.1Q VLAN parameters options"
+ default y
+ depends on BUSYBOX_UDHCPD || BUSYBOX_UDHCPC
+ help
+ If selected, both client and server will support passing of VLAN
+ ID and priority via options 132 and 133 as per 802.1Q.
diff --git a/package/busybox/config/printutils/Config.in b/package/busybox/config/printutils/Config.in
index b5dd69e39..2f3d8a680 100644
--- a/package/busybox/config/printutils/Config.in
+++ b/package/busybox/config/printutils/Config.in
@@ -1,28 +1,26 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Print Utilities"
-
config BUSYBOX_LPD
- bool "lpd"
- default n
+ bool "lpd (5.5 kb)"
+ default y
help
- lpd is a print spooling daemon.
-
+ lpd is a print spooling daemon.
config BUSYBOX_LPR
- bool "lpr"
- default n
+ bool "lpr (9.9 kb)"
+ default y
help
- lpr sends files (or standard input) to a print spooling daemon.
+ lpr sends files (or standard input) to a print spooling daemon.
config BUSYBOX_LPQ
- bool "lpq"
- default n
+ bool "lpq (9.9 kb)"
+ default y
help
- lpq is a print spool queue examination and manipulation program.
+ lpq is a print spool queue examination and manipulation program.
endmenu
diff --git a/package/busybox/config/procps/Config.in b/package/busybox/config/procps/Config.in
index 6da62d0ce..0c1733b9f 100644
--- a/package/busybox/config/procps/Config.in
+++ b/package/busybox/config/procps/Config.in
@@ -1,284 +1,277 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Process Utilities"
-config BUSYBOX_IOSTAT
- bool "iostat"
- default n
- help
- Report CPU and I/O statistics
-
-config BUSYBOX_LSOF
- bool "lsof"
- default n
- help
- Show open files in the format of:
- PID <TAB> /path/to/executable <TAB> /path/to/opened/file
-
-config BUSYBOX_MPSTAT
- bool "mpstat"
- default n
- help
- Per-processor statistics
-
-config BUSYBOX_NMETER
- bool "nmeter"
- default n
- help
- Prints selected system stats continuously, one line per update.
-
-config BUSYBOX_PMAP
- bool "pmap"
- default n
- help
- Display processes' memory mappings.
-
-config BUSYBOX_POWERTOP
- bool "powertop"
- default n
- help
- Analyze power consumption on Intel-based laptops
-
-config BUSYBOX_PSTREE
- bool "pstree"
- default n
- help
- Display a tree of processes.
-
-config BUSYBOX_PWDX
- bool "pwdx"
- default n
- help
- Report current working directory of a process
-
-config BUSYBOX_SMEMCAP
- bool "smemcap"
- default n
+config BUSYBOX_FEATURE_FAST_TOP
+ bool "Faster /proc scanning code (+100 bytes)"
+ default n # all "fast or small" options default to small
help
- smemcap is a tool for capturing process data for smem,
- a memory usage statistic tool.
+ This option makes top and ps ~20% faster (or 20% less CPU hungry),
+ but code size is slightly bigger.
-config BUSYBOX_UPTIME
- bool "uptime"
+config BUSYBOX_FEATURE_SHOW_THREADS
+ bool "Support thread display in ps/pstree/top"
default y
- select BUSYBOX_PLATFORM_LINUX #sysinfo()
- help
- uptime gives a one line display of the current time, how long
- the system has been running, how many users are currently logged
- on, and the system load averages for the past 1, 5, and 15 minutes.
-
-config BUSYBOX_FEATURE_UPTIME_UTMP_SUPPORT
- bool "Support for showing the number of users"
- default n
- depends on BUSYBOX_UPTIME && BUSYBOX_FEATURE_UTMP
+ depends on BUSYBOX_PS || BUSYBOX_TOP || BUSYBOX_PSTREE
help
- Makes uptime display the number of users currently logged on.
+ Enables the ps -T option, showing of threads in pstree,
+ and 'h' command in top.
config BUSYBOX_FREE
- bool "free"
- default n
- select BUSYBOX_PLATFORM_LINUX #sysinfo()
+ bool "free (3.1 kb)"
+ default y
help
- free displays the total amount of free and used physical and swap
- memory in the system, as well as the buffers used by the kernel.
- The shared memory column should be ignored; it is obsolete.
-
+ free displays the total amount of free and used physical and swap
+ memory in the system, as well as the buffers used by the kernel.
+ The shared memory column should be ignored; it is obsolete.
config BUSYBOX_FUSER
- bool "fuser"
- default n
+ bool "fuser (7 kb)"
+ default y
help
- fuser lists all PIDs (Process IDs) that currently have a given
- file open. fuser can also list all PIDs that have a given network
- (TCP or UDP) port open.
-
+ fuser lists all PIDs (Process IDs) that currently have a given
+ file open. fuser can also list all PIDs that have a given network
+ (TCP or UDP) port open.
+config BUSYBOX_IOSTAT
+ bool "iostat (7.6 kb)"
+ default y
+ help
+ Report CPU and I/O statistics
config BUSYBOX_KILL
- bool "kill"
+ bool "kill (3.1 kb)"
default y
help
- The command kill sends the specified signal to the specified
- process or process group. If no signal is specified, the TERM
- signal is sent.
+ The command kill sends the specified signal to the specified
+ process or process group. If no signal is specified, the TERM
+ signal is sent.
config BUSYBOX_KILLALL
- bool "killall"
- default n
- depends on BUSYBOX_KILL
+ bool "killall (5.6 kb)"
+ default y
help
- killall sends a signal to all processes running any of the
- specified commands. If no signal name is specified, SIGTERM is
- sent.
+ killall sends a signal to all processes running any of the
+ specified commands. If no signal name is specified, SIGTERM is
+ sent.
config BUSYBOX_KILLALL5
- bool "killall5"
+ bool "killall5 (5.3 kb)"
default y
- depends on BUSYBOX_KILL
-
+ help
+ The SystemV killall command. killall5 sends a signal
+ to all processes except kernel threads and the processes
+ in its own session, so it won't kill the shell that is running
+ the script it was called from.
+config BUSYBOX_LSOF
+ bool "lsof (3.4 kb)"
+ default y
+ help
+ Show open files in the format of:
+ PID <TAB> /path/to/executable <TAB> /path/to/opened/file
+config BUSYBOX_MPSTAT
+ bool "mpstat (9.8 kb)"
+ default y
+ help
+ Per-processor statistics
+config BUSYBOX_NMETER
+ bool "nmeter (11 kb)"
+ default y
+ help
+ Prints selected system stats continuously, one line per update.
config BUSYBOX_PGREP
- bool "pgrep"
+ bool "pgrep (6.5 kb)"
default y
help
- Look for processes by name.
+ Look for processes by name.
+config BUSYBOX_PKILL
+ bool "pkill (7.5 kb)"
+ default y
+ help
+ Send signals to processes by name.
config BUSYBOX_PIDOF
- bool "pidof"
- default n
+ bool "pidof (6.3 kb)"
+ default y
help
- Pidof finds the process id's (pids) of the named programs. It prints
- those id's on the standard output.
+ Pidof finds the process id's (pids) of the named programs. It prints
+ those id's on the standard output.
config BUSYBOX_FEATURE_PIDOF_SINGLE
- bool "Enable argument for single shot (-s)"
+ bool "Enable single shot (-s)"
default y
depends on BUSYBOX_PIDOF
help
- Support argument '-s' for returning only the first pid found.
+ Support '-s' for returning only the first pid found.
config BUSYBOX_FEATURE_PIDOF_OMIT
- bool "Enable argument for omitting pids (-o)"
+ bool "Enable omitting pids (-o PID)"
default y
depends on BUSYBOX_PIDOF
help
- Support argument '-o' for omitting the given pids in output.
- The special pid %PPID can be used to name the parent process
- of the pidof, in other words the calling shell or shell script.
-
-config BUSYBOX_PKILL
- bool "pkill"
- default n
+ Support '-o PID' for omitting the given pid(s) in output.
+ The special pid %PPID can be used to name the parent process
+ of the pidof, in other words the calling shell or shell script.
+config BUSYBOX_PMAP
+ bool "pmap (6 kb)"
+ default y
help
- Send signals to processes by name.
+ Display processes' memory mappings.
+config BUSYBOX_POWERTOP
+ bool "powertop (9.6 kb)"
+ default y
+ help
+ Analyze power consumption on Intel-based laptops
+config BUSYBOX_FEATURE_POWERTOP_INTERACTIVE
+ bool "Accept keyboard commands"
+ default y
+ depends on BUSYBOX_POWERTOP
+ help
+ Without this, powertop will only refresh display every 10 seconds.
+ No keyboard commands will work, only ^C to terminate.
config BUSYBOX_PS
- bool "ps"
- depends on !BUSYBOX_DISABLE_PS
+ bool "ps (11 kb)"
default y
help
- ps gives a snapshot of the current processes.
+ ps gives a snapshot of the current processes.
config BUSYBOX_FEATURE_PS_WIDE
- bool "Enable wide output option (-w)"
+ bool "Enable wide output (-w)"
default y
- depends on BUSYBOX_PS && !BUSYBOX_DESKTOP
+ depends on (BUSYBOX_PS || BUSYBOX_MINIPS) && !BUSYBOX_DESKTOP
help
- Support argument 'w' for wide output.
- If given once, 132 chars are printed, and if given more
- than once, the length is unlimited.
+ Support argument 'w' for wide output.
+ If given once, 132 chars are printed, and if given more
+ than once, the length is unlimited.
config BUSYBOX_FEATURE_PS_LONG
- bool "Enable long output option (-l)"
- default n
- depends on BUSYBOX_PS && !BUSYBOX_DESKTOP
+ bool "Enable long output (-l)"
+ default y
+ depends on (BUSYBOX_PS || BUSYBOX_MINIPS) && !BUSYBOX_DESKTOP
help
- Support argument 'l' for long output.
- Adds fields PPID, RSS, START, TIME & TTY
+ Support argument 'l' for long output.
+ Adds fields PPID, RSS, START, TIME & TTY
config BUSYBOX_FEATURE_PS_TIME
- bool "Enable time and elapsed time output"
- default n
- depends on BUSYBOX_PS && BUSYBOX_DESKTOP
- select BUSYBOX_PLATFORM_LINUX
- help
- Support -o time and -o etime output specifiers.
-
-config BUSYBOX_FEATURE_PS_ADDITIONAL_COLUMNS
- bool "Enable additional ps columns"
- default n
- depends on BUSYBOX_PS && BUSYBOX_DESKTOP
- help
- Support -o rgroup, -o ruser, -o nice output specifiers.
+ bool "Enable -o time and -o etime specifiers"
+ default y
+ depends on (BUSYBOX_PS || BUSYBOX_MINIPS) && BUSYBOX_DESKTOP
config BUSYBOX_FEATURE_PS_UNUSUAL_SYSTEMS
bool "Support Linux prior to 2.4.0 and non-ELF systems"
default n
depends on BUSYBOX_FEATURE_PS_TIME
help
- Include support for measuring HZ on old kernels and non-ELF systems
- (if you are on Linux 2.4.0+ and use ELF, you don't need this)
+ Include support for measuring HZ on old kernels and non-ELF systems
+ (if you are on Linux 2.4.0+ and use ELF, you don't need this)
-config BUSYBOX_RENICE
- bool "renice"
- default n
+config BUSYBOX_FEATURE_PS_ADDITIONAL_COLUMNS
+ bool "Enable -o rgroup, -o ruser, -o nice specifiers"
+ default y
+ depends on (BUSYBOX_PS || BUSYBOX_MINIPS) && BUSYBOX_DESKTOP
+config BUSYBOX_PSTREE
+ bool "pstree (9.3 kb)"
+ default y
help
- Renice alters the scheduling priority of one or more running
- processes.
-
+ Display a tree of processes.
+config BUSYBOX_PWDX
+ bool "pwdx (3.7 kb)"
+ default y
+ help
+ Report current working directory of a process
+config BUSYBOX_SMEMCAP
+ bool "smemcap (2.5 kb)"
+ default y
+ help
+ smemcap is a tool for capturing process data for smem,
+ a memory usage statistic tool.
config BUSYBOX_BB_SYSCTL
- bool "sysctl"
+ bool "sysctl (7.4 kb)"
default y
help
- Configure kernel parameters at runtime.
-
+ Configure kernel parameters at runtime.
config BUSYBOX_TOP
- bool "top"
- default n
+ bool "top (18 kb)"
+ default y
help
- The top program provides a dynamic real-time view of a running
- system.
+ The top program provides a dynamic real-time view of a running
+ system.
+
+config BUSYBOX_FEATURE_TOP_INTERACTIVE
+ bool "Accept keyboard commands"
+ default y
+ depends on BUSYBOX_TOP
+ help
+ Without this, top will only refresh display every 5 seconds.
+ No keyboard commands will work, only ^C to terminate.
config BUSYBOX_FEATURE_TOP_CPU_USAGE_PERCENTAGE
bool "Show CPU per-process usage percentage"
default y
depends on BUSYBOX_TOP
help
- Make top display CPU usage for each process.
- This adds about 2k.
+ Make top display CPU usage for each process.
+ This adds about 2k.
config BUSYBOX_FEATURE_TOP_CPU_GLOBAL_PERCENTS
bool "Show CPU global usage percentage"
default y
depends on BUSYBOX_FEATURE_TOP_CPU_USAGE_PERCENTAGE
help
- Makes top display "CPU: NN% usr NN% sys..." line.
- This adds about 0.5k.
+ Makes top display "CPU: NN% usr NN% sys..." line.
+ This adds about 0.5k.
config BUSYBOX_FEATURE_TOP_SMP_CPU
bool "SMP CPU usage display ('c' key)"
default y
depends on BUSYBOX_FEATURE_TOP_CPU_GLOBAL_PERCENTS
help
- Allow 'c' key to switch between individual/cumulative CPU stats
- This adds about 0.5k.
+ Allow 'c' key to switch between individual/cumulative CPU stats
+ This adds about 0.5k.
config BUSYBOX_FEATURE_TOP_DECIMALS
bool "Show 1/10th of a percent in CPU/mem statistics"
default y
depends on BUSYBOX_FEATURE_TOP_CPU_USAGE_PERCENTAGE
help
- Show 1/10th of a percent in CPU/mem statistics.
- This adds about 0.3k.
+ Show 1/10th of a percent in CPU/mem statistics.
+ This adds about 0.3k.
config BUSYBOX_FEATURE_TOP_SMP_PROCESS
bool "Show CPU process runs on ('j' field)"
default y
depends on BUSYBOX_TOP
help
- Show CPU where process was last found running on.
- This is the 'j' field.
+ Show CPU where process was last found running on.
+ This is the 'j' field.
config BUSYBOX_FEATURE_TOPMEM
bool "Topmem command ('s' key)"
default y
depends on BUSYBOX_TOP
help
- Enable 's' in top (gives lots of memory info).
-
-config BUSYBOX_FEATURE_SHOW_THREADS
- bool "Support for showing threads in ps/pstree/top"
+ Enable 's' in top (gives lots of memory info).
+config BUSYBOX_UPTIME
+ bool "uptime (3.7 kb)"
default y
- depends on BUSYBOX_PS || BUSYBOX_TOP || BUSYBOX_PSTREE
help
- Enables the ps -T option, showing of threads in pstree,
- and 'h' command in top.
+ uptime gives a one line display of the current time, how long
+ the system has been running, how many users are currently logged
+ on, and the system load averages for the past 1, 5, and 15 minutes.
+config BUSYBOX_FEATURE_UPTIME_UTMP_SUPPORT
+ bool "Show the number of users"
+ default y
+ depends on BUSYBOX_UPTIME && BUSYBOX_FEATURE_UTMP
+ help
+ Display the number of users currently logged on.
config BUSYBOX_WATCH
- bool "watch"
- default n
+ bool "watch (4.4 kb)"
+ default y
help
- watch is used to execute a program periodically, showing
- output to the screen.
+ watch is used to execute a program periodically, showing
+ output to the screen.
endmenu
diff --git a/package/busybox/config/runit/Config.in b/package/busybox/config/runit/Config.in
index 87b9b6b1d..ac1a248ac 100644
--- a/package/busybox/config/runit/Config.in
+++ b/package/busybox/config/runit/Config.in
@@ -1,96 +1,98 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Runit Utilities"
+config BUSYBOX_CHPST
+ bool "chpst (9 kb)"
+ default y
+ help
+ chpst changes the process state according to the given options, and
+ execs specified program.
-config BUSYBOX_RUNSV
- bool "runsv"
- default n
+config BUSYBOX_SETUIDGID
+ bool "setuidgid (4 kb)"
+ default y
+ help
+ Sets soft resource limits as specified by options
+
+config BUSYBOX_ENVUIDGID
+ bool "envuidgid (3.9 kb)"
+ default y
+ help
+ Sets $UID to account's uid and $GID to account's gid
+
+config BUSYBOX_ENVDIR
+ bool "envdir (2.5 kb)"
+ default y
help
- runsv starts and monitors a service and optionally an appendant log
- service.
+ Sets various environment variables as specified by files
+ in the given directory
+config BUSYBOX_SOFTLIMIT
+ bool "softlimit (4.5 kb)"
+ default y
+ help
+ Sets soft resource limits as specified by options
+config BUSYBOX_RUNSV
+ bool "runsv (7.8 kb)"
+ default y
+ help
+ runsv starts and monitors a service and optionally an appendant log
+ service.
config BUSYBOX_RUNSVDIR
- bool "runsvdir"
- default n
+ bool "runsvdir (6.3 kb)"
+ default y
help
- runsvdir starts a runsv process for each subdirectory, or symlink to
- a directory, in the services directory dir, up to a limit of 1000
- subdirectories, and restarts a runsv process if it terminates.
+ runsvdir starts a runsv process for each subdirectory, or symlink to
+ a directory, in the services directory dir, up to a limit of 1000
+ subdirectories, and restarts a runsv process if it terminates.
config BUSYBOX_FEATURE_RUNSVDIR_LOG
bool "Enable scrolling argument log"
depends on BUSYBOX_RUNSVDIR
default n
help
- Enable feature where second parameter of runsvdir holds last error
- message (viewable via top/ps). Otherwise (feature is off
- or no parameter), error messages go to stderr only.
-
+ Enable feature where second parameter of runsvdir holds last error
+ message (viewable via top/ps). Otherwise (feature is off
+ or no parameter), error messages go to stderr only.
config BUSYBOX_SV
- bool "sv"
- default n
+ bool "sv (8.5 kb)"
+ default y
help
- sv reports the current status and controls the state of services
- monitored by the runsv supervisor.
+ sv reports the current status and controls the state of services
+ monitored by the runsv supervisor.
config BUSYBOX_SV_DEFAULT_SERVICE_DIR
string "Default directory for services"
default "/var/service"
- depends on BUSYBOX_SV
+ depends on BUSYBOX_SV || BUSYBOX_SVC || BUSYBOX_SVOK
help
- Default directory for services.
- Defaults to "/var/service"
+ Default directory for services.
+ Defaults to "/var/service"
config BUSYBOX_SVC
- bool "svc"
- default n
+ bool "svc (8.4 kb)"
+ default y
help
- svc controls the state of services monitored by the runsv supervisor.
- It is comaptible with daemontools command with the same name.
+ svc controls the state of services monitored by the runsv supervisor.
+ It is compatible with daemontools command with the same name.
-config BUSYBOX_SVLOGD
- bool "svlogd"
- default n
+config BUSYBOX_SVOK
+ bool "svok (1.5 kb)"
+ default y
help
- svlogd continuously reads log data from its standard input, optionally
- filters log messages, and writes the data to one or more automatically
- rotated logs.
-
-config BUSYBOX_CHPST
- bool "chpst"
- default n
- help
- chpst changes the process state according to the given options, and
- execs specified program.
-
-config BUSYBOX_SETUIDGID
- bool "setuidgid"
- default n
- help
- Sets soft resource limits as specified by options
-
-config BUSYBOX_ENVUIDGID
- bool "envuidgid"
- default n
- help
- Sets $UID to account's uid and $GID to account's gid
-
-config BUSYBOX_ENVDIR
- bool "envdir"
- default n
- help
- Sets various environment variables as specified by files
- in the given directory
-
-config BUSYBOX_SOFTLIMIT
- bool "softlimit"
- default n
+ svok checks whether runsv supervisor is running.
+ It is compatible with daemontools command with the same name.
+config BUSYBOX_SVLOGD
+ bool "svlogd (16 kb)"
+ default y
help
- Sets soft resource limits as specified by options
+ svlogd continuously reads log data from its standard input, optionally
+ filters log messages, and writes the data to one or more automatically
+ rotated logs.
endmenu
diff --git a/package/busybox/config/selinux/Config.in b/package/busybox/config/selinux/Config.in
index 8818ef5a1..ab2d8a206 100644
--- a/package/busybox/config/selinux/Config.in
+++ b/package/busybox/config/selinux/Config.in
@@ -1,124 +1,99 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "SELinux Utilities"
depends on BUSYBOX_SELINUX
-
config BUSYBOX_CHCON
- bool "chcon"
+ bool "chcon (8.9 kb)"
default n
depends on BUSYBOX_SELINUX
help
- Enable support to change the security context of file.
-
-config BUSYBOX_FEATURE_CHCON_LONG_OPTIONS
- bool "Enable long options"
- default y
- depends on BUSYBOX_CHCON && BUSYBOX_LONG_OPTS
- help
- Support long options for the chcon applet.
-
+ Enable support to change the security context of file.
config BUSYBOX_GETENFORCE
- bool "getenforce"
+ bool "getenforce (1.7 kb)"
default n
depends on BUSYBOX_SELINUX
help
- Enable support to get the current mode of SELinux.
-
+ Enable support to get the current mode of SELinux.
config BUSYBOX_GETSEBOOL
- bool "getsebool"
+ bool "getsebool (5.5 kb)"
default n
depends on BUSYBOX_SELINUX
help
- Enable support to get SELinux boolean values.
-
+ Enable support to get SELinux boolean values.
config BUSYBOX_LOAD_POLICY
- bool "load_policy"
+ bool "load_policy (1.6 kb)"
default n
depends on BUSYBOX_SELINUX
help
- Enable support to load SELinux policy.
-
+ Enable support to load SELinux policy.
config BUSYBOX_MATCHPATHCON
- bool "matchpathcon"
+ bool "matchpathcon (6.1 kb)"
default n
depends on BUSYBOX_SELINUX
help
- Enable support to get default security context of the
- specified path from the file contexts configuration.
-
-config BUSYBOX_RESTORECON
- bool "restorecon"
+ Enable support to get default security context of the
+ specified path from the file contexts configuration.
+config BUSYBOX_RUNCON
+ bool "runcon (6.6 kb)"
default n
depends on BUSYBOX_SELINUX
help
- Enable support to relabel files. The feature is almost
- the same as setfiles, but usage is a little different.
-
-config BUSYBOX_RUNCON
- bool "runcon"
+ Enable support to run command in specified security context.
+config BUSYBOX_SELINUXENABLED
+ bool "selinuxenabled (321 bytes)"
default n
depends on BUSYBOX_SELINUX
help
- Enable support to run command in speficied security context.
-
-config BUSYBOX_FEATURE_RUNCON_LONG_OPTIONS
- bool "Enable long options"
- default y
- depends on BUSYBOX_RUNCON && BUSYBOX_LONG_OPTS
- help
- Support long options for the runcon applet.
-
-config BUSYBOX_SELINUXENABLED
- bool "selinuxenabled"
+ Enable support for this command to be used within shell scripts
+ to determine if selinux is enabled.
+config BUSYBOX_SESTATUS
+ bool "sestatus (12 kb)"
default n
depends on BUSYBOX_SELINUX
help
- Enable support for this command to be used within shell scripts
- to determine if selinux is enabled.
-
+ Displays the status of SELinux.
config BUSYBOX_SETENFORCE
- bool "setenforce"
+ bool "setenforce (2.1 kb)"
default n
depends on BUSYBOX_SELINUX
help
- Enable support to modify the mode SELinux is running in.
-
+ Enable support to modify the mode SELinux is running in.
config BUSYBOX_SETFILES
- bool "setfiles"
+ bool "setfiles (13 kb)"
default n
depends on BUSYBOX_SELINUX
help
- Enable support to modify to relabel files.
- Notice: If you built libselinux with -D_FILE_OFFSET_BITS=64,
- (It is default in libselinux's Makefile), you _must_ enable
- CONFIG_LFS.
+ Enable support to modify to relabel files.
+ Notice: If you built libselinux with -D_FILE_OFFSET_BITS=64,
+ (It is default in libselinux's Makefile), you _must_ enable
+ CONFIG_LFS.
config BUSYBOX_FEATURE_SETFILES_CHECK_OPTION
bool "Enable check option"
default n
depends on BUSYBOX_SETFILES
help
- Support "-c" option (check the validity of the contexts against
- the specified binary policy) for setfiles. Requires libsepol.
+ Support "-c" option (check the validity of the contexts against
+ the specified binary policy) for setfiles. Requires libsepol.
-config BUSYBOX_SETSEBOOL
- bool "setsebool"
+config BUSYBOX_RESTORECON
+ bool "restorecon (12 kb)"
default n
depends on BUSYBOX_SELINUX
help
- Enable support for change boolean.
- semanage and -P option is not supported yet.
-
-config BUSYBOX_SESTATUS
- bool "sestatus"
+ Enable support to relabel files. The feature is almost
+ the same as setfiles, but usage is a little different.
+config BUSYBOX_SETSEBOOL
+ bool "setsebool (1.7 kb)"
default n
depends on BUSYBOX_SELINUX
help
- Displays the status of SELinux.
+ Enable support for change boolean.
+ semanage and -P option is not supported yet.
endmenu
diff --git a/package/busybox/config/shell/Config.in b/package/busybox/config/shell/Config.in
index efc17ff49..6ffa3b2b0 100644
--- a/package/busybox/config/shell/Config.in
+++ b/package/busybox/config/shell/Config.in
@@ -1,427 +1,608 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Shells"
-config BUSYBOX_ASH
+
+choice
+ prompt "Choose which shell is aliased to 'sh' name"
+ default BUSYBOX_SH_IS_ASH
+ help
+ Choose which shell you want to be executed by 'sh' alias.
+ The ash shell is the most bash compatible and full featured one.
+
+# note: cannot use "select BUSYBOX_ASH" here, it breaks "make allnoconfig"
+config BUSYBOX_SH_IS_ASH
+ depends on !BUSYBOX_NOMMU
bool "ash"
- default n
+ select BUSYBOX_SHELL_ASH
+ help
+ Choose ash to be the shell executed by 'sh' name.
+ The ash code will be built into busybox. If you don't select
+ "ash" choice (CONFIG_ASH), this shell may only be invoked by
+ the name 'sh' (and not 'ash').
+
+config BUSYBOX_SH_IS_HUSH
+ bool "hush"
+ select BUSYBOX_SHELL_HUSH
+ help
+ Choose hush to be the shell executed by 'sh' name.
+ The hush code will be built into busybox. If you don't select
+ "hush" choice (CONFIG_HUSH), this shell may only be invoked by
+ the name 'sh' (and not 'hush').
+
+config BUSYBOX_SH_IS_NONE
+ bool "none"
+
+endchoice
+
+choice
+ prompt "Choose which shell is aliased to 'bash' name"
+ default BUSYBOX_BASH_IS_NONE
+ help
+ Choose which shell you want to be executed by 'bash' alias.
+ The ash shell is the most bash compatible and full featured one,
+ although compatibility is far from being complete.
+
+ Note that selecting this option does not switch on any bash
+ compatibility code. It merely makes it possible to install
+ /bin/bash (sym)link and run scripts which start with
+ #!/bin/bash line.
+
+ Many systems use it in scripts which use bash-specific features,
+ even simple ones like $RANDOM. Without this option, busybox
+ can't be used for running them because it won't recongnize
+ "bash" as a supported applet name.
+
+config BUSYBOX_BASH_IS_ASH
+ depends on !BUSYBOX_NOMMU
+ bool "ash"
+ select BUSYBOX_SHELL_ASH
+ help
+ Choose ash to be the shell executed by 'bash' name.
+ The ash code will be built into busybox. If you don't select
+ "ash" choice (CONFIG_ASH), this shell may only be invoked by
+ the name 'bash' (and not 'ash').
+
+config BUSYBOX_BASH_IS_HUSH
+ bool "hush"
+ select BUSYBOX_SHELL_HUSH
+ help
+ Choose hush to be the shell executed by 'bash' name.
+ The hush code will be built into busybox. If you don't select
+ "hush" choice (CONFIG_HUSH), this shell may only be invoked by
+ the name 'bash' (and not 'hush').
+
+config BUSYBOX_BASH_IS_NONE
+ bool "none"
+
+endchoice
+
+
+config BUSYBOX_SHELL_ASH
+ bool #hidden option
depends on !BUSYBOX_NOMMU
+
+config BUSYBOX_ASH
+ bool "ash (78 kb)"
+ default y
+ depends on !BUSYBOX_NOMMU
+ select BUSYBOX_SHELL_ASH
+ help
+ The most complete and most pedantically correct shell included with
+ busybox. This shell is actually a derivative of the Debian 'dash'
+ shell (by Herbert Xu), which was created by porting the 'ash' shell
+ (written by Kenneth Almquist) from NetBSD.
+
+# ash options
+# note: Don't remove !NOMMU part in the next line; it would break
+# menuconfig's indenting.
+if !BUSYBOX_NOMMU && (BUSYBOX_SHELL_ASH || BUSYBOX_ASH || BUSYBOX_SH_IS_ASH || BUSYBOX_BASH_IS_ASH)
+
+config BUSYBOX_ASH_OPTIMIZE_FOR_SIZE
+ bool "Optimize for size instead of speed"
+ default y
+ depends on BUSYBOX_SHELL_ASH
+
+config BUSYBOX_ASH_INTERNAL_GLOB
+ bool "Use internal glob() implementation"
+ default y # Y is bigger, but because of uclibc glob() bug, let Y be default for now
+ depends on BUSYBOX_SHELL_ASH
help
- Tha 'ash' shell adds about 60k in the default configuration and is
- the most complete and most pedantically correct shell included with
- busybox. This shell is actually a derivative of the Debian 'dash'
- shell (by Herbert Xu), which was created by porting the 'ash' shell
- (written by Kenneth Almquist) from NetBSD.
+ Do not use glob() function from libc, use internal implementation.
+ Use this if you are getting "glob.h: No such file or directory"
+ or similar build errors.
+ Note that as of now (2017-01), uclibc and musl glob() both have bugs
+ which would break ash if you select N here.
config BUSYBOX_ASH_BASH_COMPAT
bool "bash-compatible extensions"
default y
- depends on BUSYBOX_ASH
+ depends on BUSYBOX_SHELL_ASH
+
+config BUSYBOX_ASH_BASH_SOURCE_CURDIR
+ bool "'source' and '.' builtins search current directory after $PATH"
+ default n # do not encourage non-standard behavior
+ depends on BUSYBOX_ASH_BASH_COMPAT
help
- Enable bash-compatible extensions.
+ This is not compliant with standards. Avoid if possible.
-config BUSYBOX_ASH_IDLE_TIMEOUT
- bool "Idle timeout variable"
- default n
- depends on BUSYBOX_ASH
+config BUSYBOX_ASH_BASH_NOT_FOUND_HOOK
+ bool "command_not_found_handle hook support"
+ default y
+ depends on BUSYBOX_ASH_BASH_COMPAT
help
- Enables bash-like auto-logout after $TMOUT seconds of idle time.
+ Enable support for the 'command_not_found_handle' hook function,
+ from GNU bash, which allows for alternative command not found
+ handling.
config BUSYBOX_ASH_JOB_CONTROL
bool "Job control"
default y
- depends on BUSYBOX_ASH
- help
- Enable job control in the ash shell.
+ depends on BUSYBOX_SHELL_ASH
config BUSYBOX_ASH_ALIAS
bool "Alias support"
default y
- depends on BUSYBOX_ASH
- help
- Enable alias support in the ash shell.
+ depends on BUSYBOX_SHELL_ASH
-config BUSYBOX_ASH_GETOPTS
- bool "Builtin getopt to parse positional parameters"
+config BUSYBOX_ASH_RANDOM_SUPPORT
+ bool "Pseudorandom generator and $RANDOM variable"
default y
- depends on BUSYBOX_ASH
+ depends on BUSYBOX_SHELL_ASH
help
- Enable support for getopts builtin in ash.
+ Enable pseudorandom generator and dynamic variable "$RANDOM".
+ Each read of "$RANDOM" will generate a new pseudorandom value.
+ You can reset the generator by using a specified start value.
+ After "unset RANDOM" the generator will switch off and this
+ variable will no longer have special treatment.
-config BUSYBOX_ASH_BUILTIN_ECHO
- bool "Builtin version of 'echo'"
+config BUSYBOX_ASH_EXPAND_PRMT
+ bool "Expand prompt string"
default y
- depends on BUSYBOX_ASH
+ depends on BUSYBOX_SHELL_ASH
help
- Enable support for echo builtin in ash.
+ $PS# may contain volatile content, such as backquote commands.
+ This option recreates the prompt string from the environment
+ variable each time it is displayed.
-config BUSYBOX_ASH_BUILTIN_PRINTF
- bool "Builtin version of 'printf'"
+config BUSYBOX_ASH_IDLE_TIMEOUT
+ bool "Idle timeout variable $TMOUT"
default y
- depends on BUSYBOX_ASH
+ depends on BUSYBOX_SHELL_ASH
help
- Enable support for printf builtin in ash.
+ Enable bash-like auto-logout after $TMOUT seconds of idle time.
-config BUSYBOX_ASH_BUILTIN_TEST
- bool "Builtin version of 'test'"
+config BUSYBOX_ASH_MAIL
+ bool "Check for new mail in interactive shell"
default y
- depends on BUSYBOX_ASH
+ depends on BUSYBOX_SHELL_ASH
help
- Enable support for test builtin in ash.
+ Enable "check for new mail" function:
+ if set, $MAIL file and $MAILPATH list of files
+ are checked for mtime changes, and "you have mail"
+ message is printed if change is detected.
-config BUSYBOX_ASH_HELP
- bool "help builtin"
+config BUSYBOX_ASH_ECHO
+ bool "echo builtin"
default y
- depends on BUSYBOX_ASH
- help
- Enable help builtin in ash.
+ depends on BUSYBOX_SHELL_ASH
-config BUSYBOX_ASH_CMDCMD
- bool "'command' command to override shell builtins"
+config BUSYBOX_ASH_PRINTF
+ bool "printf builtin"
default y
- depends on BUSYBOX_ASH
- help
- Enable support for the ash 'command' builtin, which allows
- you to run the specified command with the specified arguments,
- even when there is an ash builtin command with the same name.
+ depends on BUSYBOX_SHELL_ASH
-config BUSYBOX_ASH_MAIL
- bool "Check for new mail on interactive shells"
- default n
- depends on BUSYBOX_ASH
- help
- Enable "check for new mail" function in the ash shell.
+config BUSYBOX_ASH_TEST
+ bool "test builtin"
+ default y
+ depends on BUSYBOX_SHELL_ASH
-config BUSYBOX_ASH_OPTIMIZE_FOR_SIZE
- bool "Optimize for size instead of speed"
+config BUSYBOX_ASH_SLEEP
+ bool "sleep builtin"
default y
- depends on BUSYBOX_ASH
- help
- Compile ash for reduced size at the price of speed.
+ depends on BUSYBOX_SHELL_ASH
-config BUSYBOX_ASH_INTERNAL_GLOB
- bool "Use internal glob() implementation"
- default y # Y is bigger, but because of uclibc glob() bug, let Y be default for now
- depends on BUSYBOX_ASH
- help
- Do not use glob() function from libc, use internal implementation.
- Use this if you are getting "glob.h: No such file or directory"
- or similar build errors.
+config BUSYBOX_ASH_HELP
+ bool "help builtin"
+ default y
+ depends on BUSYBOX_SHELL_ASH
-config BUSYBOX_ASH_RANDOM_SUPPORT
- bool "Pseudorandom generator and $RANDOM variable"
+config BUSYBOX_ASH_GETOPTS
+ bool "getopts builtin"
default y
- depends on BUSYBOX_ASH
- help
- Enable pseudorandom generator and dynamic variable "$RANDOM".
- Each read of "$RANDOM" will generate a new pseudorandom value.
- You can reset the generator by using a specified start value.
- After "unset RANDOM" the generator will switch off and this
- variable will no longer have special treatment.
+ depends on BUSYBOX_SHELL_ASH
-config BUSYBOX_ASH_EXPAND_PRMT
- bool "Expand prompt string"
+config BUSYBOX_ASH_CMDCMD
+ bool "command builtin"
default y
- depends on BUSYBOX_ASH
+ depends on BUSYBOX_SHELL_ASH
help
- "PS#" may contain volatile content, such as backquote commands.
- This option recreates the prompt string from the environment
- variable each time it is displayed.
+ Enable support for the 'command' builtin, which allows
+ you to run the specified command or builtin,
+ even when there is a function with the same name.
+endif # ash options
config BUSYBOX_CTTYHACK
- bool "cttyhack"
- default n
+ bool "cttyhack (2.4 kb)"
+ default y
help
- One common problem reported on the mailing list is the "can't
- access tty; job control turned off" error message, which typically
- appears when one tries to use a shell with stdin/stdout on
- /dev/console.
- This device is special - it cannot be a controlling tty.
-
- The proper solution is to use the correct device instead of
- /dev/console.
+ One common problem reported on the mailing list is the "can't
+ access tty; job control turned off" error message, which typically
+ appears when one tries to use a shell with stdin/stdout on
+ /dev/console.
+ This device is special - it cannot be a controlling tty.
- cttyhack provides a "quick and dirty" solution to this problem.
- It analyzes stdin with various ioctls, trying to determine whether
- it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
- On Linux it also checks sysfs for a pointer to the active console.
- If cttyhack is able to find the real console device, it closes
- stdin/out/err and reopens that device.
- Then it executes the given program. Opening the device will make
- that device a controlling tty. This may require cttyhack
- to be a session leader.
+ The proper solution is to use the correct device instead of
+ /dev/console.
- Example for /etc/inittab (for busybox init):
+ cttyhack provides a "quick and dirty" solution to this problem.
+ It analyzes stdin with various ioctls, trying to determine whether
+ it is a /dev/ttyN or /dev/ttySN (virtual terminal or serial line).
+ On Linux it also checks sysfs for a pointer to the active console.
+ If cttyhack is able to find the real console device, it closes
+ stdin/out/err and reopens that device.
+ Then it executes the given program. Opening the device will make
+ that device a controlling tty. This may require cttyhack
+ to be a session leader.
- ::respawn:/bin/cttyhack /bin/sh
+ Example for /etc/inittab (for busybox init):
- Starting an interactive shell from boot shell script:
+ ::respawn:/bin/cttyhack /bin/sh
- setsid cttyhack sh
+ Starting an interactive shell from boot shell script:
- Giving controlling tty to shell running with PID 1:
+ setsid cttyhack sh
- # exec cttyhack sh
+ Giving controlling tty to shell running with PID 1:
- Without cttyhack, you need to know exact tty name,
- and do something like this:
+ # exec cttyhack sh
- # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
+ Without cttyhack, you need to know exact tty name,
+ and do something like this:
- Starting getty on a controlling tty from a shell script:
+ # exec setsid sh -c 'exec sh </dev/tty1 >/dev/tty1 2>&1'
- # getty 115200 $(cttyhack)
+ Starting getty on a controlling tty from a shell script:
+ # getty 115200 $(cttyhack)
config BUSYBOX_HUSH
- bool "hush"
- default y if ADK_TARGET_UCLINUX
- default n
+ bool "hush (68 kb)"
+ default y
+ select BUSYBOX_SHELL_HUSH
help
- hush is a small shell (25k). It handles the normal flow control
- constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
- case/esac. Redirections, here documents, $((arithmetic))
- and functions are supported.
+ hush is a small shell. It handles the normal flow control
+ constructs such as if/then/elif/else/fi, for/in/do/done, while loops,
+ case/esac. Redirections, here documents, $((arithmetic))
+ and functions are supported.
+
+ It will compile and work on no-mmu systems.
- It will compile and work on no-mmu systems.
+ It does not handle select, aliases, tilde expansion,
+ &>file and >&file redirection of stdout+stderr.
- It does not handle select, aliases, tilde expansion,
- &>file and >&file redirection of stdout+stderr.
+config BUSYBOX_SHELL_HUSH
+ bool "Internal shell for embedded script support"
+ default n
+
+# hush options
+# It's only needed to get "nice" menuconfig indenting.
+if BUSYBOX_SHELL_HUSH || BUSYBOX_HUSH || BUSYBOX_SH_IS_HUSH || BUSYBOX_BASH_IS_HUSH
config BUSYBOX_HUSH_BASH_COMPAT
bool "bash-compatible extensions"
default y
- depends on BUSYBOX_HUSH
- help
- Enable bash-compatible extensions.
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_BRACE_EXPANSION
bool "Brace expansion"
default y
depends on BUSYBOX_HUSH_BASH_COMPAT
help
- Enable {abc,def} extension.
+ Enable {abc,def} extension.
-config BUSYBOX_HUSH_HELP
- bool "help builtin"
- default y
- depends on BUSYBOX_HUSH
+config BUSYBOX_HUSH_BASH_SOURCE_CURDIR
+ bool "'source' and '.' builtins search current directory after $PATH"
+ default n # do not encourage non-standard behavior
+ depends on BUSYBOX_HUSH_BASH_COMPAT
help
- Enable help builtin in hush. Code size + ~1 kbyte.
+ This is not compliant with standards. Avoid if possible.
+
+config BUSYBOX_HUSH_LINENO_VAR
+ bool "$LINENO variable (bashism)"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_INTERACTIVE
bool "Interactive mode"
default y
- depends on BUSYBOX_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
- Enable interactive mode (prompt and command editing).
- Without this, hush simply reads and executes commands
- from stdin just like a shell script from a file.
- No prompt, no PS1/PS2 magic shell variables.
+ Enable interactive mode (prompt and command editing).
+ Without this, hush simply reads and executes commands
+ from stdin just like a shell script from a file.
+ No prompt, no PS1/PS2 magic shell variables.
config BUSYBOX_HUSH_SAVEHISTORY
bool "Save command history to .hush_history"
default y
depends on BUSYBOX_HUSH_INTERACTIVE && BUSYBOX_FEATURE_EDITING_SAVEHISTORY
- help
- Enable history saving in hush.
config BUSYBOX_HUSH_JOB
bool "Job control"
default y
depends on BUSYBOX_HUSH_INTERACTIVE
help
- Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
- command (not entire shell), fg/bg builtins work. Without this option,
- "cmd &" still works by simply spawning a process and immediately
- prompting for next command (or executing next command in a script),
- but no separate process group is formed.
+ Enable job control: Ctrl-Z backgrounds, Ctrl-C interrupts current
+ command (not entire shell), fg/bg builtins work. Without this option,
+ "cmd &" still works by simply spawning a process and immediately
+ prompting for next command (or executing next command in a script),
+ but no separate process group is formed.
config BUSYBOX_HUSH_TICK
- bool "Process substitution"
+ bool "Support command substitution"
default y
- depends on BUSYBOX_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
- Enable process substitution `command` and $(command) in hush.
+ Enable `command` and $(command).
config BUSYBOX_HUSH_IF
bool "Support if/then/elif/else/fi"
default y
- depends on BUSYBOX_HUSH
- help
- Enable if/then/elif/else/fi in hush.
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_LOOPS
bool "Support for, while and until loops"
default y
- depends on BUSYBOX_HUSH
- help
- Enable for, while and until loops in hush.
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_CASE
bool "Support case ... esac statement"
default y
- depends on BUSYBOX_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
- Enable case ... esac statement in hush. +400 bytes.
+ Enable case ... esac statement. +400 bytes.
config BUSYBOX_HUSH_FUNCTIONS
bool "Support funcname() { commands; } syntax"
default y
- depends on BUSYBOX_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
- Enable support for shell functions in hush. +800 bytes.
+ Enable support for shell functions. +800 bytes.
config BUSYBOX_HUSH_LOCAL
- bool "Support local builtin"
+ bool "local builtin"
default y
depends on BUSYBOX_HUSH_FUNCTIONS
help
- Enable support for local variables in functions.
+ Enable support for local variables in functions.
config BUSYBOX_HUSH_RANDOM_SUPPORT
bool "Pseudorandom generator and $RANDOM variable"
default y
- depends on BUSYBOX_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
- Enable pseudorandom generator and dynamic variable "$RANDOM".
- Each read of "$RANDOM" will generate a new pseudorandom value.
+ Enable pseudorandom generator and dynamic variable "$RANDOM".
+ Each read of "$RANDOM" will generate a new pseudorandom value.
+
+config BUSYBOX_HUSH_MODE_X
+ bool "Support 'hush -x' option and 'set -x' command"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
+ help
+ This instructs hush to print commands before execution.
+ Adds ~300 bytes.
+
+config BUSYBOX_HUSH_ECHO
+ bool "echo builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
+
+config BUSYBOX_HUSH_PRINTF
+ bool "printf builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
+
+config BUSYBOX_HUSH_TEST
+ bool "test builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
+
+config BUSYBOX_HUSH_HELP
+ bool "help builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
+
+config BUSYBOX_HUSH_EXPORT
+ bool "export builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
config BUSYBOX_HUSH_EXPORT_N
bool "Support 'export -n' option"
default y
- depends on BUSYBOX_HUSH
+ depends on BUSYBOX_HUSH_EXPORT
help
- export -n unexports variables. It is a bash extension.
+ export -n unexports variables. It is a bash extension.
-config BUSYBOX_HUSH_MODE_X
- bool "Support 'hush -x' option and 'set -x' command"
+config BUSYBOX_HUSH_READONLY
+ bool "readonly builtin"
default y
- depends on BUSYBOX_HUSH
+ depends on BUSYBOX_SHELL_HUSH
help
- This instructs hush to print commands before execution.
- Adds ~300 bytes.
+ Enable support for read-only variables.
-config BUSYBOX_MSH
- bool "msh (deprecated: aliased to hush)"
- default n
- select BUSYBOX_HUSH
- help
- msh is deprecated and will be removed, please migrate to hush.
+config BUSYBOX_HUSH_KILL
+ bool "kill builtin (supports kill %jobspec)"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
-choice
-prompt "Choose which shell is aliased to 'sh' name"
+config BUSYBOX_HUSH_WAIT
+ bool "wait builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
-config BUSYBOX_SH_IS_NONE
- bool "none"
+config BUSYBOX_HUSH_COMMAND
+ bool "command builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
-config BUSYBOX_SH_IS_ASH
- bool "ash"
+config BUSYBOX_HUSH_TRAP
+ bool "trap builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
-config BUSYBOX_SH_IS_HUSH
- bool "hush"
+config BUSYBOX_HUSH_TYPE
+ bool "type builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
-endchoice
+config BUSYBOX_HUSH_TIMES
+ bool "times builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
-choice
-prompt "Choose which shell is aliased to 'bash' name"
+config BUSYBOX_HUSH_READ
+ bool "read builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
-config BUSYBOX_BASH_IS_NONE
- bool "none"
+config BUSYBOX_HUSH_SET
+ bool "set builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
-config BUSYBOX_BASH_IS_ASH
- bool "ash"
+config BUSYBOX_HUSH_UNSET
+ bool "unset builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
-config BUSYBOX_BASH_IS_HUSH
- bool "hush"
+config BUSYBOX_HUSH_ULIMIT
+ bool "ulimit builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
-endchoice
+config BUSYBOX_HUSH_UMASK
+ bool "umask builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
+
+config BUSYBOX_HUSH_GETOPTS
+ bool "getopts builtin"
+ default y
+ depends on BUSYBOX_SHELL_HUSH
+
+config BUSYBOX_HUSH_MEMLEAK
+ bool "memleak builtin (debugging)"
+ default n
+ depends on BUSYBOX_SHELL_HUSH
+
+endif # hush options
+
+
+comment "Options common to all shells"
+if BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
config BUSYBOX_FEATURE_SH_MATH
bool "POSIX math support"
default y
- depends on BUSYBOX_ASH || BUSYBOX_HUSH
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
help
- Enable math support in the shell via $((...)) syntax.
+ Enable math support in the shell via $((...)) syntax.
config BUSYBOX_FEATURE_SH_MATH_64
bool "Extend POSIX math support to 64 bit"
default y
depends on BUSYBOX_FEATURE_SH_MATH
help
- Enable 64-bit math support in the shell. This will make the shell
- slightly larger, but will allow computation with very large numbers.
- This is not in POSIX, so do not rely on this in portable code.
+ Enable 64-bit math support in the shell. This will make the shell
+ slightly larger, but will allow computation with very large numbers.
+ This is not in POSIX, so do not rely on this in portable code.
+
+config BUSYBOX_FEATURE_SH_MATH_BASE
+ bool "Support BASE#nnnn literals"
+ default y
+ depends on BUSYBOX_FEATURE_SH_MATH
config BUSYBOX_FEATURE_SH_EXTRA_QUIET
bool "Hide message on interactive shell startup"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_ASH
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
help
- Remove the busybox introduction when starting a shell.
+ Remove the busybox introduction when starting a shell.
config BUSYBOX_FEATURE_SH_STANDALONE
bool "Standalone shell"
default n
- depends on (BUSYBOX_HUSH || BUSYBOX_ASH)
- help
- This option causes busybox shells to use busybox applets
- in preference to executables in the PATH whenever possible. For
- example, entering the command 'ifconfig' into the shell would cause
- busybox to use the ifconfig busybox applet. Specifying the fully
- qualified executable name, such as '/sbin/ifconfig' will still
- execute the /sbin/ifconfig executable on the filesystem. This option
- is generally used when creating a statically linked version of busybox
- for use as a rescue shell, in the event that you screw up your system.
-
- This is implemented by re-execing /proc/self/exe (typically)
- with right parameters. Some selected applets ("NOFORK" applets)
- can even be executed without creating new process.
- Instead, busybox will call <applet>_main() internally.
-
- However, this causes problems in chroot jails without mounted /proc
- and with ps/top (command name can be shown as 'exe' for applets
- started this way).
-# untrue?
-# Note that this will *also* cause applets to take precedence
-# over shell builtins of the same name. So turning this on will
-# eliminate any performance gained by turning on the builtin "echo"
-# and "test" commands in ash.
-# untrue?
-# Note that when using this option, the shell will attempt to directly
-# run '/bin/busybox'. If you do not have the busybox binary sitting in
-# that exact location with that exact name, this option will not work at
-# all.
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
+ help
+ This option causes busybox shells to use busybox applets
+ in preference to executables in the PATH whenever possible. For
+ example, entering the command 'ifconfig' into the shell would cause
+ busybox to use the ifconfig busybox applet. Specifying the fully
+ qualified executable name, such as '/sbin/ifconfig' will still
+ execute the /sbin/ifconfig executable on the filesystem. This option
+ is generally used when creating a statically linked version of busybox
+ for use as a rescue shell, in the event that you screw up your system.
+
+ This is implemented by re-execing /proc/self/exe (typically)
+ with right parameters.
+
+ However, there are drawbacks: it is problematic in chroot jails
+ without mounted /proc, and ps/top may show command name as 'exe'
+ for applets started this way.
config BUSYBOX_FEATURE_SH_NOFORK
bool "Run 'nofork' applets directly"
default n
- depends on (BUSYBOX_HUSH || BUSYBOX_ASH)
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
help
- This option causes busybox shells to not execute typical
- fork/exec/wait sequence, but call <applet>_main directly,
- if possible. (Sometimes it is not possible: for example,
- this is not possible in pipes).
+ This option causes busybox shells to not execute typical
+ fork/exec/wait sequence, but call <applet>_main directly,
+ if possible. (Sometimes it is not possible: for example,
+ this is not possible in pipes).
- This will be done only for some applets (those which are marked
- NOFORK in include/applets.h).
+ This will be done only for some applets (those which are marked
+ NOFORK in include/applets.h).
- This may significantly speed up some shell scripts.
+ This may significantly speed up some shell scripts.
- This feature is relatively new. Use with care. Report bugs
- to project mailing list.
+ This feature is relatively new. Use with care. Report bugs
+ to project mailing list.
+
+config BUSYBOX_FEATURE_SH_READ_FRAC
+ bool "read -t N.NNN support (+110 bytes)"
+ default y
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
+ help
+ Enable support for fractional second timeout in read builtin.
config BUSYBOX_FEATURE_SH_HISTFILESIZE
bool "Use $HISTFILESIZE"
default y
- depends on BUSYBOX_HUSH || BUSYBOX_ASH
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
help
- This option makes busybox shells to use $HISTFILESIZE variable
- to set shell history size. Note that its max value is capped
- by "History size" setting in library tuning section.
+ This option makes busybox shells to use $HISTFILESIZE variable
+ to set shell history size. Note that its max value is capped
+ by "History size" setting in library tuning section.
+
+config BUSYBOX_FEATURE_SH_EMBEDDED_SCRIPTS
+ bool "Embed scripts in the binary"
+ default y
+ depends on BUSYBOX_SHELL_ASH || BUSYBOX_SHELL_HUSH
+ help
+ Allow scripts to be compressed and embedded in the busybox
+ binary. The scripts should be placed in the 'embed' directory
+ at build time. Like applets, scripts can be run as
+ 'busybox SCRIPT ...' or by linking their name to the binary.
+
+ This also allows applets to be implemented as scripts: place
+ the script in 'applets_sh' and a stub C file containing
+ configuration in the appropriate subsystem directory.
+endif # Options common to all shells
endmenu
diff --git a/package/busybox/config/sysklogd/Config.in b/package/busybox/config/sysklogd/Config.in
index 6df10efde..0d8b63557 100644
--- a/package/busybox/config/sysklogd/Config.in
+++ b/package/busybox/config/sysklogd/Config.in
@@ -1,63 +1,127 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "System Logging Utilities"
+config BUSYBOX_KLOGD
+ bool "klogd (5.7 kb)"
+ default y
+ help
+ klogd is a utility which intercepts and logs all
+ messages from the Linux kernel and sends the messages
+ out to the 'syslogd' utility so they can be logged. If
+ you wish to record the messages produced by the kernel,
+ you should enable this option.
+
+comment "klogd should not be used together with syslog to kernel printk buffer"
+ depends on BUSYBOX_KLOGD && BUSYBOX_FEATURE_KMSG_SYSLOG
+
+config BUSYBOX_FEATURE_KLOGD_KLOGCTL
+ bool "Use the klogctl() interface"
+ default y
+ depends on BUSYBOX_KLOGD
+ help
+ The klogd applet supports two interfaces for reading
+ kernel messages. Linux provides the klogctl() interface
+ which allows reading messages from the kernel ring buffer
+ independently from the file system.
+
+ If you answer 'N' here, klogd will use the more portable
+ approach of reading them from /proc or a device node.
+ However, this method requires the file to be available.
+
+ If in doubt, say 'Y'.
+config BUSYBOX_LOGGER
+ bool "logger (6.3 kb)"
+ default y
+ select BUSYBOX_FEATURE_SYSLOG
+ help
+ The logger utility allows you to send arbitrary text
+ messages to the system log (i.e. the 'syslogd' utility) so
+ they can be logged. This is generally used to help locate
+ problems that occur within programs and scripts.
+config BUSYBOX_LOGREAD
+ bool "logread (4.8 kb)"
+ default y
+ help
+ If you enabled Circular Buffer support, you almost
+ certainly want to enable this feature as well. This
+ utility will allow you to read the messages that are
+ stored in the syslogd circular buffer.
+
+config BUSYBOX_FEATURE_LOGREAD_REDUCED_LOCKING
+ bool "Double buffering"
+ default y
+ depends on BUSYBOX_LOGREAD
+ help
+ 'logread' output to slow serial terminals can have
+ side effects on syslog because of the semaphore.
+ This option make logread to double buffer copy
+ from circular buffer, minimizing semaphore
+ contention at some minor memory expense.
config BUSYBOX_SYSLOGD
- bool "syslogd"
+ bool "syslogd (13 kb)"
default y
help
- The syslogd utility is used to record logs of all the
- significant events that occur on a system. Every
- message that is logged records the date and time of the
- event, and will generally also record the name of the
- application that generated the message. When used in
- conjunction with klogd, messages from the Linux kernel
- can also be recorded. This is terribly useful,
- especially for finding what happened when something goes
- wrong. And something almost always will go wrong if
- you wait long enough....
+ The syslogd utility is used to record logs of all the
+ significant events that occur on a system. Every
+ message that is logged records the date and time of the
+ event, and will generally also record the name of the
+ application that generated the message. When used in
+ conjunction with klogd, messages from the Linux kernel
+ can also be recorded. This is terribly useful,
+ especially for finding what happened when something goes
+ wrong. And something almost always will go wrong if
+ you wait long enough....
config BUSYBOX_FEATURE_ROTATE_LOGFILE
bool "Rotate message files"
default y
depends on BUSYBOX_SYSLOGD
help
- This enables syslogd to rotate the message files
- on his own. No need to use an external rotatescript.
+ This enables syslogd to rotate the message files
+ on his own. No need to use an external rotate script.
config BUSYBOX_FEATURE_REMOTE_LOG
bool "Remote Log support"
default y
depends on BUSYBOX_SYSLOGD
help
- When you enable this feature, the syslogd utility can
- be used to send system log messages to another system
- connected via a network. This allows the remote
- machine to log all the system messages, which can be
- terribly useful for reducing the number of serial
- cables you use. It can also be a very good security
- measure to prevent system logs from being tampered with
- by an intruder.
+ When you enable this feature, the syslogd utility can
+ be used to send system log messages to another system
+ connected via a network. This allows the remote
+ machine to log all the system messages, which can be
+ terribly useful for reducing the number of serial
+ cables you use. It can also be a very good security
+ measure to prevent system logs from being tampered with
+ by an intruder.
config BUSYBOX_FEATURE_SYSLOGD_DUP
bool "Support -D (drop dups) option"
default y
depends on BUSYBOX_SYSLOGD
help
- Option -D instructs syslogd to drop consecutive messages
- which are totally the same.
+ Option -D instructs syslogd to drop consecutive messages
+ which are totally the same.
config BUSYBOX_FEATURE_SYSLOGD_CFG
bool "Support syslog.conf"
+ default y
+ depends on BUSYBOX_SYSLOGD
+ help
+ Supports restricted syslogd config. See docs/syslog.conf.txt
+
+config BUSYBOX_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS
+ bool "Include milliseconds in timestamps"
default n
depends on BUSYBOX_SYSLOGD
help
- Supports restricted syslogd config. See docs/syslog.conf.txt
+ Includes milliseconds (HH:MM:SS.mmm) in timestamp when
+ timestamps are added.
config BUSYBOX_FEATURE_SYSLOGD_READ_BUFFER_SIZE
int "Read buffer size in bytes"
@@ -65,105 +129,43 @@ config BUSYBOX_FEATURE_SYSLOGD_READ_BUFFER_SIZE
range 256 20000
depends on BUSYBOX_SYSLOGD
help
- This option sets the size of the syslog read buffer.
- Actual memory usage increases around five times the
- change done here.
+ This option sets the size of the syslog read buffer.
+ Actual memory usage increases around five times the
+ change done here.
config BUSYBOX_FEATURE_IPC_SYSLOG
bool "Circular Buffer support"
default y
depends on BUSYBOX_SYSLOGD
help
- When you enable this feature, the syslogd utility will
- use a circular buffer to record system log messages.
- When the buffer is filled it will continue to overwrite
- the oldest messages. This can be very useful for
- systems with little or no permanent storage, since
- otherwise system logs can eventually fill up your
- entire filesystem, which may cause your system to
- break badly.
+ When you enable this feature, the syslogd utility will
+ use a circular buffer to record system log messages.
+ When the buffer is filled it will continue to overwrite
+ the oldest messages. This can be very useful for
+ systems with little or no permanent storage, since
+ otherwise system logs can eventually fill up your
+ entire filesystem, which may cause your system to
+ break badly.
config BUSYBOX_FEATURE_IPC_SYSLOG_BUFFER_SIZE
int "Circular buffer size in Kbytes (minimum 4KB)"
- default 32
+ default 16
range 4 2147483647
depends on BUSYBOX_FEATURE_IPC_SYSLOG
help
- This option sets the size of the circular buffer
- used to record system log messages.
+ This option sets the size of the circular buffer
+ used to record system log messages.
config BUSYBOX_FEATURE_KMSG_SYSLOG
- bool "Linux kernel printk buffer support"
- default n
- depends on BUSYBOX_SYSLOGD
- select BUSYBOX_PLATFORM_LINUX
- help
- When you enable this feature, the syslogd utility will
- write system log message to the Linux kernel's printk buffer.
- This can be used as a smaller alternative to the syslogd IPC
- support, as klogd and logread aren't needed.
-
- NOTICE: Syslog facilities in log entries needs kernel 3.5+.
-
-config BUSYBOX_LOGREAD
- bool "logread"
+ bool "Linux kernel printk buffer support"
default y
- depends on BUSYBOX_FEATURE_IPC_SYSLOG
- help
- If you enabled Circular Buffer support, you almost
- certainly want to enable this feature as well. This
- utility will allow you to read the messages that are
- stored in the syslogd circular buffer.
-
-config BUSYBOX_FEATURE_LOGREAD_REDUCED_LOCKING
- bool "Double buffering"
- default y
- depends on BUSYBOX_LOGREAD
- help
- 'logread' ouput to slow serial terminals can have
- side effects on syslog because of the semaphore.
- This option make logread to double buffer copy
- from circular buffer, minimizing semaphore
- contention at some minor memory expense.
-
-config BUSYBOX_KLOGD
- bool "klogd"
- default y
- help
- klogd is a utility which intercepts and logs all
- messages from the Linux kernel and sends the messages
- out to the 'syslogd' utility so they can be logged. If
- you wish to record the messages produced by the kernel,
- you should enable this option.
-
-comment "klogd should not be used together with syslog to kernel printk buffer"
- depends on BUSYBOX_KLOGD && BUSYBOX_FEATURE_KMSG_SYSLOG
-
-config BUSYBOX_FEATURE_KLOGD_KLOGCTL
- bool "Use the klogctl() interface"
- default y
- depends on BUSYBOX_KLOGD
- select BUSYBOX_PLATFORM_LINUX
+ depends on BUSYBOX_SYSLOGD
help
- The klogd applet supports two interfaces for reading
- kernel messages. Linux provides the klogctl() interface
- which allows reading messages from the kernel ring buffer
- independently from the file system.
-
- If you answer 'N' here, klogd will use the more portable
- approach of reading them from /proc or a device node.
- However, this method requires the file to be available.
+ When you enable this feature, the syslogd utility will
+ write system log message to the Linux kernel's printk buffer.
+ This can be used as a smaller alternative to the syslogd IPC
+ support, as klogd and logread aren't needed.
- If in doubt, say 'Y'.
-
-config BUSYBOX_LOGGER
- bool "logger"
- default y
- select BUSYBOX_FEATURE_SYSLOG
- help
- The logger utility allows you to send arbitrary text
- messages to the system log (i.e. the 'syslogd' utility) so
- they can be logged. This is generally used to help locate
- problems that occur within programs and scripts.
+ NOTICE: Syslog facilities in log entries needs kernel 3.5+.
endmenu
diff --git a/package/busybox/config/util-linux/Config.in b/package/busybox/config/util-linux/Config.in
index 83830728b..77b2b83f1 100644
--- a/package/busybox/config/util-linux/Config.in
+++ b/package/busybox/config/util-linux/Config.in
@@ -1,624 +1,585 @@
# DO NOT EDIT. This file is generated from Config.src
#
# For a description of the syntax of this configuration file,
-# see scripts/kbuild/config-language.txt.
+# see docs/Kconfig-language.txt.
#
menu "Linux System Utilities"
-config BUSYBOX_BLKDISCARD
- bool "blkdiscard"
- default n
- help
- blkdiscard discards sectors on a given device.
-
-config BUSYBOX_BLOCKDEV
- bool "blockdev"
- default n
+config BUSYBOX_ACPID
+ bool "acpid (9 kb)"
+ default y
help
- Performs some ioctls with block devices.
+ acpid listens to ACPI events coming either in textual form from
+ /proc/acpi/event (though it is marked deprecated it is still widely
+ used and _is_ a standard) or in binary form from specified evdevs
+ (just use /dev/input/event*).
-config BUSYBOX_FATATTR
- bool "fatattr"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- fatattr lists or changes the file attributes on a fat file system.
+ It parses the event to retrieve ACTION and a possible PARAMETER.
+ It then spawns /etc/acpi/<ACTION>[/<PARAMETER>] either via run-parts
+ (if the resulting path is a directory) or directly as an executable.
-config BUSYBOX_FSTRIM
- bool "fstrim"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- Discard unused blocks on a mounted filesystem.
+ N.B. acpid relies on run-parts so have the latter installed.
-config BUSYBOX_MDEV
- bool "mdev"
+config BUSYBOX_FEATURE_ACPID_COMPAT
+ bool "Accept and ignore redundant options"
default y
- select BUSYBOX_PLATFORM_LINUX
+ depends on BUSYBOX_ACPID
help
- mdev is a mini-udev implementation for dynamically creating device
- nodes in the /dev directory.
-
- For more information, please see docs/mdev.txt
-
-config BUSYBOX_FEATURE_MDEV_CONF
- bool "Support /etc/mdev.conf"
+ Accept and ignore compatibility options -g -m -s -S -v.
+config BUSYBOX_BLKDISCARD
+ bool "blkdiscard (4.3 kb)"
default y
- depends on BUSYBOX_MDEV
help
- Add support for the mdev config file to control ownership and
- permissions of the device nodes.
-
- For more information, please see docs/mdev.txt
-
-config BUSYBOX_FEATURE_MDEV_RENAME
- bool "Support subdirs/symlinks"
+ blkdiscard discards sectors on a given device.
+config BUSYBOX_BLKID
+ bool "blkid (12 kb)"
default y
- depends on BUSYBOX_FEATURE_MDEV_CONF
+ select BUSYBOX_VOLUMEID
help
- Add support for renaming devices and creating symlinks.
-
- For more information, please see docs/mdev.txt
+ Lists labels and UUIDs of all filesystems.
-config BUSYBOX_FEATURE_MDEV_RENAME_REGEXP
- bool "Support regular expressions substitutions when renaming device"
+config BUSYBOX_FEATURE_BLKID_TYPE
+ bool "Print filesystem type"
default y
- depends on BUSYBOX_FEATURE_MDEV_RENAME
+ depends on BUSYBOX_BLKID
help
- Add support for regular expressions substitutions when renaming
- device.
-
-config BUSYBOX_FEATURE_MDEV_EXEC
- bool "Support command execution at device addition/removal"
+ Show TYPE="filesystem type"
+config BUSYBOX_BLOCKDEV
+ bool "blockdev (2.3 kb)"
default y
- depends on BUSYBOX_FEATURE_MDEV_CONF
help
- This adds support for an optional field to /etc/mdev.conf for
- executing commands when devices are created/removed.
-
- For more information, please see docs/mdev.txt
-
-config BUSYBOX_FEATURE_MDEV_LOAD_FIRMWARE
- bool "Support loading of firmwares"
+ Performs some ioctls with block devices.
+config BUSYBOX_CAL
+ bool "cal (5.8 kb)"
default y
- depends on BUSYBOX_MDEV
- help
- Some devices need to load firmware before they can be usable.
-
- These devices will request userspace look up the files in
- /lib/firmware/ and if it exists, send it to the kernel for
- loading into the hardware.
-
-config BUSYBOX_MKE2FS
- bool "mke2fs"
- default n
- select PLATFORM_LINUX
- help
- Utility to create EXT2 filesystems.
-
-config BUSYBOX_MKFS_EXT2
- bool "mkfs.ext2"
- default n
- select PLATFORM_LINUX
- help
- Alias to "mke2fs".
-
-config BUSYBOX_MKDOSFS
- bool "mkdosfs"
- default n
- select PLATFORM_LINUX
- help
- Utility to create FAT32 filesystems.
-
-config BUSYBOX_NSENTER
- bool "nsenter"
- default n
- select BUSYBOX_PLATFORM_LINUX
help
- Run program with namespaces of other processes.
-
-config BUSYBOX_FEATURE_NSENTER_LONG_OPTS
- bool "Enable long options"
- default n
- depends on BUSYBOX_NSENTER && BUSYBOX_LONG_OPTS
- help
- Support long options for the nsenter applet. This makes
- the busybox implementation more compatible with upstream.
-
-config BUSYBOX_REV
- bool "rev"
- default n
- help
- Reverse lines of a file or files.
-
-config BUSYBOX_UEVENT
- bool "uevent"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ cal is used to display a monthly calendar.
+config BUSYBOX_CHRT
+ bool "chrt (4.7 kb)"
+ default y
help
- uevent is a netlink listener for kernel uevent notifications
- sent via netlink. It is usually used for dynamic device creation.
-
-config BUSYBOX_UNSHARE
- bool "unshare"
- default n
- depends on BUSYBOX_LONG_OPTS && !BUSYBOX_NOMMU
- select BUSYBOX_PLATFORM_LINUX
+ Manipulate real-time attributes of a process.
+ This requires sched_{g,s}etparam support in your libc.
+config BUSYBOX_DMESG
+ bool "dmesg (3.7 kb)"
+ default y
help
- Run program with some namespaces unshared from parent.
+ dmesg is used to examine or control the kernel ring buffer. When the
+ Linux kernel prints messages to the system log, they are stored in
+ the kernel ring buffer. You can use dmesg to print the kernel's ring
+ buffer, clear the kernel ring buffer, change the size of the kernel
+ ring buffer, and change the priority level at which kernel messages
+ are also logged to the system console. Enable this option if you
+ wish to enable the 'dmesg' utility.
-config BUSYBOX_ACPID
- bool "acpid"
- default n
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_FEATURE_DMESG_PRETTY
+ bool "Pretty output"
+ default y
+ depends on BUSYBOX_DMESG
help
- acpid listens to ACPI events coming either in textual form from
- /proc/acpi/event (though it is marked deprecated it is still widely
- used and _is_ a standard) or in binary form from specified evdevs
- (just use /dev/input/event*).
-
- It parses the event to retrieve ACTION and a possible PARAMETER.
- It then spawns /etc/acpi/<ACTION>[/<PARAMETER>] either via run-parts
- (if the resulting path is a directory) or directly as an executable.
+ If you wish to scrub the syslog level from the output, say 'Y' here.
+ The syslog level is a string prefixed to every line with the form
+ "<#>".
- N.B. acpid relies on run-parts so have the latter installed.
+ With this option you will see:
+ # dmesg
+ Linux version 2.6.17.4 .....
+ BIOS-provided physical RAM map:
+ BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
-config BUSYBOX_FEATURE_ACPID_COMPAT
- bool "Accept and ignore redundant options"
+ Without this option you will see:
+ # dmesg
+ <5>Linux version 2.6.17.4 .....
+ <6>BIOS-provided physical RAM map:
+ <6> BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
+config BUSYBOX_EJECT
+ bool "eject (4 kb)"
default y
- depends on BUSYBOX_ACPID
help
- Accept and ignore compatibility options -g -m -s -S -v.
+ Used to eject cdroms. (defaults to /dev/cdrom)
-config BUSYBOX_BLKID
- bool "blkid"
+config BUSYBOX_FEATURE_EJECT_SCSI
+ bool "SCSI support"
default y
- select BUSYBOX_PLATFORM_LINUX
- select BUSYBOX_VOLUMEID
- help
- Lists labels and UUIDs of all filesystems.
- WARNING:
- With all submodules selected, it will add ~8k to busybox.
-
-config BUSYBOX_FEATURE_BLKID_TYPE
- bool "Print filesystem type"
- default n
- depends on BUSYBOX_BLKID
+ depends on BUSYBOX_EJECT
help
- Show TYPE="filesystem type"
-
-config BUSYBOX_DMESG
- bool "dmesg"
+ Add the -s option to eject, this allows to eject SCSI-Devices and
+ usb-storage devices.
+config BUSYBOX_FALLOCATE
+ bool "fallocate (4.1 kb)"
default y
- select BUSYBOX_PLATFORM_LINUX
help
- dmesg is used to examine or control the kernel ring buffer. When the
- Linux kernel prints messages to the system log, they are stored in
- the kernel ring buffer. You can use dmesg to print the kernel's ring
- buffer, clear the kernel ring buffer, change the size of the kernel
- ring buffer, and change the priority level at which kernel messages
- are also logged to the system console. Enable this option if you
- wish to enable the 'dmesg' utility.
-
-config BUSYBOX_FEATURE_DMESG_PRETTY
- bool "Pretty dmesg output"
+ Preallocate space for files.
+config BUSYBOX_FATATTR
+ bool "fatattr (1.9 kb)"
default y
- depends on BUSYBOX_DMESG
help
- If you wish to scrub the syslog level from the output, say 'Y' here.
- The syslog level is a string prefixed to every line with the form
- "<#>".
-
- With this option you will see:
- # dmesg
- Linux version 2.6.17.4 .....
- BIOS-provided physical RAM map:
- BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
-
- Without this option you will see:
- # dmesg
- <5>Linux version 2.6.17.4 .....
- <6>BIOS-provided physical RAM map:
- <6> BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
-
+ fatattr lists or changes the file attributes on a fat file system.
config BUSYBOX_FBSET
- bool "fbset"
- depends on !BUSYBOX_DISABLE_FBSET
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "fbset (5.9 kb)"
+ default y
help
- fbset is used to show or change the settings of a Linux frame buffer
- device. The frame buffer device provides a simple and unique
- interface to access a graphics display. Enable this option
- if you wish to enable the 'fbset' utility.
+ fbset is used to show or change the settings of a Linux frame buffer
+ device. The frame buffer device provides a simple and unique
+ interface to access a graphics display. Enable this option
+ if you wish to enable the 'fbset' utility.
config BUSYBOX_FEATURE_FBSET_FANCY
- bool "Turn on extra fbset options"
+ bool "Enable extra options"
default y
depends on BUSYBOX_FBSET
help
- This option enables extended fbset options, allowing one to set the
- framebuffer size, color depth, etc. interface to access a graphics
- display. Enable this option if you wish to enable extended fbset
- options.
+ This option enables extended fbset options, allowing one to set the
+ framebuffer size, color depth, etc. interface to access a graphics
+ display. Enable this option if you wish to enable extended fbset
+ options.
config BUSYBOX_FEATURE_FBSET_READMODE
- bool "Turn on fbset readmode support"
+ bool "Enable readmode support"
default y
depends on BUSYBOX_FBSET
help
- This option allows fbset to read the video mode database stored by
- default as /etc/fb.modes, which can be used to set frame buffer
- device to pre-defined video modes.
-
-config BUSYBOX_FDFLUSH
- bool "fdflush"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- fdflush is only needed when changing media on slightly-broken
- removable media drives. It is used to make Linux believe that a
- hardware disk-change switch has been actuated, which causes Linux to
- forget anything it has cached from the previous media. If you have
- such a slightly-broken drive, you will need to run fdflush every time
- you change a disk. Most people have working hardware and can safely
- leave this disabled.
-
+ This option allows fbset to read the video mode database stored by
+ default as /etc/fb.modes, which can be used to set frame buffer
+ device to pre-defined video modes.
config BUSYBOX_FDFORMAT
- bool "fdformat"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "fdformat (4.4 kb)"
+ default y
help
- fdformat is used to low-level format a floppy disk.
-
+ fdformat is used to low-level format a floppy disk.
config BUSYBOX_FDISK
- bool "fdisk"
- default n
- depends on !BUSYBOX_DISABLE_FDISK
- select BUSYBOX_PLATFORM_LINUX
+ bool "fdisk (37 kb)"
+ default y
help
- The fdisk utility is used to divide hard disks into one or more
- logical disks, which are generally called partitions. This utility
- can be used to list and edit the set of partitions or BSD style
- 'disk slices' that are defined on a hard drive.
+ The fdisk utility is used to divide hard disks into one or more
+ logical disks, which are generally called partitions. This utility
+ can be used to list and edit the set of partitions or BSD style
+ 'disk slices' that are defined on a hard drive.
config BUSYBOX_FDISK_SUPPORT_LARGE_DISKS
bool "Support over 4GB disks"
default y
depends on BUSYBOX_FDISK
- depends on !BUSYBOX_LFS # with LFS no special code is needed
- help
- Enable this option to support large disks > 4GB.
+ depends on !BUSYBOX_LFS # with BUSYBOX_LFS no special code is needed
config BUSYBOX_FEATURE_FDISK_WRITABLE
bool "Write support"
default y
depends on BUSYBOX_FDISK
help
- Enabling this option allows you to create or change a partition table
- and write those changes out to disk. If you leave this option
- disabled, you will only be able to view the partition table.
+ Enabling this option allows you to create or change a partition table
+ and write those changes out to disk. If you leave this option
+ disabled, you will only be able to view the partition table.
config BUSYBOX_FEATURE_AIX_LABEL
bool "Support AIX disklabels"
default n
depends on BUSYBOX_FDISK && BUSYBOX_FEATURE_FDISK_WRITABLE
help
- Enabling this option allows you to create or change AIX disklabels.
- Most people can safely leave this option disabled.
+ Enabling this option allows you to create or change AIX disklabels.
+ Most people can safely leave this option disabled.
config BUSYBOX_FEATURE_SGI_LABEL
bool "Support SGI disklabels"
default n
depends on BUSYBOX_FDISK && BUSYBOX_FEATURE_FDISK_WRITABLE
help
- Enabling this option allows you to create or change SGI disklabels.
- Most people can safely leave this option disabled.
+ Enabling this option allows you to create or change SGI disklabels.
+ Most people can safely leave this option disabled.
config BUSYBOX_FEATURE_SUN_LABEL
bool "Support SUN disklabels"
default n
depends on BUSYBOX_FDISK && BUSYBOX_FEATURE_FDISK_WRITABLE
help
- Enabling this option allows you to create or change SUN disklabels.
- Most people can safely leave this option disabled.
+ Enabling this option allows you to create or change SUN disklabels.
+ Most people can safely leave this option disabled.
config BUSYBOX_FEATURE_OSF_LABEL
bool "Support BSD disklabels"
default n
depends on BUSYBOX_FDISK && BUSYBOX_FEATURE_FDISK_WRITABLE
help
- Enabling this option allows you to create or change BSD disklabels
- and define and edit BSD disk slices.
+ Enabling this option allows you to create or change BSD disklabels
+ and define and edit BSD disk slices.
config BUSYBOX_FEATURE_GPT_LABEL
bool "Support GPT disklabels"
default n
depends on BUSYBOX_FDISK && BUSYBOX_FEATURE_FDISK_WRITABLE
help
- Enabling this option allows you to view GUID Partition Table
- disklabels.
+ Enabling this option allows you to view GUID Partition Table
+ disklabels.
config BUSYBOX_FEATURE_FDISK_ADVANCED
bool "Support expert mode"
default y
depends on BUSYBOX_FDISK && BUSYBOX_FEATURE_FDISK_WRITABLE
help
- Enabling this option allows you to do terribly unsafe things like
- define arbitrary drive geometry, move the beginning of data in a
- partition, and similarly evil things. Unless you have a very good
- reason you would be wise to leave this disabled.
-
+ Enabling this option allows you to do terribly unsafe things like
+ define arbitrary drive geometry, move the beginning of data in a
+ partition, and similarly evil things. Unless you have a very good
+ reason you would be wise to leave this disabled.
config BUSYBOX_FINDFS
- bool "findfs"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "findfs (12 kb)"
+ default y
select BUSYBOX_VOLUMEID
help
- Prints the name of a filesystem with given label or UUID.
- WARNING:
- With all submodules selected, it will add ~8k to busybox.
-
+ Prints the name of a filesystem with given label or UUID.
config BUSYBOX_FLOCK
- bool "flock"
- default n
+ bool "flock (6.3 kb)"
+ default y
+ help
+ Manage locks from shell scripts
+config BUSYBOX_FDFLUSH
+ bool "fdflush (1.3 kb)"
+ default y
help
- Manage locks from shell scripts
+ fdflush is only needed when changing media on slightly-broken
+ removable media drives. It is used to make Linux believe that a
+ hardware disk-change switch has been actuated, which causes Linux to
+ forget anything it has cached from the previous media. If you have
+ such a slightly-broken drive, you will need to run fdflush every time
+ you change a disk. Most people have working hardware and can safely
+ leave this disabled.
config BUSYBOX_FREERAMDISK
- bool "freeramdisk"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "freeramdisk (1.3 kb)"
+ default y
help
- Linux allows you to create ramdisks. This utility allows you to
- delete them and completely free all memory that was used for the
- ramdisk. For example, if you boot Linux into a ramdisk and later
- pivot_root, you may want to free the memory that is allocated to the
- ramdisk. If you have no use for freeing memory from a ramdisk, leave
- this disabled.
-
+ Linux allows you to create ramdisks. This utility allows you to
+ delete them and completely free all memory that was used for the
+ ramdisk. For example, if you boot Linux into a ramdisk and later
+ pivot_root, you may want to free the memory that is allocated to the
+ ramdisk. If you have no use for freeing memory from a ramdisk, leave
+ this disabled.
config BUSYBOX_FSCK_MINIX
- bool "fsck_minix"
- default n
+ bool "fsck.minix (13 kb)"
+ default y
help
- The minix filesystem is a nice, small, compact, read-write filesystem
- with little overhead. It is not a journaling filesystem however and
- can experience corruption if it is not properly unmounted or if the
- power goes off in the middle of a write. This utility allows you to
- check for and attempt to repair any corruption that occurs to a minix
- filesystem.
-
-config BUSYBOX_MKFS_EXT2
- bool "mkfs_ext2"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ The minix filesystem is a nice, small, compact, read-write filesystem
+ with little overhead. It is not a journaling filesystem however and
+ can experience corruption if it is not properly unmounted or if the
+ power goes off in the middle of a write. This utility allows you to
+ check for and attempt to repair any corruption that occurs to a minix
+ filesystem.
+config BUSYBOX_FSFREEZE
+ bool "fsfreeze (3.5 kb)"
+ default y
+ select BUSYBOX_LONG_OPTS
help
- Utility to create EXT2 filesystems.
-
-config BUSYBOX_MKFS_MINIX
- bool "mkfs_minix"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ Halt new accesses and flush writes on a mounted filesystem.
+config BUSYBOX_FSTRIM
+ bool "fstrim (4.4 kb)"
+ default y
+ help
+ Discard unused blocks on a mounted filesystem.
+config BUSYBOX_GETOPT
+ bool "getopt (5.8 kb)"
+ default y
help
- The minix filesystem is a nice, small, compact, read-write filesystem
- with little overhead. If you wish to be able to create minix
- filesystems this utility will do the job for you.
+ The getopt utility is used to break up (parse) options in command
+ lines to make it easy to write complex shell scripts that also check
+ for legal (and illegal) options. If you want to write horribly
+ complex shell scripts, or use some horribly complex shell script
+ written by others, this utility may be for you. Most people will
+ wisely leave this disabled.
-config BUSYBOX_FEATURE_MINIX2
- bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
+config BUSYBOX_FEATURE_GETOPT_LONG
+ bool "Support -l LONGOPTs"
+ default y
+ depends on BUSYBOX_GETOPT && BUSYBOX_LONG_OPTS
+ help
+ Enable support for long options (option -l).
+config BUSYBOX_HEXDUMP
+ bool "hexdump (8.6 kb)"
default y
- depends on BUSYBOX_FSCK_MINIX || BUSYBOX_MKFS_MINIX
help
- If you wish to be able to create version 2 minix filesystems, enable
- this. If you enabled 'mkfs_minix' then you almost certainly want to
- be using the version 2 filesystem support.
+ The hexdump utility is used to display binary data in a readable
+ way that is comparable to the output from most hex editors.
-config BUSYBOX_MKFS_REISER
- bool "mkfs_reiser"
- default n
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_HD
+ bool "hd (7.8 kb)"
+ default y
help
- Utility to create ReiserFS filesystems.
- Note: this applet needs a lot of testing and polishing.
+ hd is an alias to hexdump -C.
+config BUSYBOX_XXD
+ bool "xxd (8.9 kb)"
+ default y
+ help
+ The xxd utility is used to display binary data in a readable
+ way that is comparable to the output from most hex editors.
+config BUSYBOX_HWCLOCK
+ bool "hwclock (5.8 kb)"
+ default y
+ help
+ The hwclock utility is used to read and set the hardware clock
+ on a system. This is primarily used to set the current time on
+ shutdown in the hardware clock, so the hardware will keep the
+ correct time when Linux is _not_ running.
-config BUSYBOX_MKFS_VFAT
- bool "mkfs_vfat"
- default n
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_FEATURE_HWCLOCK_ADJTIME_FHS
+ bool "Use FHS /var/lib/hwclock/adjtime"
+ default n # util-linux-ng in Fedora 13 still uses /etc/adjtime
+ depends on BUSYBOX_HWCLOCK
help
- Utility to create FAT32 filesystems.
+ Starting with FHS 2.3, the adjtime state file is supposed to exist
+ at /var/lib/hwclock/adjtime instead of /etc/adjtime. If you wish
+ to use the FHS behavior, answer Y here, otherwise answer N for the
+ classic /etc/adjtime path.
-config BUSYBOX_GETOPT
- bool "getopt"
- default n
+ pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO
+config BUSYBOX_IONICE
+ bool "ionice (3.8 kb)"
+ default y
+ help
+ Set/set program io scheduling class and priority
+ Requires kernel >= 2.6.13
+config BUSYBOX_IPCRM
+ bool "ipcrm (3.2 kb)"
+ default y
+ help
+ The ipcrm utility allows the removal of System V interprocess
+ communication (IPC) objects and the associated data structures
+ from the system.
+config BUSYBOX_IPCS
+ bool "ipcs (11 kb)"
+ default y
+ help
+ The ipcs utility is used to provide information on the currently
+ allocated System V interprocess (IPC) objects in the system.
+config BUSYBOX_LAST
+ bool "last (6.1 kb)"
+ default y
+ depends on BUSYBOX_FEATURE_WTMP
help
- The getopt utility is used to break up (parse) options in command
- lines to make it easy to write complex shell scripts that also check
- for legal (and illegal) options. If you want to write horribly
- complex shell scripts, or use some horribly complex shell script
- written by others, this utility may be for you. Most people will
- wisely leave this disabled.
+ 'last' displays a list of the last users that logged into the system.
-config BUSYBOX_FEATURE_GETOPT_LONG
- bool "Support option -l"
- default y if LONG_OPTS
- depends on BUSYBOX_GETOPT
+config BUSYBOX_FEATURE_LAST_FANCY
+ bool "Output extra information"
+ default y
+ depends on BUSYBOX_LAST
help
- Enable support for long options (option -l).
+ 'last' displays detailed information about the last users that
+ logged into the system (mimics sysvinit last). +900 bytes.
+config BUSYBOX_LOSETUP
+ bool "losetup (5.5 kb)"
+ default y
+ help
+ losetup is used to associate or detach a loop device with a regular
+ file or block device, and to query the status of a loop device. This
+ version does not currently support enabling data encryption.
+config BUSYBOX_LSPCI
+ bool "lspci (6.3 kb)"
+ default y
+ help
+ lspci is a utility for displaying information about PCI buses in the
+ system and devices connected to them.
-config BUSYBOX_HEXDUMP
- bool "hexdump"
- default n
+ This version uses sysfs (/sys/bus/pci/devices) only.
+config BUSYBOX_LSUSB
+ bool "lsusb (4.2 kb)"
+ default y
help
- The hexdump utility is used to display binary data in a readable
- way that is comparable to the output from most hex editors.
+ lsusb is a utility for displaying information about USB buses in the
+ system and devices connected to them.
-config BUSYBOX_FEATURE_HEXDUMP_REVERSE
- bool "Support -R, reverse of 'hexdump -Cv'"
+ This version uses sysfs (/sys/bus/usb/devices) only.
+config BUSYBOX_MDEV
+ bool "mdev (17 kb)"
default y
- depends on BUSYBOX_HEXDUMP
help
- The hexdump utility is used to display binary data in an ascii
- readable way. This option creates binary data from an ascii input.
- NB: this option is non-standard. It's unwise to use it in scripts
- aimed to be portable.
+ mdev is a mini-udev implementation for dynamically creating device
+ nodes in the /dev directory.
-config BUSYBOX_HD
- bool "hd"
- default n
+ For more information, please see docs/mdev.txt
+
+config BUSYBOX_FEATURE_MDEV_CONF
+ bool "Support /etc/mdev.conf"
+ default y
+ depends on BUSYBOX_MDEV
help
- hd is an alias to hexdump -C.
+ Add support for the mdev config file to control ownership and
+ permissions of the device nodes.
-config BUSYBOX_HWCLOCK
- bool "hwclock"
- default y if ADK_TARGET_WITH_RTC
- default n
- select BUSYBOX_PLATFORM_LINUX
+ For more information, please see docs/mdev.txt
+
+config BUSYBOX_FEATURE_MDEV_RENAME
+ bool "Support subdirs/symlinks"
+ default y
+ depends on BUSYBOX_FEATURE_MDEV_CONF
help
- The hwclock utility is used to read and set the hardware clock
- on a system. This is primarily used to set the current time on
- shutdown in the hardware clock, so the hardware will keep the
- correct time when Linux is _not_ running.
+ Add support for renaming devices and creating symlinks.
+
+ For more information, please see docs/mdev.txt
-config BUSYBOX_FEATURE_HWCLOCK_LONG_OPTIONS
- bool "Support long options (--hctosys,...)"
+config BUSYBOX_FEATURE_MDEV_RENAME_REGEXP
+ bool "Support regular expressions substitutions when renaming device"
default y
- depends on BUSYBOX_HWCLOCK && BUSYBOX_LONG_OPTS
+ depends on BUSYBOX_FEATURE_MDEV_RENAME
help
- By default, the hwclock utility only uses short options. If you
- are overly fond of its long options, such as --hctosys, --utc, etc)
- then enable this option.
+ Add support for regular expressions substitutions when renaming
+ device.
-config BUSYBOX_FEATURE_HWCLOCK_ADJTIME_FHS
- bool "Use FHS /var/lib/hwclock/adjtime"
- default n # util-linux-ng in Fedora 13 still uses /etc/adjtime
- depends on BUSYBOX_HWCLOCK
+config BUSYBOX_FEATURE_MDEV_EXEC
+ bool "Support command execution at device addition/removal"
+ default y
+ depends on BUSYBOX_FEATURE_MDEV_CONF
help
- Starting with FHS 2.3, the adjtime state file is supposed to exist
- at /var/lib/hwclock/adjtime instead of /etc/adjtime. If you wish
- to use the FHS behavior, answer Y here, otherwise answer N for the
- classic /etc/adjtime path.
+ This adds support for an optional field to /etc/mdev.conf for
+ executing commands when devices are created/removed.
- pathname.com/fhs/pub/fhs-2.3.html#VARLIBHWCLOCKSTATEDIRECTORYFORHWCLO
+ For more information, please see docs/mdev.txt
-config BUSYBOX_IPCRM
- bool "ipcrm"
- default n
+config BUSYBOX_FEATURE_MDEV_LOAD_FIRMWARE
+ bool "Support loading of firmware"
+ default y
+ depends on BUSYBOX_MDEV
help
- The ipcrm utility allows the removal of System V interprocess
- communication (IPC) objects and the associated data structures
- from the system.
+ Some devices need to load firmware before they can be usable.
-config BUSYBOX_IPCS
- bool "ipcs"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ These devices will request userspace look up the files in
+ /lib/firmware/ and if it exists, send it to the kernel for
+ loading into the hardware.
+
+config BUSYBOX_FEATURE_MDEV_DAEMON
+ bool "Support daemon mode"
+ default y
+ depends on BUSYBOX_MDEV
help
- The ipcs utility is used to provide information on the currently
- allocated System V interprocess (IPC) objects in the system.
+ Adds the -d option to run mdev in daemon mode handling hotplug
+ events from the kernel like udev. If the system generates many
+ hotplug events this mode of operation will consume less
+ resources than registering mdev as hotplug helper or using the
+ uevent applet.
+config BUSYBOX_MESG
+ bool "mesg (1.4 kb)"
+ default y
+ help
+ Mesg controls access to your terminal by others. It is typically
+ used to allow or disallow other users to write to your terminal
-config BUSYBOX_LOSETUP
- bool "losetup"
- default n
- select BUSYBOX_PLATFORM_LINUX
+config BUSYBOX_FEATURE_MESG_ENABLE_ONLY_GROUP
+ bool "Enable writing to tty only by group, not by everybody"
+ default y
+ depends on BUSYBOX_MESG
help
- losetup is used to associate or detach a loop device with a regular
- file or block device, and to query the status of a loop device. This
- version does not currently support enabling data encryption.
+ Usually, ttys are owned by group "tty", and "write" tool is
+ setgid to this group. This way, "mesg y" only needs to enable
+ "write by owning group" bit in tty mode.
-config BUSYBOX_LSPCI
- bool "lspci"
- depends on !BUSYBOX_DISABLE_LSPCI
- default n
- #select PLATFORM_LINUX
+ If you set this option to N, "mesg y" will enable writing
+ by anybody at all. This is not recommended.
+config BUSYBOX_MKE2FS
+ bool "mke2fs (10 kb)"
+ default y
help
- lspci is a utility for displaying information about PCI buses in the
- system and devices connected to them.
+ Utility to create EXT2 filesystems.
- This version uses sysfs (/sys/bus/pci/devices) only.
+config BUSYBOX_MKFS_EXT2
+ bool "mkfs.ext2 (10 kb)"
+ default y
+ help
+ Alias to "mke2fs".
+config BUSYBOX_MKFS_MINIX
+ bool "mkfs.minix (10 kb)"
+ default y
+ help
+ The minix filesystem is a nice, small, compact, read-write filesystem
+ with little overhead. If you wish to be able to create minix
+ filesystems this utility will do the job for you.
-config BUSYBOX_LSUSB
- bool "lsusb"
- depends on !BUSYBOX_DISABLE_LSUSB
+config BUSYBOX_FEATURE_MINIX2
+ bool "Support Minix fs v2 (fsck_minix/mkfs_minix)"
+ default y
+ depends on BUSYBOX_FSCK_MINIX || BUSYBOX_MKFS_MINIX
+ help
+ If you wish to be able to create version 2 minix filesystems, enable
+ this. If you enabled 'mkfs_minix' then you almost certainly want to
+ be using the version 2 filesystem support.
+config BUSYBOX_MKFS_REISER
+ bool "mkfs_reiser"
default n
- #select PLATFORM_LINUX
help
- lsusb is a utility for displaying information about USB buses in the
- system and devices connected to them.
-
- This version uses sysfs (/sys/bus/usb/devices) only.
+ Utility to create ReiserFS filesystems.
+ Note: this applet needs a lot of testing and polishing.
+config BUSYBOX_MKDOSFS
+ bool "mkdosfs (7.2 kb)"
+ default y
+ help
+ Utility to create FAT32 filesystems.
+config BUSYBOX_MKFS_VFAT
+ bool "mkfs.vfat (7.2 kb)"
+ default y
+ help
+ Alias to "mkdosfs".
config BUSYBOX_MKSWAP
- bool "mkswap"
+ bool "mkswap (6.3 kb)"
default n
help
- The mkswap utility is used to configure a file or disk partition as
- Linux swap space. This allows Linux to use the entire file or
- partition as if it were additional RAM, which can greatly increase
- the capability of low-memory machines. This additional memory is
- much slower than real RAM, but can be very helpful at preventing your
- applications being killed by the Linux out of memory (OOM) killer.
- Once you have created swap space using 'mkswap' you need to enable
- the swap space using the 'swapon' utility.
+ The mkswap utility is used to configure a file or disk partition as
+ Linux swap space. This allows Linux to use the entire file or
+ partition as if it were additional RAM, which can greatly increase
+ the capability of low-memory machines. This additional memory is
+ much slower than real RAM, but can be very helpful at preventing your
+ applications being killed by the Linux out of memory (OOM) killer.
+ Once you have created swap space using 'mkswap' you need to enable
+ the swap space using the 'swapon' utility.
config BUSYBOX_FEATURE_MKSWAP_UUID
bool "UUID support"
default y
depends on BUSYBOX_MKSWAP
help
- Generate swap spaces with universally unique identifiers.
-
+ Generate swap spaces with universally unique identifiers.
config BUSYBOX_MORE
- bool "more"
- default n
+ bool "more (7 kb)"
+ default y
help
- more is a simple utility which allows you to read text one screen
- sized page at a time. If you want to read text that is larger than
- the screen, and you are using anything faster than a 300 baud modem,
- you will probably find this utility very helpful. If you don't have
- any need to reading text files, you can leave this disabled.
-
+ more is a simple utility which allows you to read text one screen
+ sized page at a time. If you want to read text that is larger than
+ the screen, and you are using anything faster than a 300 baud modem,
+ you will probably find this utility very helpful. If you don't have
+ any need to reading text files, you can leave this disabled.
config BUSYBOX_MOUNT
- bool "mount"
+ bool "mount (23 kb)"
default y
- depends on !BUSYBOX_DISABLE_MOUNT
- select BUSYBOX_PLATFORM_LINUX
help
- All files and filesystems in Unix are arranged into one big directory
- tree. The 'mount' utility is used to graft a filesystem onto a
- particular part of the tree. A filesystem can either live on a block
- device, or it can be accessible over the network, as is the case with
- NFS filesystems. Most people using BusyBox will also want to enable
- the 'mount' utility.
+ All files and filesystems in Unix are arranged into one big directory
+ tree. The 'mount' utility is used to graft a filesystem onto a
+ particular part of the tree. A filesystem can either live on a block
+ device, or it can be accessible over the network, as is the case with
+ NFS filesystems.
config BUSYBOX_FEATURE_MOUNT_FAKE
- bool "Support option -f"
- default n
+ bool "Support -f (fake mount)"
+ default y
depends on BUSYBOX_MOUNT
help
- Enable support for faking a file system mount.
+ Enable support for faking a file system mount.
config BUSYBOX_FEATURE_MOUNT_VERBOSE
- bool "Support option -v"
- default n
+ bool "Support -v (verbose)"
+ default y
depends on BUSYBOX_MOUNT
help
- Enable multi-level -v[vv...] verbose messages. Useful if you
- debug mount problems and want to see what is exactly passed
- to the kernel.
+ Enable multi-level -v[vv...] verbose messages. Useful if you
+ debug mount problems and want to see what is exactly passed
+ to the kernel.
config BUSYBOX_FEATURE_MOUNT_HELPERS
bool "Support mount helpers"
- default y
+ default n
depends on BUSYBOX_MOUNT
help
- Enable mounting of virtual file systems via external helpers.
- E.g. "mount obexfs#-b00.11.22.33.44.55 /mnt" will in effect call
- "obexfs -b00.11.22.33.44.55 /mnt"
- Also "mount -t sometype [-o opts] fs /mnt" will try
- "sometype [-o opts] fs /mnt" if simple mount syscall fails.
- The idea is to use such virtual filesystems in /etc/fstab.
+ Enable mounting of virtual file systems via external helpers.
+ E.g. "mount obexfs#-b00.11.22.33.44.55 /mnt" will in effect call
+ "obexfs -b00.11.22.33.44.55 /mnt"
+ Also "mount -t sometype [-o opts] fs /mnt" will try
+ "sometype [-o opts] fs /mnt" if simple mount syscall fails.
+ The idea is to use such virtual filesystems in /etc/fstab.
config BUSYBOX_FEATURE_MOUNT_LABEL
bool "Support specifying devices by label or UUID"
@@ -626,534 +587,369 @@ config BUSYBOX_FEATURE_MOUNT_LABEL
depends on BUSYBOX_MOUNT
select BUSYBOX_VOLUMEID
help
- This allows for specifying a device by label or uuid, rather than by
- name. This feature utilizes the same functionality as blkid/findfs.
- This also enables label or uuid support for swapon.
+ This allows for specifying a device by label or uuid, rather than by
+ name. This feature utilizes the same functionality as blkid/findfs.
config BUSYBOX_FEATURE_MOUNT_NFS
bool "Support mounting NFS file systems on Linux < 2.6.23"
default n
depends on BUSYBOX_MOUNT
- select BUSYBOX_FEATURE_HAVE_RPC
select BUSYBOX_FEATURE_SYSLOG
help
- Enable mounting of NFS file systems on Linux kernels prior
- to version 2.6.23. Note that in this case mounting of NFS
- over IPv6 will not be possible.
+ Enable mounting of NFS file systems on Linux kernels prior
+ to version 2.6.23. Note that in this case mounting of NFS
+ over IPv6 will not be possible.
- Note that this option links in RPC support from libc,
- which is rather large (~10 kbytes on uclibc).
+ Note that this option links in RPC support from libc,
+ which is rather large (~10 kbytes on uclibc).
config BUSYBOX_FEATURE_MOUNT_CIFS
bool "Support mounting CIFS/SMB file systems"
- default n
+ default y
depends on BUSYBOX_MOUNT
help
- Enable support for samba mounts.
+ Enable support for samba mounts.
config BUSYBOX_FEATURE_MOUNT_FLAGS
depends on BUSYBOX_MOUNT
- bool "Support lots of -o flags in mount"
+ bool "Support lots of -o flags"
default y
help
- Without this, mount only supports ro/rw/remount. With this, it
- supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime,
- noatime, diratime, nodiratime, loud, bind, move, shared, slave,
- private, unbindable, rshared, rslave, rprivate, and runbindable.
+ Without this, mount only supports ro/rw/remount. With this, it
+ supports nosuid, suid, dev, nodev, exec, noexec, sync, async, atime,
+ noatime, diratime, nodiratime, loud, bind, move, shared, slave,
+ private, unbindable, rshared, rslave, rprivate, and runbindable.
config BUSYBOX_FEATURE_MOUNT_FSTAB
depends on BUSYBOX_MOUNT
- bool "Support /etc/fstab and -a"
+ bool "Support /etc/fstab and -a (mount all)"
default y
help
- Support mount all and looking for files in /etc/fstab.
+ Support mount all and looking for files in /etc/fstab.
config BUSYBOX_FEATURE_MOUNT_OTHERTAB
depends on BUSYBOX_FEATURE_MOUNT_FSTAB
bool "Support -T <alt_fstab>"
- default n
+ default y
+ help
+ Support mount -T (specifying an alternate fstab)
+config BUSYBOX_MOUNTPOINT
+ bool "mountpoint (4.9 kb)"
+ default y
help
- Support mount -T (specifying an alternate fstab)
+ mountpoint checks if the directory is a mountpoint.
+config BUSYBOX_NOLOGIN
+ bool "nologin"
+ default y
+ depends on BUSYBOX_FEATURE_SH_EMBEDDED_SCRIPTS
+ help
+ Politely refuse a login
+config BUSYBOX_NOLOGIN_DEPENDENCIES
+ bool "Enable dependencies for nologin"
+ default n # Y default makes it harder to select single-applet test
+ depends on BUSYBOX_NOLOGIN
+ select BUSYBOX_CAT
+ select BUSYBOX_ECHO
+ select BUSYBOX_SLEEP
+ help
+ nologin is implemented as a shell script. It requires the
+ following in the runtime environment:
+ cat echo sleep
+ If you know these will be available externally you can
+ disable this option.
+config BUSYBOX_NSENTER
+ bool "nsenter (6.5 kb)"
+ default y
+ help
+ Run program with namespaces of other processes.
config BUSYBOX_PIVOT_ROOT
- bool "pivot_root"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "pivot_root (1.1 kb)"
+ default y
help
- The pivot_root utility swaps the mount points for the root filesystem
- with some other mounted filesystem. This allows you to do all sorts
- of wild and crazy things with your Linux system and is far more
- powerful than 'chroot'.
-
- Note: This is for initrd in linux 2.4. Under initramfs (introduced
- in linux 2.6) use switch_root instead.
+ The pivot_root utility swaps the mount points for the root filesystem
+ with some other mounted filesystem. This allows you to do all sorts
+ of wild and crazy things with your Linux system and is far more
+ powerful than 'chroot'.
+ Note: This is for initrd in linux 2.4. Under initramfs (introduced
+ in linux 2.6) use switch_root instead.
config BUSYBOX_RDATE
- bool "rdate"
- depends on !BUSYBOX_DISABLE_RDATE
- default n
+ bool "rdate (5.6 kb)"
+ default y
help
- The rdate utility allows you to synchronize the date and time of your
- system clock with the date and time of a remote networked system using
- the RFC868 protocol, which is built into the inetd daemon on most
- systems.
-
+ The rdate utility allows you to synchronize the date and time of your
+ system clock with the date and time of a remote networked system using
+ the RFC868 protocol, which is built into the inetd daemon on most
+ systems.
config BUSYBOX_RDEV
- bool "rdev"
+ bool "rdev (1.8 kb)"
default y
help
- Print the device node associated with the filesystem mounted at '/'.
-
+ Print the device node associated with the filesystem mounted at '/'.
config BUSYBOX_READPROFILE
- bool "readprofile"
- default n
- #select PLATFORM_LINUX
+ bool "readprofile (7.1 kb)"
+ default y
help
- This allows you to parse /proc/profile for basic profiling.
-
+ This allows you to parse /proc/profile for basic profiling.
+config BUSYBOX_RENICE
+ bool "renice (4.2 kb)"
+ default y
+ help
+ Renice alters the scheduling priority of one or more running
+ processes.
+config BUSYBOX_REV
+ bool "rev (4.4 kb)"
+ default y
+ help
+ Reverse lines of a file or files.
config BUSYBOX_RTCWAKE
- bool "rtcwake"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "rtcwake (6.8 kb)"
+ default y
help
- Enter a system sleep state until specified wakeup time.
-
+ Enter a system sleep state until specified wakeup time.
config BUSYBOX_SCRIPT
- bool "script"
- default n
+ bool "script (8.6 kb)"
+ default y
help
- The script makes typescript of terminal session.
-
+ The script makes typescript of terminal session.
config BUSYBOX_SCRIPTREPLAY
- bool "scriptreplay"
- default n
+ bool "scriptreplay (2.4 kb)"
+ default y
help
- This program replays a typescript, using timing information
- given by script -t.
-
+ This program replays a typescript, using timing information
+ given by script -t.
config BUSYBOX_SETARCH
- bool "setarch"
- default n
- select BUSYBOX_PLATFORM_LINUX
+ bool "setarch (3.6 kb)"
+ default y
help
- The linux32 utility is used to create a 32bit environment for the
- specified program (usually a shell). It only makes sense to have
- this util on a system that supports both 64bit and 32bit userland
- (like amd64/x86, ppc64/ppc, sparc64/sparc, etc...).
+ The linux32 utility is used to create a 32bit environment for the
+ specified program (usually a shell). It only makes sense to have
+ this util on a system that supports both 64bit and 32bit userland
+ (like amd64/x86, ppc64/ppc, sparc64/sparc, etc...).
config BUSYBOX_LINUX32
- bool "linux32"
- default n
- select PLATFORM_LINUX
+ bool "linux32 (3.3 kb)"
+ default y
help
- Alias to "setarch linux32".
+ Alias to "setarch linux32".
config BUSYBOX_LINUX64
- bool "linux64"
- default n
- select PLATFORM_LINUX
- help
- Alias to "setarch linux64".
-
-config BUSYBOX_SWAPON
- bool "swapon"
- default n
- select PLATFORM_LINUX
- help
- This option enables the 'swapon' utility.
- Once you have created some swap space using 'mkswap', you also need
- to enable your swap space with the 'swapon' utility. The 'swapoff'
- utility is used, typically at system shutdown, to disable any swap
- space. If you are not using any swap space, you can leave this
- option disabled.
-
-config BUSYBOX_FEATURE_SWAPON_DISCARD
- bool "Support discard option -d"
- default n
- depends on BUSYBOX_SWAPON
- help
- Enable support for discarding swap area blocks at swapon and/or as
- the kernel frees them. This option enables both the -d option on
- 'swapon' and the 'discard' option for swap entries in /etc/fstab.
-
-config BUSYBOX_FEATURE_SWAPON_PRI
- bool "Support priority option -p"
+ bool "linux64 (3.3 kb)"
default y
- depends on BUSYBOX_SWAPON
help
- Enable support for setting swap device priority in swapon.
-
-config BUSYBOX_SWAPOFF
- bool "swapoff"
- default n
- select PLATFORM_LINUX
- help
- This option enables the 'swapoff' utility.
-
-config BUSYBOX_SWITCH_ROOT
- bool "switch_root"
- default n
- select BUSYBOX_PLATFORM_LINUX
- help
- The switch_root utility is used from initramfs to select a new
- root device. Under initramfs, you have to use this instead of
- pivot_root. (Stop reading here if you don't care why.)
-
- Booting with initramfs extracts a gzipped cpio archive into rootfs
- (which is a variant of ramfs/tmpfs). Because rootfs can't be moved
- or unmounted*, pivot_root will not work from initramfs. Instead,
- switch_root deletes everything out of rootfs (including itself),
- does a mount --move that overmounts rootfs with the new root, and
- then execs the specified init program.
-
- * Because the Linux kernel uses rootfs internally as the starting
- and ending point for searching through the kernel's doubly linked
- list of active mount points. That's why.
-
-config BUSYBOX_UMOUNT
- bool "umount"
+ Alias to "setarch linux64".
+config BUSYBOX_SETPRIV
+ bool "setpriv (6.6 kb)"
default y
- depends on !BUSYBOX_DISABLE_UMOUNT
- select BUSYBOX_PLATFORM_LINUX
+ select BUSYBOX_LONG_OPTS
help
- When you want to remove a mounted filesystem from its current mount
- point, for example when you are shutting down the system, the
- 'umount' utility is the tool to use. If you enabled the 'mount'
- utility, you almost certainly also want to enable 'umount'.
+ Run a program with different Linux privilege settings.
+ Requires kernel >= 3.5
-config BUSYBOX_FEATURE_UMOUNT_ALL
- bool "Support option -a"
+config BUSYBOX_FEATURE_SETPRIV_DUMP
+ bool "Support dumping current privilege state"
default y
- depends on BUSYBOX_UMOUNT
+ depends on BUSYBOX_SETPRIV
help
- Support -a option to unmount all currently mounted filesystems.
+ Enables the "--dump" switch to print out the current privilege
+ state. This is helpful for diagnosing problems.
-comment "Common options for mount/umount"
- depends on BUSYBOX_MOUNT || BUSYBOX_UMOUNT
-
-config BUSYBOX_FEATURE_MOUNT_LOOP
- bool "Support loopback mounts"
+config BUSYBOX_FEATURE_SETPRIV_CAPABILITIES
+ bool "Support capabilities"
default y
- depends on BUSYBOX_MOUNT || BUSYBOX_UMOUNT
+ depends on BUSYBOX_SETPRIV
help
- Enabling this feature allows automatic mounting of files (containing
- filesystem images) via the linux kernel's loopback devices.
- The mount command will detect you are trying to mount a file instead
- of a block device, and transparently associate the file with a
- loopback device. The umount command will also free that loopback
- device.
+ Capabilities can be used to grant processes additional rights
+ without the necessity to always execute as the root user.
+ Enabling this option enables "--dump" to show information on
+ capabilities.
- You can still use the 'losetup' utility (to manually associate files
- with loop devices) if you need to do something advanced, such as
- specify an offset or cryptographic options to the loopback device.
- (If you don't want umount to free the loop device, use "umount -D".)
-
-config BUSYBOX_FEATURE_MOUNT_LOOP_CREATE
- bool "Create new loopback devices if needed"
+config BUSYBOX_FEATURE_SETPRIV_CAPABILITY_NAMES
+ bool "Support capability names"
default y
- depends on BUSYBOX_FEATURE_MOUNT_LOOP
+ depends on BUSYBOX_SETPRIV && BUSYBOX_FEATURE_SETPRIV_CAPABILITIES
help
- Linux kernels >= 2.6.24 support unlimited loopback devices. They are
- allocated for use when trying to use a loop device. The loop device
- must however exist.
-
- This feature lets mount to try to create next /dev/loopN device
- if it does not find a free one.
-
-config BUSYBOX_FEATURE_MTAB_SUPPORT
- bool "Support for the old /etc/mtab file"
- default n
- depends on BUSYBOX_MOUNT || BUSYBOX_UMOUNT
- select BUSYBOX_FEATURE_MOUNT_FAKE
+ Capabilities can be either referenced via a human-readble name,
+ e.g. "net_admin", or using their index, e.g. "cap_12". Enabling
+ this option allows using the human-readable names in addition to
+ the index-based names.
+config BUSYBOX_SETSID
+ bool "setsid (3.6 kb)"
+ default y
help
- Historically, Unix systems kept track of the currently mounted
- partitions in the file "/etc/mtab". These days, the kernel exports
- the list of currently mounted partitions in "/proc/mounts", rendering
- the old mtab file obsolete. (In modern systems, /etc/mtab should be
- a symlink to /proc/mounts.)
-
- The only reason to have mount maintain an /etc/mtab file itself is if
- your stripped-down embedded system does not have a /proc directory.
- If you must use this, keep in mind it's inherently brittle (for
- example a mount under chroot won't update it), can't handle modern
- features like separate per-process filesystem namespaces, requires
- that your /etc directory be writable, tends to get easily confused
- by --bind or --move mounts, won't update if you rename a directory
- that contains a mount point, and so on. (In brief: avoid.)
-
- About the only reason to use this is if you've removed /proc from
- your kernel.
-
-config BUSYBOX_VOLUMEID
- bool #No description makes it a hidden option
- default n
-
-menu "Filesystem/Volume identification"
- depends on BUSYBOX_VOLUMEID
-
-config BUSYBOX_FEATURE_VOLUMEID_BCACHE
- bool "bcache filesystem"
+ setsid runs a program in a new session
+config BUSYBOX_SWAPON
+ bool "swapon (15 kb)"
default n
- depends on BUSYBOX_VOLUMEID
help
- TODO
+ Once you have created some swap space using 'mkswap', you also need
+ to enable your swap space with the 'swapon' utility. The 'swapoff'
+ utility is used, typically at system shutdown, to disable any swap
+ space. If you are not using any swap space, you can leave this
+ option disabled.
-config BUSYBOX_FEATURE_VOLUMEID_EXT
- bool "Ext filesystem"
+config BUSYBOX_FEATURE_SWAPON_DISCARD
+ bool "Support discard option -d"
default y
- depends on BUSYBOX_VOLUMEID
+ depends on BUSYBOX_SWAPON
help
- TODO
+ Enable support for discarding swap area blocks at swapon and/or as
+ the kernel frees them. This option enables both the -d option on
+ 'swapon' and the 'discard' option for swap entries in /etc/fstab.
-config BUSYBOX_FEATURE_VOLUMEID_BTRFS
- bool "btrfs filesystem"
+config BUSYBOX_FEATURE_SWAPON_PRI
+ bool "Support priority option -p"
default y
- depends on BUSYBOX_VOLUMEID
+ depends on BUSYBOX_SWAPON
help
- TODO
+ Enable support for setting swap device priority in swapon.
-config BUSYBOX_FEATURE_VOLUMEID_REISERFS
- bool "Reiser filesystem"
- default y
- depends on BUSYBOX_VOLUMEID
- help
- TODO
+config BUSYBOX_SWAPOFF
+ bool "swapoff (14 kb)"
+ default n
-config BUSYBOX_FEATURE_VOLUMEID_F2FS
- bool "f2fs filesystem"
+config BUSYBOX_FEATURE_SWAPONOFF_LABEL
+ bool "Support specifying devices by label or UUID"
default y
- depends on BUSYBOX_VOLUMEID
+ depends on BUSYBOX_SWAPON || BUSYBOX_SWAPOFF
+ select BUSYBOX_VOLUMEID
help
- F2FS (aka Flash-Friendly File System) is a log-structured file system,
- which is adapted to newer forms of storage. F2FS also remedies some
- known issues of the older log structured file systems, such as high
- cleaning overhead.
-
-config BUSYBOX_FEATURE_VOLUMEID_FAT
- bool "fat filesystem"
+ This allows for specifying a device by label or uuid, rather than by
+ name. This feature utilizes the same functionality as blkid/findfs.
+config BUSYBOX_SWITCH_ROOT
+ bool "switch_root (5.5 kb)"
default y
- depends on BUSYBOX_VOLUMEID
help
- TODO
-
-config BUSYBOX_FEATURE_VOLUMEID_EXFAT
- bool "exFAT filesystem"
- default y
- depends on BUSYBOX_VOLUMEID
- help
- exFAT (extended FAT) is a proprietary file system designed especially
- for flash drives. It has many features from NTFS, but with less
- overhead. exFAT is used on most SDXC cards for consumer electronics.
+ The switch_root utility is used from initramfs to select a new
+ root device. Under initramfs, you have to use this instead of
+ pivot_root. (Stop reading here if you don't care why.)
-config BUSYBOX_FEATURE_VOLUMEID_HFS
- bool "hfs filesystem"
- default y
- depends on BUSYBOX_VOLUMEID
- help
- TODO
+ Booting with initramfs extracts a gzipped cpio archive into rootfs
+ (which is a variant of ramfs/tmpfs). Because rootfs can't be moved
+ or unmounted*, pivot_root will not work from initramfs. Instead,
+ switch_root deletes everything out of rootfs (including itself),
+ does a mount --move that overmounts rootfs with the new root, and
+ then execs the specified init program.
-config BUSYBOX_FEATURE_VOLUMEID_NILFS
- bool "nilfs filesystem"
- default y
- depends on BUSYBOX_VOLUMEID
- help
- TODO
+ * Because the Linux kernel uses rootfs internally as the starting
+ and ending point for searching through the kernel's doubly linked
+ list of active mount points. That's why.
-config BUSYBOX_FEATURE_VOLUMEID_JFS
- bool "jfs filesystem"
+config BUSYBOX_TASKSET
+ bool "taskset (4.2 kb)"
default y
- depends on BUSYBOX_VOLUMEID
help
- TODO
-
-### config FEATURE_VOLUMEID_UFS
-### bool "ufs filesystem"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
+ Retrieve or set a processes's CPU affinity.
+ This requires sched_{g,s}etaffinity support in your libc.
-config BUSYBOX_FEATURE_VOLUMEID_XFS
- bool "xfs filesystem"
+config BUSYBOX_FEATURE_TASKSET_FANCY
+ bool "Fancy output"
default y
- depends on BUSYBOX_VOLUMEID
+ depends on BUSYBOX_TASKSET
help
- TODO
+ Needed for machines with more than 32-64 CPUs:
+ affinity parameter 0xHHHHHHHHHHHHHHHHHHHH can be arbitrarily long
+ in this case. Otherwise, it is limited to sizeof(long).
-config BUSYBOX_FEATURE_VOLUMEID_NTFS
- bool "ntfs filesystem"
+config BUSYBOX_FEATURE_TASKSET_CPULIST
+ bool "CPU list support (-c option)"
default y
- depends on BUSYBOX_VOLUMEID
+ depends on BUSYBOX_FEATURE_TASKSET_FANCY
help
- TODO
-
-config BUSYBOX_FEATURE_VOLUMEID_ISO9660
- bool "iso9660 filesystem"
+ Add support for taking/printing affinity as CPU list when '-c'
+ option is used. For example, it prints '0-3,7' instead of mask '8f'.
+config BUSYBOX_UEVENT
+ bool "uevent (3.1 kb)"
default y
- depends on BUSYBOX_VOLUMEID
help
- TODO
-
-config BUSYBOX_FEATURE_VOLUMEID_UDF
- bool "udf filesystem"
+ uevent is a netlink listener for kernel uevent notifications
+ sent via netlink. It is usually used for dynamic device creation.
+config BUSYBOX_UMOUNT
+ bool "umount (5.1 kb)"
default y
- depends on BUSYBOX_VOLUMEID
help
- TODO
+ When you want to remove a mounted filesystem from its current mount
+ point, for example when you are shutting down the system, the
+ 'umount' utility is the tool to use. If you enabled the 'mount'
+ utility, you almost certainly also want to enable 'umount'.
-config BUSYBOX_FEATURE_VOLUMEID_LUKS
- bool "luks filesystem"
+config BUSYBOX_FEATURE_UMOUNT_ALL
+ bool "Support -a (unmount all)"
default y
- depends on BUSYBOX_VOLUMEID
+ depends on BUSYBOX_UMOUNT
help
- TODO
-
-config BUSYBOX_FEATURE_VOLUMEID_LINUXSWAP
- bool "linux swap filesystem"
+ Support -a option to unmount all currently mounted filesystems.
+config BUSYBOX_UNSHARE
+ bool "unshare (7.2 kb)"
default y
- depends on BUSYBOX_VOLUMEID
+ depends on !BUSYBOX_NOMMU
+ select BUSYBOX_LONG_OPTS
help
- TODO
-
-### config FEATURE_VOLUMEID_LVM
-### bool "lvm"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
-
-config BUSYBOX_FEATURE_VOLUMEID_CRAMFS
- bool "cramfs filesystem"
+ Run program with some namespaces unshared from parent.
+config BUSYBOX_WALL
+ bool "wall (2.6 kb)"
default y
- depends on BUSYBOX_VOLUMEID
+ depends on BUSYBOX_FEATURE_UTMP
help
- TODO
+ Write a message to all users that are logged in.
-### config FEATURE_VOLUMEID_HPFS
-### bool "hpfs filesystem"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
+comment "Common options for mount/umount"
+ depends on BUSYBOX_MOUNT || BUSYBOX_UMOUNT
-config BUSYBOX_FEATURE_VOLUMEID_ROMFS
- bool "romfs filesystem"
+config BUSYBOX_FEATURE_MOUNT_LOOP
+ bool "Support loopback mounts"
default y
- depends on BUSYBOX_VOLUMEID
+ depends on BUSYBOX_MOUNT || BUSYBOX_UMOUNT
help
- TODO
+ Enabling this feature allows automatic mounting of files (containing
+ filesystem images) via the linux kernel's loopback devices.
+ The mount command will detect you are trying to mount a file instead
+ of a block device, and transparently associate the file with a
+ loopback device. The umount command will also free that loopback
+ device.
-config BUSYBOX_FEATURE_VOLUMEID_SQUASHFS
- bool "SquashFS filesystem"
- default y
- depends on BUSYBOX_VOLUMEID && BUSYBOX_FEATURE_BLKID_TYPE
- help
- Squashfs is a compressed read-only filesystem for Linux. Squashfs is
- intended for general read-only filesystem use and in constrained block
- device/memory systems (e.g. embedded systems) where low overhead is
- needed.
+ You can still use the 'losetup' utility (to manually associate files
+ with loop devices) if you need to do something advanced, such as
+ specify an offset or cryptographic options to the loopback device.
+ (If you don't want umount to free the loop device, use "umount -D".)
-config BUSYBOX_FEATURE_VOLUMEID_SYSV
- bool "sysv filesystem"
+config BUSYBOX_FEATURE_MOUNT_LOOP_CREATE
+ bool "Create new loopback devices if needed"
default y
- depends on BUSYBOX_VOLUMEID
+ depends on BUSYBOX_FEATURE_MOUNT_LOOP
help
- TODO
-
-### config FEATURE_VOLUMEID_MINIX
-### bool "minix filesystem"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
+ Linux kernels >= 2.6.24 support unlimited loopback devices. They are
+ allocated for use when trying to use a loop device. The loop device
+ must however exist.
-### These only detect partition tables - not used (yet?)
-### config FEATURE_VOLUMEID_MAC
-### bool "mac filesystem"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
-###
-### config FEATURE_VOLUMEID_MSDOS
-### bool "msdos filesystem"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
+ This feature lets mount to try to create next /dev/loopN device
+ if it does not find a free one.
-config BUSYBOX_FEATURE_VOLUMEID_OCFS2
- bool "ocfs2 filesystem"
- default y
- depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_MTAB_SUPPORT
+ bool "Support old /etc/mtab file"
+ default n
+ depends on BUSYBOX_MOUNT || BUSYBOX_UMOUNT
+ select BUSYBOX_FEATURE_MOUNT_FAKE
help
- TODO
-
-### config FEATURE_VOLUMEID_HIGHPOINTRAID
-### bool "highpoint raid"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_ISWRAID
-### bool "intel raid"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_LSIRAID
-### bool "lsi raid"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_VIARAID
-### bool "via raid"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_SILICONRAID
-### bool "silicon raid"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_NVIDIARAID
-### bool "nvidia raid"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
-
-### config FEATURE_VOLUMEID_PROMISERAID
-### bool "promise raid"
-### default y
-### depends on BUSYBOX_VOLUMEID
-### help
-### TODO
-
-config BUSYBOX_FEATURE_VOLUMEID_LINUXRAID
- bool "linuxraid"
- default y
- depends on BUSYBOX_VOLUMEID
- help
- TODO
-
-config BUSYBOX_FEATURE_VOLUMEID_UBIFS
- bool "UBIFS filesystem"
- default y
- depends on BUSYBOX_VOLUMEID
- help
- UBIFS (Unsorted Block Image File System) is a file
- system for use with raw flash memory media.
-
-
-endmenu
+ Historically, Unix systems kept track of the currently mounted
+ partitions in the file "/etc/mtab". These days, the kernel exports
+ the list of currently mounted partitions in "/proc/mounts", rendering
+ the old mtab file obsolete. (In modern systems, /etc/mtab should be
+ a symlink to /proc/mounts.)
+
+ The only reason to have mount maintain an /etc/mtab file itself is if
+ your stripped-down embedded system does not have a /proc directory.
+ If you must use this, keep in mind it's inherently brittle (for
+ example a mount under chroot won't update it), can't handle modern
+ features like separate per-process filesystem namespaces, requires
+ that your /etc directory be writable, tends to get easily confused
+ by --bind or --move mounts, won't update if you rename a directory
+ that contains a mount point, and so on. (In brief: avoid.)
+
+ About the only reason to use this is if you've removed /proc from
+ your kernel.
+
+source package/busybox/config/util-linux/volume_id/Config.in
endmenu
diff --git a/package/busybox/config/util-linux/volume_id/Config.in b/package/busybox/config/util-linux/volume_id/Config.in
new file mode 100644
index 000000000..74824fb42
--- /dev/null
+++ b/package/busybox/config/util-linux/volume_id/Config.in
@@ -0,0 +1,203 @@
+# DO NOT EDIT. This file is generated from Config.src
+#
+# For a description of the syntax of this configuration file,
+# see docs/Kconfig-language.txt.
+#
+
+config BUSYBOX_VOLUMEID
+ bool #No description makes it a hidden option
+ default n
+
+menu "Filesystem/Volume identification"
+ depends on BUSYBOX_VOLUMEID
+
+config BUSYBOX_FEATURE_VOLUMEID_BCACHE
+ bool "bcache filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_BTRFS
+ bool "btrfs filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_CRAMFS
+ bool "cramfs filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_EROFS
+ bool "erofs filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+ help
+ Erofs is a compressed readonly filesystem for Linux.
+config BUSYBOX_FEATURE_VOLUMEID_EXFAT
+ bool "exFAT filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+ help
+ exFAT (extended FAT) is a proprietary file system designed especially
+ for flash drives. It has many features from NTFS, but with less
+ overhead. exFAT is used on most SDXC cards for consumer electronics.
+config BUSYBOX_FEATURE_VOLUMEID_EXT
+ bool "Ext filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_F2FS
+ bool "f2fs filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+ help
+ F2FS (aka Flash-Friendly File System) is a log-structured file system,
+ which is adapted to newer forms of storage. F2FS also remedies some
+ known issues of the older log structured file systems, such as high
+ cleaning overhead.
+config BUSYBOX_FEATURE_VOLUMEID_FAT
+ bool "fat filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_HFS
+ bool "hfs filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_ISO9660
+ bool "iso9660 filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_JFS
+ bool "jfs filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_LFS
+ bool "LittleFS filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID && BUSYBOX_FEATURE_BLKID_TYPE
+ help
+ LittleFS is a small fail-safe filesystem designed for embedded
+ systems. It has strong copy-on-write guarantees and storage on disk
+ is always kept in a valid state. It also provides a form of dynamic
+ wear levelling for systems that can not fit a full flash translation
+ layer.
+config BUSYBOX_FEATURE_VOLUMEID_LINUXRAID
+ bool "linuxraid"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_LINUXSWAP
+ bool "linux swap filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_LUKS
+ bool "luks filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_MINIX
+ bool "minix filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_NILFS
+ bool "nilfs filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+ help
+ NILFS is a New Implementation of a Log-Structured File System (LFS)
+ that supports continuous snapshots. This provides features like
+ versioning of the entire filesystem, restoration of files that
+ were deleted a few minutes ago. NILFS keeps consistency like
+ conventional LFS, so it provides quick recovery after system crashes.
+
+ The possible use of NILFS includes versioning, tamper detection,
+ SOX compliance logging, and so forth. It can serve as an alternative
+ filesystem for Linux desktop environment, or as a basis of advanced
+ storage appliances.
+config BUSYBOX_FEATURE_VOLUMEID_NTFS
+ bool "ntfs filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_OCFS2
+ bool "ocfs2 filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_REISERFS
+ bool "Reiser filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_ROMFS
+ bool "romfs filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_SQUASHFS
+ bool "SquashFS filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID && BUSYBOX_FEATURE_BLKID_TYPE
+ help
+ Squashfs is a compressed read-only filesystem for Linux. Squashfs is
+ intended for general read-only filesystem use and in constrained block
+ device/memory systems (e.g. embedded systems) where low overhead is
+ needed.
+config BUSYBOX_FEATURE_VOLUMEID_SYSV
+ bool "sysv filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_UBIFS
+ bool "UBIFS filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+ help
+ UBIFS (Unsorted Block Image File System) is a file
+ system for use with raw flash memory media.
+config BUSYBOX_FEATURE_VOLUMEID_UDF
+ bool "udf filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_HIGHPOINTRAID
+### bool "highpoint raid"
+### default y
+### depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_HPFS
+### bool "hpfs filesystem"
+### default y
+### depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_ISWRAID
+### bool "intel raid"
+### default y
+### depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_LSIRAID
+### bool "lsi raid"
+### default y
+### depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_LVM
+### bool "lvm"
+### default y
+### depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_MAC
+### bool "mac filesystem"
+### default y
+### depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_MSDOS
+### bool "msdos filesystem"
+### default y
+### depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_NVIDIARAID
+### bool "nvidia raid"
+### default y
+### depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_PROMISERAID
+### bool "promise raid"
+### default y
+### depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_SILICONRAID
+### bool "silicon raid"
+### default y
+### depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_UFS
+### bool "ufs filesystem"
+### default y
+### depends on BUSYBOX_VOLUMEID
+### config FEATURE_VOLUMEID_VIARAID
+### bool "via raid"
+### default y
+### depends on BUSYBOX_VOLUMEID
+config BUSYBOX_FEATURE_VOLUMEID_XFS
+ bool "xfs filesystem"
+ default y
+ depends on BUSYBOX_VOLUMEID
+
+endmenu
diff --git a/package/busybox/extract_config.sh b/package/busybox/extract_config.sh
new file mode 100755
index 000000000..1d2b08f0f
--- /dev/null
+++ b/package/busybox/extract_config.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+
+[[ -d "$1" ]] || {
+ echo "Usage: $(basename $0) <busybox_sourcedir>"
+ exit 1
+}
+
+bbsrc="$(realpath $1)"
+cd $(dirname $0)
+
+[[ -e config.new ]] && {
+ echo -n "config.new exists already. delete? [y|n] "
+ read ans
+ case "$ans" in
+ y|Y)
+ rm -rf config.new
+ ;;
+ n|N)
+ ;;
+ *)
+ echo "what is '$ans'?"
+ exit 1
+ esac
+}
+mkdir -p config.new
+
+# store config paths relative to $bbsrc into an array
+readarray -t configs <<< $(cd "$bbsrc"; find . -type f -name Config.in)
+
+# copy each config into config.new
+for config in "${configs[@]}"; do
+ mkdir -p config.new/$(dirname $config)
+ cp "$bbsrc/$config" "config.new/$config"
+done
+
+# store defined config symbols into an array
+readarray -t symbols <<< $(grep -hr '^config ' config.new | cut -d' ' -f2)
+
+### customize busybox config system for OpenADK
+
+cd config.new
+
+# no extra mainmenu, allow replacing PREFIX
+sed -i -e 's/^mainmenu/# mainmenu/' -e 's,./_install,@IDIR@,' Config.in
+
+# prefix all symbols with BUSYBOX_ to create a namespace
+# limit replacement to lines containing given keywords to
+# not mess up help texts and prompts too much
+keywords='\(config\|depends\|range\|select\|default\|^if \)'
+sympipe=$(IFS='|'; echo "${symbols[*]}" | sed -e 's/|/\\|/g')
+sympipe_s='/'$keywords'/s/\b\('$sympipe'\)\b/BUSYBOX_\1/g'
+
+# fix path of all sourced files
+source_s='s,^\(source *\)\([^ ]*\)$,\1package/busybox/config/\2,'
+
+sed -i -e "$sympipe_s" -e "$source_s" "${configs[@]}"
diff --git a/package/busybox/files/ntpd.init b/package/busybox/files/ntpd.init
index 15c460dcc..0f578574a 100644
--- a/package/busybox/files/ntpd.init
+++ b/package/busybox/files/ntpd.init
@@ -1,6 +1,6 @@
#!/bin/sh
#PKG busybox
-#INIT 60
+#INIT 45
. /etc/rc.conf
case $1 in
diff --git a/package/busybox/patches/002-find-empty.patch b/package/busybox/patches/002-find-empty.patch
deleted file mode 100644
index f8c1f98cf..000000000
--- a/package/busybox/patches/002-find-empty.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-diff -Nur busybox-1.17.0.orig/findutils/find.c busybox-1.17.0/findutils/find.c
---- busybox-1.17.0.orig/findutils/find.c 2010-06-24 04:40:43.000000000 +0200
-+++ busybox-1.17.0/findutils/find.c 2010-07-08 12:33:55.759015289 +0200
-@@ -133,6 +133,14 @@
- //config: help
- //config: Support the 'find -inum' option for searching by inode number.
- //config:
-+//config:config FEATURE_FIND_EMPTY
-+//config: bool "Enable -empty option matching empty files and directories"
-+//config: default y
-+//config: depends on FIND
-+//config: help
-+//config: Support the 'find -empty' option for searching empty files
-+//config: and directories.
-+//config:
- //config:config FEATURE_FIND_EXEC
- //config: bool "Enable -exec: execute commands"
- //config: default y
-@@ -270,6 +278,7 @@
- IF_FEATURE_FIND_CONTEXT(ACTS(context, security_context_t context;))
- IF_FEATURE_FIND_PAREN( ACTS(paren, action ***subexpr;))
- IF_FEATURE_FIND_PRUNE( ACTS(prune))
-+IF_FEATURE_FIND_EMPTY( ACTS(empty))
- IF_FEATURE_FIND_DELETE( ACTS(delete))
- IF_FEATURE_FIND_EXEC( ACTS(exec, char **exec_argv; unsigned *subst_count; int exec_argc;))
- IF_FEATURE_FIND_GROUP( ACTS(group, gid_t gid;))
-@@ -519,6 +528,34 @@
- return exec_actions(ap->subexpr, fileName, statbuf);
- }
- #endif
-+#if ENABLE_FEATURE_FIND_EMPTY
-+ACTF(empty)
-+{
-+ DIR *d;
-+ struct dirent *dp;
-+ bool empty = TRUE;
-+
-+ if (S_ISDIR(statbuf->st_mode)) {
-+ d = opendir(fileName);
-+ if (d == NULL)
-+ bb_simple_perror_msg(fileName);
-+ for (dp = readdir(d); dp; dp = readdir(d)) {
-+ if (dp->d_name[0] != '.' ||
-+ (dp->d_name[1] != '\0' &&
-+ (dp->d_name[1] != '.' ||
-+ dp->d_name[2] != '\0'))) {
-+ empty = FALSE;
-+ break;
-+ }
-+ }
-+ closedir(d);
-+ return(empty);
-+ } else if (S_ISREG(statbuf->st_mode))
-+ return (statbuf->st_size == 0);
-+ else
-+ return FALSE;
-+}
-+#endif
- #if ENABLE_FEATURE_FIND_SIZE
- ACTF(size)
- {
-@@ -686,6 +723,7 @@
- IF_FEATURE_FIND_PRINT0( PARM_print0 ,)
- IF_FEATURE_FIND_DEPTH( PARM_depth ,)
- IF_FEATURE_FIND_PRUNE( PARM_prune ,)
-+ IF_FEATURE_FIND_EMPTY( PARM_empty ,)
- IF_FEATURE_FIND_DELETE( PARM_delete ,)
- IF_FEATURE_FIND_EXEC( PARM_exec ,)
- IF_FEATURE_FIND_PAREN( PARM_char_brace,)
-@@ -720,6 +758,7 @@
- IF_FEATURE_FIND_PRINT0( "-print0\0" )
- IF_FEATURE_FIND_DEPTH( "-depth\0" )
- IF_FEATURE_FIND_PRUNE( "-prune\0" )
-+ IF_FEATURE_FIND_EMPTY( "-empty\0" )
- IF_FEATURE_FIND_DELETE( "-delete\0" )
- IF_FEATURE_FIND_EXEC( "-exec\0" )
- IF_FEATURE_FIND_PAREN( "(\0" )
-@@ -839,6 +878,12 @@
- (void) ALLOC_ACTION(prune);
- }
- #endif
-+#if ENABLE_FEATURE_FIND_EMPTY
-+ else if (parm == PARM_empty) {
-+ IF_FEATURE_FIND_NOT( invert_flag = 0; )
-+ (void) ALLOC_ACTION(empty);
-+ }
-+#endif
- #if ENABLE_FEATURE_FIND_DELETE
- else if (parm == PARM_delete) {
- G.need_print = 0;
diff --git a/package/busybox/patches/002-hwclock-musl.patch b/package/busybox/patches/002-hwclock-musl.patch
new file mode 100644
index 000000000..a5b9ff50d
--- /dev/null
+++ b/package/busybox/patches/002-hwclock-musl.patch
@@ -0,0 +1,31 @@
+diff -Nur busybox-1.36.1.orig/util-linux/hwclock.c busybox-1.36.1/util-linux/hwclock.c
+--- busybox-1.36.1.orig/util-linux/hwclock.c 2021-01-01 11:52:27.000000000 +0100
++++ busybox-1.36.1/util-linux/hwclock.c 2024-04-10 11:18:06.569673535 +0200
+@@ -136,10 +136,24 @@
+ * because "it's deprecated by POSIX, therefore it's fine
+ * if we gratuitously break stuff" :(
+ */
+-#if !defined(SYS_settimeofday) && defined(SYS_settimeofday_time32)
+-# define SYS_settimeofday SYS_settimeofday_time32
+-#endif
++# if !defined(SYS_settimeofday) && defined(SYS_settimeofday_time32)
++# define SYS_settimeofday SYS_settimeofday_time32
++# endif
++# if defined(SYS_settimeofday)
+ int ret = syscall(SYS_settimeofday, NULL, tz);
++# else
++ /* Some new architectures have neither settimeofday nor
++ * settimeofday_time32, and the whole kernel timezone handling appears
++ * to have been dropped due to some oddities in the API. See:
++ *
++ * - glibc's commit c3f9aef063 ("Use clock_settime to implement settimeofday.")
++ * - https://github.com/systemd/systemd/issues/13305
++ * - https://inbox.sourceware.org/libc-alpha/cb015d0d1d29e4b948c7118c5b12ff2bed83a6ec.1561421042.git.alistair.francis@wdc.com/
++ *
++ * So instead just silently drop these calls.
++ */
++ int ret = -ENOSYS;
++# endif
+ #else
+ int ret = settimeofday(NULL, tz);
+ #endif
diff --git a/package/busybox/patches/006-od-bloat.patch b/package/busybox/patches/006-od-bloat.patch
deleted file mode 100644
index ff501acdb..000000000
--- a/package/busybox/patches/006-od-bloat.patch
+++ /dev/null
@@ -1,214 +0,0 @@
-diff -Nur busybox-1.18.1.orig/coreutils/od.c busybox-1.18.1/coreutils/od.c
---- busybox-1.18.1.orig/coreutils/od.c 2010-12-20 01:41:26.000000000 +0100
-+++ busybox-1.18.1/coreutils/od.c 2010-12-25 23:18:48.000000000 +0100
-@@ -13,210 +13,4 @@
-
-
- #include "libbb.h"
--#if ENABLE_DESKTOP
--/* This one provides -t (busybox's own build script needs it) */
- #include "od_bloaty.c"
--#else
--
--#include "dump.h"
--
--static void
--odoffset(dumper_t *dumper, int argc, char ***argvp)
--{
-- char *num, *p;
-- int base;
-- char *end;
--
-- /*
-- * The offset syntax of od(1) was genuinely bizarre. First, if
-- * it started with a plus it had to be an offset. Otherwise, if
-- * there were at least two arguments, a number or lower-case 'x'
-- * followed by a number makes it an offset. By default it was
-- * octal; if it started with 'x' or '0x' it was hex. If it ended
-- * in a '.', it was decimal. If a 'b' or 'B' was appended, it
-- * multiplied the number by 512 or 1024 byte units. There was
-- * no way to assign a block count to a hex offset.
-- *
-- * We assumes it's a file if the offset is bad.
-- */
-- p = **argvp;
--
-- if (!p) {
-- /* hey someone is probably piping to us ... */
-- return;
-- }
--
-- if ((*p != '+')
-- && (argc < 2
-- || (!isdigit(p[0])
-- && ((p[0] != 'x') || !isxdigit(p[1])))))
-- return;
--
-- base = 0;
-- /*
-- * skip over leading '+', 'x[0-9a-fA-f]' or '0x', and
-- * set base.
-- */
-- if (p[0] == '+')
-- ++p;
-- if (p[0] == 'x' && isxdigit(p[1])) {
-- ++p;
-- base = 16;
-- } else if (p[0] == '0' && p[1] == 'x') {
-- p += 2;
-- base = 16;
-- }
--
-- /* skip over the number */
-- if (base == 16)
-- for (num = p; isxdigit(*p); ++p)
-- continue;
-- else
-- for (num = p; isdigit(*p); ++p)
-- continue;
--
-- /* check for no number */
-- if (num == p)
-- return;
--
-- /* if terminates with a '.', base is decimal */
-- if (*p == '.') {
-- if (base)
-- return;
-- base = 10;
-- }
--
-- dumper->dump_skip = strtol(num, &end, base ? base : 8);
--
-- /* if end isn't the same as p, we got a non-octal digit */
-- if (end != p)
-- dumper->dump_skip = 0;
-- else {
-- if (*p) {
-- if (*p == 'b') {
-- dumper->dump_skip *= 512;
-- ++p;
-- } else if (*p == 'B') {
-- dumper->dump_skip *= 1024;
-- ++p;
-- }
-- }
-- if (*p)
-- dumper->dump_skip = 0;
-- else {
-- ++*argvp;
-- /*
-- * If the offset uses a non-octal base, the base of
-- * the offset is changed as well. This isn't pretty,
-- * but it's easy.
-- */
--#define TYPE_OFFSET 7
-- {
-- char x_or_d;
-- if (base == 16) {
-- x_or_d = 'x';
-- goto DO_X_OR_D;
-- }
-- if (base == 10) {
-- x_or_d = 'd';
-- DO_X_OR_D:
-- dumper->fshead->nextfu->fmt[TYPE_OFFSET]
-- = dumper->fshead->nextfs->nextfu->fmt[TYPE_OFFSET]
-- = x_or_d;
-- }
-- }
-- }
-- }
--}
--
--static const char *const add_strings[] = {
-- "16/1 \"%3_u \" \"\\n\"", /* a */
-- "8/2 \" %06o \" \"\\n\"", /* B, o */
-- "16/1 \"%03o \" \"\\n\"", /* b */
-- "16/1 \"%3_c \" \"\\n\"", /* c */
-- "8/2 \" %05u \" \"\\n\"", /* d */
-- "4/4 \" %010u \" \"\\n\"", /* D */
-- "2/8 \" %21.14e \" \"\\n\"", /* e (undocumented in od), F */
-- "4/4 \" %14.7e \" \"\\n\"", /* f */
-- "4/4 \" %08x \" \"\\n\"", /* H, X */
-- "8/2 \" %04x \" \"\\n\"", /* h, x */
-- "4/4 \" %11d \" \"\\n\"", /* I, L, l */
-- "8/2 \" %6d \" \"\\n\"", /* i */
-- "4/4 \" %011o \" \"\\n\"", /* O */
--};
--
--static const char od_opts[] ALIGN1 = "aBbcDdeFfHhIiLlOoXxv";
--
--static const char od_o2si[] ALIGN1 = {
-- 0, 1, 2, 3, 5,
-- 4, 6, 6, 7, 8,
-- 9, 0xa, 0xb, 0xa, 0xa,
-- 0xb, 1, 8, 9,
--};
--
--int od_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
--int od_main(int argc, char **argv)
--{
-- int ch;
-- int first = 1;
-- char *p;
-- dumper_t *dumper = alloc_dumper();
--
-- while ((ch = getopt(argc, argv, od_opts)) > 0) {
-- if (ch == 'v') {
-- dumper->dump_vflag = ALL;
-- } else if (((p = strchr(od_opts, ch)) != NULL) && (*p != '\0')) {
-- if (first) {
-- first = 0;
-- bb_dump_add(dumper, "\"%07.7_Ao\n\"");
-- bb_dump_add(dumper, "\"%07.7_ao \"");
-- } else {
-- bb_dump_add(dumper, "\" \"");
-- }
-- bb_dump_add(dumper, add_strings[(int)od_o2si[(p - od_opts)]]);
-- } else { /* P, p, s, w, or other unhandled */
-- bb_show_usage();
-- }
-- }
-- if (!dumper->fshead) {
-- bb_dump_add(dumper, "\"%07.7_Ao\n\"");
-- bb_dump_add(dumper, "\"%07.7_ao \" 8/2 \"%06o \" \"\\n\"");
-- }
--
-- argc -= optind;
-- argv += optind;
--
-- odoffset(dumper, argc, &argv);
--
-- return bb_dump_dump(dumper, argv);
--}
--#endif /* ENABLE_DESKTOP */
--
--/*-
-- * Copyright (c) 1990 The Regents of the University of California.
-- * All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- * notice, this list of conditions and the following disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in the
-- * documentation and/or other materials provided with the distribution.
-- * 3. Neither the name of the University nor the names of its contributors
-- * may be used to endorse or promote products derived from this software
-- * without specific prior written permission.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-- * SUCH DAMAGE.
-- */
diff --git a/package/busybox/patches/009-disable-Oz.patch b/package/busybox/patches/009-disable-Oz.patch
new file mode 100644
index 000000000..11830586f
--- /dev/null
+++ b/package/busybox/patches/009-disable-Oz.patch
@@ -0,0 +1,20 @@
+diff -Nur busybox-1.36.1.orig/Makefile.flags busybox-1.36.1/Makefile.flags
+--- busybox-1.36.1.orig/Makefile.flags 2023-01-03 15:14:43.000000000 +0100
++++ busybox-1.36.1/Makefile.flags 2023-07-30 15:24:31.983113101 +0200
+@@ -87,14 +87,14 @@
+ #CFLAGS += $(call cc-option,-Wconversion,)
+
+ ifneq ($(CONFIG_DEBUG),y)
+-CFLAGS += $(call cc-option,-Oz,$(call cc-option,-Os,$(call cc-option,-O2,)))
++CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,))
+ else
+ CFLAGS += $(call cc-option,-g,)
+ #CFLAGS += "-D_FORTIFY_SOURCE=2"
+ ifeq ($(CONFIG_DEBUG_PESSIMIZE),y)
+ CFLAGS += $(call cc-option,-O0,)
+ else
+-CFLAGS += $(call cc-option,-Oz,$(call cc-option,-Os,$(call cc-option,-O2,)))
++CFLAGS += $(call cc-option,-Os,$(call cc-option,-O2,))
+ endif
+ endif
+ ifeq ($(CONFIG_DEBUG_SANITIZE),y)
diff --git a/package/bzip2/Makefile b/package/bzip2/Makefile
index 7f7336e4b..723d1abcc 100644
--- a/package/bzip2/Makefile
+++ b/package/bzip2/Makefile
@@ -4,16 +4,16 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= bzip2
-PKG_VERSION:= 1.0.6
-PKG_RELEASE:= 3
-PKG_HASH:= a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd
+PKG_VERSION:= 1.0.8
+PKG_RELEASE:= 1
+PKG_HASH:= ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269
PKG_DESCR:= compression utility
PKG_SECTION:= app/archive
PKG_BUILDDEP:= bzip2-host
PKG_DEPENDS:= libbz2
HOST_BUILDDEP:= patch-host
PKG_URL:= http://www.bzip.org/
-PKG_SITES:= http://www.bzip.org/${PKG_VERSION}/
+PKG_SITES:= https://sourceware.org/pub/bzip2/
PKG_LIBNAME:= libbz2
PKG_OPTS:= dev
@@ -31,7 +31,7 @@ $(eval $(call PKG_template,BZIP2,bzip2,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPEN
$(eval $(call PKG_template,LIBBZ2,libbz2,${PKG_VERSION}-${PKG_RELEASE},,${PKGSD_LIBBZ2},${PKGSC_LIBBZ2},${PKG_OPTS}))
HOST_STYLE:= manual
-HOST_MAKE_FILE:= Makefile
+HOST_MAKE_FILE:= Makefile-libbz2_so
ifneq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
MAKE_FILE:= Makefile-libbz2_so
@@ -50,8 +50,13 @@ host-build:
PREFIX=${HOST_WRKINST}/usr ${HOST_ALL_TARGET})
bzip2-hostinstall:
+ ${INSTALL_DIR} ${STAGING_HOST_DIR}/usr/include
+ $(CP) ${WRKBUILD}/bzlib.h ${STAGING_HOST_DIR}/usr/include
+ ${INSTALL_DIR} ${STAGING_HOST_DIR}/usr/lib
+ $(CP) ${WRKBUILD}/libbz2.so* ${STAGING_HOST_DIR}/usr/lib
+ (cd ${STAGING_HOST_DIR}/usr/lib; ln -sf libbz2.so.1.0.8 libbz2.so)
${INSTALL_DIR} ${STAGING_HOST_DIR}/usr/bin
- $(INSTALL_BIN) ${WRKBUILD}/bzip2 ${STAGING_HOST_DIR}/usr/bin/bzip2
+ $(INSTALL_BIN) ${WRKBUILD}/bzip2-shared ${STAGING_HOST_DIR}/usr/bin/bzip2
do-install:
${INSTALL_DIR} $(STAGING_TARGET_DIR)/usr/include
@@ -66,7 +71,7 @@ libbz2-install:
${IDIR_LIBBZ2}/usr/lib
$(CP) ${WRKBUILD}/libbz2.so* \
${STAGING_TARGET_DIR}/usr/lib
- (cd ${STAGING_TARGET_DIR}/usr/lib; ln -sf libbz2.so.1.0.6 libbz2.so)
+ (cd ${STAGING_TARGET_DIR}/usr/lib; ln -sf libbz2.so.1.0.8 libbz2.so)
${INSTALL_DIR} $(IDIR_LIBBZ2_DEV)/usr/include
$(CP) $(WRKBUILD)/bzlib.h $(IDIR_LIBBZ2_DEV)/usr/include
diff --git a/package/bzip2/patches/patch-Makefile b/package/bzip2/patches/patch-Makefile
index 0d15eab68..3fbb45234 100644
--- a/package/bzip2/patches/patch-Makefile
+++ b/package/bzip2/patches/patch-Makefile
@@ -1,5 +1,5 @@
---- bzip2-1.0.5.orig/Makefile 2008-02-14 13:39:18.000000000 +0100
-+++ bzip2-1.0.5/Makefile 2009-08-23 20:18:12.000000000 +0200
+--- bzip2-1.0.8.orig/Makefile 2019-07-13 19:50:05.000000000 +0200
++++ bzip2-1.0.8/Makefile 2020-04-02 00:14:59.333485383 +0200
@@ -15,16 +15,16 @@
SHELL=/bin/sh
@@ -19,7 +19,7 @@
# Where you want it installed when you do 'make install'
-PREFIX=/usr/local
-+PREFIX?=/usr
++PREFIX=/usr
OBJS= blocksort.o \
diff --git a/package/bzip2/patches/patch-Makefile-libbz2_so b/package/bzip2/patches/patch-Makefile-libbz2_so
index 148c7562a..9d901f6bc 100644
--- a/package/bzip2/patches/patch-Makefile-libbz2_so
+++ b/package/bzip2/patches/patch-Makefile-libbz2_so
@@ -1,6 +1,6 @@
---- bzip2-1.0.6.orig/Makefile-libbz2_so 2010-09-11 01:07:52.000000000 +0200
-+++ bzip2-1.0.6/Makefile-libbz2_so 2014-01-13 21:51:20.000000000 +0100
-@@ -21,10 +21,18 @@
+--- bzip2-1.0.8.orig/Makefile-libbz2_so 2019-07-13 19:50:05.000000000 +0200
++++ bzip2-1.0.8/Makefile-libbz2_so 2020-04-02 00:16:39.699887764 +0200
+@@ -21,10 +21,11 @@
# ------------------------------------------------------------------
@@ -11,23 +11,7 @@
BIGFILES=-D_FILE_OFFSET_BITS=64
-CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES)
+CFLAGS?=
-+CFLAGS+=-fpic -fPIC -Wall -Winline $(BIGFILES)
-+OS=$(shell uname)
-+LDOPT=-soname
-+ifneq ($(CROSS_COMPILE),1)
-+ifeq ($(OS),Darwin)
-+LDOPT=-install_name
-+endif
-+endif
++CFLAGS+=-fpic -fPIC -Wall -Winline -g $(BIGFILES)
OBJS= blocksort.o \
huffman.o \
-@@ -35,7 +43,7 @@ OBJS= blocksort.o \
- bzlib.o
-
- all: $(OBJS)
-- $(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS)
-+ $(CC) -shared -Wl,$(LDOPT) -Wl,libbz2.so.1.0 -o libbz2.so.1.0.6 $(OBJS)
- $(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.6
- rm -f libbz2.so.1.0
- ln -s libbz2.so.1.0.6 libbz2.so.1.0
diff --git a/package/bzr/Makefile b/package/bzr/Makefile
deleted file mode 100644
index 53f7d00fa..000000000
--- a/package/bzr/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= bzr
-PKG_VERSION:= 2.6.0
-PKG_RELEASE:= 1
-PKG_HASH:= 0994797182eb828867eee81cccc79480bd2946c99304266bc427b902cf91dab0
-PKG_DESCR:= source code management system
-PKG_SECTION:= dev/scm
-PKG_BUILDDEP:= python2
-PKG_DEPENDS:= python2
-PKG_URL:= http://bazaar.canonical.com/en/
-PKG_SITES:= https://launchpad.net/bzr/2.6/2.6.0/+download/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
-PKG_HOST_DEPENDS:= !darwin
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,BZR,bzr,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-CONFIG_STYLE:= manual
-BUILD_STYLE:= manual
-INSTALL_STYLE:= manual
-
-include $(ADK_TOPDIR)/mk/python.mk
-
-do-build:
- cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR) $(PYTHON) ./setup.py install --prefix=$(WRKINST)/usr build_ext --allow-python-fallback
-
-do-install:
- $(INSTALL_DIR) $(IDIR_BZR)/usr/lib/python$(PYTHON_VERSION)/site-packages
- $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/* \
- $(IDIR_BZR)/usr/lib/python$(PYTHON_VERSION)/site-packages
- $(INSTALL_DIR) $(IDIR_BZR)/usr/bin
- $(INSTALL_BIN) $(WRKBUILD)/bzr $(IDIR_BZR)/usr/bin
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/c-ares/Makefile b/package/c-ares/Makefile
index 5e4bd0b6a..6da3e7c7a 100644
--- a/package/c-ares/Makefile
+++ b/package/c-ares/Makefile
@@ -4,13 +4,13 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= c-ares
-PKG_VERSION:= 1.13.0
+PKG_VERSION:= 1.18.1
PKG_RELEASE:= 1
-PKG_HASH:= 03f708f1b14a26ab26c38abd51137640cb444d3ec72380b21b20f1a8d2861da7
+PKG_HASH:= 1a7d52a8a84a9fbffb1be9133c0f6e17217d91ea5a6fa61f6b4729cda78ebbcf
PKG_DESCR:= asynchronous dns library
PKG_SECTION:= libs/net
-PKG_URL:= http://c-ares.haxx.se
-PKG_SITES:= http://c-ares.haxx.se/download/
+PKG_URL:= https://c-ares.org
+PKG_SITES:= https://c-ares.org/download/
PKG_OPTS:= dev
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
diff --git a/package/ca-certificates/Makefile b/package/ca-certificates/Makefile
index 3ee99af45..9316f738e 100644
--- a/package/ca-certificates/Makefile
+++ b/package/ca-certificates/Makefile
@@ -4,13 +4,13 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= ca-certificates
-PKG_VERSION:= 20160104
+PKG_VERSION:= 20230311
PKG_RELEASE:= 1
-PKG_HASH:= 09eb770122e23260316120c0cbbddc8a1d33e7147210ce44e146084d5d5abcdd
+PKG_HASH:= 83de934afa186e279d1ed08ea0d73f5cf43a6fbfb5f00874b6db3711c64576f3
PKG_DESCR:= collection of common ca certificates
PKG_SECTION:= app/crypto
PKG_URL:= http://packages.debian.org/sid/ca-certificates
-PKG_SITES:= http://http.debian.net/debian/pool/main/c/ca-certificates/
+PKG_SITES:= https://snapshot.debian.org/archive/debian/20230317T205011Z/pool/main/c/ca-certificates/
DISTFILES:= $(PKG_NAME)_$(PKG_VERSION).tar.xz
WRKDIST= $(WRKDIR)/ca-certificates
diff --git a/package/ca-certificates/patches/patch-Makefile b/package/ca-certificates/patches/patch-Makefile
index 24e9fab9c..ca81984e3 100644
--- a/package/ca-certificates/patches/patch-Makefile
+++ b/package/ca-certificates/patches/patch-Makefile
@@ -1,6 +1,5 @@
- fix for the completely empty DESTDIR
---- ca-certificates-20090814.orig/Makefile 2009-07-08 23:18:57.000000000 +0200
-+++ ca-certificates-20090814/Makefile 2009-08-22 20:36:42.614405912 +0200
+--- ca-certificates.orig/Makefile 2021-01-19 09:22:26.000000000 +0100
++++ ca-certificates/Makefile 2023-05-26 05:48:59.304310295 +0200
@@ -17,7 +17,7 @@ clean:
install:
diff --git a/package/ca-certificates/patches/patch-mozilla_Makefile b/package/ca-certificates/patches/patch-mozilla_Makefile
new file mode 100644
index 000000000..768f26373
--- /dev/null
+++ b/package/ca-certificates/patches/patch-mozilla_Makefile
@@ -0,0 +1,11 @@
+--- ca-certificates.orig/mozilla/Makefile 2022-01-11 14:34:24.000000000 +0100
++++ ca-certificates/mozilla/Makefile 2023-09-22 10:25:22.731768501 +0200
+@@ -3,7 +3,7 @@
+ #
+
+ all:
+- python3 certdata2pem.py
++ /bin/python3 certdata2pem.py
+
+ clean:
+ -rm -f *.crt
diff --git a/package/ca-certificates/patches/patch-sbin_Makefile b/package/ca-certificates/patches/patch-sbin_Makefile
deleted file mode 100644
index ff59e4856..000000000
--- a/package/ca-certificates/patches/patch-sbin_Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
- fix for the completely empty DESTDIR
---- ca-certificates-20090814.orig/sbin/Makefile 2007-02-02 07:23:19.000000000 +0100
-+++ ca-certificates-20090814/sbin/Makefile 2009-08-22 20:37:17.581921717 +0200
-@@ -8,4 +8,5 @@ all:
- clean:
-
- install:
-+ mkdir -p $(DESTDIR)/usr/sbin
- install -m755 update-ca-certificates $(DESTDIR)/usr/sbin/
diff --git a/package/ccid/Makefile b/package/ccid/Makefile
index e7750ba84..a4943716c 100644
--- a/package/ccid/Makefile
+++ b/package/ccid/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= ccid
-PKG_VERSION:= 1.4.17
+PKG_VERSION:= 1.5.5
PKG_RELEASE:= 1
-PKG_HASH:= ccdab8a9bc1ad288242d5f9ef399405e9cb96fb09caadb43e3649cbaba84c451
+PKG_HASH:= 194708f75fe369d45dd7c15e8b3e8a7db8b49cfc5557574ca2a2e76ef12ca0ca
PKG_DESCR:= generic usb ccid and iccd driver
PKG_SECTION:= app/crypto
PKG_BUILDDEP:= pcsc-lite
-PKG_URL:= http://pcsclite.alioth.debian.org/ccid.html
-PKG_SITES:= http://distfiles.openadk.org/
+PKG_URL:= https://ccid.apdu.fr/
+PKG_SITES:= https://ccid.apdu.fr/files/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
@@ -19,14 +19,15 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,CCID,ccid,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-CONFIGURE_ARGS+= --enable-twinserial
+CONFIGURE_ARGS+= --disable-twinserial \
+ --enable-libusb
ccid-install:
$(INSTALL_DIR) $(IDIR_CCID)/etc/reader.conf.d
$(INSTALL_DIR) $(IDIR_CCID)/usr/lib/pcsc/drivers
$(INSTALL_DATA) ./files/gemalto.conf \
$(IDIR_CCID)/etc/reader.conf.d
- $(CP) $(WRKINST)/usr/lib/pcsc/drivers/* \
+ -$(CP) $(WRKINST)/usr/lib/pcsc/drivers/* \
$(IDIR_CCID)/usr/lib/pcsc/drivers
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/ccid/patches/patch-configure b/package/ccid/patches/patch-configure
deleted file mode 100644
index 7235e9ef8..000000000
--- a/package/ccid/patches/patch-configure
+++ /dev/null
@@ -1,21 +0,0 @@
---- ccid-1.4.4.orig/configure 2011-05-13 11:19:09.000000000 +0200
-+++ ccid-1.4.4/configure 2011-07-28 10:54:49.000000000 +0200
-@@ -12207,17 +12207,8 @@ done
- # Select OS specific versions of source files.
-
-
--BUNDLE_HOST=`uname | sed -e s,/,_,`
-+BUNDLE_HOST=Linux
- DYN_LIB_EXT="so"
--case "$BUNDLE_HOST" in
--Darwin)
-- BUNDLE_HOST=MacOS
-- DYN_LIB_EXT="dylib"
-- ;;
--SunOS)
-- BUNDLE_HOST=Solaris
-- ;;
-- esac
-
- # --disable-libusb
- # Check whether --enable-libusb was given.
diff --git a/package/ccid/patches/patch-ltmain_sh b/package/ccid/patches/patch-ltmain_sh
deleted file mode 100644
index 0801e7522..000000000
--- a/package/ccid/patches/patch-ltmain_sh
+++ /dev/null
@@ -1,11 +0,0 @@
---- ccid-1.4.4.orig/ltmain.sh 2011-05-13 11:19:08.000000000 +0200
-+++ ccid-1.4.4/ltmain.sh 2011-07-27 11:54:42.000000000 +0200
-@@ -5840,7 +5840,7 @@ func_mode_link ()
- # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-- -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
-+ -O*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
diff --git a/package/cdrkit/patches/patch-Makefile b/package/cdrkit/patches/patch-Makefile
deleted file mode 100644
index b4b1ce790..000000000
--- a/package/cdrkit/patches/patch-Makefile
+++ /dev/null
@@ -1,465 +0,0 @@
---- cdrkit-1.1.11.orig/Makefile 2007-05-06 12:23:54.000000000 +0200
-+++ cdrkit-1.1.11/Makefile 2015-05-31 21:33:44.000000000 +0200
-@@ -1,72 +1,408 @@
--ifneq ($(CFLAGS),)
--CMAKETWEAKS += ( cd build ; cmake .. -DCMAKE_C_FLAGS="$(CFLAGS)" ) || exit 1;
--endif
-+# CMAKE generated file: DO NOT EDIT!
-+# Generated by "Unix Makefiles" Generator, CMake Version 3.2
-
--ifneq ($(LDFLAGS),)
--CMAKETWEAKS += (cd build ; cmake .. -DCMAKE_EXE_LINKER_FLAGS:STRING="$(LDFLAGS)" -DCMAKE_MODULE_LINKER_FLAGS:STRING="$(LDFLAGS)" -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(LDFLAGS)" ) || exit 1;
--endif
-+# Default target executed when no arguments are given to make.
-+default_target: all
-+.PHONY : default_target
-
--ifneq ($(PREFIX),)
--CMAKETWEAKS += ( cd build ; cmake .. -DCMAKE_INSTALL_PREFIX="$(PREFIX)") || exit 1;
--endif
-+# Allow only one "make -f Makefile2" at a time, but pass parallelism.
-+.NOTPARALLEL:
-
--ifneq ($(MANSUBDIR),)
--CMAKETWEAKS += ( cd build ; cmake .. -DMANSUBDIR="$(MANSUBDIR)" ) || exit 1;
--endif
-+#=============================================================================
-+# Special targets provided by cmake.
-
--default_target: all
-+# Disable implicit rules so canonical targets will work.
-+.SUFFIXES:
-
--DISTNAME=cdrkit-$(shell cat VERSION)
--DEBSRCNAME=cdrkit_$(shell cat VERSION | sed -e "s,pre,~pre,").orig.tar.gz
-+# Remove some rules from gmake that .SUFFIXES does not remove.
-+SUFFIXES =
-
--build/Makefile:
-- @-mkdir build 2>/dev/null
-- cd build && cmake ..
-+.SUFFIXES: .hpux_make_needs_suffix_list
-
--cmakepurge:
-- rm -rf install_manifest.txt progress.make CMakeFiles CMakeCache.txt cmake_install.cmake
-- rm -rf */install_manifest.txt */progress.make */CMakeFiles */CMakeCache.txt */cmake_install.cmake
-- rm -rf */*/install_manifest.txt */*/progress.make */*/CMakeFiles */*/CMakeCache.txt */*/cmake_install.cmake
-- rm */Makefile */*/Makefile
-+# Suppress display of executed commands.
-+$(VERBOSE).SILENT:
-+
-+# A target that is always out of date.
-+cmake_force:
-+.PHONY : cmake_force
-+
-+#=============================================================================
-+# Set environment variables for the build.
-+
-+# The shell in which to execute make rules.
-+SHELL = /bin/sh
-+
-+# The CMake executable.
-+CMAKE_COMMAND = /home/wbx/adk/host_x86_64-linux-gnu/usr/bin/cmake
-+
-+# The command to remove a file.
-+RM = /home/wbx/adk/host_x86_64-linux-gnu/usr/bin/cmake -E remove -f
-+
-+# Escaping for special characters.
-+EQUALS = =
-+
-+# The top-level source directory on which CMake was run.
-+CMAKE_SOURCE_DIR = /home/wbx/adk/build_raspberry-pi_uclibc-ng_arm_hard_eabihf/w-cdrkit-1.1.11-1/cdrkit-1.1.11
-+
-+# The top-level build directory on which CMake was run.
-+CMAKE_BINARY_DIR = /home/wbx/adk/build_raspberry-pi_uclibc-ng_arm_hard_eabihf/w-cdrkit-1.1.11-1/cdrkit-1.1.11
-+
-+#=============================================================================
-+# Targets provided globally by CMake.
-+
-+# Special rule for the target install/strip
-+install/strip: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
-+ /home/wbx/adk/host_x86_64-linux-gnu/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
-+.PHONY : install/strip
-+
-+# Special rule for the target install/strip
-+install/strip/fast: install/strip
-+.PHONY : install/strip/fast
-+
-+# Special rule for the target edit_cache
-+edit_cache:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
-+ /home/wbx/adk/host_x86_64-linux-gnu/usr/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : edit_cache
-+
-+# Special rule for the target edit_cache
-+edit_cache/fast: edit_cache
-+.PHONY : edit_cache/fast
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
-+ /home/wbx/adk/host_x86_64-linux-gnu/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
-+.PHONY : rebuild_cache
-+
-+# Special rule for the target rebuild_cache
-+rebuild_cache/fast: rebuild_cache
-+.PHONY : rebuild_cache/fast
-+
-+# Special rule for the target install
-+install: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+ /home/wbx/adk/host_x86_64-linux-gnu/usr/bin/cmake -P cmake_install.cmake
-+.PHONY : install
-+
-+# Special rule for the target install
-+install/fast: preinstall/fast
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
-+ /home/wbx/adk/host_x86_64-linux-gnu/usr/bin/cmake -P cmake_install.cmake
-+.PHONY : install/fast
-+
-+# Special rule for the target list_install_components
-+list_install_components:
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
-+.PHONY : list_install_components
-+
-+# Special rule for the target list_install_components
-+list_install_components/fast: list_install_components
-+.PHONY : list_install_components/fast
-+
-+# Special rule for the target install/local
-+install/local: preinstall
-+ @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
-+ /home/wbx/adk/host_x86_64-linux-gnu/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
-+.PHONY : install/local
-+
-+# Special rule for the target install/local
-+install/local/fast: install/local
-+.PHONY : install/local/fast
-+
-+# The main all target
-+all: cmake_check_build_system
-+ $(CMAKE_COMMAND) -E cmake_progress_start /home/wbx/adk/build_raspberry-pi_uclibc-ng_arm_hard_eabihf/w-cdrkit-1.1.11-1/cdrkit-1.1.11/CMakeFiles /home/wbx/adk/build_raspberry-pi_uclibc-ng_arm_hard_eabihf/w-cdrkit-1.1.11-1/cdrkit-1.1.11/CMakeFiles/progress.marks
-+ $(MAKE) -f CMakeFiles/Makefile2 all
-+ $(CMAKE_COMMAND) -E cmake_progress_start /home/wbx/adk/build_raspberry-pi_uclibc-ng_arm_hard_eabihf/w-cdrkit-1.1.11-1/cdrkit-1.1.11/CMakeFiles 0
-+.PHONY : all
-
-+# The main clean target
- clean:
-- rm -rf build
-+ $(MAKE) -f CMakeFiles/Makefile2 clean
-+.PHONY : clean
-
--tarball:
--# if test "$(shell svn status | grep -v -i make)" ; then echo Uncommited files found. Run \"svn status\" to display them. ; exit 1 ; fi
-- @if test -f ../$(DISTNAME).tar.gz ; then echo ../$(DISTNAME).tar.gz exists, not overwritting ; exit 1; fi
-- -svn up
-- rm -rf tmp
-- mkdir tmp
-- svn export . tmp/$(DISTNAME)
-- rm -rf tmp/$(DISTNAME)/debian
-- tar -f - -c -C tmp $(DISTNAME) | gzip -9 > ../$(DISTNAME).tar.gz
-- rm -rf tmp
-- test -e /etc/debian_version && ln -f ../$(DISTNAME).tar.gz ../$(DEBSRCNAME) || true
-- test -e ../tarballs && ln -f ../$(DISTNAME).tar.gz ../tarballs/$(DEBSRCNAME) || true
-+# The main clean target
-+clean/fast: clean
-+.PHONY : clean/fast
-
--tarball-remove:
-- rm -f ../$(DISTNAME).tar.gz ../tarballs/$(DEBSRCNAME) ../$(DEBSRCNAME)
-+# Prepare targets for installation.
-+preinstall: all
-+ $(MAKE) -f CMakeFiles/Makefile2 preinstall
-+.PHONY : preinstall
-
--SVNBASE=$(shell svn info | grep URL: | cut -f2 -d' ' | xargs dirname)
--release: tarball
-- svn ci
-- svn cp $(SVNBASE)/trunk $(SVNBASE)/tags/release_$(shell cat VERSION)
-+# Prepare targets for installation.
-+preinstall/fast:
-+ $(MAKE) -f CMakeFiles/Makefile2 preinstall
-+.PHONY : preinstall/fast
-
--#%::
--# $(MAKE) $(MAKE_FLAGS) build/Makefile
--# $(CMAKETWEAKS)
--# $(MAKE) -C build $(MAKE_FLAGS) $@
-+# clear depends
-+depend:
-+ $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
-+.PHONY : depend
-
--# needs to be explicite, for PHONY and install (AKA INSTALL) file on cygwin
--install: build/Makefile
-- $(CMAKETWEAKS)
-- $(MAKE) -C build $(MAKE_FLAGS) $@
-+#=============================================================================
-+# Target rules for targets named devdump
-
--all: build/Makefile
-- $(CMAKETWEAKS)
-- $(MAKE) -C build $(MAKE_FLAGS) $@
-+# Build rule for target.
-+devdump: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 devdump
-+.PHONY : devdump
-
--.PHONY: install all
-+# fast build rule for target.
-+devdump/fast:
-+ $(MAKE) -f genisoimage/CMakeFiles/devdump.dir/build.make genisoimage/CMakeFiles/devdump.dir/build
-+.PHONY : devdump/fast
-+
-+#=============================================================================
-+# Target rules for targets named genisoimage
-+
-+# Build rule for target.
-+genisoimage: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 genisoimage
-+.PHONY : genisoimage
-+
-+# fast build rule for target.
-+genisoimage/fast:
-+ $(MAKE) -f genisoimage/CMakeFiles/genisoimage.dir/build.make genisoimage/CMakeFiles/genisoimage.dir/build
-+.PHONY : genisoimage/fast
-+
-+#=============================================================================
-+# Target rules for targets named isodebug
-+
-+# Build rule for target.
-+isodebug: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 isodebug
-+.PHONY : isodebug
-+
-+# fast build rule for target.
-+isodebug/fast:
-+ $(MAKE) -f genisoimage/CMakeFiles/isodebug.dir/build.make genisoimage/CMakeFiles/isodebug.dir/build
-+.PHONY : isodebug/fast
-+
-+#=============================================================================
-+# Target rules for targets named isodump
-+
-+# Build rule for target.
-+isodump: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 isodump
-+.PHONY : isodump
-+
-+# fast build rule for target.
-+isodump/fast:
-+ $(MAKE) -f genisoimage/CMakeFiles/isodump.dir/build.make genisoimage/CMakeFiles/isodump.dir/build
-+.PHONY : isodump/fast
-+
-+#=============================================================================
-+# Target rules for targets named isoinfo
-+
-+# Build rule for target.
-+isoinfo: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 isoinfo
-+.PHONY : isoinfo
-+
-+# fast build rule for target.
-+isoinfo/fast:
-+ $(MAKE) -f genisoimage/CMakeFiles/isoinfo.dir/build.make genisoimage/CMakeFiles/isoinfo.dir/build
-+.PHONY : isoinfo/fast
-+
-+#=============================================================================
-+# Target rules for targets named isovfy
-+
-+# Build rule for target.
-+isovfy: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 isovfy
-+.PHONY : isovfy
-+
-+# fast build rule for target.
-+isovfy/fast:
-+ $(MAKE) -f genisoimage/CMakeFiles/isovfy.dir/build.make genisoimage/CMakeFiles/isovfy.dir/build
-+.PHONY : isovfy/fast
-+
-+#=============================================================================
-+# Target rules for targets named wodim
-+
-+# Build rule for target.
-+wodim: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 wodim
-+.PHONY : wodim
-+
-+# fast build rule for target.
-+wodim/fast:
-+ $(MAKE) -f wodim/CMakeFiles/wodim.dir/build.make wodim/CMakeFiles/wodim.dir/build
-+.PHONY : wodim/fast
-+
-+#=============================================================================
-+# Target rules for targets named wodimstuff
-+
-+# Build rule for target.
-+wodimstuff: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 wodimstuff
-+.PHONY : wodimstuff
-+
-+# fast build rule for target.
-+wodimstuff/fast:
-+ $(MAKE) -f wodim/CMakeFiles/wodimstuff.dir/build.make wodim/CMakeFiles/wodimstuff.dir/build
-+.PHONY : wodimstuff/fast
-+
-+#=============================================================================
-+# Target rules for targets named edc
-+
-+# Build rule for target.
-+edc: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 edc
-+.PHONY : edc
-+
-+# fast build rule for target.
-+edc/fast:
-+ $(MAKE) -f libedc/CMakeFiles/edc.dir/build.make libedc/CMakeFiles/edc.dir/build
-+.PHONY : edc/fast
-+
-+#=============================================================================
-+# Target rules for targets named hfs_iso
-+
-+# Build rule for target.
-+hfs_iso: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 hfs_iso
-+.PHONY : hfs_iso
-+
-+# fast build rule for target.
-+hfs_iso/fast:
-+ $(MAKE) -f libhfs_iso/CMakeFiles/hfs_iso.dir/build.make libhfs_iso/CMakeFiles/hfs_iso.dir/build
-+.PHONY : hfs_iso/fast
-+
-+#=============================================================================
-+# Target rules for targets named paranoia
-+
-+# Build rule for target.
-+paranoia: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 paranoia
-+.PHONY : paranoia
-+
-+# fast build rule for target.
-+paranoia/fast:
-+ $(MAKE) -f libparanoia/CMakeFiles/paranoia.dir/build.make libparanoia/CMakeFiles/paranoia.dir/build
-+.PHONY : paranoia/fast
-+
-+#=============================================================================
-+# Target rules for targets named icedax
-+
-+# Build rule for target.
-+icedax: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 icedax
-+.PHONY : icedax
-+
-+# fast build rule for target.
-+icedax/fast:
-+ $(MAKE) -f icedax/CMakeFiles/icedax.dir/build.make icedax/CMakeFiles/icedax.dir/build
-+.PHONY : icedax/fast
-+
-+#=============================================================================
-+# Target rules for targets named usal
-+
-+# Build rule for target.
-+usal: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 usal
-+.PHONY : usal
-+
-+# fast build rule for target.
-+usal/fast:
-+ $(MAKE) -f libusal/CMakeFiles/usal.dir/build.make libusal/CMakeFiles/usal.dir/build
-+.PHONY : usal/fast
-+
-+#=============================================================================
-+# Target rules for targets named rols
-+
-+# Build rule for target.
-+rols: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 rols
-+.PHONY : rols
-+
-+# fast build rule for target.
-+rols/fast:
-+ $(MAKE) -f librols/CMakeFiles/rols.dir/build.make librols/CMakeFiles/rols.dir/build
-+.PHONY : rols/fast
-+
-+#=============================================================================
-+# Target rules for targets named unls
-+
-+# Build rule for target.
-+unls: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 unls
-+.PHONY : unls
-+
-+# fast build rule for target.
-+unls/fast:
-+ $(MAKE) -f libunls/CMakeFiles/unls.dir/build.make libunls/CMakeFiles/unls.dir/build
-+.PHONY : unls/fast
-+
-+#=============================================================================
-+# Target rules for targets named readom
-+
-+# Build rule for target.
-+readom: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 readom
-+.PHONY : readom
-+
-+# fast build rule for target.
-+readom/fast:
-+ $(MAKE) -f readom/CMakeFiles/readom.dir/build.make readom/CMakeFiles/readom.dir/build
-+.PHONY : readom/fast
-
-+#=============================================================================
-+# Target rules for targets named netscsid
-+
-+# Build rule for target.
-+netscsid: cmake_check_build_system
-+ $(MAKE) -f CMakeFiles/Makefile2 netscsid
-+.PHONY : netscsid
-+
-+# fast build rule for target.
-+netscsid/fast:
-+ $(MAKE) -f netscsid/CMakeFiles/netscsid.dir/build.make netscsid/CMakeFiles/netscsid.dir/build
-+.PHONY : netscsid/fast
-+
-+# Help Target
-+help:
-+ @echo "The following are some of the valid targets for this Makefile:"
-+ @echo "... all (the default if no target is provided)"
-+ @echo "... clean"
-+ @echo "... depend"
-+ @echo "... install/strip"
-+ @echo "... edit_cache"
-+ @echo "... rebuild_cache"
-+ @echo "... install"
-+ @echo "... list_install_components"
-+ @echo "... install/local"
-+ @echo "... isodebug"
-+ @echo "... genisoimage"
-+ @echo "... isodump"
-+ @echo "... isoinfo"
-+ @echo "... devdump"
-+ @echo "... isovfy"
-+ @echo "... wodimstuff"
-+ @echo "... wodim"
-+ @echo "... edc"
-+ @echo "... hfs_iso"
-+ @echo "... paranoia"
-+ @echo "... icedax"
-+ @echo "... usal"
-+ @echo "... rols"
-+ @echo "... unls"
-+ @echo "... readom"
-+ @echo "... netscsid"
-+.PHONY : help
-+
-+
-+
-+#=============================================================================
-+# Special targets to cleanup operation of make.
-+
-+# Special rule to run CMake to check the build system integrity.
-+# No rule that depends on this can have commands that come from listfiles
-+# because they might be regenerated.
-+cmake_check_build_system:
-+ $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
-+.PHONY : cmake_check_build_system
-
diff --git a/package/cdrkit/patches/patch-genisoimage_genisoimage_h b/package/cdrkit/patches/patch-genisoimage_genisoimage_h
new file mode 100644
index 000000000..99f696ded
--- /dev/null
+++ b/package/cdrkit/patches/patch-genisoimage_genisoimage_h
@@ -0,0 +1,11 @@
+--- cdrkit-1.1.11.orig/genisoimage/genisoimage.h 2008-05-25 23:00:55.000000000 +0200
++++ cdrkit-1.1.11/genisoimage/genisoimage.h 2024-02-12 14:32:15.046582134 +0100
+@@ -376,7 +376,7 @@ extern int use_fileversion;
+ extern int split_SL_component;
+ extern int split_SL_field;
+ extern char *trans_tbl;
+-char *outfile;
++extern char *outfile;
+
+ #define JMAX 64 /* maximum Joliet file name length (spec) */
+ #define JLONGMAX 103 /* out of spec Joliet file name length */
diff --git a/package/cfgfs/Makefile b/package/cfgfs/Makefile
index addec9a7f..209b9ff88 100644
--- a/package/cfgfs/Makefile
+++ b/package/cfgfs/Makefile
@@ -4,8 +4,8 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= cfgfs
-PKG_VERSION:= 1.0.10
-PKG_RELEASE:= 4
+PKG_VERSION:= 1.0.12
+PKG_RELEASE:= 1
PKG_DESCR:= compressed config filesystem
PKG_SECTION:= base/adk
PKG_URL:= http://www.openadk.org/
diff --git a/package/cfgfs/src/fwcf.sh b/package/cfgfs/src/fwcf.sh
index ea8452850..8954c3645 100644
--- a/package/cfgfs/src/fwcf.sh
+++ b/package/cfgfs/src/fwcf.sh
@@ -1,7 +1,7 @@
#!/bin/sh
# Copyright (c) 2006-2007
# Thorsten Glaser <tg@mirbsd.de>
-# Copyright (c) 2009-2017
+# Copyright (c) 2009-2024
# Waldemar Brodkorb <wbx@openadk.org>
#
# Provided that these terms and disclaimer and all copyright notices
@@ -43,7 +43,7 @@
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
wd=$(pwd)
cd /
-what='Configuration Filesystem Utility (cfgfs), Version 1.10'
+what='Configuration Filesystem Utility (cfgfs), Version 1.12'
who=$(id -u)
if [ $who -ne 0 ]; then
@@ -56,7 +56,7 @@ usage() {
$what
Usage:
{ halt | poweroff | reboot } [-Ffn] [-d delay]
- cfgfs { commit | erase | setup | status | dump | restore } [flags]
+ cfgfs { commit | erase | setup | status | diff | dump | restore } [flags]
EOF
exit 1
}
@@ -101,7 +101,7 @@ if [[ $me != cfgfs ]]; then
fi
case $1 in
-(commit|erase|setup|status|dump|restore) ;;
+(commit|erase|setup|status|diff|dump|restore) ;;
(*) cat >&2 <<EOF
$what
Syntax:
@@ -109,6 +109,7 @@ Syntax:
$0 erase
$0 setup [-N]
$0 status [-rq]
+ $0 diff [<diff options>]
$0 { dump | restore } [<filename>]
EOF
exit 1 ;;
@@ -132,12 +133,25 @@ echo $rootdisk|grep mmcblk >/dev/null 2>&1
if [ $? -ne 0 ]; then
rootdisk=${rootdisk%[1-9]}
fi
-part=$(fdisk -l $rootdisk 2>/dev/null|grep '^/dev'|tail -1|awk '{ print $1 }')
+# find last partition with an 88 id
+part=$(fdisk -l $rootdisk 2>/dev/null|awk '{if ($2=="*") { print $1" "$9} else {print $1" "$8}}'|grep '^/dev.*88.*'|tail -1|awk '{ print $1 }')
if [ -f .cfgfs ]; then
. /.cfgfs
fi
if [ -z $part ]; then
- part=$(fdisk -l /dev/sda 2>/dev/null|grep '^/dev'|tail -1|awk '{ print $1 }')
+ part=$(fdisk -l /dev/sda 2>/dev/null|awk '{if ($2=="*") { print $1" "$9} else {print $1" "$8}}'|grep '^/dev.*88.*'|tail -1|awk '{ print $1 }')
+ # find GPT partition
+ if [ -z $part ]; then
+ partnum=$(gdisk -l $rootdisk 2>/dev/null|fgrep "cfgfs"|awk '{ print $1 }')
+ if [ ! -z $partnum ]; then
+ echo $rootdisk|grep mmcblk >/dev/null 2>&1
+ if [ $? -eq 0 ]; then
+ part=${rootdisk}p${partnum}
+ else
+ part=${rootdisk}${partnum}
+ fi
+ fi
+ fi
if [ -z $part ]; then
# otherwise search for MTD device with name cfgfs
part=/dev/mtd$(fgrep '"cfgfs"' /proc/mtd 2>/dev/null | sed 's/^mtd\([^:]*\):.*$/\1/')ro
@@ -434,5 +448,42 @@ if test $1 = restore; then
exit 0
fi
+if test $1 = diff; then
+ if test ! -e /tmp/.cfgfs; then
+ cat >&2 <<-EOF
+ cfgfs: error: not yet initialised
+ explanation: "cfgfs setup" was not yet run
+ EOF
+ [[ $1 = -f ]] || exit 11
+ fi
+ shift
+ tempd=/tmp/.cfgfs/temp
+ mount -t tmpfs none $tempd
+ (cd /tmp/.cfgfs/root; tar cf - .) | (cd $tempd; tar xpf - 2>/dev/null)
+ x=$(dd if="$part" bs=4 count=1 2>/dev/null)
+ [[ "$x" = "FWCF" ]] && cfgfs.helper -U $tempd <"$part"
+
+ if test -e $tempd/.cfgfs_deleted; then
+ while IFS= read -r file; do
+ rm -f "$tempd/$file"
+ done <$tempd/.cfgfs_deleted
+ rm -f $tempd/.cfgfs_deleted
+ fi
+ (cd /etc; find . -type f; \
+ cd $tempd; find . -type f \
+ ) | grep -v -e '^./.cfgfs' -e '^./.rnd$' | sort -u | while read f; do
+ f=${f#./}
+ if [ ! -e "/etc/$f" ]; then
+ echo "Deleted: /etc/$f"
+ elif [ ! -e "$tempd/$f" ]; then
+ echo "New: /etc/$f"
+ else
+ diff "$@" "$tempd/$f" "/etc/$f"
+ fi
+ done
+ umount $tempd
+ exit 0
+fi
+
echo 'cfgfs: cannot be reached...'
exit 255
diff --git a/package/cherokee/Makefile b/package/cherokee/Makefile
index 571e3d81e..a701c7fd9 100644
--- a/package/cherokee/Makefile
+++ b/package/cherokee/Makefile
@@ -4,20 +4,24 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= cherokee
-PKG_VERSION:= 1.2.101
+PKG_VERSION:= 1.2.103
PKG_RELEASE:= 1
-PKG_HASH:= ca465ab3772479fc843b38ffc45113bf24d8bfae9185cdd5176b099d5a17feb8
+PKG_HASH:= 7ec379bf7e9d6fdf952d91fadc43eb6ee5295119aea7d8dabbf89f2799a53ae6
PKG_DESCR:= small and fast webserver
PKG_SECTION:= net/http
PKG_URL:= http://www.cherokee-project.com
-PKG_SITES:= http://mirror.aarnet.edu.au/pub/cherokee/1.2/1.2.101/
+PKG_SITES:= https://github.com/cherokee/webserver/archive/
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+PKG_CFLINE_CHEROKEE:= depends on ADK_BROKEN
+
+DISTFILES:= v${PKG_VERSION}.zip
+WRKDIST= ${WRKDIR}/webserver-${PKG_VERSION}
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,CHEROKEE,cherokee,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+AUTOTOOL_STYLE:= autogen
CONFIGURE_ENV+= ac_cv_func_malloc_0_nonnull=yes \
ac_cv_func_realloc_0_nonnull=yes
CONFIGURE_ARGS+= --enable-static-module=all \
diff --git a/package/cherrypy/Makefile b/package/cherrypy/Makefile
index a0e2ef7e8..602ca0738 100644
--- a/package/cherrypy/Makefile
+++ b/package/cherrypy/Makefile
@@ -8,9 +8,9 @@ PKG_VERSION:= 5.1.0
PKG_RELEASE:= 1
PKG_HASH:= 5fccc9ad3bf9a1df83bbb934772f34f42571421bdd75f90f74c170b6c0ef13b1
PKG_DESCR:= python web framework
-PKG_SECTION:= net/http
-PKG_DEPENDS:= python2
-PKG_BUILDDEP:= python2
+PKG_SECTION:= dev/python
+PKG_DEPENDS:= python3
+PKG_BUILDDEP:= python3
PKG_URL:= http://www.cherrypy.org/
PKG_SITES:= https://pypi.python.org/packages/source/C/CherryPy/
@@ -25,7 +25,7 @@ CONFIG_STYLE:= manual
BUILD_STYLE:= manual
INSTALL_STYLE:= manual
-include $(ADK_TOPDIR)/mk/python.mk
+include $(ADK_TOPDIR)/mk/python3.mk
do-build:
cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR) $(PYTHON) ./setup.py build
@@ -35,6 +35,6 @@ do-install:
$(INSTALL_DIR) $(IDIR_CHERRYPY)/usr/bin
$(INSTALL_DIR) $(IDIR_CHERRYPY)/usr/lib/python$(PYTHON_VERSION)
$(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/* $(IDIR_CHERRYPY)/usr/lib/python$(PYTHON_VERSION)
- $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/cherrypy/cherryd $(IDIR_CHERRYPY)/usr/bin
+ $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/CherryPy-$(PKG_VERSION)-py3.9.egg/cherrypy/cherryd $(IDIR_CHERRYPY)/usr/bin
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/chocolate-doom/Makefile b/package/chocolate-doom/Makefile
new file mode 100644
index 000000000..08ddc55d9
--- /dev/null
+++ b/package/chocolate-doom/Makefile
@@ -0,0 +1,32 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= chocolate-doom
+PKG_VERSION:= 3.0.1
+PKG_RELEASE:= 1
+PKG_HASH:= a54383beef6a52babc5b00d58fcf53a454f012ced7b1936ba359b13f1f10ac66
+PKG_DESCR:= doom
+PKG_SECTION:= app/games
+PKG_DEPENDS:= libsdl2 libsdl2-mixer libsdl2-net
+PKG_BUILDDEP:= sdl2 sdl2-mixer sdl2-net
+PKG_URL:= https://www.chocolate-doom.org
+PKG_SITES:= https://github.com/chocolate-doom/chocolate-doom/archive/refs/tags/
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+WRKDIST= ${WRKDIR}/$(PKG_NAME)-$(PKG_NAME)-$(PKG_VERSION)
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,CHOCOLATE_DOOM,chocolate-doom,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+AUTOTOOL_STYLE:= autogen
+TARGET_CFLAGS+= -fcommon
+
+chocolate-doom-install:
+ $(INSTALL_DIR) $(IDIR_CHOCOLATE_DOOM)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/chocolate-doom \
+ $(IDIR_CHOCOLATE_DOOM)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/cifs-utils/Makefile b/package/cifs-utils/Makefile
index 1ce067624..37084f9f3 100644
--- a/package/cifs-utils/Makefile
+++ b/package/cifs-utils/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= cifs-utils
-PKG_VERSION:= 6.7
+PKG_VERSION:= 7.0
PKG_RELEASE:= 1
-PKG_HASH:= b2f21612474ab012e75accd167aab607a0614ff67efb56ea0f36789fa785cfab
+PKG_HASH:= 0defaab85bd3ea46ffc45ab41fb0d0ad54d05ae2cfaa7e503de86d4f12bc8161
PKG_DESCR:= network filesystem utilities
PKG_SECTION:= net/fs
PKG_KDEPENDS:= cifs
@@ -20,6 +20,7 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,CIFS_UTILS,cifs-utils,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
AUTOTOOL_STYLE:= autoreconf
+CONFIGURE_ENV+= ac_cv_func_malloc_0_nonnull=yes
CONFIGURE_ARGS+= --disable-cifsupcall \
--disable-cifsidmap \
--disable-cifsacl \
diff --git a/package/cifs-utils/patches/patch-Makefile_am b/package/cifs-utils/patches/patch-Makefile_am
index 81f21cd5a..98d2d616b 100644
--- a/package/cifs-utils/patches/patch-Makefile_am
+++ b/package/cifs-utils/patches/patch-Makefile_am
@@ -1,11 +1,12 @@
---- cifs-utils-6.3.orig/Makefile.am 2014-01-09 17:19:53.000000000 +0100
-+++ cifs-utils-6.3/Makefile.am 2014-05-06 13:53:28.814703381 +0200
-@@ -4,7 +4,7 @@ ACLOCAL_AMFLAGS = -I aclocal
- root_sbindir = $(ROOTSBINDIR)
- root_sbin_PROGRAMS = mount.cifs
- mount_cifs_SOURCES = mount.cifs.c mtab.c resolve_host.c util.c
--mount_cifs_LDADD = $(LIBCAP) $(CAPNG_LDADD) $(RT_LDADD)
-+mount_cifs_LDADD = $(LIBCAP) $(CAPNG_LDADD) $(RT_LDADD) $(LIBOBJS)
+--- cifs-utils-7.0.orig/Makefile.am 2022-08-11 22:40:15.000000000 +0200
++++ cifs-utils-7.0/Makefile.am 2024-01-04 12:50:47.888452316 +0100
+@@ -117,9 +117,6 @@ endif
- man_MANS = mount.cifs.8
- include_HEADERS = cifsidmap.h
+ SUBDIRS = contrib
+
+-install-exec-hook: install-sbinPROGRAMS
+- (cd $(DESTDIR)$(ROOTSBINDIR) && ln -sf mount.cifs mount.smb3)
+-
+ install-data-hook:
+ if CONFIG_MAN
+ ( cd $(DESTDIR)$(man8dir) && ln -sf mount.cifs.8 mount.smb3.8)
diff --git a/package/cifs-utils/patches/patch-cifs_idmap_c b/package/cifs-utils/patches/patch-cifs_idmap_c
deleted file mode 100644
index be55be79f..000000000
--- a/package/cifs-utils/patches/patch-cifs_idmap_c
+++ /dev/null
@@ -1,16 +0,0 @@
---- cifs-utils-6.1.orig/cifs.idmap.c 2013-07-02 21:13:33.000000000 +0200
-+++ cifs-utils-6.1/cifs.idmap.c 2013-10-28 07:33:27.000000000 +0100
-@@ -27,7 +27,13 @@
- #endif /* HAVE_CONFIG_H */
-
- #include <string.h>
-+#ifdef HAVE_GNU_GETOPT_LONG
- #include <getopt.h>
-+#else
-+#include "gnu_getopt.h"
-+#define getopt_long gnu_getopt_long
-+#define option gnu_option
-+#endif
- #include <syslog.h>
- #include <dirent.h>
- #include <sys/types.h>
diff --git a/package/cifs-utils/patches/patch-configure_ac b/package/cifs-utils/patches/patch-configure_ac
deleted file mode 100644
index 7355a238c..000000000
--- a/package/cifs-utils/patches/patch-configure_ac
+++ /dev/null
@@ -1,33 +0,0 @@
---- cifs-utils-6.7.orig/configure.ac 2017-03-02 17:51:05.000000000 +0100
-+++ cifs-utils-6.7/configure.ac 2017-03-27 01:54:09.082783577 +0200
-@@ -93,13 +93,25 @@ AC_CHECK_TYPES([ptrdiff_t, ssize_t, uint
-
- # Checks for library functions.
- AC_FUNC_GETMNTENT
--AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
--AC_FUNC_MALLOC
--AC_FUNC_REALLOC
--AC_FUNC_STRNLEN
-
- # check for required functions
--AC_CHECK_FUNCS([alarm atexit endpwent getmntent getpass gettimeofday inet_ntop memset realpath setenv strchr strcmp strdup strerror strncasecmp strndup strpbrk strrchr strstr strtol strtoul tolower uname], , [AC_MSG_ERROR([necessary functions(s) not found])])
-+AC_CHECK_FUNCS([alarm atexit endpwent getmntent getpass gettimeofday inet_ntop malloc memset realloc realpath setenv strchr strcmp strdup strerror strncasecmp strndup strnlen strpbrk strrchr strstr strtol strtoul tolower uname], , [AC_MSG_ERROR([necessary functions(s) not found])])
-+
-+AC_CHECK_FUNCS([getopt_long], , [AC_MSG_ERROR([getopt_long function not found])])
-+AC_MSG_CHECKING([if getopt_long is GNU specific])
-+AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
-+#include <features.h>
-+#ifndef __GLIBC__
-+#error No GNU extension
-+#endif
-+ ]],[[;]])
-+ ],[
-+ AC_DEFINE(HAVE_GNU_GETOPT_LONG, 1, [Whether getopt_long has GNU extensions])
-+ AC_MSG_RESULT([yes])
-+ ],[
-+ AC_LIBOBJ([gnu_getopt])
-+ AC_MSG_RESULT([no])
-+])
-
- AC_CHECK_FUNCS(clock_gettime, [], [
- AC_CHECK_LIB(rt, clock_gettime, [
diff --git a/package/cifs-utils/patches/patch-mount_cifs_c b/package/cifs-utils/patches/patch-mount_cifs_c
deleted file mode 100644
index 583514808..000000000
--- a/package/cifs-utils/patches/patch-mount_cifs_c
+++ /dev/null
@@ -1,24 +0,0 @@
---- cifs-utils-6.7.orig/mount.cifs.c 2017-03-02 17:51:05.000000000 +0100
-+++ cifs-utils-6.7/mount.cifs.c 2017-03-27 18:57:14.519371156 +0200
-@@ -34,7 +34,13 @@
- #include <sys/utsname.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
-+#ifdef HAVE_GNU_GETOPT_LONG
- #include <getopt.h>
-+#else
-+#include "gnu_getopt.h"
-+#define getopt_long gnu_getopt_long
-+#define option gnu_option
-+#endif
- #include <errno.h>
- #include <netdb.h>
- #include <string.h>
-@@ -61,7 +67,6 @@
- #include "mount.h"
- #include "util.h"
- #include "resolve_host.h"
--#include "data_blob.h"
-
- #ifndef MS_MOVE
- #define MS_MOVE 8192
diff --git a/package/cifs-utils/patches/patch-mtab_c b/package/cifs-utils/patches/patch-mtab_c
deleted file mode 100644
index 90655935f..000000000
--- a/package/cifs-utils/patches/patch-mtab_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- cifs-utils-6.7.orig/mtab.c 2017-03-02 17:51:05.000000000 +0100
-+++ cifs-utils-6.7/mtab.c 2017-03-27 01:54:09.094784041 +0200
-@@ -36,6 +36,7 @@
- #include <time.h>
- #include <fcntl.h>
- #include <mntent.h>
-+#include <paths.h>
- #include <stdlib.h>
- #include <signal.h>
- #include <paths.h>
diff --git a/package/clamav/Makefile b/package/clamav/Makefile
index dec13a95f..1812b4dcb 100644
--- a/package/clamav/Makefile
+++ b/package/clamav/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= clamav
-PKG_VERSION:= 0.99.2
+PKG_VERSION:= 0.103.4
PKG_RELEASE:= 1
-PKG_HASH:= 167bd6a13e05ece326b968fdb539b05c2ffcfef6018a274a10aeda85c2c0027a
+PKG_HASH:= def0ad15500fa6aff81d8e68b9f83aa75ee5b607a01335c1d26dbcc959932f85
PKG_DESCR:= anti-virus software
PKG_SECTION:= sys/misc
-PKG_DEPENDS:= libressl zlib libpcre
-PKG_BUILDDEP:= libressl zlib pcre
-PKG_NEEDS:= threads
+PKG_DEPENDS:= libressl zlib libpcre libncurses libcurl libmspack
+PKG_BUILDDEP:= libressl zlib pcre ncurses curl libmspack
+PKG_NEEDS:= c++ threads
PKG_URL:= http://www.clamav.net/
PKG_SITES:= http://www.clamav.net/downloads/production/
@@ -24,8 +24,10 @@ $(eval $(call PKG_template,CLAMAV,clamav,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEP
TARGET_LDFLAGS+= -ltinfo
CONFIGURE_ENV+= ac_cv_c_mmap_private=yes
CONFIGURE_ARGS+= --enable-mempool \
+ --with-system-libmspack \
--disable-xml \
--disable-check \
+ --with-libcurl="$(STAGING_TARGET_DIR)/usr" \
--with-openssl="$(STAGING_TARGET_DIR)/usr" \
--with-pcre="$(STAGING_TARGET_DIR)/usr"
diff --git a/package/clamav/patches/patch-clamdscan_proto_c b/package/clamav/patches/patch-clamdscan_proto_c
index c7120c9d5..a1d18ce41 100644
--- a/package/clamav/patches/patch-clamdscan_proto_c
+++ b/package/clamav/patches/patch-clamdscan_proto_c
@@ -1,6 +1,6 @@
---- clamav-0.98.7.orig/clamdscan/proto.c 2015-04-22 21:49:57.000000000 +0200
-+++ clamav-0.98.7/clamdscan/proto.c 2015-11-11 19:22:21.000000000 +0100
-@@ -36,6 +36,7 @@
+--- clamav-0.103.0.orig/clamdscan/proto.c 2020-09-13 02:27:09.000000000 +0200
++++ clamav-0.103.0/clamdscan/proto.c 2021-01-28 04:40:12.604606645 +0100
+@@ -39,6 +39,7 @@
#include <errno.h>
#include <stdlib.h>
#include <sys/types.h>
diff --git a/package/clamav/patches/patch-libclamav_mbox_c b/package/clamav/patches/patch-libclamav_mbox_c
new file mode 100644
index 000000000..86e81131a
--- /dev/null
+++ b/package/clamav/patches/patch-libclamav_mbox_c
@@ -0,0 +1,11 @@
+--- clamav-0.103.0.orig/libclamav/mbox.c 2020-09-13 02:27:10.000000000 +0200
++++ clamav-0.103.0/libclamav/mbox.c 2021-01-28 04:48:50.156979494 +0100
+@@ -91,7 +91,7 @@
+ #include <features.h>
+ #endif
+
+-#if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1
++#if __GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 && !defined(__UCLIBC__) || defined(__UCLIBC_HAS_BACKTRACE__)
+ #define HAVE_BACKTRACE
+ #endif
+ #endif
diff --git a/package/cmake/Makefile b/package/cmake/Makefile
index 431d0850b..9ad0a74a3 100644
--- a/package/cmake/Makefile
+++ b/package/cmake/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= cmake
-PKG_VERSION:= 3.8.2
+PKG_VERSION:= 3.21.3
PKG_RELEASE:= 1
-PKG_HASH:= da3072794eb4c09f2d782fcee043847b99bb4cf8d4573978d9b2024214d6e92d
+PKG_HASH:= d14d06df4265134ee42c4d50f5a60cb8b471b7b6a47da8e5d914d49dd783794f
PKG_DESCR:= build utility
PKG_SECTION:= dev/tools
HOST_BUILDDEP:= curl-host
PKG_URL:= http://www.cmake.org/
-PKG_SITES:= http://www.cmake.org/files/v3.8/
+PKG_SITES:= https://github.com/Kitware/CMake/releases/download/v3.21.3/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
diff --git a/package/collectd/Makefile b/package/collectd/Makefile
index 46fa04118..3948ed519 100644
--- a/package/collectd/Makefile
+++ b/package/collectd/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= collectd
-PKG_VERSION:= 5.7.0
+PKG_VERSION:= 5.12.0
PKG_RELEASE:= 1
-PKG_HASH:= 25a05fbdc6baad571554342bbac6141928bf95a47fc60ee3b32e46d0c89ef2b2
+PKG_HASH:= 5bae043042c19c31f77eb8464e56a01a5454e0b39fa07cf7ad0f1bfc9c3a09d6
PKG_DESCR:= system statistics collection daemon
PKG_SECTION:= sys/misc
PKG_BUILDDEP:= libtool
diff --git a/package/coreutils/Makefile b/package/coreutils/Makefile
index 60d33c19a..f27fd4f00 100644
--- a/package/coreutils/Makefile
+++ b/package/coreutils/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= coreutils
-PKG_VERSION:= 8.25
+PKG_VERSION:= 9.4
PKG_RELEASE:= 1
-PKG_HASH:= 31e67c057a5b32a582f26408c789e11c2e8d676593324849dcf5779296cdce87
+PKG_HASH:= ea613a4cf44612326e917201bbbcdfbd301de21ffc3b59b6e5c07e040b275e52
PKG_DESCR:= file, shell and text utilities
PKG_SECTION:= base/apps
PKG_NEEDS:= threads
@@ -19,7 +19,6 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call HOST_template,COREUTILS,coreutils,$(PKG_VERSION)-${PKG_RELEASE}))
$(eval $(call PKG_template,COREUTILS,coreutils,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --disable-rpath
coreutils-install:
diff --git a/package/coreutils/patches/patch-Makefile_am b/package/coreutils/patches/patch-Makefile_am
deleted file mode 100644
index 20f1fff1d..000000000
--- a/package/coreutils/patches/patch-Makefile_am
+++ /dev/null
@@ -1,27 +0,0 @@
---- coreutils-8.24.orig/Makefile.am 2015-07-03 22:07:38.000000000 +0200
-+++ coreutils-8.24/Makefile.am 2015-07-06 20:55:18.000000000 +0200
-@@ -17,7 +17,7 @@
-
- ALL_RECURSIVE_TARGETS =
-
--SUBDIRS = po . gnulib-tests
-+SUBDIRS = . gnulib-tests
-
- changelog_etc = \
- ChangeLog-2005 \
-@@ -35,8 +35,7 @@ changelog_etc = \
- old/sh-utils/ChangeLog.0 \
- old/sh-utils/NEWS \
- old/textutils/ChangeLog \
-- old/textutils/NEWS \
-- po/ChangeLog-2007
-+ old/textutils/NEWS
-
- EXTRA_DIST = \
- $(changelog_etc) \
-@@ -223,5 +222,4 @@ AM_CPPFLAGS = -Ilib -I$(top_srcdir)/lib
- include $(top_srcdir)/lib/local.mk
- include $(top_srcdir)/src/local.mk
- include $(top_srcdir)/doc/local.mk
--include $(top_srcdir)/man/local.mk
- include $(top_srcdir)/tests/local.mk
diff --git a/package/coreutils/patches/patch-configure_ac b/package/coreutils/patches/patch-configure_ac
deleted file mode 100644
index 2ec02088f..000000000
--- a/package/coreutils/patches/patch-configure_ac
+++ /dev/null
@@ -1,14 +0,0 @@
---- coreutils-8.24.orig/configure.ac 2015-06-26 19:05:22.000000000 +0200
-+++ coreutils-8.24/configure.ac 2015-07-06 20:55:57.000000000 +0200
-@@ -589,11 +589,6 @@ AM_CONDITIONAL([CROSS_COMPILING], [test
-
- ############################################################################
-
--# As long as "grep 'PRI[diouxX]' po/*.pot" reports matches in
--# translatable strings, we must use need-formatstring-macros here.
--AM_GNU_GETTEXT([external], [need-formatstring-macros])
--AM_GNU_GETTEXT_VERSION([0.19.2])
--
- # For a test of uniq: it uses the $LOCALE_FR envvar.
- gt_LOCALE_FR
-
diff --git a/package/coreutils/patches/patch-man_local_mk b/package/coreutils/patches/patch-man_local_mk
deleted file mode 100644
index 5bf9e5cc1..000000000
--- a/package/coreutils/patches/patch-man_local_mk
+++ /dev/null
@@ -1,16 +0,0 @@
---- coreutils-8.22.orig/man/local.mk 2013-12-04 15:48:30.000000000 +0100
-+++ coreutils-8.22/man/local.mk 2014-02-21 16:08:08.000000000 +0100
-@@ -18,12 +18,7 @@
-
- EXTRA_DIST += man/help2man man/dummy-man
-
--## Graceful degradation for systems lacking perl.
--if HAVE_PERL
--run_help2man = $(PERL) -- $(srcdir)/man/help2man
--else
--run_help2man = $(SHELL) $(srcdir)/man/dummy-man
--endif
-+run_help2man = echo
-
- man1_MANS = @man1_MANS@
- EXTRA_DIST += $(man1_MANS:.1=.x)
diff --git a/package/cpio/Makefile b/package/cpio/Makefile
index c1764b566..e1f03e8fa 100644
--- a/package/cpio/Makefile
+++ b/package/cpio/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= cpio
-PKG_VERSION:= 2.11
+PKG_VERSION:= 2.15
PKG_RELEASE:= 1
-PKG_HASH:= 601b1d774cd6e4cd39416203c91ec59dbd65dd27d79d75e1a9b89497ea643978
+PKG_HASH:= efa50ef983137eefc0a02fdb51509d624b5e3295c980aa127ceee4183455499e
PKG_DESCR:= archive utility
PKG_SECTION:= app/archive
PKG_URL:= http://www.gnu.org/software/cpio/
diff --git a/package/cpio/patches/patch-gnu_stdio_in_h b/package/cpio/patches/patch-gnu_stdio_in_h
deleted file mode 100644
index fa9b89fb8..000000000
--- a/package/cpio/patches/patch-gnu_stdio_in_h
+++ /dev/null
@@ -1,13 +0,0 @@
---- cpio-2.11.orig/gnu/stdio.in.h 2010-03-10 10:27:03.000000000 +0100
-+++ cpio-2.11/gnu/stdio.in.h 2013-07-16 12:56:00.000000000 +0200
-@@ -138,8 +138,10 @@ _GL_WARN_ON_USE (fflush, "fflush is not
- /* It is very rare that the developer ever has full control of stdin,
- so any use of gets warrants an unconditional warning. Assume it is
- always declared, since it is required by C89. */
-+/*
- #undef gets
- _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
-+*/
-
- #if @GNULIB_FOPEN@
- # if @REPLACE_FOPEN@
diff --git a/package/cpio/patches/patch-src_filetypes_h b/package/cpio/patches/patch-src_filetypes_h
deleted file mode 100644
index f33bfa9f3..000000000
--- a/package/cpio/patches/patch-src_filetypes_h
+++ /dev/null
@@ -1,8 +0,0 @@
---- cpio-2.11.orig/src/filetypes.h 2010-02-12 11:19:23.000000000 +0100
-+++ cpio-2.11/src/filetypes.h 2010-06-08 18:26:43.633473938 +0200
-@@ -82,4 +82,4 @@
- #define lstat stat
- #endif
- int lstat ();
--int stat ();
-+//int stat ();
diff --git a/package/crda/Makefile b/package/crda/Makefile
deleted file mode 100644
index c63608b6e..000000000
--- a/package/crda/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= crda
-PKG_VERSION:= 1.1.3
-PKG_RELEASE:= 1
-PKG_HASH:= aa8a7fe92f0765986c421a5b6768a185375ac210393df0605ee132f6754825f0
-PKG_DESCR:= central regulatory domain agent for wireless networks
-PKG_SECTION:= net/wifi
-PKG_DEPENDS:= libnl
-PKG_BUILDDEP:= libnl
-PKG_URL:= http://wireless.kernel.org/en/developers/Regulatory
-PKG_SITES:= http://linuxwireless.org/download/crda/
-
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
-
-PKG_FLAVOURS_CRDA:= WITH_UDEV
-PKGFD_WITH_UDEV:= install shipped udev rules
-PKGFS_WITH_UDEV:= udev
-PKGFB_WITH_UDEV:= eudev
-
-PKG_CHOICES_CRDA:= WITH_LIBRESSL WITH_GCRYPT
-PKGCD_WITH_LIBRESSL:= ssl support via libressl library
-PKGCB_WITH_LIBRESSL:= libressl
-PKGCS_WITH_LIBRESSL:= libressl
-PKGCD_WITH_GCRYPT:= ssl support via gcrypt library
-PKGCB_WITH_GCRYPT:= libgcrypt
-PKGCS_WITH_GCRYPT:= libgcrypt
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,CRDA,crda,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-CONFIG_STYLE:= manual
-ALL_TARGET:= all_noverify
-
-ifneq ($(ADK_PACKAGE_CRDA_WITH_LIBRESSL),)
-XAKE_FLAGS+= USE_OPENSSL=1
-endif
-
-crda-install:
- $(INSTALL_DIR) $(IDIR_CRDA)/usr/sbin
- $(INSTALL_BIN) $(WRKINST)/sbin/{crda,regdbdump} \
- $(IDIR_CRDA)/usr/sbin
-ifneq ($(ADK_PACKAGE_CRDA_WITH_UDEV),)
- $(INSTALL_DIR) $(IDIR_CRDA)/lib/udev/rules.d
- $(INSTALL_DATA) $(WRKINST)/lib/udev/rules.d/85-regulatory.rules \
- $(IDIR_CRDA)/lib/udev/rules.d
-endif
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/crda/patches/patch-Makefile b/package/crda/patches/patch-Makefile
deleted file mode 100644
index 752b3aeb5..000000000
--- a/package/crda/patches/patch-Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
---- crda-1.1.3.orig/Makefile 2012-01-19 03:19:09.000000000 +0100
-+++ crda-1.1.3/Makefile 2015-11-14 09:17:04.000000000 +0100
-@@ -103,7 +103,7 @@ $(REG_BIN):
- keys-%.c: utils/key2pub.py $(wildcard $(PUBKEY_DIR)/*.pem)
- $(NQ) ' GEN ' $@
- $(NQ) ' Trusted pubkeys:' $(wildcard $(PUBKEY_DIR)/*.pem)
-- $(Q)./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
-+ $(Q)PATH="/usr/bin:/usr/local/bin" ./utils/key2pub.py --$* $(wildcard $(PUBKEY_DIR)/*.pem) $@
-
- %.o: %.c regdb.h reglib.h
- $(NQ) ' CC ' $@
diff --git a/package/cryptodev-linux/Makefile b/package/cryptodev-linux/Makefile
index cfd060552..d81a1b918 100644
--- a/package/cryptodev-linux/Makefile
+++ b/package/cryptodev-linux/Makefile
@@ -4,7 +4,7 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= cryptodev-linux
-PKG_VERSION:= a705360197260d28535746ae98c461ba2cfb7a9e
+PKG_VERSION:= 5e7121e45ff283d30097da381fd7e97c4bb61364
PKG_GIT:= hash
PKG_RELEASE:= 1
PKG_DESCR:= device that allows access to kernel cryptographic drivers
diff --git a/package/cryptsetup/Makefile b/package/cryptsetup/Makefile
index 2661ac0ae..1a24306ac 100644
--- a/package/cryptsetup/Makefile
+++ b/package/cryptsetup/Makefile
@@ -4,22 +4,63 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= cryptsetup
-PKG_VERSION:= 2.0.3
+PKG_VERSION:= 2.4.1
PKG_RELEASE:= 1
-PKG_HASH:= 4d6cca04c1f5ff4a68d045d190efb2623087eda0274ded92f92a4b6911e501d4
-PKG_DESCR:= utility used to conveniently setup disk encryption
+PKG_HASH:= a356a727a83a464ade566e95239622a22dbe4e0f482b198fdb04ab0d3a5a9c5f
+PKG_DESCR:= utility used to conveniently setup disk encryption
PKG_SECTION:= app/crypto
PKG_DEPENDS:= libgcrypt device-mapper libuuid libpopt json-c libncurses
PKG_BUILDDEP:= libgcrypt popt e2fsprogs lvm json-c ncurses
+PKG_NEEDS:= iconv
+PKG_KDEPENDS:= crypto-user-api-hash crypto-user-api-skcipher
+PKG_KDEPENDS+= crypto-user-api-rng crypto-user-api-aead
+# these are the default algorithms used by older and newer cryptsetup versions
+PKG_KDEPENDS+= dm-crypt crypto-essiv crypto-cbc crypto-xts
+PKG_KDEPENDS+= crypto-aes crypto-sha1 crypto-sha256
PKG_URL:= https://gitlab.com/cryptsetup/cryptsetup
-PKG_SITES:= https://www.kernel.org/pub/linux/utils/cryptsetup/v2.0/
+PKG_SITES:= https://www.kernel.org/pub/linux/utils/cryptsetup/v2.4/
PKG_OPTS:= dev
+PKG_FLAVOURS_CRYPTSETUP:= WITH_LIBARGON2
+PKGFD_WITH_LIBARGON2:= use libargon2 instead of the slow internal one
+PKGFS_WITH_LIBARGON2:= libargon2
+PKGFB_WITH_LIBARGON2:= libargon2
+PKGFX_WITH_LIBARGON2:= y
+
+PKG_CHOICES_CRYPTSETUP:= WITH_GCRYPT WITH_KERNEL WITH_NETTLE WITH_OPENSSL
+PKGCD_WITH_GCRYPT:= use libgcrypt crypto backend
+PKGCS_WITH_GCRYPT:= libgcrypt libgpg-error
+PKGCB_WITH_GCRYPT:= libgcrypt libgpg-error
+PKGCD_WITH_KERNEL:= use kernel user API crypto backend (slow)
+PKGCD_WITH_NETTLE:= use libnettle crypto backend
+PKGCS_WITH_NETTLE:= libnettle
+PKGCB_WITH_NETTLE:= libnettle
+PKGCD_WITH_OPENSSL:= use OpenSSL crypto backend
+PKGCS_WITH_OPENSSL:= libressl
+PKGCB_WITH_OPENSSL:= libressl
+
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,CRYPTSETUP,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-CONFIGURE_ARGS+= --disable-selinux
+CONFIGURE_ARGS+= --disable-selinux \
+ --disable-ssh-token \
+ --disable-udev \
+ --disable-nls \
+ --enable-libargon2
+
+ifeq (${ADK_PACKAGE_CRYPTSETUP_WITH_GCRYPT},y)
+CONFIGURE_ARGS+= --with-crypto_backend=gcrypt
+endif
+ifeq (${ADK_PACKAGE_CRYPTSETUP_WITH_KERNEL},y)
+CONFIGURE_ARGS+= --with-crypto_backend=kernel
+endif
+ifeq (${ADK_PACKAGE_CRYPTSETUP_WITH_NETTLE},y)
+CONFIGURE_ARGS+= --with-crypto_backend=nettle
+endif
+ifeq (${ADK_PACKAGE_CRYPTSETUP_WITH_OPENSSL},y)
+CONFIGURE_ARGS+= --with-crypto_backend=openssl
+endif
cryptsetup-install:
${INSTALL_DIR} ${IDIR_CRYPTSETUP}/usr/sbin ${IDIR_CRYPTSETUP}/usr/lib
diff --git a/package/cups/Makefile b/package/cups/Makefile
index b32ae02b3..9ecb5b17f 100644
--- a/package/cups/Makefile
+++ b/package/cups/Makefile
@@ -4,20 +4,19 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= cups
-PKG_VERSION:= 1.7.1
-PKG_RELEASE:= 4
-PKG_HASH:= f52bec893d9daf92b6029be79c07e6c516b4c85ffae3e6e01885cc85e9081681
+PKG_VERSION:= 2.3.6
+PKG_RELEASE:= 1
+PKG_HASH:= 3a96912fc88f62c5d8ac9b251bf0652f1cbe7e69cde16919103aea39f31a1a84
PKG_DESCR:= common unix printing system
PKG_SECTION:= net/misc
PKG_DEPENDS:= zlib
-PKG_BUILDDEP:= cups-host zlib
-PKG_NEEDS:= threads c++
+PKG_BUILDDEP:= zlib
+PKG_NEEDS:= threads c++ iconv
PKG_URL:= http://www.cups.org/
-PKG_SITES:= http://www.cups.org/software/${PKG_VERSION}/
+PKG_SITES:= https://github.com/apple/cups/archive/refs/tags/
PKG_OPTS:= dev
-PKG_NOPARALLEL:= 1
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}-source.tar.bz2
+DISTFILES:= v${PKG_VERSION}.tar.gz
include ${ADK_TOPDIR}/mk/host.mk
include ${ADK_TOPDIR}/mk/package.mk
@@ -25,10 +24,6 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call HOST_template,CUPS,cups,${PKG_VERSION}-${PKG_RELEASE}))
$(eval $(call PKG_template,CUPS,cups,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-ifeq ($(ADK_PACKAGE_LIBICONV),y)
-TARGET_LDFLAGS+= -liconv
-endif
-
ifneq ($(ADK_HOST_LINUX),y)
HOST_LINUX_ONLY:= 1
endif
@@ -39,20 +34,15 @@ HOST_CONFIGURE_ARGS+= --disable-tcp-wrappers \
--disable-avahi \
--disable-pam \
--disable-dbus \
- --without-java \
- --without-perl \
- --without-python \
- --without-php \
--disable-gnutls \
- --disable-openssl \
--disable-cdsassl \
--disable-dbus \
--disable-ssl \
+ --disable-systemd \
--with-components=core \
--with-rcdir=$(STAGING_HOST_DIR)/etc
CONFIGURE_ENV+= ac_cv_func_sigset=no \
OPTIM='-fPIC -std=c89' LSB_BUILD=y
-
CONFIGURE_ARGS+= --with-cups-user=cups \
--with-cups-group=cups \
--libdir=/usr/lib \
@@ -75,8 +65,6 @@ CONFIGURE_ARGS+= --with-cups-user=cups \
--with-components=core \
--with-rcdir=$(STAGING_TARGET_DIR)/etc
-FAKE_FLAGS+= DSTROOT="${WRKINST}" STRIP="/bin/true"
-
cups-install:
${INSTALL_DIR} ${IDIR_CUPS}/usr/lib
${CP} ${WRKINST}/usr/lib/libcups*.so* ${IDIR_CUPS}/usr/lib/
diff --git a/package/cups/patches/patch-Makedefs_in b/package/cups/patches/patch-Makedefs_in
deleted file mode 100644
index 1a8f91894..000000000
--- a/package/cups/patches/patch-Makedefs_in
+++ /dev/null
@@ -1,10 +0,0 @@
---- cups-1.7.1.orig/Makedefs.in 2013-07-17 17:21:18.000000000 +0200
-+++ cups-1.7.1/Makedefs.in 2014-01-31 08:40:55.000000000 +0100
-@@ -238,7 +238,6 @@ DBUSDIR = @DBUSDIR@
- # Rules...
- #
-
--.SILENT:
- .SUFFIXES: .1 .1.gz .1m .1m.gz .3 .3.gz .5 .5.gz .7 .7.gz .8 .8.gz .a .c .cxx .h .man .o .gz
-
- .c.o:
diff --git a/package/cups/patches/patch-configure b/package/cups/patches/patch-configure
deleted file mode 100644
index 3a4974140..000000000
--- a/package/cups/patches/patch-configure
+++ /dev/null
@@ -1,14 +0,0 @@
---- cups-1.7.1.orig/configure 2014-01-08 17:26:27.000000000 +0100
-+++ cups-1.7.1/configure 2014-01-31 16:48:50.000000000 +0100
-@@ -2490,9 +2490,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
--uname=`uname`
--uversion=`uname -r | sed -e '1,$s/^[^0-9]*\([0-9]*\)\.\([0-9]*\).*/\1\2/'`
--uarch=`uname -m`
-+uname=Linux
-+uversion=3.0
-
- case "$uname" in
- Darwin*)
diff --git a/package/curl/Makefile b/package/curl/Makefile
index b4e1f5abc..d29044afd 100644
--- a/package/curl/Makefile
+++ b/package/curl/Makefile
@@ -4,31 +4,36 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= curl
-PKG_VERSION:= 7.60.0
+PKG_VERSION:= 8.7.1
PKG_RELEASE:= 1
-PKG_HASH:= 8736ff8ded89ddf7e926eec7b16f82597d029fc1469f3a551f1fafaac164e6a0
+PKG_HASH:= 6fea2aac6a4610fbd0400afb0bcddbe7258a64c63f1f68e5855ebc0c659710cd
PKG_DESCR:= client-side url transfer tool
PKG_SECTION:= net/http
-PKG_DEPENDS:= libcurl
PKG_BUILDDEP:= zlib
PKG_NEEDS:= threads
-PKG_URL:= http://curl.haxx.se/
-PKG_SITES:= http://curl.haxx.se/download/
+PKG_URL:= https://curl.se/
+PKG_SITES:= https://curl.se/download/
PKG_LIBNAME:= libcurl
PKG_OPTS:= dev
-PKG_SUBPKGS:= CURL LIBCURL
+PKG_SUBPKGS:= LIBCURL CURL
PKGSD_LIBCURL:= client-side url transfer library
PKGSC_LIBCURL:= libs/net
PKGSS_LIBCURL:= zlib
+PKGSD_CURL:= client-side url transfer utiity
+PKGSC_CURL:= net/http
+PKGSS_CURL:= zlib libcurl
-PKG_FLAVOURS_CURL:= WITH_IPV6
+PKG_FLAVOURS_LIBCURL:= WITH_IPV6
PKGFD_WITH_IPV6:= enable ipv6 support
-PKG_CHOICES_CURL:= WITH_LIBRESSL WITH_GNUTLS WITH_WOLFSSL WITHOUT_SSL
+PKG_CHOICES_LIBCURL:= WITH_LIBRESSL WITH_OPENSSL WITH_GNUTLS WITH_WOLFSSL WITHOUT_SSL
PKGCD_WITH_LIBRESSL:= use libressl for crypto
PKGCS_WITH_LIBRESSL:= libressl ca-certificates
PKGCB_WITH_LIBRESSL:= libressl
+PKGCD_WITH_OPENSSL:= use libopenssl for crypto
+PKGCS_WITH_OPENSSL:= libopenssl ca-certificates
+PKGCB_WITH_OPENSSL:= openssl
PKGCD_WITH_GNUTLS:= use gnutls for crypto
PKGCS_WITH_GNUTLS:= libgnutls ca-certificates
PKGCB_WITH_GNUTLS:= gnutls
@@ -41,40 +46,47 @@ include ${ADK_TOPDIR}/mk/host.mk
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call HOST_template,CURL,curl,${PKG_VERSION}-${PKG_RELEASE}))
-$(eval $(call PKG_template,CURL,curl,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,LIBCURL,libcurl,${PKG_VERSION}-${PKG_RELEASE},${PKGSS_LIBCURL},${PKGSD_LIBCURL},${PKGSC_LIBCURL},${PKG_OPTS}))
+$(eval $(call PKG_template,CURL,curl,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+HOST_CONFIGURE_ARGS+= --without-ssl \
+ --without-libpsl
-ifeq (${ADK_PACKAGE_CURL_WITH_LIBRESSL},y)
-CONFIGURE_ARGS+= --with-ssl="${STAGING_TARGET_DIR}/usr" \
+ifeq (${ADK_PACKAGE_LIBCURL_WITH_LIBRESSL},y)
+CONFIGURE_ARGS+= --with-openssl="${STAGING_TARGET_DIR}/usr" \
--without-gnutls \
- --without-axtls
+ --without-wolfssl
endif
-ifeq (${ADK_PACKAGE_CURL_WITH_GNUTLS},y)
+ifeq (${ADK_PACKAGE_LIBCURL_WITH_OPENSSL},y)
+CONFIGURE_ARGS+= --with-openssl="${STAGING_TARGET_DIR}/usr" \
+ --without-gnutls \
+ --without-wolfssl
+endif
+ifeq (${ADK_PACKAGE_LIBCURL_WITH_GNUTLS},y)
CONFIGURE_ARGS+= --with-gnutls="${STAGING_TARGET_DIR}/usr" \
- --without-ssl \
- --without-axtls
+ --without-openssl \
+ --without-wolfssl
endif
-ifeq (${ADK_PACKAGE_CURL_WITH_WOLFSSL},y)
-CONFIGURE_ARGS+= --with-cyassl="${STAGING_TARGET_DIR}/usr" \
- --without-ssl \
- --without-gnutls \
- --without-axtls
+ifeq (${ADK_PACKAGE_LIBCURL_WITH_WOLFSSL},y)
+CONFIGURE_ARGS+= --with-wolfssl="${STAGING_TARGET_DIR}/usr" \
+ --without-openssl \
+ --without-gnutls
endif
-ifeq (${ADK_PACKAGE_CURL_WITHOUT_SSL},y)
+ifeq (${ADK_PACKAGE_LIBCURL_WITHOUT_SSL},y)
CONFIGURE_ARGS+= --without-ssl \
--without-gnutls \
- --without-axtls
+ --without-wolfssl
endif
-CONFIGURE_ENV+= curl_typeof_curl_socklen_t=socklen_t
+CONFIGURE_ENV+= curl_typeof_curl_socklen_t=socklen_t \
+ LDFLAGS='$(TARGET_LDFLAGS) -latomic'
CONFIGURE_ARGS+= --enable-cookies \
- --enable-crypto-auth \
- --enable-nonblocking \
--enable-file \
--enable-ftp \
--enable-http \
--enable-proxy \
--disable-curldebug \
+ --disable-ntlm \
--disable-ntlm-wb \
--disable-symbol-hiding \
--disable-ares \
@@ -89,13 +101,13 @@ CONFIGURE_ARGS+= --enable-cookies \
--disable-telnet \
--disable-verbose \
--without-libssh2 \
+ --without-libpsl \
--without-librtmp \
- --without-libidn \
--with-ca-path="/etc/ssl/certs" \
--with-random="/dev/urandom" \
--without-ca-bundle
-ifneq (${ADK_PACKAGE_CURL_WITH_IPV6},)
+ifneq (${ADK_PACKAGE_LIBCURL_WITH_IPV6},)
CONFIGURE_ARGS+= --enable-ipv6
else
CONFIGURE_ARGS+= --disable-ipv6
diff --git a/package/cxxtools/Makefile b/package/cxxtools/Makefile
deleted file mode 100644
index 0d02595c8..000000000
--- a/package/cxxtools/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include ${ADK_TOPDIR}/rules.mk
-
-PKG_NAME:= cxxtools
-PKG_VERSION:= 2.2.1
-PKG_RELEASE:= 2
-PKG_HASH:= 8cebb6d6cda7c93cc4f7c0d552a68d50dd5530b699cf87916bb3b708fdc4e342
-PKG_DESCR:= collection of general-purpose c++ classes
-PKG_NEEDS:= c++
-PKG_SECTION:= libs/misc
-PKG_URL:= http://www.tntnet.org/
-PKG_SITES:= http://www.tntnet.org/download/
-PKG_OPTS:= dev
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
-include ${ADK_TOPDIR}/mk/package.mk
-
-$(eval $(call PKG_template,CXXTOOLS,cxxtools,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-
-ifeq ($(ADK_TARGET_ARCH_XTENSA),y)
-CONFIGURE_ARGS+= --with-atomictype=generic
-endif
-ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI3),y)
-CONFIGURE_ARGS+= --with-atomictype=pthread
-endif
-ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI3P),y)
-CONFIGURE_ARGS+= --with-atomictype=pthread
-endif
-CONFIGURE_ARGS+= --disable-demos \
- --disable-unittest
-
-cxxtools-install:
- ${INSTALL_DIR} ${IDIR_CXXTOOLS}/usr/lib
- ${CP} ${WRKINST}/usr/lib/libcxxtools.so* ${IDIR_CXXTOOLS}/usr/lib
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/dansguardian/Makefile b/package/dansguardian/Makefile
deleted file mode 100644
index 4d27872ed..000000000
--- a/package/dansguardian/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include ${ADK_TOPDIR}/rules.mk
-
-PKG_NAME:= dansguardian
-PKG_VERSION:= 2.12.0.3
-PKG_RELEASE:= 2
-PKG_HASH:= c74e9a32b97f9a9a056fced3da23fe48fca2bc6aa9af670afe9a53dc819414f5
-PKG_DESCR:= web content filter proxy
-PKG_SECTION:= net/proxy
-PKG_DEPENDS:= libpcre zlib
-PKG_BUILDDEP:= pcre zlib
-PKG_NEEDS:= c++
-PKG_URL:= http://dansguardian.org/
-PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=dansguardian/}
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
-
-include ${ADK_TOPDIR}/mk/package.mk
-
-$(eval $(call PKG_template,DANSGUARDIAN,dansguardian,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-CONFIGURE_ARGS+= --enable-orig-ip \
- --with-proxyuser=proxy \
- --with-proxygroup=proxy
-
-dansguardian-install:
- ${INSTALL_DIR} ${IDIR_DANSGUARDIAN}/usr/sbin \
- ${IDIR_DANSGUARDIAN}/etc/dansguardian \
- ${IDIR_DANSGUARDIAN}/usr/share/dansguardian/languages/ukenglish
- ${CP} ${WRKINST}/usr/share/dansguardian/languages/ukenglish/* \
- ${IDIR_DANSGUARDIAN}/usr/share/dansguardian/languages/ukenglish
- ${CP} ${WRKINST}/usr/share/dansguardian/transparent1x1.gif \
- ${IDIR_DANSGUARDIAN}/usr/share/dansguardian
- ${CP} ${WRKINST}/etc/dansguardian/* \
- ${IDIR_DANSGUARDIAN}/etc/dansguardian
- ${INSTALL_BIN} ${WRKINST}/usr/sbin/dansguardian \
- ${IDIR_DANSGUARDIAN}/usr/sbin/
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/dansguardian/files/dansguardian.init b/package/dansguardian/files/dansguardian.init
deleted file mode 100644
index f8f40a9ca..000000000
--- a/package/dansguardian/files/dansguardian.init
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/sh
-#PKG dansguardian
-#INIT 80
-
-. /etc/rc.conf
-
-case $1 in
-autostop) ;;
-autostart)
- test x"${dansguardian:-NO}" = x"NO" && exit 0
- test x"$dansguardian" = x"DAEMON" && test -x /bin/mksh && exec mksh -T- $0 start
- exec sh $0 start
- ;;
-start)
- if [ ! -f /var/log/dansguardian-access.log ];then
- touch /var/log/dansguardian-access.log
- chown proxy:proxy /var/log/dansguardian-access.log
- fi
- /usr/sbin/dansguardian
- ;;
-stop)
- kill $(pgrep -f /usr/sbin/dansguardian)
- ;;
-restart)
- sh $0 stop
- sh $0 start
- ;;
-
-*)
- echo "usage: $0 {start | stop | restart}"
- exit 1
-esac
-exit $?
diff --git a/package/dansguardian/files/dansguardian.postinst b/package/dansguardian/files/dansguardian.postinst
deleted file mode 100644
index 8068f3d34..000000000
--- a/package/dansguardian/files/dansguardian.postinst
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-. $IPKG_INSTROOT/etc/functions.sh
-gid=$(get_next_gid)
-add_user dansguardian $(get_next_uid) $gid /etc/dansguardian
-add_group dansguardian $gid
-add_rcconf dansguardian NO
diff --git a/package/dansguardian/patches/patch-src_ImageContainer_cpp b/package/dansguardian/patches/patch-src_ImageContainer_cpp
deleted file mode 100644
index 27ccecafc..000000000
--- a/package/dansguardian/patches/patch-src_ImageContainer_cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- dansguardian-2.12.0.3.orig/src/ImageContainer.cpp 2012-09-29 22:06:45.000000000 +0200
-+++ dansguardian-2.12.0.3/src/ImageContainer.cpp 2013-12-07 10:07:04.000000000 +0100
-@@ -16,6 +16,7 @@
- #include <stdexcept>
- #include <cerrno>
- #include <limits.h>
-+#include <string.h>
-
-
- // GLOBALS
diff --git a/package/dansguardian/patches/patch-src_SocketArray_cpp b/package/dansguardian/patches/patch-src_SocketArray_cpp
deleted file mode 100644
index c08c483eb..000000000
--- a/package/dansguardian/patches/patch-src_SocketArray_cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- dansguardian-2.12.0.3.orig/src/SocketArray.cpp 2011-08-02 15:31:45.000000000 +0200
-+++ dansguardian-2.12.0.3/src/SocketArray.cpp 2013-12-07 10:07:51.000000000 +0100
-@@ -14,6 +14,7 @@
-
- #include <syslog.h>
- #include <cerrno>
-+#include <string.h>
-
-
- // GLOBALS
diff --git a/package/dansguardian/patches/patch-src_UDSocket_cpp b/package/dansguardian/patches/patch-src_UDSocket_cpp
deleted file mode 100644
index 3922e98f1..000000000
--- a/package/dansguardian/patches/patch-src_UDSocket_cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- dansguardian-2.12.0.3.orig/src/UDSocket.cpp 2012-09-29 22:06:45.000000000 +0200
-+++ dansguardian-2.12.0.3/src/UDSocket.cpp 2013-12-07 10:05:50.000000000 +0100
-@@ -21,6 +21,7 @@
- #include <unistd.h>
- #include <stdexcept>
- #include <stddef.h>
-+#include <string.h>
-
- #ifdef DGDEBUG
- #include <iostream>
diff --git a/package/daq/Makefile b/package/daq/Makefile
index 2baad946d..3e72dca8c 100644
--- a/package/daq/Makefile
+++ b/package/daq/Makefile
@@ -4,15 +4,15 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= daq
-PKG_VERSION:= 2.0.0
-PKG_RELEASE:= 4
-PKG_HASH:= fbafc8e362a96fcadc69731f91203ef90845507aae0a4774d5c2825e9d2c1c38
+PKG_VERSION:= 2.0.7
+PKG_RELEASE:= 1
+PKG_HASH:= d1f6709bc5dbddee3fdf170cdc1e49fb926e2031d4869ecf367a8c47efc87279
PKG_DESCR:= data acquisition library
PKG_SECTION:= libs/misc
PKG_DEPENDS:= libpcap libdnet
PKG_BUILDDEP:= libpcap libdnet
PKG_URL:= http://www.snort.org
-PKG_SITES:= http://distfiles.openadk.org/
+PKG_SITES:= https://www.snort.org/downloads/snort/
PKG_OPTS:= dev
PKG_NOPARALLEL:= 1
diff --git a/package/davfs2/Makefile b/package/davfs2/Makefile
index 79cb2f960..556ccb9f1 100644
--- a/package/davfs2/Makefile
+++ b/package/davfs2/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= davfs2
-PKG_VERSION:= 1.5.2
+PKG_VERSION:= 1.7.0
PKG_RELEASE:= 1
-PKG_HASH:= be34a19ab57a6ea77ecb82083e9e4c1882e12b2de64257de567ad5ee7a17b358
+PKG_HASH:= 251db75a27380cca1330b1b971700c5e5dcc0c90e5a47622285f0140edfe3a2f
PKG_DESCR:= webdav filesystem
PKG_SECTION:= net/fs
PKG_DEPENDS:= fuse-utils neon
@@ -14,7 +14,7 @@ PKG_BUILDDEP:= neon fuse
PKG_URL:= http://savannah.nongnu.org/projects/davfs2/
PKG_SITES:= http://download.savannah.gnu.org/releases/davfs2/
-PKG_LIBC_DEPENDS:= uclibc-ng glibc
+PKG_LIBC_DEPENDS:= glibc
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
@@ -22,7 +22,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,DAVFS2,davfs2,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-AUTOTOOLS_STYLE:= autoreconf
+AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --with-neon
CONFIGURE_ENV+= ac_cv_func_malloc_0_nonnull=yes
diff --git a/package/davfs2/patches/patch-configure_ac b/package/davfs2/patches/patch-configure_ac
new file mode 100644
index 000000000..c07fcf365
--- /dev/null
+++ b/package/davfs2/patches/patch-configure_ac
@@ -0,0 +1,11 @@
+--- davfs2-1.7.0.orig/configure.ac 2022-09-08 22:17:15.000000000 +0200
++++ davfs2-1.7.0/configure.ac 2024-02-22 09:55:30.529042778 +0100
+@@ -36,7 +36,7 @@ AC_PROG_LN_S
+ # Checks for libraries.
+ AM_GNU_GETTEXT_VERSION(0.19.8)
+ AM_GNU_GETTEXT([external])
+-NE_REQUIRE_VERSIONS([0], [27 28 29 30 31 32])
++NE_REQUIRE_VERSIONS([0], [27 28 29 30 31 32 33])
+ DAV_CHECK_NEON
+
+ # Checks for header files.
diff --git a/package/davfs2/patches/patch-src_Makefile_am b/package/davfs2/patches/patch-src_Makefile_am
deleted file mode 100644
index 318ebd27b..000000000
--- a/package/davfs2/patches/patch-src_Makefile_am
+++ /dev/null
@@ -1,12 +0,0 @@
---- davfs2-1.5.2.orig/src/Makefile.am 2014-04-22 21:19:02.000000000 +0200
-+++ davfs2-1.5.2/src/Makefile.am 2015-10-20 07:52:29.000000000 +0200
-@@ -32,8 +32,7 @@ mount_davfs_SOURCES = cache.c dav_coda.c
- kernel_interface.h mount_davfs.h webdav.h
- umount_davfs_SOURCES = umount_davfs.c defaults.h
-
--AM_CFLAGS = -Wall -Werror=format-security \
-- -fstack-protector --param=ssp-buffer-size=4
-+AM_CFLAGS = -Wall -Werror=format-security
- DEFS = -DPROGRAM_NAME=\"mount.davfs\" \
- -DDAV_SYS_CONF_DIR=\"$(pkgsysconfdir)\" \
- -DDAV_LOCALSTATE_DIR=\"$(dav_localstatedir)\" \
diff --git a/package/davfs2/patches/patch-src_Makefile_in b/package/davfs2/patches/patch-src_Makefile_in
deleted file mode 100644
index c99e6071d..000000000
--- a/package/davfs2/patches/patch-src_Makefile_in
+++ /dev/null
@@ -1,12 +0,0 @@
---- davfs2-1.5.2.orig/src/Makefile.in 2014-08-23 20:13:17.000000000 +0200
-+++ davfs2-1.5.2/src/Makefile.in 2016-09-24 10:24:45.225043359 +0200
-@@ -248,8 +248,7 @@ mount_davfs_SOURCES = cache.c dav_coda.c
- kernel_interface.h mount_davfs.h webdav.h
-
- umount_davfs_SOURCES = umount_davfs.c defaults.h
--AM_CFLAGS = -Wall -Werror=format-security \
-- -fstack-protector --param=ssp-buffer-size=4
-+AM_CFLAGS =
-
- all: all-am
-
diff --git a/package/dbus-python/Makefile b/package/dbus-python/Makefile
index 41bddeadd..ead0f05b9 100644
--- a/package/dbus-python/Makefile
+++ b/package/dbus-python/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= dbus-python
-PKG_VERSION:= 1.2.0
-PKG_RELEASE:= 2
-PKG_HASH:= e12c6c8b2bf3a9302f75166952cbe41d6b38c3441bbc6767dbd498942316c6df
+PKG_VERSION:= 1.3.2
+PKG_RELEASE:= 1
+PKG_HASH:= ad67819308618b5069537be237f8e68ca1c7fcc95ee4a121fe6845b1418248f8
PKG_DESCR:= python bindings for dbus
PKG_SECTION:= dev/python
PKG_DEPENDS:= dbus dbus-glib
@@ -20,15 +20,17 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,DBUS_PYTHON,dbus-python,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+include $(ADK_TOPDIR)/mk/python3.mk
+
dbus-python-install:
- $(INSTALL_DIR) $(IDIR_DBUS_PYTHON)/usr/lib/python2.7/site-packages/
- $(CP) $(WRKINST)/usr/lib/python2.7/site-packages/*.so \
- $(IDIR_DBUS_PYTHON)/usr/lib/python2.7/site-packages/
- $(INSTALL_DIR) $(IDIR_DBUS_PYTHON)/usr/lib/python2.7/site-packages/dbus
- $(CP) $(WRKINST)/usr/lib/python2.7/site-packages/dbus/*.py \
- $(IDIR_DBUS_PYTHON)/usr/lib/python2.7/site-packages/dbus/
- $(INSTALL_DIR) $(IDIR_DBUS_PYTHON)/usr/lib/python2.7/site-packages/dbus/mainloop
- $(CP) $(WRKINST)/usr/lib/python2.7/site-packages/dbus/mainloop/*.py \
- $(IDIR_DBUS_PYTHON)/usr/lib/python2.7/site-packages/dbus/mainloop
+ $(INSTALL_DIR) $(IDIR_DBUS_PYTHON)/usr/lib/python$(PYTHON_VERSION)/site-packages/
+ $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/*.so \
+ $(IDIR_DBUS_PYTHON)/usr/lib/python$(PYTHON_VERSION)/site-packages/
+ $(INSTALL_DIR) $(IDIR_DBUS_PYTHON)/usr/lib/python$(PYTHON_VERSION)/site-packages/dbus
+ $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/dbus/*.py \
+ $(IDIR_DBUS_PYTHON)/usr/lib/python$(PYTHON_VERSION)/site-packages/dbus/
+ $(INSTALL_DIR) $(IDIR_DBUS_PYTHON)/usr/lib/python$(PYTHON_VERSION)/site-packages/dbus/mainloop
+ $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/dbus/mainloop/*.py \
+ $(IDIR_DBUS_PYTHON)/usr/lib/python$(PYTHON_VERSION)/site-packages/dbus/mainloop
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/dbus-python/patches/patch-configure b/package/dbus-python/patches/patch-configure
deleted file mode 100644
index f13116469..000000000
--- a/package/dbus-python/patches/patch-configure
+++ /dev/null
@@ -1,11 +0,0 @@
---- dbus-python-1.2.0.orig/configure 2013-05-08 09:48:42.000000000 +0200
-+++ dbus-python-1.2.0/configure 2013-12-13 12:52:44.522656370 +0100
-@@ -11762,7 +11762,7 @@ $as_echo "$as_me: PYTHON_INCLUDES overri
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Python headers using $PYTHON-config --includes" >&5
- $as_echo_n "checking for Python headers using $PYTHON-config --includes... " >&6; }
-- PYTHON_INCLUDES=`$PYTHON-config --includes`
-+ PYTHON_INCLUDES=`python-config --includes`
- if test $? = 0; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON_INCLUDES" >&5
- $as_echo "$PYTHON_INCLUDES" >&6; }
diff --git a/package/dbus/Makefile b/package/dbus/Makefile
index c32a5fdcd..90ac2f089 100644
--- a/package/dbus/Makefile
+++ b/package/dbus/Makefile
@@ -5,7 +5,7 @@ include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= dbus
PKG_VERSION:= 1.10.20
-PKG_RELEASE:= 1
+PKG_RELEASE:= 3
PKG_HASH:= e574b9780b5425fde4d973bb596e7ea0f09e00fe2edd662da9016e976c460b48
PKG_DESCR:= desktop bus daemon
PKG_SECTION:= sys/misc
@@ -24,10 +24,6 @@ PKGSD_LIBDBUS:= DBUS library
PKGSC_LIBDBUS:= libs/misc
PKGSS_LIBDBUS:= libexpat libuuid
-PKG_FLAVOURS_DBUS:= WITH_SYSTEMD
-PKGFD_WITH_SYSTEMD:= enable systemd support
-PKGFB_WITH_SYSTEMD:= systemd
-
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,DBUS,dbus,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
@@ -36,20 +32,15 @@ $(eval $(call PKG_template,LIBDBUS,libdbus,${PKG_VERSION}-${PKG_RELEASE},${PKGSS
TARGET_LDFLAGS+= -luuid
AUTOTOOL_STYLE:= autoreconf
-ifeq ($(ADK_PACKAGE_DBUS_WITH_SYSTEMD),y)
-CONFIGURE_ARGS+= --enable-systemd --with-systemdsystemunitdir=/usr/lib/systemd/system
-TARGET_LDFLAGS+= -lsystemd
-else
-CONFIGURE_ARGS+= --disable-systemd
-endif
-
-CONFIGURE_ARGS+= --disable-tests \
+CONFIGURE_ARGS+= --disable-systemd \
+ --disable-tests \
--disable-asserts \
--enable-abstract-sockets \
--with-dbus-user=dbus \
--with-system-socket=/run/dbus/system_bus_socket \
--with-system-pid-file=/run/dbus/dbus.pid \
--disable-verbose-mode \
+ --disable-apparmor \
--disable-kqueue \
--disable-selinux \
--disable-libaudit \
@@ -76,10 +67,6 @@ dbus-install:
${CP} ${WRKINST}/etc/dbus-1 ${IDIR_DBUS}/etc
${CP} ${WRKINST}/usr/share/dbus-1 ${IDIR_DBUS}/usr/share
${CP} ${WRKINST}/usr/bin/dbus-* ${IDIR_DBUS}/usr/bin
-ifeq ($(ADK_PACKAGE_DBUS_WITH_SYSTEMD),y)
- ${INSTALL_DIR} ${IDIR_DBUS}/usr/lib/systemd
- ${CP} ${WRKINST}/usr/lib/systemd/* ${IDIR_DBUS}/usr/lib/systemd
-endif
# workaround for dev subpackage
${INSTALL_DIR} $(IDIR_DBUS_DEV)/usr/include/dbus-1.0/dbus
$(CP) $(WRKBUILD)/dbus/dbus-arch-deps.h \
diff --git a/package/deco/Makefile b/package/deco/Makefile
index 532f9e22a..bb3c1ca08 100644
--- a/package/deco/Makefile
+++ b/package/deco/Makefile
@@ -20,6 +20,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,DECO,deco,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CFLAGS+= -fcommon
TARGET_LDFLAGS+= -ltinfo
INSTALL_STYLE:= manual
diff --git a/package/dhcp/Makefile b/package/dhcp/Makefile
index d86e13725..a007837d1 100644
--- a/package/dhcp/Makefile
+++ b/package/dhcp/Makefile
@@ -4,13 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= dhcp
-PKG_VERSION:= 4.3.5
+PKG_VERSION:= 4.4.3-P1
PKG_RELEASE:= 1
-PKG_HASH:= eb95936bf15d2393c55dd505bc527d1d4408289cec5a9fa8abb99f7577e7f954
+PKG_HASH:= 0ac416bb55997ca8632174fd10737fd61cdb8dba2752160a335775bc21dc73c7
PKG_DESCR:= dhcp server
PKG_SECTION:= net/dns
PKG_URL:= https://www.isc.org/software/dhcp/
-PKG_SITES:= ftp://ftp.isc.org/isc/dhcp/${PKG_VERSION}/
+PKG_SITES:= https://downloads.isc.org/isc/dhcp/$(PKG_VERSION)/
PKG_NOPARALLEL:= 1
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
diff --git a/package/dhcp/patches/patch-bind_Makefile_in b/package/dhcp/patches/patch-bind_Makefile_in
deleted file mode 100644
index 8f686ec26..000000000
--- a/package/dhcp/patches/patch-bind_Makefile_in
+++ /dev/null
@@ -1,13 +0,0 @@
---- dhcp-4.3.5.orig/bind/Makefile.in 2016-09-27 21:54:32.000000000 +0200
-+++ dhcp-4.3.5/bind/Makefile.in 2016-11-26 07:21:39.000000000 +0100
-@@ -30,7 +30,9 @@ bindconfig = --disable-kqueue --disable-
- --without-openssl --without-libxml2 --enable-exportlib \
- --with-gssapi=no --enable-threads=no @BINDCONFIG@ \
- --with-export-includedir=${binddir}/include \
-- --with-export-libdir=${binddir}/lib
-+ --with-export-libdir=${binddir}/lib \
-+ --target=@target_alias@ --host=@host_alias@ \
-+ --build=@build_alias@
-
- @BIND_ATF_FALSE@cleandirs = ./lib ./include
- @BIND_ATF_TRUE@cleandirs = ./lib ./include ./atf
diff --git a/package/dhcp/patches/patch-common_discover_c b/package/dhcp/patches/patch-common_discover_c
deleted file mode 100644
index 372ca8e1c..000000000
--- a/package/dhcp/patches/patch-common_discover_c
+++ /dev/null
@@ -1,13 +0,0 @@
---- dhcp-4.3.5.orig/common/discover.c 2016-09-27 21:16:50.000000000 +0200
-+++ dhcp-4.3.5/common/discover.c 2016-11-26 07:09:35.000000000 +0100
-@@ -692,8 +692,8 @@ next_iface6(struct iface_info *info, int
- for (i=0; i<16; i++) {
- unsigned char byte;
- static const char hex[] = "0123456789abcdef";
-- byte = ((index(hex, buf[i * 2]) - hex) << 4) |
-- (index(hex, buf[i * 2 + 1]) - hex);
-+ byte = ((strchr(hex, buf[i * 2]) - hex) << 4) |
-+ (strchr(hex, buf[i * 2 + 1]) - hex);
- addr.sin6_addr.s6_addr[i] = byte;
- }
- memcpy(&info->addr, &addr, sizeof(addr));
diff --git a/package/dhcpcd/Makefile b/package/dhcpcd/Makefile
index de6093723..b1eefd540 100644
--- a/package/dhcpcd/Makefile
+++ b/package/dhcpcd/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= dhcpcd
-PKG_VERSION:= 6.11.5
+PKG_VERSION:= 9.1.1
PKG_RELEASE:= 1
-PKG_HASH:= 6f9674dc7e27e936cc787175404a6171618675ecfb6903ab9887b1b66a87d69e
+PKG_HASH:= bb742911be1f660db42a7323acc793b587f467c5de5b7186735c16d20204737d
PKG_DESCR:= dhcp client
PKG_SECTION:= net/dns
PKG_URL:= https://roy.marples.name/projects/dhcpcd
diff --git a/package/dillo/Makefile b/package/dillo/Makefile
index 31316f69c..0535edb69 100644
--- a/package/dillo/Makefile
+++ b/package/dillo/Makefile
@@ -24,6 +24,8 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,DILLO,dillo,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CFLAGS+= -fcommon
+TARGET_CXXFLAGS+= -fcommon
TARGET_LDFLAGS+= -liconv
CONFIGURE_ENV+= PNG_CONFIG=$(STAGING_TARGET_DIR)/scripts/libpng-config
CONFIGURE_ARGS+= --enable-ssl
diff --git a/package/dillo/patches/patch-dpi_https_c b/package/dillo/patches/patch-dpi_https_c
new file mode 100644
index 000000000..90c91198d
--- /dev/null
+++ b/package/dillo/patches/patch-dpi_https_c
@@ -0,0 +1,14 @@
+--- dillo-3.0.5.orig/dpi/https.c 2015-06-30 16:06:08.000000000 +0200
++++ dillo-3.0.5/dpi/https.c 2024-03-04 08:18:34.867259406 +0100
+@@ -476,7 +476,11 @@ static int handle_certificate_problem(SS
+ case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:
+ /*Either self signed and untrusted*/
+ /*Extract CN from certificate name information*/
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if ((cn = strstr(remote_cert->name, "/CN=")) == NULL) {
++#else
++ if ((cn = strstr(X509_get_subject_name(remote_cert), "/CN=")) == NULL) {
++#endif
+ strcpy(buf, "(no CN given)");
+ } else {
+ char *cn_end;
diff --git a/package/dnsmasq/Makefile b/package/dnsmasq/Makefile
index 0f1135e7a..d204305b0 100644
--- a/package/dnsmasq/Makefile
+++ b/package/dnsmasq/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= dnsmasq
-PKG_VERSION:= 2.79
+PKG_VERSION:= 2.90
PKG_RELEASE:= 1
-PKG_HASH:= 78ad74f5ca14fd85a8bac93f764cd9d60b27579e90eabd3687ca7b030e67861f
+PKG_HASH:= 8e50309bd837bfec9649a812e066c09b6988b73d749b7d293c06c57d46a109e4
PKG_DESCR:= lightweight dns, dhcp and tftp server
PKG_SECTION:= net/dns
PKG_KDEPENDS:= inotify-user
diff --git a/package/dosfstools/Makefile b/package/dosfstools/Makefile
index f015fa37a..8238eced9 100644
--- a/package/dosfstools/Makefile
+++ b/package/dosfstools/Makefile
@@ -4,14 +4,15 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= dosfstools
-PKG_VERSION:= 4.1
+PKG_VERSION:= 4.2
PKG_RELEASE:= 1
-PKG_HASH:= e6b2aca70ccc3fe3687365009dd94a2e18e82b688ed4e260e04b7412471cc173
+PKG_HASH:= 64926eebf90092dca21b14259a5301b7b98e7b1943e8a201c7d726084809b527
PKG_DESCR:= utilities to create and check fat filesystems
PKG_SECTION:= sys/fs
-PKG_NEEDS:= iconv
PKG_URL:= http://www.daniel-baumann.ch/software/dosfstools/
-PKG_SITES:= https://github.com/dosfstools/dosfstools/releases/download/v$(PKG_VERSION)/
+PKG_SITES:= https://github.com/dosfstools/dosfstools/releases/download/v4.2/
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_CFLINE_DOSFSTOOLS:= select BUSYBOX_FSCK
diff --git a/package/drbd-utils/Makefile b/package/drbd-utils/Makefile
deleted file mode 100644
index 26445fbe7..000000000
--- a/package/drbd-utils/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= drbd-utils
-PKG_VERSION:= 8.9.6
-PKG_RELEASE:= 1
-PKG_HASH:= 297b77c9b3f88de2e7dae459234f2753ea4fc2805282b2d276e35cf51e292913
-PKG_DESCR:= admin tools for drbd-utils
-PKG_SECTION:= sys/fs
-PKG_SITES:= http://oss.linbit.com/drbd/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,DRBD_UTILS,drbd-utils,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-XAKE_FLAGS+= GENETLINK_H=$(STAGING_TARGET_DIR)/usr/include/linux/genetlink.h
-CONFIGURE_ARGS+= --with-distro=generic \
- --without-manual \
- --with-pacemaker \
- --without-heartbeat \
- --without-km \
- --without-xen \
- --without-udev
-
-drbd-utils-install:
- $(INSTALL_DIR) $(IDIR_DRBD_UTILS)/etc
- $(CP) ./files/drbd.conf $(IDIR_DRBD_UTILS)/etc
- $(INSTALL_DIR) $(IDIR_DRBD_UTILS)/usr/lib/drbd
- $(INSTALL_DIR) $(IDIR_DRBD_UTILS)/usr/sbin
- $(CP) $(WRKINST)/usr/lib/drbd/* \
- $(IDIR_DRBD_UTILS)/usr/lib/drbd/
- $(INSTALL_BIN) $(WRKINST)/usr/sbin/drbd* \
- $(IDIR_DRBD_UTILS)/usr/sbin
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/drbd-utils/files/drbd.conf b/package/drbd-utils/files/drbd.conf
deleted file mode 100644
index 8eb55e497..000000000
--- a/package/drbd-utils/files/drbd.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-#resource r1 {
-# protocol C;
-#
-# startup { wfc-timeout 0; degr-wfc-timeout 120; }
-# disk { on-io-error detach; }
-# net { timeout 60; connect-int 10; ping-int 10;
-# max-buffers 2048; max-epoch-size 2048; }
-# syncer { rate 5M; } # sync when r0 and r1 are finished syncing.
-# on alice {
-# address 192.168.1.1:7790;
-# disk /dev/sdb1;
-# device /dev/drbd1;
-# meta-disk "internal";
-# }
-# on bob {
-# address 192.168.1.2:7790;
-# disk "/dev/sdb1";
-# device "/dev/drbd2";
-# meta-disk "internal";
-# }
-#}
diff --git a/package/drbd-utils/files/drbd.conffiles b/package/drbd-utils/files/drbd.conffiles
deleted file mode 100644
index 9096001bf..000000000
--- a/package/drbd-utils/files/drbd.conffiles
+++ /dev/null
@@ -1 +0,0 @@
-/etc/drbd.conf
diff --git a/package/dropbear/Makefile b/package/dropbear/Makefile
index 34210e585..fa8eecf66 100644
--- a/package/dropbear/Makefile
+++ b/package/dropbear/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= dropbear
-PKG_VERSION:= 2018.76
+PKG_VERSION:= 2024.84
PKG_RELEASE:= 1
-PKG_HASH:= f2fb9167eca8cf93456a5fc1d4faf709902a3ab70dd44e352f3acbc3ffdaea65
+PKG_HASH:= 16e22b66b333d6b7e504c43679d04ed6ca30f2838db40a21f935c850dfc01009
PKG_DESCR:= ssh server/client designed for embedded systems
PKG_SECTION:= net/security
PKG_URL:= http://matt.ucc.asn.au/dropbear/
@@ -39,6 +39,7 @@ CONFIGURE_ARGS+= --disable-pam \
--disable-wtmpx \
--disable-loginfunc \
--disable-pututxline \
+ --disable-harden \
--disable-zlib
ifeq (${ADK_PACKAGE_DROPBEAR_WITH_UTMP},)
CONFIGURE_ARGS+= --disable-utmp --disable-pututline
@@ -48,8 +49,8 @@ endif
pre-configure:
- $(SED) 's,^/\* #define PKG_MULTI.*,#define PKG_MULTI,g' $(WRKBUILD)/options.h
- $(SED) 's,^#define DO_HOST_LOOKUP,/* & */,g' $(WRKBUILD)/options.h
+ echo "#define DO_HOST_LOOKUP 0" >>$(WRKBUILD)/localoptions.h
+ echo "#define DROPBEAR_X11FWD 1" >>$(WRKBUILD)/localoptions.h
do-build:
cd ${WRKBUILD} && env ${MAKE_ENV} ${MAKE} \
@@ -75,9 +76,9 @@ do-install:
$(IDIR_DBCONVERT)/usr/bin/dropbearconvert
# ssh pubkey
test -z $(ADK_RUNTIME_SSH_PUBKEY) || ( \
- $(INSTALL_DIR) $(IDIR_DROPBEAR)/etc/dropbear; \
+ $(INSTALL_DIR) $(IDIR_DROPBEAR)/root/.ssh; \
echo $(ADK_RUNTIME_SSH_PUBKEY) \
- >$(IDIR_DROPBEAR)/etc/dropbear/authorized_keys; \
+ >$(IDIR_DROPBEAR)/root/.ssh/authorized_keys; \
)
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/dropbear/files/dropbear.init b/package/dropbear/files/dropbear.init
index 9bf74098e..3e464e34b 100644
--- a/package/dropbear/files/dropbear.init
+++ b/package/dropbear/files/dropbear.init
@@ -24,19 +24,19 @@ start)
test $rv = 0 || exit 1
test -f /etc/dropbear/dropbear_rsa_host_key || exit 1
fi
- if test ! -f /etc/dropbear/dropbear_dss_host_key; then
+ if test ! -f /etc/dropbear/dropbear_ecdsa_host_key; then
# take it easy here, since above already catched the worst cases
if test -x /usr/bin/dropbearkey; then
- echo "dropbear: generating SSH private key (DSS)"
- /usr/bin/dropbearkey -f /etc/dropbear/dropbear_dss_host_key -t dss
+ echo "dropbear: generating SSH private key (ECDSA)"
+ /usr/bin/dropbearkey -f /etc/dropbear/dropbear_ecdsa_host_key -t ecdsa
echo "dropbear: key generation exited with code $?"
fi
fi
- if test ! -f /etc/dropbear/dropbear_ecdsa_host_key; then
+ if test ! -f /etc/dropbear/dropbear_ed25519_host_key; then
# take it easy here, since above already catched the worst cases
if test -x /usr/bin/dropbearkey; then
- echo "dropbear: generating SSH private key (ECDSA)"
- /usr/bin/dropbearkey -f /etc/dropbear/dropbear_ecdsa_host_key -t ecdsa
+ echo "dropbear: generating SSH private key (ED25519)"
+ /usr/bin/dropbearkey -f /etc/dropbear/dropbear_ed25519_host_key -t ed25519
echo "dropbear: key generation exited with code $?"
fi
fi
diff --git a/package/dropbear/files/dropbear.service b/package/dropbear/files/dropbear.service
deleted file mode 100644
index eeb86cfa7..000000000
--- a/package/dropbear/files/dropbear.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Dropbear SSH daemon
-After=syslog.target network.target
-
-[Service]
-EnvironmentFile=-/etc/default/dropbear
-ExecStart=/usr/sbin/dropbear -F -R $DROPBEAR_ARGS
-ExecReload=/bin/kill -HUP $MAINPID
-
-[Install]
-WantedBy=multi-user.target
diff --git a/package/dropbear/patches/patch-Makefile_in b/package/dropbear/patches/patch-Makefile_in
deleted file mode 100644
index 3a139a546..000000000
--- a/package/dropbear/patches/patch-Makefile_in
+++ /dev/null
@@ -1,35 +0,0 @@
---- dropbear-2014.63.orig/Makefile.in 2014-02-19 15:05:24.000000000 +0100
-+++ dropbear-2014.63/Makefile.in 2014-03-01 18:27:41.000000000 +0100
-@@ -81,10 +81,10 @@ AR=@AR@
- RANLIB=@RANLIB@
- STRIP=@STRIP@
- INSTALL=@INSTALL@
--CPPFLAGS=@CPPFLAGS@
--CFLAGS+=-I. -I$(srcdir) $(CPPFLAGS) @CFLAGS@
--LIBS+=@LIBS@
--LDFLAGS=@LDFLAGS@
-+CPPFLAGS=@CPPFLAGS@ -I. -I$(srcdir)
-+LIBS+=@LIBS@ @CRYPTLIB@
-+LDFLAGS+=@LDFLAGS@
-+
-
- EXEEXT=@EXEEXT@
-
-@@ -163,7 +163,7 @@ dropbearkey: $(dropbearkeyobjs)
- dropbearconvert: $(dropbearconvertobjs)
-
- dropbear: $(HEADERS) $(LIBTOM_DEPS) Makefile
-- $(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS) $(LIBS) @CRYPTLIB@
-+ $(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS) $(LIBS)
-
- dbclient: $(HEADERS) $(LIBTOM_DEPS) Makefile
- $(CC) $(LDFLAGS) -o $@$(EXEEXT) $($@objs) $(LIBTOM_LIBS) $(LIBS)
-@@ -184,7 +184,7 @@ ifeq ($(MULTI),1)
- endif
-
- dropbearmulti$(EXEEXT): $(HEADERS) $(MULTIOBJS) $(LIBTOM_DEPS) Makefile
-- $(CC) $(LDFLAGS) -o $@ $(MULTIOBJS) $(LIBTOM_LIBS) $(LIBS) @CRYPTLIB@
-+ $(CC) $(LDFLAGS) -o $@ $(MULTIOBJS) $(LIBTOM_LIBS) $(LIBS)
-
- multibinary: dropbearmulti$(EXEEXT)
-
diff --git a/package/dropbear/patches/patch-svr-authpubkey_c b/package/dropbear/patches/patch-svr-authpubkey_c
deleted file mode 100644
index 0de885cfb..000000000
--- a/package/dropbear/patches/patch-svr-authpubkey_c
+++ /dev/null
@@ -1,109 +0,0 @@
---- dropbear-2017.75.orig/svr-authpubkey.c 2017-05-18 16:47:02.000000000 +0200
-+++ dropbear-2017.75/svr-authpubkey.c 2017-07-06 19:45:36.765143131 +0200
-@@ -220,24 +220,33 @@ static int checkpubkey(char* algo, unsig
- goto out;
- }
-
-- /* we don't need to check pw and pw_dir for validity, since
-- * its been done in checkpubkeyperms. */
-- len = strlen(ses.authstate.pw_dir);
-- /* allocate max required pathname storage,
-- * = path + "/.ssh/authorized_keys" + '\0' = pathlen + 22 */
-- filename = m_malloc(len + 22);
-- snprintf(filename, len + 22, "%s/.ssh/authorized_keys",
-- ses.authstate.pw_dir);
-+ /* special case for root authorized_keys in /etc/dropbear/authorized_keys */
-+ if (ses.authstate.pw_uid != 0) {
-
-- /* open the file as the authenticating user. */
-- origuid = getuid();
-- origgid = getgid();
-- if ((setegid(ses.authstate.pw_gid)) < 0 ||
-- (seteuid(ses.authstate.pw_uid)) < 0) {
-- dropbear_exit("Failed to set euid");
-- }
-+ /* we don't need to check pw and pw_dir for validity, since
-+ * its been done in checkpubkeyperms. */
-+ len = strlen(ses.authstate.pw_dir);
-+ /* allocate max required pathname storage,
-+ * = path + "/.ssh/authorized_keys" + '\0' = pathlen + 22 */
-+ filename = m_malloc(len + 22);
-+ snprintf(filename, len + 22, "%s/.ssh/authorized_keys",
-+ ses.authstate.pw_dir);
-
-- authfile = fopen(filename, "r");
-+ /* open the file as the authenticating user. */
-+ origuid = getuid();
-+ origgid = getgid();
-+ if ((setegid(ses.authstate.pw_gid)) < 0 ||
-+ (seteuid(ses.authstate.pw_uid)) < 0) {
-+ dropbear_exit("Failed to set euid");
-+ }
-+
-+ authfile = fopen(filename, "r");
-+
-+ } else {
-+ origuid = getuid();
-+ origgid = getgid();
-+ authfile = fopen("/etc/dropbear/authorized_keys","r");
-+ }
-
- if ((seteuid(origuid)) < 0 ||
- (setegid(origgid)) < 0) {
-@@ -396,26 +405,39 @@ static int checkpubkeyperms() {
- goto out;
- }
-
-- /* allocate max required pathname storage,
-- * = path + "/.ssh/authorized_keys" + '\0' = pathlen + 22 */
-- filename = m_malloc(len + 22);
-- strncpy(filename, ses.authstate.pw_dir, len+1);
-+ if (ses.authstate.pw_uid != 0) {
-
-- /* check ~ */
-- if (checkfileperm(filename) != DROPBEAR_SUCCESS) {
-- goto out;
-- }
-+ /* allocate max required pathname storage,
-+ * = path + "/.ssh/authorized_keys" + '\0' = pathlen + 22 */
-+ filename = m_malloc(len + 22);
-+ strncpy(filename, ses.authstate.pw_dir, len+1);
-
-- /* check ~/.ssh */
-- strncat(filename, "/.ssh", 5); /* strlen("/.ssh") == 5 */
-- if (checkfileperm(filename) != DROPBEAR_SUCCESS) {
-- goto out;
-- }
-+ /* check ~ */
-+ if (checkfileperm(filename) != DROPBEAR_SUCCESS) {
-+ goto out;
-+ }
-+
-+ /* check ~/.ssh */
-+ strncat(filename, "/.ssh", 5); /* strlen("/.ssh") == 5 */
-+ if (checkfileperm(filename) != DROPBEAR_SUCCESS) {
-+ goto out;
-+ }
-+
-+ /* now check ~/.ssh/authorized_keys */
-+ strncat(filename, "/authorized_keys", 16);
-+ if (checkfileperm(filename) != DROPBEAR_SUCCESS) {
-+ goto out;
-+ }
-+
-+ } else {
-+
-+ if (checkfileperm("/etc/dropbear") != DROPBEAR_SUCCESS) {
-+ goto out;
-+ }
-+ if (checkfileperm("/etc/dropbear/authorized_keys") != DROPBEAR_SUCCESS) {
-+ goto out;
-+ }
-
-- /* now check ~/.ssh/authorized_keys */
-- strncat(filename, "/authorized_keys", 16);
-- if (checkfileperm(filename) != DROPBEAR_SUCCESS) {
-- goto out;
- }
-
- /* file looks ok, return success */
diff --git a/package/dropbear/patches/patch-svr-main_c b/package/dropbear/patches/patch-svr-main_c
new file mode 100644
index 000000000..b2d4007b8
--- /dev/null
+++ b/package/dropbear/patches/patch-svr-main_c
@@ -0,0 +1,15 @@
+--- dropbear-2020.81.orig/svr-main.c 2020-10-29 14:35:50.000000000 +0100
++++ dropbear-2020.81/svr-main.c 2020-11-04 05:04:33.736369225 +0100
+@@ -278,8 +278,12 @@ static void main_noinetd() {
+ #if DEBUG_NOFORK
+ fork_ret = 0;
+ #else
++#if DROPBEAR_VFORK
++ fork_ret = vfork();
++#else
+ fork_ret = fork();
+ #endif
++#endif
+ if (fork_ret < 0) {
+ dropbear_log(LOG_WARNING, "Error forking: %s", strerror(errno));
+ goto out;
diff --git a/package/dtc/Makefile b/package/dtc/Makefile
index 673ef73ef..d0a95841a 100644
--- a/package/dtc/Makefile
+++ b/package/dtc/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= dtc
-PKG_VERSION:= 1.4.4
+PKG_VERSION:= 1.7.0
PKG_RELEASE:= 1
-PKG_HASH:= 2f2c0bf4d84763595953885bdcd2159b0b85410018c8ba48cc31b3d6e443e4d8
+PKG_HASH:= 70d9c156ec86d63de0f7bdae50540ffa492b25ec1d69491c7520845c860b9a62
PKG_DESCR:= compiler for dts files
PKG_SECTION:= sys/misc
HOST_BUILDDEP:= m4-host flex-host bison-host
PKG_URL:= http://www.devicetree.org/Device_Tree_Compiler
-PKG_SITES:= https://github.com/dgibson/dtc/archive/
+PKG_SITES:= https://github.com/dgibson/dtc/archive/refs/tags/
DISTFILES:= v$(PKG_VERSION).tar.gz
@@ -23,6 +23,7 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call HOST_template,DTC,dtc,$(PKG_VERSION)-$(PKG_RELEASE)))
HOST_STYLE:= manual
+HOST_MAKE_FLAGS+= NO_PYTHON=1
host-build:
(cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
diff --git a/package/dtc/patches/patch-Makefile b/package/dtc/patches/patch-Makefile
index a07d3e953..9a4553381 100644
--- a/package/dtc/patches/patch-Makefile
+++ b/package/dtc/patches/patch-Makefile
@@ -1,11 +1,11 @@
---- device-tree-compiler-b06e55c88b9b922ff7e25cd62a4709b65524f0fc.orig/Makefile 2016-04-05 12:08:43.000000000 +0200
-+++ device-tree-compiler-b06e55c88b9b922ff7e25cd62a4709b65524f0fc/Makefile 2016-04-05 12:52:14.756802700 +0200
-@@ -18,7 +18,7 @@ CONFIG_LOCALVERSION =
- CPPFLAGS = -I libfdt -I .
+--- dtc-1.6.1.orig/Makefile 2021-06-08 09:00:49.000000000 +0200
++++ dtc-1.6.1/Makefile 2022-09-20 08:58:33.198381442 +0200
+@@ -23,7 +23,7 @@ ASSUME_MASK ?= 0
+ CPPFLAGS = -I libfdt -I . -DFDT_ASSUME_MASK=$(ASSUME_MASK)
WARNINGS = -Wall -Wpointer-arith -Wcast-qual -Wnested-externs \
-Wstrict-prototypes -Wmissing-prototypes -Wredundant-decls -Wshadow
--CFLAGS = -g -Os -fPIC -Werror $(WARNINGS)
-+CFLAGS = -g -Os -fPIC $(WARNINGS)
+-CFLAGS = -g -Os $(SHAREDLIB_CFLAGS) -Werror $(WARNINGS) $(EXTRA_CFLAGS)
++CFLAGS = -g -Os $(SHAREDLIB_CFLAGS) $(WARNINGS) $(EXTRA_CFLAGS)
BISON = bison
LEX = flex
diff --git a/package/e2fsprogs/Makefile b/package/e2fsprogs/Makefile
index d3e9567e2..3e565c647 100644
--- a/package/e2fsprogs/Makefile
+++ b/package/e2fsprogs/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= e2fsprogs
-PKG_VERSION:= 1.44.2
+PKG_VERSION:= 1.47.0
PKG_RELEASE:= 1
-PKG_HASH:= 8324cf0b6e81805a741d94087b00e99f7e16144f1ee5a413709a1fa6948b126c
+PKG_HASH:= 144af53f2bbd921cef6f8bea88bb9faddca865da3fbc657cc9b4d2001097d5db
PKG_DESCR:= ext2/3/4 filesystem utilities
PKG_SECTION:= sys/fs
PKG_BUILDDEP:= util-linux
@@ -14,23 +14,17 @@ PKG_NEEDS:= threads
PKG_URL:= http://e2fsprogs.sourceforge.net/
PKG_SITES:= https://www.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v$(PKG_VERSION)/
PKG_OPTS:= dev
-PKG_NOPARALLEL:= 1
PKG_CFLINE_E2FSPROGS:= select BUSYBOX_FSCK
PKG_SUBPKGS:= LIBE2FS LIBCOM_ERR LIBSS
PKG_SUBPKGS+= RESIZE2FS TUNE2FS E2FSCK MKE2FS
-PKG_SUBPKGS+= E2FSCK_STATIC TUNE2FS_STATIC
PKGSD_LIBE2FS:= e2fsprogs library
PKGSC_LIBE2FS:= libs/misc
PKGSD_LIBCOM_ERR:= common error library
PKGSC_LIBCOM_ERR:= libs/misc
PKGSD_LIBSS:= subsystem command parsing library
PKGSC_LIBSS:= libs/misc
-PKGSD_E2FSCK_STATIC:= static build of e2fsck
-PKGSC_E2FSCK_STATIC:= sys/fs
-PKGSD_TUNE2FS_STATIC:= static build of tune2fs
-PKGSC_TUNE2FS_STATIC:= sys/fs
PKGSD_RESIZE2FS:= ext2/3/4 resize utility
PKGSC_RESIZE2FS:= sys/fs
PKGSS_RESIZE2FS:= libe2fs libcom-err libblkid
@@ -55,14 +49,13 @@ $(eval $(call PKG_template,TUNE2FS,tune2fs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS
$(eval $(call PKG_template,RESIZE2FS,resize2fs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS_RESIZE2FS),$(PKGSD_RESIZE2FS),$(PKGSC_RESIZE2FS)))
$(eval $(call PKG_template,MKE2FS,mke2fs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS_MKE2FS),$(PKGSD_MKE2FS),$(PKGSC_MKE2FS)))
$(eval $(call PKG_template,E2FSCK,e2fsck,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS_E2FSCK),$(PKGSD_E2FSCK),$(PKGSC_E2FSCK)))
-$(eval $(call PKG_template,E2FSCK_STATIC,e2fsck-static,${PKG_VERSION}-${PKG_RELEASE},,${PKGSD_E2FSCK_STATIC},${PKGSC_E2FSCK_STATIC}))
-$(eval $(call PKG_template,TUNE2FS_STATIC,tune2fs-static,${PKG_VERSION}-${PKG_RELEASE},,${PKGSD_E2FSCK_STATIC},${PKGSC_E2FSCK_STATIC}))
HOST_CONFIGURE_ARGS+= --disable-rpath \
--disable-nls \
--disable-uuidd \
--disable-defrag \
- --disable-debugfs
+ --disable-debugfs \
+ --with-crond-dir="$(STAGING_HOST_DIR)/etc"
ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
CONFIGURE_ARGS+= --disable-elf-shlibs
@@ -130,17 +123,5 @@ libss-install:
$(CP) $(WRKINST)/usr/lib/libss.so* \
$(IDIR_LIBSS)/usr/lib
-e2fsck-static-install:
- ${MAKE} -C ${WRKBUILD}/e2fsck e2fsck.static
- ${INSTALL_DIR} ${IDIR_E2FSCK_STATIC}/usr/sbin
- ${INSTALL_BIN} ${WRKBUILD}/e2fsck/e2fsck.static \
- ${IDIR_E2FSCK_STATIC}/usr/sbin/e2fsck
-
-tune2fs-static-install:
- ${MAKE} -C ${WRKBUILD}/misc tune2fs.static
- ${INSTALL_DIR} ${IDIR_TUNE2FS_STATIC}/usr/sbin
- ${INSTALL_BIN} ${WRKBUILD}/misc/tune2fs.static \
- ${IDIR_TUNE2FS_STATIC}/usr/sbin/tune2fs
-
include $(ADK_TOPDIR)/mk/host-bottom.mk
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/elinks/Makefile b/package/elinks/Makefile
deleted file mode 100644
index 23d5c25fd..000000000
--- a/package/elinks/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include ${ADK_TOPDIR}/rules.mk
-
-PKG_NAME:= elinks
-PKG_VERSION:= 0.11.7
-PKG_RELEASE:= 3
-PKG_HASH:= 94dc254cdecddee51819ae17962d9e606690bee3ec43fb43c635cb40197b4bc7
-PKG_DESCR:= advanced text web browser
-PKG_SECTION:= app/browser
-PKG_URL:= http://elinks.or.cz/
-PKG_SITES:= http://elinks.or.cz/download/
-
-PKG_NOPARALLEL:= 1
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
-PKG_FLAVOURS_ELINKS:= WITH_IPV6
-PKGFD_WITH_IPV6:= enable IPv6 support
-
-PKG_CHOICES_ELINKS:= WITH_LIBRESSL WITHOUT_SSL
-PKGCD_WITH_LIBRESSL:= use libressl for crypto
-PKGCB_WITH_LIBRESSL:= libressl
-PKGCS_WITH_LIBRESSL:= libressl ca-certificates
-PKGCD_WITHOUT_SSL:= use no ssl
-
-include ${ADK_TOPDIR}/mk/package.mk
-
-$(eval $(call PKG_template,ELINKS,elinks,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-INSTALL_STYLE:= manual
-TARGET_CFLAGS+= -fPIC
-CONFIGURE_ENV+= $(shell echo ac_cv_file_./features.conf | tr [:blank:]-/. _)=yes
-CONFIGURE_ENV+= $(shell echo ac_cv_file_${WRKBUILD}/features.conf | tr [:blank:]-/. _)=yes
-CONFIGURE_ARGS+= --enable-small \
- --enable-256-colors \
- --disable-backtrace \
- --disable-data \
- --disable-formhist \
- --disable-leds \
- --disable-mailcap \
- --disable-mouse \
- --disable-smb \
- --disable-uri-rewrite \
- --disable-xbel \
- --without-bzlib \
- --without-gpm \
- --without-idn \
- --without-gnutls \
- --without-libiconv \
- --without-lua \
- --without-spidermonkey \
- --without-x \
- --without-zlib
-MAKE_FLAGS+= CC='${TARGET_CC}'
-
-ifneq (${ADK_PACKAGE_ELINKS_WITH_IPV6},)
-CONFIGURE_ARGS+= --enable-ipv6
-else
-CONFIGURE_ARGS+= --disable-ipv6
-endif
-
-ifeq ($(ADK_PACKAGE_ELINKS_WITH_LIBRESSL),y)
-CONFIGURE_ARGS+= --with-openssl='${STAGING_TARGET_DIR}/usr'
-endif
-ifeq ($(ADK_PACKAGE_ELINKS_WITHOUT_SSL),y)
-CONFIGURE_ARGS+= --without-openssl
-endif
-
-do-install:
- ${INSTALL_DIR} ${IDIR_ELINKS}/usr/bin
- ${INSTALL_BIN} ${WRKBUILD}/src/elinks ${IDIR_ELINKS}/usr/bin/
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/elinks/patches/patch-Makefile_lib b/package/elinks/patches/patch-Makefile_lib
deleted file mode 100644
index 122e6c13d..000000000
--- a/package/elinks/patches/patch-Makefile_lib
+++ /dev/null
@@ -1,11 +0,0 @@
---- elinks-0.11.7.orig/Makefile.lib 2009-08-22 13:15:08.000000000 +0200
-+++ elinks-0.11.7/Makefile.lib 2010-03-06 11:28:58.000000000 +0100
-@@ -43,7 +43,7 @@ quiet_cmd_compile = ' [$(CC_COLOR)C
-
- # Rule to compile a set of .o files into one .o file
- quiet_cmd_ld_objs = " [$(LD_COLOR)LD$(END_COLOR)] $(RELPATH)$@"
-- cmd_ld_objs = $(LD) -r -o $@ $(filter $(OBJS), $^) \
-+ cmd_ld_objs = $(CC) -Wl,-r -nostdlib -o $@ $(filter $(OBJS), $^) \
- $(foreach subdir,$(sort $(filter-out src,$(SUBDIRS))), \
- `test -e $(subdir)/$(LIB_O_NAME) && echo $(subdir)/$(LIB_O_NAME)`)
-
diff --git a/package/elinks/patches/patch-src_network_ssl_ssl_c b/package/elinks/patches/patch-src_network_ssl_ssl_c
deleted file mode 100644
index f55f43ba4..000000000
--- a/package/elinks/patches/patch-src_network_ssl_ssl_c
+++ /dev/null
@@ -1,16 +0,0 @@
---- elinks-0.11.7.orig/src/network/ssl/ssl.c 2009-08-22 13:15:08.000000000 +0200
-+++ elinks-0.11.7/src/network/ssl/ssl.c 2016-09-30 18:47:20.022831750 +0200
-@@ -49,11 +49,8 @@ init_openssl(struct module *module)
- * cannot initialize the PRNG and so every attempt to use SSL fails.
- * It's actually an OpenSSL FAQ, and according to them, it's up to the
- * application coders to seed the RNG. -- William Yodlowsky */
-- if (RAND_egd(RAND_file_name(f_randfile, sizeof(f_randfile))) < 0) {
-- /* Not an EGD, so read and write to it */
-- if (RAND_load_file(f_randfile, -1))
-- RAND_write_file(f_randfile);
-- }
-+ if (RAND_load_file(f_randfile, -1))
-+ RAND_write_file(f_randfile);
-
- SSLeay_add_ssl_algorithms();
- context = SSL_CTX_new(SSLv23_client_method());
diff --git a/package/esmtp/Makefile b/package/esmtp/Makefile
deleted file mode 100644
index 777dd6862..000000000
--- a/package/esmtp/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= esmtp
-PKG_VERSION:= 1.2
-PKG_RELEASE:= 1
-PKG_HASH:= a0d26931bf731f97514da266d079d8bc7d73c65b3499ed080576ab606b21c0ce
-PKG_DESCR:= relay-only mail transfer agent
-PKG_SECTION:= net/mail
-PKG_DEPENDS:= libesmtp flex
-PKG_BUILDDEP:= libesmtp flex
-PKG_URL:= http://esmtp.sourceforge.net/
-PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=esmtp/}
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,ESMTP,esmtp,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-esmtp-install:
- $(INSTALL_DIR) $(IDIR_ESMTP)/usr/{bin,sbin}
- $(INSTALL_BIN) $(WRKINST)/usr/bin/esmtp $(IDIR_ESMTP)/usr/bin
- $(CP) $(WRKINST)/usr/bin/{mailq,newaliases} $(IDIR_ESMTP)/usr/bin/
- $(CP) $(WRKINST)/usr/sbin/sendmail $(IDIR_ESMTP)/usr/sbin/
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/ethtool/Makefile b/package/ethtool/Makefile
index f432bc7d2..5360d31ee 100644
--- a/package/ethtool/Makefile
+++ b/package/ethtool/Makefile
@@ -4,10 +4,12 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= ethtool
-PKG_VERSION:= 4.16
+PKG_VERSION:= 5.15
PKG_RELEASE:= 1
-PKG_HASH:= fe967a6722db2099fa63d847b6628e3e31cf9f53571a37503347dcc3e4015a03
+PKG_HASH:= 686fd6110389d49c2a120f00c3cd5dfe43debada8e021e4270d74bbe452a116d
PKG_DESCR:= display or change ethernet card settings
+PKG_DEPENDS:= libmnl
+PKG_BUILDDEP:= libmnl
PKG_SECTION:= net/misc
PKG_SITES:= https://www.kernel.org/pub/software/network/ethtool/
diff --git a/package/eudev/Makefile b/package/eudev/Makefile
index 475869622..8ed7c39d7 100644
--- a/package/eudev/Makefile
+++ b/package/eudev/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= eudev
-PKG_VERSION:= 3.2.2
-PKG_RELEASE:= 2
-PKG_HASH:= 3e4c56ec2fc1854afd0a31f3affa48f922c62d40ee12a0c1a4b4f152ef5b0f63
+PKG_VERSION:= 3.2.8
+PKG_RELEASE:= 1
+PKG_HASH:= 61e4948e9e51271c3cce2bb5311a30b206dd03ef011062e6c627fb007e43f6b8
PKG_DESCR:= device manager
PKG_SECTION:= sys/utils
PKG_BUILDDEP:= gperf-host glib
diff --git a/package/expat/Makefile b/package/expat/Makefile
index 2bb86dd21..986a97218 100644
--- a/package/expat/Makefile
+++ b/package/expat/Makefile
@@ -4,19 +4,17 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= expat
-PKG_VERSION:= 2.2.5
+PKG_VERSION:= 2.6.2
PKG_RELEASE:= 1
-PKG_HASH:= d9dc32efba7e74f788fcc4f212a43216fc37cf5f23f4c2339664d473353aedf6
+PKG_HASH:= ee14b4c5d8908b1bec37ad937607eab183d4d9806a08adee472c3c3121d27364
PKG_DESCR:= xml parsing library
PKG_SECTION:= libs/data
PKG_NEEDS:= c++
PKG_URL:= http://expat.sourceforge.net
-PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=expat/}
+PKG_SITES:= https://github.com/libexpat/libexpat/releases/download/R_2_6_2/
PKG_LIBNAME:= libexpat
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
-
include ${ADK_TOPDIR}/mk/host.mk
include ${ADK_TOPDIR}/mk/package.mk
@@ -28,6 +26,8 @@ TARGET_CFLAGS:= $(filter-out -static,$(TARGET_CFLAGS))
TARGET_LDFLAGS:=$(filter-out -static,$(TARGET_LDFLAGS))
endif
+CONFIGURE_ARGS+= --without-docbook
+
libexpat-install:
${INSTALL_DIR} ${IDIR_LIBEXPAT}/usr/lib
${CP} ${WRKINST}/usr/lib/libexpat.so* ${IDIR_LIBEXPAT}/usr/lib/
diff --git a/package/fetchmail/Makefile b/package/fetchmail/Makefile
index 16504d91d..b94227c61 100644
--- a/package/fetchmail/Makefile
+++ b/package/fetchmail/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= fetchmail
-PKG_VERSION:= 6.3.26
+PKG_VERSION:= 6.4.23
PKG_RELEASE:= 1
-PKG_HASH:= 79b4c54cdbaf02c1a9a691d9948fcb1a77a1591a813e904283a8b614b757e850
+PKG_HASH:= 5f7a5e13731431134a2ca535bbced7adc666d3aeb93169a0830945d91f492300
PKG_DESCR:= fetch mail from a pop3 or imap server
PKG_SECTION:= net/mail
PKG_URL:= http://www.fetchmail.info
@@ -22,7 +22,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,FETCHMAIL,fetchmail,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-AUTOTOOL_STYLE:= autoreconf
+CONFIGURE_ENV+= ac_cv_have_decl_TLS1_3_VERSION=no
CONFIGURE_ARGS+= --without-hesiod
ifeq (${ADK_PACKAGE_FETCHMAIL_WITH_LIBRESSL},y)
diff --git a/package/fetchmail/patches/patch-config_h_in b/package/fetchmail/patches/patch-config_h_in
deleted file mode 100644
index ec8b9c74e..000000000
--- a/package/fetchmail/patches/patch-config_h_in
+++ /dev/null
@@ -1,13 +0,0 @@
---- fetchmail-6.3.26.orig/config.h.in 2013-04-23 23:36:55.000000000 +0200
-+++ fetchmail-6.3.26/config.h.in 2016-09-29 16:00:20.679625413 +0200
-@@ -53,6 +53,10 @@
- if you don't. */
- #undef HAVE_DECL_SSLV2_CLIENT_METHOD
-
-+/* Define to 1 if you have the declaration of `SSLv3_client_method', and to 0
-+ if you don't. */
-+#undef HAVE_DECL_SSLV3_CLIENT_METHOD
-+
- /* Define to 1 if you have the declaration of `strerror', and to 0 if you
- don't. */
- #undef HAVE_DECL_STRERROR
diff --git a/package/fetchmail/patches/patch-configure_ac b/package/fetchmail/patches/patch-configure_ac
deleted file mode 100644
index 7126bbc5f..000000000
--- a/package/fetchmail/patches/patch-configure_ac
+++ /dev/null
@@ -1,10 +0,0 @@
---- fetchmail-6.3.26.orig/configure.ac 2013-04-23 22:51:10.000000000 +0200
-+++ fetchmail-6.3.26/configure.ac 2016-09-29 16:00:20.683625569 +0200
-@@ -803,6 +803,7 @@ fi
-
- case "$LIBS" in *-lssl*)
- AC_CHECK_DECLS([SSLv2_client_method],,,[#include <openssl/ssl.h>])
-+ AC_CHECK_DECLS([SSLv3_client_method],,,[#include <openssl/ssl.h>])
- ;;
- esac
-
diff --git a/package/fetchmail/patches/patch-fetchmail_c b/package/fetchmail/patches/patch-fetchmail_c
deleted file mode 100644
index 160afa85d..000000000
--- a/package/fetchmail/patches/patch-fetchmail_c
+++ /dev/null
@@ -1,15 +0,0 @@
---- fetchmail-6.3.26.orig/fetchmail.c 2013-04-23 22:00:45.000000000 +0200
-+++ fetchmail-6.3.26/fetchmail.c 2016-09-29 16:00:20.683625569 +0200
-@@ -263,6 +263,12 @@ int main(int argc, char **argv)
- #ifdef SSL_ENABLE
- "+SSL"
- #endif
-+#if HAVE_DECL_SSLV2_CLIENT_METHOD + 0 == 0
-+ "-SSLv2"
-+#endif
-+#if HAVE_DECL_SSLV3_CLIENT_METHOD + 0 == 0
-+ "-SSLv3"
-+#endif
- #ifdef OPIE_ENABLE
- "+OPIE"
- #endif /* OPIE_ENABLE */
diff --git a/package/fetchmail/patches/patch-mxget_c b/package/fetchmail/patches/patch-mxget_c
deleted file mode 100644
index 2dd74e8a3..000000000
--- a/package/fetchmail/patches/patch-mxget_c
+++ /dev/null
@@ -1,127 +0,0 @@
-$Id$
---- fetchmail-6.3.9.orig/mxget.c 2007-06-10 10:32:47.000000000 +0200
-+++ fetchmail-6.3.9/mxget.c 2009-06-12 22:24:29.000000000 +0200
-@@ -56,6 +56,123 @@
- /* minimum possible size of MX record in packet */
- #define MIN_MX_SIZE 8 /* corresp to "a.com 0" w/ terminating space */
-
-+/* from bind9 package: */
-+/*
-+Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
-+Copyright (C) 1996-2003 Internet Software Consortium.
-+
-+Permission to use, copy, modify, and distribute this software for any
-+purpose with or without fee is hereby granted, provided that the above
-+copyright notice and this permission notice appear in all copies.
-+
-+THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-+AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-+PERFORMANCE OF THIS SOFTWARE.
-+
-+$Id: COPYRIGHT,v 1.9.18.3 2007/01/08 02:41:59 marka Exp $
-+
-+Portions Copyright (C) 1996-2001 Nominum, Inc.
-+
-+Permission to use, copy, modify, and distribute this software for any
-+purpose with or without fee is hereby granted, provided that the above
-+copyright notice and this permission notice appear in all copies.
-+
-+THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES
-+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR
-+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-+OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+*/
-+#define NS_TYPE_ELT 0x40 /*%< EDNS0 extended label
-+type
-+*/
-+#define NS_CMPRSFLGS 0xc0 /*%< Flag bits indicating name compression. */
-+#define DNS_LABELTYPE_BITSTRING 0x41
-+static int
-+labellen(const u_char *lp)
-+{
-+ int bitlen;
-+ u_char l = *lp;
-+
-+ if ((l & NS_CMPRSFLGS) == NS_CMPRSFLGS) {
-+ /* should be avoided by the caller */
-+ return(-1);
-+ }
-+
-+ if ((l & NS_CMPRSFLGS) == NS_TYPE_ELT) {
-+ if (l == DNS_LABELTYPE_BITSTRING) {
-+ if ((bitlen = *(lp + 1)) == 0)
-+ bitlen = 256;
-+ return((bitlen + 7 ) / 8 + 1);
-+ }
-+ return(-1); /*%< unknwon ELT */
-+ }
-+ return(l);
-+}
-+/*%
-+ * Advance *ptrptr to skip over the compressed name it points at.
-+ *
-+ * return:
-+ *\li 0 on success, -1 (with errno set) on failure.
-+ */
-+int
-+ns_name_skip(const u_char **ptrptr, const u_char *eom)
-+{
-+ const u_char *cp;
-+ u_int n;
-+ int l;
-+
-+ cp = *ptrptr;
-+ while (cp < eom && (n = *cp++) != 0) {
-+ /* Check for indirection. */
-+ switch (n & NS_CMPRSFLGS) {
-+ case 0: /*%< normal case, n == len */
-+ cp += n;
-+ continue;
-+ case NS_TYPE_ELT: /*%< EDNS0 extended label */
-+ if ((l = labellen(cp - 1)) < 0) {
-+// errno = EMSGSIZE; /*%< XXX */
-+ return(-1);
-+ }
-+ cp += l;
-+ continue;
-+ case NS_CMPRSFLGS: /*%< indirection */
-+ cp++;
-+ break;
-+ default: /*%< illegal type */
-+// errno = EMSGSIZE;
-+ return (-1);
-+ }
-+ break;
-+ }
-+ if (cp > eom) {
-+// errno = EMSGSIZE;
-+ return (-1);
-+ }
-+ *ptrptr = cp;
-+ return (0);
-+}
-+
-+/*%
-+ * Skip over a compressed domain name. Return the size or -1.
-+ */
-+int
-+dn_skipname(const u_char *ptr, const u_char *eom) {
-+ const u_char *saveptr = ptr;
-+
-+ if (ns_name_skip(&ptr, eom) == -1)
-+ return (-1);
-+ return (ptr - saveptr);
-+}
-+/* End from Bind9 package */
-+
-+
- struct mxentry *getmxrecords(const char *name)
- /* get MX records for given host */
- {
diff --git a/package/fetchmail/patches/patch-socket_c b/package/fetchmail/patches/patch-socket_c
index 54f6ff27a..a4e3f2dbf 100644
--- a/package/fetchmail/patches/patch-socket_c
+++ b/package/fetchmail/patches/patch-socket_c
@@ -1,20 +1,20 @@
---- fetchmail-6.3.26.orig/socket.c 2013-04-23 22:00:45.000000000 +0200
-+++ fetchmail-6.3.26/socket.c 2016-09-29 16:00:20.683625569 +0200
-@@ -910,11 +910,16 @@ int SSLOpen(int sock, char *mycert, char
- #if HAVE_DECL_SSLV2_CLIENT_METHOD + 0 > 0
- _ctx[sock] = SSL_CTX_new(SSLv2_client_method());
- #else
-- report(stderr, GT_("Your operating system does not support SSLv2.\n"));
-+ report(stderr, GT_("Your OpenSSL version does not support SSLv2.\n"));
- return -1;
+--- fetchmail-6.4.23.orig/socket.c 2021-08-28 11:13:58.000000000 +0200
++++ fetchmail-6.4.23/socket.c 2021-11-12 23:58:36.082986247 +0100
+@@ -966,17 +966,9 @@ static int OSSL10X_proto_version_logic(i
+ report(stderr, GT_("Your OpenSSL version does not support TLS v1.2.\n"));
+ return -1;
#endif
- } else if(!strcasecmp("ssl3",myproto)) {
-+#if HAVE_DECL_SSLV3_CLIENT_METHOD + 0 > 0
- _ctx[sock] = SSL_CTX_new(SSLv3_client_method());
-+#else
-+ report(stderr, GT_("Your OpenSSL version does not support SSLv3.\n"));
-+ return -1;
-+#endif
- } else if(!strcasecmp("tls1",myproto)) {
- _ctx[sock] = SSL_CTX_new(TLSv1_client_method());
- } else if (!strcasecmp("ssl23",myproto)) {
+-#if defined(TLS1_3_VERSION)
+- } else if (!strcasecmp("tls1.3", *myproto)) {
+- _ctx[sock] = SSL_CTX_new(TLSv1_3_client_method());
+- } else if (!strcasecmp("tls1.3+", *myproto)) {
+- *myproto = NULL;
+- *avoid_ssl_versions |= SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 | SSL_OP_NO_TLSv1_2;
+-#else
+ } else if(!strcasecmp("tls1.3",*myproto) || !strcasecmp("tls1.3+", *myproto)) {
+ report(stderr, GT_("Your OpenSSL version does not support TLS v1.3.\n"));
+ return -1;
+-#endif
+ } else if (!strcasecmp("ssl23", *myproto)
+ || 0 == strcasecmp("auto", *myproto))
+ {
diff --git a/package/ffmpeg/Makefile b/package/ffmpeg/Makefile
index ddb3e72e3..8c00cdef4 100644
--- a/package/ffmpeg/Makefile
+++ b/package/ffmpeg/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= ffmpeg
-PKG_VERSION:= 3.4.2
-PKG_RELEASE:= 2
-PKG_HASH:= eb0370bf223809b9ebb359fed5318f826ac038ce77933b3afd55ab1a0a21785a
+PKG_VERSION:= 6.1.1
+PKG_RELEASE:= 1
+PKG_HASH:= 5e3133939a61ef64ac9b47ffd29a5ea6e337a4023ef0ad972094b4da844e3a20
PKG_DESCR:= record, convert and stream audio & video
PKG_SECTION:= libs/video
PKG_NEEDS:= threads
@@ -17,13 +17,19 @@ PKG_SITES:= http://www.ffmpeg.org/releases/
PKG_LIBNAME:= libffmpeg
PKG_OPTS:= dev
-PKG_SUBPKGS:= LIBFFMPEG FFSERVER FFPROBE FFMPEG
+PKG_CHOICES_FFMPEG:= WITH_LIBRESSL WITH_OPENSSL
+PKGCD_WITH_LIBRESSL:= use libressl for crypto
+PKGCS_WITH_LIBRESSL:= libressl ca-certificates
+PKGCB_WITH_LIBRESSL:= libressl
+PKGCD_WITH_OPENSSL:= use libopenssl for crypto
+PKGCS_WITH_OPENSSL:= libopenssl ca-certificates
+PKGCB_WITH_OPENSSL:= openssl
+
+
+PKG_SUBPKGS:= LIBFFMPEG FFPROBE FFMPEG
PKGSD_FFMPEG:= video converter
PKGSC_FFMPEG:= mm/video
PKGSS_FFMPEG:= libffmpeg
-PKGSD_FFSERVER:= streaming server
-PKGSC_FFSERVER:= mm/video
-PKGSS_FFSERVER:= libffmpeg
PKGSD_FFPROBE:= simple multimedia stream analyzer
PKGSC_FFPROBE:= mm/video
PKGSS_FFPROBE:= libffmpeg
@@ -97,7 +103,6 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LIBFFMPEG,libffmpeg,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_FDEPENDS),$(PKGSD_LIBFFMPEG),$(PKGSC_LIBFFMPEG),$(PKG_OPTS)))
$(eval $(call PKG_template,FFMPEG,ffmpeg,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_FFMPEG),$(PKGSC_FFMPEG)))
-$(eval $(call PKG_template,FFSERVER,ffserver,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_FFSERVER),$(PKGSC_FFSERVER)))
$(eval $(call PKG_template,FFPROBE,ffprobe,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_FFPROBE),$(PKGSC_FFPROBE)))
ifeq ($(ADK_DEBUG),y)
@@ -106,6 +111,7 @@ else
TARGET_CFLAGS:= $(subst Os,O2,$(TARGET_CFLAGS))
endif
TARGET_CPPFLAGS+= -D_POSIX_SOURCE -D_GNU_SOURCE
+TARGET_LDFLAGS+= -latomic
ifeq ($(ADK_TARGET_CPU_WITH_MMX),y)
CONFIGURE_CPU_OPTS+= --enable-mmx
@@ -171,6 +177,8 @@ endif
ifeq ($(ADK_TARGET_ARCH_ARM_WITH_NEON),y)
CONFIGURE_CPU_OPTS+= --enable-neon
+else ifeq ($(ADK_TARGET_ARCH_AARCH64),y)
+CONFIGURE_CPU_OPTS+= --enable-neon
else
CONFIGURE_CPU_OPTS+= --disable-neon
endif
@@ -252,14 +260,6 @@ ffmpeg-install:
$(INSTALL_BIN) $(WRKINST)/usr/bin/ffmpeg \
$(IDIR_FFMPEG)/usr/bin
-ffserver-install:
- $(INSTALL_DIR) $(IDIR_FFSERVER)/etc
- $(INSTALL_DATA) $(WRKBUILD)/doc/ffserver.conf \
- $(IDIR_FFSERVER)/etc
- $(INSTALL_DIR) $(IDIR_FFSERVER)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/ffserver \
- $(IDIR_FFSERVER)/usr/bin
-
ffprobe-install:
$(INSTALL_DIR) $(IDIR_FFPROBE)/usr/bin
$(INSTALL_BIN) $(WRKINST)/usr/bin/ffprobe \
diff --git a/package/ffmpeg/patches/patch-libavcodec_arm_synth_filter_vfp_S b/package/ffmpeg/patches/patch-libavcodec_arm_synth_filter_vfp_S
deleted file mode 100644
index 1472699be..000000000
--- a/package/ffmpeg/patches/patch-libavcodec_arm_synth_filter_vfp_S
+++ /dev/null
@@ -1,93 +0,0 @@
---- ffmpeg-3.4.1.orig/libavcodec/arm/synth_filter_vfp.S 2016-03-29 04:25:11.000000000 +0200
-+++ ffmpeg-3.4.1/libavcodec/arm/synth_filter_vfp.S 2017-07-27 02:09:00.326946211 +0200
-@@ -1,6 +1,5 @@
- /*
- * Copyright (c) 2013 RISC OS Open Ltd
-- * Author: Ben Avison <bavison@riscosopen.org>
- *
- * This file is part of FFmpeg.
- *
-@@ -17,6 +16,8 @@
- * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+ *
-+ * Author: Ben Avison <bavison@riscosopen.org>
- */
-
- #include "libavutil/arm/asm.S"
-@@ -124,7 +125,7 @@ function ff_synth_filter_float_vfp, expo
- push {r3-r7,lr}
- vpush {s16-s31}
- ldr lr, [P_SB_OFF]
-- add a2, ORIG_P_SB, lr, lsl #2 @ calculate synth_buf to pass to imdct_half
-+ add a2, ORIG_P_SB, lr, LSL #2 @ calculate synth_buf to pass to imdct_half
- mov P_SB, a2 @ and keep a copy for ourselves
- bic J_WRAP, lr, #63 @ mangled to make testing for wrap easier in inner loop
- sub lr, lr, #32
-@@ -132,12 +133,12 @@ function ff_synth_filter_float_vfp, expo
- str lr, [P_SB_OFF] @ rotate offset, modulo buffer size, ready for next call
- ldr a3, [sp, #(16+6+2)*4] @ fetch in from stack, to pass to imdct_half
- VFP vmov s16, SCALE @ imdct_half is free to corrupt s0, but it contains one of our arguments in hardfp case
-- bl X(ff_imdct_half_vfp)
-+ bl ff_imdct_half_c
- VFP vmov SCALE, s16
-
-- fmrx OLDFPSCR, FPSCR
-+ vmrs OLDFPSCR, FPSCR
- ldr lr, =0x03030000 @ RunFast mode, short vectors of length 4, stride 1
-- fmxr FPSCR, lr
-+ vmsr FPSCR, lr
- ldr P_SB2_DN, [sp, #16*4]
- ldr P_WIN_DN, [sp, #(16+6+0)*4]
- ldr P_OUT_DN, [sp, #(16+6+1)*4]
-@@ -196,48 +197,10 @@ NOVFP vldr SCALE, [sp, #(16+6+3)*4]
- vstmdb P_SB2_DN!, {VD0-VD3}
- bne 1b
-
-- fmxr FPSCR, OLDFPSCR
-+ vmsr FPSCR, OLDFPSCR
- vpop {s16-s31}
- pop {r3-r7,pc}
- endfunc
-
-- .unreq IMDCT
-- .unreq ORIG_P_SB
-- .unreq P_SB_OFF
-- .unreq I
-- .unreq P_SB2_UP
-- .unreq OLDFPSCR
-- .unreq P_SB2_DN
-- .unreq P_WIN_DN
-- .unreq P_OUT_DN
-- .unreq P_SB
-- .unreq J_WRAP
-- .unreq P_WIN_UP
-- .unreq P_OUT_UP
--
-- .unreq SCALE
-- .unreq SBUF_DAT_REV0
-- .unreq SBUF_DAT_REV1
-- .unreq SBUF_DAT_REV2
-- .unreq SBUF_DAT_REV3
-- .unreq VA0
-- .unreq VA3
-- .unreq VB0
-- .unreq VB3
-- .unreq VC0
-- .unreq VC3
-- .unreq VD0
-- .unreq VD3
-- .unreq SBUF_DAT0
-- .unreq SBUF_DAT1
-- .unreq SBUF_DAT2
-- .unreq SBUF_DAT3
-- .unreq SBUF_DAT_ALT0
-- .unreq SBUF_DAT_ALT1
-- .unreq SBUF_DAT_ALT2
-- .unreq SBUF_DAT_ALT3
-- .unreq WIN_DN_DAT0
-- .unreq WIN_UP_DAT0
--
- .align 3
- zero: .word 0, 0
diff --git a/package/file/Makefile b/package/file/Makefile
index 8a8007765..996be679e 100644
--- a/package/file/Makefile
+++ b/package/file/Makefile
@@ -4,13 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= file
-PKG_VERSION:= 5.33
+PKG_VERSION:= 5.45
PKG_RELEASE:= 1
-PKG_HASH:= 1c52c8c3d271cd898d5511c36a68059cda94036111ab293f01f83c3525b737c6
+PKG_HASH:= fc97f51029bb0e2c9f4e3bffefdaf678f0e039ee872b9de5c002a6d09c784d82
PKG_DESCR:= file type guesser
PKG_SECTION:= sys/utils
-PKG_BUILDDEP:= file-host
PKG_DEPENDS:= libmagic magic
+PKG_BUILDDEP:= file-host
PKG_URL:= http://www.darwinsys.com/file
PKG_SITES:= ftp://ftp.astron.com/pub/file/
PKG_LIBNAME:= libmagic
@@ -47,9 +47,9 @@ file-install:
${INSTALL_BIN} ${WRKINST}/usr/bin/file ${IDIR_FILE}/usr/bin
magic-install:
- ${INSTALL_DIR} ${IDIR_LIBMAGIC}/usr/share/misc
+ ${INSTALL_DIR} ${IDIR_MAGIC}/usr/share/misc
${INSTALL_DATA} ${WRKINST}/usr/share/misc/magic.mgc \
- ${IDIR_LIBMAGIC}/usr/share/misc
+ ${IDIR_MAGIC}/usr/share/misc
libmagic-install:
${INSTALL_DIR} ${IDIR_LIBMAGIC}/usr/lib
diff --git a/package/firefox/Makefile b/package/firefox/Makefile
index 9f108c604..eb3cfeb9e 100644
--- a/package/firefox/Makefile
+++ b/package/firefox/Makefile
@@ -4,139 +4,51 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= firefox
-PKG_VERSION:= 50.1.0
+PKG_VERSION:= 108.0.1
PKG_RELEASE:= 1
-PKG_HASH:= 54bb9bccbf9eed0c7715ae7f45330bf41ce24b756f5fdecb380e06709a6ac5a4
-PKG_DESCR:= graphical webbrowser
-PKG_SECTION:= x11/apps
-PKG_DEPENDS:= alsa-lib glib libgtk2 libgtk3 libpng libtiff libxcursor libffi
-PKG_DEPENDS+= nspr nss libjpeg-turbo libatk pango cairo libxt libx11 hicolor-icon-theme
-PKG_DEPENDS+= libxdamage libxfixes libidl libsqlite libxcomposite gdk-pixbuf libdbus
-PKG_DEPENDS+= harfbuzz mesa libvpx libbz2 ca-certificates libevent at-spi2-atk at-spi2-core
-PKG_BUILDDEP:= alsa-lib glib libgtk2 libgtk3 libIDL libX11 mesa libtiff gdk-pixbuf
-PKG_BUILDDEP+= nspr nss libjpeg-turbo libXt fontconfig sqlite atk libpng hicolor-icon-theme
-PKG_BUILDDEP+= libvpx pango bzip2 libevent bzip2-host python2-host yasm-host
-PKG_BUILDDEP+= zip-host autoconf-old-host
-PKG_NEEDS:= threads c++ intl
-PKG_URL:= http://www.mozilla.org/
-PKG_SITES:= http://releases.mozilla.org/pub/mozilla.org/firefox/releases/$(PKG_VERSION)/source/
+PKG_HASH:= 9821ac130dad01383e03276bf6cc92d41329d351da1fa7fa238168f8890611ea
+PKG_DESCR:= www browser
+PKG_SECTION:= app/browser
+PKG_DEPENDS:= pango libfreetype fontconfig libxcomposite libxcursor
+PKG_DEPENDS+= libgtk3 dbus-glib alsa-lib libatk harfbuzz
+PKG_BUILDDEP:= python3-host nodejs-host pango freetype fontconfig libXcomposite
+PKG_BUILDDEP+= libXcursor libgtk3 dbus-glib alsa-lib atk harfbuzz
+PKG_SITES:= https://ftp.mozilla.org/pub/firefox/releases/$(PKG_VERSION)/source/
-PKG_CFLINE_FIREFOX:= select ADK_PACKAGE_CAIRO_WITH_TEE@
-PKG_CFLINE_FIREFOX+= select ADK_PACKAGE_CAIRO_WITH_XRENDER
+PKG_ARCH_DEPENDS:= aarch64
-PKG_ARCH_DEPENDS:= arm mips mips64 x86 x86_64
-PKG_SYSTEM_DEPENDS:= solidrun-imx6 ibm-x40 lemote-yeelong qemu-i686 qemu-x86_64 raspberry-pi raspberry-pi2 raspberry-pi3 raspberry-pi3p
-
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).source.tar.xz
-WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).source.tar.xz
include $(ADK_TOPDIR)/mk/package.mk
-include $(ADK_TOPDIR)/mk/python.mk
$(eval $(call PKG_template,FIREFOX,firefox,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-CONFIG_STYLE:= minimal
-ifeq ($(ADK_DEBUG),y)
-CONFIGURE_ARGS+= --enable-debug
-else
-CONFIGURE_ARGS+= --disable-debug
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+ifeq ($(ADK_TARGET_ARCH),aarch64)
+TARGET_NAME:= aarch64-linux-gnu
endif
+CONFIG_STYLE:= minimal
CONFIGURE_ENV+= CROSS_COMPILE=1 \
- OS_ARCH=Linux \
- OS_TARGET=Linux \
- OS_TEST="$(ADK_TARGET_ARCH)" \
- OS_CXXFLAGS="$(TARGET_CXXFLAGS)" \
- PYTHON="$(PYTHON)" \
- HOST_CC="$(HOST_CC)" \
- HOST_CPPFLAGS="$(HOST_CPPFLAGS)" \
- HOST_CFLAGS="$(HOST_CFLAGS)" \
- HOST_LDFLAGS="$(HOST_LDLAGS)" \
- HOST_CXX="$(HOST_CXX)" \
- HOST_CXXFLAGS="$(HOST_CXXFLAGS)" \
- HOST_RANLIB="ranlib" \
- HOST_AR="ar" \
- ac_cv_sqlite_secure_delete=yes \
- ac_cv_sqlite_threadsafe=yes \
- ac_cv_sqlite_enable_fts3=yes \
- ac_cv_sqlite_enable_unlock_notify=yes \
- ac_cv_sqlite_dbstat_vtab=yes
+ BINDGEN_CFLAGS="--sysroot /usr/$(TARGET_NAME)" \
+ AS="$(GNU_TARGET_NAME)-gcc"
CONFIGURE_ARGS+= --prefix=/usr \
- --target=$(GNU_TARGET_NAME) \
+ --target=$(TARGET_NAME) \
--with-toolchain-prefix=$(GNU_TARGET_NAME)- \
--enable-application=browser \
--enable-official-branding \
- --with-system-zlib \
- --with-system-bz2 \
- --with-system-png \
- --with-system-cairo \
- --with-system-pixman \
- --with-system-jpeg \
- --with-system-nss \
- --with-system-nspr \
- --with-system-libvpx \
- --with-system-libevent=$(STAGING_TARGET_DIR)/usr \
- --disable-tree-freetype \
- --enable-system-ffi \
- --enable-system-sqlite \
- --enable-chrome-format=jar \
- --enable-necko-protocols=all \
- --enable-alsa \
+ --disable-audio-backends \
+ --without-wasm-sandboxed-libraries \
--disable-profiling \
- --disable-jprof \
- --disable-systrace \
- --disable-pulseaudio \
- --disable-gio \
- --disable-gold \
- --disable-gconf \
- --disable-accessibility \
- --disable-dbus \
- --disable-gamepad \
- --disable-strip \
- --disable-install-strip \
- --disable-tests \
- --disable-gnomeui \
- --disable-optimize \
- --disable-necko-wifi \
- --disable-jemalloc \
- --disable-crashreporter \
- --disable-printing \
- --disable-pie \
- --disable-updater \
- --disable-url-classifier \
- --disable-safe-browsing \
- --disable-elf-hack
-
-ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
-CONFIGURE_ARGS+= --disable-ion \
- --disable-webrtc
-TARGET_CFLAGS:= $(subst Os,g3,$(TARGET_CFLAGS))
-else
-CONFIGURE_ARGS+= --enable-webrtc
-endif
-
-XAKE_FLAGS+= CROSS_COMPILE=1 OS_ARCH="Linux" OS_TEST="$(ADK_TARGET_ARCH)" OS_RELEASE="2.6"
-XAKE_FLAGS+= HOST_CC=$(HOST_CC) HOST_LDFLAGS=$(HOST_LDFLAGS)
-XAKE_FLAGS+= ARCHFLAG="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_LDFLAGS) -lnss3 -lnssutil3 -lsmime3 -lssl3 -fPIC"
-
-pre-configure:
- $(SED) '/^freetype\/ftcache.h/a freetype\/ftfntfmt.h' $(WRKSRC)/config/system-headers
-
-post-configure:
- touch $(WRKSRC)/configure
- touch $(WRKBUILD)/config.status
+ --with-clang-path=/usr/bin/clang-13
firefox-install:
$(INSTALL_DIR) $(IDIR_FIREFOX)/usr/bin
- $(INSTALL_DIR) $(IDIR_FIREFOX)/usr/lib
- $(CP) $(WRKINST)/usr/lib/firefox-$(PKG_VERSION) \
- $(IDIR_FIREFOX)/usr/lib
- $(INSTALL_BIN) ./files/firefox \
+ $(INSTALL_DIR) $(IDIR_FIREFOX)/usr/lib/firefox
+ $(CP) $(WRKINST)/usr/bin/firefox \
$(IDIR_FIREFOX)/usr/bin
-ifeq ($(ADK_APPLIANCE_FIREFOX),y)
- $(INSTALL_DIR) $(IDIR_FIREFOX)/etc
- $(CP) ./files/xinitrc \
- $(IDIR_FIREFOX)/etc
-endif
+ $(CP) $(WRKINST)/usr/lib/firefox/* \
+ $(IDIR_FIREFOX)/usr/lib/firefox
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/firefox/files/firefox b/package/firefox/files/firefox
deleted file mode 100755
index 4b93d8e8d..000000000
--- a/package/firefox/files/firefox
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-env LD_LIBRARY_PATH=/usr/lib/firefox-50.1.0 /usr/lib/firefox-50.1.0/firefox
diff --git a/package/firefox/files/firefox.init b/package/firefox/files/firefox.init
deleted file mode 100755
index fe6104721..000000000
--- a/package/firefox/files/firefox.init
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/sh
-#PKG firefox
-#INIT 98
-. /etc/rc.conf
-
-case $1 in
-autostop) ;;
-autostart)
- test x"${firefox:-NO}" = x"NO" && exit 0
- test x"$firefox" = x"DAEMON" && test -x /bin/mksh && exec mksh -T- $0 start
- exec sh $0 start
- ;;
-start)
- if [ ! -d /data/firefox ];then
- mkdir -p /data/firefox
- chown firefox /data/firefox
- fi
- su - firefox -c startx
- ;;
-stop)
- ;;
-restart)
- sh $0 stop
- sh $0 start
- ;;
-*)
- echo "Usage: $0 {start | stop | restart}"
- exit 1
- ;;
-esac
-exit $?
diff --git a/package/firefox/files/firefox.postinst b/package/firefox/files/firefox.postinst
deleted file mode 100644
index a9be54701..000000000
--- a/package/firefox/files/firefox.postinst
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-. $IPKG_INSTROOT/etc/functions.sh
-add_rcconf firefox NO
-gid=$(get_next_gid)
-add_group firefox $gid
-add_user firefox $(get_next_uid) $gid /data/firefox /bin/sh
diff --git a/package/firefox/files/mozconfig b/package/firefox/files/mozconfig
deleted file mode 100644
index 0b9caf6ca..000000000
--- a/package/firefox/files/mozconfig
+++ /dev/null
@@ -1,37 +0,0 @@
-ac_add_options --disable-dbus
-ac_add_options --disable-necko-wifi
-ac_add_options --disable-pulseaudio
-ac_add_options --disable-gconf
-ac_add_options --enable-system-sqlite
-ac_add_options --with-system-libevent
-ac_add_options --with-system-libvpx
-ac_add_options --with-system-nspr
-ac_add_options --with-system-nss
-ac_add_options --with-system-icu
-# Stripping is now enabled by default.
-# Uncomment these lines if you need to run a debugger
-ac_add_options --disable-strip
-ac_add_options --disable-install-strip
-ac_add_options --disable-crashreporter
-ac_add_options --disable-updater
-ac_add_options --disable-tests
-ac_add_options --disable-optimize
-
-ac_add_options --enable-gio
-ac_add_options --enable-official-branding
-ac_add_options --enable-safe-browsing
-ac_add_options --enable-url-classifier
-
-# From firefox-40, using system cairo causes firefox to crash
-# frequently when it is doing background rendering in a tab.
-#ac_add_options --enable-system-cairo
-ac_add_options --enable-system-ffi
-ac_add_options --enable-system-pixman
-
-ac_add_options --with-pthreads
-
-ac_add_options --with-system-bz2
-ac_add_options --with-system-jpeg
-ac_add_options --with-system-png
-ac_add_options --with-system-zlib
-
diff --git a/package/firefox/files/xinitrc b/package/firefox/files/xinitrc
deleted file mode 100644
index cdc71236c..000000000
--- a/package/firefox/files/xinitrc
+++ /dev/null
@@ -1 +0,0 @@
-exec firefox
diff --git a/package/firefox/patches/patch-gfx_angle_src_common_angleutils_cpp b/package/firefox/patches/patch-gfx_angle_src_common_angleutils_cpp
deleted file mode 100644
index 77b0ac628..000000000
--- a/package/firefox/patches/patch-gfx_angle_src_common_angleutils_cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- firefox-49.0.1.orig/gfx/angle/src/common/angleutils.cpp 2016-07-25 22:22:05.000000000 +0200
-+++ firefox-49.0.1/gfx/angle/src/common/angleutils.cpp 2016-10-01 23:24:47.412037504 +0200
-@@ -11,6 +11,7 @@
-
- #include <limits>
- #include <vector>
-+#include <cstdio>
-
- namespace angle
- {
diff --git a/package/firefox/patches/patch-old-configure_in b/package/firefox/patches/patch-old-configure_in
deleted file mode 100644
index 2d4d13b9c..000000000
--- a/package/firefox/patches/patch-old-configure_in
+++ /dev/null
@@ -1,10 +0,0 @@
---- firefox-49.0.1.orig/old-configure.in 2016-09-05 22:12:50.000000000 +0200
-+++ firefox-49.0.1/old-configure.in 2016-10-01 23:25:33.657828298 +0200
-@@ -6,7 +6,6 @@ dnl file, You can obtain one at http://m
-
- dnl Process this file with autoconf to produce a configure script.
- dnl ========================================================
--AC_PREREQ(2.13)
- AC_INIT(config/config.mk)
- AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
- AC_CANONICAL_SYSTEM
diff --git a/package/firefox/patches/patch-toolkit_crashreporter_google-breakpad_src_common_linux_dump_symbols_cc b/package/firefox/patches/patch-toolkit_crashreporter_google-breakpad_src_common_linux_dump_symbols_cc
deleted file mode 100644
index 3cc0045eb..000000000
--- a/package/firefox/patches/patch-toolkit_crashreporter_google-breakpad_src_common_linux_dump_symbols_cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- mozilla-release.orig/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2013-09-11 01:15:25.000000000 +0200
-+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/common/linux/dump_symbols.cc 2013-10-24 12:01:36.000000000 +0200
-@@ -46,6 +46,8 @@
- #include <sys/stat.h>
- #include <unistd.h>
-
-+#include <libgen.h>
-+
- #include <iostream>
- #include <set>
- #include <string>
diff --git a/package/firefox/patches/patch-toolkit_crashreporter_google-breakpad_src_common_stabs_reader_cc b/package/firefox/patches/patch-toolkit_crashreporter_google-breakpad_src_common_stabs_reader_cc
deleted file mode 100644
index e8f7afc99..000000000
--- a/package/firefox/patches/patch-toolkit_crashreporter_google-breakpad_src_common_stabs_reader_cc
+++ /dev/null
@@ -1,34 +0,0 @@
---- mozilla-release.orig/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc 2013-09-11 01:15:25.000000000 +0200
-+++ mozilla-release/toolkit/crashreporter/google-breakpad/src/common/stabs_reader.cc 2013-10-24 12:08:16.000000000 +0200
-@@ -34,13 +34,31 @@
- #include "common/stabs_reader.h"
-
- #include <assert.h>
-+#if defined(__GLIBC__) && !defined(__UCLIBC__)
- #include <stab.h>
-+#else
-+#define __define_stab(NAME, CODE, STRING) NAME=CODE,
-+enum __stab_debug_code
-+{
-+__define_stab (N_FUN, 0x24, "FUN")
-+__define_stab (N_SLINE, 0x44, "SLINE")
-+__define_stab (N_SOL, 0x84, "SOL")
-+__define_stab (N_SO, 0x64, "SO")
-+LAST_UNUSED_STAB_CODE
-+};
-+#undef __define_stab
-+#endif
- #include <string.h>
-
- #include <string>
-
- #include "common/using_std_string.h"
-
-+#ifndef N_UNDF
-+#define N_UNDF 0
-+#endif
-+
-+
- using std::vector;
-
- namespace google_breakpad {
diff --git a/package/firefox/patches/patch-tools_profiler_core_platform-linux_cc b/package/firefox/patches/patch-tools_profiler_core_platform-linux_cc
deleted file mode 100644
index da8f08abf..000000000
--- a/package/firefox/patches/patch-tools_profiler_core_platform-linux_cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- firefox-42.0.orig/tools/profiler/core/platform-linux.cc 2015-10-29 23:18:01.000000000 +0100
-+++ firefox-42.0/tools/profiler/core/platform-linux.cc 2015-12-17 05:41:35.091485672 +0100
-@@ -57,7 +57,7 @@
- #include <fcntl.h> // open
- #include <unistd.h> // sysconf
- #include <semaphore.h>
--#ifdef __GLIBC__
-+#if defined(__GLIBC__) && !defined(__UCLIBC__)
- #include <execinfo.h> // backtrace, backtrace_symbols
- #endif // def __GLIBC__
- #include <strings.h> // index
diff --git a/package/firefox/patches/patch-tools_profiler_lul_LulElf_cpp b/package/firefox/patches/patch-tools_profiler_lul_LulElf_cpp
deleted file mode 100644
index 8e50fdbba..000000000
--- a/package/firefox/patches/patch-tools_profiler_lul_LulElf_cpp
+++ /dev/null
@@ -1,12 +0,0 @@
---- firefox-42.0.orig/tools/profiler/lul/LulElf.cpp 2015-10-29 23:18:01.000000000 +0100
-+++ firefox-42.0/tools/profiler/lul/LulElf.cpp 2015-12-17 06:09:09.809776525 +0100
-@@ -66,6 +66,9 @@
- #include "LulElfInt.h"
- #include "LulMainInt.h"
-
-+#ifndef NT_GNU_BUILD_ID
-+#define NT_GNU_BUILD_ID 3
-+#endif
-
- #if defined(LUL_PLAT_arm_android) && !defined(SHT_ARM_EXIDX)
- // bionic and older glibsc don't define it
diff --git a/package/firefox/patches/patch-xpcom_base_nsMemoryReporterManager_cpp b/package/firefox/patches/patch-xpcom_base_nsMemoryReporterManager_cpp
deleted file mode 100644
index 44c7c5f54..000000000
--- a/package/firefox/patches/patch-xpcom_base_nsMemoryReporterManager_cpp
+++ /dev/null
@@ -1,18 +0,0 @@
---- firefox-49.0.1.orig/xpcom/base/nsMemoryReporterManager.cpp 2016-09-05 22:12:57.000000000 +0200
-+++ firefox-49.0.1/xpcom/base/nsMemoryReporterManager.cpp 2016-10-01 23:24:47.432038288 +0200
-@@ -157,6 +157,7 @@ ResidentUniqueDistinguishedAmount(int64_
- nsresult
- SystemHeapSize(int64_t* aSizeOut)
- {
-+#if defined(__GLIBC__) && !defined(__UCLIBC__)
- struct mallinfo info = mallinfo();
-
- // The documentation in the glibc man page makes it sound like |uordblks|
-@@ -170,6 +171,7 @@ SystemHeapSize(int64_t* aSizeOut)
- // shouldn't be a problem. Nonetheless, cast the |int|s to |size_t| before
- // adding them to provide a small amount of extra overflow protection.
- *aSizeOut = size_t(info.hblkhd) + size_t(info.uordblks);
-+#endif
- return NS_OK;
- }
- #endif
diff --git a/package/firefox/patches/patch-xpcom_ds_nsMathUtils_h b/package/firefox/patches/patch-xpcom_ds_nsMathUtils_h
deleted file mode 100644
index 3d4d0546b..000000000
--- a/package/firefox/patches/patch-xpcom_ds_nsMathUtils_h
+++ /dev/null
@@ -1,21 +0,0 @@
---- firefox-45.0.orig/xpcom/ds/nsMathUtils.h 2016-03-03 22:48:07.000000000 +0100
-+++ firefox-45.0/xpcom/ds/nsMathUtils.h 2016-03-13 21:15:29.543246177 +0100
-@@ -103,12 +103,16 @@ NS_finite(double aNum)
- #ifdef WIN32
- // NOTE: '!!' casts an int to bool without spamming MSVC warning C4800.
- return !!_finite(aNum);
--#elif defined(XP_DARWIN)
-+#elif defined(XP_DARWIN) || defined(__UCLIBC__)
- // Darwin has deprecated |finite| and recommends |isfinite|. The former is
- // not present in the iOS SDK.
- return std::isfinite(aNum);
- #else
-- return finite(aNum);
-+#ifdef _GLIBCXX_CMATH
-+ return std::isfinite(aNum);
-+#else
-+ return isfinite(aNum);
-+#endif
- #endif
- }
-
diff --git a/package/firmware-imx/Makefile b/package/firmware-imx/Makefile
index 8f085189d..e5bccdd2d 100644
--- a/package/firmware-imx/Makefile
+++ b/package/firmware-imx/Makefile
@@ -12,7 +12,7 @@ PKG_SECTION:= sys/firmware
PKG_URL:= http://www.freescale.com/
PKG_SITES:= http://www.freescale.com/lgfiles/NMG/MAD/YOCTO/
-PKG_SYSTEM_DEPENDS:= solidrun-imx6
+PKG_SYSTEM_DEPENDS:= phytec-imx6 solidrun-imx6
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.bin
diff --git a/package/flac/Makefile b/package/flac/Makefile
index 6ecb5ace9..d6a89159d 100644
--- a/package/flac/Makefile
+++ b/package/flac/Makefile
@@ -4,14 +4,14 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= flac
-PKG_VERSION:= 1.3.2
+PKG_VERSION:= 1.3.4
PKG_RELEASE:= 1
-PKG_HASH:= 91cfc3ed61dc40f47f050a109b08610667d73477af6ef36dcad31c31a4a8d53f
+PKG_HASH:= 8ff0607e75a322dd7cd6ec48f4f225471404ae2730d0ea945127b1355155e737
PKG_DESCR:= free lossless audio codec utility
PKG_SECTION:= mm/audio
PKG_DEPENDS:= libflac
PKG_URL:= https://xiph.org/flac/
-PKG_SITES:= http://downloads.xiph.org/releases/flac/
+PKG_SITES:= https://ftp.osuosl.org/pub/xiph/releases/flac/
PKG_LIBNAME:= libflac
PKG_OPTS:= dev
@@ -25,6 +25,7 @@ $(eval $(call PKG_template,FLAC,flac,${PKG_VERSION}-${PKG_RELEASE}))
$(eval $(call PKG_template,LIBFLAC,libflac,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
CONFIGURE_ARGS+= --enable-asm-optimizations \
+ --disable-stack-smash-protection \
--disable-xmms-plugin \
--disable-cpplibs \
--disable-ogg
diff --git a/package/flashrom/Makefile b/package/flashrom/Makefile
new file mode 100644
index 000000000..fc56a3828
--- /dev/null
+++ b/package/flashrom/Makefile
@@ -0,0 +1,30 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${ADK_TOPDIR}/rules.mk
+
+PKG_NAME:= flashrom
+PKG_VERSION:= v1.2
+PKG_RELEASE:= 1
+PKG_HASH:= e1f8d95881f5a4365dfe58776ce821dfcee0f138f75d0f44f8a3cd032d9ea42b
+PKG_DESCR:= utility for identifying, reading, writing, verifying and erasing flash chips.
+PKG_SECTION:= sys/hw
+PKG_DEPENDS:= pciutils libusb zlib
+PKG_BUILDDEP:= pciutils libusb zlib
+PKG_URL:= https://www.flashrom.org/Flashrom
+PKG_SITES:= https://download.flashrom.org/releases/
+
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,FLASHROM,flashrom,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+CONFIG_STYLE:= manual
+TARGET_CFLAGS+= -I$(STAGING_TARGET_DIR)/usr/include/libusb-1.0
+
+flashrom-install:
+ ${INSTALL_DIR} ${IDIR_FLASHROM}/usr/sbin
+ ${INSTALL_BIN} ${WRKINST}/usr/local/sbin/flashrom ${IDIR_FLASHROM}/usr/sbin/
+
+include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/flask-login/Makefile b/package/flask-login/Makefile
new file mode 100644
index 000000000..0bc3d32ba
--- /dev/null
+++ b/package/flask-login/Makefile
@@ -0,0 +1,39 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+# always use tab spaces as separator, no spaces
+PKG_NAME:= Flask-Login
+PKG_VERSION:= 0.5.0
+PKG_RELEASE:= 1
+PKG_HASH:= 6d33aef15b5bcead780acc339464aae8a6e28f13c90d8b1cf9de8b549d1c0b4b
+PKG_DESCR:= login management for flask
+PKG_SECTION:= dev/python
+PKG_DEPENDS:= flask
+PKG_URL:= https://pypi.org/project/Flask-Login
+PKG_SITES:= https://files.pythonhosted.org/packages/f9/01/f6c0a3a654ca125cf9cd273314c03a8bc6a47bf861765c8c1d375e15a28d/
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,FLASK_LOGIN,flask-login,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+include $(ADK_TOPDIR)/mk/python3.mk
+
+do-build:
+ cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR) $(PYTHON) ./setup.py build
+ $(INSTALL_DIR) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages
+ cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR):$(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages $(PYTHON) ./setup.py install --prefix="$(WRKINST)/usr"
+
+do-install:
+ $(INSTALL_DIR) $(IDIR_FLASK_LOGIN)/usr/lib/python$(PYTHON_VERSION)/site-packages
+ $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/Flask_Login* $(IDIR_FLASK_LOGIN)/usr/lib/python$(PYTHON_VERSION)/site-packages/
+ $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/easy-install.pth $(IDIR_FLASK_LOGIN)/usr/lib/python$(PYTHON_VERSION)/site-packages/$(PKG_NAME).pth
+
+# please remove ALL above comments, before commiting
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/flask/Makefile b/package/flask/Makefile
new file mode 100644
index 000000000..073fd60b3
--- /dev/null
+++ b/package/flask/Makefile
@@ -0,0 +1,39 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= Flask
+PKG_VERSION:= 1.1.1
+PKG_RELEASE:= 1
+PKG_HASH:= 13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52
+PKG_DESCR:= flask python web framework
+PKG_SECTION:= dev/python
+PKG_URL:= https://pypi.org/project/Flask/
+PKG_SITES:= https://files.pythonhosted.org/packages/2e/80/3726a729de758513fd3dbc64e93098eb009c49305a97c6751de55b20b694/
+PKG_DEPENDS:= python3 python3-mod-zlib
+PKG_BUILDDEP:= python3
+
+DISTFILES:= Flask-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,FLASK,flask,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+include $(ADK_TOPDIR)/mk/python3.mk
+
+do-build:
+ cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR) $(PYTHON) ./setup.py build
+ $(INSTALL_DIR) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages
+ cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR):$(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages $(PYTHON) ./setup.py install --prefix="$(WRKINST)/usr"
+
+do-install:
+ $(INSTALL_DIR) $(IDIR_FLASK)/usr/lib/python$(PYTHON_VERSION)/site-packages
+ $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/*egg $(IDIR_FLASK)/usr/lib/python$(PYTHON_VERSION)/site-packages/
+ $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/easy-install.pth $(IDIR_FLASK)/usr/lib/python$(PYTHON_VERSION)/site-packages/$(PKG_NAME).pth
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/flask/patches/patch-setup_py b/package/flask/patches/patch-setup_py
new file mode 100644
index 000000000..4ac6c27fb
--- /dev/null
+++ b/package/flask/patches/patch-setup_py
@@ -0,0 +1,37 @@
+--- Flask-1.1.1.orig/setup.py 2019-07-08 19:59:15.000000000 +0200
++++ Flask-1.1.1/setup.py 2020-04-11 10:54:23.217330259 +0200
+@@ -1,8 +1,32 @@
+ import io
+ import re
+
+-from setuptools import find_packages
+-from setuptools import setup
++try:
++ from setuptools import find_packages
++except ImportError:
++ import os
++ from distutils.util import convert_path
++
++ def find_packages(base_path):
++ base_path = convert_path(base_path)
++ found = []
++ for root, dirs, files in os.walk(base_path, followlinks=True):
++ dirs[:] = [d for d in dirs if d[0] != '.' and d not in ('ez_setup', '__pycache__')]
++ relpath = os.path.relpath(root, base_path)
++ parent = relpath.replace(os.sep, '.').lstrip('.')
++ if relpath != '.' and parent not in found:
++ # foo.bar package but no foo package, skip
++ continue
++ for dir in dirs:
++ if os.path.isfile(os.path.join(root, dir, '__init__.py')):
++ package = '.'.join((parent, dir)) if parent else dir
++ found.append(package)
++ return found
++
++try:
++ from setuptools import setup
++except ImportError:
++ from distutils.core import setup
+
+ with io.open("README.rst", "rt", encoding="utf8") as f:
+ readme = f.read()
diff --git a/package/flatbuffers/Makefile b/package/flatbuffers/Makefile
new file mode 100644
index 000000000..f4811d7a8
--- /dev/null
+++ b/package/flatbuffers/Makefile
@@ -0,0 +1,39 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= flatbuffers
+PKG_VERSION:= 2.0.6
+PKG_RELEASE:= 1
+PKG_HASH:= e2dc24985a85b278dd06313481a9ca051d048f9474e0f199e372fea3ea4248c9
+PKG_DESCR:= cross platform serialization library
+PKG_SECTION:= libs/misc
+PKG_BUILDDEP:= flatbuffers-host
+PKG_URL:= https://github.com/google/flatbuffers
+PKG_SITES:= https://github.com/google/flatbuffers/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,FLATBUFFERS,flatbuffers,$(PKG_VERSION)-${PKG_RELEASE}))
+$(eval $(call PKG_template,FLATBUFFERS,flatbuffers,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+HOST_CONFIG_STYLE:= cmake
+CONFIG_STYLE:= cmake
+
+CMAKE_FLAGS+= -DFLATBUFFERS_BUILD_TESTS=OFF \
+ -DFLATBUFFERS_BUILD_FLATC=OFF \
+ -DFLATBUFFERS_BUILD_FLATHASH=OFF
+
+HOST_CMAKE_FLAGS+= -DFLATBUFFERS_BUILD_TESTS=OFF \
+ -DFLATBUFFERS_BUILD_FLATC=ON \
+ -DFLATBUFFERS_BUILD_FLATHASH=ON
+
+flatbuffers-install:
+
+include ${ADK_TOPDIR}/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/flex/Makefile b/package/flex/Makefile
index 56ae93305..5570365ff 100644
--- a/package/flex/Makefile
+++ b/package/flex/Makefile
@@ -12,7 +12,7 @@ PKG_SECTION:= dev/tools
PKG_BUILDDEP:= m4-host
HOST_BUILDDEP:= m4-host bison-host patch-host libtool-host
PKG_URL:= https://github.com/westes/flex
-PKG_SITES:= https://github.com/westes/flex/releases/download/v$(PKG_VERSION)/
+PKG_SITES:= https://github.com/westes/flex/files/981163/
PKG_OPTS:= dev
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
diff --git a/package/flex/patches/patch-configure_ac b/package/flex/patches/patch-configure_ac
index 3660fc684..7a6eea15c 100644
--- a/package/flex/patches/patch-configure_ac
+++ b/package/flex/patches/patch-configure_ac
@@ -1,5 +1,5 @@
---- flex-2.6.4.orig/configure.ac 2017-05-03 13:16:37.000000000 -0700
-+++ flex-2.6.4/configure.ac 2018-05-26 15:05:50.426997650 -0700
+--- flex-2.6.4.orig/configure.ac 2017-05-03 22:16:37.000000000 +0200
++++ flex-2.6.4/configure.ac 2019-09-30 18:05:13.288027994 +0200
@@ -25,8 +25,10 @@
# autoconf requirements and initialization
@@ -20,3 +20,11 @@
AC_PROG_YACC
AS_IF([test "$YACC" != 'bison -y'], [
YACC="\${top_srcdir}/build-aux/missing bison -y"
+@@ -166,6 +166,7 @@ strtol dnl
+ AC_CHECK_FUNCS([dnl
+ pow dnl Used only by "examples/manual/expr"
+ setlocale dnl Needed only if NLS is enabled
++reallocarr dnl NetBSD function. Use reallocarray if not available.
+ reallocarray dnl OpenBSD function. We have replacement if not available.
+ ])
+
diff --git a/package/flex/patches/patch-src_misc_c b/package/flex/patches/patch-src_misc_c
new file mode 100644
index 000000000..f5b425c14
--- /dev/null
+++ b/package/flex/patches/patch-src_misc_c
@@ -0,0 +1,32 @@
+--- flex-2.6.4.orig/src/misc.c 2017-05-03 22:16:37.000000000 +0200
++++ flex-2.6.4/src/misc.c 2019-09-30 18:07:55.823580183 +0200
+@@ -142,7 +142,14 @@ void add_action (const char *new_text)
+ void *allocate_array (int size, size_t element_size)
+ {
+ void *mem;
+-#if HAVE_REALLOCARRAY
++#if HAVE_REALLOCARR
++ mem = NULL;
++ if (reallocarr(&mem, (size_t) size, element_size))
++ flexfatal (_
++ ("memory allocation failed in allocate_array()"));
++
++ return mem;
++#elif HAVE_REALLOCARRAY
+ /* reallocarray has built-in overflow detection */
+ mem = reallocarray(NULL, (size_t) size, element_size);
+ #else
+@@ -659,7 +666,12 @@ char *readable_form (int c)
+ void *reallocate_array (void *array, int size, size_t element_size)
+ {
+ void *new_array;
+-#if HAVE_REALLOCARRAY
++#if HAVE_REALLOCARR
++ if (reallocarr(&array, (size_t) size, element_size))
++ flexfatal (_("attempt to increase array size failed"));
++
++ return array;
++#elif HAVE_REALLOCARRAY
+ /* reallocarray has built-in overflow detection */
+ new_array = reallocarray(array, (size_t) size, element_size);
+ #else
diff --git a/package/fltk/Makefile b/package/fltk/Makefile
index be3670a46..ce17671e8 100644
--- a/package/fltk/Makefile
+++ b/package/fltk/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= fltk
-PKG_VERSION:= 1.3.3
+PKG_VERSION:= 1.3.8
PKG_RELEASE:= 1
-PKG_HASH:= f8398d98d7221d40e77bc7b19e761adaf2f1ef8bb0c30eceb7beb4f2273d0d97
+PKG_HASH:= f3c1102b07eb0e7a50538f9fc9037c18387165bc70d4b626e94ab725b9d4d1bf
PKG_DESCR:= fast light toolkit
PKG_SECTION:= libs/misc
PKG_DEPENDS:= mesa libx11 libxi freeglut libfreetype
diff --git a/package/fluxbox/Makefile b/package/fluxbox/Makefile
index 54d67f15d..d347fc0fc 100644
--- a/package/fluxbox/Makefile
+++ b/package/fluxbox/Makefile
@@ -5,7 +5,7 @@ include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= fluxbox
PKG_VERSION:= 1.3.7
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_HASH:= fc8c75fe94c54ed5a5dd3fd4a752109f8949d6df67a48e5b11a261403c382ec0
PKG_DESCR:= window manager featuring tabs and an iconbar
PKG_SECTION:= x11/apps
diff --git a/package/fluxbox/patches/patch-util_fluxbox-remote_cc b/package/fluxbox/patches/patch-util_fluxbox-remote_cc
new file mode 100644
index 000000000..bc76ea43e
--- /dev/null
+++ b/package/fluxbox/patches/patch-util_fluxbox-remote_cc
@@ -0,0 +1,11 @@
+--- fluxbox-1.3.7.orig/util/fluxbox-remote.cc 2015-02-08 11:44:45.377187009 +0100
++++ fluxbox-1.3.7/util/fluxbox-remote.cc 2023-01-13 06:47:39.349301911 +0100
+@@ -73,7 +73,7 @@ int main(int argc, char **argv) {
+ if (strcmp(cmd, "result") == 0) {
+ XTextProperty text_prop;
+ if (XGetTextProperty(disp, root, &text_prop, atom_result) != 0
+- && text_prop.value > 0
++ && text_prop.value != 0
+ && text_prop.nitems > 0) {
+
+ printf("%s", text_prop.value);
diff --git a/package/fmt/Makefile b/package/fmt/Makefile
index 2831edea5..82d25c0cf 100644
--- a/package/fmt/Makefile
+++ b/package/fmt/Makefile
@@ -4,11 +4,12 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= fmt
-PKG_VERSION:= 5.0.0
+PKG_VERSION:= 8.1.1
PKG_RELEASE:= 1
-PKG_HASH:= fc33d64d5aa2739ad2ca1b128628a7fc1b7dca1ad077314f09affc57d59cf88a
+PKG_HASH:= 3d794d3cf67633b34b2771eb9f073bde87e846e0d395d254df7b211ef1ec7346
PKG_DESCR:= modern formatting library
PKG_SECTION:= libs/misc
+PKG_BUILDDEP:= cmake-host
PKG_URL:= http://fmtlib.net/latest/index.html
PKG_SITES:= https://github.com/fmtlib/fmt/archive/
PKG_LIBNAME:= libfmt
diff --git a/package/font-adobe-100dpi/Makefile b/package/font-adobe-100dpi/Makefile
index 1f4a9a1f1..d0cd64f30 100644
--- a/package/font-adobe-100dpi/Makefile
+++ b/package/font-adobe-100dpi/Makefile
@@ -22,9 +22,11 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,FONT_ADOBE_100DPI,font-adobe-100dpi,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+XAKE_FLAGS+= DESTDIR=''
+
font-adobe-100dpi-install:
$(INSTALL_DIR) $(IDIR_FONT_ADOBE_100DPI)/usr/share/fonts/X11/100dpi
- $(CP) ${WRKINST}/usr/share/fonts/X11/100dpi/* \
+ $(CP) ${STAGING_TARGET_DIR}/usr/share/fonts/X11/100dpi/* \
$(IDIR_FONT_ADOBE_100DPI)/usr/share/fonts/X11/100dpi
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/font-adobe-75dpi/Makefile b/package/font-adobe-75dpi/Makefile
index e8220968a..68ae9963b 100644
--- a/package/font-adobe-75dpi/Makefile
+++ b/package/font-adobe-75dpi/Makefile
@@ -22,9 +22,11 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,FONT_ADOBE_75DPI,font-adobe-75dpi,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+XAKE_FLAGS+= DESTDIR=''
+
font-adobe-75dpi-install:
$(INSTALL_DIR) $(IDIR_FONT_ADOBE_75DPI)/usr/share/fonts/X11/75dpi
- $(CP) ${WRKINST}/usr/share/fonts/X11/75dpi/* \
+ $(CP) ${STAGING_TARGET_DIR}/usr/share/fonts/X11/75dpi/* \
$(IDIR_FONT_ADOBE_75DPI)/usr/share/fonts/X11/75dpi
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/font-util/Makefile b/package/font-util/Makefile
index ec2559275..5b9289f89 100644
--- a/package/font-util/Makefile
+++ b/package/font-util/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= font-util
-PKG_VERSION:= 1.3.1
+PKG_VERSION:= 1.3.2
PKG_RELEASE:= 1
-PKG_HASH:= 34ebb0c9c14e0a392cdd5ea055c92489ad88d55ae148b2f1cfded0f3f63f2b5b
+PKG_HASH:= f115a3735604de1e852a4bf669be0269d8ce8f21f8e0e74ec5934b31dadc1e76
PKG_DESCR:= font utility
PKG_SECTION:= x11/fonts
PKG_URL:= http://www.x.org/
diff --git a/package/font-util/patches/patch-fontutil_pc_in b/package/font-util/patches/patch-fontutil_pc_in
index 4662db361..2b2ed3d53 100644
--- a/package/font-util/patches/patch-fontutil_pc_in
+++ b/package/font-util/patches/patch-fontutil_pc_in
@@ -1,11 +1,14 @@
---- font-util-1.1.1.orig/fontutil.pc.in 2009-10-11 06:32:56.000000000 +0200
-+++ font-util-1.1.1/fontutil.pc.in 2010-12-02 22:28:16.000000000 +0100
-@@ -4,7 +4,7 @@ libdir=@libdir@
+--- font-util-1.3.2.orig/fontutil.pc.in 2019-08-26 00:25:25.000000000 +0200
++++ font-util-1.3.2/fontutil.pc.in 2022-03-01 21:10:24.228234038 +0100
+@@ -2,9 +2,9 @@ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ libdir=@libdir@
datarootdir=@datarootdir@
- datadir=@datadir@
+-datadir=@datadir@
++datadir=${prefix}/share
fontrootdir=@fontrootdir@
-mapdir=@MAPDIR@
-+mapdir=${prefix}/../@MAPDIR@
++mapdir=${fontrootdir}/util
Name: FontUtil
Description: Font utilities dirs
diff --git a/package/fontconfig/Makefile b/package/fontconfig/Makefile
index 2642bf634..15e797efc 100644
--- a/package/fontconfig/Makefile
+++ b/package/fontconfig/Makefile
@@ -4,13 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= fontconfig
-PKG_VERSION:= 2.12.3
-PKG_RELEASE:= 2
-PKG_HASH:= ffc3cbf6dd9fcd516ee42f48306a715e66698b238933d6fa7cef02ea8b3b818e
+PKG_VERSION:= 2.13.1
+PKG_RELEASE:= 1
+PKG_HASH:= 9f0d852b39d75fc655f9f53850eb32555394f36104a044bb2b2fc9e66dbbfa7f
PKG_DESCR:= library for configuring and customizing font access
PKG_SECTION:= libs/fonts
PKG_DEPENDS:= libxml2
-PKG_BUILDDEP:= freetype libxml2 gperf-host
+PKG_BUILDDEP:= freetype libxml2 gperf-host util-linux
HOST_BUILDDEP:= expat-host
PKG_URL:= http://fontconfig.org/
PKG_SITES:= http://fontconfig.org/release/
@@ -24,6 +24,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call HOST_template,FONTCONFIG,fontconfig,${PKG_VERSION}-${PKG_RELEASE}))
$(eval $(call PKG_template,FONTCONFIG,fontconfig,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
+AUTOTOOL_STYLE:= autoreconf
HOST_STYLE:= auto
CONFIGURE_ARGS+= --with-arch=${ADK_TARGET_ARCH} \
--enable-libxml2 \
diff --git a/package/forte/Makefile b/package/forte/Makefile
new file mode 100644
index 000000000..0b39e1ed8
--- /dev/null
+++ b/package/forte/Makefile
@@ -0,0 +1,37 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+# always use tab spaces as separator, no spaces
+PKG_NAME:= forte
+PKG_VERSION:= 1.12.0
+PKG_RELEASE:= 1
+PKG_HASH:= 65541d5f682c386206f5fdee6a5663c19b3274ee6002b764a0314c49994c280c
+PKG_DESCR:= IEC61499 runtime
+PKG_SECTION:= libs/misc
+PKG_DEPENDS:= libmodbus
+#PKG_BUILDDEP:= add packages which need to be compiled
+PKG_URL:= https://www.eclipse.org/4diac/
+PKG_SITES:= http://ftp-stud.fht-esslingen.de/pub/Mirrors/eclipse/4diac/releases/1.12/forte/
+DISTFILES:= $(PKG_NAME)-incubation_$(PKG_VERSION).zip
+WRKDIST= $(WRKDIR)/$(PKG_NAME)-incubation_$(PKG_VERSION)
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+
+$(eval $(call PKG_template,FORTE,forte,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= cmake
+CMAKE_FLAGS:= -G "Unix Makefiles" -DFORTE_ARCHITECTURE=Posix -DFORTE_COM_ETH=ON -DFORTE_COM_FBDK=ON \
+ -DFORTE_COM_LOCAL=ON -DFORTE_TESTS=OFF -DFORTE_MODULE_CONVERT=ON \
+ -DFORTE_MODULE_IEC61131=ON -DFORTE_MODULE_UTILS=ON
+
+# please install all files and directories to the package dir
+forte-install:
+ $(INSTALL_DIR) $(IDIR_FORTE)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/forte \
+ $(IDIR_FORTE)/usr/bin
+
+# please remove ALL above comments, before commiting
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/fping/Makefile b/package/fping/Makefile
index 613112d88..6340c32bc 100644
--- a/package/fping/Makefile
+++ b/package/fping/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= fping
-PKG_VERSION:= 3.16
+PKG_VERSION:= 5.1
PKG_RELEASE:= 1
-PKG_HASH:= 2f753094e4df3cdb1d99be1687c0fb7d2f14c0d526ebf03158c8c5519bc78f54
+PKG_HASH:= 1ee5268c063d76646af2b4426052e7d81a42b657e6a77d8e7d3d2e60fd7409fe
PKG_DESCR:= program to ping hosts in parallel
PKG_SECTION:= net/debug
PKG_URL:= http://fping.org
diff --git a/package/fprobe/patches/patch-src_fprobe_c b/package/fprobe/patches/patch-src_fprobe_c
new file mode 100644
index 000000000..43197cf64
--- /dev/null
+++ b/package/fprobe/patches/patch-src_fprobe_c
@@ -0,0 +1,20 @@
+--- fprobe-1.1.orig/src/fprobe.c 2005-01-30 09:43:35.000000000 +0100
++++ fprobe-1.1/src/fprobe.c 2024-02-20 07:18:30.403921178 +0100
+@@ -393,7 +393,7 @@ void gettime(struct Time *now)
+ now->usec = t.tv_usec;
+ }
+
+-inline time_t cmpmtime(struct Time *t1, struct Time *t2)
++time_t cmpmtime(struct Time *t1, struct Time *t2)
+ {
+ return (t1->sec - t2->sec) * 1000 + (t1->usec - t2->usec) / 1000;
+ }
+@@ -411,7 +411,7 @@ hash_t hash_flow(struct Flow *flow)
+ else return hash(flow, sizeof(struct Flow_TL));
+ }
+
+-inline void copy_flow(struct Flow *src, struct Flow *dst)
++void copy_flow(struct Flow *src, struct Flow *dst)
+ {
+ dst->sip = src->sip;
+ dst->dip = src->dip;
diff --git a/package/freeglut/Makefile b/package/freeglut/Makefile
index cee02625d..1ed30db0d 100644
--- a/package/freeglut/Makefile
+++ b/package/freeglut/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= freeglut
-PKG_VERSION:= 3.0.0
+PKG_VERSION:= 3.2.1
PKG_RELEASE:= 1
-PKG_HASH:= 2a43be8515b01ea82bcfa17d29ae0d40bd128342f0930cd1f375f1ff999f76a2
+PKG_HASH:= d4000e02102acaf259998c870e25214739d1f16f67f99cb35e4f46841399da68
PKG_DESCR:= opengl utility toolkit libraries
PKG_SECTION:= libs/video
PKG_DEPENDS:= libglu
diff --git a/package/freeglut/patches/patch-src_fg_gl2_c b/package/freeglut/patches/patch-src_fg_gl2_c
new file mode 100644
index 000000000..dbd947a91
--- /dev/null
+++ b/package/freeglut/patches/patch-src_fg_gl2_c
@@ -0,0 +1,23 @@
+--- freeglut-3.2.1.orig/src/fg_gl2.c 2014-06-01 11:24:47.000000000 +0200
++++ freeglut-3.2.1/src/fg_gl2.c 2021-11-02 10:29:44.673793670 +0100
+@@ -27,6 +27,20 @@
+ #include "fg_internal.h"
+ #include "fg_gl2.h"
+
++#ifndef GL_ES_VERSION_2_0
++/* GLES2 has the corresponding entry points built-in, and these fgh-prefixed
++ * names are defined in fg_gl2.h header to reference them, for any other case,
++ * define them as function pointers here.
++ */
++FGH_PFNGLGENBUFFERSPROC fghGenBuffers;
++FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers;
++FGH_PFNGLBINDBUFFERPROC fghBindBuffer;
++FGH_PFNGLBUFFERDATAPROC fghBufferData;
++FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray;
++FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray;
++FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer;
++#endif
++
+ void FGAPIENTRY glutSetVertexAttribCoord3(GLint attrib) {
+ if (fgStructure.CurrentWindow != NULL)
+ fgStructure.CurrentWindow->Window.attribute_v_coord = attrib;
diff --git a/package/freeglut/patches/patch-src_fg_gl2_h b/package/freeglut/patches/patch-src_fg_gl2_h
new file mode 100644
index 000000000..a552d4fa9
--- /dev/null
+++ b/package/freeglut/patches/patch-src_fg_gl2_h
@@ -0,0 +1,23 @@
+--- freeglut-3.2.1.orig/src/fg_gl2.h 2012-04-21 20:22:24.000000000 +0200
++++ freeglut-3.2.1/src/fg_gl2.h 2021-11-02 10:29:44.673793670 +0100
+@@ -67,13 +67,13 @@ typedef void (APIENTRY *FGH_PFNGLENABLEV
+ typedef void (APIENTRY *FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint);
+ typedef void (APIENTRY *FGH_PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
+
+-FGH_PFNGLGENBUFFERSPROC fghGenBuffers;
+-FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers;
+-FGH_PFNGLBINDBUFFERPROC fghBindBuffer;
+-FGH_PFNGLBUFFERDATAPROC fghBufferData;
+-FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray;
+-FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray;
+-FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer;
++extern FGH_PFNGLGENBUFFERSPROC fghGenBuffers;
++extern FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers;
++extern FGH_PFNGLBINDBUFFERPROC fghBindBuffer;
++extern FGH_PFNGLBUFFERDATAPROC fghBufferData;
++extern FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray;
++extern FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray;
++extern FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer;
+
+ # endif
+
diff --git a/package/freeglut/patches/patch-src_fg_version_h b/package/freeglut/patches/patch-src_fg_version_h
new file mode 100644
index 000000000..6bb5f6d69
--- /dev/null
+++ b/package/freeglut/patches/patch-src_fg_version_h
@@ -0,0 +1,16 @@
+--- freeglut-3.2.1.orig/src/fg_version.h 2014-08-18 04:00:40.000000000 +0200
++++ freeglut-3.2.1/src/fg_version.h 2021-11-02 09:37:27.466889937 +0100
+@@ -37,11 +37,11 @@
+ #endif
+
+ #ifndef VERSION_MINOR
+-#define VERSION_MINOR 0
++#define VERSION_MINOR 2
+ #endif
+
+ #ifndef VERSION_PATCH
+-#define VERSION_PATCH 0
++#define VERSION_PATCH 1
+ #endif
+
+ #endif
diff --git a/package/freeradius-server/Makefile b/package/freeradius-server/Makefile
index 60647d336..b9c1f12f2 100644
--- a/package/freeradius-server/Makefile
+++ b/package/freeradius-server/Makefile
@@ -4,16 +4,16 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= freeradius-server
-PKG_VERSION:= 3.0.13
+PKG_VERSION:= 3.2.3
PKG_RELEASE:= 1
-PKG_HASH:= 34da25c1a0e39dc57821ed6d1af1c1cc8bb7e280169cc8b4003acbfc4184328e
+PKG_HASH:= 4bde047122e588c63fe2d599a73f7ab9a863806f9e716e88a3d77080b482c577
PKG_DESCR:= flexible radius server
PKG_SECTION:= net/radius
-PKG_DEPENDS:= libltdl libpcre libtalloc libressl
+PKG_DEPENDS:= libltdl libpcre libtalloc libressl libatomic
PKG_BUILDDEP:= libtool pcre talloc libressl
PKG_NEEDS:= threads
PKG_URL:= http://www.freeradius.org/
-PKG_SITES:= ftp://ftp.freeradius.org/pub/radius/
+PKG_SITES:= https://github.com/FreeRADIUS/freeradius-server/releases/download/release_3_2_3/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
@@ -71,7 +71,7 @@ endif
ifneq (${ADK_PACKAGE_FREERADIUS_MOD_SQL_MYSQL},)
PKG_CONFIGURE_LIBS+= -lz
-PKG_CONFIGURE_OPTS+= --with-mysql-include-dir="${STAGING_TARGET_DIR}/usr/include" \
+PKG_CONFIGURE_OPTS+= --with-mysql-include-dir="${STAGING_TARGET_DIR}/usr/include/mysql" \
--with-mysql-lib-dir="${STAGING_TARGET_DIR}/usr/lib/mysql" \
--without-threads \
--with-rlm_sql
@@ -134,14 +134,14 @@ $(eval $(call PKG_mod_template,FREERADIUS_MOD_SQL,rlm_sql,))
$(eval $(call PKG_mod_template,FREERADIUS_MOD_SQL_MYSQL,rlm_sql_mysql,))
$(eval $(call PKG_mod_template,FREERADIUS_MOD_SQL_PGSQL,rlm_sql_postgresql,))
-AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= ${PKG_CONFIGURE_OPTS} \
--libdir=/usr/lib/freeradius \
--libexecdir=/usr/lib/freeradius \
--disable-openssl-version-check \
--with-execinfo-include-dir=/dev/null \
- --with-openssl-includes=${STAGING_TARGET_DIR}/usr/include \
- --with-openssl-libraries=${STAGING_TARGET_DIR}/usr/lib \
+ --with-threads=yes \
+ --with-openssl-include-dir=${STAGING_TARGET_DIR}/usr/include \
+ --with-openssl-lib-dir=${STAGING_TARGET_DIR}/usr/lib \
--with-system-libltld \
--enable-strict-dependencies \
--with-raddbdir=/etc/freeradius \
@@ -157,15 +157,17 @@ CONFIGURE_ARGS+= ${PKG_CONFIGURE_OPTS} \
--without-rlm_eap_sim \
--without-rlm_example \
--without-rlm_ippool \
+ --without-rlm_json \
--without-rlm_krb5 \
--without-rlm_otp \
--without-rlm_smsotp \
--without-rlm_pam \
--without-rlm_perl \
- --without-rlm_python \
+ --without-rlm_python3 \
--without-rlm_radutmp \
--without-rlm_rest \
--without-rlm_ruby \
+ --without-rlm_python \
--without-rlm_smb \
--without-rlm_sqlcounter \
--without-rlm_sql_db2 \
@@ -176,7 +178,9 @@ CONFIGURE_ARGS+= ${PKG_CONFIGURE_OPTS} \
--without-rlm_sql_unixodbc \
--without-rlm_sql_log \
--without-rlm_redis \
+ --without-rlm_cache_redis \
--without-rlm_rediswho \
+ --without-rlm_unbound \
--without-rlm_unix \
--without-rlm_eap_ikev2 \
--without-rlm_eap_tnc \
@@ -187,9 +191,10 @@ CONFIGURE_ARGS+= ${PKG_CONFIGURE_OPTS} \
CONFIGURE_ENV+= ax_cv_cc_builtin_choose_expr=yes \
ax_cv_cc_builtin_types_compatible_p=yes \
ax_cv_cc_builtin_bswap64=yes \
- ax_cv_cc_bounded_attribute=yes
-FAKE_FLAGS+= R="${WRKINST}" \
- INSTALLSTRIP=""
+ ax_cv_cc_bounded_attribute=yes \
+FAKE_FLAGS+= INSTALLSTRIP=""
+MAKE_ENV+= VERBOSE=1 \
+ R="$(WRKINST)"
freeradius-server-install: ${INSTALL_MODS_y} ${INSTALL_MODS_m}
-${INSTALL_DIR} ${IDIR_FREERADIUS_SERVER}/etc/freeradius
@@ -203,14 +208,10 @@ freeradius-server-install: ${INSTALL_MODS_y} ${INSTALL_MODS_m}
${IDIR_FREERADIUS_SERVER}/etc/freeradius/ ; \
done
${INSTALL_DIR} ${IDIR_FREERADIUS_SERVER}/usr/share/freeradius
- ${CP} ${WRKINST}/usr/share/freeradius/dictionary \
+ ${CP} ${WRKINST}/usr/share/freeradius/dictionary* \
${IDIR_FREERADIUS_SERVER}/usr/share/freeradius/
- for f in freeradius freeradius.internal rfc2865 rfc2866 rfc2867 rfc2868 rfc2869 rfc3162 rfc3576 rfc3580 rfc4072 rfc4372 rfc4675 rfc4679 rfc5176; do \
- cp ${WRKINST}/usr/share/freeradius/dictionary.$${f} \
- ${IDIR_FREERADIUS_SERVER}/usr/share/freeradius/ ; \
- done
${INSTALL_DIR} ${IDIR_FREERADIUS_SERVER}/usr/lib/freeradius
- ${CP} ${WRKINST}/usr/lib/freeradius/libfreeradius-radius.so \
+ ${CP} ${WRKINST}/usr/lib/freeradius/libfreeradius-{dhcp,eap,server,radius}.so \
${IDIR_FREERADIUS_SERVER}/usr/lib
${INSTALL_DIR} ${IDIR_FREERADIUS_SERVER}/usr/sbin
${CP} ${WRKINST}/usr/sbin/radiusd \
diff --git a/package/freeradius-server/files/radiusd.conf b/package/freeradius-server/files/radiusd.conf
index b9a573f69..c07f65680 100644
--- a/package/freeradius-server/files/radiusd.conf
+++ b/package/freeradius-server/files/radiusd.conf
@@ -15,9 +15,6 @@ run_dir = ${localstatedir}/run
db_dir = ${raddbdir}
libdir = /usr/lib/freeradius
pidfile = ${run_dir}/${name}.pid
-user = radius
-group = radius
-#chroot = /path/to/chroot/directory
max_request_time = 30
cleanup_delay = 5
@@ -36,7 +33,6 @@ listen {
}
hostname_lookups = no
-allow_core_dumps = no
regular_expressions = yes
extended_expressions = yes
@@ -55,6 +51,10 @@ security {
max_attributes = 200
reject_delay = 1
status_server = yes
+ user = radius
+ group = radius
+ allow_core_dumps = no
+# chroot = /path/to/chroot/directory
}
$INCLUDE clients.conf
diff --git a/package/freeradius-server/patches/patch-acinclude_m4 b/package/freeradius-server/patches/patch-acinclude_m4
deleted file mode 100644
index f1cefae77..000000000
--- a/package/freeradius-server/patches/patch-acinclude_m4
+++ /dev/null
@@ -1,164 +0,0 @@
---- freeradius-server-3.0.8.orig/acinclude.m4 2015-04-22 19:21:34.000000000 +0200
-+++ freeradius-server-3.0.8/acinclude.m4 2015-05-13 22:13:54.000000000 +0200
-@@ -218,22 +218,22 @@ ac_safe=`echo "$1" | sed 'y%./+-%__pm%'`
- old_CPPFLAGS="$CPPFLAGS"
- smart_include=
- dnl # The default directories we search in (in addition to the compilers search path)
--smart_include_dir="/usr/local/include /opt/include"
-+dnl smart_include_dir="/usr/local/include /opt/include"
-
- dnl # Our local versions
- _smart_try_dir=
- _smart_include_dir=
-
- dnl # Add variants with the different prefixes and one with no prefix
--for _prefix in $smart_prefix ""; do
-- for _dir in $smart_try_dir; do
-- _smart_try_dir="${_smart_try_dir} ${_dir}/${_prefix}"
-- done
--
-- for _dir in $smart_include_dir; do
-- _smart_include_dir="${_smart_include_dir} ${_dir}/${_prefix}"
-- done
--done
-+dnl for _prefix in $smart_prefix ""; do
-+dnl for _dir in $smart_try_dir; do
-+dnl _smart_try_dir="${_smart_try_dir} ${_dir}/${_prefix}"
-+dnl done
-+dnl
-+dnl for _dir in $smart_include_dir; do
-+dnl _smart_include_dir="${_smart_include_dir} ${_dir}/${_prefix}"
-+dnl done
-+dnl done
-
- dnl #
- dnl # Try any user-specified directory first otherwise we may pick up
-@@ -262,73 +262,73 @@ fi
- dnl #
- dnl # Try using the default includes (with prefixes).
- dnl #
--if test "x$smart_include" = "x"; then
-- for _prefix in $smart_prefix; do
-- AC_MSG_CHECKING([for ${_prefix}/$1])
--
-- AC_TRY_COMPILE([$2
-- #include <$1>],
-- [int a = 1;],
-- [
-- smart_include="-isystem ${_prefix}/"
-- AC_MSG_RESULT(yes)
-- break
-- ],
-- [
-- smart_include=
-- AC_MSG_RESULT(no)
-- ])
-- done
--fi
-+dnl if test "x$smart_include" = "x"; then
-+dnl for _prefix in $smart_prefix; do
-+dnl AC_MSG_CHECKING([for ${_prefix}/$1])
-+dnl
-+dnl AC_TRY_COMPILE([$2
-+dnl #include <$1>],
-+dnl [int a = 1;],
-+dnl [
-+dnl smart_include="-isystem ${_prefix}/"
-+dnl AC_MSG_RESULT(yes)
-+dnl break
-+dnl ],
-+dnl [
-+dnl smart_include=
-+dnl AC_MSG_RESULT(no)
-+dnl ])
-+dnl done
-+dnl fi
-
- dnl #
- dnl # Try using the default includes (without prefixes).
- dnl #
- if test "x$smart_include" = "x"; then
-- AC_MSG_CHECKING([for $1])
--
-- AC_TRY_COMPILE([$2
-+ AC_MSG_CHECKING([for $1])
-+
-+ AC_TRY_COMPILE([$2
- #include <$1>],
-- [int a = 1;],
-- [
-- smart_include=" "
-- AC_MSG_RESULT(yes)
-- break
-- ],
-- [
-- smart_include=
-+ [int a = 1;],
-+ [
-+ smart_include=" "
-+ AC_MSG_RESULT(yes)
-+ break
-+ ],
-+ [
-+ smart_include=
- AC_MSG_RESULT(no)
-- ])
-+ ])
- fi
-
- dnl #
- dnl # Try to guess possible locations.
- dnl #
--if test "x$smart_include" = "x"; then
--
-- for prefix in $smart_prefix; do
-- FR_LOCATE_DIR(_smart_include_dir,"${_prefix}/${1}")
-- done
-- FR_LOCATE_DIR(_smart_include_dir, $1)
--
-- for try in $_smart_include_dir; do
-- AC_MSG_CHECKING([for $1 in $try])
-- CPPFLAGS="-isystem $try $old_CPPFLAGS"
-- AC_TRY_COMPILE([$2
-- #include <$1>],
-- [int a = 1;],
-- [
-- smart_include="-isystem $try"
-- AC_MSG_RESULT(yes)
-- break
-- ],
-- [
-- smart_include=
-- AC_MSG_RESULT(no)
-- ])
-- done
-- CPPFLAGS="$old_CPPFLAGS"
--fi
-+dnl if test "x$smart_include" = "x"; then
-+dnl
-+dnl for prefix in $smart_prefix; do
-+dnl FR_LOCATE_DIR(_smart_include_dir,"${_prefix}/${1}")
-+dnl done
-+dnl FR_LOCATE_DIR(_smart_include_dir, $1)
-+dnl
-+dnl for try in $_smart_include_dir; do
-+dnl AC_MSG_CHECKING([for $1 in $try])
-+dnl CPPFLAGS="-isystem $try $old_CPPFLAGS"
-+dnl AC_TRY_COMPILE([$2
-+dnl #include <$1>],
-+dnl [int a = 1;],
-+dnl [
-+dnl smart_include="-isystem $try"
-+dnl AC_MSG_RESULT(yes)
-+dnl break
-+dnl ],
-+dnl [
-+dnl smart_include=
-+dnl AC_MSG_RESULT(no)
-+dnl ])
-+dnl done
-+dnl CPPFLAGS="$old_CPPFLAGS"
-+dnl fi
-
- dnl #
- dnl # Found it, set the appropriate variable.
diff --git a/package/freeradius-server/patches/patch-scripts_libtool_mk b/package/freeradius-server/patches/patch-scripts_libtool_mk
index c9f83db69..bcfdeff89 100644
--- a/package/freeradius-server/patches/patch-scripts_libtool_mk
+++ b/package/freeradius-server/patches/patch-scripts_libtool_mk
@@ -1,11 +1,13 @@
---- freeradius-server-3.0.13.orig/scripts/libtool.mk 2017-03-06 14:58:04.000000000 +0100
-+++ freeradius-server-3.0.13/scripts/libtool.mk 2017-03-30 05:46:58.583531343 +0200
-@@ -44,7 +44,7 @@ ifeq "${LIBTOOL}" "JLIBTOOL"
+--- freeradius-server-3.2.3.orig/scripts/libtool.mk 2023-05-26 15:56:52.000000000 +0200
++++ freeradius-server-3.2.3/scripts/libtool.mk 2024-02-27 03:44:17.243010645 +0100
+@@ -48,8 +48,8 @@ ifeq "${LIBTOOL}" "JLIBTOOL"
+ # binary!
${JLIBTOOL}: ${top_makedir}/jlibtool.c
$(Q)mkdir -p $(dir $@)
- $(Q)echo CC jlibtool.c
-- $(Q)${CC} $< -o $@
-+ $(Q)${CC_FOR_BUILD} $< -o $@
+- $(Q)echo CC jlibtool.c
+- $(Q)${CC} $< -o $@ ${JLIBTOOL_DEFS}
++ $(Q)echo CC_FOR_BUILD jlibtool.c
++ ${CC_FOR_BUILD} $< -o $@ ${JLIBTOOL_DEFS}
clean: jlibtool_clean
diff --git a/package/freeradius-server/patches/patch-src_include_threads_h b/package/freeradius-server/patches/patch-src_include_threads_h
new file mode 100644
index 000000000..3011af0a9
--- /dev/null
+++ b/package/freeradius-server/patches/patch-src_include_threads_h
@@ -0,0 +1,33 @@
+--- freeradius-server-3.2.3.orig/src/include/threads.h 2023-05-26 15:56:52.000000000 +0200
++++ freeradius-server-3.2.3/src/include/threads.h 2024-02-27 04:03:53.806994686 +0100
+@@ -92,7 +92,7 @@ static _t __fr_thread_local_init_##_n(pt
+ # define fr_thread_local_get(_n) _n
+ #elif defined(HAVE_PTHREAD_H)
+ # include <pthread.h>
+-# define fr_thread_local_setup(_t, _n) \
++# define fr_thread_local_setup(_t, _n) static __thread _t _n;\
+ static pthread_key_t __fr_thread_local_key_##_n;\
+ static pthread_once_t __fr_thread_local_once_##_n = PTHREAD_ONCE_INIT;\
+ static pthread_destructor_t __fr_thread_local_destructor_##_n = NULL;\
+@@ -103,17 +103,17 @@ static void __fr_thread_local_destroy_##
+ static void __fr_thread_local_key_init_##_n(void)\
+ {\
+ (void) pthread_key_create(&__fr_thread_local_key_##_n, __fr_thread_local_destroy_##_n);\
+- (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
+ }\
+ static _t __fr_thread_local_init_##_n(pthread_destructor_t func)\
+ {\
+ __fr_thread_local_destructor_##_n = func;\
+ if (_n) return _n; \
+ (void) pthread_once(&__fr_thread_local_once_##_n, __fr_thread_local_key_init_##_n);\
++ (void) pthread_setspecific(__fr_thread_local_key_##_n, &(_n));\
+ return _n;\
+ }
+-# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
+-# define fr_thread_local_set(_n, _v) __fr_thread_local_set_##_n(_v)
+-# define fr_thread_local_get(_n) __fr_thread_local_get_##_n()
++# define fr_thread_local_init(_n, _f) __fr_thread_local_init_##_n(_f)
++# define fr_thread_local_set(_n, _v) ((int)!((_n = _v) || 1))
++# define fr_thread_local_get(_n) _n
+ #endif
+ #endif
diff --git a/package/freeradius-server/patches/patch-src_main_tls_c b/package/freeradius-server/patches/patch-src_main_tls_c
deleted file mode 100644
index 3eb635e97..000000000
--- a/package/freeradius-server/patches/patch-src_main_tls_c
+++ /dev/null
@@ -1,16 +0,0 @@
---- freeradius-server-3.0.13.orig/src/main/tls.c 2017-03-06 14:58:04.000000000 +0100
-+++ freeradius-server-3.0.13/src/main/tls.c 2017-03-30 05:52:35.584542618 +0200
-@@ -2131,13 +2131,9 @@ int cbtls_verify(int ok, X509_STORE_CTX
- }
-
- if (lookup == 0) {
--#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-- ext_list = X509_get0_extensions(client_cert);
--#else
- X509_CINF *client_inf;
- client_inf = client_cert->cert_info;
- ext_list = client_inf->extensions;
--#endif
- } else {
- ext_list = NULL;
- }
diff --git a/package/freeswitch/Makefile b/package/freeswitch/Makefile
index e5eeadf33..0d6f067c8 100644
--- a/package/freeswitch/Makefile
+++ b/package/freeswitch/Makefile
@@ -4,22 +4,25 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= freeswitch
-PKG_VERSION:= 1.6.18
+PKG_VERSION:= 1.10.11
PKG_RELEASE:= 1
-PKG_HASH:= ac1b32f61e5c35680c5a2d6f145bc480cf26e6527af07d8b8b9fa2d5280252cd
+PKG_HASH:= 4437edfa08558aa407c9fad5e4eed58f757357c53ca735aed9977e48aa1c53e3
PKG_DESCR:= cross-platform telephony platform
PKG_SECTION:= net/voip
PKG_DEPENDS:= libpcre libcurl zlib libjpeg-turbo libsqlite
-PKG_DEPENDS+= libressl libopus
+PKG_DEPENDS+= libressl libopus spandsp sofia-sip
PKG_BUILDDEP:= util-linux zlib libjpeg-turbo sqlite curl pcre
-PKG_BUILDDEP+= speex libressl opus
+PKG_BUILDDEP+= speex libressl opus spandsp sofia-sip
PKG_URL:= http://www.freeswitch.org/
-PKG_SITES:= http://files.freeswitch.org/freeswitch-releases/
+PKG_SITES:= https://github.com/signalwire/freeswitch/archive/refs/tags/
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,FREESWITCH,freeswitch,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+AUTOTOOL_STYLE:= bootstrap
CONFIGURE_ARGS+= --disable-core-libedit-support \
--disable-libvpx
CONFIGURE_ENV+= ac_cv_file__dev_ptmx=yes \
@@ -35,10 +38,15 @@ CONFIGURE_ENV+= ac_cv_file__dev_ptmx=yes \
ac_cv_func_setpgrp_void=yes
pre-configure:
+ $(SED) "/applications\/mod_av/d" $(WRKBUILD)/modules.conf
$(SED) "/applications\/mod_enum/d" $(WRKBUILD)/modules.conf
$(SED) "/applications\/mod_fsv/d" $(WRKBUILD)/modules.conf
+ $(SED) "/applications\/mod_signalwire/d" $(WRKBUILD)/modules.conf
+ $(SED) "/applications\/mod_spandsp/d" $(WRKBUILD)/modules.conf
+ $(SED) "/databases\/mod_pgsql/d" $(WRKBUILD)/modules.conf
$(SED) "/languages\/mod_lua/d" $(WRKBUILD)/modules.conf
$(SED) "/endpoints\/mod_sofia/d" $(WRKBUILD)/modules.conf
+ $(SED) "/endpoints\/mod_verto/d" $(WRKBUILD)/modules.conf
$(SED) "/codecs\/mod_vpx/d" $(WRKBUILD)/modules.conf
$(SED) "/formats\/mod_sndfile/d" $(WRKBUILD)/modules.conf
diff --git a/package/freeswitch/patches/patch-libs_srtp_crypto_hash_hmac_ossl_c b/package/freeswitch/patches/patch-libs_srtp_crypto_hash_hmac_ossl_c
new file mode 100644
index 000000000..aab43c797
--- /dev/null
+++ b/package/freeswitch/patches/patch-libs_srtp_crypto_hash_hmac_ossl_c
@@ -0,0 +1,22 @@
+--- freeswitch-1.10.11.orig/libs/srtp/crypto/hash/hmac_ossl.c 2023-12-22 19:08:31.000000000 +0100
++++ freeswitch-1.10.11/libs/srtp/crypto/hash/hmac_ossl.c 2024-02-29 00:19:04.687821875 +0100
+@@ -80,7 +80,8 @@ static srtp_err_status_t srtp_hmac_alloc
+
+ /* OpenSSL 1.1.0 made HMAC_CTX an opaque structure, which must be allocated
+ using HMAC_CTX_new. But this function doesn't exist in OpenSSL 1.0.x. */
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x30500000L)
+ {
+ /* allocate memory for auth and HMAC_CTX structures */
+ uint8_t *pointer;
+@@ -126,7 +127,8 @@ static srtp_err_status_t srtp_hmac_deall
+
+ hmac_ctx = (HMAC_CTX *)a->state;
+
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || \
++ (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x30500000L)
+ HMAC_CTX_cleanup(hmac_ctx);
+
+ /* zeroize entire state*/
diff --git a/package/freetype/Makefile b/package/freetype/Makefile
index da2c0a71e..5db6dea81 100644
--- a/package/freetype/Makefile
+++ b/package/freetype/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= freetype
-PKG_VERSION:= 2.7
-PKG_RELEASE:= 1
-PKG_HASH:= 7b657d5f872b0ab56461f3bd310bd1c5ec64619bd15f0d8e08282d494d9cfea4
+PKG_VERSION:= 2.11.1
+PKG_RELEASE:= 2
+PKG_HASH:= f8db94d307e9c54961b39a1cc799a67d46681480696ed72ecf78d4473770f09b
PKG_DESCR:= free, high-quality and portable font engine
PKG_SECTION:= libs/fonts
PKG_DEPENDS:= zlib
@@ -26,12 +26,22 @@ $(eval $(call PKG_template,LIBFREETYPE,libfreetype,${PKG_VERSION}-${PKG_RELEASE}
HOST_STYLE:= auto
HOST_CONFIGURE_ARGS+= --with-zlib \
+ --with-brotli=no \
--without-png \
- --without-bzip2
+ --without-bzip2 \
+ --enable-freetype-config
CONFIGURE_ARGS+= --with-zlib \
--without-png \
--with-harfbuzz=no \
- --without-bzip2
+ --with-brotli=no \
+ --without-bzip2 \
+ --enable-freetype-config
+
+hostpost-install:
+ $(SED) 's:^includedir=.*:includedir="$${prefix}/include":' \
+ -e 's:^libdir=.*:libdir="$${exec_prefix}/lib":' \
+ $(STAGING_HOST_DIR)/usr/bin/freetype-config
+
libfreetype-install:
${INSTALL_DIR} ${IDIR_LIBFREETYPE}/usr/lib
diff --git a/package/freetype/patches/patch-builds_unix_freetype-config_in b/package/freetype/patches/patch-builds_unix_freetype-config_in
deleted file mode 100644
index 74135b0fd..000000000
--- a/package/freetype/patches/patch-builds_unix_freetype-config_in
+++ /dev/null
@@ -1,16 +0,0 @@
---- freetype-2.6.1.orig/builds/unix/freetype-config.in 2015-09-25 07:58:57.000000000 +0200
-+++ freetype-2.6.1/builds/unix/freetype-config.in 2015-10-23 10:37:49.000000000 +0200
-@@ -13,10 +13,10 @@ LC_ALL=C
- export LC_ALL
-
- prefix="%prefix%"
--exec_prefix="%exec_prefix%"
-+exec_prefix="${prefix}/bin"
- exec_prefix_set="no"
--includedir="%includedir%"
--libdir="%libdir%"
-+includedir="${prefix}/include"
-+libdir="${prefix}/lib"
-
- usage()
- {
diff --git a/package/freetype/patches/patch-builds_unix_freetype2_in b/package/freetype/patches/patch-builds_unix_freetype2_in
index 306057eb3..9dc78c081 100644
--- a/package/freetype/patches/patch-builds_unix_freetype2_in
+++ b/package/freetype/patches/patch-builds_unix_freetype2_in
@@ -1,14 +1,13 @@
---- freetype-2.6.1.orig/builds/unix/freetype2.in 2015-09-25 07:58:57.000000000 +0200
-+++ freetype-2.6.1/builds/unix/freetype2.in 2015-10-23 10:43:36.000000000 +0200
-@@ -1,7 +1,8 @@
+--- freetype-2.11.1.orig/builds/unix/freetype2.in 2021-02-13 09:16:54.000000000 +0100
++++ freetype-2.11.1/builds/unix/freetype2.in 2022-03-01 21:51:10.996321135 +0100
+@@ -1,7 +1,7 @@
prefix=%prefix%
-exec_prefix=%exec_prefix%
-libdir=%libdir%
-includedir=%includedir%
-+exec_prefix=${prefix}
-+libdir=${prefix}/lib
-+includedir=${prefix}/include
-+
++exec_prefix=%prefix%
++libdir=%prefix%/lib
++includedir=%prefix%/include
Name: FreeType 2
- URL: http://freetype.org
+ URL: https://freetype.org
diff --git a/package/fribidi/Makefile b/package/fribidi/Makefile
index 7a1834230..75bd11536 100644
--- a/package/fribidi/Makefile
+++ b/package/fribidi/Makefile
@@ -4,17 +4,15 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= fribidi
-PKG_VERSION:= 0.19.7
+PKG_VERSION:= 1.0.11
PKG_RELEASE:= 1
-PKG_HASH:= 08222a6212bbc2276a2d55c3bf370109ae4a35b689acbc66571ad2a670595a8e
+PKG_HASH:= 30f93e9c63ee627d1a2cedcf59ac34d45bf30240982f99e44c6e015466b4e73d
PKG_DESCR:= unicode bidirectional algorithm
PKG_SECTION:= libs/misc
PKG_URL:= http://www.fribidi.org/
-PKG_SITES:= http://fribidi.org/download/
+PKG_SITES:= https://github.com/fribidi/fribidi/releases/download/v1.0.11/
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
-
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,FRIBIDI,fribidi,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
diff --git a/package/fstrcmp/Makefile b/package/fstrcmp/Makefile
new file mode 100644
index 000000000..23eb0f6f1
--- /dev/null
+++ b/package/fstrcmp/Makefile
@@ -0,0 +1,24 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= fstrcmp
+PKG_VERSION:= 0.7
+PKG_RELEASE:= 1
+PKG_HASH:= e4018e850f80700acee8da296e56e15b1eef711ab15157e542e7d7e1237c3476
+PKG_DESCR:= make fuzzy comparisons of strings
+PKG_SECTION:= libs/misc
+PKG_SITES:= http://fstrcmp.sourceforge.net/
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).D001.tar.gz
+WRKDIST= $(WRKDIR)/$(PKG_NAME)-$(PKG_VERSION).D001
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,FSTRCMP,fstrcmp,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+fstrcmp-install:
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/fstrcmp/patches/patch-Makefile_in b/package/fstrcmp/patches/patch-Makefile_in
new file mode 100644
index 000000000..d947c7d30
--- /dev/null
+++ b/package/fstrcmp/patches/patch-Makefile_in
@@ -0,0 +1,11 @@
+--- fstrcmp-0.7.D001.orig/Makefile.in 2014-03-05 01:13:45.000000000 +0100
++++ fstrcmp-0.7.D001/Makefile.in 2022-02-26 01:14:24.379687998 +0100
+@@ -588,7 +588,7 @@ bin/test_user$(EXEEXT): $(test_user_obj)
+ $(LIBTOOL) --mode=link --tag=CC $(CC) $(CPPFLAGS) $(CFLAGS) -o $@ \
+ $(test_user_obj) lib/libfstrcmp.la $(LDFLAGS) $(LIBS)
+
+-all: all-bin all-doc
++all: all-bin
+
+ all-bin: bin/fstrcmp$(EXEEXT) bin/test_prelude$(EXEEXT) bin/test_user$(EXEEXT)
+
diff --git a/package/fuse/Makefile b/package/fuse/Makefile
index d1bf72e2a..48061955f 100644
--- a/package/fuse/Makefile
+++ b/package/fuse/Makefile
@@ -4,14 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= fuse
-PKG_VERSION:= 2.9.4
+PKG_VERSION:= 2.9.9
PKG_RELEASE:= 1
-PKG_HASH:= 6be9c0bff6af8c677414935f31699ea5a7f8f5f791cfa5205be02ea186b97ce1
+PKG_HASH:= d0e69d5d608cc22ff4843791ad097f554dd32540ddc9bed7638cc6fea7c1b4b5
PKG_DESCR:= filesystem in userspace utility
PKG_SECTION:= sys/fs
PKG_DEPENDS:= libfuse
-PKG_URL:= http://fuse.sourceforge.net/
-PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=${PKG_NAME}/}
+PKG_SITES:= https://github.com/libfuse/libfuse/releases/download/fuse-$(PKG_VERSION)/
PKG_LIBNAME:= libfuse
PKG_OPTS:= dev
@@ -30,7 +29,6 @@ CONFIGURE_ARGS+= --enable-lib \
--enable-util \
--with-libiconv-prefix="${STAGING_TARGET_DIR}/usr" \
--disable-example \
- --disable-auto-modprobe \
--disable-mtab \
--disable-kernel-module
diff --git a/package/fuse/patches/patch-include_fuse_kernel_h b/package/fuse/patches/patch-include_fuse_kernel_h
new file mode 100644
index 000000000..41a1e7c7d
--- /dev/null
+++ b/package/fuse/patches/patch-include_fuse_kernel_h
@@ -0,0 +1,16 @@
+--- fuse-2.9.9.orig/include/fuse_kernel.h 2019-01-04 14:33:33.000000000 +0100
++++ fuse-2.9.9/include/fuse_kernel.h 2024-02-12 17:14:08.594450378 +0100
+@@ -88,12 +88,7 @@
+ #ifndef _LINUX_FUSE_H
+ #define _LINUX_FUSE_H
+
+-#include <sys/types.h>
+-#define __u64 uint64_t
+-#define __s64 int64_t
+-#define __u32 uint32_t
+-#define __s32 int32_t
+-#define __u16 uint16_t
++#include <linux/types.h>
+
+ /*
+ * Version negotiation:
diff --git a/package/fuse3/Makefile b/package/fuse3/Makefile
new file mode 100644
index 000000000..f038dcea7
--- /dev/null
+++ b/package/fuse3/Makefile
@@ -0,0 +1,47 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${ADK_TOPDIR}/rules.mk
+
+PKG_NAME:= fuse3
+PKG_VERSION:= 3.16.2
+PKG_RELEASE:= 1
+PKG_HASH:= 1bc306be1a1f4f6c8965fbdd79c9ccca021fdc4b277d501483a711cbd7dbcd6c
+PKG_DESCR:= filesystem in userspace utility (v3)
+PKG_SECTION:= sys/fs
+PKG_DEPENDS:= libfuse3
+PKG_SITES:= https://github.com/libfuse/libfuse/archive/refs/tags/
+PKG_LIBNAME:= libfuse3
+PKG_OPTS:= dev
+
+DISTFILES:= fuse-${PKG_VERSION}.tar.gz
+WRKDIST= $(WRKDIR)/libfuse-fuse-$(PKG_VERSION)
+
+PKG_SUBPKGS:= FUSE3_UTILS LIBFUSE3
+PKGSD_LIBFUSE3:= filesystem in userspace library (v3)
+PKGSC_LIBFUSE3:= libs/misc
+
+include ${ADK_TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,FUSE3_UTILS,fuse-utils3,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,LIBFUSE3,libfuse3,${PKG_VERSION}-${PKG_RELEASE},,${PKGSD_LIBFUSE3},${PKGSC_LIBFUSE3},${PKG_OPTS}))
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+MESON_FLAGS+= -Dinitscriptdir="" \
+ -Dudevrulesdir=""
+
+fuse3-utils-install:
+ ${INSTALL_DIR} ${IDIR_FUSE_UTILS}/usr/bin
+ ${CP} ${WRKINST}/usr/bin/fusermount3 ${IDIR_FUSE_UTILS}/usr/bin
+
+libfuse3-install:
+ ${INSTALL_DIR} ${IDIR_LIBFUSE}/usr/lib
+ ${CP} ${WRKINST}/usr/lib/libfuse3.so* \
+ ${IDIR_LIBFUSE}/usr/lib
+
+include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/fuse3/patches/patch-util_install_helper_sh b/package/fuse3/patches/patch-util_install_helper_sh
new file mode 100644
index 000000000..02aa038fc
--- /dev/null
+++ b/package/fuse3/patches/patch-util_install_helper_sh
@@ -0,0 +1,22 @@
+--- libfuse-fuse-3.16.2.orig/util/install_helper.sh 2023-10-10 09:38:49.000000000 +0200
++++ libfuse-fuse-3.16.2/util/install_helper.sh 2024-02-11 19:19:21.423803542 +0100
+@@ -37,19 +37,3 @@ if $useroot; then
+ fi
+ fi
+
+-if [ "${udevrulesdir}" != "" ]; then
+- install -D -m 644 "${MESON_SOURCE_ROOT}/util/udev.rules" \
+- "${DESTDIR}${udevrulesdir}/99-fuse3.rules"
+-fi
+-
+-if [ "$initscriptdir" != "" ]; then
+- install -D -m 755 "${MESON_SOURCE_ROOT}/util/init_script" \
+- "${DESTDIR}${initscriptdir}/fuse3"
+-
+- if test -x /usr/sbin/update-rc.d && test -z "${DESTDIR}"; then
+- /usr/sbin/update-rc.d fuse3 start 34 S . start 41 0 6 . || /bin/true
+- else
+- echo "== FURTHER ACTION REQUIRED =="
+- echo "Make sure that your init system will start the ${DESTDIR}${initscriptdir}/init.d/fuse3 init script"
+- fi
+-fi
diff --git a/package/fuse3/patches/patch-util_meson_build b/package/fuse3/patches/patch-util_meson_build
new file mode 100644
index 000000000..6b8f915f8
--- /dev/null
+++ b/package/fuse3/patches/patch-util_meson_build
@@ -0,0 +1,12 @@
+--- libfuse-fuse-3.16.2.orig/util/meson.build 2023-10-10 09:38:49.000000000 +0200
++++ libfuse-fuse-3.16.2/util/meson.build 2024-02-11 19:25:24.107798622 +0100
+@@ -26,9 +26,3 @@ if udevrulesdir == ''
+ warning('could not determine udevdir, udev.rules will not be installed')
+ endif
+
+-meson.add_install_script('install_helper.sh',
+- join_paths(get_option('prefix'), get_option('sysconfdir')),
+- join_paths(get_option('prefix'), get_option('bindir')),
+- udevrulesdir,
+- '@0@'.format(get_option('useroot')),
+- get_option('initscriptdir'))
diff --git a/package/fwinstall/Makefile b/package/fwinstall/Makefile
index b05dbbe13..ff1c5fe67 100644
--- a/package/fwinstall/Makefile
+++ b/package/fwinstall/Makefile
@@ -10,7 +10,6 @@ PKG_DESCR:= disk/flash installer
PKG_SECTION:= base/adk
PKG_DEPENDS:= mke2fs parted sfdisk dosfstools mksh
PKG_DEPENDS+= grub grub-tools
-PKG_KDEPENDS:= ext4-fs
NO_DISTFILES:= 1
diff --git a/package/fwupdate/Makefile b/package/fwupdate/Makefile
index 8cf897ed4..738185fd9 100644
--- a/package/fwupdate/Makefile
+++ b/package/fwupdate/Makefile
@@ -5,7 +5,7 @@ include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= fwupdate
PKG_VERSION:= 1.0
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_DESCR:= update firmware
PKG_SECTION:= base/adk
PKG_DEPENDS:= mke2fs
@@ -27,5 +27,9 @@ fwupdate-install:
$(INSTALL_DIR) $(IDIR_FWUPDATE)/usr/sbin
$(INSTALL_BIN) $(WRKBUILD)/fwupdate $(IDIR_FWUPDATE)/usr/sbin
$(INSTALL_BIN) $(WRKBUILD)/fwvalidate $(IDIR_FWUPDATE)/usr/sbin
+ $(SED) "s/@@DISK@@/$(ADK_TARGET_ROOTDEV)/g" \
+ $(IDIR_FWUPDATE)/usr/sbin/fwupdate
+ $(SED) "s/@@DISK@@/$(ADK_TARGET_ROOTDEV)/g" \
+ $(IDIR_FWUPDATE)/usr/sbin/fwvalidate
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/fwupdate/files/fwupdate.postinst b/package/fwupdate/files/fwupdate.postinst
new file mode 100644
index 000000000..17871ff30
--- /dev/null
+++ b/package/fwupdate/files/fwupdate.postinst
@@ -0,0 +1,3 @@
+#!/bin/sh
+. $IPKG_INSTROOT/etc/functions.sh
+add_rcconf fwupdate NO
diff --git a/package/fwupdate/files/fwupdate.service b/package/fwupdate/files/fwupdate.service
deleted file mode 100644
index f54519547..000000000
--- a/package/fwupdate/files/fwupdate.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=Firmware Update Validation
-After=dropbear.service
-
-[Service]
-ExecStart=/usr/sbin/fwvalidate
-
-[Install]
-WantedBy=multi-user.target
diff --git a/package/fwupdate/src/fwupdate b/package/fwupdate/src/fwupdate
index 1efe08339..68796d7bd 100755
--- a/package/fwupdate/src/fwupdate
+++ b/package/fwupdate/src/fwupdate
@@ -2,8 +2,22 @@
# This file is part of the OpenADK project.
# Do update.
-PART0="/dev/sda2"
-PART1="/dev/sda3"
+GRUB=$(which grub-reboot)
+if [ "${GRUB}" = "/usr/sbin/grub-reboot" ]; then
+ REVERSE=0
+else
+ REVERSE=1
+fi
+
+DISK=@@DISK@@
+
+if [ $REVERSE -eq 1 ]; then
+ PART0="/dev/${DISK}p1"
+ PART1="/dev/${DISK}p2"
+else
+ PART0="/dev/${DISK}2"
+ PART1="/dev/${DISK}3"
+fi
# Name of the archive, which is the firmware. For this file is the checksum calculated and
# checked against the one from the tar archive.
@@ -59,10 +73,12 @@ CURRENT_SYS="$(rdev /|awk '{ print $1 }')"
case "$CURRENT_SYS" in
"$PART0")
MOUNTPART="$PART1"
+ PARTNUM=2
OS=OpenADK2
;;
"$PART1")
MOUNTPART="$PART0"
+ PARTNUM=1
OS=OpenADK1
;;
*)
@@ -130,18 +146,23 @@ fi
cd /
umount $MOUNTPART
-grep /boot /proc/mounts 2>/dev/null
-if [ $? -eq 0 ]; then
- mount -o remount,rw /boot
+if [ $REVERSE -eq 1 ]; then
+ echo "Switch bootable partition to new system"
+ sfdisk -A /dev/$DISK $PARTNUM >/dev/null 2>&1
else
- mount /dev/sda1 /boot
-fi
-grub-reboot $OS
grep /boot /proc/mounts 2>/dev/null
-if [ $? -eq 0 ]; then
- mount -o remount,ro /boot
-else
- umount /boot
+ if [ $? -eq 0 ]; then
+ mount -o remount,rw /boot
+ else
+ mount /dev/sda1 /boot
+ fi
+ grub-reboot $OS
+ grep /boot /proc/mounts 2>/dev/null
+ if [ $? -eq 0 ]; then
+ mount -o remount,ro /boot
+ else
+ umount /boot
+ fi
fi
sync
echo "Reboot now to the updated system $OS"
diff --git a/package/fwupdate/src/fwvalidate b/package/fwupdate/src/fwvalidate
index e87c5beed..f388da784 100755
--- a/package/fwupdate/src/fwvalidate
+++ b/package/fwupdate/src/fwvalidate
@@ -2,8 +2,22 @@
# This file is part of the OpenADK project.
# Validate update.
-PART0="/dev/sda2"
-PART1="/dev/sda3"
+GRUB=$(which grub-reboot)
+if [ "${GRUB}" = "/usr/sbin/grub-reboot" ]; then
+ REVERSE=0
+else
+ REVERSE=1
+fi
+
+DISK=@@DISK@@
+
+if [ $REVERSE -eq 1 ]; then
+ PART0="/dev/${DISK}p1"
+ PART1="/dev/${DISK}p2"
+else
+ PART0="/dev/${DISK}2"
+ PART1="/dev/${DISK}3"
+fi
APPLIANCE_NAME=OpenADK
@@ -43,6 +57,24 @@ chk_initial_save(){
echo "please save configuration"
fi
}
+
+updatebootflag(){
+
+ case "$CURRENT_SYS" in
+ "$PART1")
+ sfdisk -A /dev/$DISK 1
+ ;;
+ "$PART0")
+ sfdisk -A /dev/$DISK 2
+ ;;
+ *)
+ echo "Current partition $CURRENT_SYS not recognized"
+ exit 1
+ ;;
+ esac
+
+}
+
updategrub(){
mount -o remount,rw /boot
@@ -120,12 +152,22 @@ if [ $TESTS -eq $TESTSUM ]; then
logger -t update "All Tests passed."
if [ "x$1" = "x" ]; then
logger -t update "Set default boot partition for bootloader."
+ mount -o remount,rw /
rm /firmware_check
+ mount -o remount,ro /
echo "System check was successful" >> $STAT_FILE
- updategrub
+ if [ $REVERSE -eq 1 ]; then
+ echo "Nothing todo. All fine."
+ logger -t update "Nothing todo. All fine."
+ else
+ updategrub
+ fi
fi
else
- logger -t update "Not all tests passed. The the default system remains on the current partition."
+ if [ $REVERSE -eq 1 ]; then
+ updatebootflag
+ fi
+ logger -t update "Not all tests passed. The default system remains on the current partition."
logger -t update "Please try to reboot the system and repeat the update."
echo "ERROR last system update failed, please reboot and try again." >> $STAT_FILE
exit 1
diff --git a/package/gatling/Makefile b/package/gatling/Makefile
index 300d1690a..356ea4c3a 100644
--- a/package/gatling/Makefile
+++ b/package/gatling/Makefile
@@ -4,16 +4,15 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= gatling
-PKG_VERSION:= 0.11
+PKG_VERSION:= 0.16
PKG_RELEASE:= 1
-PKG_HASH:= 9e1cb18612905b63755b0f463e6c5268789b3ab47db364bebe1ad077583e7571
+PKG_HASH:= 5f96438ee201d7f1f6c2e0849ff273b196bdc7493f29a719ce8ed08c8be6365b
PKG_DESCR:= small non-forking webserver
PKG_SECTION:= net/http
PKG_BUILDDEP:= libowfat
-PKG_URL:= http://www.fefe.de/gatling/
-PKG_SITES:= http://dl.fefe.de/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
+PKG_NEEDS:= iconv
+PKG_URL:= https://www.fefe.de/gatling/
+PKG_SITES:= https://www.fefe.de/gatling/
include ${ADK_TOPDIR}/mk/package.mk
@@ -24,7 +23,6 @@ INSTALL_STYLE:= manual
MAKE_FILE:= GNUmakefile
ALL_TARGET:= gatling
-TARGET_CPPFLAGS+= -I${STAGING_TARGET_DIR}/usr/include/owfat
XAKE_FLAGS+= CC='${TARGET_CC}' \
CFLAGS='${TARGET_CPPFLAGS} ${TARGET_CFLAGS}' \
ZLIB=0 DIET= prefix='${WRKINST}/usr'
diff --git a/package/gatling/patches/patch-GNUmakefile b/package/gatling/patches/patch-GNUmakefile
index 723400f5a..4c81b6a99 100644
--- a/package/gatling/patches/patch-GNUmakefile
+++ b/package/gatling/patches/patch-GNUmakefile
@@ -1,16 +1,16 @@
$Id$
---- gatling-0.11.orig/GNUmakefile 2008-12-05 13:31:01.000000000 +0100
-+++ gatling-0.11/GNUmakefile 2011-01-15 14:10:40.000000000 +0100
-@@ -17,7 +17,7 @@ CROSS=
- #CROSS=i686-mingw32-
- CC=$(CROSS)gcc
+--- gatling-0.16.orig/GNUmakefile 2020-05-13 15:53:27.000000000 +0200
++++ gatling-0.16/GNUmakefile 2024-02-23 04:29:47.451896784 +0100
+@@ -25,7 +25,7 @@ CC=$(CROSS)gcc
+ endif
+
CFLAGS=-pipe -Wall
-LDFLAGS=
+LDFLAGS?=
- path = $(subst :, ,$(PATH))
- diet_path = $(foreach dir,$(path),$(wildcard $(dir)/diet))
-@@ -147,9 +147,10 @@ havesetresuid.h: trysetresuid.c
+ #CFLAGS+=-DSTATE_DEBUG -DMOREDEBUG -DDEBUG_EVENTS -DSMDEBUG
+
+@@ -194,9 +194,10 @@ havesetresuid.h: trysetresuid.c
dummy.c:
touch $@
diff --git a/package/gatling/patches/patch-http_c b/package/gatling/patches/patch-http_c
new file mode 100644
index 000000000..7e7c9ff93
--- /dev/null
+++ b/package/gatling/patches/patch-http_c
@@ -0,0 +1,19 @@
+--- gatling-0.16.orig/http.c 2020-11-26 16:36:13.000000000 +0100
++++ gatling-0.16/http.c 2024-02-23 05:17:40.115857819 +0100
+@@ -2202,16 +2202,9 @@ static void get_md5_randomness(const uin
+ static int initialized;
+ if (!initialized) {
+ unsigned char buf[16];
+-#if defined(__linux__) || defined(__OpenBSD__)
+- if (getentropy(buf, sizeof buf)) {
+- buffer_putsflush(buffer_2, "getentropy failed (should never happen)\n");
+- // carry on with bad randomness
+- }
+-#else
+ int fd=open("/dev/urandom",O_RDONLY);
+ read(fd,buf,16);
+ close(fd);
+-#endif
+ MD5Init(&md5_ctx);
+ MD5Update(&md5_ctx,buf,16);
+ initialized=1;
diff --git a/package/gcc/Makefile b/package/gcc/Makefile
index d7b2d072a..d08f01926 100644
--- a/package/gcc/Makefile
+++ b/package/gcc/Makefile
@@ -60,7 +60,7 @@ CONFIGURE_ENV+= have_sys_sdt_h=no
CONFIGURE_ARGS+= --host=$(GNU_TARGET_NAME) \
--target=$(GNU_TARGET_NAME) \
--build=$(GNU_HOST_NAME) \
- --disable-__cxa_atexit \
+ --enable-__cxa_atexit \
--without-headers \
--libexecdir=/usr/lib \
--disable-libssp \
diff --git a/package/gcr/Makefile b/package/gcr/Makefile
index dae86a4dc..97de6c379 100644
--- a/package/gcr/Makefile
+++ b/package/gcr/Makefile
@@ -4,13 +4,13 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= gcr
-PKG_VERSION:= 3.20.0
-PKG_EXTRAVER:= 3.20
-PKG_RELEASE:= 2
-PKG_HASH:= 90572c626d8a708225560c42b4421f7941315247fa1679d4ef569bde7f4bb379
+PKG_VERSION:= 3.40.0
+PKG_EXTRAVER:= 3.40
+PKG_RELEASE:= 1
+PKG_HASH:= b9d3645a5fd953a54285cc64d4fc046736463dbd4dcc25caf5c7b59bed3027f5
PKG_DESCR:= gnome keyring library
PKG_SECTION:= libs/crypto
-PKG_BUILDDEP:= p11-kit
+PKG_BUILDDEP:= p11-kit intltool-host libgtk3 meson-host
PKG_URL:= https://wiki.gnome.org/action/show/Projects/GnomeKeyring
PKG_SITES:= http://ftp.acc.umu.se/pub/gnome/sources/gcr/$(PKG_EXTRAVER)/
@@ -18,6 +18,15 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,GCR,gcr,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+MESON_FLAGS+= -Dintrospection=false \
+ -Dgtk_doc=false
+
gcr-install:
$(INSTALL_DIR) $(IDIR_GCR)/usr/lib
$(CP) $(WRKINST)/usr/lib/lib*.so* \
diff --git a/package/gdb-arc/Makefile b/package/gdb-arc/Makefile
index 244535dff..2beb60e81 100644
--- a/package/gdb-arc/Makefile
+++ b/package/gdb-arc/Makefile
@@ -7,7 +7,7 @@ PKG_NAME:= gdb
PKG_VERSION:= arc-2018.03-release-gdb
PKG_GIT:= tag
PKG_RELEASE:= 1
-PKG_DESCR:= programm debugger
+PKG_DESCR:= program debugger
PKG_SECTION:= app/debug
PKG_DEPENDS:= libncurses zlib libexpat libthread-db
PKG_BUILDDEP:= ncurses readline expat zlib
diff --git a/package/gdb-microblaze/Makefile b/package/gdb-microblaze/Makefile
index cf1aff40d..90f8cd538 100644
--- a/package/gdb-microblaze/Makefile
+++ b/package/gdb-microblaze/Makefile
@@ -6,7 +6,7 @@ include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= gdb
PKG_VERSION:= 7.8.2
PKG_RELEASE:= 1
-PKG_DESCR:= programm debugger
+PKG_DESCR:= program debugger
PKG_SECTION:= app/debug
PKG_HASH:= 605954d5747d5f08ea4b7f48e958d1ebbf39265e18f7f36738deeabb83744485
PKG_DEPENDS:= libncurses zlib libexpat libthread-db
diff --git a/package/gdb-riscv/Makefile b/package/gdb-riscv/Makefile
deleted file mode 100644
index e73baf80b..000000000
--- a/package/gdb-riscv/Makefile
+++ /dev/null
@@ -1,44 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include ${ADK_TOPDIR}/rules.mk
-
-PKG_NAME:= gdb
-PKG_VERSION:= riscv-gdb-8.1
-PKG_GIT:= branch
-PKG_RELEASE:= 1
-PKG_DESCR:= programm debugger
-PKG_SECTION:= app/debug
-PKG_HASH:= 605954d5747d5f08ea4b7f48e958d1ebbf39265e18f7f36738deeabb83744485
-PKG_DEPENDS:= libncurses zlib libexpat libthread-db
-PKG_BUILDDEP:= ncurses readline expat zlib
-PKG_SITES:= https://github.com/riscv/riscv-binutils-gdb.git
-
-PKG_ARCH_DEPENDS:= riscv32 riscv64
-
-include ${ADK_TOPDIR}/mk/package.mk
-
-$(eval $(call PKG_template,GDB,gdb,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-CONFIGURE_ARGS+= --enable-static \
- --without-uiout \
- --disable-tui \
- --disable-gdbtk \
- --disable-gdbserver \
- --without-x \
- --disable-sim \
- --disable-werror \
- --without-python \
- --without-included-gettext \
- --without-auto-load-safe-path \
- --disable-install-libiberty \
- --disable-install-libbfd \
- --with-curses \
- --enable-gdbmi
-
-gdb-install:
- ${INSTALL_DIR} ${IDIR_GDB}/usr/bin
- ${INSTALL_BIN} ${WRKINST}/usr/bin/gdb \
- ${IDIR_GDB}/usr/bin/
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/gdb/Makefile b/package/gdb/Makefile
index 889f31116..e4cbe89a9 100644
--- a/package/gdb/Makefile
+++ b/package/gdb/Makefile
@@ -4,17 +4,17 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= gdb
-PKG_VERSION:= 8.2.1
+PKG_VERSION:= 14.2
PKG_RELEASE:= 1
-PKG_HASH:= 0a6a432907a03c5c8eaad3c3cffd50c00a40c3a5e3c4039440624bae703f2202
-PKG_DESCR:= programm debugger
+PKG_HASH:= 2d4dd8061d8ded12b6c63f55e45344881e8226105f4d2a9b234040efa5ce7772
+PKG_DESCR:= program debugger
PKG_SECTION:= app/debug
PKG_SITES:= ${MASTER_SITE_GNU:=gdb/}
-PKG_DEPENDS:= libncurses zlib libexpat libthread-db
-PKG_BUILDDEP:= ncurses readline expat zlib
+PKG_DEPENDS:= libncurses libreadline zlib libexpat libthread-db libgmp mpfr
+PKG_BUILDDEP:= ncurses readline expat zlib gmp mpfr
PKG_NEEDS:= c++
-PKG_ARCH_DEPENDS:= !arc !cris !avr32 !nios2 !microblaze !or1k !riscv32 !riscv64
+PKG_ARCH_DEPENDS:= !cris !avr32 !microblaze
include ${ADK_TOPDIR}/mk/package.mk
@@ -22,8 +22,12 @@ $(eval $(call PKG_template,GDB,gdb,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},
XAKE_FLAGS+= MAKEINFO=true
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIGURE_ENV+= host_configargs='--with-libgmp-prefix="${STAGING_TARGET_DIR}/usr"'
# --enable-static is required to build libbfd.a
CONFIGURE_ARGS+= --enable-static \
+ --disable-shared \
--without-uiout \
--disable-tui \
--disable-gdbtk \
@@ -39,7 +43,11 @@ CONFIGURE_ARGS+= --enable-static \
--disable-install-libiberty \
--disable-install-libbfd \
--with-system-zlib \
+ --with-system-readline \
--with-curses \
+ --with-libexpat-prefix="${STAGING_TARGET_DIR}/usr" \
+ --with-gmp="${STAGING_TARGET_DIR}/usr" \
+ --with-mpfr="${STAGING_TARGET_DIR}/usr" \
--enable-gdbmi
gdb-install:
diff --git a/package/gdb/patches/patch-gdb_configure b/package/gdb/patches/patch-gdb_configure
deleted file mode 100644
index 251ebf297..000000000
--- a/package/gdb/patches/patch-gdb_configure
+++ /dev/null
@@ -1,96 +0,0 @@
---- gdb-8.0.orig/gdb/configure 2017-06-04 17:54:54.000000000 +0200
-+++ gdb-8.0/gdb/configure 2017-06-20 22:54:16.961589341 +0200
-@@ -14547,93 +14547,6 @@ $as_echo "$gdb_cv_bigtoc" >&6; }
- ;;
- esac
-
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the dynamic export flag" >&5
--$as_echo_n "checking for the dynamic export flag... " >&6; }
--dynamic_list=false
--if test "${gdb_native}" = yes; then
-- # The dynamically loaded libthread_db needs access to symbols in the gdb
-- # executable. Older GNU ld supports --export-dynamic but --dynamic-list
-- # may not be supported there.
-- old_LDFLAGS="$LDFLAGS"
-- # Older GNU ld supports --export-dynamic but --dynamic-list it does not.
-- RDYNAMIC="-Wl,--dynamic-list=${srcdir}/proc-service.list"
-- LDFLAGS="$LDFLAGS $RDYNAMIC"
-- if test "${have_libpython}" = no; then
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--int
--main ()
--{
--
-- ;
-- return 0;
--}
--_ACEOF
--if ac_fn_c_try_link "$LINENO"; then :
-- dynamic_list=true
--fi
--rm -f core conftest.err conftest.$ac_objext \
-- conftest$ac_exeext conftest.$ac_ext
-- else
-- # Workaround http://bugs.python.org/issue4434 where static
-- # libpythonX.Y.a would get its symbols required for
-- # pythonX.Y/lib-dynload/*.so modules hidden by -Wl,--dynamic-list.
-- # Problem does not happen for the recommended libpythonX.Y.so linkage.
--
-- # Note the workaround for Python
-- # http://bugs.python.org/issue10112 earlier has removed
-- # -export-dynamic from PYTHON_LIBS. That's exactly what we want
-- # here too, as otherwise it'd make this -Wl,--dynamic-list test
-- # always pass.
-- old_CFLAGS="$CFLAGS"
-- CFLAGS="$CFLAGS $PYTHON_CFLAGS"
-- old_LIBS="$LIBS"
-- LIBS="$LIBS $PYTHON_LIBS"
-- old_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS $PYTHON_CPPFLAGS"
-- if test "$cross_compiling" = yes; then :
-- true
--else
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--#include "Python.h"
--int
--main ()
--{
--int err;
-- Py_Initialize ();
-- err = PyRun_SimpleString ("import itertools\n");
-- Py_Finalize ();
-- return err == 0 ? 0 : 1;
-- ;
-- return 0;
--}
--_ACEOF
--if ac_fn_c_try_run "$LINENO"; then :
-- dynamic_list=true
--fi
--rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-- conftest.$ac_objext conftest.beam conftest.$ac_ext
--fi
--
-- LIBS="$old_LIBS"
-- CFLAGS="$old_CFLAGS"
-- CPPFLAGS="$old_CPPFLAGS"
-- fi
-- LDFLAGS="$old_LDFLAGS"
--fi
--if $dynamic_list; then
-- found="-Wl,--dynamic-list"
-- RDYNAMIC='-Wl,--dynamic-list=$(srcdir)/proc-service.list'
--else
-- found="-rdynamic"
-- RDYNAMIC="-rdynamic"
--fi
--
--{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $found" >&5
--$as_echo "$found" >&6; }
--
-
- if test ${build} = ${host} -a ${host} = ${target} ; then
- case ${host_os} in
diff --git a/package/gdb/patches/patch-gdb_nat_ppc-linux_h b/package/gdb/patches/patch-gdb_nat_ppc-linux_h
index 20929b4cf..417ee4bdd 100644
--- a/package/gdb/patches/patch-gdb_nat_ppc-linux_h
+++ b/package/gdb/patches/patch-gdb_nat_ppc-linux_h
@@ -1,8 +1,8 @@
---- gdb-7.11.orig/gdb/nat/ppc-linux.h 2016-02-10 04:19:39.000000000 +0100
-+++ gdb-7.11/gdb/nat/ppc-linux.h 2016-04-24 21:19:39.351474402 +0200
+--- gdb-8.3.1.orig/gdb/nat/ppc-linux.h 2019-09-21 00:04:41.000000000 +0200
++++ gdb-8.3.1/gdb/nat/ppc-linux.h 2019-10-16 12:08:42.156039004 +0200
@@ -18,7 +18,9 @@
- #ifndef PPC_LINUX_H
- #define PPC_LINUX_H 1
+ #ifndef NAT_PPC_LINUX_H
+ #define NAT_PPC_LINUX_H
+#define pt_regs uapi_pt_regs
#include <asm/ptrace.h>
diff --git a/package/gdbm/Makefile b/package/gdbm/Makefile
index e3421cec5..dfca242e1 100644
--- a/package/gdbm/Makefile
+++ b/package/gdbm/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= gdbm
-PKG_VERSION:= 1.12
+PKG_VERSION:= 1.21
PKG_RELEASE:= 1
-PKG_HASH:= d97b2166ee867fd6ca5c022efee80702d6f30dd66af0e03ed092285c3af9bcea
+PKG_HASH:= b0b7dbdefd798de7ddccdd8edf6693a30494f7789777838042991ef107339cc2
PKG_DESCR:= disk file format database
PKG_SECTION:= libs/db
PKG_URL:= http://www.gnu.org/software/gdbm/
diff --git a/package/gdbserver/Makefile b/package/gdbserver/Makefile
index d0a9a7c57..7238eb306 100644
--- a/package/gdbserver/Makefile
+++ b/package/gdbserver/Makefile
@@ -4,14 +4,15 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= gdbserver
-PKG_VERSION:= 8.2.1
+PKG_VERSION:= 14.2
PKG_RELEASE:= 1
-PKG_HASH:= 0a6a432907a03c5c8eaad3c3cffd50c00a40c3a5e3c4039440624bae703f2202
-PKG_DESCR:= remote programm debugger utility
+PKG_HASH:= 2d4dd8061d8ded12b6c63f55e45344881e8226105f4d2a9b234040efa5ce7772
+PKG_DESCR:= remote program debugger utility
PKG_SECTION:= app/debug
PKG_NEEDS:= c++
PKG_SITES:= ${MASTER_SITE_GNU:=gdb/}
-PKG_DEPENDS:= libthread-db
+PKG_DEPENDS:= libthread-db libgmp
+PKG_BUILDDEP:= gmp
PKG_LIBC_DEPENDS:= !musl
PKG_ARCH_DEPENDS:= !microblaze
@@ -23,16 +24,17 @@ else
DISTFILES:= gdb-${PKG_VERSION}.tar.xz
WRKDIST= ${WRKDIR}/gdb-${PKG_VERSION}
endif
-WRKSRC= ${WRKDIST}/gdb/gdbserver
+WRKBUILD= ${WRKSRC}/build
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,GDBSERVER,gdbserver,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-ifneq ($(ADK_TARGET_BINFMT_FLAT)$(ADK_TARGET_USE_STATIC_LIBS_ONLY)$(ADK_TARGET_USE_STATIC_AND_SHARED_LIBS),)
-TARGET_LDFLAGS+= -static-libstdc++
-CONFIGURE_ARGS+= --disable-build-with-cxx --with-libthread-db=$(STAGING_TARGET_DIR)/usr/lib/libthread_db.a
-endif
+CONFIGURE_ARGS+= --enable-static \
+ --disable-gdb \
+ --disable-sim \
+ --without-curses \
+ --without-system-zlib
gdbserver-install:
${INSTALL_DIR} ${IDIR_GDBSERVER}/usr/bin
diff --git a/package/gdbserver/patches/patch-gdb_nat_fork-inferior_c b/package/gdbserver/patches/patch-gdb_nat_fork-inferior_c
new file mode 100644
index 000000000..b1949c798
--- /dev/null
+++ b/package/gdbserver/patches/patch-gdb_nat_fork-inferior_c
@@ -0,0 +1,10 @@
+--- gdb-14.2.orig/gdb/nat/fork-inferior.c 2024-03-03 06:55:00.000000000 +0100
++++ gdb-14.2/gdb/nat/fork-inferior.c 2024-03-22 17:02:35.981582750 +0100
+@@ -27,6 +27,7 @@
+ #include "gdbsupport/pathstuff.h"
+ #include "gdbsupport/signals-state-save-restore.h"
+ #include "gdbsupport/gdb_tilde_expand.h"
++#include "linux-ptrace.h"
+ #include <vector>
+
+ extern char **environ;
diff --git a/package/gdk-pixbuf/Makefile b/package/gdk-pixbuf/Makefile
index a5d4ff04d..ee6d9c043 100644
--- a/package/gdk-pixbuf/Makefile
+++ b/package/gdk-pixbuf/Makefile
@@ -10,8 +10,8 @@ PKG_RELEASE:= 1
PKG_HASH:= d55e5b383ee219bd0e23bf6ed4427d56a7db5379729a6e3e0a0e0eba9a8d8879
PKG_DESCR:= image loading and pixel buffer manipulation library
PKG_SECTION:= libs/image
-PKG_BUILDDEP:= libjpeg-turbo libtiff
-HOST_BUILDDEP:= glib-host libffi-host
+PKG_BUILDDEP:= libjpeg-turbo libtiff glib libpng
+HOST_BUILDDEP:= libiconv-host glib-host libffi-host
PKG_NEEDS:= c++
PKG_SITES:= $(MASTER_SITE_GNOME:=gdk-pixbuf/$(PKG_EXTRAVER)/)
PKG_OPTS:= dev
@@ -23,7 +23,7 @@ $(eval $(call HOST_template,GDK_PIXBUF,gdk-pixbuf,$(PKG_VERSION)-$(PKG_RELEASE))
$(eval $(call PKG_template,GDK_PIXBUF,gdk-pixbuf,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
HOST_STYLE:= auto
-HOST_LDFLAGS+= -lffi -lz -ldl -lresolv
+HOST_LDFLAGS+= -lffi -lz -ldl -lresolv -liconv -lmount
HOST_CONFIGURE_ARGS+= --disable-glibtest \
--without-libjpeg \
--without-libpng \
diff --git a/package/genimage/Makefile b/package/genimage/Makefile
index 4791a76e1..889d77eda 100644
--- a/package/genimage/Makefile
+++ b/package/genimage/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= genimage
-PKG_VERSION:= 9
+PKG_VERSION:= 17
PKG_RELEASE:= 1
-PKG_HASH:= 69f35af7edf6f4dbdac7a18ddc69dcf38c501e43d8b50c524555754c51479078
+PKG_HASH:= a8756e3567a0d4d82c36b08ccc1e088250b9006d5670c6b2b014185e6ec60671
PKG_DESCR:= image creation utility
PKG_SECTION:= dev/tools
HOST_BUILDDEP:= confuse-host
diff --git a/package/gettext/Makefile b/package/gettext/Makefile
index 82439e19e..6594eb995 100644
--- a/package/gettext/Makefile
+++ b/package/gettext/Makefile
@@ -9,6 +9,7 @@ PKG_RELEASE:= 1
PKG_HASH:= 9c1781328238caa1685d7bc7a2e1dcf1c6c134e86b42ed554066734b621bd12f
PKG_DESCR:= i18n tools and libs
PKG_SECTION:= libs/misc
+HOST_BUILDDEP:= automake-host
PKG_URL:= https://www.gnu.org/software/gettext/
PKG_SITES:= http://ftp.gnu.org/pub/gnu/gettext/
PKG_OPTS:= dev
diff --git a/package/git/Makefile b/package/git/Makefile
index a3c872f00..2756d68fb 100644
--- a/package/git/Makefile
+++ b/package/git/Makefile
@@ -4,17 +4,25 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= git
-PKG_VERSION:= 2.17.0
+PKG_VERSION:= 2.44.0
PKG_RELEASE:= 1
-PKG_HASH:= e916e5e95e81dbeafa7aac5d719c01108b5c814eb90b746695afa1afedf955c7
+PKG_HASH:= e358738dcb5b5ea340ce900a0015c03ae86e804e7ff64e47aa4631ddee681de3
PKG_DESCR:= fast version control system
PKG_SECTION:= dev/scm
-PKG_BUILDDEP:= curl expat libressl
-PKG_DEPENDS:= libcurl libexpat libressl
+PKG_BUILDDEP:= zlib curl expat
+PKG_DEPENDS:= zlib curl libexpat
PKG_NEEDS:= threads
PKG_URL:= http://git-scm.com/
PKG_SITES:= https://www.kernel.org/pub/software/scm/git/
+PKG_CHOICES_GIT:= WITH_LIBRESSL WITH_OPENSSL
+PKGCD_WITH_LIBRESSL:= use libressl for crypto
+PKGCB_WITH_LIBRESSL:= libressl
+PKGCS_WITH_LIBRESSL:= libressl
+PKGCD_WITH_OPENSSL:= use openssl for crypto
+PKGCB_WITH_OPENSSL:= openssl
+PKGCS_WITH_OPENSSL:= libopenssl
+
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,GIT,git,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
diff --git a/package/glib/Makefile b/package/glib/Makefile
index a90f8f08d..eb77cf8fe 100644
--- a/package/glib/Makefile
+++ b/package/glib/Makefile
@@ -4,15 +4,16 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= glib
-PKG_VERSION:= 2.56.1
+PKG_VERSION:= 2.78.4
PKG_RELEASE:= 1
-PKG_EXTRAVER:= 2.56
-PKG_HASH:= 40ef3f44f2c651c7a31aedee44259809b6f03d3d20be44545cd7d177221c0b8d
+PKG_EXTRAVER:= 2.78
+PKG_HASH:= 24b8e0672dca120cc32d394bccb85844e732e04fe75d18bb0573b2dbc7548f63
PKG_DESCR:= low-level core library that forms the basis of gtk+
PKG_SECTION:= libs/misc
-PKG_DEPENDS:= libpcre zlib
-PKG_BUILDDEP:= glib-host libffi zlib dbus pcre
-HOST_BUILDDEP:= pkgconf-host libiconv-host libffi-host python2-host gettext-host util-linux-host
+PKG_DEPENDS:= pcre2 zlib libffi
+PKG_BUILDDEP:= glib-host util-linux libffi zlib dbus pcre2
+HOST_BUILDDEP:= pkgconf-host libiconv-host libffi-host python3-host gettext-host util-linux-host
+HOST_BUILDDEP+= pcre2-host meson-host
PKG_NEEDS:= threads intl iconv
PKG_URL:= http://www.gtk.org/
PKG_SITES:= http://ftp.gnome.org/pub/GNOME/sources/glib/$(PKG_EXTRAVER)/
@@ -24,41 +25,32 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call HOST_template,GLIB,glib,$(PKG_VERSION)-$(PKG_RELEASE)))
$(eval $(call PKG_template,GLIB,glib,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
-ifeq ($(ADK_PACKAGE_LIBICONV),y)
-CONFIGURE_ARGS+= --with-libiconv=yes
-else
-CONFIGURE_ARGS+= --with-libiconv=no
-endif
-CONFIGURE_ARGS+= --disable-mem-pools \
- --disable-rebuilds \
- --disable-fam \
- --disable-dtrace \
- --disable-compile-warnings \
- --with-pcre=system \
- --with-threads=posix
-CONFIGURE_ENV+= glib_cv_long_long_format=ll \
- glib_cv_stack_grows=no \
- glib_cv_have_strlcpy=no \
- glib_cv_uscore=no \
- ac_cv_func_posix_getpwuid_r=yes \
- ac_cv_func_posix_getgrgid_r=yes
+HOSTWRKBUILD= $(WRKSRC)
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
-HOST_STYLE:= auto
-HOST_CPPFLAGS+= -I$(STAGING_HOST_DIR)/usr/include/libmount
-ifneq ($(OS_FOR_BUILD),CYGWIN)
-HOST_CFLAGS+= -fPIC
-endif
-HOST_CONFIGURE_ARGS+= --disable-fam \
- --disable-dtrace \
- --enable-static \
- --with-pcre=internal \
- --with-libiconv=yes \
- --disable-shared \
- --disable-compile-warnings
+HOST_CONFIG_STYLE:= manual
+HOST_STYLE:= manual
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
-hostpost-install:
- $(CP) $(STAGING_HOST_DIR)/usr/lib/glib-2.0/include/glibconfig.h \
- $(STAGING_HOST_DIR)/usr/include/glib-2.0/
+MESON_FLAGS:= -Dtests=false -Dxattr=false -Doss_fuzz=disabled
+
+host-configure:
+ (cd $(HOSTWRKBUILD) && PATH='$(HOST_PATH)' meson setup --prefix $(STAGING_HOST_DIR)/usr _build)
+
+host-build:
+ (cd $(HOSTWRKBUILD) && PATH='$(HOST_PATH)' meson compile -C _build)
+
+glib-hostinstall:
+ (cd $(HOSTWRKBUILD) && PATH='$(HOST_PATH)' meson install -C _build)
+
+do-configure:
+ (cd $(WRKBUILD) && PATH='$(HOST_PATH)' meson setup --prefix /usr \
+ --libdir lib --cross-file $(STAGING_HOST_DIR)/etc/meson/cross-compilation.conf -Dtests=false _build)
+
+do-build:
+ (cd $(WRKBUILD) && PATH='$(HOST_PATH)' meson compile -C _build)
glib-install:
$(INSTALL_DIR) $(IDIR_GLIB)/usr/lib
diff --git a/package/glib/patches/patch-configure b/package/glib/patches/patch-configure
deleted file mode 100644
index e7dea094f..000000000
--- a/package/glib/patches/patch-configure
+++ /dev/null
@@ -1,11 +0,0 @@
-- glib-2.48.2.orig/configure 2016-08-17 18:37:42.000000000 +0200
-+++ glib-2.48.2/configure 2017-12-14 14:37:31.000000000 +0100
-@@ -6027,7 +6027,7 @@ if test "x$glib_have_cocoa" = "xyes"; th
-
- $as_echo "#define HAVE_COCOA 1" >>confdefs.h
-
-- COCOA_LIBS="-Wl,-framework,Foundation"
-+ COCOA_LIBS="-Wl,-framework,Foundation,-framework,Cocoa"
- LDFLAGS="$LDFLAGS $COCOA_LIBS"
-
- osx_version=`sw_vers -productVersion`
diff --git a/package/glib/patches/patch-glib_gnulib_meson_build b/package/glib/patches/patch-glib_gnulib_meson_build
new file mode 100644
index 000000000..4039f468f
--- /dev/null
+++ b/package/glib/patches/patch-glib_gnulib_meson_build
@@ -0,0 +1,12 @@
+--- glib-2.75.2.orig/glib/gnulib/meson.build 2023-01-06 13:49:52.000000000 +0100
++++ glib-2.75.2/glib/gnulib/meson.build 2023-01-22 14:08:55.068305964 +0100
+@@ -312,9 +312,6 @@ endif
+ if not gl_cv_func_frexp_works and gl_cv_func_frexp_broken_beyond_repair
+ error ('frexp() is missing or broken beyond repair, and we have nothing to replace it with')
+ endif
+-if not gl_cv_func_frexpl_works and gl_cv_func_frexpl_broken_beyond_repair
+- error ('frexpl() is missing or broken beyond repair, and we have nothing to replace it with')
+-endif
+
+ math_h_config.set ('REPLACE_FREXP', gl_cv_func_frexp_works ? 0 : 1)
+ math_h_config.set ('REPLACE_FREXPL', gl_cv_func_frexpl_works ? 0 : 1)
diff --git a/package/glib/patches/patch-meson_build b/package/glib/patches/patch-meson_build
new file mode 100644
index 000000000..c410eac33
--- /dev/null
+++ b/package/glib/patches/patch-meson_build
@@ -0,0 +1,10 @@
+--- glib-2.75.2.orig/meson.build 2023-01-06 13:49:52.000000000 +0100
++++ glib-2.75.2/meson.build 2023-01-22 14:18:11.633406695 +0100
+@@ -513,6 +513,7 @@ if cc.get_id() == 'gcc' or cc.get_id() =
+ '-Werror=missing-include-dirs',
+ '-Werror=pointer-arith',
+ '-Werror=unused-result',
++ '-Wno-error=format-nonliteral',
+ ]
+
+ warning_c_args = warning_common_args + [
diff --git a/package/glibc/Makefile b/package/glibc/Makefile
index 231939fa3..a36c30903 100644
--- a/package/glibc/Makefile
+++ b/package/glibc/Makefile
@@ -23,6 +23,9 @@ $(eval $(call PKG_template,GLIBC,glibc,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPEN
$(eval $(call PKG_template,GLIBC_DEV,glibc-dev,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
$(eval $(call PKG_template,GLIBC_GCONV,glibc-gconv,$(PKG_VERSION)-${PKG_RELEASE},${PKGSS_GLIBC_GCONV},${PKGSD_GLIBC_GCONV},${PKG_SECTION},${PKG_OPTS}))
+GLIBC_CONFOPTS:= --build=$(GNU_HOST_NAME) \
+ --host=$(GNU_TARGET_NAME)
+
GLIBC_ENV:= PATH='${TARGET_PATH}' \
BUILD_CC='${CC_FOR_BUILD}' \
CFLAGS="$(TARGET_CFLAGS)" \
@@ -31,6 +34,7 @@ GLIBC_ENV:= PATH='${TARGET_PATH}' \
CXX="${TARGET_CXX}" \
AR="${TARGET_AR}" \
RANLIB="${TARGET_RANLIB}" \
+ ARCH="${ADK_TARGET_KARCH}" \
libc_cv_forced_unwind=yes \
libc_cv_cc_with_libunwind=yes \
libc_cv_c_cleanup=yes \
@@ -46,19 +50,13 @@ do-install:
ifneq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
${INSTALL_DIR} ${IDIR_GLIBC}/$(ADK_TARGET_LIBC_PATH)
$(CP) $(STAGING_TARGET_DIR)/lib/ld*.so* $(IDIR_GLIBC)/$(ADK_TARGET_LIBC_PATH)
-ifeq ($(ADK_TARGET_ARCH_RISCV64),y)
- ${INSTALL_DIR} ${IDIR_GLIBC}/$(ADK_TARGET_LIBC_PATH)/$(ADK_TARGET_ABI_RISCV)
- $(CP) $(STAGING_TARGET_DIR)/lib/$(ADK_TARGET_ABI_RISCV)/ld*.so* ${IDIR_GLIBC}/$(ADK_TARGET_LIBC_PATH)/$(ADK_TARGET_ABI_RISCV)
-endif
- for file in libc libpthread librt libcrypt libdl libm libanl libnsl libresolv libutil libnss_dns libnss_files; do \
- $(CP) $(STAGING_TARGET_DIR)/$(ADK_TARGET_LIBC_ABI_PATH)/$$file.so* $(IDIR_GLIBC)/$(ADK_TARGET_LIBC_PATH); \
- $(CP) $(STAGING_TARGET_DIR)/$(ADK_TARGET_LIBC_ABI_PATH)/$$file-$(PKG_GLIBCVER).so $(IDIR_GLIBC)/$(ADK_TARGET_LIBC_PATH); \
+ for file in libc libpthread librt libdl libm libanl libnsl libresolv libutil libnss_dns libnss_files; do \
+ $(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_GLIBC)/$(ADK_TARGET_LIBC_PATH); \
done
else
${INSTALL_DIR} ${IDIR_GLIBC}/$(ADK_TARGET_LIBC_PATH)
- for file in libnss_dns libnss_files; do \
- $(CP) $(STAGING_TARGET_DIR)/$(ADK_TARGET_LIBC_ABI_PATH)/$$file.so* $(IDIR_GLIBC)/$(ADK_TARGET_LIBC_PATH); \
- $(CP) $(STAGING_TARGET_DIR)/$(ADK_TARGET_LIBC_ABI_PATH)/$$file-$(PKG_GLIBCVER).so $(IDIR_GLIBC)/$(ADK_TARGET_LIBC_PATH); \
+ -for file in libnss_dns libnss_files; do \
+ $(CP) $(STAGING_TARGET_DIR)/lib/$$file.so* $(IDIR_GLIBC)/$(ADK_TARGET_LIBC_PATH); \
done
endif
${INSTALL_DIR} $(IDIR_GLIBC)/usr/bin
@@ -76,11 +74,7 @@ glibc-gconv-install:
glibc-dev-install:
${INSTALL_DIR} $(IDIR_GLIBC_DEV)/$(ADK_TARGET_LIBC_PATH) $(IDIR_GLIBC_DEV)/usr/lib
-ifeq ($(ADK_TARGET_ARCH_RISCV64),y)
- ${CP} ${STAGING_TARGET_DIR}/usr/lib/*/libc.so ${IDIR_GLIBC_DEV}/usr/lib
-else
- ${CP} ${STAGING_TARGET_DIR}/usr/lib/*/libc.so ${IDIR_GLIBC_DEV}/usr/lib
-endif
+ ${CP} ${STAGING_TARGET_DIR}/usr/lib/libc.so ${IDIR_GLIBC_DEV}/usr/lib
ifeq ($(ADK_TARGET_ABI_O32),y)
ifeq ($(ADK_TARGET_BIG_ENDIAN),y)
$(SED) "s#@@ELFTARGET@@#elf32-tradbigmips#" $(IDIR_GLIBC_DEV)/usr/lib/libc.so
@@ -113,11 +107,7 @@ endif
cd $(IDIR_GLIBC_DEV)/$(ADK_TARGET_LIBC_PATH); ln -sf $$file-$(PKG_GLIBCVER).so $$file.so; \
done
# header package
- ${KERNEL_MAKE_ENV} \
- $(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-linux-$(KERNEL_FILE_VER)-1/linux-$(KERNEL_FILE_VER) \
- $(KERNEL_MAKE_OPTS) \
- INSTALL_HDR_PATH=$(IDIR_GLIBC_DEV)/usr \
- headers_install
+ ${KERNEL_MAKE} INSTALL_HDR_PATH=$(IDIR_GLIBC_DEV)/usr headers_install
(cd $(WRKBUILD); \
$(GLIBC_ENV) \
$(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/$(PKG_NAME)-$(PKG_VERSION)/configure \
diff --git a/package/glu/Makefile b/package/glu/Makefile
index ee8d70b32..ac25d5f29 100644
--- a/package/glu/Makefile
+++ b/package/glu/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= glu
-PKG_VERSION:= 9.0.0
+PKG_VERSION:= 9.0.2
PKG_RELEASE:= 1
-PKG_HASH:= 1f7ad0d379a722fcbd303aa5650c6d7d5544fde83196b42a73d1193568a4df12
+PKG_HASH:= 6e7280ff585c6a1d9dfcdf2fca489251634b3377bfc33c29e4002466a38d02d4
PKG_DESCR:= opengl utility library
PKG_SECTION:= libs/video
PKG_BUILDDEP:= mesa
@@ -15,8 +15,6 @@ PKG_SITES:= ftp://ftp.freedesktop.org/pub/mesa/glu/
PKG_LIBNAME:= libglu
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
-
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LIBGLU,libglu,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
diff --git a/package/gmediaserver/Makefile b/package/gmediaserver/Makefile
index 6b44af9c3..3b5a420db 100644
--- a/package/gmediaserver/Makefile
+++ b/package/gmediaserver/Makefile
@@ -5,11 +5,11 @@ include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= gmediaserver
PKG_VERSION:= 0.13.0
-PKG_RELEASE:= 2
+PKG_RELEASE:= 4
PKG_HASH:= 357030911bcce4ac9e47c2c9219b72e88705a8465899d4e0553bce540fb0fd12
PKG_DESCR:= media server
PKG_SECTION:= mm/video
-PKG_DEPENDS:= id3lib libupnp libmagic
+PKG_DEPENDS:= id3lib libupnp libmagic magic
PKG_BUILDDEP:= id3lib libupnp file
PKG_NEEDS:= c++
PKG_URL:= http://www.gnu.org/software/gmediaserver
diff --git a/package/gmediaserver/patches/patch-src_metadata_c b/package/gmediaserver/patches/patch-src_metadata_c
new file mode 100644
index 000000000..86990d3d0
--- /dev/null
+++ b/package/gmediaserver/patches/patch-src_metadata_c
@@ -0,0 +1,78 @@
+ - magic_file() returns strings like 'audio/mpeg; charset=binary',
+ ignore the last part
+ - Add flv and flac file type definitions
+--- gmediaserver-0.13.0.orig/src/metadata.c 2007-10-20 11:41:32.000000000 +0200
++++ gmediaserver-0.13.0/src/metadata.c 2022-03-28 07:44:13.332180349 +0200
+@@ -86,6 +86,8 @@ typedef enum {
+ FILE_JPG,
+ FILE_PNG,
+ FILE_TIFF,
++ FILE_FLV,
++ FILE_FLAC,
+ FILE_UNKNOWN,
+ FILE_TYPES_COUNT,
+ } FileType;
+@@ -122,6 +124,8 @@ static const char *file_type_dlna_pn[] =
+ [FILE_JPG] = "JPEG_TN",
+ [FILE_PNG] = NULL,
+ [FILE_TIFF] = NULL,
++ [FILE_FLV] = NULL,
++ [FILE_FLAC] = NULL,
+ [FILE_UNKNOWN] = NULL,
+ };
+
+@@ -134,6 +138,8 @@ static const char *file_type_mime_types[
+ [FILE_OGG] = "audio/vorbis",
+ [FILE_MPG] = "video/mpeg",
+ [FILE_MP4] = "video/mp4",
++ [FILE_MP4] = "video/x-msvideo",
++ [FILE_MP4] = "video/x-matroska",
+ [FILE_PLS] = "audio/x-scpls",
+ [FILE_M3U] = "audio/m3u",
+ [FILE_EXTM3U] = "audio/m3u",
+@@ -142,6 +148,8 @@ static const char *file_type_mime_types[
+ [FILE_JPG] = "image/jpeg",
+ [FILE_PNG] = "image/png",
+ [FILE_TIFF] = "image/tiff",
++ [FILE_FLV] = "video/x-flv",
++ [FILE_FLAC] = "audio/flac",
+ [FILE_UNKNOWN] = "application/octet-stream",
+ };
+
+@@ -162,6 +170,8 @@ static const char *file_type_names[] = {
+ [FILE_JPG] = "jpg",
+ [FILE_PNG] = "png",
+ [FILE_TIFF] = "tiff",
++ [FILE_FLV] = "flv",
++ [FILE_FLAC] = "flac",
+ [FILE_UNKNOWN] = "unknown",
+ };
+
+@@ -183,6 +193,8 @@ static const char *file_type_descs[] = {
+ [FILE_JPG] = "JPEG image",
+ [FILE_PNG] = "PNG image",
+ [FILE_TIFF] = "TIFF image",
++ [FILE_FLV] = "Flash video",
++ [FILE_FLAC] = "FLAC audio",
+ };
+
+ static ItemClass file_type_item_classes[] = {
+@@ -202,6 +214,8 @@ static ItemClass file_type_item_classes[
+ [FILE_JPG] = ITEM_IMAGE,
+ [FILE_PNG] = ITEM_IMAGE,
+ [FILE_TIFF] = ITEM_IMAGE,
++ [FILE_FLV] = ITEM_VIDEO,
++ [FILE_FLAC] = ITEM_AUDIO,
+ };
+
+ static Entry *scan_entry(const char *fullpath, const char *name, int32_t parent, int indent_size, InodeList *inl);
+@@ -325,6 +339,9 @@ check_file_content_type(const char *full
+ return FILE_UNKNOWN;
+ }
+
++ /* ignore trailing data */
++ *strchrnul(magic, ';') = '\0';
++
+ if (strcmp(magic, "application/octet-stream") != 0
+ && strncmp(magic, "text/plain", 10) != 0) {
+ struct {
diff --git a/package/gmp/patches/patch-longlong_h b/package/gmp/patches/patch-longlong_h
deleted file mode 100644
index dd42a0ebc..000000000
--- a/package/gmp/patches/patch-longlong_h
+++ /dev/null
@@ -1,11 +0,0 @@
---- gmp-5.1.3.orig/longlong.h 2013-09-30 12:18:28.000000000 +0200
-+++ gmp-5.1.3/longlong.h 2014-01-06 16:07:47.886035812 +0100
-@@ -1230,7 +1230,7 @@ extern UWtype __MPN(udiv_qrnnd) (UWtype
- #define UDIV_TIME 100
- #endif /* __mips */
-
--#if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
-+#if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64 && defined (_LP64)
- #if __GMP_GNUC_PREREQ (4,4)
- #define umul_ppmm(w1, w0, u, v) \
- do { \
diff --git a/package/gnupg/Makefile b/package/gnupg/Makefile
index 8737f9e47..0794aa386 100644
--- a/package/gnupg/Makefile
+++ b/package/gnupg/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= gnupg
-PKG_VERSION:= 1.4.22
+PKG_VERSION:= 1.4.23
PKG_RELEASE:= 1
-PKG_HASH:= 324f70b5df76a4825bce50d2b1702ec3a0fac0d681540bbea1c9aa1e39814fbc
+PKG_HASH:= c9462f17e651b6507848c08c430c791287cd75491f8b5a8b50c6ed46b12678ba
PKG_DESCR:= gnu privacy guard
PKG_SECTION:= app/crypto
PKG_DEPENDS:= libreadline libncurses
@@ -14,7 +14,7 @@ PKG_BUILDDEP:= readline ncurses
PKG_URL:= http://www.gnupg.org/
PKG_SITES:= ftp://ftp.gnupg.org/gcrypt/gnupg/
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SUBPKGS:= GNUPG GPGV
diff --git a/package/gnupg/patches/patch-doc_Makefile_in b/package/gnupg/patches/patch-doc_Makefile_in
index dd8797231..a92720d7f 100644
--- a/package/gnupg/patches/patch-doc_Makefile_in
+++ b/package/gnupg/patches/patch-doc_Makefile_in
@@ -1,6 +1,6 @@
---- gnupg-1.4.10.orig/doc/Makefile.in 2009-09-02 18:20:22.000000000 +0200
-+++ gnupg-1.4.10/doc/Makefile.in 2011-02-24 15:30:49.000000000 +0100
-@@ -833,7 +833,7 @@ uninstall-man: uninstall-man1 uninstall-
+--- gnupg-1.4.23.orig/doc/Makefile.in 2018-06-11 10:47:56.000000000 +0200
++++ gnupg-1.4.23/doc/Makefile.in 2021-09-17 16:02:49.904418167 +0200
+@@ -952,7 +952,7 @@ uninstall-man: uninstall-man1
yat2m: Makefile yat2m.c
diff --git a/package/gnupg/patches/patch-g10_options_h b/package/gnupg/patches/patch-g10_options_h
new file mode 100644
index 000000000..8481ecc4d
--- /dev/null
+++ b/package/gnupg/patches/patch-g10_options_h
@@ -0,0 +1,11 @@
+--- gnupg-1.4.23.orig/g10/options.h 2016-08-17 11:00:11.000000000 +0200
++++ gnupg-1.4.23/g10/options.h 2021-09-17 16:07:15.504427621 +0200
+@@ -29,6 +29,8 @@
+ /* Norcraft can't cope with common symbols */
+ #if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
+ #define EXTERN_UNLESS_MAIN_MODULE extern
++#elif defined (__GNUC__) && __GNUC__ >= 10
++#define EXTERN_UNLESS_MAIN_MODULE __attribute__((__common__))
+ #else
+ #define EXTERN_UNLESS_MAIN_MODULE
+ #endif
diff --git a/package/gnupg/patches/patch-include_cipher_h b/package/gnupg/patches/patch-include_cipher_h
new file mode 100644
index 000000000..4ce471b25
--- /dev/null
+++ b/package/gnupg/patches/patch-include_cipher_h
@@ -0,0 +1,11 @@
+--- gnupg-1.4.23.orig/include/cipher.h 2016-04-22 09:30:18.000000000 +0200
++++ gnupg-1.4.23/include/cipher.h 2021-09-17 16:07:15.504427621 +0200
+@@ -117,6 +117,8 @@ typedef struct gcry_md_context *MD_HANDL
+ #ifndef EXTERN_UNLESS_MAIN_MODULE
+ #if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
+ #define EXTERN_UNLESS_MAIN_MODULE extern
++#elif defined (__GNUC__) && __GNUC__ >= 10
++#define EXTERN_UNLESS_MAIN_MODULE __attribute__((__common__))
+ #else
+ #define EXTERN_UNLESS_MAIN_MODULE
+ #endif
diff --git a/package/gnupg/patches/patch-include_iobuf_h b/package/gnupg/patches/patch-include_iobuf_h
new file mode 100644
index 000000000..31c8739bf
--- /dev/null
+++ b/package/gnupg/patches/patch-include_iobuf_h
@@ -0,0 +1,11 @@
+--- gnupg-1.4.23.orig/include/iobuf.h 2016-04-22 09:30:18.000000000 +0200
++++ gnupg-1.4.23/include/iobuf.h 2021-09-17 16:07:15.504427621 +0200
+@@ -72,6 +72,8 @@ struct iobuf_struct {
+ #ifndef EXTERN_UNLESS_MAIN_MODULE
+ #if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
+ #define EXTERN_UNLESS_MAIN_MODULE extern
++#elif defined (__GNUC__) && __GNUC__ >= 10
++#define EXTERN_UNLESS_MAIN_MODULE __attribute__((__common__))
+ #else
+ #define EXTERN_UNLESS_MAIN_MODULE
+ #endif
diff --git a/package/gnupg/patches/patch-include_memory_h b/package/gnupg/patches/patch-include_memory_h
new file mode 100644
index 000000000..99e4faa91
--- /dev/null
+++ b/package/gnupg/patches/patch-include_memory_h
@@ -0,0 +1,11 @@
+--- gnupg-1.4.23.orig/include/memory.h 2016-04-22 09:30:18.000000000 +0200
++++ gnupg-1.4.23/include/memory.h 2021-09-17 16:07:15.504427621 +0200
+@@ -93,6 +93,8 @@ unsigned secmem_get_flags(void);
+ #ifndef EXTERN_UNLESS_MAIN_MODULE
+ #if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
+ #define EXTERN_UNLESS_MAIN_MODULE extern
++#elif defined (__GNUC__) && __GNUC__ >= 10
++#define EXTERN_UNLESS_MAIN_MODULE __attribute__((__common__))
+ #else
+ #define EXTERN_UNLESS_MAIN_MODULE
+ #endif
diff --git a/package/gnupg/patches/patch-include_mpi_h b/package/gnupg/patches/patch-include_mpi_h
new file mode 100644
index 000000000..a163720ee
--- /dev/null
+++ b/package/gnupg/patches/patch-include_mpi_h
@@ -0,0 +1,11 @@
+--- gnupg-1.4.23.orig/include/mpi.h 2016-04-22 09:30:18.000000000 +0200
++++ gnupg-1.4.23/include/mpi.h 2021-09-17 16:07:15.508427621 +0200
+@@ -38,6 +38,8 @@
+ #ifndef EXTERN_UNLESS_MAIN_MODULE
+ #if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
+ #define EXTERN_UNLESS_MAIN_MODULE extern
++#elif defined (__GNUC__) && __GNUC__ >= 10
++#define EXTERN_UNLESS_MAIN_MODULE __attribute__((__common__))
+ #else
+ #define EXTERN_UNLESS_MAIN_MODULE
+ #endif
diff --git a/package/gnupg2/Makefile b/package/gnupg2/Makefile
index de1b8f03b..a9e5a44c0 100644
--- a/package/gnupg2/Makefile
+++ b/package/gnupg2/Makefile
@@ -4,13 +4,13 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= gnupg2
-PKG_VERSION:= 2.2.7
+PKG_VERSION:= 2.4.4
PKG_RELEASE:= 1
-PKG_HASH:= d95b361ee6ef7eff86af40c8c72bf9313736ac9f7010d6604d78bf83818e976e
+PKG_HASH:= 67ebe016ca90fa7688ce67a387ebd82c6261e95897db7b23df24ff335be85bc6
PKG_DESCR:= gnu privacy guard (modern)
PKG_SECTION:= app/crypto
PKG_DEPENDS:= libreadline libncurses libgcrypt libgpg-error libassuan
-PKG_DEPENDS+= libksba npth
+PKG_DEPENDS+= libksba npth pinentry
PKG_BUILDDEP:= readline ncurses libgcrypt libgpg-error libassuan
PKG_BUILDDEP+= libksba npth
PKG_NEEDS:= iconv
@@ -35,7 +35,9 @@ CONFIGURE_ARGS+= --disable-dirmngr \
--disable-exec \
--disable-ldap \
--disable-rpath \
- --disable-regex
+ --disable-regex \
+ --disable-tests \
+ --disable-doc
gpgv2-install:
$(INSTALL_DIR) $(IDIR_GPGV2)/usr/bin
@@ -45,6 +47,7 @@ gpgv2-install:
gnupg2-install:
$(INSTALL_DIR) $(IDIR_GNUPG2)/usr/bin/
$(INSTALL_BIN) $(WRKBUILD)/g10/gpg $(IDIR_GNUPG2)/usr/bin/
+ $(INSTALL_BIN) $(WRKBUILD)/agent/gpg-agent $(IDIR_GNUPG2)/usr/bin/
# we need root privileges for secure memory (locked pages)
chmod u+s $(IDIR_GNUPG2)/usr/bin/gpg
diff --git a/package/gnupg2/patches/patch-Makefile_in b/package/gnupg2/patches/patch-Makefile_in
deleted file mode 100644
index 54361aff9..000000000
--- a/package/gnupg2/patches/patch-Makefile_in
+++ /dev/null
@@ -1,23 +0,0 @@
---- gnupg-2.2.0.orig/Makefile.in 2017-08-28 11:21:34.000000000 +0200
-+++ gnupg-2.2.0/Makefile.in 2017-09-06 19:20:04.560251562 +0200
-@@ -220,8 +220,7 @@ am__define_uniq_tagged_files = \
- ETAGS = etags
- CTAGS = ctags
- CSCOPE = cscope
--DIST_SUBDIRS = m4 common kbx g10 sm agent scd g13 dirmngr tools po doc \
-- tests
-+DIST_SUBDIRS = m4 common kbx g10 agent scd g13 dirmngr tools
- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
- distdir = $(PACKAGE)-$(VERSION)
- top_distdir = $(distdir)
-@@ -492,8 +491,8 @@ DISTCLEANFILES = g10defs.h
- @BUILD_DOC_FALSE@doc =
- @BUILD_DOC_TRUE@doc = doc
- SUBDIRS = m4 common kbx \
-- ${gpg} ${sm} ${agent} ${scd} ${g13} ${dirmngr} \
-- tools po ${doc} tests
-+ ${gpg} ${agent} ${scd} ${g13} ${dirmngr} \
-+ tools
-
- dist_doc_DATA = README
- gen_start_date = 2011-12-01T06:00:00
diff --git a/package/gnutls/Makefile b/package/gnutls/Makefile
index a3c3fc1c5..ae1db5a19 100644
--- a/package/gnutls/Makefile
+++ b/package/gnutls/Makefile
@@ -4,16 +4,16 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= gnutls
-PKG_VERSION:= 3.5.18
+PKG_VERSION:= 3.8.4
PKG_RELEASE:= 1
-PKG_HASH:= ae2248d9e78747cf9c469dde81ff8f90b56838b707a0637f3f7d4eee90e80234
+PKG_HASH:= 2bea4e154794f3f00180fa2a5c51fe8b005ac7a31cd58bd44cdfa7f36ebc3a9b
PKG_DESCR:= transport layer security library
PKG_SECTION:= libs/crypto
PKG_DEPENDS:= libgcrypt libtasn1 zlib libnettle libgmp libunistring
PKG_BUILDDEP:= libgcrypt liblzo libtasn1
PKG_BUILDDEP+= zlib ncurses libnettle libunistring
PKG_URL:= http://www.gnutls.org/
-PKG_SITES:= https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/
+PKG_SITES:= https://www.gnupg.org/ftp/gcrypt/gnutls/v3.8/
PKG_LIBNAME:= libgnutls
PKG_OPTS:= dev
@@ -39,7 +39,8 @@ endif
TARGET_LDFLAGS+= -pthread
CONFIGURE_ARGS+= --disable-rpath \
--disable-doc \
- --with-libunistring-prefix='$(STAGING_TARGET_DIR)/usr' \
+ --disable-tests \
+ --disable-seccomp-tests \
--without-libz-prefix \
--without-p11-kit
CONFIGURE_ENV+= ac_cv_prog_AR='$(TARGET_CROSS)ar'
@@ -50,7 +51,7 @@ libgnutls-install:
gnutls-utils-install:
$(INSTALL_DIR) $(IDIR_GNUTLS_UTILS)/usr/bin
- $(CP) $(WRKINST)/usr/bin/{{cert,srp,psk}tool,gnutls-{cli,serv}} \
+ $(CP) $(WRKINST)/usr/bin/{{cert,psk}tool,gnutls-{cli,serv}} \
$(IDIR_GNUTLS_UTILS)/usr/bin
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/gpgme/Makefile b/package/gpgme/Makefile
index 60a741c98..8f531aa16 100644
--- a/package/gpgme/Makefile
+++ b/package/gpgme/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= gpgme
-PKG_VERSION:= 1.9.0
+PKG_VERSION:= 1.23.2
PKG_RELEASE:= 1
-PKG_HASH:= 1b29fedb8bfad775e70eafac5b0590621683b2d9869db994568e6401f4034ceb
+PKG_HASH:= 9499e8b1f33cccb6815527a1bc16049d35a6198a6c5fae0185f2bd561bce5224
PKG_DESCR:= easy access to gnupg for applications
PKG_SECTION:= libs/crypto
PKG_DEPENDS:= libgpg-error libassuan
diff --git a/package/gpm/patches/patch-src_headers_daemon_h b/package/gpm/patches/patch-src_headers_daemon_h
new file mode 100644
index 000000000..2ae27b92b
--- /dev/null
+++ b/package/gpm/patches/patch-src_headers_daemon_h
@@ -0,0 +1,11 @@
+--- gpm-1.20.7.orig/src/headers/daemon.h 2012-10-26 23:21:38.000000000 +0200
++++ gpm-1.20.7/src/headers/daemon.h 2024-02-12 15:22:13.446541463 +0100
+@@ -180,7 +180,7 @@ extern struct mouse_features mouse_tabl
+ extern Gpm_Type mice[];
+ extern Gpm_Type *repeated_type;
+
+-time_t last_selection_time;
++extern time_t last_selection_time;
+
+
+
diff --git a/package/gpsd/Makefile b/package/gpsd/Makefile
index b0523f5d9..7b34eb0fa 100644
--- a/package/gpsd/Makefile
+++ b/package/gpsd/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= gpsd
-PKG_VERSION:= 3.16
+PKG_VERSION:= 3.25
PKG_RELEASE:= 1
-PKG_HASH:= 03579af13a4d3fe0c5b79fa44b5f75c9f3cac6749357f1d99ce5d38c09bc2029
+PKG_HASH:= b368b6a305e3f7a6382d23a0cbfc1d78923060b6b7f54cf7987a73c7b4a9afc2
PKG_DESCR:= interface daemon for gps receivers
PKG_SECTION:= sys/hw
PKG_BUILDDEP:= scons-host ncurses
@@ -31,7 +31,7 @@ INSTALL_STYLE:= manual
do-install:
(cd $(WRKBUILD); env PATH='$(TARGET_PATH)' CCFLAGS='' DESTDIR='$(WRKINST)' \
- scons install prefix=/usr platform=linux python=no chrpath=no bluez=no usb=no libgpsmm=no)
+ $(STAGING_HOST_DIR)/usr/bin/python3 $(STAGING_HOST_DIR)/usr/bin/scons install prefix=/usr platform=linux python=no chrpath=no bluez=no usb=no libgpsmm=no)
gpsd-install:
${INSTALL_DIR} ${IDIR_GPSD}/usr/lib ${IDIR_GPSD}/usr/sbin
diff --git a/package/gpsd/patches/patch-SConstruct b/package/gpsd/patches/patch-SConstruct
deleted file mode 100644
index 0937d9f67..000000000
--- a/package/gpsd/patches/patch-SConstruct
+++ /dev/null
@@ -1,12 +0,0 @@
---- gpsd-3.10.orig/SConstruct 2013-11-22 14:10:01.000000000 +0100
-+++ gpsd-3.10/SConstruct 2014-02-07 19:33:32.000000000 +0100
-@@ -231,6 +231,9 @@ for (name, default, help) in pathopts:
-
- env['VERSION'] = gpsd_version
- env['PYTHON'] = sys.executable
-+env['PLATFORM'] = "posix"
-+env['SHLIBSUFFIX'] = ".so"
-+env['SHLINKFLAGS'] = "-shared"
-
- # Set defaults from environment. Note that scons doesn't cope well
- # with multi-word CPPFLAGS/LDFLAGS/SHLINKFLAGS values; you'll have to
diff --git a/package/gpsd/patches/patch-gpsmon_c b/package/gpsd/patches/patch-gpsmon_c
deleted file mode 100644
index ac52866d0..000000000
--- a/package/gpsd/patches/patch-gpsmon_c
+++ /dev/null
@@ -1,13 +0,0 @@
---- gpsd-3.10.orig/gpsmon.c 2013-11-21 09:57:44.000000000 +0100
-+++ gpsd-3.10/gpsmon.c 2014-03-16 09:08:34.000000000 +0100
-@@ -505,6 +505,10 @@ static /*@null@*/ char *curses_get_comma
- static char line[80];
- int c;
-
-+#ifndef __GLIBC__
-+#define CTRL(x) (x&037)
-+#endif
-+
- c = wgetch(cmdwin);
- if (c == CTRL('L')) {
- (void)clearok(stdscr, true);
diff --git a/package/gptfdisk/Makefile b/package/gptfdisk/Makefile
index bd01bc0ac..37d170761 100644
--- a/package/gptfdisk/Makefile
+++ b/package/gptfdisk/Makefile
@@ -9,8 +9,10 @@ PKG_RELEASE:= 1
PKG_HASH:= 864c8aee2efdda50346804d7e6230407d5f42a8ae754df70404dd8b2fdfaeac7
PKG_DESCR:= utilities to create gpt partition tables
PKG_SECTION:= sys/fs
-PKG_BUILDDEP:= util-linux popt
+PKG_DEPENDS:= libncurses libuuid
+PKG_BUILDDEP:= util-linux popt ncurses
HOST_BUILDDEP:= util-linux-host popt-host
+PKG_NEEDS:= c++
PKG_URL:= http://www.rodsbooks.com/gdisk/
PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=gptfdisk/}
diff --git a/package/grep/Makefile b/package/grep/Makefile
index 56f668e6c..845ba5685 100644
--- a/package/grep/Makefile
+++ b/package/grep/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= grep
-PKG_VERSION:= 3.0
+PKG_VERSION:= 3.11
PKG_RELEASE:= 1
-PKG_HASH:= e2c81db5056e3e8c5995f0bb5d0d0e1cad1f6f45c3b2fc77b6e81435aed48ab5
+PKG_HASH:= 1db2aedde89d0dea42b16d9528f894c8d15dae4e190b59aecc78f5a951276eab
PKG_DESCR:= global search for a regex
PKG_SECTION:= base/tools
PKG_DEPENDS:= libpcre
@@ -24,8 +24,9 @@ $(eval $(call HOST_template,GREP,grep,$(PKG_VERSION)-${PKG_RELEASE}))
$(eval $(call PKG_template,GREP,grep,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
grep-install:
- $(INSTALL_DIR) $(IDIR_GREP)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/{e,f,}grep $(IDIR_GREP)/usr/bin
+ $(INSTALL_DIR) $(IDIR_GREP)/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/{e,f,}grep \
+ $(IDIR_GREP)/bin
include ${ADK_TOPDIR}/mk/host-bottom.mk
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/grub/Makefile b/package/grub/Makefile
index ab36d217e..519958096 100644
--- a/package/grub/Makefile
+++ b/package/grub/Makefile
@@ -4,14 +4,15 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= grub
-PKG_VERSION:= 07662af7aed55bcec448bc2a6610de1f0cb62100
+PKG_VERSION:= 2.06
PKG_RELEASE:= 1
+PKG_HASH:= b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1
PKG_DESCR:= multiboot boot loader
PKG_SECTION:= base/boot
PKG_BUILDDEP:= bison-host grub-host
-HOST_BUILDDEP:= python2-host
+HOST_BUILDDEP:= python3-host
PKG_URL:= http://www.gnu.org/software/grub
-PKG_SITES:= https://git.savannah.gnu.org/git/grub.git
+PKG_SITES:= https://ftp.gnu.org/gnu/grub/
PKG_NOPARALLEL:= 1
PKG_ARCH_DEPENDS:= x86 x86_64 mips mips64 ppc ppc64
@@ -36,8 +37,6 @@ $(eval $(call PKG_template,GRUB_TOOLS,grub-tools,$(PKG_VERSION)-${PKG_RELEASE},$
TARGET_CFLAGS:=$(filter-out -fstack-protector-all,$(TARGET_CFLAGS))
TARGET_CFLAGS:=$(filter-out -flto,$(TARGET_CFLAGS))
-AUTOTOOL_STYLE:= autogen
-
ifeq ($(ADK_PACKAGE_GRUB_ARC),y)
GRUB_ARCH= mips-arc
GRUB_IMAGE= grub.img
diff --git a/package/grub/files/grub-dual.cfg b/package/grub/files/grub-dual.cfg
index bae2fa414..46b5451ad 100644
--- a/package/grub/files/grub-dual.cfg
+++ b/package/grub/files/grub-dual.cfg
@@ -40,11 +40,15 @@ function savedefault {
}
menuentry "OpenADK1" {
- set root=(hd0,2)
- linux (hd0,2)/kernel root=/dev/@@ROOTDEV@@2 rootfstype=ext4 rootwait panic=5
+ insmod part_gpt
+ insmod ext2
+ set root=(hd0,gpt2)
+ linux (hd0,2)/boot/kernel root=/dev/@@ROOTDEV@@2 rootfstype=ext4 rootwait panic=5
}
menuentry "OpenADK2" {
- set root=(hd0,3)
- linux (hd0,3)/kernel root=/dev/@@ROOTDEV@@3 rootfstype=ext4 rootwait panic=5
+ insmod part_gpt
+ insmod ext2
+ set root=(hd0,gpt3)
+ linux (hd0,3)/boot/kernel root=/dev/@@ROOTDEV@@3 rootfstype=ext4 rootwait panic=5
}
diff --git a/package/grub/files/grub.cfg b/package/grub/files/grub.cfg
index 8d20ab243..3fdc48eda 100644
--- a/package/grub/files/grub.cfg
+++ b/package/grub/files/grub.cfg
@@ -6,9 +6,9 @@ set default=0
set timeout=3
menuentry "OpenADK" {
- insmod part_msdos
+ insmod part_gpt
insmod ext2
- set root='hd0,msdos1'
+ set root='hd0,gpt2'
echo "Loading OpenADK"
- linux16 /boot/kernel root=/dev/sda1 rootfstype=ext4 rootwait panic=10
+ linux /boot/kernel root=/dev/sda2 rootfstype=ext4 rootwait panic=10
}
diff --git a/package/grub/patches/patch-grub-core_Makefile_am b/package/grub/patches/patch-grub-core_Makefile_am
deleted file mode 100644
index 1c2fde022..000000000
--- a/package/grub/patches/patch-grub-core_Makefile_am
+++ /dev/null
@@ -1,10 +0,0 @@
---- grub-07662af7aed55bcec448bc2a6610de1f0cb62100.orig/grub-core/Makefile.am 2017-02-12 20:56:32.000000000 +0100
-+++ grub-07662af7aed55bcec448bc2a6610de1f0cb62100/grub-core/Makefile.am 2017-03-28 08:00:46.000000000 +0200
-@@ -61,6 +61,7 @@ grub_script.yy.c: grub_script.yy.h
-
- rs_decoder.h: $(srcdir)/lib/reed_solomon.c
- $(TARGET_CC) $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Os -I$(top_builddir) -S -DSTANDALONE -o $@ $< -g0 -mregparm=3 -ffreestanding
-+ sed -i -e "s#.*macosx_version_min.*##" $@
-
- CLEANFILES += grub_script.yy.c grub_script.yy.h
-
diff --git a/package/gst-plugins-base/Makefile b/package/gst-plugins-base/Makefile
index 182ed4656..c612cd63e 100644
--- a/package/gst-plugins-base/Makefile
+++ b/package/gst-plugins-base/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= gst-plugins-base
-PKG_VERSION:= 1.8.2
+PKG_VERSION:= 1.19.3
PKG_RELEASE:= 1
-PKG_HASH:= 9d7109c8fb0a5dec8edb17b0053c59a46aba7ddf48dc48ea822ebbbd4339d38d
+PKG_HASH:= e277f198623a26c1b0a1e19734656392e9368bebf3677cd94262a1316a960827
PKG_DESCR:= gstreamer base plugins
PKG_SECTION:= libs/video
PKG_DEPENDS:= gstreamer
@@ -19,8 +19,13 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,GST_PLUGINS_BASE,gst-plugins-base,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
TARGET_CPPFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE
-CONFIGURE_ARGS+= --without-x
gst-plugins-base-install:
$(INSTALL_DIR) $(IDIR_GST_PLUGINS_BASE)/usr/lib/gstreamer-1.0/
diff --git a/package/gst-plugins-good/Makefile b/package/gst-plugins-good/Makefile
index 53a6b0943..8feb16c2f 100644
--- a/package/gst-plugins-good/Makefile
+++ b/package/gst-plugins-good/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= gst-plugins-good
-PKG_VERSION:= 1.8.2
+PKG_VERSION:= 1.19.3
PKG_RELEASE:= 1
-PKG_HASH:= 8d7549118a3b7a009ece6bb38a05b66709c551d32d2adfd89eded4d1d7a23944
+PKG_HASH:= 79ea32a77fa47e6596530e38113bf97c113fd95658087d9a91ffb8af47d11d07
PKG_DESCR:= gstreamer good plugins
PKG_SECTION:= libs/video
PKG_DEPENDS:= gstreamer
@@ -19,8 +19,13 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,GST_PLUGINS_GOOD,gst-plugins-good,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
TARGET_CPPFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE
-CONFIGURE_ARGS+= --without-x
gst-plugins-good-install:
$(INSTALL_DIR) $(IDIR_GST_PLUGINS_GOOD)/usr/lib/gstreamer-1.0/
diff --git a/package/gstreamer/Makefile b/package/gstreamer/Makefile
index 07d54db05..a59bbf7d1 100644
--- a/package/gstreamer/Makefile
+++ b/package/gstreamer/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= gstreamer
-PKG_VERSION:= 1.8.2
-PKG_RELEASE:= 2
-PKG_HASH:= 9dbebe079c2ab2004ef7f2649fa317cabea1feb4fb5605c24d40744b90918341
+PKG_VERSION:= 1.19.3
+PKG_RELEASE:= 1
+PKG_HASH:= 906d7d4bf92f941586c0cbce717d9cad6aac36994e16fa6f2f153e07e3221bca
PKG_DESCR:= opensource multimedia framework
PKG_SECTION:= libs/video
PKG_BUILDDEP:= glib
@@ -19,10 +19,15 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,GSTREAMER,gstreamer,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-CONFIGURE_ARGS+= --disable-examples \
- --disable-tests \
- --disable-benchmarks \
- --disable-checks
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+MESON_FLAGS+= -Dcheck=disabled \
+ -Ddoc=disabled \
+ -Dexamples=disabled
gstreamer-install:
$(INSTALL_DIR) $(IDIR_GSTREAMER)/usr/lib
diff --git a/package/gzip/Makefile b/package/gzip/Makefile
index 1a5b0590a..cd26a977c 100644
--- a/package/gzip/Makefile
+++ b/package/gzip/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= gzip
-PKG_VERSION:= 1.9
+PKG_VERSION:= 1.13
PKG_RELEASE:= 1
-PKG_HASH:= ae506144fc198bd8f81f1f4ad19ce63d5a2d65e42333255977cf1dcf1479089a
+PKG_HASH:= 7454eb6935db17c6655576c2e1b0fabefd38b4d0936e0f87f48cd062ce91a057
PKG_DESCR:= compression utility
PKG_SECTION:= app/archive
PKG_URL:= http://www.gnu.org/software/gzip/
diff --git a/package/harfbuzz/Makefile b/package/harfbuzz/Makefile
index 41711b0e4..118648eab 100644
--- a/package/harfbuzz/Makefile
+++ b/package/harfbuzz/Makefile
@@ -4,19 +4,19 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= harfbuzz
-PKG_VERSION:= 1.4.2
+PKG_VERSION:= 3.4.0
PKG_RELEASE:= 1
-PKG_HASH:= 8f234dcfab000fdec24d43674fffa2fdbdbd654eb176afbde30e8826339cb7b3
+PKG_HASH:= 810bcd3d22fae3c2c18c3688455abc1cd0d7fb2fae25404890b0d77e6443bd0a
PKG_DESCR:= opentype text shaping engine
PKG_SECTION:= libs/fonts
-PKG_SITES:= http://www.freedesktop.org/software/harfbuzz/release/
+PKG_SITES:= https://github.com/harfbuzz/harfbuzz/archive/refs/tags/
PKG_DEPENDS:= cairo icu4c
PKG_BUILDDEP:= cairo icu4c
HOST_BUILDDEP:= cairo-host icu4c-host
PKG_NEEDS:= c++
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
+DISTFILES:= ${PKG_VERSION}.tar.gz
include $(ADK_TOPDIR)/mk/host.mk
include $(ADK_TOPDIR)/mk/package.mk
@@ -24,8 +24,18 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call HOST_template,HARFBUZZ,harfbuzz,$(PKG_VERSION)-${PKG_RELEASE}))
$(eval $(call PKG_template,HARFBUZZ,harfbuzz,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-HOST_LDFLAGS+= -lpthread -lrt
-HOST_STYLE:= auto
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+HOST_STYLE:= meson
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+MESON_FLAGS+= -Dtests=disabled
+
+host-postinstall:
+ $(CP) $(WRKBUILD)/meson-private/harfbuzz.pc \
+ $(STAGING_HOST_DIR)/usr/lib/pkgconfig/
harfbuzz-install:
$(INSTALL_DIR) $(IDIR_HARFBUZZ)/usr/lib
diff --git a/package/harfbuzz/patches/patch-Makefile_in b/package/harfbuzz/patches/patch-Makefile_in
deleted file mode 100644
index 9ef495e70..000000000
--- a/package/harfbuzz/patches/patch-Makefile_in
+++ /dev/null
@@ -1,11 +0,0 @@
---- harfbuzz-1.2.3.orig/Makefile.in 2016-02-25 04:26:05.967296536 +0100
-+++ harfbuzz-1.2.3/Makefile.in 2016-04-03 19:27:12.062508784 +0200
-@@ -373,7 +373,7 @@ top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- NULL =
- ACLOCAL_AMFLAGS = -I m4
--SUBDIRS = src util test docs win32
-+SUBDIRS = src
- EXTRA_DIST = \
- autogen.sh \
- harfbuzz.doap \
diff --git a/package/harfbuzz/patches/patch-src_harfbuzz_pc_in b/package/harfbuzz/patches/patch-src_harfbuzz_pc_in
deleted file mode 100644
index 291829515..000000000
--- a/package/harfbuzz/patches/patch-src_harfbuzz_pc_in
+++ /dev/null
@@ -1,18 +0,0 @@
---- harfbuzz-1.2.3.orig/src/harfbuzz.pc.in 2016-01-06 13:00:36.113138042 +0100
-+++ harfbuzz-1.2.3/src/harfbuzz.pc.in 2016-03-12 21:55:46.457327612 +0100
-@@ -1,13 +1,10 @@
- prefix=%prefix%
--exec_prefix=%exec_prefix%
--libdir=%libdir%
--includedir=%includedir%
-
- Name: harfbuzz
- Description: HarfBuzz text shaping library
- Version: %VERSION%
-
--Libs: -L${libdir} -lharfbuzz
-+Libs: -L${prefix}/lib -lharfbuzz
- Libs.private: %libs_private%
- Requires.private: %requires_private%
--Cflags: -I${includedir}/harfbuzz
-+Cflags: -I${prefix}/include/harfbuzz
diff --git a/package/haveged/Makefile b/package/haveged/Makefile
index 4e7284017..2779bb55a 100644
--- a/package/haveged/Makefile
+++ b/package/haveged/Makefile
@@ -4,16 +4,16 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= haveged
-PKG_VERSION:= 1.9.1
+PKG_VERSION:= 1.9.18
PKG_RELEASE:= 1
-PKG_HASH:= 9c2363ed9542a6784ff08e247182137e71f2ddb79e8e6c1ac4ad50d21ced3715
+PKG_HASH:= b835fa02b52ee7d06276e028571cadcb14d08f5e5a4b5767adf81451f70561c7
PKG_DESCR:= entropy gathering daemon
PKG_SECTION:= sys/misc
-PKG_SITES:= http://www.issihosts.com/haveged/
+PKG_SITES:= https://github.com/jirka-h/haveged/archive/refs/tags/
PKG_ARCH_DEPENDS:= !arm !mips
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+DISTFILES:= v$(PKG_VERSION).tar.gz
include $(ADK_TOPDIR)/mk/package.mk
@@ -23,7 +23,7 @@ CONFIGURE_ARGS+= --enable-clock_gettime=yes
haveged-install:
$(INSTALL_DIR) $(IDIR_HAVEGED)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libhaveg*.so* \
+ -$(CP) $(WRKINST)/usr/lib/libhaveg*.so* \
$(IDIR_HAVEGED)/usr/lib
$(INSTALL_DIR) $(IDIR_HAVEGED)/usr/sbin
$(INSTALL_BIN) $(WRKINST)/usr/sbin/haveged \
diff --git a/package/hdparm/Makefile b/package/hdparm/Makefile
index 060fe36c0..df273806b 100644
--- a/package/hdparm/Makefile
+++ b/package/hdparm/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= hdparm
-PKG_VERSION:= 9.50
+PKG_VERSION:= 9.63
PKG_RELEASE:= 1
-PKG_HASH:= 0892b44bd817c251264a24f6ecbbb010958033e0395d2030f25f1c5608ac780e
+PKG_HASH:= 70785deaebba5877a89c123568b41dee990da55fc51420f13f609a1072899691
PKG_DESCR:= get/set ata/sata drive parameters
PKG_SECTION:= sys/hw
PKG_URL:= http://sourceforge.net/projects/hdparm
diff --git a/package/heimdal/Makefile b/package/heimdal/Makefile
index ee1235a5e..53390c29d 100644
--- a/package/heimdal/Makefile
+++ b/package/heimdal/Makefile
@@ -4,13 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= heimdal
-PKG_VERSION:= 1.5.3
-PKG_RELEASE:= 3
-PKG_HASH:= aac27bedb33c341b6aed202af07ccc816146a893148721f8123abbbf93bbfea5
+PKG_VERSION:= 7.7.0
+PKG_RELEASE:= 1
+PKG_HASH:= f02d3314d634cc55eb9cf04a1eae0d96b293e45a1f837de9d894e800161b7d1b
PKG_DESCR:= kerberos server
PKG_SECTION:= app/crypto
+HOST_BUILDDEP:= ncurses-host
PKG_URL:= http://www.h5l.org/
-PKG_SITES:= http://www.h5l.org/dist/src/
+PKG_SITES:= https://github.com/heimdal/heimdal/releases/download/heimdal-${PKG_VERSION}/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
@@ -21,6 +22,9 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call HOST_template,HEIMDAL,heimdal,$(PKG_VERSION)-${PKG_RELEASE}))
+# patch changes configure.ac, have to recreate
+AUTOTOOL_STYLE:= autoreconf
+
HOST_STYLE:= manual
ifeq ($(OS_FOR_BUILD),Darwin)
diff --git a/package/heimdal/patches/heimdal_tinfo.patch b/package/heimdal/patches/heimdal_tinfo.patch
new file mode 100644
index 000000000..cd64c7553
--- /dev/null
+++ b/package/heimdal/patches/heimdal_tinfo.patch
@@ -0,0 +1,23 @@
+ Found in Gentoo portage
+--- heimdal-1.5/configure.ac.orig 2011-08-01 12:49:33.554689000 +0200
++++ heimdal-1.5/configure.ac 2011-08-01 13:54:12.707009421 +0200
+@@ -444,7 +444,7 @@
+ #endif
+ ],[0,0,0,0,0])
+
+-AC_FIND_FUNC_NO_LIBS(tgetent, termcap ncurses curses,[
++AC_FIND_FUNC_NO_LIBS(tgetent, tinfo ncurses curses termcap,[
+ #ifdef HAVE_TERMCAP_H
+ #include <termcap.h>
+ #endif
+--- heimdal-1.5/lib/libedit/configure.ac~ 2011-07-30 22:43:29.000000000 +0200
++++ heimdal-1.5/lib/libedit/configure.ac 2011-08-01 13:54:30.657009419 +0200
+@@ -33,7 +33,7 @@
+ EL_MANTYPE
+
+
+-AC_CHECK_LIB(curses, tgetent,,
++AC_CHECK_LIB(tinfo, tgetent,,
+ [AC_CHECK_LIB(ncurses, tgetent,,
+ [AC_MSG_ERROR([libcurses or libncurses are required!])] )] )
+
diff --git a/package/heimdal/patches/patch-cf_check-compile-et_m4 b/package/heimdal/patches/patch-cf_check-compile-et_m4
deleted file mode 100644
index 0211e2b8f..000000000
--- a/package/heimdal/patches/patch-cf_check-compile-et_m4
+++ /dev/null
@@ -1,17 +0,0 @@
---- heimdal-1.5.3.orig/cf/check-compile-et.m4 2012-12-09 23:06:44.000000000 +0100
-+++ heimdal-1.5.3/cf/check-compile-et.m4 2014-04-24 11:55:02.000000000 +0200
-@@ -3,12 +3,12 @@ dnl
- dnl CHECK_COMPILE_ET
- AC_DEFUN([CHECK_COMPILE_ET], [
-
--AC_CHECK_PROG(COMPILE_ET, compile_et, [compile_et])
-+AC_CHECK_PROG(COMPILE_ET, compile_et, [compile_et],[no])
-
- krb_cv_compile_et="no"
- krb_cv_com_err_need_r=""
- krb_cv_compile_et_cross=no
--if test "${COMPILE_ET}" = "compile_et"; then
-+if test "${COMPILE_ET}" != no; then
-
- dnl We have compile_et. Now let's see if it supports `prefix' and `index'.
- AC_MSG_CHECKING(whether compile_et has the features we need)
diff --git a/package/heimdal/patches/patch-lib_com_err_Makefile_am b/package/heimdal/patches/patch-lib_com_err_Makefile_am
deleted file mode 100644
index 9c2faa8d8..000000000
--- a/package/heimdal/patches/patch-lib_com_err_Makefile_am
+++ /dev/null
@@ -1,11 +0,0 @@
---- heimdal-1.5.3.orig/lib/com_err/Makefile.am 2012-12-09 23:06:44.000000000 +0100
-+++ heimdal-1.5.3/lib/com_err/Makefile.am 2014-05-27 11:51:26.000000000 +0200
-@@ -13,7 +13,7 @@ endif
-
- libcom_err_la_LIBADD = $(LIB_libintl)
-
--bin_PROGRAMS = compile_et
-+libexec_heimdal_PROGRAMS = compile_et
-
- include_HEADERS = com_err.h com_right.h
-
diff --git a/package/heimdal/patches/patch-lib_krb5_crypto-rand_c b/package/heimdal/patches/patch-lib_krb5_crypto-rand_c
deleted file mode 100644
index bb72effe0..000000000
--- a/package/heimdal/patches/patch-lib_krb5_crypto-rand_c
+++ /dev/null
@@ -1,30 +0,0 @@
---- heimdal-1.5.3.orig/lib/krb5/crypto-rand.c 2012-12-09 23:06:44.000000000 +0100
-+++ heimdal-1.5.3/lib/krb5/crypto-rand.c 2015-11-03 19:30:39.336954603 +0100
-@@ -59,27 +59,6 @@ seed_something(void)
- } else
- seedfile[0] = '\0';
-
-- /* Calling RAND_status() will try to use /dev/urandom if it exists so
-- we do not have to deal with it. */
-- if (RAND_status() != 1) {
--#ifndef _WIN32
-- krb5_context context;
-- const char *p;
--
-- /* Try using egd */
-- if (!krb5_init_context(&context)) {
-- p = krb5_config_get_string(context, NULL, "libdefaults",
-- "egd_socket", NULL);
-- if (p != NULL)
-- RAND_egd_bytes(p, ENTROPY_NEEDED);
-- krb5_free_context(context);
-- }
--#else
-- /* TODO: Once a Windows CryptoAPI RAND method is defined, we
-- can use that and failover to another method. */
--#endif
-- }
--
- if (RAND_status() == 1) {
- /* Update the seed file */
- if (seedfile[0])
diff --git a/package/heimdal/patches/patch-lib_roken_roken_h_in b/package/heimdal/patches/patch-lib_roken_roken_h_in
deleted file mode 100644
index b571cc428..000000000
--- a/package/heimdal/patches/patch-lib_roken_roken_h_in
+++ /dev/null
@@ -1,11 +0,0 @@
---- heimdal-1.5.3.orig/lib/roken/roken.h.in 2012-12-09 23:06:44.000000000 +0100
-+++ heimdal-1.5.3/lib/roken/roken.h.in 2014-04-24 10:36:35.000000000 +0200
-@@ -551,7 +551,7 @@ ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL ge
- ROKEN_LIB_FUNCTION char * ROKEN_LIB_CALL strerror(int);
- #endif
-
--#if (!defined(HAVE_STRERROR_R) && !defined(strerror_r)) || (!defined(STRERROR_R_PROTO_COMPATIBLE) && defined(HAVE_STRERROR_R))
-+#if (defined(HAVE_STRERROR_R) && !defined(strerror_r)) || (!defined(STRERROR_R_PROTO_COMPATIBLE) && defined(HAVE_STRERROR_R))
- int ROKEN_LIB_FUNCTION rk_strerror_r(int, char *, size_t);
- #else
- #define rk_strerror_r strerror_r
diff --git a/package/heimdal/src/cf/roken-h-process.pl b/package/heimdal/src/cf/roken-h-process.pl
deleted file mode 100644
index aa371a364..000000000
--- a/package/heimdal/src/cf/roken-h-process.pl
+++ /dev/null
@@ -1,184 +0,0 @@
-#!/usr/bin/perl
-
-require 'getopts.pl';
-
-my $debug = 0;
-
-Getopts('dc:p:o:') || die "foo";
-
-if ($opt_d) {
- $debug = 1;
-}
-
-die "missing arg" if (!defined $opt_c || !defined $opt_p || !defined $opt_o);
-
-my %defines;
-my $IN;
-my $OUT;
-
-print "parse config.h\n" if ($debug);
-
-open IN, $opt_c || die "failed open ${opt_c}";
-
-my @nesting;
-
-push @nesting, 1;
-
-while (<IN>) {
- if (m/\s*#ifdef\s+(.*)/) {
- my $var = $1;
- if (defined $defines{$var}) {
- push @nesting, 1;
- } else {
- push @nesting, 0;
- }
- next;
- } elsif (m/\s*#ifndef\s+(.*)/) {
- my $var = $1;
- if (defined $defines{$var}) {
- push @nesting, 0;
- } else {
- push @nesting, 1;
- }
- next;
- } elsif (m/\s*#else/) {
- my $var = pop @nesting;
- $var = !$var;
- push @nesting, $var;
- next;
- } elsif ($nesting[$#nesting] and m/\s*#define\s+(\w+)\s+(\S+)/) {
- my $res = $2;
- $res = 1 if (!defined $res);
- $defines{$1} = $res;
- }
-}
-
-close IN;
-
-if ($debug) {
- foreach my $i (keys %defines) {
- print "k: $i v: $defines{$i}\n";
- }
-}
-
-open IN, "$opt_p" || die "failed open ${opt_p}";
-open OUT, ">$opt_o" || die "failed open ${opt_o}";
-
-print "parse roken.h.in\n" if ($debug);
-
-print OUT "/* This is an OS dependent, generated file */\n";
-print OUT "\n";
-print OUT "\n";
-print OUT "#ifndef __ROKEN_H__\n";
-print OUT "#define __ROKEN_H__\n";
-print OUT "\n";
-
-@nesting = (1);
-
-while (<IN>) {
- if (m/\s*#ifdef\s+(.*)/) {
- my $var = $1;
- if (defined $defines{$var}) {
- push @nesting, 1;
- } else {
- push @nesting, 0;
- }
- next;
- } elsif (m/\s*#ifndef\s+(.*)/) {
- my $var = $1;
- if (defined $defines{$var}) {
- push @nesting, 0;
- } else {
- push @nesting, 1;
- }
- next;
- } elsif (m/\s*#if\s+(.*)/) {
- my $res = parse_if($1);
- print "line = $res: $1\n" if ($debug);
- push @nesting, $res;
- next;
- } elsif (m/\s*#elif\s+(.*)/) {
- my $res = pop @nesting;
- if ($res gt 0) {
- $res = -1;
- } else {
- my $res = parse_if($1);
- }
- push @nesting, $res;
- next;
- } elsif (m/\s*#else/) {
- my $var = pop @nesting;
- $var = !$var;
- push @nesting, $var;
- next;
- } elsif (m/\s*#endif/) {
- pop @nesting;
- next;
- }
- print "line: $_\n" if ($debug);
- print "nesting dep $#{nesting}\n" if ($debug);
- my $i = 0, $t = 1;
- while ($i le $#nesting) {
- $t = 0 if ($nesting[$i] le 0);
- print "nesting $i val $nesting[$i] -> $t\n" if ($debug);
- $i++;
- }
- if ($t) {
- print OUT;
- }
-}
-
-print OUT "\n";
-print OUT "#endif /* __ROKEN_H__ */\n";
-
-
-close IN;
-
-exit 0;
-
-sub parse_if
-{
- my ($neg, $var);
-
- $_ = shift;
-
- if (m/^\s*$/) {
- print "end $_\n" if ($debug);
- return 1;
- } elsif (m/^\(([^&]+)\&\&(.*)$/) {
- print "$1 and $2\n" if ($debug);
- return parse_if($1) and parse_if($2);
- } elsif (m/^([^&]+)\&\&(.*)$/) {
- print "$1 and $2\n" if ($debug);
- return parse_if($1) and parse_if($2);
- } elsif (m/^([^\|]+)\|\|(.*)$/) {
- print "$1 or $2\n" if ($debug);
- return parse_if($1) or parse_if($2);
- } elsif (m/^\s*(\!)?\s*defined\((\w+)\)/) {
- ($neg, $var) = ($1, $2);
- print "def: ${neg}-defined(${var})\n" if ($debug);
- my $res = defined $defines{$var};
- if ($neg eq "!") {
- if ($res) {
- $res = 0;
- } else {
- $res = 1;
- }
- }
- print "res: $res\n" if ($debug);
- return $res;
- } elsif (m/^\s*(\!)?(\w+)/) {
- ($neg, $var) = ($1, $2);
- print "var: $neg $var\n" if ($debug);
- my $res;
- if (defined $defines{$var}) {
- $res = $defines{$var};
- } else {
- $res = 0;
- }
- $res = ! $res if ($neg =~ m/!/);
- print "res: $res\n" if ($debug);
- return $res;
- }
- die "failed parse: $_\n";
-}
diff --git a/package/heyu/Makefile b/package/heyu/Makefile
index e42604d2f..a3b10f9ce 100644
--- a/package/heyu/Makefile
+++ b/package/heyu/Makefile
@@ -4,18 +4,18 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= heyu
-PKG_VERSION:= 2.6.0
+PKG_VERSION:= 2.10.3
PKG_RELEASE:= 1
-PKG_HASH:= 1284e793520d2e152d9d7032f6727e72fbaaf7c4f4eaf9abea2b85eed090b0d2
+PKG_HASH:= 0c3435ea9cd57cd78c29047b9c961f4bfbec39f42055c9949acd10dd9853b628
PKG_DESCR:= x10 home automation control utility
PKG_SECTION:= sys/serial
PKG_DEPENDS:= setserial
-PKG_URL:= http://heyu.tanj.com/
-PKG_SITES:= http://heyu.tanj.com/download/
+PKG_URL:= https://heyu.org/
+PKG_SITES:= https://github.com/HeyuX10Automation/heyu/archive/refs/tags/
PKG_LIBC_DEPENDS:= uclibc-ng glibc
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tgz
+DISTFILES:= v${PKG_VERSION}.tar.gz
include ${ADK_TOPDIR}/mk/package.mk
diff --git a/package/heyu/patches/patch-tty_c b/package/heyu/patches/patch-tty_c
deleted file mode 100644
index cb8acf6d9..000000000
--- a/package/heyu/patches/patch-tty_c
+++ /dev/null
@@ -1,12 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- heyu-2.6.0.orig/tty.c 2009-01-19 03:57:00.000000000 +0100
-+++ heyu-2.6.0/tty.c 2009-05-29 14:08:06.087764489 +0200
-@@ -395,7 +395,7 @@ char *make_lock_name ( char *ttydev )
- struct stat stat_buf;
-
- /* strip the leading path name */
-- ptr = rindex(ttydev, '/');
-+ ptr = strrchr(ttydev, '/');
-
- devstr = dev_string;
-
diff --git a/package/heyu/patches/patch-x10state_c b/package/heyu/patches/patch-x10state_c
deleted file mode 100644
index c56f2489d..000000000
--- a/package/heyu/patches/patch-x10state_c
+++ /dev/null
@@ -1,12 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- heyu-2.6.0.orig/x10state.c 2009-04-21 00:45:51.000000000 +0200
-+++ heyu-2.6.0/x10state.c 2009-05-29 14:17:51.812378291 +0200
-@@ -5601,7 +5601,7 @@ char **create_noenv_environment ( LAUNCH
-
- // launcherp = configp->launcherp;
-
-- if ( daemon == D_RELAY || (index >= 0 && launcherp && launcherp->type == L_POWERFAIL) )
-+ if ( daemon == D_RELAY || (launcherp && launcherp->type == L_POWERFAIL) )
- putenv("HEYU_PARENT=RELAY");
- else
- putenv("HEYU_PARENT=ENGINE");
diff --git a/package/hostapd/Makefile b/package/hostapd/Makefile
index 22cfeba7d..2eeaefd20 100644
--- a/package/hostapd/Makefile
+++ b/package/hostapd/Makefile
@@ -4,15 +4,14 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= hostapd
-PKG_VERSION:= 2.5
+PKG_VERSION:= 2.10
PKG_RELEASE:= 1
-PKG_HASH:= 8e272d954dc0d7026c264b79b15389ec2b2c555b32970de39f506b9f463ec74a
+PKG_HASH:= 206e7c799b678572c2e3d12030238784bc4a9f82323b0156b4c9466f1498915d
PKG_DESCR:= wireless authenticator
PKG_SECTION:= net/wifi
PKG_DEPENDS:= libnl
PKG_BUILDDEP:= libnl
-PKG_URL:= http://hostap.epitest.fi/
-PKG_SITES:= http://hostap.epitest.fi/releases/
+PKG_SITES:= http://w1.fi/releases/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
diff --git a/package/htop/Makefile b/package/htop/Makefile
index 9d886a855..7ded657a6 100644
--- a/package/htop/Makefile
+++ b/package/htop/Makefile
@@ -4,17 +4,15 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= htop
-PKG_VERSION:= 2.0.1
+PKG_VERSION:= 3.2.2
PKG_RELEASE:= 1
-PKG_HASH:= f410626dfaf6b70fdf73cd7bb33cae768869707028d847fed94a978e974f5666
+PKG_HASH:= bac9e9ab7198256b8802d2e3b327a54804dc2a19b77a5f103645b11c12473dc8
PKG_DESCR:= graphical process manager
PKG_SECTION:= sys/utils
PKG_DEPENDS:= libncurses
PKG_BUILDDEP:= ncurses
PKG_URL:= http://hisham.hm/htop
-PKG_SITES:= http://hisham.hm/htop/releases/$(PKG_VERSION)/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+PKG_SITES:= https://github.com/htop-dev/htop/releases/download/$(PKG_VERSION)/
include $(ADK_TOPDIR)/mk/package.mk
diff --git a/package/httping/Makefile b/package/httping/Makefile
index f6ed4f4df..60c2ab6cf 100644
--- a/package/httping/Makefile
+++ b/package/httping/Makefile
@@ -4,26 +4,28 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= httping
-PKG_VERSION:= 2.4
+PKG_VERSION:= 3.5
PKG_RELEASE:= 1
-PKG_HASH:= dab59f02b08bfbbc978c005bb16d2db6fe21e1fc841fde96af3d497ddfc82084
+PKG_HASH:= 8c081daae31cad586bce7742bd721c2a741d7ce0687fb3a12cafd389b90bf79c
PKG_DESCR:= like ping but for http-requests
PKG_SECTION:= net/http
-PKG_DEPENDS:= libressl
-PKG_BUILDDEP:= libressl
-PKG_SITES:= http://www.vanheusden.com/httping/
+PKG_DEPENDS:= libressl ca-certificates
+PKG_BUILDDEP:= cmake-host libressl
+PKG_NEEDS:= intl
+PKG_SITES:= https://github.com/folkertvanheusden/HTTPing/archive/refs/tags/
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tgz
+DISTFILES:= v${PKG_VERSION}.tar.gz
+WRKDIST= ${WRKDIR}/HTTPing-${PKG_VERSION}
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,HTTPING,httping,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-CONFIG_STYLE:= manual
-TARGET_CFLAGS+= -D_GNU_SOURCE
+CONFIG_STYLE:= cmake
+INSTALL_STYLE:= manual
httping-install:
${INSTALL_DIR} ${IDIR_HTTPING}/usr/bin
- ${INSTALL_BIN} ${WRKINST}/usr/bin/httping ${IDIR_HTTPING}/usr/bin/
+ ${INSTALL_BIN} ${WRKBUILD}/httping ${IDIR_HTTPING}/usr/bin/
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/hugo/Makefile b/package/hugo/Makefile
deleted file mode 100644
index ab25a693f..000000000
--- a/package/hugo/Makefile
+++ /dev/null
@@ -1,37 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= hugo
-PKG_VERSION:= 0.18.1
-PKG_RELEASE:= 1
-PKG_HASH:= 29db2524a3042f507162164ec3ce9071277a7608547f4ea4f739d63cac4b39e4
-PKG_DESCR:= fast website generator
-PKG_SECTION:= net/http
-PKG_BUILDDEP:= go-host
-PKG_URL:= https://gohugo.io
-PKG_SITES:= https://github.com/spf13/hugo/archive/
-
-DISTFILES:= v$(PKG_VERSION).tar.gz
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,HUGO,hugo,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-CONFIG_STYLE:= manual
-BUILD_STYLE:= manual
-INSTALL_STYLE:= manual
-
-include $(ADK_TOPDIR)/mk/go.mk
-
-do-build:
- (cd $(WRKBUILD) && $(ADK_GO_TARGET_ENV) $(ADK_GO) \
- get -v github.com/spf13/hugo)
-
-hugo-install:
- $(INSTALL_DIR) $(IDIR_HUGO)/usr/bin
- $(INSTALL_BIN) $(ADK_GO_BINPATH)/hugo \
- $(IDIR_HUGO)/usr/bin
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/hush/Makefile b/package/hush/Makefile
index 31196ecf7..dffc690ab 100644
--- a/package/hush/Makefile
+++ b/package/hush/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= hush
-PKG_VERSION:= 1.26.2
+PKG_VERSION:= 1.36.1
PKG_RELEASE:= 1
-PKG_HASH:= da3e44913fc1a9c9b7c5337ea5292da518683cbff32be630777f565d6036af16
+PKG_HASH:= b8cc24c9574d809e7279c3be349795c5d5ceb6fdf19ca709f80cde50e47de314
PKG_DESCR:= hush standalone shell
PKG_SECTION:= base/shells
PKG_URL:= http://www.busybox.net/
diff --git a/package/hush/files/config b/package/hush/files/config
index 05d1406ff..7e81b468e 100644
--- a/package/hush/files/config
+++ b/package/hush/files/config
@@ -1,56 +1,60 @@
#
# Automatically generated make config: don't edit
-# Busybox version: 1.26.2
-# Sun Nov 19 11:00:17 2017
+# Busybox version: 1.36.1
+# Thu Aug 31 12:09:53 2023
#
CONFIG_HAVE_DOT_CONFIG=y
#
-# Busybox Settings
+# Settings
#
# CONFIG_DESKTOP is not set
# CONFIG_EXTRA_COMPAT is not set
+# CONFIG_FEDORA_COMPAT is not set
# CONFIG_INCLUDE_SUSv2 is not set
-# CONFIG_USE_PORTABLE_CODE is not set
-CONFIG_PLATFORM_LINUX=y
+CONFIG_LONG_OPTS=y
# CONFIG_SHOW_USAGE is not set
# CONFIG_FEATURE_VERBOSE_USAGE is not set
# CONFIG_FEATURE_COMPRESS_USAGE is not set
-# CONFIG_BUSYBOX is not set
-# CONFIG_FEATURE_INSTALLER is not set
-# CONFIG_INSTALL_NO_USR is not set
+CONFIG_LFS=y
# CONFIG_PAM is not set
-# CONFIG_LONG_OPTS is not set
CONFIG_FEATURE_DEVPTS=y
-# CONFIG_FEATURE_CLEAN_UP is not set
# CONFIG_FEATURE_UTMP is not set
# CONFIG_FEATURE_WTMP is not set
# CONFIG_FEATURE_PIDFILE is not set
CONFIG_PID_FILE_PATH=""
+# CONFIG_BUSYBOX is not set
+# CONFIG_FEATURE_SHOW_SCRIPT is not set
+# CONFIG_FEATURE_INSTALLER is not set
+# CONFIG_INSTALL_NO_USR is not set
# CONFIG_FEATURE_SUID is not set
# CONFIG_FEATURE_SUID_CONFIG is not set
# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
-# CONFIG_SELINUX is not set
# CONFIG_FEATURE_PREFER_APPLETS is not set
CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
+# CONFIG_SELINUX is not set
+# CONFIG_FEATURE_CLEAN_UP is not set
+# CONFIG_FEATURE_SYSLOG_INFO is not set
# CONFIG_FEATURE_SYSLOG is not set
-# CONFIG_FEATURE_HAVE_RPC is not set
#
# Build Options
#
# CONFIG_STATIC is not set
# CONFIG_PIE is not set
-# CONFIG_NOMMU is not set
+CONFIG_NOMMU=y
# CONFIG_BUILD_LIBBUSYBOX is not set
+# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set
# CONFIG_FEATURE_INDIVIDUAL is not set
# CONFIG_FEATURE_SHARED_BUSYBOX is not set
-CONFIG_LFS=y
CONFIG_CROSS_COMPILER_PREFIX=""
CONFIG_SYSROOT=""
CONFIG_EXTRA_CFLAGS=""
CONFIG_EXTRA_LDFLAGS=""
CONFIG_EXTRA_LDLIBS=""
+# CONFIG_USE_PORTABLE_CODE is not set
+CONFIG_STACK_OPTIMIZATION_386=y
+CONFIG_STATIC_LIBGCC=y
#
# Installation Options ("make install" behavior)
@@ -72,24 +76,33 @@ CONFIG_PREFIX="./_install"
# CONFIG_DEBUG_SANITIZE is not set
# CONFIG_UNIT_TEST is not set
# CONFIG_WERROR is not set
+# CONFIG_WARN_SIMPLE_MSG is not set
CONFIG_NO_DEBUG_LIB=y
# CONFIG_DMALLOC is not set
# CONFIG_EFENCE is not set
#
-# Busybox Library Tuning
+# Library Tuning
#
# CONFIG_FEATURE_USE_BSS_TAIL is not set
+CONFIG_FLOAT_DURATION=y
CONFIG_FEATURE_RTMINMAX=y
+CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y
CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SMALL=1
+CONFIG_SHA1_SMALL=3
+CONFIG_SHA1_HWACCEL=y
+CONFIG_SHA256_HWACCEL=y
CONFIG_SHA3_SMALL=1
-# CONFIG_FEATURE_FAST_TOP is not set
-# CONFIG_FEATURE_ETC_NETWORKS is not set
-# CONFIG_FEATURE_USE_TERMIOS is not set
+CONFIG_FEATURE_NON_POSIX_CP=y
+# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
+CONFIG_FEATURE_USE_SENDFILE=y
+CONFIG_FEATURE_COPYBUF_KB=4
+CONFIG_MONOTONIC_SYSCALL=y
+CONFIG_IOCTL_HEX2STR_ERROR=y
CONFIG_FEATURE_EDITING=y
CONFIG_FEATURE_EDITING_MAX_LEN=1024
# CONFIG_FEATURE_EDITING_VI is not set
@@ -100,6 +113,7 @@ CONFIG_FEATURE_REVERSE_SEARCH=y
CONFIG_FEATURE_TAB_COMPLETION=y
CONFIG_FEATURE_USERNAME_COMPLETION=y
CONFIG_FEATURE_EDITING_FANCY_PROMPT=y
+CONFIG_FEATURE_EDITING_WINCH=y
# CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set
# CONFIG_LOCALE_SUPPORT is not set
CONFIG_UNICODE_SUPPORT=y
@@ -112,14 +126,9 @@ CONFIG_LAST_SUPPORTED_WCHAR=767
# CONFIG_UNICODE_BIDI_SUPPORT is not set
# CONFIG_UNICODE_NEUTRAL_TABLE is not set
# CONFIG_UNICODE_PRESERVE_BROKEN is not set
-CONFIG_FEATURE_NON_POSIX_CP=y
-# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
-CONFIG_FEATURE_USE_SENDFILE=y
-CONFIG_FEATURE_COPYBUF_KB=4
-CONFIG_FEATURE_SKIP_ROOTFS=y
-CONFIG_MONOTONIC_SYSCALL=y
-CONFIG_IOCTL_HEX2STR_ERROR=y
-CONFIG_FEATURE_HWIB=y
+# CONFIG_LOOP_CONFIGURE is not set
+# CONFIG_NO_LOOP_CONFIGURE is not set
+CONFIG_TRY_LOOP_CONFIGURE=y
#
# Applets
@@ -145,20 +154,24 @@ CONFIG_FEATURE_HWIB=y
# CONFIG_UNLZMA is not set
# CONFIG_LZCAT is not set
# CONFIG_LZMA is not set
-# CONFIG_FEATURE_LZMA_FAST is not set
# CONFIG_UNXZ is not set
# CONFIG_XZCAT is not set
# CONFIG_XZ is not set
# CONFIG_BZIP2 is not set
+CONFIG_BZIP2_SMALL=0
+# CONFIG_FEATURE_BZIP2_DECOMPRESS is not set
# CONFIG_CPIO is not set
# CONFIG_FEATURE_CPIO_O is not set
# CONFIG_FEATURE_CPIO_P is not set
+# CONFIG_FEATURE_CPIO_IGNORE_DEVNO is not set
+# CONFIG_FEATURE_CPIO_RENUMBER_INODES is not set
# CONFIG_DPKG is not set
# CONFIG_DPKG_DEB is not set
# CONFIG_GZIP is not set
# CONFIG_FEATURE_GZIP_LONG_OPTIONS is not set
CONFIG_GZIP_FAST=0
# CONFIG_FEATURE_GZIP_LEVELS is not set
+# CONFIG_FEATURE_GZIP_DECOMPRESS is not set
# CONFIG_LZOP is not set
# CONFIG_UNLZOP is not set
# CONFIG_LZOPCAT is not set
@@ -166,36 +179,52 @@ CONFIG_GZIP_FAST=0
# CONFIG_RPM is not set
# CONFIG_RPM2CPIO is not set
# CONFIG_TAR is not set
+# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
# CONFIG_FEATURE_TAR_CREATE is not set
# CONFIG_FEATURE_TAR_AUTODETECT is not set
# CONFIG_FEATURE_TAR_FROM is not set
# CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY is not set
# CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY is not set
# CONFIG_FEATURE_TAR_GNU_EXTENSIONS is not set
-# CONFIG_FEATURE_TAR_LONG_OPTIONS is not set
# CONFIG_FEATURE_TAR_TO_COMMAND is not set
# CONFIG_FEATURE_TAR_UNAME_GNAME is not set
# CONFIG_FEATURE_TAR_NOPRESERVE_TIME is not set
# CONFIG_FEATURE_TAR_SELINUX is not set
# CONFIG_UNZIP is not set
+# CONFIG_FEATURE_UNZIP_CDF is not set
+# CONFIG_FEATURE_UNZIP_BZIP2 is not set
+# CONFIG_FEATURE_UNZIP_LZMA is not set
+# CONFIG_FEATURE_UNZIP_XZ is not set
+# CONFIG_FEATURE_LZMA_FAST is not set
#
# Coreutils
#
+# CONFIG_FEATURE_VERBOSE is not set
+
+#
+# Common options for date and touch
+#
+# CONFIG_FEATURE_TIMEZONE is not set
+# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set
+# CONFIG_FEATURE_HUMAN_READABLE is not set
# CONFIG_BASENAME is not set
-# CONFIG_CAL is not set
# CONFIG_CAT is not set
-# CONFIG_CATV is not set
+# CONFIG_FEATURE_CATN is not set
+# CONFIG_FEATURE_CATV is not set
# CONFIG_CHGRP is not set
# CONFIG_CHMOD is not set
# CONFIG_CHOWN is not set
# CONFIG_FEATURE_CHOWN_LONG_OPTIONS is not set
# CONFIG_CHROOT is not set
# CONFIG_CKSUM is not set
+# CONFIG_CRC32 is not set
# CONFIG_COMM is not set
# CONFIG_CP is not set
# CONFIG_FEATURE_CP_LONG_OPTIONS is not set
+# CONFIG_FEATURE_CP_REFLINK is not set
# CONFIG_CUT is not set
+# CONFIG_FEATURE_CUT_REGEX is not set
# CONFIG_DATE is not set
# CONFIG_FEATURE_DATE_ISOFMT is not set
# CONFIG_FEATURE_DATE_NANO is not set
@@ -207,6 +236,7 @@ CONFIG_GZIP_FAST=0
# CONFIG_FEATURE_DD_STATUS is not set
# CONFIG_DF is not set
# CONFIG_FEATURE_DF_FANCY is not set
+# CONFIG_FEATURE_SKIP_ROOTFS is not set
# CONFIG_DIRNAME is not set
# CONFIG_DOS2UNIX is not set
# CONFIG_UNIX2DOS is not set
@@ -215,16 +245,13 @@ CONFIG_GZIP_FAST=0
# CONFIG_ECHO is not set
# CONFIG_FEATURE_FANCY_ECHO is not set
# CONFIG_ENV is not set
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
# CONFIG_EXPAND is not set
-# CONFIG_FEATURE_EXPAND_LONG_OPTIONS is not set
# CONFIG_UNEXPAND is not set
-# CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS is not set
# CONFIG_EXPR is not set
# CONFIG_EXPR_MATH_SUPPORT_64 is not set
+# CONFIG_FACTOR is not set
# CONFIG_FALSE is not set
# CONFIG_FOLD is not set
-# CONFIG_FSYNC is not set
# CONFIG_HEAD is not set
# CONFIG_FEATURE_FANCY_HEAD is not set
# CONFIG_HOSTID is not set
@@ -232,12 +259,14 @@ CONFIG_GZIP_FAST=0
# CONFIG_GROUPS is not set
# CONFIG_INSTALL is not set
# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
+# CONFIG_LINK is not set
# CONFIG_LN is not set
# CONFIG_LOGNAME is not set
# CONFIG_LS is not set
# CONFIG_FEATURE_LS_FILETYPES is not set
# CONFIG_FEATURE_LS_FOLLOWLINKS is not set
# CONFIG_FEATURE_LS_RECURSIVE is not set
+# CONFIG_FEATURE_LS_WIDTH is not set
# CONFIG_FEATURE_LS_SORTFILES is not set
# CONFIG_FEATURE_LS_TIMESTAMPS is not set
# CONFIG_FEATURE_LS_USERNAME is not set
@@ -250,14 +279,16 @@ CONFIG_GZIP_FAST=0
# CONFIG_SHA3SUM is not set
# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set
# CONFIG_MKDIR is not set
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
# CONFIG_MKFIFO is not set
# CONFIG_MKNOD is not set
+# CONFIG_MKTEMP is not set
# CONFIG_MV is not set
-# CONFIG_FEATURE_MV_LONG_OPTIONS is not set
# CONFIG_NICE is not set
+# CONFIG_NL is not set
# CONFIG_NOHUP is not set
+# CONFIG_NPROC is not set
# CONFIG_OD is not set
+# CONFIG_PASTE is not set
# CONFIG_PRINTENV is not set
# CONFIG_PRINTF is not set
# CONFIG_PWD is not set
@@ -266,14 +297,14 @@ CONFIG_GZIP_FAST=0
# CONFIG_REALPATH is not set
# CONFIG_RM is not set
# CONFIG_RMDIR is not set
-# CONFIG_FEATURE_RMDIR_LONG_OPTIONS is not set
# CONFIG_SEQ is not set
+# CONFIG_SHRED is not set
# CONFIG_SHUF is not set
# CONFIG_SLEEP is not set
# CONFIG_FEATURE_FANCY_SLEEP is not set
-# CONFIG_FEATURE_FLOAT_SLEEP is not set
# CONFIG_SORT is not set
# CONFIG_FEATURE_SORT_BIG is not set
+# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set
# CONFIG_SPLIT is not set
# CONFIG_FEATURE_SPLIT_FANCY is not set
# CONFIG_STAT is not set
@@ -283,6 +314,7 @@ CONFIG_GZIP_FAST=0
# CONFIG_SUM is not set
# CONFIG_SYNC is not set
# CONFIG_FEATURE_SYNC_FANCY is not set
+# CONFIG_FSYNC is not set
# CONFIG_TAC is not set
# CONFIG_TAIL is not set
# CONFIG_FEATURE_FANCY_TAIL is not set
@@ -292,39 +324,35 @@ CONFIG_GZIP_FAST=0
# CONFIG_TEST1 is not set
# CONFIG_TEST2 is not set
# CONFIG_FEATURE_TEST_64 is not set
+# CONFIG_TIMEOUT is not set
# CONFIG_TOUCH is not set
-# CONFIG_FEATURE_TOUCH_NODEREF is not set
# CONFIG_FEATURE_TOUCH_SUSV3 is not set
# CONFIG_TR is not set
# CONFIG_FEATURE_TR_CLASSES is not set
# CONFIG_FEATURE_TR_EQUIV is not set
# CONFIG_TRUE is not set
# CONFIG_TRUNCATE is not set
+# CONFIG_TSORT is not set
# CONFIG_TTY is not set
# CONFIG_UNAME is not set
CONFIG_UNAME_OSNAME=""
+# CONFIG_BB_ARCH is not set
# CONFIG_UNIQ is not set
# CONFIG_UNLINK is not set
# CONFIG_USLEEP is not set
# CONFIG_UUDECODE is not set
+# CONFIG_BASE32 is not set
# CONFIG_BASE64 is not set
# CONFIG_UUENCODE is not set
# CONFIG_WC is not set
# CONFIG_FEATURE_WC_LARGE is not set
# CONFIG_WHO is not set
+# CONFIG_W is not set
# CONFIG_USERS is not set
# CONFIG_WHOAMI is not set
# CONFIG_YES is not set
#
-# Common options
-#
-# CONFIG_FEATURE_VERBOSE is not set
-# CONFIG_FEATURE_PRESERVE_HARDLINKS is not set
-# CONFIG_FEATURE_AUTOWIDTH is not set
-# CONFIG_FEATURE_HUMAN_READABLE is not set
-
-#
# Console Utilities
#
# CONFIG_CHVT is not set
@@ -353,17 +381,24 @@ CONFIG_DEFAULT_SETFONT_DIR=""
#
# Debian Utilities
#
-# CONFIG_MKTEMP is not set
# CONFIG_PIPE_PROGRESS is not set
# CONFIG_RUN_PARTS is not set
# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
# CONFIG_FEATURE_RUN_PARTS_FANCY is not set
# CONFIG_START_STOP_DAEMON is not set
-# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
+# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
# CONFIG_WHICH is not set
#
+# klibc-utils
+#
+# CONFIG_MINIPS is not set
+# CONFIG_NUKE is not set
+# CONFIG_RESUME is not set
+# CONFIG_RUN_INIT is not set
+
+#
# Editors
#
# CONFIG_AWK is not set
@@ -380,6 +415,7 @@ CONFIG_DEFAULT_SETFONT_DIR=""
CONFIG_FEATURE_VI_MAX_LEN=0
# CONFIG_FEATURE_VI_8BIT is not set
# CONFIG_FEATURE_VI_COLON is not set
+# CONFIG_FEATURE_VI_COLON_EXPAND is not set
# CONFIG_FEATURE_VI_YANKMARK is not set
# CONFIG_FEATURE_VI_SEARCH is not set
# CONFIG_FEATURE_VI_REGEX_SEARCH is not set
@@ -393,6 +429,7 @@ CONFIG_FEATURE_VI_MAX_LEN=0
# CONFIG_FEATURE_VI_UNDO is not set
# CONFIG_FEATURE_VI_UNDO_QUEUE is not set
CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0
+# CONFIG_FEATURE_VI_VERBOSE_STATUS is not set
# CONFIG_FEATURE_ALLOW_EXEC is not set
#
@@ -401,13 +438,19 @@ CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0
# CONFIG_FIND is not set
# CONFIG_FEATURE_FIND_PRINT0 is not set
# CONFIG_FEATURE_FIND_MTIME is not set
+# CONFIG_FEATURE_FIND_ATIME is not set
+# CONFIG_FEATURE_FIND_CTIME is not set
# CONFIG_FEATURE_FIND_MMIN is not set
+# CONFIG_FEATURE_FIND_AMIN is not set
+# CONFIG_FEATURE_FIND_CMIN is not set
# CONFIG_FEATURE_FIND_PERM is not set
# CONFIG_FEATURE_FIND_TYPE is not set
+# CONFIG_FEATURE_FIND_EXECUTABLE is not set
# CONFIG_FEATURE_FIND_XDEV is not set
# CONFIG_FEATURE_FIND_MAXDEPTH is not set
# CONFIG_FEATURE_FIND_NEWER is not set
# CONFIG_FEATURE_FIND_INUM is not set
+# CONFIG_FEATURE_FIND_SAMEFILE is not set
# CONFIG_FEATURE_FIND_EXEC is not set
# CONFIG_FEATURE_FIND_EXEC_PLUS is not set
# CONFIG_FEATURE_FIND_USER is not set
@@ -417,7 +460,9 @@ CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0
# CONFIG_FEATURE_FIND_PAREN is not set
# CONFIG_FEATURE_FIND_SIZE is not set
# CONFIG_FEATURE_FIND_PRUNE is not set
+# CONFIG_FEATURE_FIND_QUIT is not set
# CONFIG_FEATURE_FIND_DELETE is not set
+# CONFIG_FEATURE_FIND_EMPTY is not set
# CONFIG_FEATURE_FIND_PATH is not set
# CONFIG_FEATURE_FIND_REGEX is not set
# CONFIG_FEATURE_FIND_CONTEXT is not set
@@ -432,6 +477,8 @@ CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0
# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set
# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set
# CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL is not set
+# CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE is not set
#
# Init Utilities
@@ -442,6 +489,7 @@ CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=0
# CONFIG_HALT is not set
# CONFIG_POWEROFF is not set
# CONFIG_REBOOT is not set
+# CONFIG_FEATURE_WAIT_FOR_INIT is not set
# CONFIG_FEATURE_CALL_TELINIT is not set
CONFIG_TELINIT_PATH=""
# CONFIG_INIT is not set
@@ -451,12 +499,10 @@ CONFIG_TELINIT_PATH=""
CONFIG_FEATURE_KILL_DELAY=0
# CONFIG_FEATURE_INIT_SCTTY is not set
# CONFIG_FEATURE_INIT_SYSLOG is not set
-# CONFIG_FEATURE_EXTRA_QUIET is not set
+# CONFIG_FEATURE_INIT_QUIET is not set
# CONFIG_FEATURE_INIT_COREDUMPS is not set
CONFIG_INIT_TERMINAL_TYPE=""
# CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set
-# CONFIG_MESG is not set
-# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set
#
# Login/Password Management Utilities
@@ -469,10 +515,8 @@ CONFIG_INIT_TERMINAL_TYPE=""
# CONFIG_ADD_SHELL is not set
# CONFIG_REMOVE_SHELL is not set
# CONFIG_ADDGROUP is not set
-# CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS is not set
# CONFIG_FEATURE_ADDUSER_TO_GROUP is not set
# CONFIG_ADDUSER is not set
-# CONFIG_FEATURE_ADDUSER_LONG_OPTIONS is not set
# CONFIG_FEATURE_CHECK_NAMES is not set
CONFIG_LAST_ID=0
CONFIG_FIRST_SYSTEM_ID=0
@@ -495,6 +539,7 @@ CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
# CONFIG_SU is not set
# CONFIG_FEATURE_SU_SYSLOG is not set
# CONFIG_FEATURE_SU_CHECKS_SHELLS is not set
+# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set
# CONFIG_SULOGIN is not set
# CONFIG_VLOCK is not set
@@ -515,8 +560,6 @@ CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
# CONFIG_LSMOD is not set
# CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set
# CONFIG_MODINFO is not set
-# CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE is not set
-# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
# CONFIG_MODPROBE is not set
# CONFIG_FEATURE_MODPROBE_BLACKLIST is not set
# CONFIG_RMMOD is not set
@@ -524,14 +567,16 @@ CONFIG_FEATURE_DEFAULT_PASSWD_ALGO=""
#
# Options common to multiple modutils
#
+# CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS is not set
+# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set
# CONFIG_FEATURE_2_4_MODULES is not set
-# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
+# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set
# CONFIG_FEATURE_MODUTILS_ALIAS is not set
# CONFIG_FEATURE_MODUTILS_SYMBOLS is not set
CONFIG_DEFAULT_MODULES_DIR=""
@@ -546,8 +591,13 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_BLKID is not set
# CONFIG_FEATURE_BLKID_TYPE is not set
# CONFIG_BLOCKDEV is not set
+# CONFIG_CAL is not set
+# CONFIG_CHRT is not set
# CONFIG_DMESG is not set
# CONFIG_FEATURE_DMESG_PRETTY is not set
+# CONFIG_EJECT is not set
+# CONFIG_FEATURE_EJECT_SCSI is not set
+# CONFIG_FALLOCATE is not set
# CONFIG_FATATTR is not set
# CONFIG_FBSET is not set
# CONFIG_FEATURE_FBSET_FANCY is not set
@@ -567,17 +617,20 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_FDFLUSH is not set
# CONFIG_FREERAMDISK is not set
# CONFIG_FSCK_MINIX is not set
+# CONFIG_FSFREEZE is not set
# CONFIG_FSTRIM is not set
# CONFIG_GETOPT is not set
# CONFIG_FEATURE_GETOPT_LONG is not set
# CONFIG_HEXDUMP is not set
-# CONFIG_FEATURE_HEXDUMP_REVERSE is not set
# CONFIG_HD is not set
+# CONFIG_XXD is not set
# CONFIG_HWCLOCK is not set
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
+# CONFIG_IONICE is not set
# CONFIG_IPCRM is not set
# CONFIG_IPCS is not set
+# CONFIG_LAST is not set
+# CONFIG_FEATURE_LAST_FANCY is not set
# CONFIG_LOSETUP is not set
# CONFIG_LSPCI is not set
# CONFIG_LSUSB is not set
@@ -587,6 +640,9 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_FEATURE_MDEV_RENAME_REGEXP is not set
# CONFIG_FEATURE_MDEV_EXEC is not set
# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
+# CONFIG_FEATURE_MDEV_DAEMON is not set
+# CONFIG_MESG is not set
+# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set
# CONFIG_MKE2FS is not set
# CONFIG_MKFS_EXT2 is not set
# CONFIG_MKFS_MINIX is not set
@@ -607,12 +663,15 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_FEATURE_MOUNT_FLAGS is not set
# CONFIG_FEATURE_MOUNT_FSTAB is not set
# CONFIG_FEATURE_MOUNT_OTHERTAB is not set
+# CONFIG_MOUNTPOINT is not set
+# CONFIG_NOLOGIN is not set
+# CONFIG_NOLOGIN_DEPENDENCIES is not set
# CONFIG_NSENTER is not set
-# CONFIG_FEATURE_NSENTER_LONG_OPTS is not set
# CONFIG_PIVOT_ROOT is not set
# CONFIG_RDATE is not set
# CONFIG_RDEV is not set
# CONFIG_READPROFILE is not set
+# CONFIG_RENICE is not set
# CONFIG_REV is not set
# CONFIG_RTCWAKE is not set
# CONFIG_SCRIPT is not set
@@ -620,15 +679,25 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_SETARCH is not set
# CONFIG_LINUX32 is not set
# CONFIG_LINUX64 is not set
+# CONFIG_SETPRIV is not set
+# CONFIG_FEATURE_SETPRIV_DUMP is not set
+# CONFIG_FEATURE_SETPRIV_CAPABILITIES is not set
+# CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES is not set
+# CONFIG_SETSID is not set
# CONFIG_SWAPON is not set
# CONFIG_FEATURE_SWAPON_DISCARD is not set
# CONFIG_FEATURE_SWAPON_PRI is not set
# CONFIG_SWAPOFF is not set
+# CONFIG_FEATURE_SWAPONOFF_LABEL is not set
# CONFIG_SWITCH_ROOT is not set
+# CONFIG_TASKSET is not set
+# CONFIG_FEATURE_TASKSET_FANCY is not set
+# CONFIG_FEATURE_TASKSET_CPULIST is not set
# CONFIG_UEVENT is not set
# CONFIG_UMOUNT is not set
# CONFIG_FEATURE_UMOUNT_ALL is not set
# CONFIG_UNSHARE is not set
+# CONFIG_WALL is not set
# CONFIG_FEATURE_MOUNT_LOOP is not set
# CONFIG_FEATURE_MOUNT_LOOP_CREATE is not set
# CONFIG_FEATURE_MTAB_SUPPORT is not set
@@ -636,6 +705,7 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_FEATURE_VOLUMEID_BCACHE is not set
# CONFIG_FEATURE_VOLUMEID_BTRFS is not set
# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
+# CONFIG_FEATURE_VOLUMEID_EROFS is not set
# CONFIG_FEATURE_VOLUMEID_EXFAT is not set
# CONFIG_FEATURE_VOLUMEID_EXT is not set
# CONFIG_FEATURE_VOLUMEID_F2FS is not set
@@ -643,9 +713,11 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# CONFIG_FEATURE_VOLUMEID_HFS is not set
# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
# CONFIG_FEATURE_VOLUMEID_JFS is not set
+# CONFIG_FEATURE_VOLUMEID_LFS is not set
# CONFIG_FEATURE_VOLUMEID_LINUXRAID is not set
# CONFIG_FEATURE_VOLUMEID_LINUXSWAP is not set
# CONFIG_FEATURE_VOLUMEID_LUKS is not set
+# CONFIG_FEATURE_VOLUMEID_MINIX is not set
# CONFIG_FEATURE_VOLUMEID_NILFS is not set
# CONFIG_FEATURE_VOLUMEID_NTFS is not set
# CONFIG_FEATURE_VOLUMEID_OCFS2 is not set
@@ -661,8 +733,15 @@ CONFIG_DEFAULT_DEPMOD_FILE=""
# Miscellaneous Utilities
#
# CONFIG_ADJTIMEX is not set
+# CONFIG_ASCII is not set
# CONFIG_BBCONFIG is not set
# CONFIG_FEATURE_COMPRESS_BBCONFIG is not set
+# CONFIG_BC is not set
+# CONFIG_DC is not set
+# CONFIG_FEATURE_DC_BIG is not set
+# CONFIG_FEATURE_DC_LIBM is not set
+# CONFIG_FEATURE_BC_INTERACTIVE is not set
+# CONFIG_FEATURE_BC_LONG_OPTIONS is not set
# CONFIG_BEEP is not set
CONFIG_FEATURE_BEEP_FREQ=0
CONFIG_FEATURE_BEEP_LENGTH_MS=0
@@ -674,23 +753,19 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=0
# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
-# CONFIG_CHRT is not set
# CONFIG_CONSPY is not set
# CONFIG_CROND is not set
# CONFIG_FEATURE_CROND_D is not set
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
+# CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set
CONFIG_FEATURE_CROND_DIR=""
# CONFIG_CRONTAB is not set
-# CONFIG_DC is not set
-# CONFIG_FEATURE_DC_LIBM is not set
# CONFIG_DEVFSD is not set
# CONFIG_DEVFSD_MODLOAD is not set
# CONFIG_DEVFSD_FG_NP is not set
# CONFIG_DEVFSD_VERBOSE is not set
# CONFIG_FEATURE_DEVFS is not set
# CONFIG_DEVMEM is not set
-# CONFIG_EJECT is not set
-# CONFIG_FEATURE_EJECT_SCSI is not set
# CONFIG_FBSPLASH is not set
# CONFIG_FLASH_ERASEALL is not set
# CONFIG_FLASH_LOCK is not set
@@ -703,14 +778,13 @@ CONFIG_FEATURE_CROND_DIR=""
# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
+# CONFIG_HEXEDIT is not set
# CONFIG_I2CGET is not set
# CONFIG_I2CSET is not set
# CONFIG_I2CDUMP is not set
# CONFIG_I2CDETECT is not set
+# CONFIG_I2CTRANSFER is not set
# CONFIG_INOTIFYD is not set
-# CONFIG_IONICE is not set
-# CONFIG_LAST is not set
-# CONFIG_FEATURE_LAST_FANCY is not set
# CONFIG_LESS is not set
CONFIG_FEATURE_LESS_MAXLINES=0
# CONFIG_FEATURE_LESS_BRACKETS is not set
@@ -722,27 +796,31 @@ CONFIG_FEATURE_LESS_MAXLINES=0
# CONFIG_FEATURE_LESS_ASK_TERMINAL is not set
# CONFIG_FEATURE_LESS_DASHCMD is not set
# CONFIG_FEATURE_LESS_LINENUMS is not set
+# CONFIG_FEATURE_LESS_RAW is not set
+# CONFIG_FEATURE_LESS_ENV is not set
+# CONFIG_LSSCSI is not set
# CONFIG_MAKEDEVS is not set
# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
# CONFIG_MAN is not set
# CONFIG_MICROCOM is not set
-# CONFIG_MOUNTPOINT is not set
+# CONFIG_MIM is not set
# CONFIG_MT is not set
# CONFIG_NANDWRITE is not set
# CONFIG_NANDDUMP is not set
+# CONFIG_PARTPROBE is not set
# CONFIG_RAIDAUTORUN is not set
# CONFIG_READAHEAD is not set
# CONFIG_RFKILL is not set
# CONFIG_RUNLEVEL is not set
# CONFIG_RX is not set
+# CONFIG_SEEDRNG is not set
+# CONFIG_SETFATTR is not set
# CONFIG_SETSERIAL is not set
-# CONFIG_SETSID is not set
# CONFIG_STRINGS is not set
-# CONFIG_TASKSET is not set
-# CONFIG_FEATURE_TASKSET_FANCY is not set
# CONFIG_TIME is not set
-# CONFIG_TIMEOUT is not set
+# CONFIG_TREE is not set
+# CONFIG_TS is not set
# CONFIG_TTYSIZE is not set
# CONFIG_UBIATTACH is not set
# CONFIG_UBIDETACH is not set
@@ -752,8 +830,8 @@ CONFIG_FEATURE_LESS_MAXLINES=0
# CONFIG_UBIUPDATEVOL is not set
# CONFIG_UBIRENAME is not set
# CONFIG_VOLNAME is not set
-# CONFIG_WALL is not set
# CONFIG_WATCHDOG is not set
+# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set
#
# Networking Utilities
@@ -762,6 +840,10 @@ CONFIG_FEATURE_LESS_MAXLINES=0
# CONFIG_FEATURE_UNIX_LOCAL is not set
# CONFIG_FEATURE_PREFER_IPV4_ADDRESS is not set
# CONFIG_VERBOSE_RESOLUTION_ERRORS is not set
+# CONFIG_FEATURE_ETC_NETWORKS is not set
+# CONFIG_FEATURE_ETC_SERVICES is not set
+# CONFIG_FEATURE_HWIB is not set
+# CONFIG_FEATURE_TLS_SHA1 is not set
# CONFIG_ARP is not set
# CONFIG_ARPING is not set
# CONFIG_BRCTL is not set
@@ -779,6 +861,7 @@ CONFIG_FEATURE_LESS_MAXLINES=0
# CONFIG_HOSTNAME is not set
# CONFIG_DNSDOMAINNAME is not set
# CONFIG_HTTPD is not set
+CONFIG_FEATURE_HTTPD_PORT_DEFAULT=0
# CONFIG_FEATURE_HTTPD_RANGES is not set
# CONFIG_FEATURE_HTTPD_SETUID is not set
# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
@@ -790,6 +873,10 @@ CONFIG_FEATURE_LESS_MAXLINES=0
# CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set
# CONFIG_FEATURE_HTTPD_PROXY is not set
# CONFIG_FEATURE_HTTPD_GZIP is not set
+# CONFIG_FEATURE_HTTPD_ETAG is not set
+# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set
+# CONFIG_FEATURE_HTTPD_DATE is not set
+# CONFIG_FEATURE_HTTPD_ACL_IP is not set
# CONFIG_IFCONFIG is not set
# CONFIG_FEATURE_IFCONFIG_STATUS is not set
# CONFIG_FEATURE_IFCONFIG_SLIP is not set
@@ -829,13 +916,14 @@ CONFIG_FEATURE_IP_ROUTE_DIR=""
# CONFIG_FEATURE_IP_NEIGH is not set
# CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set
# CONFIG_IPCALC is not set
-# CONFIG_FEATURE_IPCALC_FANCY is not set
# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
+# CONFIG_FEATURE_IPCALC_FANCY is not set
# CONFIG_FAKEIDENTD is not set
# CONFIG_NAMEIF is not set
# CONFIG_FEATURE_NAMEIF_EXTENDED is not set
# CONFIG_NBDCLIENT is not set
# CONFIG_NC is not set
+# CONFIG_NETCAT is not set
# CONFIG_NC_SERVER is not set
# CONFIG_NC_EXTRA is not set
# CONFIG_NC_110_COMPAT is not set
@@ -843,30 +931,40 @@ CONFIG_FEATURE_IP_ROUTE_DIR=""
# CONFIG_FEATURE_NETSTAT_WIDE is not set
# CONFIG_FEATURE_NETSTAT_PRG is not set
# CONFIG_NSLOOKUP is not set
+# CONFIG_FEATURE_NSLOOKUP_BIG is not set
+# CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS is not set
# CONFIG_NTPD is not set
# CONFIG_FEATURE_NTPD_SERVER is not set
# CONFIG_FEATURE_NTPD_CONF is not set
+# CONFIG_FEATURE_NTP_AUTH is not set
# CONFIG_PING is not set
# CONFIG_PING6 is not set
# CONFIG_FEATURE_FANCY_PING is not set
# CONFIG_PSCAN is not set
# CONFIG_ROUTE is not set
# CONFIG_SLATTACH is not set
+# CONFIG_SSL_CLIENT is not set
+# CONFIG_TC is not set
+# CONFIG_FEATURE_TC_INGRESS is not set
# CONFIG_TCPSVD is not set
# CONFIG_UDPSVD is not set
# CONFIG_TELNET is not set
# CONFIG_FEATURE_TELNET_TTYPE is not set
# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
+# CONFIG_FEATURE_TELNET_WIDTH is not set
# CONFIG_TELNETD is not set
# CONFIG_FEATURE_TELNETD_STANDALONE is not set
+CONFIG_FEATURE_TELNETD_PORT_DEFAULT=0
# CONFIG_FEATURE_TELNETD_INETD_WAIT is not set
# CONFIG_TFTP is not set
+# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
+# CONFIG_FEATURE_TFTP_HPA_COMPAT is not set
# CONFIG_TFTPD is not set
# CONFIG_FEATURE_TFTP_GET is not set
# CONFIG_FEATURE_TFTP_PUT is not set
# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
-# CONFIG_FEATURE_TFTP_PROGRESS_BAR is not set
# CONFIG_TFTP_DEBUG is not set
+# CONFIG_TLS is not set
# CONFIG_TRACEROUTE is not set
# CONFIG_TRACEROUTE6 is not set
# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
@@ -875,30 +973,37 @@ CONFIG_FEATURE_IP_ROUTE_DIR=""
# CONFIG_FEATURE_TUNCTL_UG is not set
# CONFIG_VCONFIG is not set
# CONFIG_WGET is not set
+# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
# CONFIG_FEATURE_WGET_STATUSBAR is not set
+# CONFIG_FEATURE_WGET_FTP is not set
# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
# CONFIG_FEATURE_WGET_TIMEOUT is not set
+# CONFIG_FEATURE_WGET_HTTPS is not set
# CONFIG_FEATURE_WGET_OPENSSL is not set
-# CONFIG_FEATURE_WGET_SSL_HELPER is not set
# CONFIG_WHOIS is not set
# CONFIG_ZCIP is not set
-# CONFIG_UDHCPC6 is not set
# CONFIG_UDHCPD is not set
-# CONFIG_DHCPRELAY is not set
-# CONFIG_DUMPLEASES is not set
-# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
+# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
CONFIG_DHCPD_LEASES_FILE=""
+# CONFIG_DUMPLEASES is not set
+# CONFIG_DHCPRELAY is not set
# CONFIG_UDHCPC is not set
# CONFIG_FEATURE_UDHCPC_ARPING is not set
# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set
+CONFIG_UDHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC6_DEFAULT_SCRIPT=""
+# CONFIG_UDHCPC6 is not set
+# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set
+# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set
+# CONFIG_FEATURE_UDHCPC6_RFC4833 is not set
+# CONFIG_FEATURE_UDHCPC6_RFC5970 is not set
+CONFIG_UDHCPC_DEFAULT_INTERFACE=""
# CONFIG_FEATURE_UDHCP_PORT is not set
CONFIG_UDHCP_DEBUG=0
+CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
# CONFIG_FEATURE_UDHCP_RFC3397 is not set
# CONFIG_FEATURE_UDHCP_8021Q is not set
-CONFIG_UDHCPC_DEFAULT_SCRIPT=""
-CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=0
CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
#
@@ -911,17 +1016,19 @@ CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS=""
#
# Mail Utilities
#
+CONFIG_FEATURE_MIME_CHARSET=""
# CONFIG_MAKEMIME is not set
# CONFIG_POPMAILDIR is not set
# CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set
# CONFIG_REFORMIME is not set
# CONFIG_FEATURE_REFORMIME_COMPAT is not set
# CONFIG_SENDMAIL is not set
-CONFIG_FEATURE_MIME_CHARSET=""
#
# Process Utilities
#
+# CONFIG_FEATURE_FAST_TOP is not set
+# CONFIG_FEATURE_SHOW_THREADS is not set
# CONFIG_FREE is not set
# CONFIG_FUSER is not set
# CONFIG_IOSTAT is not set
@@ -938,18 +1045,19 @@ CONFIG_FEATURE_MIME_CHARSET=""
# CONFIG_FEATURE_PIDOF_OMIT is not set
# CONFIG_PMAP is not set
# CONFIG_POWERTOP is not set
+# CONFIG_FEATURE_POWERTOP_INTERACTIVE is not set
# CONFIG_PS is not set
# CONFIG_FEATURE_PS_WIDE is not set
# CONFIG_FEATURE_PS_LONG is not set
# CONFIG_FEATURE_PS_TIME is not set
-# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set
+# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set
# CONFIG_PSTREE is not set
# CONFIG_PWDX is not set
-# CONFIG_RENICE is not set
# CONFIG_SMEMCAP is not set
# CONFIG_BB_SYSCTL is not set
# CONFIG_TOP is not set
+# CONFIG_FEATURE_TOP_INTERACTIVE is not set
# CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE is not set
# CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS is not set
# CONFIG_FEATURE_TOP_SMP_CPU is not set
@@ -959,7 +1067,6 @@ CONFIG_FEATURE_MIME_CHARSET=""
# CONFIG_UPTIME is not set
# CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set
# CONFIG_WATCH is not set
-# CONFIG_FEATURE_SHOW_THREADS is not set
#
# Runit Utilities
@@ -975,15 +1082,14 @@ CONFIG_FEATURE_MIME_CHARSET=""
# CONFIG_SV is not set
CONFIG_SV_DEFAULT_SERVICE_DIR=""
# CONFIG_SVC is not set
+# CONFIG_SVOK is not set
# CONFIG_SVLOGD is not set
# CONFIG_CHCON is not set
-# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set
# CONFIG_GETENFORCE is not set
# CONFIG_GETSEBOOL is not set
# CONFIG_LOAD_POLICY is not set
# CONFIG_MATCHPATHCON is not set
# CONFIG_RUNCON is not set
-# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set
# CONFIG_SELINUXENABLED is not set
# CONFIG_SESTATUS is not set
# CONFIG_SETENFORCE is not set
@@ -1001,27 +1107,33 @@ CONFIG_SH_IS_HUSH=y
# CONFIG_BASH_IS_ASH is not set
CONFIG_BASH_IS_HUSH=y
# CONFIG_BASH_IS_NONE is not set
+# CONFIG_SHELL_ASH is not set
# CONFIG_ASH is not set
# CONFIG_ASH_OPTIMIZE_FOR_SIZE is not set
# CONFIG_ASH_INTERNAL_GLOB is not set
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-# CONFIG_ASH_EXPAND_PRMT is not set
# CONFIG_ASH_BASH_COMPAT is not set
-# CONFIG_ASH_IDLE_TIMEOUT is not set
+# CONFIG_ASH_BASH_SOURCE_CURDIR is not set
+# CONFIG_ASH_BASH_NOT_FOUND_HOOK is not set
# CONFIG_ASH_JOB_CONTROL is not set
# CONFIG_ASH_ALIAS is not set
-# CONFIG_ASH_GETOPTS is not set
-# CONFIG_ASH_BUILTIN_ECHO is not set
-# CONFIG_ASH_BUILTIN_PRINTF is not set
-# CONFIG_ASH_BUILTIN_TEST is not set
+# CONFIG_ASH_RANDOM_SUPPORT is not set
+# CONFIG_ASH_EXPAND_PRMT is not set
+# CONFIG_ASH_IDLE_TIMEOUT is not set
+# CONFIG_ASH_MAIL is not set
+# CONFIG_ASH_ECHO is not set
+# CONFIG_ASH_PRINTF is not set
+# CONFIG_ASH_TEST is not set
+# CONFIG_ASH_SLEEP is not set
# CONFIG_ASH_HELP is not set
+# CONFIG_ASH_GETOPTS is not set
# CONFIG_ASH_CMDCMD is not set
-# CONFIG_ASH_MAIL is not set
# CONFIG_CTTYHACK is not set
CONFIG_HUSH=y
+CONFIG_SHELL_HUSH=y
CONFIG_HUSH_BASH_COMPAT=y
CONFIG_HUSH_BRACE_EXPANSION=y
-CONFIG_HUSH_HELP=y
+CONFIG_HUSH_BASH_SOURCE_CURDIR=y
+CONFIG_HUSH_LINENO_VAR=y
CONFIG_HUSH_INTERACTIVE=y
CONFIG_HUSH_SAVEHISTORY=y
CONFIG_HUSH_JOB=y
@@ -1032,15 +1144,40 @@ CONFIG_HUSH_CASE=y
CONFIG_HUSH_FUNCTIONS=y
CONFIG_HUSH_LOCAL=y
CONFIG_HUSH_RANDOM_SUPPORT=y
-CONFIG_HUSH_EXPORT_N=y
CONFIG_HUSH_MODE_X=y
-# CONFIG_MSH is not set
+CONFIG_HUSH_ECHO=y
+CONFIG_HUSH_PRINTF=y
+CONFIG_HUSH_TEST=y
+CONFIG_HUSH_HELP=y
+CONFIG_HUSH_EXPORT=y
+CONFIG_HUSH_EXPORT_N=y
+CONFIG_HUSH_READONLY=y
+CONFIG_HUSH_KILL=y
+CONFIG_HUSH_WAIT=y
+CONFIG_HUSH_COMMAND=y
+CONFIG_HUSH_TRAP=y
+CONFIG_HUSH_TYPE=y
+CONFIG_HUSH_TIMES=y
+CONFIG_HUSH_READ=y
+CONFIG_HUSH_SET=y
+CONFIG_HUSH_UNSET=y
+CONFIG_HUSH_ULIMIT=y
+CONFIG_HUSH_UMASK=y
+CONFIG_HUSH_GETOPTS=y
+# CONFIG_HUSH_MEMLEAK is not set
+
+#
+# Options common to all shells
+#
CONFIG_FEATURE_SH_MATH=y
CONFIG_FEATURE_SH_MATH_64=y
+CONFIG_FEATURE_SH_MATH_BASE=y
CONFIG_FEATURE_SH_EXTRA_QUIET=y
# CONFIG_FEATURE_SH_STANDALONE is not set
# CONFIG_FEATURE_SH_NOFORK is not set
+CONFIG_FEATURE_SH_READ_FRAC=y
CONFIG_FEATURE_SH_HISTFILESIZE=y
+CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y
#
# System Logging Utilities
@@ -1055,6 +1192,7 @@ CONFIG_FEATURE_SH_HISTFILESIZE=y
# CONFIG_FEATURE_REMOTE_LOG is not set
# CONFIG_FEATURE_SYSLOGD_DUP is not set
# CONFIG_FEATURE_SYSLOGD_CFG is not set
+# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set
CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=0
# CONFIG_FEATURE_IPC_SYSLOG is not set
CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
diff --git a/package/hwdata/Makefile b/package/hwdata/Makefile
new file mode 100644
index 000000000..0387cf3c6
--- /dev/null
+++ b/package/hwdata/Makefile
@@ -0,0 +1,51 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= hwdata
+PKG_VERSION:= 0.378
+PKG_RELEASE:= 1
+PKG_HASH:= 098ea8db12a50290f4b23f7f521edf9c5bab25935d2740de17e4a487110b40c8
+PKG_DESCR:= combined repository of pci.ids and usb.ids
+PKG_SECTION:= sys/hw
+PKG_URL:= https://github.com/vcrhonek/hwdata
+PKG_SITES:= https://github.com/vcrhonek/hwdata/archive/refs/tags/
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+PKG_SUBPKGS:= HWDATA_NET HWDATA_PCI HWDATA_USB HWDATA_PNP
+PKGSD_HWDATA_NET:= HWDATA files oui.txt and iab.txt
+PKGSD_HWDATA_PCI:= HWDATA file pci.ids
+PKGSD_HWDATA_USB:= HWDATA file usb.ids
+PKGSD_HWDATA_PNP:= HWDATA file pnp.ids
+
+PKG_FLAVOURS_HWDATA:= WITH_GZIP
+PKGFD_WITH_GZIP:= gzip ids before installation
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,HWDATA_NET,hwdata-net,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_HWDATA_NET),$(PKG_SECTION)))
+$(eval $(call PKG_template,HWDATA_PCI,hwdata-pci,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_HWDATA_PCI),$(PKG_SECTION)))
+$(eval $(call PKG_template,HWDATA_USB,hwdata-usb,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_HWDATA_USB),$(PKG_SECTION)))
+$(eval $(call PKG_template,HWDATA_PNP,hwdata-pnp,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_HWDATA_PNP),$(PKG_SECTION)))
+
+define HWDATA_INSTALL_template
+$(2)-install:
+ $$(INSTALL_DIR) $$(IDIR_$(1))/usr/share/hwdata
+ $$(INSTALL_DATA) $$(patsubst %,$$(WRKINST)/usr/share/hwdata/%,$(3)) \
+ $$(IDIR_$(1))/usr/share/hwdata/
+endef
+
+$(eval $(call HWDATA_INSTALL_template,HWDATA_NET,hwdata-net,oui.txt iab.txt))
+ifeq ($(ADK_PACKAGE_HWDATA_WITH_GZIP),y)
+$(eval $(call HWDATA_INSTALL_template,HWDATA_PCI,hwdata-pci,pci.ids.gz))
+$(eval $(call HWDATA_INSTALL_template,HWDATA_USB,hwdata-usb,usb.ids.gz))
+$(eval $(call HWDATA_INSTALL_template,HWDATA_PNP,hwdata-pnp,pnp.ids.gz))
+else
+$(eval $(call HWDATA_INSTALL_template,HWDATA_PCI,hwdata-pci,pci.ids))
+$(eval $(call HWDATA_INSTALL_template,HWDATA_USB,hwdata-usb,usb.ids))
+$(eval $(call HWDATA_INSTALL_template,HWDATA_PNP,hwdata-pnp,pnp.ids))
+endif
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/hwdata/patches/patch-hwdata_pc_in b/package/hwdata/patches/patch-hwdata_pc_in
new file mode 100644
index 000000000..fe88b5244
--- /dev/null
+++ b/package/hwdata/patches/patch-hwdata_pc_in
@@ -0,0 +1,10 @@
+--- hwdata-0.378.orig/hwdata.pc.in 2024-01-05 12:35:26.000000000 +0100
++++ hwdata-0.378/hwdata.pc.in 2024-01-30 09:39:29.731448151 +0100
+@@ -1,6 +1,6 @@
+ prefix=@prefix@
+ datadir=@datadir@
+-pkgdatadir=${pc_sysrootdir}@pkgdatadir@
++pkgdatadir=@pkgdatadir@
+
+ Name: @NAME@
+ Description: Hardware identification and configuration data
diff --git a/package/hwids/Makefile b/package/hwids/Makefile
deleted file mode 100644
index ceeca3a72..000000000
--- a/package/hwids/Makefile
+++ /dev/null
@@ -1,61 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= hwids
-PKG_VERSION:= 20150129
-PKG_RELEASE:= 1
-PKG_HASH:= 33a7f4dbf14704076b0fe1d0052e86bb618e386a1ff18107097311df44f979d7
-PKG_DESCR:= combined repository of pci.ids and usb.ids
-PKG_SECTION:= sys/hw
-PKG_URL:= https://github.com/gentoo/hwids
-PKG_SITES:= https://github.com/gentoo/hwids/archive/
-
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
-# typical problem of having tags like '<name>-<version>' in github
-WRKDIST= $(WRKDIR)/$(PKG_NAME)-$(PKG_NAME)-$(PKG_VERSION)
-
-PKG_SUBPKGS:= HWIDS_NET HWIDS_PCI HWIDS_USB
-PKGSD_HWIDS_NET:= HWIDS files oui.txt and iab.txt
-PKGSD_HWIDS_PCI:= HWIDS file pci.ids
-PKGSD_HWIDS_USB:= HWIDS file usb.ids
-
-PKG_FLAVOURS_HWIDS:= WITH_GZIP
-PKGFD_WITH_GZIP:= gzip pci.ids and usb.ids before installation
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,HWIDS_NET,hwids-net,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_HWIDS_NET),$(PKG_SECTION)))
-$(eval $(call PKG_template,HWIDS_PCI,hwids-pci,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_HWIDS_PCI),$(PKG_SECTION)))
-$(eval $(call PKG_template,HWIDS_USB,hwids-usb,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_HWIDS_USB),$(PKG_SECTION)))
-
-CONFIG_STYLE:= manual
-XAKE_FLAGS+= NET=yes \
- PCI=yes \
- UDEV=no \
- USB=yes
-# note: Can't pass GZIP=yes to make, as this will turn it
-# into an env var automatically which makes gzip trip.
-# Therefore assume here that GZIP=yes is the default.
-ifneq ($(ADK_PACKAGE_HWIDS_WITH_GZIP),y)
-XAKE_FLAGS+= GZIP=no
-endif
-
-define HWIDS_INSTALL_template
-$(2)-install:
- $$(INSTALL_DIR) $$(IDIR_$(1))/usr/share/misc
- $$(INSTALL_DATA) $$(patsubst %,$$(WRKINST)/usr/share/misc/%,$(3)) \
- $$(IDIR_$(1))/usr/share/misc/
-endef
-
-$(eval $(call HWIDS_INSTALL_template,HWIDS_NET,hwids-net,oui.txt iab.txt))
-ifeq ($(ADK_PACKAGE_HWIDS_WITH_GZIP),y)
-$(eval $(call HWIDS_INSTALL_template,HWIDS_PCI,hwids-pci,pci.ids.gz))
-$(eval $(call HWIDS_INSTALL_template,HWIDS_USB,hwids-usb,usb.ids.gz))
-else
-$(eval $(call HWIDS_INSTALL_template,HWIDS_PCI,hwids-pci,pci.ids))
-$(eval $(call HWIDS_INSTALL_template,HWIDS_USB,hwids-usb,usb.ids))
-endif
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/icecast/Makefile b/package/icecast/Makefile
index df4fe30b7..08f0e0a45 100644
--- a/package/icecast/Makefile
+++ b/package/icecast/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= icecast
-PKG_VERSION:= 2.3.3
+PKG_VERSION:= 2.4.4
PKG_RELEASE:= 1
-PKG_HASH:= 1b1d06f5f83c9a983cd28cc78aa90e4038f933511b3d20d7fd2cfc116645c36d
+PKG_HASH:= 49b5979f9f614140b6a38046154203ee28218d8fc549888596a683ad604e4d44
PKG_DESCR:= streaming media server
PKG_SECTION:= mm/audio
PKG_DEPENDS:= libcurl libvorbis libxml2 libxslt
@@ -23,6 +23,7 @@ $(eval $(call PKG_template,ICECAST,icecast,${PKG_VERSION}-${PKG_RELEASE},${PKG_D
AUTOTOOL_STYLE:= autoreconf
TARGET_CPPFLAGS+= -I${STAGING_TARGET_DIR}/usr/include/libxml2
+TARGET_LDFLAGS+= -lxml2
CONFIGURE_ARGS+= --disable-yp \
--with-curl="yes" \
--with-curl-config="${STAGING_TARGET_DIR}/usr/bin/curl-config" \
diff --git a/package/icu4c/Makefile b/package/icu4c/Makefile
index c2baf3090..57851e92f 100644
--- a/package/icu4c/Makefile
+++ b/package/icu4c/Makefile
@@ -4,18 +4,18 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= icu4c
-PKG_VERSION:= 54.1
-PKG_RELEASE:= 2
-PKG_HASH:= d42bc9a8ca6a91c55eb0925c279f49e5b508d51ef26ac9850d9be55de5bb8ab3
+PKG_VERSION:= 70.1
+PKG_RELEASE:= 1
+PKG_HASH:= 8d205428c17bf13bb535300669ed28b338a157b1c01ae66d31d0d3e2d47c3fd5
PKG_DESCR:= unicode and globalization library
PKG_SECTION:= libs/misc
PKG_BUILDDEP:= icu4c-host
PKG_NEEDS:= c++
PKG_URL:= http://icu-project.org
-PKG_SITES:= http://download.icu-project.org/files/icu4c/$(PKG_VERSION)/
+PKG_SITES:= https://github.com/unicode-org/icu/releases/download/release-70-1/
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-54_1-src.tgz
+DISTFILES:= ${PKG_NAME}-70_1-src.tgz
WRKDIST= ${WRKDIR}/icu/source
diff --git a/package/ipmitool/Makefile b/package/ipmitool/Makefile
index 2fec3dd77..938a59ed4 100644
--- a/package/ipmitool/Makefile
+++ b/package/ipmitool/Makefile
@@ -4,21 +4,21 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= ipmitool
-PKG_VERSION:= 1.8.15
+PKG_VERSION:= 1.8.19
PKG_RELEASE:= 1
-PKG_HASH:= f0964e644a8e693932a3e8da6929d5598ed24645bacd51fbb1a4a09b5e47cf78
+PKG_HASH:= 48b010e7bcdf93e4e4b6e43c53c7f60aa6873d574cbd45a8d86fa7aaeebaff9c
PKG_DESCR:= utility for controlling ipmi enabled devices
PKG_SECTION:= net/misc
-PKG_URL:= http://ipmitool.sf.net/
-PKG_SITES:= $(MASTER_SITE_SOURCEFORGE:=ipmitool/)
+PKG_SITES:= https://github.com/ipmitool/ipmitool/archive/refs/tags/
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+DISTFILES:= IPMITOOL_1_8_19.tar.gz
+WRKDIST= ${WRKDIR}/$(PKG_NAME)-IPMITOOL_1_8_19
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,IPMITOOL,ipmitool,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-CONFIGURE_ENV+= ac_cv_func_malloc_0_nonnull=yes
+AUTOTOOL_STYLE:= bootstrap
ipmitool-install:
$(INSTALL_DIR) $(IDIR_IPMITOOL)/usr/bin
diff --git a/package/iproute2/Makefile b/package/iproute2/Makefile
index 4057007bc..1040eb93c 100644
--- a/package/iproute2/Makefile
+++ b/package/iproute2/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= iproute2
-PKG_VERSION:= 4.15.0
+PKG_VERSION:= 5.8.0
PKG_RELEASE:= 1
-PKG_HASH:= 48d4616a99d7b609b7b795c0ae8ec57099fb0271ed89253e8772c02327798355
+PKG_HASH:= cfcd1f890290f8c8afcc91d9444ad929b9252c16f9ab3f286c50dd3c59dc646e
PKG_DESCR:= routing control utility
PKG_SECTION:= net/route
PKG_BUILDDEP:= iptables libnl linux-atm
diff --git a/package/ipsec-tools/Makefile b/package/ipsec-tools/Makefile
deleted file mode 100644
index c109ac377..000000000
--- a/package/ipsec-tools/Makefile
+++ /dev/null
@@ -1,51 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= ipsec-tools
-PKG_VERSION:= 0.8.2
-PKG_RELEASE:= 2
-PKG_HASH:= 8eb6b38716e2f3a8a72f1f549c9444c2bc28d52c9536792690564c74fe722f2d
-PKG_DESCR:= ipsec management tools
-PKG_SECTION:= net/security
-PKG_DEPENDS:= libressl
-PKG_BUILDDEP:= flex libressl
-PKG_KDEPENDS:= net-key
-PKG_URL:= http://ipsec-tools.sourceforge.net/
-PKG_SITES:= $(MASTER_SITE_SOURCEFORGE:=ipsec-tools/)
-
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
-
-PKG_FLAVOURS_IPSEC_TOOLS:= WITH_IPV6
-PKGFD_WITH_IPV6:= enable ipv6 support
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,IPSEC_TOOLS,ipsec-tools,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-CONFIGURE_ARGS+= --with-kernel-headers="$(LINUX_DIR)/include" \
- --with-openssl="$(STAGING_TARGET_DIR)/usr" \
- --without-readline \
- --disable-security-context \
- --without-libradius \
- --without-libpam
-
-ifneq ($(ADK_PACKAGE_IPSEC_TOOLS_WITH_IPV6),)
-CONFIGURE_ARGS+= --enable-ipv6
-else
-CONFIGURE_ARGS+= --disable-ipv6
-endif
-
-ipsec-tools-install:
- $(INSTALL_DIR) $(IDIR_IPSEC_TOOLS)/etc
- $(INSTALL_DIR) $(IDIR_IPSEC_TOOLS)/usr/lib
- $(INSTALL_DIR) $(IDIR_IPSEC_TOOLS)/usr/sbin
- $(INSTALL_DATA) $(WRKBUILD)/src/racoon/samples/racoon.conf \
- $(IDIR_IPSEC_TOOLS)/etc
- $(CP) $(WRKINST)/usr/lib/lib{racoon,ipsec}.so.* \
- $(IDIR_IPSEC_TOOLS)/usr/lib
- $(INSTALL_BIN) $(WRKINST)/usr/sbin/{racoon,racoonctl,setkey,plainrsa-gen} \
- $(IDIR_IPSEC_TOOLS)/usr/sbin
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/ipsec-tools/files/ipsec-tools.conffiles b/package/ipsec-tools/files/ipsec-tools.conffiles
deleted file mode 100644
index 434045463..000000000
--- a/package/ipsec-tools/files/ipsec-tools.conffiles
+++ /dev/null
@@ -1 +0,0 @@
-/etc/racoon.conf
diff --git a/package/ipsec-tools/patches/patch-configure b/package/ipsec-tools/patches/patch-configure
deleted file mode 100644
index 17cc8c958..000000000
--- a/package/ipsec-tools/patches/patch-configure
+++ /dev/null
@@ -1,67 +0,0 @@
---- ipsec-tools-0.8.2.orig/configure 2014-02-27 09:50:41.000000000 +0100
-+++ ipsec-tools-0.8.2/configure 2015-03-19 17:44:43.000000000 +0100
-@@ -11885,7 +11885,7 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
-
-
-
--CFLAGS_ADD="$CFLAGS_ADD -Wall -Werror -Wno-unused"
-+CFLAGS_ADD="$CFLAGS_ADD -Wall -Wno-unused"
-
- case $host in
- *netbsd*)
-@@ -11977,8 +11977,8 @@ else
- fi
-
-
-- as_ac_Header=`$as_echo "ac_cv_header_$KERNEL_INCLUDE/linux/pfkeyv2.h" | $as_tr_sh`
--ac_fn_c_check_header_mongrel "$LINENO" "$KERNEL_INCLUDE/linux/pfkeyv2.h" "$as_ac_Header" "$ac_includes_default"
-+ as_ac_Header=`$as_echo "ac_cv_header_$KERNEL_INCLUDE/uapi/linux/pfkeyv2.h" | $as_tr_sh`
-+ac_fn_c_check_header_mongrel "$LINENO" "$KERNEL_INCLUDE/uapi/linux/pfkeyv2.h" "$as_ac_Header" "$ac_includes_default"
- if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-
- else
-@@ -12637,7 +12637,7 @@ $as_echo "$as_me: WARNING: Using a gener
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if printf accepts %z" >&5
- $as_echo_n "checking if printf accepts %z... " >&6; }
- saved_CFLAGS=$CFLAGS
--CFLAGS="$CFLAGS -Wall -Werror"
-+CFLAGS="$CFLAGS -Wall"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
-
-@@ -14090,7 +14090,7 @@ $as_echo "#define HAVE_LIBLDAP /**/" >>c
- LIBS="$LIBS -L$libldap_dir/lib -R$libldap_dir/lib -lldap"
-
- saved_CFLAGS=$CFLAGS
-- CFLAGS="$CFLAGS -Wall -Werror"
-+ CFLAGS="$CFLAGS -Wall"
- saved_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $CPPFLAGS_ADD"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-@@ -14203,7 +14203,7 @@ $as_echo "#define HAVE_GSSAPI /**/" >>co
-
- # Check if iconv 2nd argument needs const
- saved_CFLAGS=$CFLAGS
-- CFLAGS="$CFLAGS -Wall -Werror"
-+ CFLAGS="$CFLAGS -Wall"
- saved_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS $CPPFLAGS_ADD"
- ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default"
-@@ -14604,7 +14604,7 @@ linux*)
- # Linux kernel NAT-T check
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
--#include <linux/pfkeyv2.h>
-+#include <uapi/linux/pfkeyv2.h>
- #ifdef SADB_X_EXT_NAT_T_TYPE
- yes
- #endif
-@@ -14791,7 +14791,7 @@ linux*)
- # Linux kernel Security Context check
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
--#include <linux/pfkeyv2.h>
-+#include <uapi/linux/pfkeyv2.h>
- #ifdef SADB_X_EXT_SEC_CTX
- yes
- #endif
diff --git a/package/ipsec-tools/patches/patch-src_include-glibc_Makefile_in b/package/ipsec-tools/patches/patch-src_include-glibc_Makefile_in
deleted file mode 100644
index 0833b4c1d..000000000
--- a/package/ipsec-tools/patches/patch-src_include-glibc_Makefile_in
+++ /dev/null
@@ -1,24 +0,0 @@
---- ipsec-tools-0.8.2.orig/src/include-glibc/Makefile.in 2014-02-27 09:50:39.000000000 +0100
-+++ ipsec-tools-0.8.2/src/include-glibc/Makefile.in 2015-03-19 17:52:53.000000000 +0100
-@@ -248,7 +248,7 @@ EXTRA_DIST = \
- netinet/ipsec.h \
- sys/queue.h
-
--DISTCLEANFILES = .includes linux
-+DISTCLEANFILES = linux
- all: all-am
-
- .SUFFIXES:
-@@ -441,11 +441,7 @@ uninstall-am:
- tags-am uninstall uninstall-am
-
-
--.includes: ${top_builddir}/config.status
-- ln -snf $(KERNEL_INCLUDE)/linux
-- touch .includes
--
--all: .includes
-+all:
-
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/package/ipsec-tools/patches/patch-src_racoon_algorithm_c b/package/ipsec-tools/patches/patch-src_racoon_algorithm_c
deleted file mode 100644
index 82a3d057b..000000000
--- a/package/ipsec-tools/patches/patch-src_racoon_algorithm_c
+++ /dev/null
@@ -1,43 +0,0 @@
---- ipsec-tools-0.8.0.orig/src/racoon/algorithm.c 2006-10-06 14:02:27.000000000 +0200
-+++ ipsec-tools-0.8.0/src/racoon/algorithm.c 2011-03-31 13:22:28.381818558 +0200
-@@ -111,9 +111,11 @@ static struct enc_algorithm oakley_encde
- eay_idea_encrypt, eay_idea_decrypt,
- eay_idea_weakkey, eay_idea_keylen, },
- #endif
-+#ifndef OPENSSL_NO_BF
- { "blowfish", algtype_blowfish, OAKLEY_ATTR_ENC_ALG_BLOWFISH, 8,
- eay_bf_encrypt, eay_bf_decrypt,
- eay_bf_weakkey, eay_bf_keylen, },
-+#endif
- #ifdef HAVE_OPENSSL_RC5_H
- { "rc5", algtype_rc5, OAKLEY_ATTR_ENC_ALG_RC5, 8,
- eay_rc5_encrypt, eay_rc5_decrypt,
-@@ -122,9 +124,11 @@ static struct enc_algorithm oakley_encde
- { "3des", algtype_3des, OAKLEY_ATTR_ENC_ALG_3DES, 8,
- eay_3des_encrypt, eay_3des_decrypt,
- eay_3des_weakkey, eay_3des_keylen, },
-+#ifndef OPENSSL_NO_CAST
- { "cast", algtype_cast128, OAKLEY_ATTR_ENC_ALG_CAST, 8,
- eay_cast_encrypt, eay_cast_decrypt,
- eay_cast_weakkey, eay_cast_keylen, },
-+#endif
- { "aes", algtype_aes, OAKLEY_ATTR_ENC_ALG_AES, 16,
- eay_aes_encrypt, eay_aes_decrypt,
- eay_aes_weakkey, eay_aes_keylen, },
-@@ -150,12 +154,16 @@ static struct enc_algorithm ipsec_encdef
- NULL, NULL,
- NULL, eay_rc5_keylen, },
- #endif
-+#ifndef OPENSSL_NO_CAST
- { "cast", algtype_cast128, IPSECDOI_ESP_CAST, 8,
- NULL, NULL,
- NULL, eay_cast_keylen, },
-+#endif
-+#ifndef OPENSSL_NO_CAST
- { "blowfish", algtype_blowfish, IPSECDOI_ESP_BLOWFISH, 8,
- NULL, NULL,
- NULL, eay_bf_keylen, },
-+#endif
- { "des-iv32", algtype_des_iv32, IPSECDOI_ESP_DES_IV32, 8,
- NULL, NULL,
- NULL, eay_des_keylen, },
diff --git a/package/ipsec-tools/patches/patch-src_racoon_crypto_openssl_c b/package/ipsec-tools/patches/patch-src_racoon_crypto_openssl_c
deleted file mode 100644
index 4e2d8907d..000000000
--- a/package/ipsec-tools/patches/patch-src_racoon_crypto_openssl_c
+++ /dev/null
@@ -1,47 +0,0 @@
---- ipsec-tools-0.8.2.orig/src/racoon/crypto_openssl.c 2012-12-24 15:50:39.000000000 +0100
-+++ ipsec-tools-0.8.2/src/racoon/crypto_openssl.c 2015-03-19 17:44:43.000000000 +0100
-@@ -63,8 +63,12 @@
- #ifdef HAVE_OPENSSL_ENGINE_H
- #include <openssl/engine.h>
- #endif
-+#ifndef OPENSSL_NO_BF
- #include <openssl/blowfish.h>
-+#endif
-+#ifndef OPENSSL_NO_CAST
- #include <openssl/cast.h>
-+#endif
- #include <openssl/err.h>
- #ifdef HAVE_OPENSSL_RC5_H
- #include <openssl/rc5.h>
-@@ -1292,6 +1296,7 @@ eay_idea_keylen(len)
- }
- #endif
-
-+#ifndef OPENSSL_NO_BF
- /*
- * BLOWFISH-CBC
- */
-@@ -1326,6 +1331,7 @@ eay_bf_keylen(len)
- return -1;
- return len;
- }
-+#endif
-
- #ifdef HAVE_OPENSSL_RC5_H
- /*
-@@ -1437,6 +1443,7 @@ eay_3des_keylen(len)
- return 192;
- }
-
-+#ifndef OPENSSL_NO_CAST
- /*
- * CAST-CBC
- */
-@@ -1471,6 +1478,7 @@ eay_cast_keylen(len)
- return -1;
- return len;
- }
-+#endif
-
- /*
- * AES(RIJNDAEL)-CBC
diff --git a/package/ipsec-tools/patches/patch-src_racoon_eaytest_c b/package/ipsec-tools/patches/patch-src_racoon_eaytest_c
deleted file mode 100644
index 86a5ff77e..000000000
--- a/package/ipsec-tools/patches/patch-src_racoon_eaytest_c
+++ /dev/null
@@ -1,26 +0,0 @@
---- ipsec-tools-0.8.0.orig/src/racoon/eaytest.c 2010-01-18 00:02:48.000000000 +0100
-+++ ipsec-tools-0.8.0/src/racoon/eaytest.c 2011-03-31 13:23:53.361808366 +0200
-@@ -684,19 +684,23 @@ ciphertest(ac, av)
- eay_aes_encrypt, eay_aes_decrypt) < 0)
- return -1;
-
-+#ifndef OPENSSL_NO_BF
- if (ciphertest_1 ("BLOWFISH",
- &data, 8,
- &key, key.l,
- &iv0, 8,
- eay_bf_encrypt, eay_bf_decrypt) < 0)
- return -1;
-+#endif
-
-+#ifndef OPENSSL_NO_CAST
- if (ciphertest_1 ("CAST",
- &data, 8,
- &key, key.l,
- &iv0, 8,
- eay_cast_encrypt, eay_cast_decrypt) < 0)
- return -1;
-+#endif
-
- #ifdef HAVE_OPENSSL_IDEA_H
- if (ciphertest_1 ("IDEA",
diff --git a/package/ipsec-tools/patches/patch-src_racoon_isakmp_c b/package/ipsec-tools/patches/patch-src_racoon_isakmp_c
deleted file mode 100644
index fdf5356fc..000000000
--- a/package/ipsec-tools/patches/patch-src_racoon_isakmp_c
+++ /dev/null
@@ -1,21 +0,0 @@
---- ipsec-tools-0.8.0.orig/src/racoon/isakmp.c 2011-03-15 14:20:14.000000000 +0100
-+++ ipsec-tools-0.8.0/src/racoon/isakmp.c 2011-08-24 18:48:47.887978959 +0200
-@@ -33,6 +33,10 @@
-
- #include "config.h"
-
-+#ifndef __packed
-+#define __packed __attribute__((packed))
-+#endif
-+
- #include <sys/types.h>
- #include <sys/param.h>
- #include <sys/socket.h>
-@@ -130,6 +134,7 @@
- # define SOL_UDP IPPROTO_UDP
- # endif /* __NetBSD__ / __FreeBSD__ */
-
-+
- static int nostate1 __P((struct ph1handle *, vchar_t *));
- static int nostate2 __P((struct ph2handle *, vchar_t *));
-
diff --git a/package/ipsec-tools/patches/patch-src_racoon_isakmp_xauth_c b/package/ipsec-tools/patches/patch-src_racoon_isakmp_xauth_c
deleted file mode 100644
index 2db130da8..000000000
--- a/package/ipsec-tools/patches/patch-src_racoon_isakmp_xauth_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- ipsec-tools-0.8.2.orig/src/racoon/isakmp_xauth.c 2013-02-05 07:23:42.000000000 +0100
-+++ ipsec-tools-0.8.2/src/racoon/isakmp_xauth.c 2015-03-19 17:44:43.000000000 +0100
-@@ -659,7 +659,7 @@ PAM_conv(msg_count, msg, rsp, dontcare)
-
- if ((reply = racoon_malloc(sizeof(*reply) * msg_count)) == NULL)
- return PAM_CONV_ERR;
-- bzero(reply, sizeof(*reply) * msg_count);
-+ memset(reply, 0, sizeof(*reply) * msg_count);
-
- for (i = 0; i < msg_count; i++) {
- switch (msg[i]->msg_style) {
diff --git a/package/ipsec-tools/patches/patch-src_racoon_pfkey_c b/package/ipsec-tools/patches/patch-src_racoon_pfkey_c
deleted file mode 100644
index d0c416d83..000000000
--- a/package/ipsec-tools/patches/patch-src_racoon_pfkey_c
+++ /dev/null
@@ -1,17 +0,0 @@
---- ipsec-tools-0.8.0.orig/src/racoon/pfkey.c 2011-03-15 14:20:14.000000000 +0100
-+++ ipsec-tools-0.8.0/src/racoon/pfkey.c 2011-03-31 13:24:03.781819000 +0200
-@@ -3855,12 +3855,12 @@ addnewsp(mhp, local, remote)
- struct sockaddr *paddr;
-
- paddr = (struct sockaddr *)(xisr + 1);
-- bcopy(paddr, &(*p_isr)->saidx.src,
-+ memcpy(&(*p_isr)->saidx.src, paddr,
- sysdep_sa_len(paddr));
-
- paddr = (struct sockaddr *)((caddr_t)paddr
- + sysdep_sa_len(paddr));
-- bcopy(paddr, &(*p_isr)->saidx.dst,
-+ memcpy(&(*p_isr)->saidx.dst, paddr,
- sysdep_sa_len(paddr));
- }
-
diff --git a/package/ipsec-tools/patches/patch-src_racoon_privsep_c b/package/ipsec-tools/patches/patch-src_racoon_privsep_c
deleted file mode 100644
index d06825722..000000000
--- a/package/ipsec-tools/patches/patch-src_racoon_privsep_c
+++ /dev/null
@@ -1,92 +0,0 @@
---- ipsec-tools-0.8.2.orig/src/racoon/privsep.c 2012-08-23 13:10:45.000000000 +0200
-+++ ipsec-tools-0.8.2/src/racoon/privsep.c 2015-03-19 17:44:43.000000000 +0100
-@@ -368,7 +368,7 @@ privsep_init(void)
- strerror(errno));
- goto out;
- }
-- bzero(reply, sizeof(*reply));
-+ memset(reply, 0, sizeof(*reply));
- reply->hdr.ac_cmd = combuf->hdr.ac_cmd;
- reply->hdr.ac_len = sizeof(*reply);
-
-@@ -466,7 +466,7 @@ privsep_init(void)
- strerror(errno));
- goto out;
- }
-- bzero(envp, (envc + 1) * sizeof(char *));
-+ memset(envp, 0, (envc + 1) * sizeof(char *));
-
-
- /*
-@@ -912,7 +912,7 @@ privsep_eay_get_pkcs1privkey(path)
- "Cannot allocate memory: %s\n", strerror(errno));
- return NULL;
- }
-- bzero(msg, len);
-+ memset(msg, 0, len);
- msg->hdr.ac_cmd = PRIVSEP_EAY_GET_PKCS1PRIVKEY;
- msg->hdr.ac_len = len;
- msg->bufs.buflen[0] = len - sizeof(*msg);
-@@ -962,7 +962,7 @@ privsep_script_exec(script, name, envp)
- return -1;
- }
-
-- bzero(msg, sizeof(*msg));
-+ memset(msg, 0, sizeof(*msg));
- msg->hdr.ac_cmd = PRIVSEP_SCRIPT_EXEC;
- msg->hdr.ac_len = sizeof(*msg);
-
-@@ -1071,7 +1071,7 @@ privsep_getpsk(str, keylen)
- "Cannot allocate memory: %s\n", strerror(errno));
- return NULL;
- }
-- bzero(msg, len);
-+ memset(msg, 0, len);
- msg->hdr.ac_cmd = PRIVSEP_GETPSK;
- msg->hdr.ac_len = len;
-
-@@ -1343,7 +1343,7 @@ privsep_xauth_login_system(usr, pwd)
- "Cannot allocate memory: %s\n", strerror(errno));
- return -1;
- }
-- bzero(msg, len);
-+ memset(msg, 0, len);
- msg->hdr.ac_cmd = PRIVSEP_XAUTH_LOGIN_SYSTEM;
- msg->hdr.ac_len = len;
-
-@@ -1398,7 +1398,7 @@ privsep_accounting_system(port, raddr, u
- "Cannot allocate memory: %s\n", strerror(errno));
- return -1;
- }
-- bzero(msg, len);
-+ memset(msg, 0, len);
- msg->hdr.ac_cmd = PRIVSEP_ACCOUNTING_SYSTEM;
- msg->hdr.ac_len = len;
- msg->bufs.buflen[0] = sizeof(port);
-@@ -1652,7 +1652,7 @@ privsep_accounting_pam(port, inout)
- "Cannot allocate memory: %s\n", strerror(errno));
- return -1;
- }
-- bzero(msg, len);
-+ memset(msg, 0, len);
- msg->hdr.ac_cmd = PRIVSEP_ACCOUNTING_PAM;
- msg->hdr.ac_len = len;
- msg->bufs.buflen[0] = sizeof(port);
-@@ -1714,7 +1714,7 @@ privsep_xauth_login_pam(port, raddr, usr
- "Cannot allocate memory: %s\n", strerror(errno));
- return -1;
- }
-- bzero(msg, len);
-+ memset(msg, 0, len);
- msg->hdr.ac_cmd = PRIVSEP_XAUTH_LOGIN_PAM;
- msg->hdr.ac_len = len;
- msg->bufs.buflen[0] = sizeof(port);
-@@ -1779,7 +1779,7 @@ privsep_cleanup_pam(port)
- "Cannot allocate memory: %s\n", strerror(errno));
- return;
- }
-- bzero(msg, len);
-+ memset(msg, 0, len);
- msg->hdr.ac_cmd = PRIVSEP_CLEANUP_PAM;
- msg->hdr.ac_len = len;
- msg->bufs.buflen[0] = sizeof(port);
diff --git a/package/ipsec-tools/patches/patch-src_racoon_racoonctl_c b/package/ipsec-tools/patches/patch-src_racoon_racoonctl_c
deleted file mode 100644
index 3b998fe24..000000000
--- a/package/ipsec-tools/patches/patch-src_racoon_racoonctl_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- ipsec-tools-0.8.0.orig/src/racoon/racoonctl.c 2010-11-12 10:08:26.000000000 +0100
-+++ ipsec-tools-0.8.0/src/racoon/racoonctl.c 2011-03-31 13:24:13.201808233 +0200
-@@ -693,7 +693,7 @@ f_vpnc(ac, av)
- errx(1, "cannot read source address");
-
- /* We get "ip[port]" strip the port */
-- if ((idx = index(srcaddr, '[')) == NULL)
-+ if ((idx = strchr(srcaddr, '[')) == NULL)
- errx(1, "unexpected source address format");
- *idx = '\0';
-
diff --git a/package/iptables-snmp/Makefile b/package/iptables-snmp/Makefile
deleted file mode 100644
index c771132e2..000000000
--- a/package/iptables-snmp/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= iptables-snmp
-PKG_VERSION:= 0.1
-PKG_RELEASE:= 1
-PKG_HASH:= 3275bb3820809a311b9f92ea32f071888b9a92f60c831417490e811f46ec4d54
-PKG_DESCR:= iptables support for net-snmp
-PKG_SECTION:= net/misc
-PKG_BUILDDEP:= net-snmp
-PKG_URL:= http://www.nobiscuit.com/iptables-snmp/
-PKG_SITES:= http://www.nobiscuit.com/iptables-snmp/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
-PKG_LIBC_DEPENDS:= uclibc-ng glibc
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,IPTABLES_SNMP,iptables-snmp,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-FAKE_FLAGS+= INSTALL_PREFIX="${WRKINST}"
-
-iptables-snmp-install:
- ${INSTALL_DIR} ${IDIR_IPTABLES_SNMP}/usr/lib
- ${CP} ${WRKINST}/usr/lib/iptables-snmp.so ${IDIR_IPTABLES_SNMP}/usr/lib
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/iptables-snmp/patches/patch-Makefile_in b/package/iptables-snmp/patches/patch-Makefile_in
deleted file mode 100644
index 164003986..000000000
--- a/package/iptables-snmp/patches/patch-Makefile_in
+++ /dev/null
@@ -1,11 +0,0 @@
---- iptables-snmp-0.1.orig/Makefile.in 2005-11-02 13:00:10.000000000 +0100
-+++ iptables-snmp-0.1/Makefile.in 2011-01-12 15:44:48.000000000 +0100
-@@ -67,7 +67,7 @@ OTHER = -Iinclude -DIPTABLES_VERSION=$(
-
- all: iptables-snmp.so
-
--iptables-snmp.so: $(OBJS) libiptc.a Makefile
-+iptables-snmp.so: $(OBJS) Makefile
- $(CC) $(CFLAGS) $(OTHER) $(DFLAGS) -shared -o $@ $(OBJS) $(LDFLAGS)
-
- libiptc.a: $(LIBIPTC_OBJS) Makefile
diff --git a/package/iptables-snmp/patches/patch-iptables-snmp_c b/package/iptables-snmp/patches/patch-iptables-snmp_c
deleted file mode 100644
index c129ff0e9..000000000
--- a/package/iptables-snmp/patches/patch-iptables-snmp_c
+++ /dev/null
@@ -1,12 +0,0 @@
---- iptables-snmp-0.1.orig/iptables-snmp.c 2005-11-02 12:10:54.000000000 +0100
-+++ iptables-snmp-0.1/iptables-snmp.c 2011-01-12 15:46:19.000000000 +0100
-@@ -37,6 +37,9 @@
-
- #include "libiptc/libiptc.h"
-
-+/* For backward compatibility */
-+//typedef struct iptc_handle *iptc_handle_t;
-+
- static oid agent_version_oid[] = {
- BASE_OID, 1, 0, AGENT_VERSION_INDEX
- };
diff --git a/package/iptables-snmp/patches/patch-libiptc_libip6tc_c b/package/iptables-snmp/patches/patch-libiptc_libip6tc_c
deleted file mode 100644
index 68ae9cf7f..000000000
--- a/package/iptables-snmp/patches/patch-libiptc_libip6tc_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- iptables-snmp-0.1.orig/libiptc/libip6tc.c 2005-07-05 00:11:28.000000000 +0200
-+++ iptables-snmp-0.1/libiptc/libip6tc.c 2009-11-13 23:18:45.195701184 +0100
-@@ -111,7 +111,7 @@ typedef unsigned int socklen_t;
- #include "libiptc.c"
-
- #define BIT6(a, l) \
-- ((ntohl(a->in6_u.u6_addr32[(l) / 32]) >> (31 - ((l) & 31))) & 1)
-+ ((ntohl(a->s6_addr32[(l) / 32]) >> (31 - ((l) & 31))) & 1)
-
- int
- ipv6_prefix_length(const struct in6_addr *a)
diff --git a/package/iptables/Makefile b/package/iptables/Makefile
index c573b7285..f6e0ad777 100644
--- a/package/iptables/Makefile
+++ b/package/iptables/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= iptables
-PKG_VERSION:= 1.6.2
+PKG_VERSION:= 1.8.10
PKG_RELEASE:= 1
-PKG_HASH:= 55d02dfa46263343a401f297d44190f2a3e5113c8933946f094ed40237053733
+PKG_HASH:= 5cc255c189356e317d070755ce9371eb63a1b783c34498fb8c30264f3cc59c9c
PKG_DESCR:= netfilter firewalling software
PKG_SECTION:= net/firewall
PKG_DEPENDS:= libnetfilter_conntrack libmnl libnfnetlink
@@ -17,13 +17,10 @@ PKG_URL:= http://www.netfilter.org/
PKG_SITES:= http://www.netfilter.org/projects/iptables/files/
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
-
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,IPTABLES,iptables,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-AUTOTOOL_STYLE:= autoreconf
TARGET_LDFLAGS+= -fPIC
CONFIGURE_ARGS+= --enable-devel \
--disable-nftables
@@ -32,12 +29,11 @@ iptables-install:
${INSTALL_DIR} ${IDIR_IPTABLES}/{usr/lib,etc/xtables,usr/sbin}
${INSTALL_DATA} ./files/firewall.conf ${IDIR_IPTABLES}/etc
${INSTALL_DATA} ./files/connlabel.conf ${IDIR_IPTABLES}/etc/xtables
+ ${CP} ${WRKINST}/usr/sbin/xtables-legacy-multi ${IDIR_IPTABLES}/usr/sbin
${CP} ${WRKINST}/usr/sbin/iptables ${IDIR_IPTABLES}/usr/sbin
${CP} ${WRKINST}/usr/sbin/ip6tables ${IDIR_IPTABLES}/usr/sbin
${CP} ${WRKINST}/usr/sbin/iptables-{save,restore} \
${IDIR_IPTABLES}/usr/sbin
- ${CP} ${WRKINST}/usr/sbin/xtables-multi ${IDIR_IPTABLES}/usr/sbin
- ${CP} ${WRKINST}/usr/lib/libiptc.so* ${IDIR_IPTABLES}/usr/lib
${CP} ${WRKINST}/usr/lib/libip4tc.so* ${IDIR_IPTABLES}/usr/lib
${CP} ${WRKINST}/usr/lib/libip6tc.so* ${IDIR_IPTABLES}/usr/lib
${CP} ${WRKINST}/usr/lib/libxtables.so* ${IDIR_IPTABLES}/usr/lib
diff --git a/package/iptraf-ng/Makefile b/package/iptraf-ng/Makefile
new file mode 100644
index 000000000..d6dbecc56
--- /dev/null
+++ b/package/iptraf-ng/Makefile
@@ -0,0 +1,32 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${ADK_TOPDIR}/rules.mk
+
+PKG_NAME:= iptraf-ng
+PKG_GIT:= tag
+PKG_HASH:= cf385d3a0d2344f0159be0ab859651de2f750b661d88d1f22f96b82a7cd4ae13
+PKG_VERSION:= v1.2.1
+PKG_RELEASE:= 1
+PKG_DESCR:= a console-based network monitoring program
+PKG_SECTION:= net/perf
+PKG_DEPENDS:= libncurses
+PKG_BUILDDEP:= ncurses
+PKG_URL:= https://github.com/iptraf-ng/iptraf-ng
+PKG_SITES:= https://github.com/iptraf-ng/iptraf-ng.git
+
+include ${ADK_TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,IPTRAF_NG,iptraf-ng,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+CONFIG_STYLE:= manual
+TARGET_LDFLAGS+= -ltinfo -lncurses -lpanel
+XAKE_FLAGS+= PLATFORM="-DPLATFORM=\\\"Linux/${ARCH}\\\"" \
+ TARGET="/usr/bin" \
+ WORKDIR="/var/lib/iptraf-ng" V=1
+
+iptraf-ng-install:
+ ${INSTALL_DIR} ${IDIR_IPTRAF_NG}/usr/sbin
+ ${INSTALL_BIN} ${WRKINST}/usr/sbin/iptraf-ng ${IDIR_IPTRAF_NG}/usr/sbin
+
+include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/iptraf-ng/patches/patch-Makefile b/package/iptraf-ng/patches/patch-Makefile
new file mode 100644
index 000000000..597248cfe
--- /dev/null
+++ b/package/iptraf-ng/patches/patch-Makefile
@@ -0,0 +1,11 @@
+--- iptraf-ng-v1.2.1.orig/Makefile 2024-02-25 17:52:43.000000000 +0100
++++ iptraf-ng-v1.2.1/Makefile 2024-02-25 17:54:46.973660535 +0100
+@@ -25,7 +25,7 @@ ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS) $(IPT
+ ALL_LDFLAGS = $(LDFLAGS)
+ STRIP ?= strip
+
+-prefix = $(HOME)
++prefix = /usr
+ sbindir_relative = sbin
+ sbindir = $(prefix)/$(sbindir_relative)
+ mandir = $(prefix)/share/man
diff --git a/package/iptraf/patches/patch-src_Makefile b/package/iptraf/patches/patch-src_Makefile
index e03ebb770..031a96362 100644
--- a/package/iptraf/patches/patch-src_Makefile
+++ b/package/iptraf/patches/patch-src_Makefile
@@ -1,6 +1,6 @@
$Id$
--- iptraf-3.0.1.orig/src/Makefile 2005-09-13 11:11:17.000000000 +0200
-+++ iptraf-3.0.1/src/Makefile 2014-06-25 16:51:56.160654472 +0200
++++ iptraf-3.0.1/src/Makefile 2024-02-25 18:13:10.945645560 +0100
@@ -17,8 +17,9 @@ VERSION = -DVERSION=\"$(VERNUMBER)\"
#
BINDIR = ../../iptraf-$(VERNUMBER).bin.$(ARCH)
@@ -34,16 +34,17 @@ $Id$
# You can uncomment this one to disable the backspace key in input fields.
# This means you must use the Del key or Ctrl+H combination to erase the
-@@ -98,7 +101,7 @@ LOCKDIR = /var/run/iptraf
+@@ -98,41 +101,39 @@ LOCKDIR = /var/run/iptraf
# Object file names
OBJS = iptraf.o itrafmon.o packet.o tcptable.o othptab.o ifstats.o deskman.o \
-ipcsum.o hostmon.o fltedit.o tr.o cidr.o \
+ipcsum.o hostmon.o fltedit.o cidr.o \
fltselect.o ipfilter.o fltmgr.o ipfrag.o serv.o servname.o instances.o \
- timer.o revname.o pktsize.o landesc.o isdntab.o options.o promisc.o ifaces.o \
+-timer.o revname.o pktsize.o landesc.o isdntab.o options.o promisc.o ifaces.o \
++timer.o revname.o pktsize.o landesc.o options.o promisc.o ifaces.o \
error.o log.o mode.o getpath.o bar.o parseproto.o
-@@ -106,33 +109,31 @@ error.o log.o mode.o getpath.o bar.o par
+
BINS = iptraf rvnamed rawtime
all: $(BINS)
diff --git a/package/iptraf/patches/patch-src_isdntab_c b/package/iptraf/patches/patch-src_isdntab_c
new file mode 100644
index 000000000..cec46b383
--- /dev/null
+++ b/package/iptraf/patches/patch-src_isdntab_c
@@ -0,0 +1,10 @@
+--- iptraf-3.0.1.orig/src/isdntab.c 2005-09-13 08:42:54.000000000 +0200
++++ iptraf-3.0.1/src/isdntab.c 2024-02-25 18:12:43.421645934 +0100
+@@ -20,7 +20,6 @@ details.
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/ioctl.h>
+-#include <linux/isdn.h>
+ #include "isdntab.h"
+
+
diff --git a/package/iptraf/patches/patch-src_packet_c b/package/iptraf/patches/patch-src_packet_c
index 85c402678..87c1c1ff4 100644
--- a/package/iptraf/patches/patch-src_packet_c
+++ b/package/iptraf/patches/patch-src_packet_c
@@ -1,14 +1,38 @@
--- iptraf-3.0.1.orig/src/packet.c 2007-09-25 11:21:18.000000000 +0200
-+++ iptraf-3.0.1/src/packet.c 2013-03-04 11:42:52.000000000 +0100
-@@ -36,7 +36,6 @@ details.
++++ iptraf-3.0.1/src/packet.c 2024-02-25 18:13:41.165645150 +0100
+@@ -36,8 +36,6 @@ details.
#include <linux/if_ether.h>
#include <linux/netdevice.h>
#include <linux/if_fddi.h>
-#include <linux/if_tr.h>
- #include <linux/isdn.h>
+-#include <linux/isdn.h>
#include <linux/sockios.h>
#include <msgboxes.h>
-@@ -136,9 +135,6 @@ unsigned short getlinktype(unsigned shor
+ #include "deskman.h"
+@@ -107,21 +105,7 @@ unsigned short getlinktype(unsigned shor
+ result = LINK_ETHERNET;
+ else if (strncmp(ifname, "tap", 3) == 0)
+ result = LINK_ETHERNET;
+- else if ((strncmp(ifname, "isdn", 4) == 0) && (isdn_fd != -1)) {
+- isdnent = isdn_table_lookup(isdnlist, ifname, isdn_fd);
+-
+- switch (isdnent->encap) {
+- case ISDN_NET_ENCAP_RAWIP:
+- result = LINK_ISDN_RAWIP;
+- break;
+- case ISDN_NET_ENCAP_CISCOHDLC:
+- result = LINK_ISDN_CISCOHDLC;
+- break;
+- default:
+- result = LINK_INVALID;
+- break;
+- }
+- } else if (accept_unsupported_interfaces)
++ else if (accept_unsupported_interfaces)
+ result = LINK_ETHERNET;
+ break;
+ case ARPHRD_LOOPBACK:
+@@ -136,9 +120,6 @@ unsigned short getlinktype(unsigned shor
case ARPHRD_PPP:
result = LINK_PPP;
break;
@@ -18,7 +42,7 @@
case ARPHRD_IEEE802:
case ARPHRD_IEEE802_TR:
result = LINK_TR;
-@@ -194,36 +190,6 @@ void adjustpacket(char *tpacket, unsigne
+@@ -194,36 +175,6 @@ void adjustpacket(char *tpacket, unsigne
*packet = tpacket + 4;
*readlen -= 4;
break;
@@ -55,3 +79,9 @@
case LINK_IPIP:
*packet = tpacket;
break;
+@@ -463,5 +414,4 @@ void pkt_cleanup(void)
+ close(isdnfd);
+ isdnfd = -1;
+ destroyfraglist();
+- destroy_isdn_table(&isdntable);
+ }
diff --git a/package/irssi/Makefile b/package/irssi/Makefile
index 3af67de8c..66bc9344e 100644
--- a/package/irssi/Makefile
+++ b/package/irssi/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= irssi
-PKG_VERSION:= 1.0.7
+PKG_VERSION:= 1.4.4
PKG_RELEASE:= 1
-PKG_HASH:= 1b386ca026aa1875c380fd00ef1d24b71fb87cdae39ef5349ecca16c4567feac
+PKG_HASH:= fefe9ec8c7b1475449945c934a2360ab12693454892be47a6d288c63eb107ead
PKG_DESCR:= irc text client
PKG_SECTION:= app/chat
PKG_DEPENDS:= glib libncurses
diff --git a/package/iw/Makefile b/package/iw/Makefile
index f2fe9cc44..83e096fc8 100644
--- a/package/iw/Makefile
+++ b/package/iw/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= iw
-PKG_VERSION:= 4.9
+PKG_VERSION:= 5.19
PKG_RELEASE:= 1
-PKG_HASH:= 324cc805fad52cba2c16b9ab569906889fb645cc962aac4cfda1db85d2de97ce
+PKG_HASH:= f167bbe947dd53bb9ebc0c1dcef5db6ad73ac1d6084f2c6f9376c5c360cc4d4e
PKG_DESCR:= tools for setting up wifi cards
PKG_SECTION:= net/wifi
PKG_DEPENDS:= libnl
diff --git a/package/jack/Makefile b/package/jack/Makefile
index d189c4bad..1104b7797 100644
--- a/package/jack/Makefile
+++ b/package/jack/Makefile
@@ -9,10 +9,11 @@ PKG_RELEASE:= 2
PKG_DESCR:= audio connection kit (v1)
PKG_SECTION:= mm/audio
PKG_DEPENDS:= alsa-lib libsndfile libsamplerate libdb
-PKG_BUILDDEP:= db python2-host alsa-lib libsndfile libsamplerate
+PKG_BUILDDEP:= db python3-host alsa-lib libsndfile libsamplerate
PKG_NEEDS:= threads c++
PKG_URL:= http://jackaudio.org
PKG_SITES:= https://github.com/jackaudio/jack1.git
+PKG_OPT:= dev
include $(ADK_TOPDIR)/mk/package.mk
diff --git a/package/jack2/Makefile b/package/jack2/Makefile
index 3610d6465..cebf85030 100644
--- a/package/jack2/Makefile
+++ b/package/jack2/Makefile
@@ -4,16 +4,17 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= jack2
-PKG_VERSION:= 31d4ae97f296fe1c954cbb51e50d5e60578260b8
+PKG_VERSION:= 1.9.22
PKG_RELEASE:= 1
-PKG_GIT:= hash
-PKG_DESCR:= audio connection kit (v2)
+PKG_HASH:= 1e42b9fc4ad7db7befd414d45ab2f8a159c0b30fcd6eee452be662298766a849
PKG_SECTION:= mm/audio
PKG_DEPENDS:= alsa-lib libsndfile libsamplerate
-PKG_BUILDDEP:= python2-host alsa-lib libsndfile libsamplerate
+PKG_BUILDDEP:= python3-host alsa-lib libsndfile libsamplerate
PKG_NEEDS:= threads c++
PKG_URL:= http://jackaudio.org
-PKG_SITES:= https://github.com/jackaudio/jack2.git
+PKG_SITES:= https://github.com/jackaudio/jack2/archive/
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
include $(ADK_TOPDIR)/mk/package.mk
diff --git a/package/jack2/patches/patch-wscript b/package/jack2/patches/patch-wscript
deleted file mode 100644
index 45e2728a3..000000000
--- a/package/jack2/patches/patch-wscript
+++ /dev/null
@@ -1,23 +0,0 @@
---- jack2-31d4ae97f296fe1c954cbb51e50d5e60578260b8.orig/wscript 2017-06-01 19:03:37.000000000 +0200
-+++ jack2-31d4ae97f296fe1c954cbb51e50d5e60578260b8/wscript 2017-06-01 19:10:22.063929110 +0200
-@@ -506,8 +506,6 @@ def configure(conf):
- if conf.env['BUILD_JACKDBUS'] != True:
- conf.fatal('jackdbus was explicitly requested but cannot be built')
-
-- conf.recurse('example-clients')
--
- # test for the availability of ucontext, and how it should be used
- for t in ("gp_regs", "uc_regs", "mc_gregs", "gregs"):
- fragment = "#include <ucontext.h>\n"
-@@ -1016,11 +1014,6 @@ def build(bld):
-
- build_drivers(bld)
-
-- bld.recurse('example-clients')
-- if bld.env['IS_LINUX']:
-- bld.recurse('man')
-- if not bld.env['IS_WINDOWS']:
-- bld.recurse('tests')
- if bld.env['BUILD_JACKDBUS']:
- bld.recurse('dbus')
-
diff --git a/package/kbd/Makefile b/package/kbd/Makefile
index 72f6e0eb1..7c0b62efa 100644
--- a/package/kbd/Makefile
+++ b/package/kbd/Makefile
@@ -4,15 +4,15 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= kbd
-PKG_VERSION:= 2.0.4
+PKG_VERSION:= 2.4.0
PKG_RELEASE:= 1
-PKG_HASH:= 5fd90af6beb225a9bb9b9fb414c090fba53c9a55793e172f508cd43652e59a88
+PKG_HASH:= 55f0740458cfd3a84e775e50d7e8b92dc01846db1edad8e2411ccc293ece9b9f
PKG_DESCR:= keyboard and font utilities
PKG_SECTION:= sys/hw
PKG_DEPENDS:= libcheck
PKG_BUILDDEP:= flex-host bison-host check
PKG_URL:= http://kbd-project.org/
-PKG_SITES:= http://kbd-project.org/download/
+PKG_SITES:= https://mirrors.edge.kernel.org/pub/linux/utils/kbd/
PKG_CFLINE_KBD:= default y if ADK_TARGET_WITH_INPUT
diff --git a/package/kexec-tools/Makefile b/package/kexec-tools/Makefile
index 1600522b7..3e7d88f80 100644
--- a/package/kexec-tools/Makefile
+++ b/package/kexec-tools/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= kexec-tools
-PKG_VERSION:= 2.0.17
-PKG_RELEASE:= 1
-PKG_HASH:= 504c816b769da573167b63f3b6d4fce3740f231c98d8db0c4fda47a4b90482a9
+PKG_VERSION:= 2.0.23
+PKG_RELEASE:= 2
+PKG_HASH:= aa63cd6c7dd95b06ceba6240a7fdc6792789cada75a655e6714987175224241b
PKG_DESCR:= kernel exec tools
PKG_SECTION:= sys/misc
PKG_DEPENDS:= zlib
@@ -15,8 +15,6 @@ PKG_KDEPENDS:= kexec
PKG_URL:= http://kernel.org/pub/linux/utils/kernel/kexec/
PKG_SITES:= ${MASTER_SITE_KERNEL:=utils/kernel/kexec/}
-PKG_ARCH_DEPENDS:= !aarch64 !m68k
-
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,KEXEC_TOOLS,kexec-tools,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
diff --git a/package/kexec-tools/patches/patch-vmcore-dmesg_vmcore-dmesg_c b/package/kexec-tools/patches/patch-vmcore-dmesg_vmcore-dmesg_c
deleted file mode 100644
index 5f6484789..000000000
--- a/package/kexec-tools/patches/patch-vmcore-dmesg_vmcore-dmesg_c
+++ /dev/null
@@ -1,41 +0,0 @@
---- kexec-tools-2.0.5.orig/vmcore-dmesg/vmcore-dmesg.c 2014-01-15 00:51:14.000000000 +0100
-+++ kexec-tools-2.0.5/vmcore-dmesg/vmcore-dmesg.c 2014-03-18 15:00:45.000000000 +0100
-@@ -26,14 +26,14 @@ static Elf64_Ehdr ehdr;
- static Elf64_Phdr *phdr;
-
- static char osrelease[4096];
--static loff_t log_buf_vaddr;
--static loff_t log_end_vaddr;
--static loff_t log_buf_len_vaddr;
--static loff_t logged_chars_vaddr;
-+static off_t log_buf_vaddr;
-+static off_t log_end_vaddr;
-+static off_t log_buf_len_vaddr;
-+static off_t logged_chars_vaddr;
-
- /* record format logs */
--static loff_t log_first_idx_vaddr;
--static loff_t log_next_idx_vaddr;
-+static off_t log_first_idx_vaddr;
-+static off_t log_next_idx_vaddr;
-
- /* struct log size */
- static uint64_t log_sz;
-@@ -266,7 +266,7 @@ static void scan_vmcoreinfo(char *start,
- const char *str;
- const char *name;
- size_t len;
-- loff_t *vaddr;
-+ off_t *vaddr;
- } symbol[] = {
- SYMBOL(log_buf),
- SYMBOL(log_end),
-@@ -344,7 +344,7 @@ static void scan_vmcoreinfo(char *start,
- }
- }
-
--static void scan_notes(int fd, loff_t start, loff_t lsize)
-+static void scan_notes(int fd, off_t start, off_t lsize)
- {
- char *buf, *last, *note, *next;
- size_t size;
diff --git a/package/keychain/Makefile b/package/keychain/Makefile
index 46a07f4b6..3e73d5117 100644
--- a/package/keychain/Makefile
+++ b/package/keychain/Makefile
@@ -4,15 +4,15 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= keychain
-PKG_VERSION:= 2.7.1
+PKG_VERSION:= 2.8.5
PKG_RELEASE:= 1
-PKG_HASH:= 1107fe3f78f6429d4861d64c5666f068f159326d22ab80a8ed0948cb25375191
+PKG_HASH:= dcce703e5001211c8ebc0528f45b523f84d2bceeb240600795b4d80cb8475a0b
PKG_DESCR:= manage ssh and gpg keys in a secure manner
PKG_SECTION:= app/crypto
PKG_URL:= http://www.funtoo.org/en/security/keychain/intro/
-PKG_SITES:= http://www.funtoo.org/archive/keychain/
+PKG_SITES:= https://github.com/funtoo/keychain/archive/refs/tags/
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
+DISTFILES:= ${PKG_VERSION}.tar.gz
include $(ADK_TOPDIR)/mk/package.mk
diff --git a/package/kismet/Makefile b/package/kismet/Makefile
index 1c1731add..c34a3cd68 100644
--- a/package/kismet/Makefile
+++ b/package/kismet/Makefile
@@ -4,56 +4,33 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= kismet
-PKG_VERSION:= 2013-03-R1b
+PKG_VERSION:= 2023-07-R1
PKG_RELEASE:= 1
-PKG_HASH:= 636d4d7ef8c67ae6ee8d8e1635f5115700eecb9fa4c208afaee30238db527c2c
+PKG_HASH:= f08548e26ca65fa1e567b1debbea1ca4d0e7206bddb96a4f639c90171873e8f7
PKG_DESCR:= wireless network detector, sniffer, and intrusion detection system
PKG_SECTION:= net/wifi
-PKG_DEPENDS:= libpcap libncurses
-PKG_BUILDDEP:= libpcap ncurses
+PKG_BUILDDEP:= libpcap ncurses libwebsockets protobuf protobuf-c sqlite
+PKG_DEPENDS:= libpcap libncurses libwebsockets protobuf protobuf-c libsqlite
PKG_NEEDS:= threads
PKG_URL:= http://www.kismetwireless.net/
-PKG_SITES:= http://www.kismetwireless.net/code/
-
-PKG_SUBPKGS:= KISMET KISMET_CLIENT KISMET_DRONE KISMET_SERVER
-PKGSD_KISMET_CLIENT:= kismet client
-PKGSD_KISMET_SERVER:= kismet server
-PKGSD_KISMET_DRONE:= kismet drone
+PKG_SITES:= https://www.kismetwireless.net/code/
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,KISMET,kismet,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-$(eval $(call PKG_template,KISMET_CLIENT,kismet-client,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_KISMET_CLIENT},${PKG_SECTION}))
-$(eval $(call PKG_template,KISMET_DRONE,kismet-drone,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_KISMET_DRONE},${PKG_SECTION}))
-$(eval $(call PKG_template,KISMET_SERVER,kismet-server,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_KISMET_SERVER},${PKG_SECTION}))
-AUTOTOOL_STYLE:= autoreconf
TARGET_LDFLAGS+= -lpthread -ltinfo
-CONFIGURE_ARGS+= --sysconfdir=/etc/kismet
-
-pre-build:
- (cd ${WRKBUILD} && ${MAKE} dep);
+CONFIGURE_ARGS+= --sysconfdir=/etc/kismet \
+ --disable-libusb \
+ --disable-python-tools \
+ --disable-wifi-coconut
kismet-install:
${INSTALL_DIR} ${IDIR_KISMET}/usr/bin/
- ${INSTALL_BIN} ${WRKINST}/usr/bin/kismet ${IDIR_KISMET}/usr/bin/kismet
-
-kismet-client-install:
- ${INSTALL_DIR} ${IDIR_KISMET_CLIENT}/usr/bin
- ${INSTALL_BIN} ${WRKINST}/usr/bin/kismet_client \
- ${IDIR_KISMET_CLIENT}/usr/bin/
-
-kismet-drone-install:
- ${INSTALL_DIR} ${IDIR_KISMET_DRONE}/usr/bin
- ${INSTALL_BIN} ${WRKINST}/usr/bin/kismet_drone \
- ${IDIR_KISMET_DRONE}/usr/bin/
-
-kismet-server-install:
- ${INSTALL_DIR} ${IDIR_KISMET_SERVER}/usr/bin
- ${INSTALL_DIR} ${IDIR_KISMET_SERVER}/etc/kismet
- ${INSTALL_BIN} ${WRKINST}/usr/bin/kismet_server \
- ${IDIR_KISMET_SERVER}/usr/bin/
- ${INSTALL_DATA} ${WRKINST}/etc/kismet/kismet.conf \
- ${IDIR_KISMET_SERVER}/etc/kismet
+ ${INSTALL_BIN} ${WRKINST}/usr/bin/kismet \
+ ${IDIR_KISMET}/usr/bin/kismet
+ ${INSTALL_DIR} ${IDIR_KISMET}/etc/kismet
+ ${CP} ${WRKINST}/etc/kismet/kismet*.conf \
+ ${IDIR_KISMET}/etc/kismet/
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/kismet/patches/patch-configure_in b/package/kismet/patches/patch-configure_in
deleted file mode 100644
index cb7d45cbd..000000000
--- a/package/kismet/patches/patch-configure_in
+++ /dev/null
@@ -1,12 +0,0 @@
---- kismet-2013-03-R1b.orig/configure.in 2013-03-27 15:41:48.000000000 +0100
-+++ kismet-2013-03-R1b/configure.in 2013-12-31 23:14:38.000000000 +0100
-@@ -406,9 +406,6 @@ AC_ARG_ENABLE(client,
- )
- AC_SUBST(wantclient)
-
--# Add additional cflags since some distros bury panel.h
--CPPFLAGS="$CPPFLAGS -I/usr/include/ncurses"
--
- termcontrol="none";
-
- if test "$wantclient" = "yes"; then
diff --git a/package/kismet/patches/patch-dumpfile_tuntap_h b/package/kismet/patches/patch-dumpfile_tuntap_h
deleted file mode 100644
index f669446f5..000000000
--- a/package/kismet/patches/patch-dumpfile_tuntap_h
+++ /dev/null
@@ -1,18 +0,0 @@
---- kismet-2013-03-R1b.orig/dumpfile_tuntap.h 2013-03-27 15:41:48.000000000 +0100
-+++ kismet-2013-03-R1b/dumpfile_tuntap.h 2014-01-02 20:53:21.000000000 +0100
-@@ -65,7 +65,15 @@
- #include "dumpfile.h"
-
- #ifdef SYS_LINUX
-+#if defined(__GLIBC__)
- #include <linux/if_tun.h>
-+#else
-+#define IFF_TUN 0x0001
-+#define IFF_TAP 0x0002
-+#define IFF_NO_PI 0x1000
-+#define TUNSETNOCSUM _IOW('T', 200, int)
-+#define TUNSETIFF _IOW('T', 202, int)
-+#endif
-
- // Linux IEEE80211 link typ to set
- #define LNX_LINKTYPE_80211 801
diff --git a/package/kmod/Makefile b/package/kmod/Makefile
index e9fd271f7..c46410927 100644
--- a/package/kmod/Makefile
+++ b/package/kmod/Makefile
@@ -4,13 +4,12 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= kmod
-PKG_VERSION:= 24
+PKG_VERSION:= 31
PKG_RELEASE:= 1
-PKG_HASH:= 610b8d1df172acc39a4fdf1eaa47a57b04873c82f32152e7a62e29b6ff9cb397
+PKG_HASH:= f5a6949043cc72c001b728d8c218609c5a15f3c33d75614b78c79418fcf00d80
PKG_DESCR:= kernel module utils
PKG_SECTION:= sys/utils
PKG_DEPENDS:= libkmod
-PKG_URL:= http://profusion.mobi/index.php
PKG_SITES:= https://www.kernel.org/pub/linux/utils/kernel/kmod/
PKG_LIBNAME:= libkmod
PKG_OPTS:= dev
diff --git a/package/knxd/Makefile b/package/knxd/Makefile
new file mode 100644
index 000000000..60ebe9b49
--- /dev/null
+++ b/package/knxd/Makefile
@@ -0,0 +1,47 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= knxd
+PKG_VERSION:= 0.14.61
+PKG_RELEASE:= 1
+PKG_HASH:= b5284c89a55a2c53e0ff769ec4f736fc1ad4b55afdd2a18b9258fa95f708d798
+PKG_DESCR:= knx daemon
+PKG_SECTION:= sys/hw
+PKG_DEPENDS:= libev
+PKG_BUILDDEP:= libev cmake-host
+PKG_URL:= https://github.com/knxd/knxd
+PKG_SITES:= https://github.com/knxd/knxd/archive/refs/tags/
+
+PKG_CFLINE_KNXD:= depends on ADK_BROKEN
+
+DISTFILES:= $(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,KNXD,knxd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+AUTOTOOL_STYLE:= bootstrap
+
+CONFIGURE_ARGS+= --disable-systemd --disable-usb
+
+knxd-install:
+ $(INSTALL_DIR) $(IDIR_KNXD)/usr/bin
+ $(INSTALL_DIR) $(IDIR_KNXD)/usr/lib
+ $(INSTALL_DIR) $(IDIR_KNXD)/usr/share
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/knxd \
+ $(IDIR_KNXD)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/knxtool \
+ $(IDIR_KNXD)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/libexec/knxd_args \
+ $(IDIR_KNXD)/usr/bin
+ $(CP) $(WRKINST)/usr/lib/libeib*.so* \
+ $(IDIR_KNXD)/usr/lib
+ $(CP) $(WRKINST)/usr/libexec/knxd/* \
+ $(IDIR_KNXD)/usr/bin
+ $(CP) $(WRKINST)/usr/share/* \
+ $(IDIR_KNXD)/usr/share
+
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/kodi/Makefile b/package/kodi/Makefile
index 4e9a57a4c..9fb6deccb 100644
--- a/package/kodi/Makefile
+++ b/package/kodi/Makefile
@@ -4,36 +4,39 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= kodi
-PKG_VERSION:= 18.0a1
+PKG_VERSION:= 21.0b2
PKG_RELEASE:= 1
-PKG_HASH:= 8892498d5248eea29c30db7c128a5910afc60d1b0b894aea472604bb879a0310
+PKG_HASH:= b9d6ecbb8769cdfe00cbbe5da5c330a7624eee50cffb87d87f6271033f1ee74b
PKG_DESCR:= software media player
PKG_SECTION:= mm/video
-PKG_DEPENDS:= python2 libsquish libressl libxz libfmt rapidjson
-PKG_DEPENDS+= libass libmpeg2 libmad libmodplug libcurl
+PKG_DEPENDS:= python3 libsquish libressl libxz libfmt rapidjson
+PKG_DEPENDS+= libass libmpeg2 libmad libmodplug libcurl libxshmfence
PKG_DEPENDS+= libflac libbz2 libtiff libnettle librtmp liblzo
PKG_DEPENDS+= yajl tinyxml libsqlite libpcrecpp libncurses libpng
PKG_DEPENDS+= libpcre libcdio libfreetype libsamplerate libuuid
-PKG_DEPENDS+= taglib libjasper libmp3lame libgpg-error python2-mod-sqlite
-PKG_DEPENDS+= glib libdcadec bcm28xx-vc-gl-libs libffmpeg libxvidcore
-PKG_BUILDDEP:= python2 libass ffmpeg rtmpdump bcm28xx-vc
+PKG_DEPENDS+= taglib libjasper libmp3lame libgpg-error giflib
+PKG_DEPENDS+= glib libdcadec libffmpeg libxvidcore libiconv harfbuzz
+PKG_DEPENDS+= flatbuffers fstrcmp spdlog mesa libinput libxkbcommon
+PKG_DEPENDS+= xkeyboard-config tinyxml2 libdisplay-info libudfread
+PKG_BUILDDEP:= python3 libass ffmpeg rtmpdump libiconv libudfread
PKG_BUILDDEP+= libmpeg2 libmad libjpeg-turbo fmt rapidjson
-PKG_BUILDDEP+= curl flac bzip2 libtiff yajl cmake-host
-PKG_BUILDDEP+= tinyxml sqlite pcre libcdio freetype libpng
-PKG_BUILDDEP+= libsamplerate taglib libjasper
-PKG_BUILDDEP+= glib libmodplug libgpg-error xvidcore
+PKG_BUILDDEP+= curl flac bzip2 libtiff yajl cmake-host libdisplay-info
+PKG_BUILDDEP+= tinyxml tinyxml2 sqlite pcre libcdio freetype libpng
+PKG_BUILDDEP+= libsamplerate taglib libjasper giflib xkeyboard-config
+PKG_BUILDDEP+= glib libmodplug libgpg-error xvidcore libxshmfence
PKG_BUILDDEP+= swig-host liblzo-host libpng-host libjpeg-turbo-host
PKG_BUILDDEP+= zip-host unzip-host giflib-host libsquish libdcadec
-PKG_BUILDDEP+= libcrossguid libressl xz bzip2 liblzo
+PKG_BUILDDEP+= libcrossguid libressl xz bzip2 liblzo harfbuzz
+PKG_BUILDDEP+= flatbuffers fstrcmp spdlog mesa libinput libxkbcommon
PKG_NEEDS:= threads c++ data iconv
PKG_URL:= http://kodi.tv/
PKG_SITES:= https://github.com/xbmc/xbmc/archive/
-DISTFILES:= $(PKG_VERSION)-Leia.tar.gz
-WRKDIST= ${WRKDIR}/xbmc-$(PKG_VERSION)-Leia
+DISTFILES:= $(PKG_VERSION)-Omega.tar.gz
+WRKDIST= ${WRKDIR}/xbmc-$(PKG_VERSION)-Omega
WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
-PKG_SYSTEM_DEPENDS:= raspberry-pi raspberry-pi2 raspberry-pi3 raspberry-pi3p raspberry-pi3p-64
+PKG_SYSTEM_DEPENDS:= raspberry-pi raspberry-pi2 raspberry-pi3 raspberry-pi4 raspberry-pi4-64 rockpi4-plus raspberry-pi5
PKG_FLAVOURS_KODI:= WITH_ALSA WITH_CEC WITH_PULSEAUDIO WITH_SMB
PKG_FLAVOURS_KODI+= WITH_MICROHTTPD WITH_SSH WITH_AVAHI
@@ -71,7 +74,12 @@ CMAKE_FLAGS+= -DENABLE_CCACHE=OFF \
-DENABLE_DVDCSS=ON \
-DENABLE_INTERNAL_CROSSGUID=OFF \
-DENABLE_INTERNAL_FFMPEG=OFF \
+ -DENABLE_INTERNAL_RapidJSON=OFF \
-DWITH_FFMPEG=$(STAGING_TARGET_DIR)/usr \
+ -DPYTHON_EXECUTABLE=$(STAGING_HOST_DIR)/usr/bin/python3 \
+ -DPYTHON_INCLUDE_DIRS=$(STAGING_TARGET_DIR)/usr/include/python3.11 \
+ -DPYTHON_PATH=$(STAGING_TARGET_DIR)/usr/lib/python3.11 \
+ -DPYTHON_VER=3.11 \
-DKODI_DEPENDSBUILD=OFF \
-DENABLE_OPENSSL=ON \
-DENABLE_MYSQLCLIENT=OFF \
@@ -87,17 +95,31 @@ CMAKE_FLAGS+= -DENABLE_CCACHE=OFF \
-DENABLE_OPTICAL=OFF \
-DENABLE_DBUS=OFF \
-DENABLE_EVENTCLIENTS=OFF \
- -DENABLE_UDEV=OFF \
+ -DENABLE_UDEV=ON \
-DENABLE_PLIST=OFF \
-DNATIVEPREFIX=$(STAGING_HOST_DIR)/usr \
- -DDEPENDS_PATH=$(STAGING_HOST_DIR) \
- -DWITH_TEXTUREPACKER=$(STAGING_HOST_DIR)/usr/bin/TexturePacker
-
-ifeq ($(ADK_TARGET_BOARD_BCM28XX),y)
-CMAKE_FLAGS+= -DCORE_PLATFORM_NAME=rbpi \
+ -DDEPENDS_PATH=$(STAGING_TARGET_DIR)/usr \
+ -DWITH_TEXTUREPACKER=$(STAGING_HOST_DIR)/usr/bin/TexturePacker \
+ -DWITH_JSONSCHEMABUILDER=$(STAGING_HOST_DIR)/usr/bin/JsonSchemaBuilder \
+ -DCMAKE_EXE_LINKER_FLAGS=-latomic \
+ -DLIBDVDCSS_URL=$(DL_DIR)/libdvdcss-1.4.3-Next-Nexus-Alpha2-2.tar.gz \
+ -DLIBDVDNAV_URL=$(DL_DIR)/libdvdnav-6.1.1-Next-Nexus-Alpha2-2.tar.gz \
+ -DLIBDVDREAD_URL=$(DL_DIR)/libdvdread-6.1.3-Next-Nexus-Alpha2-2.tar.gz
+
+ifeq ($(ADK_TARGET_ARCH_AARCH64),y)
+CMAKE_FLAGS+= -DWITH_ARCH=aarch64 \
+ -DWITH_CPU=aarch64 \
+ -DENABLE_NEON=OFF
+endif
+ifeq ($(ADK_TARGET_ARCH_ARM),y)
-DWITH_ARCH=arm \
-DWITH_CPU=arm \
- -DENABLE_NEON=ON \
+ -DENABLE_NEON=ON
+endif
+
+ifeq ($(ADK_TARGET_BOARD_BCM28XX),y)
+CMAKE_FLAGS+= -DCORE_PLATFORM_NAME=gbm \
+ -DAPP_RENDER_SYSTEM=gles \
-DENABLE_OPENGL=OFF \
-DENABLE_X11=OFF \
-DENABLE_OPENGLES=ON
@@ -140,19 +162,27 @@ CMAKE_FLAGS+= -DENABLE_SSH=OFF
endif
XAKE_FLAGS+= VERBOSE=1
+TARGET_LDFLAGS+= -latomic -liconv
+
+KODI_LIBDVDCSS_VERSION = 1.4.3-Next-Nexus-Alpha2-2
+KODI_LIBDVDNAV_VERSION = 6.1.1-Next-Nexus-Alpha2-2
+KODI_LIBDVDREAD_VERSION = 6.1.3-Next-Nexus-Alpha2-2
pre-configure:
- (cd $(WRKSRC)/tools/depends/native/JsonSchemaBuilder && PATH='$(HOST_PATH)' cmake .)
- PATH='$(HOST_PATH)' make -C $(WRKSRC)/tools/depends/native/JsonSchemaBuilder
- cp $(WRKSRC)/tools/depends/native/JsonSchemaBuilder/JsonSchemaBuilder \
- $(STAGING_HOST_DIR)/usr/bin
- (cd $(WRKSRC)/tools/depends/native/TexturePacker && PATH='$(HOST_PATH)' cmake \
- -DCORE_SOURCE_DIR=$(WRKSRC) \
- -DCMAKE_MODULE_PATH=$(WRKSRC)/cmake/modules \
- -DCMAKE_CXX_FLAGS="$(HOST_CXXFLAGS)" .)
- PATH='$(HOST_PATH)' make -C $(WRKSRC)/tools/depends/native/TexturePacker
- cp $(WRKSRC)/tools/depends/native/TexturePacker/TexturePacker \
- $(STAGING_HOST_DIR)/usr/bin
+ #(cd $(WRKSRC)/tools/depends/native/JsonSchemaBuilder/src && PATH='$(HOST_PATH)' cmake .)
+ #PATH='$(HOST_PATH)' make -C $(WRKSRC)/tools/depends/native/JsonSchemaBuilder/src
+ #cp $(WRKSRC)/tools/depends/native/JsonSchemaBuilder/src/JsonSchemaBuilder \
+ # $(STAGING_HOST_DIR)/usr/bin/JsonSchemaBuilder
+ #(cd $(WRKSRC)/tools/depends/native/TexturePacker/src && PATH='$(HOST_PATH)' cmake \
+ # -DKODI_SOURCE_DIR=$(WRKSRC) \
+ # -DCMAKE_MODULE_PATH=$(WRKSRC)/cmake/modules \
+ # -DCMAKE_CXX_FLAGS="$(HOST_CXXFLAGS)" .)
+ #PATH='$(HOST_PATH)' make -C $(WRKSRC)/tools/depends/native/TexturePacker/src
+ #cp $(WRKSRC)/tools/depends/native/TexturePacker/src/TexturePacker \
+ # $(STAGING_HOST_DIR)/usr/bin
+ (cd $(DL_DIR) && wget -O libdvdcss-$(KODI_LIBDVDCSS_VERSION).tar.gz https://github.com/xbmc/libdvdcss/archive/refs/tags/$(KODI_LIBDVDCSS_VERSION).tar.gz)
+ (cd $(DL_DIR) && wget -O libdvdnav-$(KODI_LIBDVDNAV_VERSION).tar.gz https://github.com/xbmc/libdvdnav/archive/refs/tags/$(KODI_LIBDVDNAV_VERSION).tar.gz)
+ (cd $(DL_DIR) && wget -O libdvdread-$(KODI_LIBDVDREAD_VERSION).tar.gz https://github.com/xbmc/libdvdread/archive/refs/tags/$(KODI_LIBDVDREAD_VERSION).tar.gz)
kodi-install:
$(INSTALL_DIR) $(STAGING_TARGET_DIR)/usr/share/kodi
diff --git a/package/kodi/files/kodi.init b/package/kodi/files/kodi.init
index 04ed8ea83..c3dfdf893 100644
--- a/package/kodi/files/kodi.init
+++ b/package/kodi/files/kodi.init
@@ -15,10 +15,10 @@ start)
if [ ! -d /data/kodi ]; then
mkdir /data/kodi
fi
- cd / && /usr/lib/kodi/kodi-rbpi &
+ cd / && /usr/lib/kodi/kodi-gbm &
;;
stop)
- kill $(pgrep -f /usr/lib/kodi/kodi-rbpi)
+ kill $(pgrep -f /usr/lib/kodi/kodi-gbm)
;;
restart)
sh $0 stop
diff --git a/package/kodi/patches/patch-CMakeLists_txt b/package/kodi/patches/patch-CMakeLists_txt
new file mode 100644
index 000000000..7fa65595b
--- /dev/null
+++ b/package/kodi/patches/patch-CMakeLists_txt
@@ -0,0 +1,27 @@
+--- xbmc-21.0b2-Omega.orig/CMakeLists.txt 2023-12-09 22:24:46.000000000 +0100
++++ xbmc-21.0b2-Omega/CMakeLists.txt 2024-01-31 10:45:45.831435209 +0100
+@@ -178,7 +178,6 @@ endforeach()
+ # Required tools. Keep in alphabetical order please
+ set(required_buildtools FlatC
+ JsonSchemaBuilder
+- TexturePacker
+ )
+
+ # Optional build tools
+@@ -468,7 +467,6 @@ endif()
+ add_custom_command(
+ OUTPUT ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${CONFIG_VAR}/gen_skin.timestamp
+ COMMAND ${CMAKE_COMMAND} -DBUNDLEDIR=${_bundle_dir}
+- -DTEXTUREPACKER_EXECUTABLE=$<TARGET_FILE:TexturePacker::TexturePacker::Executable>
+ -P ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/GeneratedPackSkins.cmake
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${CONFIG_VAR}
+ COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/${CONFIG_VAR}/gen_skin.timestamp
+@@ -481,7 +479,7 @@ add_custom_target(gen_skin_pack DEPENDS
+
+ # Packaging target. This generates system addon, xbt creation, copy files to build tree
+ add_custom_target(generate-packaging ALL
+- DEPENDS TexturePacker::TexturePacker::Executable export-files gen_skin_pack gen_system_addons)
++ DEPENDS export-files gen_skin_pack gen_system_addons)
+ # Make sure we build any libs before we look to export-files.
+ # We may need to export some shared libs/data (eg Python)
+ add_dependencies(export-files ${GLOBAL_TARGET_DEPS})
diff --git a/package/kodi/patches/patch-cmake_KodiConfig_cmake_in b/package/kodi/patches/patch-cmake_KodiConfig_cmake_in
deleted file mode 100644
index 3ebae759b..000000000
--- a/package/kodi/patches/patch-cmake_KodiConfig_cmake_in
+++ /dev/null
@@ -1,20 +0,0 @@
---- xbmc-18.0a1-Leia.orig/cmake/KodiConfig.cmake.in 2018-03-04 10:21:28.000000000 +0100
-+++ xbmc-18.0a1-Leia/cmake/KodiConfig.cmake.in 2018-05-23 08:10:01.842094111 +0200
-@@ -8,7 +8,7 @@ if(NOT @APP_NAME_UC@_PREFIX)
- set(@APP_NAME_UC@_PREFIX @APP_PREFIX@)
- endif()
- if(NOT @APP_NAME_UC@_INCLUDE_DIR)
-- set(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@)
-+ set(@APP_NAME_UC@_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_INCLUDE_DIR@)
- endif()
- if(NOT @APP_NAME_UC@_LIB_DIR)
- set(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@)
-@@ -20,7 +20,7 @@ set(APP_RENDER_SYSTEM @APP_RENDER_SYSTEM
- if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} @CXX11_SWITCH@")
- endif()
--list(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@ @APP_DATA_DIR@/cmake)
-+list(APPEND CMAKE_MODULE_PATH ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@ ${CMAKE_FIND_ROOT_PATH}/@APP_DATA_DIR@/cmake)
-
- string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@")
- add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON)
diff --git a/package/kodi/patches/patch-tools_depends_native_TexturePacker_CMakeLists_txt b/package/kodi/patches/patch-tools_depends_native_TexturePacker_CMakeLists_txt
deleted file mode 100644
index 2b62c1465..000000000
--- a/package/kodi/patches/patch-tools_depends_native_TexturePacker_CMakeLists_txt
+++ /dev/null
@@ -1,20 +0,0 @@
---- xbmc-18.0a1-Leia.orig/tools/depends/native/TexturePacker/CMakeLists.txt 2018-03-04 10:21:28.000000000 +0100
-+++ xbmc-18.0a1-Leia/tools/depends/native/TexturePacker/CMakeLists.txt 2018-05-26 06:54:36.060611270 +0200
-@@ -33,7 +33,7 @@ set(SOURCES src/md5.cpp
- src/decoder/GifHelper.cpp
- src/decoder/JPGDecoder.cpp
- src/decoder/PNGDecoder.cpp
-- ${CMAKE_SOURCE_DIR}/xbmc/guilib/XBTF.cpp)
-+ ${CORE_SOURCE_DIR}/xbmc/guilib/XBTF.cpp)
-
- set(CMAKE_POSITITION_INDEPENDENT_CODE 1)
-
-@@ -42,7 +42,7 @@ target_include_directories(TexturePacker
- PRIVATE ${PNG_INCLUDE_DIRS}
- ${JPEG_INCLUDE_DIR}
- ${GIF_INCLUDE_DIR}
-- ${CMAKE_SOURCE_DIR}/xbmc
-+ ${CORE_SOURCE_DIR}/xbmc
- ${CMAKE_CURRENT_SOURCE_DIR}/src
- ${CMAKE_CURRENT_SOURCE_DIR}/src/decoder)
- target_link_libraries(TexturePacker
diff --git a/package/kodi/patches/patch-tools_depends_native_TexturePacker_src_decoder_GifHelper_cpp b/package/kodi/patches/patch-tools_depends_native_TexturePacker_src_decoder_GifHelper_cpp
new file mode 100644
index 000000000..67e51c6e9
--- /dev/null
+++ b/package/kodi/patches/patch-tools_depends_native_TexturePacker_src_decoder_GifHelper_cpp
@@ -0,0 +1,15 @@
+--- xbmc-19.3-Matrix.orig/tools/depends/native/TexturePacker/src/decoder/GifHelper.cpp 2021-10-24 12:09:58.000000000 +0200
++++ xbmc-19.3-Matrix/tools/depends/native/TexturePacker/src/decoder/GifHelper.cpp 2022-02-26 00:09:15.499548854 +0100
+@@ -18,11 +18,11 @@
+ *
+ */
+
+-#include "GifHelper.h"
+
+ #include <algorithm>
+ #include <cstdlib>
+ #include <cstring>
++#include "GifHelper.h"
+
+ #define UNSIGNED_LITTLE_ENDIAN(lo, hi) ((lo) | ((hi) << 8))
+ #define GIF_MAX_MEMORY 82944000U // about 79 MB, which is equivalent to 10 full hd frames.
diff --git a/package/kodi/patches/patch-xbmc_cores_AudioEngine_Sinks_AESinkALSA_cpp b/package/kodi/patches/patch-xbmc_cores_AudioEngine_Sinks_AESinkALSA_cpp
deleted file mode 100644
index fa943b89a..000000000
--- a/package/kodi/patches/patch-xbmc_cores_AudioEngine_Sinks_AESinkALSA_cpp
+++ /dev/null
@@ -1,30 +0,0 @@
---- xbmc-18.0a1-Leia.orig/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp 2018-03-04 10:21:28.000000000 +0100
-+++ xbmc-18.0a1-Leia/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp 2018-05-26 06:48:45.750618626 +0200
-@@ -1213,7 +1213,8 @@ void CAESinkALSA::EnumerateDevicesEx(AED
- * found by the enumeration process. Skip them as well ("hw", "dmix",
- * "plughw", "dsnoop"). */
-
-- else if (baseName != "default"
-+ else if (true)
-+/* baseName != "default"
- && baseName != "sysdefault"
- && baseName != "surround40"
- && baseName != "surround41"
-@@ -1223,7 +1224,7 @@ void CAESinkALSA::EnumerateDevicesEx(AED
- && baseName != "hw"
- && baseName != "dmix"
- && baseName != "plughw"
-- && baseName != "dsnoop")
-+ && baseName != "dsnoop")*/
- {
- EnumerateDevice(list, name, desc ? desc : name, config);
- }
-@@ -1380,7 +1381,7 @@ void CAESinkALSA::EnumerateDevice(AEDevi
- info.m_displayName.substr(info.m_displayName.size()-5) == " HDMI")
- {
- /* We already know this is HDMI, strip it */
-- info.m_displayName.erase(info.m_displayName.size()-5);
-+ /*info.m_displayName.erase(info.m_displayName.size()-5);*/
- }
-
- /* "CONEXANT Analog", "USB Audio", "HDMI 0", "ALC889 Digital" ... */
diff --git a/package/kodi/patches/patch-xbmc_platform_linux_CPUInfoLinux_cpp b/package/kodi/patches/patch-xbmc_platform_linux_CPUInfoLinux_cpp
new file mode 100644
index 000000000..27c420df8
--- /dev/null
+++ b/package/kodi/patches/patch-xbmc_platform_linux_CPUInfoLinux_cpp
@@ -0,0 +1,31 @@
+--- xbmc-21.0b2-Omega.orig/xbmc/platform/linux/CPUInfoLinux.cpp 2023-12-09 22:24:46.000000000 +0100
++++ xbmc-21.0b2-Omega/xbmc/platform/linux/CPUInfoLinux.cpp 2024-01-30 15:52:43.704683194 +0100
+@@ -19,10 +19,7 @@
+ #include <sstream>
+ #include <vector>
+
+-#if (defined(__arm__) && defined(HAS_NEON)) || defined(__aarch64__)
+-#include <asm/hwcap.h>
+-#include <sys/auxv.h>
+-#elif defined(__i386__) || defined(__x86_64__)
++#if defined(__i386__) || defined(__x86_64__)
+ #include <cpuid.h>
+ #endif
+
+@@ -279,16 +276,6 @@ CCPUInfoLinux::CCPUInfoLinux()
+
+ m_cpuModel = m_cpuModel.substr(0, m_cpuModel.find(char(0))); // remove extra null terminations
+
+-#if defined(HAS_NEON) && defined(__arm__)
+- if (getauxval(AT_HWCAP) & HWCAP_NEON)
+- m_cpuFeatures |= CPU_FEATURE_NEON;
+-#endif
+-
+-#if defined(HAS_NEON) && defined(__aarch64__)
+- if (getauxval(AT_HWCAP) & HWCAP_ASIMD)
+- m_cpuFeatures |= CPU_FEATURE_NEON;
+-#endif
+-
+ // Set MMX2 when SSE is present as SSE is a superset of MMX2 and Intel doesn't set the MMX2 cap
+ if (m_cpuFeatures & CPU_FEATURE_SSE)
+ m_cpuFeatures |= CPU_FEATURE_MMX2;
diff --git a/package/krb5/Makefile b/package/krb5/Makefile
index b4c76198b..aba0d7741 100644
--- a/package/krb5/Makefile
+++ b/package/krb5/Makefile
@@ -4,16 +4,16 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= krb5
-PKG_VERSION:= 1.13.1
+PKG_VERSION:= 1.18
PKG_RELEASE:= 1
-PKG_HASH:= 4df629fdf97f362cf81edbf38d613b32b492dd88c876cf3aa1c66562f296663e
+PKG_HASH:= 73913934d711dcf9d5f5605803578edb44b9a11786df3c1b2711f4e1752f2c88
PKG_DESCR:= kerberos server
PKG_SECTION:= app/crypto
PKG_DEPENDS:= libkrb5 libncurses keyutils
PKG_BUILDDEP:= ncurses bison-host
PKG_NEEDS:= threads intl
PKG_URL:= http://web.mit.edu/kerberos/
-PKG_SITES:= http://web.mit.edu/kerberos/dist/krb5/1.13/
+PKG_SITES:= https://kerberos.org/dist/krb5/1.18/
PKG_LIBNAME:= libkrb5
PKG_OPTS:= dev noscripts
PKG_NOPARALLEL:= 1
@@ -25,7 +25,7 @@ PKGSD_KRB5_CLIENT:= kerberos client tools
PKGSC_KRB5_CLIENT:= app/crypto
PKGSS_KRB5_CLIENT:= libkrb5 libncurses
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}-signed.tar
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
WRKSRC= ${WRKDIST}/src
include $(ADK_TOPDIR)/mk/package.mk
@@ -36,6 +36,7 @@ $(eval $(call PKG_template,LIBKRB5,libkrb5,$(PKG_VERSION)-${PKG_RELEASE},,${PKGS
CONFIGURE_ARGS+= --disable-static \
--disable-profiled \
+ --disable-pkinit \
--without-system-et \
--without-system-ss \
--without-system-verto \
@@ -46,8 +47,6 @@ CONFIGURE_ENV+= krb5_cv_attr_constructor_destructor=yes,yes \
ac_cv_file__etc_environment=no \
ac_cv_file__etc_TIMEZONE=no
-post-extract:
- (cd ${WRKDIR}; tar xzf ${PKG_NAME}-${PKG_VERSION}.tar.gz)
pre-build:
# fix nm call in script, we need the GNU version of nm
diff --git a/package/krb5/patches/patch-src_include_k5-thread_h b/package/krb5/patches/patch-src_include_k5-thread_h
deleted file mode 100644
index 71eb656f9..000000000
--- a/package/krb5/patches/patch-src_include_k5-thread_h
+++ /dev/null
@@ -1,19 +0,0 @@
---- krb5-1.12.1.orig/src/include/k5-thread.h 2014-01-16 01:44:15.000000000 +0100
-+++ krb5-1.12.1/src/include/k5-thread.h 2014-06-05 20:59:34.000000000 +0200
-@@ -380,14 +380,12 @@ static inline int k5_mutex_finish_init(k
-
- static inline void k5_mutex_lock(k5_mutex_t *m)
- {
-- int r = k5_os_mutex_lock(m);
-- assert(r == 0);
-+ k5_os_mutex_lock(m);
- }
-
- static inline void k5_mutex_unlock(k5_mutex_t *m)
- {
-- int r = k5_os_mutex_unlock(m);
-- assert(r == 0);
-+ k5_os_mutex_unlock(m);
- }
-
- #define k5_mutex_assert_locked(M) ((void)(M))
diff --git a/package/krb5/patches/patch-src_kadmin_ktutil_ktutil_funcs_c b/package/krb5/patches/patch-src_kadmin_ktutil_ktutil_funcs_c
deleted file mode 100644
index 0851bb08a..000000000
--- a/package/krb5/patches/patch-src_kadmin_ktutil_ktutil_funcs_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- krb5-1.11.3.orig/src/kadmin/ktutil/ktutil_funcs.c 2013-06-03 23:39:43.000000000 +0200
-+++ krb5-1.11.3/src/kadmin/ktutil/ktutil_funcs.c 2013-10-09 09:54:40.000000000 +0200
-@@ -64,7 +64,7 @@ krb5_error_code ktutil_delete(context, l
- krb5_kt_list *list;
- int idx;
- {
-- krb5_kt_list lp, prev;
-+ krb5_kt_list lp, prev = NULL;
- int i;
-
- for (lp = *list, i = 1; lp; prev = lp, lp = lp->next, i++) {
diff --git a/package/krb5/patches/patch-src_lib_crypto_krb_prng_c b/package/krb5/patches/patch-src_lib_crypto_krb_prng_c
deleted file mode 100644
index 25234e88c..000000000
--- a/package/krb5/patches/patch-src_lib_crypto_krb_prng_c
+++ /dev/null
@@ -1,13 +0,0 @@
---- krb5-1.11.3.orig/src/lib/crypto/krb/prng.c 2013-06-03 23:39:43.000000000 +0200
-+++ krb5-1.11.3/src/lib/crypto/krb/prng.c 2013-08-14 14:12:20.000000000 +0200
-@@ -138,10 +138,6 @@ krb5_c_random_os_entropy(krb5_context co
- guaranteed to cause a reseed of some kind if strong is true and
- we have both /dev/random and /dev/urandom. We want the strong
- data included in the reseed so we get it first.*/
-- if (strong) {
-- if (add_entropy_from_device(context, "/dev/random"))
-- *oursuccess = 1;
-- }
- if (add_entropy_from_device(context, "/dev/urandom"))
- *oursuccess = 1;
- return 0;
diff --git a/package/krb5/patches/patch-src_lib_kadm5_alt_prof_c b/package/krb5/patches/patch-src_lib_kadm5_alt_prof_c
deleted file mode 100644
index cbe02c798..000000000
--- a/package/krb5/patches/patch-src_lib_kadm5_alt_prof_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- krb5-1.13.1.orig/src/lib/kadm5/alt_prof.c 2015-02-11 21:16:43.000000000 -0600
-+++ krb5-1.13.1/src/lib/kadm5/alt_prof.c 2015-05-02 15:11:04.883427001 -0500
-@@ -154,7 +154,7 @@ krb5_aprof_get_boolean(krb5_pointer acon
- krb5_error_code ret;
- char **values, *valp;
- int idx;
-- krb5_boolean val;
-+ krb5_boolean val = 0;
-
- ret = krb5_aprof_getvals(acontext, hierarchy, &values);
- if (ret)
diff --git a/package/krb5/patches/patch-src_lib_krad_packet_c b/package/krb5/patches/patch-src_lib_krad_packet_c
deleted file mode 100644
index 71d3c53e1..000000000
--- a/package/krb5/patches/patch-src_lib_krad_packet_c
+++ /dev/null
@@ -1,12 +0,0 @@
---- krb5-1.12.1.orig/src/lib/krad/packet.c 2014-01-16 01:44:15.000000000 +0100
-+++ krb5-1.12.1/src/lib/krad/packet.c 2014-02-11 19:01:06.000000000 +0100
-@@ -253,8 +253,8 @@ krad_packet_new_request(krb5_context ctx
- {
- krb5_error_code retval;
- krad_packet *pkt;
-- uchar id;
- size_t attrset_len;
-+ uchar id = NULL;
-
- pkt = packet_new();
- if (pkt == NULL) {
diff --git a/package/krb5/patches/patch-src_lib_krb5_ccache_cc_file_c b/package/krb5/patches/patch-src_lib_krb5_ccache_cc_file_c
deleted file mode 100644
index be64a4947..000000000
--- a/package/krb5/patches/patch-src_lib_krb5_ccache_cc_file_c
+++ /dev/null
@@ -1,20 +0,0 @@
---- krb5-1.13.1.orig/src/lib/krb5/ccache/cc_file.c 2015-02-11 21:16:43.000000000 -0600
-+++ krb5-1.13.1/src/lib/krb5/ccache/cc_file.c 2015-05-02 15:20:59.335427054 -0500
-@@ -401,7 +401,7 @@ read_principal(krb5_context context, krb
- {
- krb5_error_code ret;
- struct k5buf buf;
-- size_t maxsize;
-+ size_t maxsize = 0;
-
- *princ = NULL;
- k5_cc_mutex_assert_locked(context, &((fcc_data *)id->data)->lock);
-@@ -1088,7 +1088,7 @@ fcc_next_cred(krb5_context context, krb5
- krb5_fcc_cursor *fcursor = *cursor;
- fcc_data *data = id->data;
- struct k5buf buf;
-- size_t maxsize;
-+ size_t maxsize = 0;
-
- memset(creds, 0, sizeof(*creds));
- k5_cc_mutex_lock(context, &data->lock);
diff --git a/package/krb5/patches/patch-src_lib_rpc_bindresvport_c b/package/krb5/patches/patch-src_lib_rpc_bindresvport_c
deleted file mode 100644
index 3999aa242..000000000
--- a/package/krb5/patches/patch-src_lib_rpc_bindresvport_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- krb5-1.13.1.orig/src/lib/rpc/bindresvport.c 2015-02-11 21:16:43.000000000 -0600
-+++ krb5-1.13.1/src/lib/rpc/bindresvport.c 2015-05-02 15:11:04.955427001 -0500
-@@ -39,6 +39,7 @@
- #include <sys/types.h>
- #include <sys/errno.h>
- #include <sys/socket.h>
-+#include <netdb.h>
- #include <netinet/in.h>
- #include <gssrpc/rpc.h>
- #include <errno.h>
diff --git a/package/krb5/patches/patch-src_plugins_preauth_pkinit_pkinit_crypto_openssl_c b/package/krb5/patches/patch-src_plugins_preauth_pkinit_pkinit_crypto_openssl_c
deleted file mode 100644
index 41831586e..000000000
--- a/package/krb5/patches/patch-src_plugins_preauth_pkinit_pkinit_crypto_openssl_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- krb5-1.13.1.orig/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c 2015-02-11 21:16:43.000000000 -0600
-+++ krb5-1.13.1/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c 2015-05-02 15:39:13.727426998 -0500
-@@ -3593,7 +3593,7 @@ pkinit_open_session(krb5_context context
- {
- CK_ULONG i, r;
- unsigned char *cp;
-- size_t label_len;
-+ size_t label_len = 0;
- CK_ULONG count = 0;
- CK_SLOT_ID_PTR slotlist;
- CK_TOKEN_INFO tinfo;
diff --git a/package/krb5/patches/patch-src_util_export-check_pl b/package/krb5/patches/patch-src_util_export-check_pl
deleted file mode 100644
index 0ef935fe4..000000000
--- a/package/krb5/patches/patch-src_util_export-check_pl
+++ /dev/null
@@ -1,11 +0,0 @@
---- krb5-1.11.3.orig/src/util/export-check.pl 2013-06-03 23:39:43.000000000 +0200
-+++ krb5-1.11.3/src/util/export-check.pl 2013-08-22 08:50:25.737585135 +0200
-@@ -38,7 +38,7 @@ if ($#ARGV != 1) {
- my($exfile, $libfile) = @ARGV;
-
- @missing = ();
--open NM, "nm -Dg --defined-only $libfile |" || die "can't run nm on $libfile: $!";
-+open NM, "@@NM@@ -Dg --defined-only $libfile |" || die "can't run nm on $libfile: $!";
- open EXPORT, "< $exfile" || die "can't read $exfile: $!";
-
- @export = <EXPORT>;
diff --git a/package/lame/Makefile b/package/lame/Makefile
index e9838154f..40474a7d3 100644
--- a/package/lame/Makefile
+++ b/package/lame/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= lame
-PKG_VERSION:= 3.99
+PKG_VERSION:= 3.100
PKG_RELEASE:= 1
-PKG_HASH:= d71d804c25cac69592939865033787849cef52b6c9b783ed31ea8dcebeadbbba
+PKG_HASH:= ddfe36cab873794038ae2c1210557ad34857a4b6bdc515785d1da9e175b1da1e
PKG_DESCR:= mp3 encoder
PKG_SECTION:= mm/audio
PKG_DEPENDS:= libncurses
diff --git a/package/lftp/Makefile b/package/lftp/Makefile
index b160c8697..993df08b3 100644
--- a/package/lftp/Makefile
+++ b/package/lftp/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= lftp
-PKG_VERSION:= 4.7.7
+PKG_VERSION:= 4.9.2
PKG_RELEASE:= 1
-PKG_HASH:= 4483df04502660dcc65a11cf09d530e31bea99483d69328c1c5cbaa41d6619b4
+PKG_HASH:= c517c4f4f9c39bd415d7313088a2b1e313b2d386867fe40b7692b83a20f0670d
PKG_DESCR:= ftp and http client
PKG_SECTION:= net/http
PKG_DEPENDS:= libncurses libexpat
diff --git a/package/lftp/patches/patch-src_FileCopy_cc b/package/lftp/patches/patch-src_FileCopy_cc
deleted file mode 100644
index a8b1d0d41..000000000
--- a/package/lftp/patches/patch-src_FileCopy_cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- lftp-4.7.7.orig/src/FileCopy.cc 2017-03-07 08:35:47.000000000 +0100
-+++ lftp-4.7.7/src/FileCopy.cc 2017-06-05 21:33:11.719033961 +0200
-@@ -36,7 +36,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
--#include <math.h>
-+#include <cmath>
- #include <stddef.h>
- #include "FileCopy.h"
- #include "url.h"
diff --git a/package/lftp/patches/patch-src_NetAccess_cc b/package/lftp/patches/patch-src_NetAccess_cc
deleted file mode 100644
index 2ed120587..000000000
--- a/package/lftp/patches/patch-src_NetAccess_cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- lftp-4.7.7.orig/src/NetAccess.cc 2016-12-15 13:25:36.000000000 +0100
-+++ lftp-4.7.7/src/NetAccess.cc 2017-06-05 22:14:19.905585919 +0200
-@@ -21,7 +21,7 @@
-
- #include <errno.h>
- #include <assert.h>
--#include <math.h>
-+#include <cmath>
- #include <sys/types.h>
-
- #include "NetAccess.h"
diff --git a/package/lftp/patches/patch-src_ResMgr_cc b/package/lftp/patches/patch-src_ResMgr_cc
deleted file mode 100644
index ad66c2883..000000000
--- a/package/lftp/patches/patch-src_ResMgr_cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- lftp-4.7.7.orig/src/ResMgr.cc 2017-02-07 17:57:49.000000000 +0100
-+++ lftp-4.7.7/src/ResMgr.cc 2017-06-05 21:24:11.348321502 +0200
-@@ -23,7 +23,7 @@
- #include <ctype.h>
- #include <unistd.h>
- #include <stdlib.h>
--#include <math.h>
-+#include <cmath>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <errno.h>
diff --git a/package/lftp/patches/patch-src_Speedometer_cc b/package/lftp/patches/patch-src_Speedometer_cc
deleted file mode 100644
index a5c3ec73e..000000000
--- a/package/lftp/patches/patch-src_Speedometer_cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- lftp-4.7.7.orig/src/Speedometer.cc 2016-02-20 14:57:53.000000000 +0100
-+++ lftp-4.7.7/src/Speedometer.cc 2017-06-05 21:41:06.185512853 +0200
-@@ -18,7 +18,7 @@
- */
-
- #include <config.h>
--#include <math.h>
-+#include <cmath>
- #include <stdlib.h>
- #include "Speedometer.h"
- #include "misc.h"
diff --git a/package/lftp/patches/patch-src_lftp_ssl_cc b/package/lftp/patches/patch-src_lftp_ssl_cc
new file mode 100644
index 000000000..d8569322e
--- /dev/null
+++ b/package/lftp/patches/patch-src_lftp_ssl_cc
@@ -0,0 +1,38 @@
+--- lftp-4.9.2.orig/src/lftp_ssl.cc 2020-01-29 21:36:37.000000000 +0100
++++ lftp-4.9.2/src/lftp_ssl.cc 2024-02-22 14:42:11.060809468 +0100
+@@ -34,7 +34,7 @@
+ #include "misc.h"
+ #include "network.h"
+ #include "buffer.h"
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+ #define X509_STORE_CTX_get_by_subject X509_STORE_get_by_subject
+ #endif
+ extern "C" {
+@@ -775,7 +775,7 @@ error:
+ #elif USE_OPENSSL
+ //static int lftp_ssl_passwd_callback(char *buf,int size,int rwflag,void *userdata);
+
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined (LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x2070000L)
+ // for compatibility with older versions
+ X509_OBJECT *X509_OBJECT_new()
+ {
+@@ -840,7 +840,7 @@ lftp_ssl_openssl_instance::lftp_ssl_open
+ ssl_ctx=SSL_CTX_new();
+ X509_set_default_verify_paths(ssl_ctx->cert);
+ #else
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+ SSLeay_add_ssl_algorithms();
+ #endif
+ ssl_ctx=SSL_CTX_new(SSLv23_client_method());
+@@ -1080,7 +1080,7 @@ void lftp_ssl_openssl::copy_sid(const lf
+
+ const char *lftp_ssl_openssl::strerror()
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100000L || LIBRESSL_VERSION_NUMBER
+ SSL_load_error_strings();
+ #endif
+ int error=ERR_get_error();
diff --git a/package/libX11/Makefile b/package/libX11/Makefile
index f7aae2149..561d82ff0 100644
--- a/package/libX11/Makefile
+++ b/package/libX11/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libX11
-PKG_VERSION:= 1.6.4
+PKG_VERSION:= 1.7.2
PKG_RELEASE:= 1
-PKG_HASH:= 5d7fbb9e15c27900ea8963218a59750b674a8d7c94161b66e96fcfbdaa1c6263
+PKG_HASH:= 2c26ccd08f43a6214de89110554fbe97c71692eeb7e7d4829f3004ae6fafd2c0
PKG_DESCR:= x11 client-side library
PKG_SECTION:= x11/libs
PKG_BUILDDEP:= libX11-host xproto xextproto xtrans libXdmcp libXau xcb-proto
diff --git a/package/libX11/patches/patch-src_util_Makefile_in b/package/libX11/patches/patch-src_util_Makefile_in
deleted file mode 100644
index 8a194f2d1..000000000
--- a/package/libX11/patches/patch-src_util_Makefile_in
+++ /dev/null
@@ -1,13 +0,0 @@
---- libX11-1.6.3.orig/src/util/Makefile.in 2015-03-09 23:29:02.000000000 +0100
-+++ libX11-1.6.3/src/util/Makefile.in 2016-01-08 10:43:16.257572082 +0100
-@@ -348,9 +348,7 @@ target_alias = @target_alias@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--AM_CFLAGS = \
-- $(X11_CFLAGS) \
-- $(CWARNFLAGS)
-+AM_CFLAGS =
-
- AM_CPPFLAGS = \
- -I$(top_srcdir)/include
diff --git a/package/libXrandr/Makefile b/package/libXrandr/Makefile
index 85340713e..c6169652f 100644
--- a/package/libXrandr/Makefile
+++ b/package/libXrandr/Makefile
@@ -9,7 +9,7 @@ PKG_RELEASE:= 1
PKG_HASH:= 2baa7fb3eca78fe7e11a09b373ba898b717f7eeba4a4bfd68187e04b4789b0d3
PKG_DESCR:= xrandr library
PKG_SECTION:= x11/libs
-PKG_BUILDDEP:= randrproto libXrender
+PKG_BUILDDEP:= randrproto libXrender libXext
PKG_SITES:= http://www.x.org/releases/individual/lib/
PKG_LIBNAME:= libxrandr
PKG_OPTS:= dev
diff --git a/package/libaio/Makefile b/package/libaio/Makefile
new file mode 100644
index 000000000..9c6b4d3b3
--- /dev/null
+++ b/package/libaio/Makefile
@@ -0,0 +1,28 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libaio
+PKG_VERSION:= 0.3.112
+PKG_RELEASE:= 1
+PKG_HASH:= b7cf93b29bbfb354213a0e8c0e82dfcf4e776157940d894750528714a0af2272
+PKG_DESCR:= Asynchronous input/output library that uses the kernels native interface
+PKG_SECTION:= libs/misc
+PKG_URL:= https://pagure.io/libaio
+PKG_SITES:= https://pagure.io/libaio/archive/libaio-${PKG_VERSION}/
+
+DISTFILES:= $(PKG_NAME)-$(PKG_NAME)-$(PKG_VERSION).tar.gz
+WRKDIST= $(WRKDIR)/$(PKG_NAME)-$(PKG_NAME)-$(PKG_VERSION)
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBAIO,libaio,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+
+libaio-install:
+ $(INSTALL_DIR) $(IDIR_LIBAIO)/usr/lib
+ ${CP} ${WRKINST}/usr/lib/libaio*.so* ${IDIR_LIBAIO}/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libao/Makefile b/package/libao/Makefile
index 1a015e2ce..9f308976b 100644
--- a/package/libao/Makefile
+++ b/package/libao/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= libao
-PKG_VERSION:= 1.1.0
+PKG_VERSION:= 1.2.0
PKG_RELEASE:= 1
-PKG_HASH:= 29de5bb9b1726ba890455ef7e562d877df87811febb0d99ee69164b88c171bd4
+PKG_HASH:= 03ad231ad1f9d64b52474392d63c31197b0bc7bd416e58b1c10a329a5ed89caf
PKG_DESCR:= cross platform audio library
PKG_SECTION:= libs/audio
PKG_DEPENDS:= alsa-lib
diff --git a/package/libargon2/Makefile b/package/libargon2/Makefile
new file mode 100644
index 000000000..af5cd6fd0
--- /dev/null
+++ b/package/libargon2/Makefile
@@ -0,0 +1,40 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libargon2
+PKG_VERSION:= 20190702
+PKG_RELEASE:= 1
+PKG_HASH:= daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c
+PKG_DESCR:= Password hashing software that won the Password Hashing Competition (PHC)
+PKG_SECTION:= libs/crypto
+PKG_URL:= https://github.com/P-H-C/phc-winner-argon2
+PKG_SITES:= https://github.com/P-H-C/phc-winner-argon2/archive/refs/tags/
+DISTFILES:= $(PKG_VERSION).tar.gz
+WRKDIST= $(WRKDIR)/phc-winner-argon2-$(PKG_VERSION)
+
+PKG_SUBPKGS:= LIBARGON2 ARGON2
+PKGSD_ARGON2:= libargon2 command-line utility
+PKGSS_ARGON2:= libargon2
+PKGSC_ARGON2:= app/crypto
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBARGON2,libargon2,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+$(eval $(call PKG_template,ARGON2,argon2,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS_ARGON2),$(PKGSD_ARGON2),$(PKGSC_ARGON2)))
+
+CONFIG_STYLE:= manual
+MAKE_ENV+= LIBRARY_REL=lib
+
+libargon2-install:
+ $(INSTALL_DIR) ${IDIR_LIBARGON2}/usr/lib
+ $(CP) ${WRKINST}/usr/lib/libargon2.so* \
+ ${IDIR_LIBARGON2}/usr/lib
+
+argon2-install:
+ $(INSTALL_DIR) $(IDIR_ARGON2)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/argon2 \
+ $(IDIR_ARGON2)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libass/Makefile b/package/libass/Makefile
index 38756fa5d..b7cf2d2f5 100644
--- a/package/libass/Makefile
+++ b/package/libass/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libass
-PKG_VERSION:= 0.13.0
+PKG_VERSION:= 0.17.1
PKG_RELEASE:= 1
-PKG_HASH:= e0071a3b2e95411c8d474014678368e3f0b852f7d663e0564b344e7335eb0671
+PKG_HASH:= f0da0bbfba476c16ae3e1cfd862256d30915911f7abaa1b16ce62ee653192784
PKG_DESCR:= portable subtitle renderer
PKG_SECTION:= libs/video
PKG_DEPENDS:= fribidi fontconfig
diff --git a/package/libassuan/Makefile b/package/libassuan/Makefile
index bb4249565..373947719 100644
--- a/package/libassuan/Makefile
+++ b/package/libassuan/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libassuan
-PKG_VERSION:= 2.5.1
+PKG_VERSION:= 2.5.6
PKG_RELEASE:= 1
-PKG_HASH:= 47f96c37b4f2aac289f0bc1bacfa8bd8b4b209a488d3d15e2229cb6cc9b26449
+PKG_HASH:= e9fd27218d5394904e4e39788f9b1742711c3e6b41689a31aa3380bd5aa4f426
PKG_DESCR:= implementation of assuan protocol
PKG_SECTION:= libs/crypto
PKG_DEPENDS:= libgpg-error
diff --git a/package/libatomic/Makefile b/package/libatomic/Makefile
new file mode 100644
index 000000000..8e00e02c1
--- /dev/null
+++ b/package/libatomic/Makefile
@@ -0,0 +1,31 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include ${ADK_TOPDIR}/rules.mk
+include ${ADK_TOPDIR}/toolchain/gcc/Makefile.inc
+
+PKG_NAME:= libatomic
+PKG_DESCR:= gcc atomic library
+PKG_SECTION:= base/libs
+PKG_OPTS:= noremove
+
+PKG_DFLT_LIBATOMIC:= y if !ADK_APPLIANCE_TOOLCHAIN
+
+NO_DISTFILES:= 1
+
+include ${ADK_TOPDIR}/mk/package.mk
+
+$(eval $(call PKG_template,LIBATOMIC,libatomic,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+libatomic-install:
+ $(INSTALL_DIR) ${IDIR_LIBATOMIC}/$(ADK_TARGET_LIBC_PATH)
+ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),)
+ # XXX: properly install libatomic
+ -${CP} ${TOOLCHAIN_BUILD_DIR}/w-gcc*/gcc-*-final/*/libatomic/.libs/libatomic*.so* ${IDIR_LIBATOMIC}/$(ADK_TARGET_LIBC_PATH)
+endif
+
+include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/libbsd/Makefile b/package/libbsd/Makefile
new file mode 100644
index 000000000..744c627c6
--- /dev/null
+++ b/package/libbsd/Makefile
@@ -0,0 +1,27 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libbsd
+PKG_VERSION:= 0.11.7
+PKG_RELEASE:= 1
+PKG_HASH:= 9baa186059ebbf25c06308e9f991fda31f7183c0f24931826d83aa6abd8a0261
+PKG_DESCR:= bsd helper functions
+PKG_SECTION:= libs/misc
+PKG_BUILDDEP:= libmd
+PKG_DEPENDS:= libmd
+PKG_URL:= https://libbsd.freedesktop.org/
+PKG_SITES:= https://libbsd.freedesktop.org/releases/
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBBSD,libbsd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+libbsd-install:
+ $(INSTALL_DIR) $(IDIR_LIBBSD)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libbsd*.so* \
+ $(IDIR_LIBBSD)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libcap-ng/Makefile b/package/libcap-ng/Makefile
new file mode 100644
index 000000000..48ce9dee5
--- /dev/null
+++ b/package/libcap-ng/Makefile
@@ -0,0 +1,28 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libcap-ng
+PKG_VERSION:= 0.8.4
+PKG_RELEASE:= 1
+PKG_HASH:= 5615c76a61039e283a6bd107c4faf345ae5ad4dcd45907defe5e474d8fdb6fd2
+PKG_DESCR:= capability library
+PKG_SECTION:= libs/misc
+PKG_SITES:= https://github.com/stevegrubb/libcap-ng/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBCAP_NG,libcap-ng,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+AUTOTOOL_STYLE:= autogen
+
+libcap-ng-install:
+ $(INSTALL_DIR) $(IDIR_LIBCAP_NG)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libcap-ng*.so* \
+ $(IDIR_LIBCAP_NG)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libcap-ng/patches/patch-INSTALL b/package/libcap-ng/patches/patch-INSTALL
new file mode 100644
index 000000000..b9ca10914
--- /dev/null
+++ b/package/libcap-ng/patches/patch-INSTALL
@@ -0,0 +1,521 @@
+--- libcap-ng-0.8.4.orig/INSTALL 2023-12-20 16:18:45.000000000 +0100
++++ libcap-ng-0.8.4/INSTALL 2024-02-27 12:31:52.534581269 +0100
+@@ -1,8 +1,8 @@
+ Installation Instructions
+ *************************
+
+-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+-2006, 2007, 2008, 2009 Free Software Foundation, Inc.
++ Copyright (C) 1994-1996, 1999-2002, 2004-2016 Free Software
++Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+@@ -12,97 +12,96 @@ without warranty of any kind.
+ Basic Installation
+ ==================
+
+- Briefly, the shell commands `./configure; make; make install' should
+-configure, build, and install this package. The following
+-more-detailed instructions are generic; see the `README' file for
++ Briefly, the shell command './configure && make && make install'
++should configure, build, and install this package. The following
++more-detailed instructions are generic; see the 'README' file for
+ instructions specific to this package. Some packages provide this
+-`INSTALL' file but do not implement all of the features documented
++'INSTALL' file but do not implement all of the features documented
+ below. The lack of an optional feature in a given package is not
+ necessarily a bug. More recommendations for GNU packages can be found
+ in *note Makefile Conventions: (standards)Makefile Conventions.
+
+- The `configure' shell script attempts to guess correct values for
++ The 'configure' shell script attempts to guess correct values for
+ various system-dependent variables used during compilation. It uses
+-those values to create a `Makefile' in each directory of the package.
+-It may also create one or more `.h' files containing system-dependent
+-definitions. Finally, it creates a shell script `config.status' that
++those values to create a 'Makefile' in each directory of the package.
++It may also create one or more '.h' files containing system-dependent
++definitions. Finally, it creates a shell script 'config.status' that
+ you can run in the future to recreate the current configuration, and a
+-file `config.log' containing compiler output (useful mainly for
+-debugging `configure').
++file 'config.log' containing compiler output (useful mainly for
++debugging 'configure').
+
+- It can also use an optional file (typically called `config.cache'
+-and enabled with `--cache-file=config.cache' or simply `-C') that saves
+-the results of its tests to speed up reconfiguring. Caching is
+-disabled by default to prevent problems with accidental use of stale
+-cache files.
++ It can also use an optional file (typically called 'config.cache' and
++enabled with '--cache-file=config.cache' or simply '-C') that saves the
++results of its tests to speed up reconfiguring. Caching is disabled by
++default to prevent problems with accidental use of stale cache files.
+
+ If you need to do unusual things to compile the package, please try
+-to figure out how `configure' could check whether to do them, and mail
+-diffs or instructions to the address given in the `README' so they can
++to figure out how 'configure' could check whether to do them, and mail
++diffs or instructions to the address given in the 'README' so they can
+ be considered for the next release. If you are using the cache, and at
+-some point `config.cache' contains results you don't want to keep, you
++some point 'config.cache' contains results you don't want to keep, you
+ may remove or edit it.
+
+- The file `configure.ac' (or `configure.in') is used to create
+-`configure' by a program called `autoconf'. You need `configure.ac' if
+-you want to change it or regenerate `configure' using a newer version
+-of `autoconf'.
++ The file 'configure.ac' (or 'configure.in') is used to create
++'configure' by a program called 'autoconf'. You need 'configure.ac' if
++you want to change it or regenerate 'configure' using a newer version of
++'autoconf'.
+
+ The simplest way to compile this package is:
+
+- 1. `cd' to the directory containing the package's source code and type
+- `./configure' to configure the package for your system.
++ 1. 'cd' to the directory containing the package's source code and type
++ './configure' to configure the package for your system.
+
+- Running `configure' might take a while. While running, it prints
++ Running 'configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+- 2. Type `make' to compile the package.
++ 2. Type 'make' to compile the package.
+
+- 3. Optionally, type `make check' to run any self-tests that come with
++ 3. Optionally, type 'make check' to run any self-tests that come with
+ the package, generally using the just-built uninstalled binaries.
+
+- 4. Type `make install' to install the programs and any data files and
++ 4. Type 'make install' to install the programs and any data files and
+ documentation. When installing into a prefix owned by root, it is
+ recommended that the package be configured and built as a regular
+- user, and only the `make install' phase executed with root
++ user, and only the 'make install' phase executed with root
+ privileges.
+
+- 5. Optionally, type `make installcheck' to repeat any self-tests, but
++ 5. Optionally, type 'make installcheck' to repeat any self-tests, but
+ this time using the binaries in their final installed location.
+ This target does not install anything. Running this target as a
+- regular user, particularly if the prior `make install' required
++ regular user, particularly if the prior 'make install' required
+ root privileges, verifies that the installation completed
+ correctly.
+
+ 6. You can remove the program binaries and object files from the
+- source code directory by typing `make clean'. To also remove the
+- files that `configure' created (so you can compile the package for
+- a different kind of computer), type `make distclean'. There is
+- also a `make maintainer-clean' target, but that is intended mainly
++ source code directory by typing 'make clean'. To also remove the
++ files that 'configure' created (so you can compile the package for
++ a different kind of computer), type 'make distclean'. There is
++ also a 'make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+- 7. Often, you can also type `make uninstall' to remove the installed
++ 7. Often, you can also type 'make uninstall' to remove the installed
+ files again. In practice, not all packages have tested that
+ uninstallation works correctly, even though it is required by the
+ GNU Coding Standards.
+
+- 8. Some packages, particularly those that use Automake, provide `make
++ 8. Some packages, particularly those that use Automake, provide 'make
+ distcheck', which can by used by developers to test that all other
+- targets like `make install' and `make uninstall' work correctly.
++ targets like 'make install' and 'make uninstall' work correctly.
+ This target is generally not run by end users.
+
+ Compilers and Options
+ =====================
+
+ Some systems require unusual options for compilation or linking that
+-the `configure' script does not know about. Run `./configure --help'
++the 'configure' script does not know about. Run './configure --help'
+ for details on some of the pertinent environment variables.
+
+- You can give `configure' initial values for configuration parameters
+-by setting variables in the command line or in the environment. Here
+-is an example:
++ You can give 'configure' initial values for configuration parameters
++by setting variables in the command line or in the environment. Here is
++an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+@@ -113,21 +112,21 @@ Compiling For Multiple Architectures
+
+ You can compile the package for more than one kind of computer at the
+ same time, by placing the object files for each architecture in their
+-own directory. To do this, you can use GNU `make'. `cd' to the
++own directory. To do this, you can use GNU 'make'. 'cd' to the
+ directory where you want the object files and executables to go and run
+-the `configure' script. `configure' automatically checks for the
+-source code in the directory that `configure' is in and in `..'. This
+-is known as a "VPATH" build.
++the 'configure' script. 'configure' automatically checks for the source
++code in the directory that 'configure' is in and in '..'. This is known
++as a "VPATH" build.
+
+- With a non-GNU `make', it is safer to compile the package for one
++ With a non-GNU 'make', it is safer to compile the package for one
+ architecture at a time in the source code directory. After you have
+-installed the package for one architecture, use `make distclean' before
++installed the package for one architecture, use 'make distclean' before
+ reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+ executables that work on multiple system types--known as "fat" or
+-"universal" binaries--by specifying multiple `-arch' options to the
+-compiler but only a single `-arch' option to the preprocessor. Like
++"universal" binaries--by specifying multiple '-arch' options to the
++compiler but only a single '-arch' option to the preprocessor. Like
+ this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+@@ -136,100 +135,104 @@ this:
+
+ This is not guaranteed to produce working output in all cases, you
+ may have to build one architecture at a time and combine the results
+-using the `lipo' tool if you have problems.
++using the 'lipo' tool if you have problems.
+
+ Installation Names
+ ==================
+
+- By default, `make install' installs the package's commands under
+-`/usr/local/bin', include files under `/usr/local/include', etc. You
+-can specify an installation prefix other than `/usr/local' by giving
+-`configure' the option `--prefix=PREFIX', where PREFIX must be an
++ By default, 'make install' installs the package's commands under
++'/usr/local/bin', include files under '/usr/local/include', etc. You
++can specify an installation prefix other than '/usr/local' by giving
++'configure' the option '--prefix=PREFIX', where PREFIX must be an
+ absolute file name.
+
+ You can specify separate installation prefixes for
+ architecture-specific files and architecture-independent files. If you
+-pass the option `--exec-prefix=PREFIX' to `configure', the package uses
++pass the option '--exec-prefix=PREFIX' to 'configure', the package uses
+ PREFIX as the prefix for installing programs and libraries.
+ Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+-options like `--bindir=DIR' to specify different values for particular
+-kinds of files. Run `configure --help' for a list of the directories
+-you can set and what kinds of files go in them. In general, the
+-default for these options is expressed in terms of `${prefix}', so that
+-specifying just `--prefix' will affect all of the other directory
++options like '--bindir=DIR' to specify different values for particular
++kinds of files. Run 'configure --help' for a list of the directories
++you can set and what kinds of files go in them. In general, the default
++for these options is expressed in terms of '${prefix}', so that
++specifying just '--prefix' will affect all of the other directory
+ specifications that were not explicitly provided.
+
+ The most portable way to affect installation locations is to pass the
+-correct locations to `configure'; however, many packages provide one or
++correct locations to 'configure'; however, many packages provide one or
+ both of the following shortcuts of passing variable assignments to the
+-`make install' command line to change installation locations without
++'make install' command line to change installation locations without
+ having to reconfigure or recompile.
+
+ The first method involves providing an override variable for each
+-affected directory. For example, `make install
++affected directory. For example, 'make install
+ prefix=/alternate/directory' will choose an alternate location for all
+ directory configuration variables that were expressed in terms of
+-`${prefix}'. Any directories that were specified during `configure',
+-but not in terms of `${prefix}', must each be overridden at install
+-time for the entire installation to be relocated. The approach of
+-makefile variable overrides for each directory variable is required by
+-the GNU Coding Standards, and ideally causes no recompilation.
+-However, some platforms have known limitations with the semantics of
+-shared libraries that end up requiring recompilation when using this
+-method, particularly noticeable in packages that use GNU Libtool.
++'${prefix}'. Any directories that were specified during 'configure',
++but not in terms of '${prefix}', must each be overridden at install time
++for the entire installation to be relocated. The approach of makefile
++variable overrides for each directory variable is required by the GNU
++Coding Standards, and ideally causes no recompilation. However, some
++platforms have known limitations with the semantics of shared libraries
++that end up requiring recompilation when using this method, particularly
++noticeable in packages that use GNU Libtool.
+
+- The second method involves providing the `DESTDIR' variable. For
+-example, `make install DESTDIR=/alternate/directory' will prepend
+-`/alternate/directory' before all installation names. The approach of
+-`DESTDIR' overrides is not required by the GNU Coding Standards, and
++ The second method involves providing the 'DESTDIR' variable. For
++example, 'make install DESTDIR=/alternate/directory' will prepend
++'/alternate/directory' before all installation names. The approach of
++'DESTDIR' overrides is not required by the GNU Coding Standards, and
+ does not work on platforms that have drive letters. On the other hand,
+ it does better at avoiding recompilation issues, and works well even
+-when some directory options were not specified in terms of `${prefix}'
+-at `configure' time.
++when some directory options were not specified in terms of '${prefix}'
++at 'configure' time.
+
+ Optional Features
+ =================
+
+ If the package supports it, you can cause programs to be installed
+-with an extra prefix or suffix on their names by giving `configure' the
+-option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
++with an extra prefix or suffix on their names by giving 'configure' the
++option '--program-prefix=PREFIX' or '--program-suffix=SUFFIX'.
+
+- Some packages pay attention to `--enable-FEATURE' options to
+-`configure', where FEATURE indicates an optional part of the package.
+-They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+-is something like `gnu-as' or `x' (for the X Window System). The
+-`README' should mention any `--enable-' and `--with-' options that the
++ Some packages pay attention to '--enable-FEATURE' options to
++'configure', where FEATURE indicates an optional part of the package.
++They may also pay attention to '--with-PACKAGE' options, where PACKAGE
++is something like 'gnu-as' or 'x' (for the X Window System). The
++'README' should mention any '--enable-' and '--with-' options that the
+ package recognizes.
+
+- For packages that use the X Window System, `configure' can usually
++ For packages that use the X Window System, 'configure' can usually
+ find the X include and library files automatically, but if it doesn't,
+-you can use the `configure' options `--x-includes=DIR' and
+-`--x-libraries=DIR' to specify their locations.
++you can use the 'configure' options '--x-includes=DIR' and
++'--x-libraries=DIR' to specify their locations.
+
+ Some packages offer the ability to configure how verbose the
+-execution of `make' will be. For these packages, running `./configure
++execution of 'make' will be. For these packages, running './configure
+ --enable-silent-rules' sets the default to minimal output, which can be
+-overridden with `make V=1'; while running `./configure
++overridden with 'make V=1'; while running './configure
+ --disable-silent-rules' sets the default to verbose, which can be
+-overridden with `make V=0'.
++overridden with 'make V=0'.
+
+ Particular systems
+ ==================
+
+- On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+-CC is not installed, it is recommended to use the following options in
++ On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC
++is not installed, it is recommended to use the following options in
+ order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+ and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
++ HP-UX 'make' updates targets which have the same time stamps as their
++prerequisites, which makes it generally unusable when shipped generated
++files such as 'configure' are involved. Use GNU 'make' instead.
++
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+-parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+-a workaround. If GNU CC is not installed, it is therefore recommended
+-to try
++parse its '<wchar.h>' header file. The option '-nodtk' can be used as a
++workaround. If GNU CC is not installed, it is therefore recommended to
++try
+
+ ./configure CC="cc"
+
+@@ -237,26 +240,26 @@ and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+- On Solaris, don't put `/usr/ucb' early in your `PATH'. This
++ On Solaris, don't put '/usr/ucb' early in your 'PATH'. This
+ directory contains several dysfunctional programs; working variants of
+-these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+-in your `PATH', put it _after_ `/usr/bin'.
++these programs are available in '/usr/bin'. So, if you need '/usr/ucb'
++in your 'PATH', put it _after_ '/usr/bin'.
+
+- On Haiku, software installed for all users goes in `/boot/common',
+-not `/usr/local'. It is recommended to use the following options:
++ On Haiku, software installed for all users goes in '/boot/common',
++not '/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
+ Specifying the System Type
+ ==========================
+
+- There may be some features `configure' cannot figure out
++ There may be some features 'configure' cannot figure out
+ automatically, but needs to determine by the type of machine the package
+ will run on. Usually, assuming the package is built to be run on the
+-_same_ architectures, `configure' can figure that out, but if it prints
++_same_ architectures, 'configure' can figure that out, but if it prints
+ a message saying it cannot guess the machine type, give it the
+-`--build=TYPE' option. TYPE can either be a short name for the system
+-type, such as `sun4', or a canonical name which has the form:
++'--build=TYPE' option. TYPE can either be a short name for the system
++type, such as 'sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+@@ -265,101 +268,101 @@ where SYSTEM can have one of these forms
+ OS
+ KERNEL-OS
+
+- See the file `config.sub' for the possible values of each field. If
+-`config.sub' isn't included in this package, then this package doesn't
++ See the file 'config.sub' for the possible values of each field. If
++'config.sub' isn't included in this package, then this package doesn't
+ need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+-use the option `--target=TYPE' to select the type of system they will
++use the option '--target=TYPE' to select the type of system they will
+ produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+ platform different from the build platform, you should specify the
+ "host" platform (i.e., that on which the generated programs will
+-eventually be run) with `--host=TYPE'.
++eventually be run) with '--host=TYPE'.
+
+ Sharing Defaults
+ ================
+
+- If you want to set default values for `configure' scripts to share,
+-you can create a site shell script called `config.site' that gives
+-default values for variables like `CC', `cache_file', and `prefix'.
+-`configure' looks for `PREFIX/share/config.site' if it exists, then
+-`PREFIX/etc/config.site' if it exists. Or, you can set the
+-`CONFIG_SITE' environment variable to the location of the site script.
+-A warning: not all `configure' scripts look for a site script.
++ If you want to set default values for 'configure' scripts to share,
++you can create a site shell script called 'config.site' that gives
++default values for variables like 'CC', 'cache_file', and 'prefix'.
++'configure' looks for 'PREFIX/share/config.site' if it exists, then
++'PREFIX/etc/config.site' if it exists. Or, you can set the
++'CONFIG_SITE' environment variable to the location of the site script.
++A warning: not all 'configure' scripts look for a site script.
+
+ Defining Variables
+ ==================
+
+ Variables not defined in a site shell script can be set in the
+-environment passed to `configure'. However, some packages may run
++environment passed to 'configure'. However, some packages may run
+ configure again during the build, and the customized values of these
+ variables may be lost. In order to avoid this problem, you should set
+-them in the `configure' command line, using `VAR=value'. For example:
++them in the 'configure' command line, using 'VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+-causes the specified `gcc' to be used as the C compiler (unless it is
++causes the specified 'gcc' to be used as the C compiler (unless it is
+ overridden in the site shell script).
+
+-Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+-an Autoconf bug. Until the bug is fixed you can use this workaround:
++Unfortunately, this technique does not work for 'CONFIG_SHELL' due to an
++Autoconf limitation. Until the limitation is lifted, you can use this
++workaround:
+
+- CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
++ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+-`configure' Invocation
++'configure' Invocation
+ ======================
+
+- `configure' recognizes the following options to control how it
++ 'configure' recognizes the following options to control how it
+ operates.
+
+-`--help'
+-`-h'
+- Print a summary of all of the options to `configure', and exit.
++'--help'
++'-h'
++ Print a summary of all of the options to 'configure', and exit.
+
+-`--help=short'
+-`--help=recursive'
++'--help=short'
++'--help=recursive'
+ Print a summary of the options unique to this package's
+- `configure', and exit. The `short' variant lists options used
+- only in the top level, while the `recursive' variant lists options
+- also present in any nested packages.
++ 'configure', and exit. The 'short' variant lists options used only
++ in the top level, while the 'recursive' variant lists options also
++ present in any nested packages.
+
+-`--version'
+-`-V'
+- Print the version of Autoconf used to generate the `configure'
++'--version'
++'-V'
++ Print the version of Autoconf used to generate the 'configure'
+ script, and exit.
+
+-`--cache-file=FILE'
++'--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+- traditionally `config.cache'. FILE defaults to `/dev/null' to
++ traditionally 'config.cache'. FILE defaults to '/dev/null' to
+ disable caching.
+
+-`--config-cache'
+-`-C'
+- Alias for `--cache-file=config.cache'.
++'--config-cache'
++'-C'
++ Alias for '--cache-file=config.cache'.
+
+-`--quiet'
+-`--silent'
+-`-q'
++'--quiet'
++'--silent'
++'-q'
+ Do not print messages saying which checks are being made. To
+- suppress all normal output, redirect it to `/dev/null' (any error
++ suppress all normal output, redirect it to '/dev/null' (any error
+ messages will still be shown).
+
+-`--srcdir=DIR'
++'--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+- `configure' can determine that directory automatically.
++ 'configure' can determine that directory automatically.
+
+-`--prefix=DIR'
+- Use DIR as the installation prefix. *note Installation Names::
+- for more details, including other options available for fine-tuning
+- the installation locations.
++'--prefix=DIR'
++ Use DIR as the installation prefix. *note Installation Names:: for
++ more details, including other options available for fine-tuning the
++ installation locations.
+
+-`--no-create'
+-`-n'
++'--no-create'
++'-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+-`configure' also accepts some other, not widely useful, options. Run
+-`configure --help' for more details.
+-
++'configure' also accepts some other, not widely useful, options. Run
++'configure --help' for more details.
diff --git a/package/libcap-ng/patches/patch-autogen_sh b/package/libcap-ng/patches/patch-autogen_sh
new file mode 100644
index 000000000..8efae3587
--- /dev/null
+++ b/package/libcap-ng/patches/patch-autogen_sh
@@ -0,0 +1,9 @@
+--- libcap-ng-0.8.4.orig/autogen.sh 2023-12-20 16:18:45.000000000 +0100
++++ libcap-ng-0.8.4/autogen.sh 2024-02-27 12:33:16.298580133 +0100
+@@ -1,5 +1,5 @@
+ #! /bin/sh
+ set -x -e
+ # --no-recursive is available only in recent autoconf versions
+-touch NEWS
++touch NEWS README
+ autoreconf -fv --install
diff --git a/package/libcap/Makefile b/package/libcap/Makefile
index ffceb83af..29c417237 100644
--- a/package/libcap/Makefile
+++ b/package/libcap/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libcap
-PKG_VERSION:= 2.25
-PKG_RELEASE:= 2
-PKG_HASH:= 693c8ac51e983ee678205571ef272439d83afe62dd8e424ea14ad9790bc35162
+PKG_VERSION:= 2.59
+PKG_RELEASE:= 1
+PKG_HASH:= 49f64ae40b113e53cbc161e22af7094e3bb4a0611fa33ef5a4257b011779f034
PKG_DESCR:= capabilities library
PKG_SECTION:= libs/misc
PKG_URL:= http://www.friedhoff.org/posixfilecaps.html
@@ -25,6 +25,10 @@ endif
HOST_STYLE:= manual
CONFIG_STYLE:= manual
+MAKE_ENV+= BUILD_CC="${HOST_CC}"
+ifeq ($(ADK_PACKAGE_PAM),)
+MAKE_ENV+= PAM_CAP=no
+endif
host-build:
(cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
diff --git a/package/libcap/patches/patch-Make_Rules b/package/libcap/patches/patch-Make_Rules
index fa587e654..b40545b48 100644
--- a/package/libcap/patches/patch-Make_Rules
+++ b/package/libcap/patches/patch-Make_Rules
@@ -1,50 +1,11 @@
---- libcap-2.25.orig/Make.Rules 2016-01-31 02:14:53.000000000 +0100
-+++ libcap-2.25/Make.Rules 2016-11-21 12:54:45.000000000 +0100
-@@ -13,21 +13,14 @@ FAKEROOT=$(DESTDIR)
+--- libcap-2.59.orig/Make.Rules 2021-09-27 03:18:19.000000000 +0200
++++ libcap-2.59/Make.Rules 2021-10-12 14:15:43.966424789 +0200
+@@ -18,7 +18,7 @@ FAKEROOT=$(DESTDIR)
# administrative operations that could be needed to recover a system.
ifndef lib
-lib=$(shell ldd /usr/bin/ld|egrep "ld-linux|ld.so"|cut -d/ -f2)
-+lib=lib
++lib=/usr/lib
endif
--ifdef prefix
--exec_prefix=$(prefix)
--lib_prefix=$(exec_prefix)
--inc_prefix=$(lib_prefix)
--man_prefix=$(prefix)/share
--else
- prefix=/usr
--exec_prefix=
-+exec_prefix=$(prefix)
- lib_prefix=$(exec_prefix)
- inc_prefix=$(prefix)
- man_prefix=$(prefix)/share
--endif
-
- # Target directories
-
-@@ -48,10 +41,10 @@ MINOR=25
- KERNEL_HEADERS := $(topdir)/libcap/include/uapi
- IPATH += -fPIC -I$(KERNEL_HEADERS) -I$(topdir)/libcap/include
-
--CC := gcc
--CFLAGS := -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
--BUILD_CC := $(CC)
--BUILD_CFLAGS := $(CFLAGS) $(IPATH)
-+CC ?= gcc
-+CFLAGS ?= -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-+BUILD_CC := $(CC_FOR_BUILD)
-+BUILD_CFLAGS := $(CFLAGS_FOR_BUILD) $(IPATH)
- AR := ar
- RANLIB := ranlib
- DEBUG = -g #-DDEBUG
-@@ -68,7 +61,7 @@ INCS=$(topdir)/libcap/include/sys/capabi
- LDFLAGS += -L$(topdir)/libcap
- CFLAGS += -Dlinux $(WARNINGS) $(DEBUG)
- PAM_CAP := $(shell if [ -f /usr/include/security/pam_modules.h ]; then echo yes ; else echo no ; fi)
--INDENT := $(shell if [ -n "$$(which indent 2>/dev/null)" ]; then echo "| indent -kr" ; fi)
-+#INDENT := $(shell if [ -n "$$(which indent 2>/dev/null)" ]; then echo "| indent -kr" ; fi)
- DYNAMIC := $(shell if [ ! -d "$(topdir)/.git" ]; then echo yes; fi)
-
- # When installing setcap, set its inheritable bit to be able to place
+ ifndef sbin
diff --git a/package/libcap/patches/patch-Makefile b/package/libcap/patches/patch-Makefile
deleted file mode 100644
index 51603e650..000000000
--- a/package/libcap/patches/patch-Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
---- libcap-2.25.orig/Makefile 2014-05-31 22:11:05.000000000 +0200
-+++ libcap-2.25/Makefile 2016-09-23 10:32:34.156211429 +0200
-@@ -10,11 +10,7 @@ include Make.Rules
-
- all install clean: %: %-here
- $(MAKE) -C libcap $@
--ifneq ($(PAM_CAP),no)
-- $(MAKE) -C pam_cap $@
--endif
- $(MAKE) -C progs $@
-- $(MAKE) -C doc $@
-
- all-here:
-
diff --git a/package/libcap/patches/patch-libcap_Makefile b/package/libcap/patches/patch-libcap_Makefile
index bbe31f53b..6dcb3e073 100644
--- a/package/libcap/patches/patch-libcap_Makefile
+++ b/package/libcap/patches/patch-libcap_Makefile
@@ -1,13 +1,11 @@
---- libcap-2.25.orig/libcap/Makefile 2016-01-31 01:01:41.000000000 +0100
-+++ libcap-2.25/libcap/Makefile 2016-09-23 15:09:26.623578683 +0200
-@@ -63,9 +63,8 @@ cap_text.o: cap_text.c $(USE_GPERF_OUTPU
- $(CC) $(CFLAGS) $(IPATH) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
+--- libcap-2.59.orig/libcap/Makefile 2021-09-18 05:56:21.000000000 +0200
++++ libcap-2.59/libcap/Makefile 2021-10-12 14:20:14.254434411 +0200
+@@ -76,7 +76,7 @@ $(PSXTITLE).pc: $(PSXTITLE).pc.in
+ $< >$@
- install: all
-- mkdir -p -m 0755 $(FAKEROOT)$(INCDIR)/sys
-+ mkdir -p -m 0755 $(FAKEROOT)$(INCDIR)/sys $(FAKEROOT)$(LIBDIR)
- install -m 0644 include/sys/capability.h $(FAKEROOT)$(INCDIR)/sys
-- mkdir -p -m 0755 $(FAKEROOT)$(LIBDIR)
- install -m 0644 $(STALIBNAME) $(FAKEROOT)$(LIBDIR)/$(STALIBNAME)
- install -m 0644 $(MINLIBNAME) $(FAKEROOT)$(LIBDIR)/$(MINLIBNAME)
- ln -sf $(MINLIBNAME) $(FAKEROOT)$(LIBDIR)/$(MAJLIBNAME)
+ _makenames: _makenames.c cap_names.list.h
+- $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@
++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $< -o $@
+
+ cap_names.h: _makenames
+ ./_makenames > cap_names.h
diff --git a/package/libcap/patches/patch-libcap__makenames_c b/package/libcap/patches/patch-libcap__makenames_c
deleted file mode 100644
index 641bd6592..000000000
--- a/package/libcap/patches/patch-libcap__makenames_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- libcap-2.22.orig/libcap/_makenames.c 2008-12-04 08:03:12.000000000 +0100
-+++ libcap-2.22/libcap/_makenames.c 2013-10-28 10:54:58.000000000 +0100
-@@ -7,7 +7,7 @@
-
- #include <stdio.h>
- #include <stdlib.h>
--#include <sys/capability.h>
-+#include "include/sys/capability.h"
-
- /*
- * #include 'sed' generated array
diff --git a/package/libcap/patches/patch-libcap_libcap_pc_in b/package/libcap/patches/patch-libcap_libcap_pc_in
index 742f136c0..0d61c60a8 100644
--- a/package/libcap/patches/patch-libcap_libcap_pc_in
+++ b/package/libcap/patches/patch-libcap_libcap_pc_in
@@ -1,5 +1,5 @@
---- libcap-2.25.orig/libcap/libcap.pc.in 2013-12-24 18:08:53.000000000 +0100
-+++ libcap-2.25/libcap/libcap.pc.in 2018-01-01 20:11:08.911444653 +0100
+--- libcap-2.59.orig/libcap/libcap.pc.in 2020-07-01 04:43:01.000000000 +0200
++++ libcap-2.59/libcap/libcap.pc.in 2021-10-12 14:15:43.958424789 +0200
@@ -1,7 +1,7 @@
prefix=@prefix@
-exec_prefix=@exec_prefix@
@@ -10,4 +10,4 @@
+includedir=${prefix}/include
Name: libcap
- Description: libcap
+ Description: libcap - linux capabilities library
diff --git a/package/libcap/patches/patch-progs_Makefile b/package/libcap/patches/patch-progs_Makefile
deleted file mode 100644
index c13d1ddd8..000000000
--- a/package/libcap/patches/patch-progs_Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
---- libcap-2.25.orig/progs/Makefile 2016-01-31 01:01:41.000000000 +0100
-+++ libcap-2.25/progs/Makefile 2016-09-23 10:37:55.480689559 +0200
-@@ -26,9 +26,6 @@ install: all
- for p in $(PROGS) ; do \
- install -m 0755 $$p $(FAKEROOT)$(SBINDIR) ; \
- done
--ifeq ($(RAISE_SETFCAP),yes)
-- $(FAKEROOT)$(SBINDIR)/setcap cap_setfcap=i $(FAKEROOT)$(SBINDIR)/setcap
--endif
-
- clean:
- $(LOCALCLEAN)
diff --git a/package/libcdada/Makefile b/package/libcdada/Makefile
new file mode 100644
index 000000000..4b18d20d5
--- /dev/null
+++ b/package/libcdada/Makefile
@@ -0,0 +1,31 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libcdada
+PKG_VERSION:= 0.5.2
+PKG_RELEASE:= 1
+PKG_HASH:= 507f0b7bf8cb7533c22731c64d92737e7536866be7c7dd317b89709cd6529867
+PKG_DESCR:= basic data structures in C
+PKG_SECTION:= libs/misc
+PKG_SITES:= https://github.com/msune/libcdada/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBCDADA,libcdada,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+AUTOTOOL_STYLE:= autogen
+CONFIGURE_ARGS+= --disable-silent-rules \
+ --without-tests \
+ --without-examples
+
+libcdada-install:
+ $(INSTALL_DIR) $(IDIR_LIBCDADA)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libcdada*.so* \
+ $(IDIR_LIBCDADA)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libcdada/patches/patch-configure_ac b/package/libcdada/patches/patch-configure_ac
new file mode 100644
index 000000000..b9d2dd11d
--- /dev/null
+++ b/package/libcdada/patches/patch-configure_ac
@@ -0,0 +1,22 @@
+--- libcdada-0.5.2.orig/configure.ac 2023-11-07 23:04:41.000000000 +0100
++++ libcdada-0.5.2/configure.ac 2024-02-20 07:03:02.007933771 +0100
+@@ -4,7 +4,7 @@ AC_INIT(LIBCDADA, m4_esyscmd_s(cat VERSI
+ AC_CONFIG_AUX_DIR([build-aux])
+ AC_CONFIG_MACRO_DIR([m4])
+
+-AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
++AM_INIT_AUTOMAKE([-Wall foreign subdir-objects])
+
+ AC_GNU_SOURCE
+
+@@ -24,8 +24,8 @@ LT_INIT
+ AC_ENABLE_STATIC
+
+ # Some useful default flags
+-CFLAGS="-std=gnu89 -Werror -Wall $CFLAGS"
+-CXXFLAGS="-Werror -Wall $CXXFLAGS"
++CFLAGS="-std=gnu89 -Wall $CFLAGS"
++CXXFLAGS="-Wall $CXXFLAGS"
+ AC_DEFINE([__STDC_FORMAT_MACROS], [], [Description])
+
+ # Check for Python3
diff --git a/package/libcdio/Makefile b/package/libcdio/Makefile
index c5d43c600..955f44359 100644
--- a/package/libcdio/Makefile
+++ b/package/libcdio/Makefile
@@ -4,16 +4,18 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libcdio
-PKG_VERSION:= 0.92
-PKG_RELEASE:= 2
-PKG_HASH:= 3336bf352aff43b5023e41a6d23525172a3b4ee433c467bd0fab5b8becb33fad
+PKG_VERSION:= 2.1.0
+PKG_RELEASE:= 1
+PKG_HASH:= 8550e9589dbd594bfac93b81ecf129b1dc9d0d51e90f9696f1b2f9b2af32712b
PKG_DESCR:= library for cd-rom and cd image access
PKG_SECTION:= libs/misc
+PKG_DEPENDS:= ncurses
+PKG_BUILDDEP:= ncurses
PKG_URL:= http://www.gnu.org/software/libcdio
-PKG_SITES:= ${MASTER_SITE_GNU:=libcdio/}
+PKG_SITES:= http://ftp.gnu.org/gnu/libcdio/
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
include $(ADK_TOPDIR)/mk/package.mk
diff --git a/package/libcec/Makefile b/package/libcec/Makefile
index 422bf679b..302f03e4e 100644
--- a/package/libcec/Makefile
+++ b/package/libcec/Makefile
@@ -4,24 +4,29 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libcec
-PKG_VERSION:= d156e7cb684f86a9d73f8dcf087d4799c62d9721
+PKG_VERSION:= 6.0.2
PKG_RELEASE:= 1
-PKG_GIT:= hash
+PKG_HASH:= 090696d7a4fb772d7acebbb06f91ab92e025531c7c91824046b9e4e71ecb3377
PKG_DESCR:= control your device with your tv remote control
PKG_SECTION:= libs/video
-PKG_DEPENDS:= libudev libplatform
-PKG_BUILDDEP:= eudev cmake-host platform
+PKG_DEPENDS:= libudev p8-platform
+PKG_BUILDDEP:= eudev cmake-host p8-platform
PKG_URL:= http://libcec.pulse-eight.com/
-PKG_SITES:= https://github.com/Pulse-Eight/libcec.git
+PKG_SITES:= https://github.com/Pulse-Eight/libcec/archive/refs/tags/
PKG_OPTS:= dev
+PKG_DEPENDS_RASPBERRY_PI4:= bcm28xx-vc
+PKG_BUILDDEP_RASPBERRY_PI4:= bcm28xx-vc
PKG_DEPENDS_RASPBERRY_PI3:= bcm28xx-vc
PKG_BUILDDEP_RASPBERRY_PI3:= bcm28xx-vc
PKG_DEPENDS_RASPBERRY_PI2:= bcm28xx-vc
PKG_BUILDDEP_RASPBERRY_PI2:= bcm28xx-vc
PKG_DEPENDS_RASPBERRY_PI:= bcm28xx-vc
PKG_BUILDDEP_RASPBERRY_PI:= bcm28xx-vc
-PKG_SYSTEM_DEPENDS:= raspberry-pi raspberry-pi2 raspberry-pi3 raspberry-pi3p solidrun-imx6
+PKG_SYSTEM_DEPENDS:= raspberry-pi raspberry-pi2 raspberry-pi3 raspberry-pi4 solidrun-imx6
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+WRKDIST= $(WRKDIR)/$(PKG_NAME)-$(PKG_NAME)-$(PKG_VERSION)
include $(ADK_TOPDIR)/mk/package.mk
diff --git a/package/libcec/patches/libcec-00-imx6-support.patch b/package/libcec/patches/libcec-00-imx6-support.patch
deleted file mode 100644
index 2c24635c4..000000000
--- a/package/libcec/patches/libcec-00-imx6-support.patch
+++ /dev/null
@@ -1,879 +0,0 @@
-From a7f3315333c1a79259a763c6542a6cd71855b357 Mon Sep 17 00:00:00 2001
-From: Stefan Saraev <stefan@saraev.ca>
-Date: Thu, 7 May 2015 11:35:04 +0300
-Subject: [PATCH] imx support
-
-note. I am NOT the author of the patch. just rebased it
----
- include/cectypes.h | 14 +-
- src/libcec/CECTypeUtils.h | 2 +
- src/libcec/adapter/AdapterFactory.cpp | 29 +-
- src/libcec/adapter/IMX/AdapterMessageQueue.h | 134 +++++++++
- .../adapter/IMX/IMXCECAdapterCommunication.cpp | 328 +++++++++++++++++++++
- .../adapter/IMX/IMXCECAdapterCommunication.h | 119 ++++++++
- src/libcec/adapter/IMX/IMXCECAdapterDetection.cpp | 42 +++
- src/libcec/adapter/IMX/IMXCECAdapterDetection.h | 36 +++
- src/libcec/cmake/CheckPlatformSupport.cmake | 10 +
- src/libcec/cmake/DisplayPlatformSupport.cmake | 6 +
- src/libcec/env.h.in | 3 +
- 11 files changed, 720 insertions(+), 3 deletions(-)
- create mode 100644 src/libcec/adapter/IMX/AdapterMessageQueue.h
- create mode 100644 src/libcec/adapter/IMX/IMXCECAdapterCommunication.cpp
- create mode 100644 src/libcec/adapter/IMX/IMXCECAdapterCommunication.h
- create mode 100644 src/libcec/adapter/IMX/IMXCECAdapterDetection.cpp
- create mode 100644 src/libcec/adapter/IMX/IMXCECAdapterDetection.h
-
-diff --git a/include/cectypes.h b/include/cectypes.h
-index acff259..0cfee8c 100644
---- a/include/cectypes.h
-+++ b/include/cectypes.h
-@@ -309,6 +309,17 @@ namespace CEC {
- #define CEC_EXYNOS_VIRTUAL_COM "Exynos"
-
- /*!
-+ * the path to use for the i.MX CEC wire
-+ */
-+#define CEC_IMX_PATH "/dev/mxc_hdmi_cec"
-+
-+/*!
-+ * the name of the virtual COM port to use for the i.MX CEC wire
-+ */
-+#define CEC_IMX_VIRTUAL_COM "i.MX"
-+
-+
-+/*!
- * Mimimum client version
- */
- #define CEC_MIN_LIB_VERSION 3
-@@ -876,7 +887,8 @@ typedef enum cec_adapter_type
- ADAPTERTYPE_P8_DAUGHTERBOARD = 0x2,
- ADAPTERTYPE_RPI = 0x100,
- ADAPTERTYPE_TDA995x = 0x200,
-- ADAPTERTYPE_EXYNOS = 0x300
-+ ADAPTERTYPE_EXYNOS = 0x300,
-+ ADAPTERTYPE_IMX = 0x400
- } cec_adapter_type;
-
- /** force exporting through swig */
-diff --git a/src/libcec/CECTypeUtils.h b/src/libcec/CECTypeUtils.h
-index fd8046a..48cb215 100644
---- a/src/libcec/CECTypeUtils.h
-+++ b/src/libcec/CECTypeUtils.h
-@@ -765,6 +765,8 @@ namespace CEC
- return "Raspberry Pi";
- case ADAPTERTYPE_TDA995x:
- return "TDA995x";
-+ case ADAPTERTYPE_IMX:
-+ return "i.MX";
- default:
- return "unknown";
- }
-diff --git a/src/libcec/adapter/AdapterFactory.cpp b/src/libcec/adapter/AdapterFactory.cpp
-index da05725..92e378b 100644
---- a/src/libcec/adapter/AdapterFactory.cpp
-+++ b/src/libcec/adapter/AdapterFactory.cpp
-@@ -58,6 +58,11 @@
- #include "Exynos/ExynosCECAdapterCommunication.h"
- #endif
-
-+#if defined(HAVE_IMX_API)
-+#include "IMX/IMXCECAdapterDetection.h"
-+#include "IMX/IMXCECAdapterCommunication.h"
-+#endif
-+
- using namespace CEC;
-
- int8_t CAdapterFactory::FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */)
-@@ -127,7 +132,22 @@ int8_t CAdapterFactory::DetectAdapters(cec_adapter_descriptor *deviceList, uint8
- #endif
-
-
--#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API)
-+
-+#if defined(HAVE_IMX_API)
-+ if (iAdaptersFound < iBufSize && CIMXCECAdapterDetection::FindAdapter() &&
-+ (!strDevicePath || !strcmp(strDevicePath, CEC_IMX_VIRTUAL_COM)))
-+ {
-+ snprintf(deviceList[iAdaptersFound].strComPath, sizeof(deviceList[iAdaptersFound].strComPath), CEC_IMX_PATH);
-+ snprintf(deviceList[iAdaptersFound].strComName, sizeof(deviceList[iAdaptersFound].strComName), CEC_IMX_VIRTUAL_COM);
-+ deviceList[iAdaptersFound].iVendorId = IMX_ADAPTER_VID;
-+ deviceList[iAdaptersFound].iProductId = IMX_ADAPTER_PID;
-+ deviceList[iAdaptersFound].adapterType = ADAPTERTYPE_IMX;
-+ iAdaptersFound++;
-+ }
-+#endif
-+
-+
-+#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_IMX_API)
- #error "libCEC doesn't have support for any type of adapter. please check your build system or configuration"
- #endif
-
-@@ -151,11 +171,16 @@ IAdapterCommunication *CAdapterFactory::GetInstance(const char *strPort, uint16_
- return new CRPiCECAdapterCommunication(m_lib->m_cec);
- #endif
-
-+#if defined(HAVE_IMX_API)
-+ if (!strcmp(strPort, CEC_IMX_VIRTUAL_COM))
-+ return new CIMXCECAdapterCommunication(m_lib->m_cec);
-+#endif
-+
- #if defined(HAVE_P8_USB)
- return new CUSBCECAdapterCommunication(m_lib->m_cec, strPort, iBaudRate);
- #endif
-
--#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_EXYNOS_API)
-+#if !defined(HAVE_RPI_API) && !defined(HAVE_P8_USB) && !defined(HAVE_TDA995X_API) && !defined(HAVE_EXYNOS_API) && !defined(HAVE_IMX_API)
- return NULL;
- #endif
- }
-diff --git a/src/libcec/adapter/IMX/AdapterMessageQueue.h b/src/libcec/adapter/IMX/AdapterMessageQueue.h
-new file mode 100644
-index 0000000..af6742c
---- /dev/null
-+++ b/src/libcec/adapter/IMX/AdapterMessageQueue.h
-@@ -0,0 +1,134 @@
-+#pragma once
-+/*
-+ * This file is part of the libCEC(R) library.
-+ *
-+ * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved.
-+ * libCEC(R) is an original work, containing original code.
-+ *
-+ * libCEC(R) is a trademark of Pulse-Eight Limited.
-+ *
-+ * This program is dual-licensed; 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.
-+ *
-+ *
-+ * Alternatively, you can license this library under a commercial license,
-+ * please contact Pulse-Eight Licensing for more information.
-+ *
-+ * For more information contact:
-+ * Pulse-Eight Licensing <license@pulse-eight.com>
-+ * http://www.pulse-eight.com/
-+ * http://www.pulse-eight.net/
-+ */
-+
-+#include "platform/threads/mutex.h"
-+
-+namespace CEC
-+{
-+ using namespace PLATFORM;
-+
-+ class CAdapterMessageQueueEntry
-+ {
-+ public:
-+ CAdapterMessageQueueEntry(const cec_command &command)
-+ : m_bWaiting(true), m_retval((uint32_t)-1), m_bSucceeded(false)
-+ {
-+ m_hash = hashValue(
-+ uint32_t(command.opcode_set ? command.opcode : CEC_OPCODE_NONE),
-+ command.initiator, command.destination);
-+ }
-+
-+ virtual ~CAdapterMessageQueueEntry(void) {}
-+
-+ /*!
-+ * @brief Query result from worker thread
-+ */
-+ uint32_t Result() const
-+ {
-+ return m_retval;
-+ }
-+
-+ /*!
-+ * @brief Signal waiting threads
-+ */
-+ void Broadcast(void)
-+ {
-+ CLockObject lock(m_mutex);
-+ m_condition.Broadcast();
-+ }
-+
-+ /*!
-+ * @brief Signal waiting thread(s) when message matches this entry
-+ */
-+ bool CheckMatch(uint32_t opcode, cec_logical_address initiator,
-+ cec_logical_address destination, uint32_t response)
-+ {
-+ uint32_t hash = hashValue(opcode, initiator, destination);
-+
-+ if (hash == m_hash)
-+ {
-+ CLockObject lock(m_mutex);
-+
-+ m_retval = response;
-+ m_bSucceeded = true;
-+ m_condition.Signal();
-+ return true;
-+ }
-+
-+ return false;
-+ }
-+
-+ /*!
-+ * @brief Wait for a response to this command.
-+ * @param iTimeout The timeout to use while waiting.
-+ * @return True when a response was received before the timeout passed, false otherwise.
-+ */
-+ bool Wait(uint32_t iTimeout)
-+ {
-+ CLockObject lock(m_mutex);
-+
-+ bool bReturn = m_bSucceeded ? true : m_condition.Wait(m_mutex, m_bSucceeded, iTimeout);
-+ m_bWaiting = false;
-+ return bReturn;
-+ }
-+
-+ /*!
-+ * @return True while a thread is waiting for a signal or isn't waiting yet, false otherwise.
-+ */
-+ bool IsWaiting(void)
-+ {
-+ CLockObject lock(m_mutex);
-+ return m_bWaiting;
-+ }
-+
-+ /*!
-+ * @return Hash value for given cec_command
-+ */
-+ static uint32_t hashValue(uint32_t opcode,
-+ cec_logical_address initiator,
-+ cec_logical_address destination)
-+ {
-+ return 1 | ((uint32_t)initiator << 8) |
-+ ((uint32_t)destination << 16) | ((uint32_t)opcode << 16);
-+ }
-+
-+ private:
-+ bool m_bWaiting; /**< true while a thread is waiting or when it hasn't started waiting yet */
-+ PLATFORM::CCondition<bool> m_condition; /**< the condition to wait on */
-+ PLATFORM::CMutex m_mutex; /**< mutex for changes to this class */
-+ uint32_t m_hash;
-+ uint32_t m_retval;
-+ bool m_bSucceeded;
-+ };
-+
-+};
-diff --git a/src/libcec/adapter/IMX/IMXCECAdapterCommunication.cpp b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.cpp
-new file mode 100644
-index 0000000..2daa8cb
---- /dev/null
-+++ b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.cpp
-@@ -0,0 +1,328 @@
-+/*
-+ * This file is part of the libCEC(R) library.
-+ *
-+ * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved.
-+ * libCEC(R) is an original work, containing original code.
-+ *
-+ * libCEC(R) is a trademark of Pulse-Eight Limited.
-+ *
-+ * IMX adpater port is Copyright (C) 2013 by Stephan Rafin
-+ *
-+ * You can redistribute this file 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.
-+ *
-+ *
-+ */
-+
-+#include "env.h"
-+
-+#if defined(HAVE_IMX_API)
-+#include "IMXCECAdapterCommunication.h"
-+
-+#include "CECTypeUtils.h"
-+#include "LibCEC.h"
-+#include "platform/sockets/cdevsocket.h"
-+#include "platform/util/StdString.h"
-+#include "platform/util/buffer.h"
-+
-+/*
-+ * Ioctl definitions from kernel header
-+ */
-+#define HDMICEC_IOC_MAGIC 'H'
-+#define HDMICEC_IOC_SETLOGICALADDRESS _IOW(HDMICEC_IOC_MAGIC, 1, unsigned char)
-+#define HDMICEC_IOC_STARTDEVICE _IO(HDMICEC_IOC_MAGIC, 2)
-+#define HDMICEC_IOC_STOPDEVICE _IO(HDMICEC_IOC_MAGIC, 3)
-+#define HDMICEC_IOC_GETPHYADDRESS _IOR(HDMICEC_IOC_MAGIC, 4, unsigned char[4])
-+
-+#define MAX_CEC_MESSAGE_LEN 17
-+
-+#define MESSAGE_TYPE_RECEIVE_SUCCESS 1
-+#define MESSAGE_TYPE_NOACK 2
-+#define MESSAGE_TYPE_DISCONNECTED 3
-+#define MESSAGE_TYPE_CONNECTED 4
-+#define MESSAGE_TYPE_SEND_SUCCESS 5
-+
-+typedef struct hdmi_cec_event{
-+ int event_type;
-+ int msg_len;
-+ unsigned char msg[MAX_CEC_MESSAGE_LEN];
-+}hdmi_cec_event;
-+
-+
-+using namespace std;
-+using namespace CEC;
-+using namespace PLATFORM;
-+
-+#include "AdapterMessageQueue.h"
-+
-+#define LIB_CEC m_callback->GetLib()
-+
-+// these are defined in nxp private header file
-+#define CEC_MSG_SUCCESS 0x00 /*Message transmisson Succeed*/
-+#define CEC_CSP_OFF_STATE 0x80 /*CSP in Off State*/
-+#define CEC_BAD_REQ_SERVICE 0x81 /*Bad .req service*/
-+#define CEC_MSG_FAIL_UNABLE_TO_ACCESS 0x82 /*Message transmisson failed: Unable to access CEC line*/
-+#define CEC_MSG_FAIL_ARBITRATION_ERROR 0x83 /*Message transmisson failed: Arbitration error*/
-+#define CEC_MSG_FAIL_BIT_TIMMING_ERROR 0x84 /*Message transmisson failed: Bit timming error*/
-+#define CEC_MSG_FAIL_DEST_NOT_ACK 0x85 /*Message transmisson failed: Destination Address not aknowledged*/
-+#define CEC_MSG_FAIL_DATA_NOT_ACK 0x86 /*Message transmisson failed: Databyte not acknowledged*/
-+
-+
-+CIMXCECAdapterCommunication::CIMXCECAdapterCommunication(IAdapterCommunicationCallback *callback) :
-+ IAdapterCommunication(callback)/*,
-+ m_bLogicalAddressChanged(false)*/
-+{
-+ CLockObject lock(m_mutex);
-+
-+ m_iNextMessage = 0;
-+ //m_logicalAddresses.Clear();
-+ m_logicalAddress = CECDEVICE_UNKNOWN;
-+ m_bLogicalAddressRegistered = false;
-+ m_bInitialised = false;
-+ m_dev = new CCDevSocket(CEC_IMX_PATH);
-+}
-+
-+CIMXCECAdapterCommunication::~CIMXCECAdapterCommunication(void)
-+{
-+ Close();
-+
-+ CLockObject lock(m_mutex);
-+ delete m_dev;
-+ m_dev = 0;
-+}
-+
-+bool CIMXCECAdapterCommunication::IsOpen(void)
-+{
-+ return IsInitialised() && m_dev->IsOpen();
-+}
-+
-+bool CIMXCECAdapterCommunication::Open(uint32_t iTimeoutMs, bool UNUSED(bSkipChecks), bool bStartListening)
-+{
-+ if (m_dev->Open(iTimeoutMs))
-+ {
-+ if (!bStartListening || CreateThread()) {
-+ if (m_dev->Ioctl(HDMICEC_IOC_STARTDEVICE, NULL) == 0) {
-+ m_bInitialised = true;
-+ return true;
-+ }
-+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: Unable to start device\n", __func__);
-+ }
-+ m_dev->Close();
-+ }
-+
-+ return false;
-+}
-+
-+
-+void CIMXCECAdapterCommunication::Close(void)
-+{
-+ StopThread(0);
-+
-+ CLockObject lock(m_mutex);
-+ if (!m_bInitialised) {
-+ return;
-+ }
-+ if (m_dev->Ioctl(HDMICEC_IOC_STOPDEVICE, NULL) != 0) {
-+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: Unable to stop device\n", __func__);
-+ }
-+ m_dev->Close();
-+ m_bInitialised = false;
-+}
-+
-+
-+std::string CIMXCECAdapterCommunication::GetError(void) const
-+{
-+ std::string strError(m_strError);
-+ return strError;
-+}
-+
-+
-+cec_adapter_message_state CIMXCECAdapterCommunication::Write(
-+ const cec_command &data, bool &UNUSED(bRetry), uint8_t UNUSED(iLineTimeout), bool UNUSED(bIsReply))
-+{
-+ //cec_frame frame;
-+ unsigned char message[MAX_CEC_MESSAGE_LEN];
-+ int msg_len = 1;
-+ cec_adapter_message_state rc = ADAPTER_MESSAGE_STATE_ERROR;
-+
-+ if ((size_t)data.parameters.size + data.opcode_set + 1 > sizeof(message))
-+ {
-+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: data size too large !", __func__);
-+ return ADAPTER_MESSAGE_STATE_ERROR;
-+ }
-+
-+ message[0] = (data.initiator << 4) | (data.destination & 0x0f);
-+ if (data.opcode_set)
-+ {
-+ message[1] = data.opcode;
-+ msg_len++;
-+ memcpy(&message[2], data.parameters.data, data.parameters.size);
-+ msg_len+=data.parameters.size;
-+ }
-+
-+ if (m_dev->Write(message, msg_len) == msg_len)
-+ {
-+ rc = ADAPTER_MESSAGE_STATE_SENT_ACKED;
-+ }
-+ else
-+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: sent command error !", __func__);
-+
-+ return rc;
-+}
-+
-+
-+uint16_t CIMXCECAdapterCommunication::GetFirmwareVersion(void)
-+{
-+ /* FIXME add ioctl ? */
-+ return 0;
-+}
-+
-+
-+cec_vendor_id CIMXCECAdapterCommunication::GetVendorId(void)
-+{
-+ return CEC_VENDOR_UNKNOWN;
-+}
-+
-+
-+uint16_t CIMXCECAdapterCommunication::GetPhysicalAddress(void)
-+{
-+ uint32_t info;
-+ uint16_t phy_addr;
-+
-+ if (m_dev->Ioctl(HDMICEC_IOC_GETPHYADDRESS, &info) != 0)
-+ {
-+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: HDMICEC_IOC_GETPHYADDRESS failed !", __func__);
-+ return CEC_INVALID_PHYSICAL_ADDRESS;
-+ }
-+ /* Rebuild 16 bit raw value from fsl 32 bits value */
-+ phy_addr = ((info & 0x0f) << 12) | (info & 0x0f00) |
-+ ((info & 0x0f0000) >> 12) | ((info & 0x0f000000) >> 24);
-+
-+ return phy_addr;
-+}
-+
-+
-+cec_logical_addresses CIMXCECAdapterCommunication::GetLogicalAddresses(void)
-+{
-+ cec_logical_addresses addresses;
-+ addresses.Clear();
-+
-+ CLockObject lock(m_mutex);
-+ if ((m_logicalAddress & (CECDEVICE_UNKNOWN | CECDEVICE_UNREGISTERED)) == 0)
-+ addresses.Set(m_logicalAddress);
-+
-+ return addresses;
-+}
-+
-+void CIMXCECAdapterCommunication::HandleLogicalAddressLost(cec_logical_address UNUSED(oldAddress))
-+{
-+ UnregisterLogicalAddress();
-+}
-+
-+bool CIMXCECAdapterCommunication::UnregisterLogicalAddress(void)
-+{
-+ CLockObject lock(m_mutex);
-+ if (!m_bLogicalAddressRegistered)
-+ return true;
-+
-+ if (m_dev->Ioctl(HDMICEC_IOC_SETLOGICALADDRESS, (void *)CECDEVICE_BROADCAST) != 0)
-+ {
-+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: HDMICEC_IOC_SETLOGICALADDRESS failed !", __func__);
-+ return false;
-+ }
-+
-+ m_logicalAddress = CECDEVICE_UNKNOWN;
-+ m_bLogicalAddressRegistered = false;
-+ return true;
-+}
-+
-+bool CIMXCECAdapterCommunication::RegisterLogicalAddress(const cec_logical_address address)
-+{
-+ CLockObject lock(m_mutex);
-+
-+ if (m_logicalAddress == address && m_bLogicalAddressRegistered)
-+ {
-+ return true;
-+ }
-+
-+ if (m_dev->Ioctl(HDMICEC_IOC_SETLOGICALADDRESS, (void *)address) != 0)
-+ {
-+ LIB_CEC->AddLog(CEC_LOG_ERROR, "%s: HDMICEC_IOC_SETLOGICALADDRESS failed !", __func__);
-+ return false;
-+ }
-+
-+ m_logicalAddress = address;
-+ m_bLogicalAddressRegistered = true;
-+ return true;
-+}
-+
-+bool CIMXCECAdapterCommunication::SetLogicalAddresses(const cec_logical_addresses &addresses)
-+{
-+ int log_addr = addresses.primary;
-+
-+ return RegisterLogicalAddress((cec_logical_address)log_addr);
-+}
-+
-+void *CIMXCECAdapterCommunication::Process(void)
-+{
-+ bool bHandled;
-+ hdmi_cec_event event;
-+ int ret;
-+
-+ uint32_t opcode, status;
-+ cec_logical_address initiator, destination;
-+
-+ while (!IsStopped())
-+ {
-+ ret = m_dev->Read((char *)&event, sizeof(event), 5000);
-+ if (ret > 0)
-+ {
-+
-+ initiator = cec_logical_address(event.msg[0] >> 4);
-+ destination = cec_logical_address(event.msg[0] & 0x0f);
-+
-+ //LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s: Read data : type : %d initiator %d dest %d", __func__, event.event_type, initiator, destination);
-+ if (event.event_type == MESSAGE_TYPE_RECEIVE_SUCCESS)
-+ /* Message received */
-+ {
-+ cec_command cmd;
-+
-+ cec_command::Format(
-+ cmd, initiator, destination,
-+ ( event.msg_len > 1 ) ? cec_opcode(event.msg[1]) : CEC_OPCODE_NONE);
-+
-+ for( uint8_t i = 2; i < event.msg_len; i++ )
-+ cmd.parameters.PushBack(event.msg[i]);
-+
-+ if (!IsStopped())
-+ m_callback->OnCommandReceived(cmd);
-+ }
-+
-+ if (event.event_type == MESSAGE_TYPE_CONNECTED)
-+ /* HDMI has just been reconnected - Notify phy address*/
-+ {
-+ uint16_t iNewAddress = GetPhysicalAddress();
-+ m_callback->HandlePhysicalAddressChanged(iNewAddress);
-+ }
-+ /* We are not interested in other events */
-+ } /*else {
-+ LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s: Read returned %d", __func__, ret);
-+ }*/
-+
-+ }
-+
-+ return 0;
-+}
-+
-+#endif // HAVE_IMX_API
-diff --git a/src/libcec/adapter/IMX/IMXCECAdapterCommunication.h b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.h
-new file mode 100644
-index 0000000..9e899a3
---- /dev/null
-+++ b/src/libcec/adapter/IMX/IMXCECAdapterCommunication.h
-@@ -0,0 +1,119 @@
-+#pragma once
-+/*
-+ * This file is part of the libCEC(R) library.
-+ *
-+ * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved.
-+ * libCEC(R) is an original work, containing original code.
-+ *
-+ * libCEC(R) is a trademark of Pulse-Eight Limited.
-+ *
-+ * IMX adpater port is Copyright (C) 2013 by Stephan Rafin
-+ *
-+ * You can redistribute this file 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.
-+ *
-+ *
-+ */
-+
-+#if defined(HAVE_IMX_API)
-+
-+#include "platform/threads/mutex.h"
-+#include "platform/threads/threads.h"
-+#include "platform/sockets/socket.h"
-+#include "adapter/AdapterCommunication.h"
-+#include <map>
-+
-+#define IMX_ADAPTER_VID 0x0471 /*FIXME TBD*/
-+#define IMX_ADAPTER_PID 0x1001
-+
-+
-+
-+namespace PLATFORM
-+{
-+ class CCDevSocket;
-+};
-+
-+
-+namespace CEC
-+{
-+ class CAdapterMessageQueueEntry;
-+
-+ class CIMXCECAdapterCommunication : public IAdapterCommunication, public PLATFORM::CThread
-+ {
-+ public:
-+ /*!
-+ * @brief Create a new USB-CEC communication handler.
-+ * @param callback The callback to use for incoming CEC commands.
-+ */
-+ CIMXCECAdapterCommunication(IAdapterCommunicationCallback *callback);
-+ virtual ~CIMXCECAdapterCommunication(void);
-+
-+ /** @name IAdapterCommunication implementation */
-+ ///{
-+ bool Open(uint32_t iTimeoutMs = CEC_DEFAULT_CONNECT_TIMEOUT, bool bSkipChecks = false, bool bStartListening = true);
-+ void Close(void);
-+ bool IsOpen(void);
-+ std::string GetError(void) const;
-+ cec_adapter_message_state Write(const cec_command &data, bool &bRetry, uint8_t iLineTimeout, bool bIsReply);
-+
-+ bool SetLineTimeout(uint8_t UNUSED(iTimeout)) { return true; }
-+ bool StartBootloader(void) { return false; }
-+ bool SetLogicalAddresses(const cec_logical_addresses &addresses);
-+ cec_logical_addresses GetLogicalAddresses(void);
-+ bool PingAdapter(void) { return IsInitialised(); }
-+ uint16_t GetFirmwareVersion(void);
-+ uint32_t GetFirmwareBuildDate(void) { return 0; }
-+ bool IsRunningLatestFirmware(void) { return true; }
-+ bool PersistConfiguration(const libcec_configuration & UNUSED(configuration)) { return false; }
-+ bool GetConfiguration(libcec_configuration & UNUSED(configuration)) { return false; }
-+ std::string GetPortName(void) { return std::string("IMX"); }
-+ uint16_t GetPhysicalAddress(void);
-+ bool SetControlledMode(bool UNUSED(controlled)) { return true; }
-+ cec_vendor_id GetVendorId(void);
-+ bool SupportsSourceLogicalAddress(const cec_logical_address address) { return address > CECDEVICE_TV && address <= CECDEVICE_BROADCAST; }
-+ cec_adapter_type GetAdapterType(void) { return ADAPTERTYPE_IMX; }
-+ uint16_t GetAdapterVendorId(void) const { return IMX_ADAPTER_VID; }
-+ uint16_t GetAdapterProductId(void) const { return IMX_ADAPTER_PID; }
-+ void HandleLogicalAddressLost(cec_logical_address UNUSED(oldAddress));
-+ void SetActiveSource(bool UNUSED(bSetTo), bool UNUSED(bClientUnregistered)) {}
-+ bool RegisterLogicalAddress(const cec_logical_address address);
-+ ///}
-+
-+ /** @name PLATFORM::CThread implementation */
-+ ///{
-+ void *Process(void);
-+ ///}
-+
-+ private:
-+ bool IsInitialised(void) const { return m_bInitialised; };
-+ bool UnregisterLogicalAddress(void);
-+
-+ std::string m_strError; /**< current error message */
-+
-+ //cec_logical_addresses m_logicalAddresses;
-+ cec_logical_address m_logicalAddress;
-+
-+ PLATFORM::CMutex m_mutex;
-+ PLATFORM::CCDevSocket *m_dev; /**< the device connection */
-+ bool m_bLogicalAddressRegistered;
-+ bool m_bInitialised;
-+
-+ PLATFORM::CMutex m_messageMutex;
-+ uint32_t m_iNextMessage;
-+ std::map<uint32_t, CAdapterMessageQueueEntry *> m_messages;
-+ };
-+
-+};
-+
-+#endif
-diff --git a/src/libcec/adapter/IMX/IMXCECAdapterDetection.cpp b/src/libcec/adapter/IMX/IMXCECAdapterDetection.cpp
-new file mode 100644
-index 0000000..6c93c45
---- /dev/null
-+++ b/src/libcec/adapter/IMX/IMXCECAdapterDetection.cpp
-@@ -0,0 +1,42 @@
-+/*
-+ * This file is part of the libCEC(R) library.
-+ *
-+ * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved.
-+ * libCEC(R) is an original work, containing original code.
-+ *
-+ * libCEC(R) is a trademark of Pulse-Eight Limited.
-+ *
-+ * IMX adpater port is Copyright (C) 2013 by Stephan Rafin
-+ *
-+ * You can redistribute this file 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.
-+ *
-+ *
-+ */
-+
-+#include "env.h"
-+#include <stdio.h>
-+
-+#if defined(HAVE_IMX_API)
-+#include "IMXCECAdapterDetection.h"
-+
-+
-+using namespace CEC;
-+
-+bool CIMXCECAdapterDetection::FindAdapter(void)
-+{
-+ return access(CEC_IMX_PATH, 0) == 0;
-+}
-+
-+#endif
-diff --git a/src/libcec/adapter/IMX/IMXCECAdapterDetection.h b/src/libcec/adapter/IMX/IMXCECAdapterDetection.h
-new file mode 100644
-index 0000000..d54891d
---- /dev/null
-+++ b/src/libcec/adapter/IMX/IMXCECAdapterDetection.h
-@@ -0,0 +1,36 @@
-+#pragma once
-+/*
-+ * This file is part of the libCEC(R) library.
-+ *
-+ * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved.
-+ * libCEC(R) is an original work, containing original code.
-+ *
-+ * libCEC(R) is a trademark of Pulse-Eight Limited.
-+ *
-+ * IMX adpater port is Copyright (C) 2013 by Stephan Rafin
-+ *
-+ * You can redistribute this file 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.
-+ *
-+ *
-+ */
-+
-+namespace CEC
-+{
-+ class CIMXCECAdapterDetection
-+ {
-+ public:
-+ static bool FindAdapter(void);
-+ };
-+}
-diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
-index 828cdb2..8b47795 100644
---- a/src/libcec/cmake/CheckPlatformSupport.cmake
-+++ b/src/libcec/cmake/CheckPlatformSupport.cmake
-@@ -8,6 +8,7 @@
- # HAVE_RANDR 1 if xrandr is supported
- # HAVE_LIBUDEV 1 if udev is supported
- # HAVE_RPI_API 1 if Raspberry Pi is supported
-+# HAVE_IMX_API 1 if i.MX is supported
- # HAVE_TDA995X_API 1 if TDA995X is supported
- # HAVE_EXYNOS_API 1 if Exynos is supported
- # HAVE_P8_USB_DETECT 1 if Pulse-Eight devices can be auto-detected
-@@ -87,6 +88,15 @@ else()
- list(APPEND CEC_SOURCES ${CEC_SOURCES_ADAPTER_RPI})
- endif()
-
-+ # i.MX
-+ if (HAVE_IMX_API)
-+ set(LIB_INFO "${LIB_INFO}, 'IMX'")
-+ set(CEC_SOURCES_ADAPTER_IMX adapter/IMX/IMXCECAdapterDetection.cpp
-+ adapter/IMX/IMXCECAdapterCommunication.cpp)
-+ source_group("Source Files\\adapter\\IMX" FILES ${CEC_SOURCES_ADAPTER_IMX})
-+ list(APPEND CEC_SOURCES ${CEC_SOURCES_ADAPTER_IMX})
-+ endif()
-+
- # TDA995x
- check_include_files("tda998x_ioctl.h;comps/tmdlHdmiCEC/inc/tmdlHdmiCEC_Types.h" HAVE_TDA995X_API)
- if (HAVE_TDA995X_API)
-diff --git a/src/libcec/cmake/DisplayPlatformSupport.cmake b/src/libcec/cmake/DisplayPlatformSupport.cmake
-index feee111..0309c56 100644
---- a/src/libcec/cmake/DisplayPlatformSupport.cmake
-+++ b/src/libcec/cmake/DisplayPlatformSupport.cmake
-@@ -32,6 +32,12 @@ else()
- message(STATUS "Raspberry Pi support: no")
- endif()
-
-+if (HAVE_IMX_API)
-+ message(STATUS "i.MX support: yes")
-+else()
-+ message(STATUS "i.MX support: no")
-+endif()
-+
- if (HAVE_TDA995X_API)
- message(STATUS "TDA995x support: yes")
- else()
-diff --git a/src/libcec/env.h.in b/src/libcec/env.h.in
-index a1a1f26..f90e729 100644
---- a/src/libcec/env.h.in
-+++ b/src/libcec/env.h.in
-@@ -60,6 +60,9 @@
- /* Define to 1 for Raspberry Pi support */
- #cmakedefine HAVE_RPI_API @HAVE_RPI_API@
-
-+/* Define to 1 for IMX support */
-+#cmakedefine HAVE_IMX_API @HAVE_IMX_API@
-+
- /* Define to 1 for TDA995x support */
- #cmakedefine HAVE_TDA995X_API @HAVE_TDA995X_API@
-
---
-2.1.4
-
diff --git a/package/libcec/patches/patch-src_cec-client_CMakeLists_txt b/package/libcec/patches/patch-src_cec-client_CMakeLists_txt
deleted file mode 100644
index c6faee0ef..000000000
--- a/package/libcec/patches/patch-src_cec-client_CMakeLists_txt
+++ /dev/null
@@ -1,10 +0,0 @@
---- libcec-185559110dc88aeca0915a90b3b369d2d42c0f7c.orig/src/cec-client/CMakeLists.txt 2015-05-22 14:47:17.000000000 -0500
-+++ libcec-185559110dc88aeca0915a90b3b369d2d42c0f7c/src/cec-client/CMakeLists.txt 2015-05-22 15:02:00.606971031 -0500
-@@ -44,6 +44,7 @@ if (NOT WIN32)
- # curses
- if (HAVE_CURSES_API)
- target_link_libraries(cec-client curses)
-+ target_link_libraries(cec-client tinfo)
- endif()
-
- # rt
diff --git a/package/libconfig/Makefile b/package/libconfig/Makefile
new file mode 100644
index 000000000..4cb87e79f
--- /dev/null
+++ b/package/libconfig/Makefile
@@ -0,0 +1,27 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libconfig
+PKG_VERSION:= 1.7.2
+PKG_RELEASE:= 1
+PKG_HASH:= 7c3c7a9c73ff3302084386e96f903eb62ce06953bb1666235fac74363a16fad9
+PKG_DESCR:= configuration library
+PKG_SECTION:= libs/misc
+PKG_URL:= https://github.com/hyperrealm/libconfig
+PKG_SITES:= https://github.com/hyperrealm/libconfig/raw/master/docs/dist/
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBCONFIG,libconfig,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+libconfig-install:
+ $(INSTALL_DIR) $(IDIR_LIBCONFIG)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libconfig*.so* \
+ $(IDIR_LIBCONFIG)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libdisplay-info/Makefile b/package/libdisplay-info/Makefile
new file mode 100644
index 000000000..89ee541d8
--- /dev/null
+++ b/package/libdisplay-info/Makefile
@@ -0,0 +1,31 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libdisplay-info
+PKG_VERSION:= 0.1.1
+PKG_RELEASE:= 1
+PKG_HASH:= 0d8731588e9f82a9cac96324a3d7c82e2ba5b1b5e006143fefe692c74069fb60
+PKG_DESCR:= edid and displayid library
+PKG_SECTION:= libs/misc
+PKG_BUILDDEP:= hwdata
+PKG_SITES:= https://gitlab.freedesktop.org/emersion/libdisplay-info/-/releases/0.1.1/downloads/
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBDISPLAY_INFO,libdisplay-info,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+libdisplay-info-install:
+ $(INSTALL_DIR) $(IDIR_LIBDISPLAY_INFO)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libdisplay-info*.so* \
+ $(IDIR_LIBDISPLAY_INFO)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libdrm/Makefile b/package/libdrm/Makefile
index 9f7dd68d4..e5999416b 100644
--- a/package/libdrm/Makefile
+++ b/package/libdrm/Makefile
@@ -4,24 +4,27 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libdrm
-PKG_VERSION:= 2.4.86
+PKG_VERSION:= 2.4.120
PKG_RELEASE:= 1
-PKG_HASH:= 90fca042dd5c619fff2771ab634c69010f25c582071519aa284860758fac2963
+PKG_HASH:= 3bf55363f76c7250946441ab51d3a6cc0ae518055c0ff017324ab76cdefb327a
PKG_DESCR:= direct rendering manager library
PKG_SECTION:= libs/video
-PKG_BUILDDEP:= libpthread-stubs cairo libpciaccess
+PKG_BUILDDEP:= meson-host libpthread-stubs cairo libpciaccess
PKG_URL:= http://dri.freedesktop.org/wiki/
PKG_SITES:= http://dri.freedesktop.org/libdrm/
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LIBDRM,libdrm,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-CONFIGURE_ARGS+= --disable-manpages \
- --disable-valgrind
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+MESON_FLAGS+= -Dvalgrind=disabled
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
libdrm-install:
$(INSTALL_DIR) $(IDIR_LIBDRM)/usr/lib
diff --git a/package/libedit/Makefile b/package/libedit/Makefile
new file mode 100644
index 000000000..71c8e5dae
--- /dev/null
+++ b/package/libedit/Makefile
@@ -0,0 +1,26 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libedit
+PKG_VERSION:= 20230828-3.1
+PKG_RELEASE:= 1
+PKG_HASH:= 4ee8182b6e569290e7d1f44f0f78dac8716b35f656b76528f699c69c98814dad
+PKG_DESCR:= editline library
+PKG_SECTION:= libs/misc
+PKG_SITES:= https://www.thrysoee.dk/editline/
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBEDIT,libedit,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+libedit-install:
+ $(INSTALL_DIR) $(IDIR_LIBEDIT)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libedit*.so* \
+ $(IDIR_LIBEDIT)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libedit/patches/patch-src_sys_h b/package/libedit/patches/patch-src_sys_h
new file mode 100644
index 000000000..4ee74acb0
--- /dev/null
+++ b/package/libedit/patches/patch-src_sys_h
@@ -0,0 +1,11 @@
+--- libedit-20230828-3.1.orig/src/sys.h 2023-08-27 09:50:35.000000000 +0200
++++ libedit-20230828-3.1/src/sys.h 2023-12-19 16:51:25.734885959 +0100
+@@ -40,7 +40,7 @@
+ #ifndef _h_sys
+ #define _h_sys
+
+-#if defined(HAVE_SYS_TYPES_H) && defined(__sun)
++#if defined(HAVE_SYS_TYPES_H)
+ #include <sys/types.h>
+ #endif
+
diff --git a/package/libepoxy/Makefile b/package/libepoxy/Makefile
index 2d69a3aa4..fa224ad12 100644
--- a/package/libepoxy/Makefile
+++ b/package/libepoxy/Makefile
@@ -4,22 +4,26 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libepoxy
-PKG_VERSION:= 1.2
+PKG_VERSION:= 1.5.9
PKG_RELEASE:= 1
-PKG_HASH:= 42c328440f60a5795835c5ec4bdfc1329e75bba16b6e22b3a87ed17e9679e8f6
+PKG_HASH:= d168a19a6edfdd9977fef1308ccf516079856a4275cf876de688fb7927e365e4
PKG_DESCR:= opengl function pointer management
PKG_SECTION:= libs/misc
-PKG_BUILDDEP:= util-macros-host mesa
-PKG_SITES:= http://crux.nu/files/
+PKG_DEPENDS:= mesa
+PKG_BUILDDEP:= util-macros-host mesa meson-host
+PKG_SITES:= https://github.com/anholt/libepoxy/releases/download/$(PKG_VERSION)/
PKG_OPTS:= dev
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
-
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LIBEPOXY,libepoxy,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
-AUTOTOOL_STYLE:= autogen
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
libepoxy-install:
$(INSTALL_DIR) $(IDIR_LIBEPOXY)/usr/lib
diff --git a/package/libesmtp/Makefile b/package/libesmtp/Makefile
index 4b7474cd5..fdfb7bdad 100644
--- a/package/libesmtp/Makefile
+++ b/package/libesmtp/Makefile
@@ -4,40 +4,38 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libesmtp
-PKG_VERSION:= 1.0.6
-PKG_RELEASE:= 2
-PKG_HASH:= d0a61a5c52d99fa7ce7d00ed0a07e341dbda67101dbed1ab0cdae3f37db4eb0b
+PKG_VERSION:= 1.1.0
+PKG_RELEASE:= 1
+PKG_HASH:= 32bc3614ca12d21c7d933f32d43410e8744b6f91fdca7732da9877a385e4e6c3
PKG_DESCR:= implements the client side of the smtp protocol
PKG_SECTION:= libs/net
-PKG_URL:= http://www.stafford.uklinux.net/libesmtp/
-PKG_SITES:= http://www.stafford.uklinux.net/libesmtp/
+PKG_URL:= https://libesmtp.github.io/index.html
+PKG_SITES:= https://github.com/libesmtp/libESMTP/archive/refs/tags/
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
+DISTFILES:= v${PKG_VERSION}.tar.gz
+WRKDIST= $(WRKDIR)/libESMTP-$(PKG_VERSION)
-PKG_CHOICES_LIBESMTP:= WITH_LIBRESSL WITHOUT_SSL
-PKGCD_WITH_LIBRESSL:= use libressl for crypto
-PKGCB_WITH_LIBRESSL:= libressl
-PKGCS_WITH_LIBRESSL:= libressl
+PKG_CHOICES_LIBESMTP:= WITH_OPENSSL WITHOUT_SSL
+PKGCD_WITH_OPENSSL:= use openssl for crypto
+PKGCB_WITH_OPENSSL:= openssl
+PKGCS_WITH_OPENSSL:= libopenssl
PKGCD_WITHOUT_SSL:= use no ssl
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LIBESMTP,libesmtp,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-AUTOTOOL_STYLE:= autoreconf
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
-ifeq (${ADK_PACKAGE_LIBESMTP_WITH_LIBRESSL},y)
-CONFIGURE_ARGS+= --with-openssl
-endif
-ifeq (${ADK_PACKAGE_LIBESMTP_WITHOUT_SSL},y)
-CONFIGURE_ARGS+= --without-openssl
-endif
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
libesmtp-install:
- $(INSTALL_DIR) $(IDIR_LIBESMTP)/usr/lib/esmtp-plugins
+ $(INSTALL_DIR) $(IDIR_LIBESMTP)/usr/lib/esmtp-plugins-6.2.0
$(CP) $(WRKINST)/usr/lib/libesmtp.so* $(IDIR_LIBESMTP)/usr/lib/
- $(CP) $(WRKINST)/usr/lib/esmtp-plugins/*.so \
- $(IDIR_LIBESMTP)/usr/lib/esmtp-plugins/
+ $(CP) $(WRKINST)/usr/lib/esmtp-plugins-6.2.0/*.so \
+ $(IDIR_LIBESMTP)/usr/lib/esmtp-plugins-6.2.0/
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/libesmtp/patches/patch-Makefile_am b/package/libesmtp/patches/patch-Makefile_am
deleted file mode 100644
index f2f3d9dac..000000000
--- a/package/libesmtp/patches/patch-Makefile_am
+++ /dev/null
@@ -1,12 +0,0 @@
- prevent doubly passing our CFLAGS
---- libesmtp-1.0.6.orig/Makefile.am 2010-08-09 22:25:24.000000000 +0200
-+++ libesmtp-1.0.6/Makefile.am 2014-06-05 22:29:30.049704289 +0200
-@@ -4,7 +4,7 @@ AUTOMAKE_OPTIONS = gnu dist-bzip2
- INCLUDES = -I$(srcdir) $(VERSION_FLAGS)
- SUBDIRS = @subdirs@ @SASL_PLUGINS@
- DIST_SUBDIRS = @subdirs@ @DIST_PLUGINS@
--AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
-+AM_CFLAGS = @EXTRA_CFLAGS@
- ACLOCAL_AMFLAGS = -I m4
-
- lib_LTLIBRARIES = libesmtp.la
diff --git a/package/libesmtp/patches/patch-crammd5_Makefile_am b/package/libesmtp/patches/patch-crammd5_Makefile_am
deleted file mode 100644
index c640852b7..000000000
--- a/package/libesmtp/patches/patch-crammd5_Makefile_am
+++ /dev/null
@@ -1,12 +0,0 @@
- prevent doubly passing our CFLAGS
---- libesmtp-1.0.6.orig/crammd5/Makefile.am 2010-08-08 17:45:57.000000000 +0200
-+++ libesmtp-1.0.6/crammd5/Makefile.am 2014-06-05 22:29:43.615693205 +0200
-@@ -3,7 +3,7 @@
- libdir = @plugindir@
-
- INCLUDES = -I@srcdir@
--AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
-+AM_CFLAGS = @EXTRA_CFLAGS@
-
- lib_LTLIBRARIES = sasl-cram-md5.la
-
diff --git a/package/libesmtp/patches/patch-login_Makefile_am b/package/libesmtp/patches/patch-login_Makefile_am
deleted file mode 100644
index 4ba39571a..000000000
--- a/package/libesmtp/patches/patch-login_Makefile_am
+++ /dev/null
@@ -1,12 +0,0 @@
- prevent doubly passing our CFLAGS
---- libesmtp-1.0.6.orig/login/Makefile.am 2010-08-08 17:45:56.000000000 +0200
-+++ libesmtp-1.0.6/login/Makefile.am 2014-06-05 22:29:47.310690185 +0200
-@@ -5,7 +5,7 @@ libdir = @plugindir@
- INCLUDES = -I@srcdir@
-
- lib_LTLIBRARIES = sasl-login.la
--AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
-+AM_CFLAGS = @EXTRA_CFLAGS@
-
- sasl_login_la_SOURCES = client-login.c
- sasl_login_la_LDFLAGS = -module -avoid-version
diff --git a/package/libesmtp/patches/patch-meson_build b/package/libesmtp/patches/patch-meson_build
new file mode 100644
index 000000000..461311751
--- /dev/null
+++ b/package/libesmtp/patches/patch-meson_build
@@ -0,0 +1,42 @@
+--- libESMTP-1.1.0.orig/meson.build 2021-06-04 18:18:50.000000000 +0200
++++ libESMTP-1.1.0/meson.build 2024-02-24 14:07:23.535476167 +0100
+@@ -63,6 +63,7 @@ add_project_arguments(cc.get_supported_a
+ ################################################################################
+ dldep = cc.find_library('dl')
+ ssldep = dependency('openssl', version : '>=1.1.0', required : get_option('tls'))
++ntlmdep = dependency('openssl', version : '>=1.1.0', required : get_option('ntlm'))
+ threaddep = dependency('threads', required : get_option('pthreads'))
+
+ #XXX add test for libbind9.so
+@@ -71,6 +72,7 @@ lwresdep = cc.find_library('lwres', requ
+ deps = [
+ dldep,
+ ssldep,
++ ntlmdep,
+ threaddep,
+ lwresdep,
+ ]
+@@ -220,8 +222,13 @@ include_dir = include_directories('.')
+ subdir('login')
+ subdir('plain')
+ subdir('crammd5')
+-if ssldep.found()
+- subdir('ntlm')
++
++if ntlmdep.found()
++ if cc.has_header('openssl/md4.h') and cc.has_function('MD4_Init', dependencies : ntlmdep)
++ subdir('ntlm')
++ else
++ error('MD4 is not supported in current openssl, unable to build NTLM plugin')
++ endif
+ endif
+
+ ################################################################################
+@@ -247,4 +254,6 @@ summary({'current:revision:age': libesmt
+ 'STARTTLS': ssldep.found(),
+ 'CHUNKING': get_option('bdat'),
+ 'ETRN': get_option('etrn'),
+- 'XUSR': get_option('xusr')})
++ 'XUSR': get_option('xusr'),
++ 'NTLM': ntlmdep.found()})
++
diff --git a/package/libesmtp/patches/patch-meson_options_txt b/package/libesmtp/patches/patch-meson_options_txt
new file mode 100644
index 000000000..6f4e81431
--- /dev/null
+++ b/package/libesmtp/patches/patch-meson_options_txt
@@ -0,0 +1,7 @@
+--- libESMTP-1.1.0.orig/meson_options.txt 2021-06-04 18:18:50.000000000 +0200
++++ libESMTP-1.1.0/meson_options.txt 2024-02-24 13:55:42.283485679 +0100
+@@ -5,3 +5,4 @@ option('lwres', type : 'feature', value
+ option('bdat', type : 'boolean', value : 'true', description : 'enable SMTP BDAT extension')
+ option('etrn', type : 'boolean', value : 'true', description : 'enable SMTP ETRN extension')
+ option('xusr', type : 'boolean', value : 'true', description : 'enable sendmail XUSR extension')
++option('ntlm', type : 'feature', value : 'disabled', description : 'build with support for NTLM authentication')
diff --git a/package/libesmtp/patches/patch-ntlm_Makefile_am b/package/libesmtp/patches/patch-ntlm_Makefile_am
deleted file mode 100644
index 94928b0a3..000000000
--- a/package/libesmtp/patches/patch-ntlm_Makefile_am
+++ /dev/null
@@ -1,12 +0,0 @@
- prevent doubly passing our CFLAGS
---- libesmtp-1.0.6.orig/ntlm/Makefile.am 2010-08-08 17:45:56.000000000 +0200
-+++ libesmtp-1.0.6/ntlm/Makefile.am 2014-06-05 22:29:51.995686387 +0200
-@@ -3,7 +3,7 @@
- libdir = @plugindir@
-
- INCLUDES = -I@srcdir@
--AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
-+AM_CFLAGS = @EXTRA_CFLAGS@
-
- lib_LTLIBRARIES = sasl-ntlm.la
-
diff --git a/package/libesmtp/patches/patch-ntlm_meson_build b/package/libesmtp/patches/patch-ntlm_meson_build
new file mode 100644
index 000000000..72dbdaccf
--- /dev/null
+++ b/package/libesmtp/patches/patch-ntlm_meson_build
@@ -0,0 +1,11 @@
+--- libESMTP-1.1.0.orig/ntlm/meson.build 2021-06-04 18:18:50.000000000 +0200
++++ libESMTP-1.1.0/ntlm/meson.build 2024-02-24 14:03:10.243479603 +0100
+@@ -5,7 +5,7 @@ sasl_ntlm_sources = [
+ 'ntlmstruct.c',
+ ]
+
+-ntlm_deps = [ ssldep, ]
++ntlm_deps = [ ntlmdep, ]
+
+ sasl_ntlm = shared_module('ntlm', sasl_ntlm_sources,
+ name_prefix : 'sasl-',
diff --git a/package/libesmtp/patches/patch-plain_Makefile_am b/package/libesmtp/patches/patch-plain_Makefile_am
deleted file mode 100644
index a22054804..000000000
--- a/package/libesmtp/patches/patch-plain_Makefile_am
+++ /dev/null
@@ -1,12 +0,0 @@
- prevent doubly passing our CFLAGS
---- libesmtp-1.0.6.orig/plain/Makefile.am 2010-08-08 17:45:54.000000000 +0200
-+++ libesmtp-1.0.6/plain/Makefile.am 2014-06-05 22:29:56.668682572 +0200
-@@ -3,7 +3,7 @@
- libdir = @plugindir@
-
- INCLUDES = -I@srcdir@
--AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
-+AM_CFLAGS = @EXTRA_CFLAGS@
-
- lib_LTLIBRARIES = sasl-plain.la
-
diff --git a/package/libevdev/Makefile b/package/libevdev/Makefile
new file mode 100644
index 000000000..b78cca1b1
--- /dev/null
+++ b/package/libevdev/Makefile
@@ -0,0 +1,25 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libevdev
+PKG_VERSION:= 1.12.0
+PKG_RELEASE:= 1
+PKG_HASH:= 2f729e3480695791f9482e8388bd723402b89f0eaf118057bbdea3cecee9b237
+PKG_DESCR:= wrapper library for evdev devices
+PKG_SECTION:= libs/misc
+PKG_URL:= add project url
+PKG_SITES:= https://www.freedesktop.org/software/libevdev/
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBEVDEV,libevdev,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+libevdev-install:
+ $(INSTALL_DIR) $(IDIR_LIBEVDEV)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libevdev*.so* \
+ $(IDIR_LIBEVDEV)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libevent/Makefile b/package/libevent/Makefile
index bb3ae87d7..68094dd2f 100644
--- a/package/libevent/Makefile
+++ b/package/libevent/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libevent
-PKG_VERSION:= 2.0.22
+PKG_VERSION:= 2.1.12
PKG_RELEASE:= 1
-PKG_HASH:= 71c2c49f0adadacfdbe6332a372c38cf9c8b7895bb73dabeaa53cdcc1d4e1fa3
+PKG_HASH:= 92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb
PKG_DESCR:= event notification library for event-driven network servers
PKG_SECTION:= libs/net
PKG_URL:= http://libevent.org/
@@ -24,6 +24,8 @@ ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
MAKE_FLAGS+= LDFLAGS="$(TARGET_LDFLAGS) -all-static"
endif
+CONFIGURE_ARGS+= --disable-openssl
+
libevent-install:
$(INSTALL_DIR) $(IDIR_LIBEVENT)/usr/lib
$(CP) $(WRKINST)/usr/lib/libevent*.so* $(IDIR_LIBEVENT)/usr/lib
diff --git a/package/libfastjson/Makefile b/package/libfastjson/Makefile
index 071494ee9..8aa71db57 100644
--- a/package/libfastjson/Makefile
+++ b/package/libfastjson/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libfastjson
-PKG_VERSION:= 0.99.4
+PKG_VERSION:= 0.99.8
PKG_RELEASE:= 1
-PKG_HASH:= 03ef63dcc88417e71c19ce4436804159e3397e3a20d3529efef6a43c3bef5c8d
+PKG_HASH:= 7e49057b26a5a9e3c6623e024f95f9fd9a14b571b9150aeb89d6d475fc3633e3
PKG_DESCR:= another json library
PKG_SECTION:= libs/data
PKG_URL:= https://github.com/rsyslog/libfastjson
diff --git a/package/libffi/Makefile b/package/libffi/Makefile
index 8fe84fc58..80857706b 100644
--- a/package/libffi/Makefile
+++ b/package/libffi/Makefile
@@ -4,14 +4,14 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= libffi
-PKG_VERSION:= 3.2.1
+PKG_VERSION:= 3.4.4
PKG_RELEASE:= 1
-PKG_HASH:= d06ebb8e1d9a22d19e38d63fdb83954253f39bedc5d46232a05645685722ca37
+PKG_HASH:= d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676
PKG_DESCR:= foreign function interface library
PKG_SECTION:= libs/misc
HOST_BUILDDEP:= libtool-host
PKG_URL:= http://sourceware.org/libffi/
-PKG_SITES:= ftp://sourceware.org/pub/libffi/
+PKG_SITES:= https://github.com/libffi/libffi/releases/download/v${PKG_VERSION}/
PKG_OPTS:= dev
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
@@ -22,10 +22,9 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call HOST_template,LIBFFI,libffi,${PKG_VERSION}-${PKG_RELEASE}))
$(eval $(call PKG_template,LIBFFI,libffi,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-AUTOTOOL_STYLE:= autoreconf
HOST_STYLE:= auto
-HOST_CONFIGURE_ARGS+= --disable-builddir --with-pic
-CONFIGURE_ARGS+= --disable-builddir --with-pic
+HOST_CONFIGURE_ARGS+= --disable-builddir --with-pic --disable-symvers
+CONFIGURE_ARGS+= --disable-builddir --with-pic --disable-symvers
ifeq ($(ADK_PACKAGE_OPENJDK7),y)
CONFIGURE_ARGS+= --enable-static
diff --git a/package/libffi/patches/patch-include_Makefile_am b/package/libffi/patches/patch-include_Makefile_am
deleted file mode 100644
index 0ec4e125c..000000000
--- a/package/libffi/patches/patch-include_Makefile_am
+++ /dev/null
@@ -1,9 +0,0 @@
---- libffi-3.1.orig/include/Makefile.am 2014-04-25 19:45:13.000000000 +0200
-+++ libffi-3.1/include/Makefile.am 2014-06-12 15:22:08.000000000 +0200
-@@ -5,5 +5,5 @@ AUTOMAKE_OPTIONS=foreign
- DISTCLEANFILES=ffitarget.h
- EXTRA_DIST=ffi.h.in ffi_common.h
-
--includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
-+includesdir = $(prefix)/include
- nodist_includes_HEADERS = ffi.h ffitarget.h
diff --git a/package/libffi/patches/patch-libffi_pc_in b/package/libffi/patches/patch-libffi_pc_in
deleted file mode 100644
index 05980c7cc..000000000
--- a/package/libffi/patches/patch-libffi_pc_in
+++ /dev/null
@@ -1,16 +0,0 @@
---- libffi-3.1.orig/libffi.pc.in 2014-04-25 19:45:13.000000000 +0200
-+++ libffi-3.1/libffi.pc.in 2014-06-12 17:35:39.000000000 +0200
-@@ -1,11 +1,10 @@
- prefix=@prefix@
- exec_prefix=@exec_prefix@
- libdir=@libdir@
--toolexeclibdir=@toolexeclibdir@
--includedir=${libdir}/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
-+includedir=${prefix}/include
-
- Name: @PACKAGE_NAME@
- Description: Library supporting Foreign Function Interfaces
- Version: @PACKAGE_VERSION@
--Libs: -L${toolexeclibdir} -lffi
-+Libs: -lffi
- Cflags: -I${includedir}
diff --git a/package/libgc/Makefile b/package/libgc/Makefile
index 5971082e0..61d170970 100644
--- a/package/libgc/Makefile
+++ b/package/libgc/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libgc
-PKG_VERSION:= 7.4.0
-PKG_RELEASE:= 2
-PKG_HASH:= 61f8fc6991f8cb003a0d3c7d251c5b9a76093615ef793e0c588a4661e0b5e283
+PKG_VERSION:= 8.2.0
+PKG_RELEASE:= 1
+PKG_HASH:= 2540f7356cb74f6c5b75326c6d38a066edd796361fd7d4ed26e494d9856fed8f
PKG_DESCR:= garbage collector library
PKG_SECTION:= libs/misc
PKG_BUILDDEP:= libatomic_ops
diff --git a/package/libgc/patches/patch-os_dep_c b/package/libgc/patches/patch-os_dep_c
deleted file mode 100644
index 6a5e00f87..000000000
--- a/package/libgc/patches/patch-os_dep_c
+++ /dev/null
@@ -1,39 +0,0 @@
---- gc-7.4.0.orig/os_dep.c 2013-11-15 21:11:03.000000000 +0100
-+++ gc-7.4.0/os_dep.c 2014-04-10 07:14:09.000000000 +0200
-@@ -16,36 +16,6 @@
-
- #include "private/gc_priv.h"
-
--#if defined(LINUX) && !defined(POWERPC) && !defined(NO_SIGCONTEXT_H)
--# include <linux/version.h>
--# if (LINUX_VERSION_CODE <= 0x10400)
-- /* Ugly hack to get struct sigcontext_struct definition. Required */
-- /* for some early 1.3.X releases. Will hopefully go away soon. */
-- /* in some later Linux releases, asm/sigcontext.h may have to */
-- /* be included instead. */
--# define __KERNEL__
--# include <asm/signal.h>
--# undef __KERNEL__
--# else
-- /* Kernels prior to 2.1.1 defined struct sigcontext_struct instead of */
-- /* struct sigcontext. libc6 (glibc2) uses "struct sigcontext" in */
-- /* prototypes, so we have to include the top-level sigcontext.h to */
-- /* make sure the former gets defined to be the latter if appropriate. */
--# include <features.h>
--# if 2 <= __GLIBC__
--# if 2 == __GLIBC__ && 0 == __GLIBC_MINOR__
-- /* glibc 2.1 no longer has sigcontext.h. But signal.h */
-- /* has the right declaration for glibc 2.1. */
--# include <sigcontext.h>
--# endif /* 0 == __GLIBC_MINOR__ */
--# else /* __GLIBC__ < 2 */
-- /* libc5 doesn't have <sigcontext.h>: go directly with the kernel */
-- /* one. Check LINUX_VERSION_CODE to see which we should reference. */
--# include <asm/sigcontext.h>
--# endif /* __GLIBC__ < 2 */
--# endif
--#endif /* LINUX && !POWERPC */
--
- #if !defined(OS2) && !defined(PCR) && !defined(AMIGA) && !defined(MACOS) \
- && !defined(MSWINCE) && !defined(__CC_ARM)
- # include <sys/types.h>
diff --git a/package/libgcc/Makefile b/package/libgcc/Makefile
index e9ae22b86..b00bb59c5 100644
--- a/package/libgcc/Makefile
+++ b/package/libgcc/Makefile
@@ -34,7 +34,7 @@ endif
else
ifeq ($(ADK_TARGET_ARCH_AVR32),)
ifeq ($(ADK_TARGET_BINFMT_FLAT),)
- ${CP} ${STAGING_TARGET_DIR}/usr/lib/libgcc*.so* ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH)
+ -${CP} ${STAGING_TARGET_DIR}/usr/lib/libgcc*.so* ${IDIR_LIBGCC}/$(ADK_TARGET_LIBC_PATH)
endif
endif
endif
diff --git a/package/libgcrypt/Makefile b/package/libgcrypt/Makefile
index 7d9bd2de9..9ed07ce9c 100644
--- a/package/libgcrypt/Makefile
+++ b/package/libgcrypt/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libgcrypt
-PKG_VERSION:= 1.8.2
+PKG_VERSION:= 1.10.3
PKG_RELEASE:= 1
-PKG_HASH:= c8064cae7558144b13ef0eb87093412380efa16c4ee30ad12ecb54886a524c07
+PKG_HASH:= 8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa
PKG_DESCR:= crypto library
PKG_SECTION:= libs/crypto
PKG_DEPENDS:= libgpg-error
@@ -22,6 +22,7 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LIBGCRYPT,libgcrypt,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
CONFIGURE_ARGS+= --disable-asm \
+ --disable-doc \
--with-gpg-error-prefix="$(STAGING_TARGET_DIR)/usr"
libgcrypt-install:
diff --git a/package/libgpg-error/Makefile b/package/libgpg-error/Makefile
index 418efe7c5..c9d50ca65 100644
--- a/package/libgpg-error/Makefile
+++ b/package/libgpg-error/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= libgpg-error
-PKG_VERSION:= 1.28
+PKG_VERSION:= 1.47
PKG_RELEASE:= 1
-PKG_HASH:= 3edb957744905412f30de3e25da18682cbe509541e18cd3b8f9df695a075da49
+PKG_HASH:= 9e3c670966b96ecc746c28c2c419541e3bcb787d1a73930f5e5f5e1bcbbb9bdb
PKG_DESCR:= helper library for common error codes and descriptions
PKG_SECTION:= libs/misc
PKG_URL:= http://www.gnupg.org/
@@ -54,16 +54,24 @@ ifeq ($(ADK_TARGET_ARCH_SPARC64),y)
LIBGPG_PREFIX:= sparc64-unknown-linux-gnu
endif
ifeq ($(ADK_TARGET_ARCH_X86),y)
-LIBGPG_PREFIX:= i686-pc-linux-gnu
+LIBGPG_PREFIX:= i686-unknown-linux-gnu
endif
ifeq ($(ADK_TARGET_ARCH_X86_64),y)
-LIBGPG_PREFIX:= x86_64-pc-linux-gnu
+LIBGPG_PREFIX:= x86_64-unknown-linux-gnu
endif
+ifeq ($(ADK_TARGET_ARCH_XTENSA),y)
+LIBGPG_PREFIX:= xtensa-unknown-linux-gnu
+endif
+
+CONFIGURE_ARGS+= --disable-tests \
+ --disable-languages
post-extract:
- cd $(WRKSRC)/src/syscfg && \
+ cd $(WRKSRC)/src/syscfg && ( \
+ ln -s lock-obj-pub.$(LIBGPG_PREFIX).h \
+ lock-obj-pub.$(GNU_TARGET_NAME).h ; \
ln -s lock-obj-pub.$(LIBGPG_PREFIX).h \
- lock-obj-pub.$(GNU_TARGET_NAME).h
+ lock-obj-pub.$(ADK_TARGET_LINUXTYPE)-$(ADK_TARGET_SUFFIX).h )
libgpg-error-install:
${INSTALL_DIR} ${IDIR_LIBGPG_ERROR}/usr/lib
diff --git a/package/libgpg-error/patches/0001-core-Fix-regression-on-arm64-due-to-invalid-use-of-v.patch b/package/libgpg-error/patches/0001-core-Fix-regression-on-arm64-due-to-invalid-use-of-v.patch
deleted file mode 100644
index 3abf3ab49..000000000
--- a/package/libgpg-error/patches/0001-core-Fix-regression-on-arm64-due-to-invalid-use-of-v.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 791177de023574223eddf7288eb7c5a0721ac623 Mon Sep 17 00:00:00 2001
-From: Werner Koch <wk@gnupg.org>
-Date: Sun, 18 Mar 2018 17:39:43 +0100
-Subject: [PATCH] core: Fix regression on arm64 due to invalid use of va_list.
-
-* src/logging.c (_gpgrt_log_printhex): Provide a dummy arg instead of
-NULL.
---
-
-Fix
-Suggested-by: Jakub Wilk <jwilk@jwilk.net>
-
-Signed-off-by: Werner Koch <wk@gnupg.org>
----
- src/logging.c | 18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/src/logging.c b/src/logging.c
-index 1a4f620..d01f974 100644
---- a/src/logging.c
-+++ b/src/logging.c
-@@ -1090,9 +1090,10 @@ _gpgrt_log_flush (void)
-
-
- /* Print a hexdump of (BUFFER,LENGTH). With FMT passed as NULL print
-- * just the raw dump, with FMT being an empty string, print a trailing
-- * linefeed, otherwise print an entire debug line with the expanded
-- * FMT followed by a possible wrapped hexdump and a final LF. */
-+ * just the raw dump (in this case ARG_PTR is not used), with FMT
-+ * being an empty string, print a trailing linefeed, otherwise print
-+ * an entire debug line with the expanded FMT followed by a possible
-+ * wrapped hexdump and a final LF. */
- void
- _gpgrt_logv_printhex (const void *buffer, size_t length,
- const char *fmt, va_list arg_ptr)
-@@ -1150,7 +1151,16 @@ _gpgrt_log_printhex (const void *buffer, size_t length,
- va_end (arg_ptr);
- }
- else
-- _gpgrt_logv_printhex (buffer, length, NULL, NULL);
-+ {
-+ /* va_list is not necessary a pointer and thus we can't use NULL
-+ * because that would conflict with platforms using a straight
-+ * struct for it (e.g. arm64). We use a dummy variable instead;
-+ * the static is a simple way zero it out so to not get
-+ * complains about uninitialized use. */
-+ static va_list dummy_argptr;
-+
-+ _gpgrt_logv_printhex (buffer, length, NULL, dummy_argptr);
-+ }
- }
-
-
---
-2.16.2
-
diff --git a/package/libgpg-error/patches/patch-configure b/package/libgpg-error/patches/patch-configure
deleted file mode 100644
index ef5027984..000000000
--- a/package/libgpg-error/patches/patch-configure
+++ /dev/null
@@ -1,31 +0,0 @@
---- libgpg-error-1.12.orig/configure 2013-06-24 06:42:28.000000000 +0200
-+++ libgpg-error-1.12/configure 2015-11-08 11:40:16.360212436 +0100
-@@ -670,6 +670,7 @@ MSGFMT
- GETTEXT_MACRO_VERSION
- USE_NLS
- CC_FOR_BUILD
-+CFLAGS_FOR_BUILD
- RC
- OTOOL64
- OTOOL
-@@ -814,7 +815,8 @@ LDFLAGS
- LIBS
- CPPFLAGS
- CPP
--CC_FOR_BUILD'
-+CC_FOR_BUILD
-+CFLAGS_FOR_BUILD'
-
-
- # Initialize some variables set by options.
-@@ -12259,8 +12261,10 @@ CFLAGS=$lt_save_CFLAGS
- $as_echo_n "checking for cc for build... " >&6; }
- if test "$cross_compiling" = "yes"; then
- CC_FOR_BUILD="${CC_FOR_BUILD-cc}"
-+ CFLAGS_FOR_BUILD="${CFLAGS_FOR_BUILD}"
- else
- CC_FOR_BUILD="${CC_FOR_BUILD-$CC}"
-+ CFLAGS_FOR_BUILD="${CFLAGS_FOR_BUILD-$CFLAGS}"
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_FOR_BUILD" >&5
- $as_echo "$CC_FOR_BUILD" >&6; }
diff --git a/package/libgpg-error/src/src/syscfg/lock-obj-pub.xtensa-unknown-linux-gnu.h b/package/libgpg-error/src/src/syscfg/lock-obj-pub.xtensa-unknown-linux-gnu.h
new file mode 100644
index 000000000..60eadab8e
--- /dev/null
+++ b/package/libgpg-error/src/src/syscfg/lock-obj-pub.xtensa-unknown-linux-gnu.h
@@ -0,0 +1,24 @@
+## lock-obj-pub.or1k-unknown-linux-gnu.h
+## File created by gen-posix-lock-obj - DO NOT EDIT
+## To be included by mkheader into gpg-error.h
+
+typedef struct
+{
+ long _vers;
+ union {
+ volatile char _priv[32];
+ long _x_align;
+ long *_xp_align;
+ } u;
+} gpgrt_lock_t;
+
+#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0, \
+ 0,0,0,0,0,0,0,0}}}
+##
+## Local Variables:
+## mode: c
+## buffer-read-only: t
+## End:
+##
diff --git a/package/libgtk3/Makefile b/package/libgtk3/Makefile
index 3c62a8451..e0e087dd7 100644
--- a/package/libgtk3/Makefile
+++ b/package/libgtk3/Makefile
@@ -4,16 +4,19 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libgtk3
-PKG_VERSION:= 3.20.6
-PKG_EXTRAVER:= 3.20
+PKG_VERSION:= 3.24.31
+PKG_EXTRAVER:= 3.24
PKG_RELEASE:= 1
-PKG_HASH:= 3f8016563a96b1cfef4ac9e795647f6316deb2978ff939b19e4e4f8f936fa4b2
+PKG_HASH:= 423c3e7fdb4c459ee889e35fd4d71fd2623562541c1041b11c07e5ad1ff10bf9
PKG_DESCR:= multi-platform toolkit for creating graphical user interfaces
PKG_SECTION:= libs/misc
-PKG_DEPENDS:= glib cairo libxi libepoxy
+PKG_DEPENDS:= glib cairo libxi libepoxy pango at-spi2-core
+PKG_DEPENDS+= at-spi2-atk libxext libxrender libx11
+PKG_DEPENDS+= libxcomposite libxdamage fribidi
PKG_BUILDDEP:= cairo atk pango libXext renderproto libXrender
PKG_BUILDDEP+= gdk-pixbuf libXcomposite libXdamage libX11 libXi
PKG_BUILDDEP+= at-spi2-core at-spi2-atk gdk-pixbuf-host libepoxy
+PKG_BUILDDEP+= fribidi
PKG_NEEDS:= c++
PKG_URL:= http://www.gtk.org/
PKG_SITES:= $(MASTER_SITE_GNOME:=gtk+/$(PKG_EXTRAVER)/)
@@ -33,6 +36,7 @@ $(eval $(call PKG_template,LIBGTK3,libgtk3,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_D
HOST_CFLAGS+= -I$(STAGING_HOST_DIR)/usr/include/glib-2.0 -I$(STAGING_HOST_DIR)/usr/include/gdk-pixbuf-2.0
HOST_LDFLAGS+= -lgobject-2.0 -lgmodule-2.0 -pthread -lrt -lglib-2.0 -lgdk_pixbuf-2.0
+CONFIGURE_ENV+= GLIB_COMPILE_RESOURCES=$(STAGING_HOST_DIR)/usr/bin/glib-compile-resources
CONFIGURE_ARGS+= --disable-gtk-doc-html \
--disable-gtk-doc \
--disable-modules \
diff --git a/package/libinih/Makefile b/package/libinih/Makefile
new file mode 100644
index 000000000..d546f244a
--- /dev/null
+++ b/package/libinih/Makefile
@@ -0,0 +1,36 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libinih
+PKG_VERSION:= r58
+PKG_RELEASE:= 1
+PKG_HASH:= e79216260d5dffe809bda840be48ab0eec7737b2bb9f02d2275c1b46344ea7b7
+PKG_DESCR:= ini parser library
+PKG_SECTION:= libs/misc
+PKG_BUILDDEP:= meson-host
+PKG_URL:= https://github.com/benhoyt/inih
+PKG_SITES:= https://github.com/benhoyt/inih/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_VERSION).tar.gz
+
+WRKDIST= ${WRKDIR}/inih-${PKG_VERSION}
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBINIH,libinih,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+libinih-install:
+ $(INSTALL_DIR) $(IDIR_LIBINIH)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libinih*.so* \
+ $(IDIR_LIBINIH)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libinput/Makefile b/package/libinput/Makefile
new file mode 100644
index 000000000..8c0c6a759
--- /dev/null
+++ b/package/libinput/Makefile
@@ -0,0 +1,39 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libinput
+PKG_VERSION:= 1.19.2
+PKG_RELEASE:= 1
+PKG_HASH:= 0fc39f0af3ee1a77c60c34bc45391a4d0879169f7c0f7bbbeb5eef590b98b883
+PKG_DESCR:= input library
+PKG_DEPENDS:= mtdev libevdev libudev
+PKG_BUILDDEP:= mtdev libevdev eudev
+PKG_SECTION:= libs/misc
+PKG_SITES:= https://www.freedesktop.org/software/libinput/
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBINPUT,libinput,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+MESON_FLAGS+= -Dlibwacom=false \
+ -Dtests=false \
+ -Ddebug-gui=false
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+libinput-install:
+ $(INSTALL_DIR) $(IDIR_LIBINPUT)/usr/share/libinput
+ $(CP) $(WRKINST)/usr/share/libinput/* \
+ $(IDIR_LIBINPUT)/usr/share/libinput/
+ $(INSTALL_DIR) $(IDIR_LIBINPUT)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libinput*.so* \
+ $(IDIR_LIBINPUT)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libjansson/Makefile b/package/libjansson/Makefile
index e75c8b199..c26b28812 100644
--- a/package/libjansson/Makefile
+++ b/package/libjansson/Makefile
@@ -4,16 +4,16 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libjansson
-PKG_VERSION:= 2.5
+PKG_VERSION:= 2.14
PKG_RELEASE:= 1
-PKG_HASH:= dd8bbfb38ad5031ce88e066b14d3b7e9c7113243daa7f4cde1994b7fc90bb1b1
+PKG_HASH:= fba956f27c6ae56ce6dfd52fbf9d20254aad42821f74fa52f83957625294afb9
PKG_DESCR:= json library
PKG_SECTION:= libs/data
PKG_URL:= http://www.digip.org/jansson/
-PKG_SITES:= http://www.digip.org/jansson/releases/
+PKG_SITES:= https://github.com/akheron/jansson/releases/download/v$(PKG_VERSION)/
PKG_OPTS:= dev
-DISTFILES:= jansson-${PKG_VERSION}.tar.gz
+DISTFILES:= jansson-${PKG_VERSION}.tar.bz2
WRKDIST= ${WRKDIR}/jansson-${PKG_VERSION}
include $(ADK_TOPDIR)/mk/package.mk
diff --git a/package/libksba/Makefile b/package/libksba/Makefile
index c2c474bdc..1d0565068 100644
--- a/package/libksba/Makefile
+++ b/package/libksba/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libksba
-PKG_VERSION:= 1.3.5
+PKG_VERSION:= 1.6.5
PKG_RELEASE:= 1
-PKG_HASH:= 41444fd7a6ff73a79ad9728f985e71c9ba8cd3e5e53358e70d5f066d35c1a340
+PKG_HASH:= a564628c574c99287998753f98d750babd91a4e9db451f46ad140466ef2a6d16
PKG_DESCR:= working with X.509 certificates
PKG_SECTION:= libs/crypto
PKG_DEPENDS:= libgpg-error
diff --git a/package/libmd/Makefile b/package/libmd/Makefile
new file mode 100644
index 000000000..f95b7bf0e
--- /dev/null
+++ b/package/libmd/Makefile
@@ -0,0 +1,25 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libmd
+PKG_VERSION:= 1.1.0
+PKG_RELEASE:= 1
+PKG_HASH:= 1bd6aa42275313af3141c7cf2e5b964e8b1fd488025caf2f971f43b00776b332
+PKG_DESCR:= message digest implementations
+PKG_SECTION:= libs/misc
+PKG_URL:= https://www.hadrons.org/software/libmd/
+PKG_SITES:= https://archive.hadrons.org/software/libmd/
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBMD,libmd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+libmd-install:
+ $(INSTALL_DIR) $(IDIR_LIBMD)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libmd*.so* \
+ $(IDIR_LIBMD)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libmicrohttpd/Makefile b/package/libmicrohttpd/Makefile
index 6b9590553..f8621deaa 100644
--- a/package/libmicrohttpd/Makefile
+++ b/package/libmicrohttpd/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libmicrohttpd
-PKG_VERSION:= 0.9.52
+PKG_VERSION:= 1.0.0
PKG_RELEASE:= 1
-PKG_HASH:= 54797f6e763d417627f89f60e4ae0a431dab0523f92f83def23ea02d0defafea
+PKG_HASH:= a02792d3cd1520e2ecfed9df642079d44a36ed87167442b28d7ed19e906e3e96
PKG_DESCR:= library make it easy to run an webserver
PKG_SECTION:= libs/net
PKG_URL:= http://www.gnu.org/software/libmicrohttpd/
@@ -19,6 +19,8 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LIBMICROHTTPD,libmicrohttpd,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
+CONFIGURE_ARGS+= --disable-https
+
libmicrohttpd-install:
$(INSTALL_DIR) $(IDIR_LIBMICROHTTPD)/usr/lib
$(CP) $(WRKINST)/usr/lib/libmicrohttpd*.so* \
diff --git a/package/libmodbus/Makefile b/package/libmodbus/Makefile
new file mode 100644
index 000000000..ee8e82b55
--- /dev/null
+++ b/package/libmodbus/Makefile
@@ -0,0 +1,27 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libmodbus
+PKG_VERSION:= 3.1.6
+PKG_RELEASE:= 1
+PKG_HASH:= d7d9fa94a16edb094e5fdf5d87ae17a0dc3f3e3d687fead81835d9572cf87c16
+PKG_DESCR:= MODBUS protocol library
+PKG_SECTION:= libs/net
+PKG_URL:= http://libmodbus.org
+PKG_SITES:= https://libmodbus.org/releases/
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBMODBUS,libmodbus,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIGURE_ARGS+= --without-documentation --disable-tests
+
+libmodbus-install:
+ $(INSTALL_DIR) $(IDIR_LIBMODBUS)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libmodbus*.so* \
+ $(IDIR_LIBMODBUS)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libmpdclient/Makefile b/package/libmpdclient/Makefile
index 2d9f31c75..e8a456c50 100644
--- a/package/libmpdclient/Makefile
+++ b/package/libmpdclient/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libmpdclient
-PKG_VERSION:= 2.13
+PKG_VERSION:= 2.22
PKG_RELEASE:= 1
-PKG_HASH:= 5115bd52bc20a707c1ecc7587e6389c17305348e2132a66cf767c62fc55ed45d
+PKG_HASH:= eac15b82b5ba5ed0648af580221eb74657394f7fe768e966d9e9ebb27435429f
PKG_DESCR:= library for interfacing music player daemon
PKG_SECTION:= libs/audio
PKG_BUILDDEP:= meson-host
diff --git a/package/libmpdclient/patches/patch-src_socket_c b/package/libmpdclient/patches/patch-src_socket_c
deleted file mode 100644
index 5417eccd7..000000000
--- a/package/libmpdclient/patches/patch-src_socket_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- libmpdclient-2.8.orig/src/socket.c 2010-01-01 15:17:56.000000000 +0100
-+++ libmpdclient-2.8/src/socket.c 2013-09-18 11:03:04.000000000 +0200
-@@ -35,6 +35,7 @@
- #include <stdlib.h>
- #include <stdio.h>
- #include <fcntl.h>
-+#include <sys/select.h>
- #include <unistd.h>
-
- #ifdef WIN32
diff --git a/package/libmpdclient/patches/patch-src_sync_c b/package/libmpdclient/patches/patch-src_sync_c
deleted file mode 100644
index b9c5ec10d..000000000
--- a/package/libmpdclient/patches/patch-src_sync_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- libmpdclient-2.8.orig/src/sync.c 2010-01-01 15:17:56.000000000 +0100
-+++ libmpdclient-2.8/src/sync.c 2013-09-18 11:04:49.000000000 +0200
-@@ -34,6 +34,8 @@
- #include <stdlib.h>
- #include <stdio.h>
- #include <fcntl.h>
-+#include <time.h>
-+#include <sys/select.h>
- #include <unistd.h>
-
- static bool
diff --git a/package/libmspack/Makefile b/package/libmspack/Makefile
new file mode 100644
index 000000000..b877fb16a
--- /dev/null
+++ b/package/libmspack/Makefile
@@ -0,0 +1,26 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libmspack
+PKG_VERSION:= 0.10.1alpha
+PKG_RELEASE:= 1
+PKG_HASH:= bac862dee6e0fc10d92c70212441d9f8ad9b0222edc9a708c3ead4adb1b24a8e
+PKG_DESCR:= cab extractor
+PKG_SECTION:= libs/misc
+PKG_SITES:= https://www.cabextract.org.uk/libmspack/
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBMSPACK,libmspack,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+libmspack-install:
+ $(INSTALL_DIR) $(IDIR_LIBMSPACK)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libmspack*.so* \
+ $(IDIR_LIBMSPACK)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libnettle/Makefile b/package/libnettle/Makefile
index e3527e0e3..c9d3f38e1 100644
--- a/package/libnettle/Makefile
+++ b/package/libnettle/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libnettle
-PKG_VERSION:= 3.3
+PKG_VERSION:= 3.9.1
PKG_RELEASE:= 1
-PKG_HASH:= 46942627d5d0ca11720fec18d81fc38f7ef837ea4197c1f630e71ce0d470b11e
+PKG_HASH:= ccfeff981b0ca71bbd6fbcb054f407c60ffb644389a5be80d6716d5b550c6ce3
PKG_DESCR:= crypto library
PKG_SECTION:= libs/crypto
PKG_DEPENDS:= libgmp
diff --git a/package/libnl/patches/patch-autogen_sh b/package/libnl/patches/patch-autogen_sh
new file mode 100644
index 000000000..2888ae770
--- /dev/null
+++ b/package/libnl/patches/patch-autogen_sh
@@ -0,0 +1,7 @@
+--- libnl-libnl3_2_29.orig/autogen.sh Fri Dec 30 15:57:01 2016
++++ libnl-libnl3_2_29/autogen.sh Sat Jan 13 10:02:41 2024
+@@ -12,4 +12,3 @@ cd "$BASEDIR" || die "Could not change into base direc
+ autoreconf -fi || die "Error during autoreconf"
+ rm -Rf autom4te.cache;
+
+-doc/autogen.sh || die "Error during doc/autogen.sh"
diff --git a/package/libnl/patches/patch-lib_utils_c b/package/libnl/patches/patch-lib_utils_c
index 3e14d4739..3d75f7487 100644
--- a/package/libnl/patches/patch-lib_utils_c
+++ b/package/libnl/patches/patch-lib_utils_c
@@ -1,5 +1,5 @@
---- libnl-libnl3_2_29.orig/lib/utils.c 2016-12-30 15:57:01.000000000 +0100
-+++ libnl-libnl3_2_29/lib/utils.c 2017-04-26 20:09:18.137933191 +0200
+--- libnl-libnl3_2_29.orig/lib/utils.c Fri Dec 30 15:57:01 2016
++++ libnl-libnl3_2_29/lib/utils.c Sat Jan 13 09:58:56 2024
@@ -30,7 +30,9 @@
#include <netlink/utils.h>
#include <linux/socket.h>
@@ -10,7 +10,7 @@
/**
* Global variable indicating the desired level of debugging output.
-@@ -123,9 +125,10 @@ int __nl_read_num_str_file(const char *p
+@@ -123,9 +125,10 @@ int __nl_read_num_str_file(const char *path, int (*cb)
const char *nl_strerror_l(int err)
{
diff --git a/package/libnl/patches/patch-src_lib_utils_c b/package/libnl/patches/patch-src_lib_utils_c
index 6d75c3acf..60117cbdc 100644
--- a/package/libnl/patches/patch-src_lib_utils_c
+++ b/package/libnl/patches/patch-src_lib_utils_c
@@ -1,6 +1,6 @@
---- libnl-libnl3_2_29.orig/src/lib/utils.c 2016-12-30 15:57:01.000000000 +0100
-+++ libnl-libnl3_2_29/src/lib/utils.c 2017-04-26 20:09:18.149933980 +0200
-@@ -81,6 +81,7 @@ void nl_cli_fatal(int err, const char *f
+--- libnl-libnl3_2_29.orig/src/lib/utils.c Fri Dec 30 15:57:01 2016
++++ libnl-libnl3_2_29/src/lib/utils.c Sat Jan 13 09:58:56 2024
+@@ -81,6 +81,7 @@ void nl_cli_fatal(int err, const char *fmt, ...)
fprintf(stderr, "\n");
} else {
char *buf;
@@ -8,7 +8,7 @@
locale_t loc = newlocale(LC_MESSAGES_MASK, "", (locale_t)0);
if (loc == (locale_t)0) {
if (errno == ENOENT)
-@@ -91,9 +92,14 @@ void nl_cli_fatal(int err, const char *f
+@@ -91,9 +92,14 @@ void nl_cli_fatal(int err, const char *fmt, ...)
}
if (loc != (locale_t)0)
buf = strerror_l(err, loc);
diff --git a/package/libowfat/Makefile b/package/libowfat/Makefile
index c3ac0c0e9..5939a63aa 100644
--- a/package/libowfat/Makefile
+++ b/package/libowfat/Makefile
@@ -4,13 +4,15 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= libowfat
-PKG_VERSION:= 0.30
+PKG_VERSION:= 0.33
PKG_RELEASE:= 1
-PKG_HASH:= db4a3a853cfbb9e83b27f565b580f6fdc519475b162edc1a656043e1c126e993
+PKG_HASH:= 311ec8b3f4b72bb442e323fb013a98f956fa745547f2bc9456287b20d027cd7d
PKG_DESCR:= owfat library
PKG_SECTION:= libs/misc
-PKG_URL:= http://www.fefe.de/libowfat
-PKG_SITES:= http://www.fefe.de/libowfat/
+PKG_URL:= https://www.fefe.de/libowfat
+PKG_SITES:= https://www.fefe.de/libowfat/
+
+PKG_NOPARALLEL:= 1
include ${ADK_TOPDIR}/mk/package.mk
@@ -18,9 +20,8 @@ CONFIG_STYLE:= manual
TARGET_CFLAGS+= ${TARGET_CPPFLAGS}
MAKE_FILE= GNUmakefile
-MAKE_FLAGS+= DIET= CC='${TARGET_CC}' CROSS=${TARGET_CROSS} \
+MAKE_FLAGS+= DIET= CROSS=${TARGET_CROSS} \
LDFLAGS='${TARGET_LDFLAGS}'
-FAKE_FLAGS+= prefix='${WRKINST}/usr' \
- INCLUDEDIR='${WRKINST}/usr/include/owfat'
+FAKE_FLAGS+= prefix='/usr'
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/libowfat/patches/patch-GNUmakefile b/package/libowfat/patches/patch-GNUmakefile
index fbe2b0a3b..4338cf8da 100644
--- a/package/libowfat/patches/patch-GNUmakefile
+++ b/package/libowfat/patches/patch-GNUmakefile
@@ -1,11 +1,25 @@
---- libowfat-0.30.orig/GNUmakefile 2015-04-10 22:54:57.000000000 +0200
-+++ libowfat-0.30/GNUmakefile 2015-06-05 16:06:19.000000000 +0200
-@@ -18,7 +18,7 @@ all: ent $(LIBS) libowfat.a libsocket t
+--- libowfat-0.33.orig/GNUmakefile 2021-04-24 12:47:51.000000000 +0200
++++ libowfat-0.33/GNUmakefile 2024-02-23 05:07:36.527866006 +0100
+@@ -23,9 +23,9 @@ picx32 piex32:
+
CROSS=
#CROSS=i686-mingw-
- CC=$(CROSS)gcc
--CFLAGS=-pipe -W -Wall -Wextra -O2 -fomit-frame-pointer
+-CC?=gcc
+-AR?=ar
+-RANLIB?=ranlib
++CC=gcc
++AR=ar
++RANLIB=ranlib
+ CCC=$(CROSS)$(CC)
+ WERROR=
+ WARN=-W -Wall -Wextra $(WERROR)
+@@ -41,7 +41,8 @@ OPT_PLUS=-O3 $(NATIVE)
+
+ DEFINE=-D_REENTRANT
+
+-CFLAGS=-pipe $(WARN) $(DEFINE) $(OPT_REG)
+CFLAGS?=
- #CFLAGS=-pipe -Os -march=pentiumpro -mcpu=pentiumpro -fomit-frame-pointer -fschedule-insns2 -Wall
++CFLAGS+=-pipe $(WARN) $(DEFINE) $(OPT_REG)
+ CFLAGS_OPT=-pipe $(WARN) $(DEFINE) $(OPT_PLUS)
- ent: ent.c haveuint128.h
+ #CFLAGS=-pipe -Os -march=pentiumpro -mcpu=pentiumpro -fomit-frame-pointer -fschedule-insns2 -Wall
diff --git a/package/libp11/Makefile b/package/libp11/Makefile
index 19681c0ba..1a6c3ddb0 100644
--- a/package/libp11/Makefile
+++ b/package/libp11/Makefile
@@ -4,15 +4,15 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= libp11
-PKG_VERSION:= 0.2.8
+PKG_VERSION:= 0.4.12
PKG_RELEASE:= 1
-PKG_HASH:= a4121015503ade98074b5e2a2517fc8a139f8b28aed10021db2bb77283f40691
+PKG_HASH:= 1e1a2533b3fcc45fde4da64c9c00261b1047f14c3f911377ebd1b147b3321cfd
PKG_DESCR:= library implementing a small layer on top of pkcs11 api
PKG_SECTION:= libs/crypto
-PKG_DEPENDS:= libltdl libressl
-PKG_BUILDDEP:= libtool libressl
+PKG_DEPENDS:= libltdl libopenssl
+PKG_BUILDDEP:= libtool openssl
PKG_URL:= https://github.com/OpenSC/libp11/wiki
-PKG_SITES:= http://sourceforge.net/projects/opensc/files/libp11/
+PKG_SITES:= https://github.com/OpenSC/libp11/releases/download/$(PKG_NAME)-$(PKG_VERSION)/
PKG_OPTS:= dev
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
diff --git a/package/libp11/patches/patch-ltmain_sh b/package/libp11/patches/patch-ltmain_sh
deleted file mode 100644
index 409b69508..000000000
--- a/package/libp11/patches/patch-ltmain_sh
+++ /dev/null
@@ -1,11 +0,0 @@
---- libp11-0.2.7.orig/ltmain.sh 2009-10-20 14:38:20.000000000 +0200
-+++ libp11-0.2.7/ltmain.sh 2011-01-15 22:58:43.000000000 +0100
-@@ -4765,7 +4765,7 @@ func_mode_link ()
- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
- # @file GCC response files
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
-+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-fstack-protector*|-flto)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
diff --git a/package/libpcap/Makefile b/package/libpcap/Makefile
index c5b023df1..efc9440da 100644
--- a/package/libpcap/Makefile
+++ b/package/libpcap/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libpcap
-PKG_VERSION:= 1.8.1
+PKG_VERSION:= 1.10.4
PKG_RELEASE:= 1
-PKG_HASH:= 673dbc69fdc3f5a86fb5759ab19899039a8e5e6c631749e48dcd9c6f0c83541e
+PKG_HASH:= ed19a0383fad72e3ad435fd239d7cd80d64916b87269550159d20e47160ebe5f
PKG_DESCR:= low-level packet capture library
PKG_SECTION:= libs/net
PKG_URL:= http://www.tcpdump.org/
diff --git a/package/libpcap/patches/patch-Makefile_in b/package/libpcap/patches/patch-Makefile_in
deleted file mode 100644
index 203dd3c6e..000000000
--- a/package/libpcap/patches/patch-Makefile_in
+++ /dev/null
@@ -1,14 +0,0 @@
- Use $(sort) here, which implicitly removes duplicates.
- Otherwise our CFLAGS are passed in via CCOPT and CFLAGS leading
- to duplicate -fhonour-copts passing.
---- libpcap-1.8.0.orig/Makefile.in 2016-07-30 15:42:44.000000000 +0200
-+++ libpcap-1.8.0/Makefile.in 2016-08-05 02:22:41.124794216 +0200
-@@ -62,7 +62,7 @@ DEPENDENCY_CFLAG = @DEPENDENCY_CFLAG@
- PROG=libpcap
-
- # Standard CFLAGS
--FULL_CFLAGS = $(CCOPT) $(INCLS) $(DEFS) $(CFLAGS)
-+FULL_CFLAGS = $(sort $(CCOPT) $(INCLS) $(DEFS) $(CFLAGS))
-
- INSTALL = @INSTALL@
- INSTALL_PROGRAM = @INSTALL_PROGRAM@
diff --git a/package/libpcap/patches/patch-gencode_c b/package/libpcap/patches/patch-gencode_c
deleted file mode 100644
index 63378e414..000000000
--- a/package/libpcap/patches/patch-gencode_c
+++ /dev/null
@@ -1,40 +0,0 @@
---- libpcap-1.8.0.orig/gencode.c 2016-07-30 15:42:44.000000000 +0200
-+++ libpcap-1.8.0/gencode.c 2016-08-05 02:35:50.655555060 +0200
-@@ -523,7 +523,7 @@ static struct block *gen_host6(compiler_
- struct in6_addr *, int, int, int);
- #endif
- #ifndef INET6
--static struct block *gen_gateway(const u_char *, bpf_u_int32 **, int, int);
-+static struct block *gen_gateway(compiler_state_t *, const u_char *, bpf_u_int32 **, int, int);
- #endif
- static struct block *gen_ipfrag(compiler_state_t *);
- static struct block *gen_portatom(compiler_state_t *, int, bpf_int32);
-@@ -690,7 +690,9 @@ pcap_compile(pcap_t *p, struct bpf_progr
- }
- initchunks(&cstate);
- cstate.no_optimize = 0;
-+#ifdef INET6
- cstate.ai = NULL;
-+#endif
- cstate.ic.root = NULL;
- cstate.ic.cur_mark = 0;
- cstate.bpf_pcap = p;
-@@ -4846,7 +4848,8 @@ gen_host6(compiler_state_t *cstate, stru
-
- #ifndef INET6
- static struct block *
--gen_gateway(eaddr, alist, proto, dir)
-+gen_gateway(cstate, eaddr, alist, proto, dir)
-+ compiler_state_t *cstate;
- const u_char *eaddr;
- bpf_u_int32 **alist;
- int proto;
-@@ -6414,7 +6417,7 @@ gen_scode(compiler_state_t *cstate, cons
- alist = pcap_nametoaddr(name);
- if (alist == NULL || *alist == NULL)
- bpf_error(cstate, "unknown host '%s'", name);
-- b = gen_gateway(eaddr, alist, proto, dir);
-+ b = gen_gateway(cstate, eaddr, alist, proto, dir);
- free(eaddr);
- return b;
- #else
diff --git a/package/libpcap/patches/patch-pcap-config_in b/package/libpcap/patches/patch-pcap-config_in
deleted file mode 100644
index 2a73106a4..000000000
--- a/package/libpcap/patches/patch-pcap-config_in
+++ /dev/null
@@ -1,27 +0,0 @@
---- libpcap-1.2.1.orig/pcap-config.in 2011-03-28 22:37:56.000000000 +0200
-+++ libpcap-1.2.1/pcap-config.in 2012-03-24 11:15:47.343023269 +0100
-@@ -36,16 +36,6 @@ do
- esac
- shift
- done
--if [ "$V_RPATH_OPT" != "" ]
--then
-- #
-- # If libdir isn't /usr/lib, add it to the run-time linker path.
-- #
-- if [ "$libdir" != "/usr/lib" ]
-- then
-- RPATH=$V_RPATH_OPT$libdir
-- fi
--fi
- if [ "$static" = 1 ]
- then
- #
-@@ -84,6 +74,6 @@ else
- echo "-I$includedir"
- elif [ "$show_libs" = 1 ]
- then
-- echo "-L$libdir $RPATH -lpcap"
-+ echo "-L$libdir -lpcap"
- fi
- fi
diff --git a/package/libpciaccess/Makefile b/package/libpciaccess/Makefile
index 13abcdbeb..89e388cd4 100644
--- a/package/libpciaccess/Makefile
+++ b/package/libpciaccess/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libpciaccess
-PKG_VERSION:= 0.13.4
+PKG_VERSION:= 0.16
PKG_RELEASE:= 1
-PKG_HASH:= 74d92bda448e6fdb64fee4e0091255f48d625d07146a121653022ed3a0ca1f2f
+PKG_HASH:= 84413553994aef0070cf420050aa5c0a51b1956b404920e21b81e96db6a61a27
PKG_DESCR:= pci access library
PKG_SECTION:= x11/libs
PKG_SITES:= http://www.x.org/releases/individual/lib/
diff --git a/package/libptytty/Makefile b/package/libptytty/Makefile
new file mode 100644
index 000000000..cb1126ce1
--- /dev/null
+++ b/package/libptytty/Makefile
@@ -0,0 +1,32 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libptytty
+PKG_VERSION:= 2.0
+PKG_RELEASE:= 1
+PKG_HASH:= 8033ed3aadf28759660d4f11f2d7b030acf2a6890cb0f7926fb0cfa6739d31f7
+PKG_DESCR:= pty library
+PKG_SECTION:= libs/misc
+PKG_SITES:= http://dist.schmorp.de/libptytty/
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBPTYTTY,libptytty,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+TARGET_CFLAGS+= -lstdc++
+CONFIG_STYLE:= cmake
+CMAKE_FLAGS+= -DTTY_GID_SUPPORT_EXITCODE=0 \
+ -DTTY_GID_SUPPORT_EXITCODE__TRYRUN_OUTPUT=0
+XAKE_FLAGS+= VERBOSE=1
+
+libptytty-install:
+ $(INSTALL_DIR) $(IDIR_LIBPTYTTY)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libptytty*.so* \
+ $(IDIR_LIBPTYTTY)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libptytty/patches/patch-CMakeLists_txt b/package/libptytty/patches/patch-CMakeLists_txt
new file mode 100644
index 000000000..09a108c5a
--- /dev/null
+++ b/package/libptytty/patches/patch-CMakeLists_txt
@@ -0,0 +1,13 @@
+--- libptytty-2.0.orig/CMakeLists.txt 2021-08-04 16:07:44.000000000 +0200
++++ libptytty-2.0/CMakeLists.txt 2024-03-03 19:23:33.085544136 +0100
+@@ -323,10 +323,6 @@ configure_file(
+ libptytty.pc.in
+ libptytty.pc)
+
+-add_executable(c-sample eg/c-sample.c)
+-target_include_directories(c-sample PRIVATE src)
+-target_link_libraries(c-sample ptytty)
+-
+ add_custom_command(
+ OUTPUT ${CMAKE_SOURCE_DIR}/doc/libptytty.3
+ DEPENDS ${CMAKE_SOURCE_DIR}/doc/libptytty.3.pod
diff --git a/package/libressl/Makefile b/package/libressl/Makefile
index 350afa107..ca08f24df 100644
--- a/package/libressl/Makefile
+++ b/package/libressl/Makefile
@@ -4,15 +4,17 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libressl
-PKG_VERSION:= 2.7.3
+PKG_VERSION:= 3.9.1
PKG_RELEASE:= 1
-PKG_HASH:= 16c70d8fe1de6e9bedea0d67804b55f3894717693a05ed45e15e0e2f939c2795
+PKG_HASH:= 6da0b954695f7ee62b03f64200a8a4f02af93717b60cce04ab6c8df262c07a51
PKG_DESCR:= ssl/tls library
PKG_SECTION:= libs/crypto
PKG_URL:= http://www.libressl.org
PKG_SITES:= http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/
PKG_OPTS:= dev
+PKG_ARCH_DEPENDS:= !m68k !xtensa
+
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
PKG_SUBPKGS:= LIBRESSL LIBRESSL_UTIL
@@ -27,6 +29,10 @@ $(eval $(call HOST_template,LIBRESSL,libressl,${PKG_VERSION}-${PKG_RELEASE}))
$(eval $(call PKG_template,LIBRESSL,libressl,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
$(eval $(call PKG_template,LIBRESSL_UTIL,libressl-util,${PKG_VERSION}-${PKG_RELEASE},${PKGSS_LIBRESSL_UTIL},${PKGSD_LIBRESSL_UTIL},${PKGSC_LIBRESSL_UTIL}))
+ifeq ($(ADK_TARGET_ARCH_ARM),y)
+CONFIGURE_ARGS+= --disable-asm
+endif
+
ifeq ($(ADK_TARGET_USE_SSP),y)
CONFIGURE_ARGS+= --enable-hardening
else
@@ -34,13 +40,13 @@ CONFIGURE_ARGS+= --disable-hardening
endif
libressl-install:
+ ${INSTALL_DIR} ${IDIR_LIBRESSL}/etc/ssl
+ ${CP} ${WRKINST}/etc/ssl/openssl.cnf ${IDIR_LIBRESSL}/etc/ssl
$(INSTALL_DIR) $(IDIR_LIBRESSL)/usr/lib
$(CP) $(WRKINST)/usr/lib/lib{crypto,ssl,tls}.so* \
$(IDIR_LIBRESSL)/usr/lib
libressl-util-install:
- ${INSTALL_DIR} ${IDIR_LIBRESSL_UTIL}/etc/ssl
- ${CP} ${WRKINST}/etc/ssl/openssl.cnf ${IDIR_LIBRESSL_UTIL}/etc/ssl
${INSTALL_DIR} ${IDIR_LIBRESSL_UTIL}/usr/bin
${CP} ${WRKINST}/usr/bin/openssl ${IDIR_LIBRESSL_UTIL}/usr/bin
diff --git a/package/libressl/patches/patch-Makefile_in b/package/libressl/patches/patch-Makefile_in
deleted file mode 100644
index fc285e3c6..000000000
--- a/package/libressl/patches/patch-Makefile_in
+++ /dev/null
@@ -1,11 +0,0 @@
---- libressl-2.4.2.orig/Makefile.in 2016-08-01 01:08:10.000000000 +0200
-+++ libressl-2.4.2/Makefile.in 2016-08-22 18:34:29.881419200 +0200
-@@ -361,7 +361,7 @@ target_alias = @target_alias@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--SUBDIRS = crypto ssl tls include apps tests man
-+SUBDIRS = crypto ssl tls include apps
- ACLOCAL_AMFLAGS = -I m4
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = libcrypto.pc libssl.pc libtls.pc openssl.pc
diff --git a/package/libressl/patches/patch-crypto_compat_arc4random_linux_h b/package/libressl/patches/patch-crypto_compat_arc4random_linux_h
deleted file mode 100644
index c71462315..000000000
--- a/package/libressl/patches/patch-crypto_compat_arc4random_linux_h
+++ /dev/null
@@ -1,11 +0,0 @@
---- libressl-2.4.2.orig/crypto/compat/arc4random_linux.h 2016-08-01 01:07:36.000000000 +0200
-+++ libressl-2.4.2/crypto/compat/arc4random_linux.h 2016-10-17 21:56:49.830938238 +0200
-@@ -32,7 +32,7 @@ static pthread_mutex_t arc4random_mtx =
- #define _ARC4_LOCK() pthread_mutex_lock(&arc4random_mtx)
- #define _ARC4_UNLOCK() pthread_mutex_unlock(&arc4random_mtx)
-
--#ifdef __GLIBC__
-+#if defined(__GLIBC__) && !defined(__UCLIBC__)
- extern void *__dso_handle;
- extern int __register_atfork(void (*)(void), void(*)(void), void (*)(void), void *);
- #define _ARC4_ATFORK(f) __register_atfork(NULL, NULL, (f), __dso_handle)
diff --git a/package/libseat/Makefile b/package/libseat/Makefile
new file mode 100644
index 000000000..b408fcaf6
--- /dev/null
+++ b/package/libseat/Makefile
@@ -0,0 +1,31 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libseat
+PKG_VERSION:= 0.7.0
+PKG_RELEASE:= 1
+PKG_HASH:= ea6ccbaf86949dba4eda64761b11aa8d05b61fc60f569b0fc05f2c4d06baeb87
+PKG_DESCR:= seat library
+PKG_SECTION:= libs/misc
+PKG_URL:= https://git.sr.ht/~kennylevinsen/seatd
+PKG_SITES:= https://git.sr.ht/~kennylevinsen/seatd
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBSEAT,libseat,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+libseat-install:
+ $(INSTALL_DIR) $(IDIR_LIBSEAT)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libseat*.so* \
+ $(IDIR_LIBSEAT)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libshout/Makefile b/package/libshout/Makefile
index 7a79fb145..f43489234 100644
--- a/package/libshout/Makefile
+++ b/package/libshout/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= libshout
-PKG_VERSION:= 2.3.1
+PKG_VERSION:= 2.4.6
PKG_RELEASE:= 1
-PKG_HASH:= cf3c5f6b4a5e3fcfbe09fb7024aa88ad4099a9945f7cb037ec06bcee7a23926e
+PKG_HASH:= 39cbd4f0efdfddc9755d88217e47f8f2d7108fa767f9d58a2ba26a16d8f7c910
PKG_DESCR:= library which can be used to write a source client for streaming
PKG_SECTION:= libs/audio
PKG_DEPENDS:= libvorbis libogg
diff --git a/package/libsndfile/Makefile b/package/libsndfile/Makefile
index 00faca413..bea414e08 100644
--- a/package/libsndfile/Makefile
+++ b/package/libsndfile/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libsndfile
-PKG_VERSION:= 1.0.27
+PKG_VERSION:= 1.0.28
PKG_RELEASE:= 1
-PKG_HASH:= a391952f27f4a92ceb2b4c06493ac107896ed6c76be9a613a4731f076d30fac0
+PKG_HASH:= 1ff33929f042fa333aed1e8923aa628c3ee9e1eb85512686c55092d1e5a9dfa9
PKG_DESCR:= reading and writing files containing sampled sound
PKG_SECTION:= libs/audio
PKG_URL:= http://www.mega-nerd.com/libsndfile/
diff --git a/package/libssh/Makefile b/package/libssh/Makefile
index d586d6617..231bae2c4 100644
--- a/package/libssh/Makefile
+++ b/package/libssh/Makefile
@@ -4,15 +4,15 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libssh
-PKG_VERSION:= 0.7.5
+PKG_VERSION:= 0.9.5
PKG_RELEASE:= 1
-PKG_HASH:= 54e86dd5dc20e5367e58f3caab337ce37675f863f80df85b6b1614966a337095
+PKG_HASH:= acffef2da98e761fc1fd9c4fddde0f3af60ab44c4f5af05cd1b2d60a3fa08718
PKG_DESCR:= secure shell library
PKG_SECTION:= libs/crypto
PKG_DEPENDS:= zlib libressl
PKG_BUILDDEP:= cmake-host zlib libressl
PKG_URL:= http://www.libssh.org/
-PKG_SITES:= https://red.libssh.org/attachments/download/218/
+PKG_SITES:= https://www.libssh.org/files/0.9/
PKG_OPTS:= dev
include $(ADK_TOPDIR)/mk/package.mk
@@ -26,6 +26,7 @@ CMAKE_FLAGS:= -DOPENSSL_INCLUDE_DIRS='$(STAGING_TARGET_DIR)/usr/include' \
-DZLIB_INCLUDE_DIR='$(STAGING_TARGET_DIR)/usr/include' \
-DZLIB_LIBRARY='$(STAGING_TARGET_DIR)/usr/lib' \
-DWITH_GSSAPI=off \
+ -DWITH_STACK_PROTECTOR=off \
-DWITH_EXAMPLES=off
libssh-install:
diff --git a/package/libssh/patches/patch-CompilerChecks_cmake b/package/libssh/patches/patch-CompilerChecks_cmake
new file mode 100644
index 000000000..8f5d3d805
--- /dev/null
+++ b/package/libssh/patches/patch-CompilerChecks_cmake
@@ -0,0 +1,32 @@
+--- libssh-0.9.5.orig/CompilerChecks.cmake 2020-05-07 13:51:36.000000000 +0200
++++ libssh-0.9.5/CompilerChecks.cmake 2021-03-01 23:53:39.370794233 +0100
+@@ -67,29 +67,6 @@ if (UNIX)
+ endif()
+ endif()
+
+- check_c_compiler_flag_ssp("-fstack-protector-strong" WITH_STACK_PROTECTOR_STRONG)
+- if (WITH_STACK_PROTECTOR_STRONG)
+- list(APPEND SUPPORTED_COMPILER_FLAGS "-fstack-protector-strong")
+- # This is needed as Solaris has a seperate libssp
+- if (SOLARIS)
+- list(APPEND SUPPORTED_LINKER_FLAGS "-fstack-protector-strong")
+- endif()
+- else (WITH_STACK_PROTECTOR_STRONG)
+- check_c_compiler_flag_ssp("-fstack-protector" WITH_STACK_PROTECTOR)
+- if (WITH_STACK_PROTECTOR)
+- list(APPEND SUPPORTED_COMPILER_FLAGS "-fstack-protector")
+- # This is needed as Solaris has a seperate libssp
+- if (SOLARIS)
+- list(APPEND SUPPORTED_LINKER_FLAGS "-fstack-protector")
+- endif()
+- endif()
+- endif (WITH_STACK_PROTECTOR_STRONG)
+-
+- check_c_compiler_flag_ssp("-fstack-clash-protection" WITH_STACK_CLASH_PROTECTION)
+- if (WITH_STACK_CLASH_PROTECTION)
+- list(APPEND SUPPORTED_COMPILER_FLAGS "-fstack-clash-protection")
+- endif()
+-
+ if (PICKY_DEVELOPER)
+ add_c_compiler_flag("-Wno-error=deprecated-declarations" SUPPORTED_COMPILER_FLAGS)
+ add_c_compiler_flag("-Wno-error=tautological-compare" SUPPORTED_COMPILER_FLAGS)
diff --git a/package/libssh/patches/patch-cmake_Modules_DefineCompilerFlags_cmake b/package/libssh/patches/patch-cmake_Modules_DefineCompilerFlags_cmake
deleted file mode 100644
index b8e077b94..000000000
--- a/package/libssh/patches/patch-cmake_Modules_DefineCompilerFlags_cmake
+++ /dev/null
@@ -1,14 +0,0 @@
---- libssh-0.6.3.orig/cmake/Modules/DefineCompilerFlags.cmake 2014-02-06 10:20:57.000000000 +0100
-+++ libssh-0.6.3/cmake/Modules/DefineCompilerFlags.cmake 2014-03-14 09:10:56.621673326 +0100
-@@ -21,11 +21,6 @@ if (UNIX AND NOT WIN32)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
- endif (WITH_FPIC)
-
-- check_c_compiler_flag_ssp("-fstack-protector" WITH_STACK_PROTECTOR)
-- if (WITH_STACK_PROTECTOR)
-- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector")
-- endif (WITH_STACK_PROTECTOR)
--
- if (CMAKE_BUILD_TYPE)
- string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
- if (CMAKE_BUILD_TYPE_LOWER MATCHES (release|relwithdebinfo|minsizerel))
diff --git a/package/libssh/patches/patch-include_libssh_libssh_h b/package/libssh/patches/patch-include_libssh_libssh_h
index dc60939bf..39310ba16 100644
--- a/package/libssh/patches/patch-include_libssh_libssh_h
+++ b/package/libssh/patches/patch-include_libssh_libssh_h
@@ -1,10 +1,10 @@
---- libssh-0.6.3.orig/include/libssh/libssh.h 2014-03-04 13:20:48.000000000 +0100
-+++ libssh-0.6.3/include/libssh/libssh.h 2014-03-14 09:07:03.304701842 +0100
-@@ -56,6 +56,7 @@
+--- libssh-0.9.5.orig/include/libssh/libssh.h 2020-09-10 14:43:02.000000000 +0200
++++ libssh-0.9.5/include/libssh/libssh.h 2021-03-01 23:52:22.358253014 +0100
+@@ -58,6 +58,7 @@
typedef unsigned long long uint64_t;
typedef int mode_t;
#else /* _MSC_VER */
+ #include <sys/types.h>
#include <unistd.h>
#include <inttypes.h>
- #endif /* _MSC_VER */
+ #include <sys/types.h>
diff --git a/package/libssh2/Makefile b/package/libssh2/Makefile
index b832133e5..1227c0440 100644
--- a/package/libssh2/Makefile
+++ b/package/libssh2/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libssh2
-PKG_VERSION:= 1.8.0
+PKG_VERSION:= 1.11.0
PKG_RELEASE:= 1
-PKG_HASH:= 39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4
+PKG_HASH:= 3736161e41e2693324deb38c26cfdc3efe6209d634ba4258db1cecff6a5ad461
PKG_DESCR:= client-side c library implementing ssh2 protocol
PKG_SECTION:= libs/crypto
PKG_BUILDDEP:= zlib libressl
diff --git a/package/libtasn1/Makefile b/package/libtasn1/Makefile
index 9b4bc9ec6..e91f75001 100644
--- a/package/libtasn1/Makefile
+++ b/package/libtasn1/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libtasn1
-PKG_VERSION:= 4.12
+PKG_VERSION:= 4.19.0
PKG_RELEASE:= 1
-PKG_HASH:= 6753da2e621257f33f5b051cc114d417e5206a0818fe0b1ecfd6153f70934753
+PKG_HASH:= 1613f0ac1cf484d6ec0ce3b8c06d56263cc7242f1c23b30d82d23de345a63f7a
PKG_DESCR:= asn.1 and der structures manipulation library
PKG_SECTION:= libs/crypto
PKG_URL:= http://www.gnupg.org/
diff --git a/package/libtiff/Makefile b/package/libtiff/Makefile
index 7c0e72fce..960605be8 100644
--- a/package/libtiff/Makefile
+++ b/package/libtiff/Makefile
@@ -4,13 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= tiff
-PKG_VERSION:= 4.0.8
+PKG_VERSION:= 4.3.0
PKG_RELEASE:= 1
-PKG_HASH:= 59d7a5a8ccd92059913f246877db95a2918e6c04fb9d43fd74e5c3390dac2910
+PKG_HASH:= 0e46e5acb087ce7d1ac53cf4f56a09b221537fc86dfc5daaad1c2e89e1b37ac8
PKG_DESCR:= library for reading/writing tiff images
PKG_SECTION:= libs/image
PKG_NEEDS:= c++
-PKG_BUILDDEP:= cmake-host zlib xz
+PKG_BUILDDEP:= zlib xz
PKG_URL:= http://simplesystems.org/libtiff/
PKG_SITES:= http://download.osgeo.org/libtiff/
PKG_LIBNAME:= libtiff
@@ -22,8 +22,6 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,LIBTIFF,libtiff,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-CONFIG_STYLE:= cmake
-
libtiff-install:
${INSTALL_DIR} ${IDIR_LIBTIFF}/usr/lib
${CP} ${WRKINST}/usr/lib/libtiff.so* ${IDIR_LIBTIFF}/usr/lib/
diff --git a/package/libtiff/patches/patch-libtiff-4_pc_in b/package/libtiff/patches/patch-libtiff-4_pc_in
new file mode 100644
index 000000000..4cd57a213
--- /dev/null
+++ b/package/libtiff/patches/patch-libtiff-4_pc_in
@@ -0,0 +1,14 @@
+--- tiff-4.3.0.orig/libtiff-4.pc.in 2021-03-05 14:01:43.000000000 +0100
++++ tiff-4.3.0/libtiff-4.pc.in 2021-11-06 16:42:35.662674034 +0100
+@@ -1,7 +1,7 @@
+-prefix=@prefix@
+-exec_prefix=@exec_prefix@
+-libdir=@libdir@
+-includedir=@includedir@
++prefix=/usr
++exec_prefix=${prefix}
++libdir=${exec_prefix}/lib
++includedir=${prefix}/include
+
+ Name: libtiff
+ Description: Tag Image File Format (TIFF) library.
diff --git a/package/libtirpc/Makefile b/package/libtirpc/Makefile
index 165217fc5..5cbddde61 100644
--- a/package/libtirpc/Makefile
+++ b/package/libtirpc/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= libtirpc
-PKG_VERSION:= 1.0.3
+PKG_VERSION:= 1.3.4
PKG_RELEASE:= 1
-PKG_HASH:= 86c3a78fc1bddefa96111dd233124c703b22a78884203c55c3e06b3be6a0fd5e
+PKG_HASH:= 1e0b0c7231c5fa122e06c0609a76723664d068b0dba3b8219b63e6340b347860
PKG_DESCR:= transport independent rpc library
PKG_SECTION:= libs/net
PKG_URL:= http://sourceforge.net/projects/libtirpc/
@@ -26,7 +26,6 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,LIBTIRPC,libtirpc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
MAKE_ENV+= V=1
-AUTOTOOL_STYLE:= autoreconf
HOST_CPPFLAGS+= -I/usr/include/tirpc
ifeq (${ADK_PACKAGE_LIBTIRPC_WITH_GSS},y)
@@ -42,10 +41,6 @@ else
CONFIGURE_ARGS+= --disable-ipv6
endif
-post-extract:
- rm $(WRKBUILD)/tirpc/rpcsvc/crypt.h
- rm $(WRKBUILD)/tirpc/rpc/rpcb_prot.h
-
libtirpc-install:
${INSTALL_DIR} ${IDIR_LIBTIRPC}/usr/lib ${IDIR_LIBTIRPC}/etc
${CP} ${WRKINST}/usr/lib/libtirpc*.so* ${IDIR_LIBTIRPC}/usr/lib/
diff --git a/package/libtirpc/patches/patch-Makefile_am b/package/libtirpc/patches/patch-Makefile_am
deleted file mode 100644
index 80bc6991c..000000000
--- a/package/libtirpc/patches/patch-Makefile_am
+++ /dev/null
@@ -1,54 +0,0 @@
---- libtirpc-1.0.1.orig/Makefile.am 2015-10-30 16:15:14.000000000 +0100
-+++ libtirpc-1.0.1/Makefile.am 2015-11-29 16:38:58.340674483 +0100
-@@ -1,6 +1,12 @@
--SUBDIRS = src man doc
-+SUBDIRS = src man doc rpcgen
- ACLOCAL_AMFLAGS = -I m4
-
-+GENFILES = tirpc/rpcsvc/crypt.h \
-+ tirpc/rpcsvc/mount.h \
-+ tirpc/rpcsvc/nfs_prot.h \
-+ tirpc/rpcsvc/rquota.h \
-+ tirpc/rpc/rpcb_prot.h
-+
- noinst_HEADERS = tirpc/reentrant.h \
- tirpc/getpeereid.h \
- tirpc/libc_private.h \
-@@ -8,7 +14,9 @@ noinst_HEADERS = tirpc/reentrant.
-
- nobase_include_HEADERS = tirpc/netconfig.h \
- tirpc/rpcsvc/crypt.x \
-- tirpc/rpcsvc/crypt.h \
-+ tirpc/rpcsvc/mount.x \
-+ tirpc/rpcsvc/nfs_prot.x \
-+ tirpc/rpcsvc/rquota.x \
- tirpc/rpc/xdr.h \
- tirpc/rpc/types.h \
- tirpc/rpc/svc_soc.h \
-@@ -21,7 +29,6 @@ nobase_include_HEADERS = tirpc/netconfig
- tirpc/rpc/rpcent.h \
- tirpc/rpc/rpc_com.h \
- tirpc/rpc/rpcb_prot.x \
-- tirpc/rpc/rpcb_prot.h \
- tirpc/rpc/rpcb_clnt.h \
- tirpc/rpc/raw.h \
- tirpc/rpc/pmap_rmt.h \
-@@ -48,5 +55,17 @@ endif
- pkgconfigdir=$(libdir)/pkgconfig
- pkgconfig_DATA = libtirpc.pc
-
--CLEANFILES = cscope.* *~
-+nobase_nodist_include_HEADERS = $(GENFILES)
-+BUILT_SOURCES = $(GENFILES)
-+
-+$(GENFILES): %.h: %.x $(top_builddir)/rpcgen/rpcgen
-+ mkdir -p $(dir $@)
-+ $(top_builddir)/rpcgen/rpcgen -h -o $@ $<
-+
-+$(top_builddir)/rpcgen/rpcgen: force
-+ cd rpcgen && $(MAKE)
-+
-+force:
-+
-+CLEANFILES = cscope.* *~ $(GENFILES)
- DISTCLEANFILES = Makefile.in libtirpc*.tar.gz
diff --git a/package/libtirpc/patches/patch-configure_ac b/package/libtirpc/patches/patch-configure_ac
deleted file mode 100644
index 659bdad8c..000000000
--- a/package/libtirpc/patches/patch-configure_ac
+++ /dev/null
@@ -1,23 +0,0 @@
---- libtirpc-1.0.1.orig/configure.ac 2015-10-30 16:15:14.000000000 +0100
-+++ libtirpc-1.0.1/configure.ac 2015-11-29 16:38:38.817971632 +0100
-@@ -89,7 +89,19 @@ AC_CHECK_HEADERS([arpa/inet.h fcntl.h li
- AC_CHECK_LIB([pthread], [pthread_create])
- AC_CHECK_FUNCS([getrpcbyname getrpcbynumber setrpcent endrpcent getrpcent])
-
--AC_CONFIG_FILES([Makefile src/Makefile man/Makefile doc/Makefile])
-+AM_CONDITIONAL(CROSS_COMPILING, test $cross_compiling = yes)
-+
-+AC_MSG_CHECKING([for a C compiler for build tools])
-+if test $cross_compiling = yes; then
-+ AC_CHECK_PROGS(CC_FOR_BUILD, gcc cc)
-+else
-+ CC_FOR_BUILD=$CC
-+fi
-+AC_MSG_RESULT([$CC_FOR_BUILD])
-+AC_SUBST(CC_FOR_BUILD)
-+
-+AC_CONFIG_FILES([Makefile src/Makefile man/Makefile doc/Makefile rpcgen/Makefile])
-+
- AC_OUTPUT(libtirpc.pc)
-
-
diff --git a/package/libtirpc/patches/patch-src_clnt_bcast_c b/package/libtirpc/patches/patch-src_clnt_bcast_c
index d2dd1a38c..86f56c7f2 100644
--- a/package/libtirpc/patches/patch-src_clnt_bcast_c
+++ b/package/libtirpc/patches/patch-src_clnt_bcast_c
@@ -1,18 +1,11 @@
---- libtirpc-1.0.1.orig/src/clnt_bcast.c 2015-10-30 16:15:14.000000000 +0100
-+++ libtirpc-1.0.1/src/clnt_bcast.c 2016-01-28 15:46:15.322676441 +0100
-@@ -40,7 +40,6 @@
+--- libtirpc-1.3.4.orig/src/clnt_bcast.c 2023-10-07 09:54:42.000000000 +0200
++++ libtirpc-1.3.4/src/clnt_bcast.c 2024-02-08 16:26:57.298094444 +0100
+@@ -40,7 +40,7 @@
*/
#include <sys/socket.h>
#include <sys/types.h>
-#include <sys/queue.h>
++#include "queue.h"
#include <net/if.h>
#include <netinet/in.h>
-@@ -62,6 +61,7 @@
- #include <err.h>
- #include <string.h>
-
-+#include "queue.h"
- #include "rpc_com.h"
- #include "debug.h"
-
diff --git a/package/libtirpc/patches/patch-src_clnt_fd_locks_h b/package/libtirpc/patches/patch-src_clnt_fd_locks_h
new file mode 100644
index 000000000..6927fca68
--- /dev/null
+++ b/package/libtirpc/patches/patch-src_clnt_fd_locks_h
@@ -0,0 +1,11 @@
+--- libtirpc-1.3.4.orig/src/clnt_fd_locks.h 2023-10-07 09:54:42.000000000 +0200
++++ libtirpc-1.3.4/src/clnt_fd_locks.h 2024-02-08 16:25:34.795598116 +0100
+@@ -30,7 +30,7 @@
+ #ifndef _CLNT_FD_LOCKS_H
+ #define _CLNT_FD_LOCKS_H
+
+-#include <sys/queue.h>
++#include "queue.h"
+ #include <errno.h>
+ #include <reentrant.h>
+ #include <rpc/xdr.h>
diff --git a/package/libtirpc/patches/patch-src_svc_auth_c b/package/libtirpc/patches/patch-src_svc_auth_c
deleted file mode 100644
index 05436f3b7..000000000
--- a/package/libtirpc/patches/patch-src_svc_auth_c
+++ /dev/null
@@ -1,12 +0,0 @@
---- libtirpc-1.0.1.orig/src/svc_auth.c 2015-10-30 16:15:14.000000000 +0100
-+++ libtirpc-1.0.1/src/svc_auth.c 2015-11-29 16:39:17.807381054 +0100
-@@ -114,9 +114,6 @@ _gss_authenticate(rqst, msg, no_dispatch
- case AUTH_SHORT:
- dummy = _svcauth_short(rqst, msg);
- return (dummy);
-- case AUTH_DES:
-- dummy = _svcauth_des(rqst, msg);
-- return (dummy);
- #ifdef HAVE_RPCSEC_GSS
- case RPCSEC_GSS:
- dummy = _svcauth_gss(rqst, msg, no_dispatch);
diff --git a/package/libtorrent/Makefile b/package/libtorrent/Makefile
index f631b37fd..1ff5c5b01 100644
--- a/package/libtorrent/Makefile
+++ b/package/libtorrent/Makefile
@@ -4,29 +4,30 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= libtorrent
-PKG_VERSION:= 0.13.6
+PKG_VERSION:= 0.13.8
PKG_RELEASE:= 1
-PKG_HASH:= 2838a08c96edfd936aff8fbf99ecbb930c2bfca3337dd1482eb5fccdb80d5a04
+PKG_HASH:= ed115a28f4ae8cfcd33b94a597c076ca74fd549867a26e4fac9505c27288e983
PKG_DESCR:= bittorrent library
PKG_SECTION:= libs/net
PKG_DEPENDS:= libsigc++ zlib libressl
PKG_BUILDDEP:= libsigc++ zlib libressl
PKG_NEEDS:= intl
PKG_URL:= https://rakshasa.github.io/rtorrent/
-PKG_SITES:= http://rtorrent.net/downloads/
+PKG_SITES:= https://github.com/rakshasa/rtorrent/releases/download/v0.9.8/
PKG_OPTS:= dev
+PKG_CFLINE_LIBTORRENT:= depends on ADK_BROKEN
+
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,LIBTORRENT,libtorrent,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --enable-aligned \
--without-kqueue \
--disable-instrumentation \
- --with-zlib=$(STAGING_TARGET_DIR)
+ --without-zlib
libtorrent-install:
${INSTALL_DIR} ${IDIR_LIBTORRENT}/usr/lib
diff --git a/package/libtorrent/patches/patch-configure_ac b/package/libtorrent/patches/patch-configure_ac
deleted file mode 100644
index 00e1c2fec..000000000
--- a/package/libtorrent/patches/patch-configure_ac
+++ /dev/null
@@ -1,18 +0,0 @@
---- libtorrent-0.13.6.orig/configure.ac 2015-09-03 20:57:38.000000000 +0200
-+++ libtorrent-0.13.6/configure.ac 2016-05-25 21:29:51.436557128 +0200
-@@ -19,7 +19,6 @@ AC_SUBST(LIBTORRENT_INTERFACE_VERSION_NO
-
- AM_INIT_AUTOMAKE
- AC_CONFIG_HEADERS(config.h)
--AM_PATH_CPPUNIT(1.9.6)
-
- AC_PROG_CXX
-
-@@ -99,7 +98,6 @@ AC_CHECK_FUNCS(posix_memalign)
- TORRENT_CHECK_MADVISE()
- TORRENT_CHECK_CACHELINE()
- TORRENT_CHECK_POPCOUNT()
--TORRENT_CHECK_EXECINFO()
- TORRENT_CHECK_PTHREAD_SETNAME_NP()
- TORRENT_MINCORE()
- TORRENT_OTFD()
diff --git a/package/libtorrent/patches/patch-scripts_ax_check_zlib_m4 b/package/libtorrent/patches/patch-scripts_ax_check_zlib_m4
deleted file mode 100644
index 1e629d011..000000000
--- a/package/libtorrent/patches/patch-scripts_ax_check_zlib_m4
+++ /dev/null
@@ -1,11 +0,0 @@
---- libtorrent-0.13.6.orig/scripts/ax_check_zlib.m4 2015-08-08 17:01:32.000000000 +0200
-+++ libtorrent-0.13.6/scripts/ax_check_zlib.m4 2016-05-25 21:33:01.003893982 +0200
-@@ -79,7 +79,7 @@ AC_ARG_WITH([zlib],
- AC_MSG_RESULT(yes)
- if test -d "$withval"
- then
-- zlib_places="$withval $zlib_places"
-+ zlib_places="$withval"
- else
- AC_MSG_WARN([Sorry, $withval does not exist, checking usual places])
- fi
diff --git a/package/libudfread/Makefile b/package/libudfread/Makefile
new file mode 100644
index 000000000..7426e3ba5
--- /dev/null
+++ b/package/libudfread/Makefile
@@ -0,0 +1,28 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libudfread
+PKG_VERSION:= 1.1.2
+PKG_RELEASE:= 1
+PKG_HASH:= 2bf16726ac98d093156195bb049a663e07d3323e079c26912546f4e05c77bac5
+PKG_DESCR:= udf library
+PKG_SECTION:= libs/misc
+PKG_SITES:= http://mirrors.kodi.tv/build-deps/sources/
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBUDFREAD,libudfread,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+AUTOTOOL_STYLE:= bootstrap
+
+libudfread-install:
+ $(INSTALL_DIR) $(IDIR_LIBUDFREAD)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libudfread*.so* \
+ $(IDIR_LIBUDFREAD)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libunistring/Makefile b/package/libunistring/Makefile
index 7ab3c9794..46b83438a 100755
--- a/package/libunistring/Makefile
+++ b/package/libunistring/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= libunistring
-PKG_VERSION:= 0.9.7
+PKG_VERSION:= 0.9.10
PKG_RELEASE:= 1
-PKG_HASH:= 2e3764512aaf2ce598af5a38818c0ea23dedf1ff5460070d1b6cee5c3336e797
+PKG_HASH:= eb8fb2c3e4b6e2d336608377050892b54c3c983b646c561836550863003c05d7
PKG_DESCR:= functions for manipulating unicode strings
PKG_SECTION:= libs/misc
PKG_URL:= http://www.gnu.org/software/libunistring/
diff --git a/package/liburcu/Makefile b/package/liburcu/Makefile
new file mode 100644
index 000000000..60477c389
--- /dev/null
+++ b/package/liburcu/Makefile
@@ -0,0 +1,27 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= liburcu
+PKG_VERSION:= 0.14.0
+PKG_RELEASE:= 1
+PKG_HASH:= ca43bf261d4d392cff20dfae440836603bf009fce24fdc9b2697d837a2239d4f
+PKG_DESCR:= userspace rcu (read-copy-update) libraries
+PKG_SECTION:= libs/misc
+PKG_SITES:= https://lttng.org/files/urcu/
+PKG_OPTS:= dev
+
+DISTFILES:= userspace-rcu-$(PKG_VERSION).tar.bz2
+WRKDIST= ${WRKDIR}/userspace-rcu-${PKG_VERSION}
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBURCU,liburcu,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+liburcu-install:
+ $(INSTALL_DIR) $(IDIR_LIBURCU)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/liburcu*.so* \
+ $(IDIR_LIBURCU)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libuv/Makefile b/package/libuv/Makefile
new file mode 100644
index 000000000..3a8b43a61
--- /dev/null
+++ b/package/libuv/Makefile
@@ -0,0 +1,29 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libuv
+PKG_VERSION:= 1.42.0
+PKG_RELEASE:= 1
+PKG_HASH:= 371e5419708f6aaeb8656671f89400b92a9bba6443369af1bb70bcd6e4b3c764
+PKG_DESCR:= multi-platform support library
+PKG_SECTION:= libs/misc
+PKG_URL:= https://github.com/libuv/libuv/
+PKG_SITES:= https://github.com/libuv/libuv/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBUV,libuv,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+CONFIG_STYLE:= cmake
+
+libuv-install:
+ $(INSTALL_DIR) $(IDIR_LIBUV)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libuv*.so* \
+ $(IDIR_LIBUV)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libuv/patches/patch-libuv_pc_in b/package/libuv/patches/patch-libuv_pc_in
new file mode 100644
index 000000000..4c7ae339d
--- /dev/null
+++ b/package/libuv/patches/patch-libuv_pc_in
@@ -0,0 +1,12 @@
+--- libuv-1.42.0.orig/libuv.pc.in 2021-07-20 04:44:04.000000000 +0200
++++ libuv-1.42.0/libuv.pc.in 2021-10-29 13:40:49.561398557 +0200
+@@ -1,7 +1,7 @@
+ prefix=@prefix@
+ exec_prefix=${prefix}
+-libdir=@libdir@
+-includedir=@includedir@
++libdir=${prefix}/@libdir@
++includedir=${prefix}/@includedir@
+
+ Name: libuv
+ Version: @PACKAGE_VERSION@
diff --git a/package/libvncserver/Makefile b/package/libvncserver/Makefile
new file mode 100644
index 000000000..a3812648c
--- /dev/null
+++ b/package/libvncserver/Makefile
@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libvncserver
+PKG_VERSION:= 0.9.14
+PKG_RELEASE:= 1
+PKG_HASH:= 83104e4f7e28b02f8bf6b010d69b626fae591f887e949816305daebae527c9a5
+PKG_DESCR:= VNC library
+PKG_SECTION:= libs/misc
+PKG_BUILDDEP:= cmake-host
+PKG_SITES:= https://github.com/LibVNC/libvncserver/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= LibVNCServer-$(PKG_VERSION).tar.gz
+
+WRKDIST= ${WRKDIR}/${PKG_NAME}-LibVNCServer-${PKG_VERSION}
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBVNCSERVER,libvncserver,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+CONFIG_STYLE:= cmake
+
+libvncserver-install:
+ $(INSTALL_DIR) $(IDIR_LIBVNCSERVER)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libvncserver*.so* \
+ $(IDIR_LIBVNCSERVER)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libvncclient*.so* \
+ $(IDIR_LIBVNCSERVER)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libvpx/Makefile b/package/libvpx/Makefile
index 7aa126402..7f31d719c 100644
--- a/package/libvpx/Makefile
+++ b/package/libvpx/Makefile
@@ -4,19 +4,17 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libvpx
-PKG_VERSION:= 1.6.0
+PKG_VERSION:= 1.14.0
PKG_RELEASE:= 1
-PKG_HASH:= d0afbb5eb1ecae68f8d578abace160a97e2e8a230e3028cf4db115d59a695aad
+PKG_HASH:= 5f21d2db27071c8a46f1725928a10227ae45c5cd1cad3727e4aafbe476e321fa
PKG_DESCR:= vp8/vp9 codec library
PKG_SECTION:= libs/video
PKG_BUILDDEP:= yasm-host
PKG_URL:= http://www.webmproject.org/about/
-PKG_SITES:= http://storage.googleapis.com/downloads.webmproject.org/releases/webm/
+PKG_SITES:= https://github.com/webmproject/libvpx/archive/refs/tags/
PKG_OPTS:= dev
-PKG_ARCH_DEPENDS:= !m68k
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
+DISTFILES:= v${PKG_VERSION}.tar.gz
include $(ADK_TOPDIR)/mk/package.mk
@@ -25,6 +23,9 @@ $(eval $(call PKG_template,LIBVPX,libvpx,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEP
CONFIGURE_ENV+= LD=$(TARGET_CC)
CONFIG_STYLE:= minimal
+ifeq ($(ADK_TARGET_ARCH_AARCH64),y)
+CONFIGURE_ARGS+= --target=armv8-linux-gcc
+endif
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9),y)
CONFIGURE_ARGS+= --target=armv7-linux-gcc
endif
@@ -43,6 +44,9 @@ endif
ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI3P),y)
CONFIGURE_ARGS+= --target=armv7-linux-gcc
endif
+ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI4),y)
+CONFIGURE_ARGS+= --target=armv7-linux-gcc
+endif
ifeq ($(ADK_TARGET_SYSTEM_SHARP_ZAURUS),y)
CONFIGURE_ARGS+= --target=armv5te-linux-gcc
endif
diff --git a/package/libvpx/patches/patch-configure b/package/libvpx/patches/patch-configure
deleted file mode 100644
index e3ceac490..000000000
--- a/package/libvpx/patches/patch-configure
+++ /dev/null
@@ -1,18 +0,0 @@
---- libvpx-1.5.0.orig/configure 2015-11-09 23:12:38.000000000 +0100
-+++ libvpx-1.5.0/configure 2015-11-22 16:17:41.869446856 +0100
-@@ -111,6 +111,7 @@ all_platforms="${all_platforms} armv7-wi
- all_platforms="${all_platforms} armv7s-darwin-gcc"
- all_platforms="${all_platforms} mips32-linux-gcc"
- all_platforms="${all_platforms} mips64-linux-gcc"
-+all_platforms="${all_platforms} loongson2f-linux-gcc"
- all_platforms="${all_platforms} sparc-solaris-gcc"
- all_platforms="${all_platforms} x86-android-gcc"
- all_platforms="${all_platforms} x86-darwin8-gcc"
-@@ -242,6 +243,7 @@ ARCH_EXT_LIST="
- dspr2
- msa
- mips64
-+ loongson2f
-
- mmx
- sse
diff --git a/package/libwebp/Makefile b/package/libwebp/Makefile
index 967a686d5..d894f3831 100644
--- a/package/libwebp/Makefile
+++ b/package/libwebp/Makefile
@@ -4,24 +4,24 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libwebp
-PKG_VERSION:= 0.3.1
+PKG_VERSION:= 1.2.2
PKG_RELEASE:= 1
-PKG_HASH:= b37932c625322a69fe4e9b88884b5c7aed2b3eaf9fd5e5b480aee339a92e6ee7
+PKG_HASH:= 51e9297aadb7d9eb99129fe0050f53a11fcce38a0848fb2b0389e385ad93695e
PKG_DESCR:= new image format for the web
PKG_SECTION:= libs/image
+PKG_BUILDDEP:= cmake-host
PKG_URL:= https://developers.google.com/speed/webp/
-PKG_SITES:= https://webp.googlecode.com/files/
+PKG_SITES:= https://github.com/webmproject/libwebp/archive/refs/tags/
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+DISTFILES:= v${PKG_VERSION}.tar.gz
include $(ADK_TOPDIR)/mk/package.mk
+CONFIG_STYLE:= cmake
+
$(eval $(call PKG_template,LIBWEBP,libwebp,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
libwebp-install:
- $(INSTALL_DIR) $(IDIR_LIBWEBP)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libwebp*.so* \
- $(IDIR_LIBWEBP)/usr/lib
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/libwebsockets/Makefile b/package/libwebsockets/Makefile
new file mode 100644
index 000000000..87eb01678
--- /dev/null
+++ b/package/libwebsockets/Makefile
@@ -0,0 +1,31 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libwebsockets
+PKG_VERSION:= 4.3.3
+PKG_RELEASE:= 1
+PKG_HASH:= 6fd33527b410a37ebc91bb64ca51bdabab12b076bc99d153d7c5dd405e4bdf90
+PKG_DESCR:= lightweight network library
+PKG_SECTION:= libs/net
+PKG_BUILDDEP:= cmake-host zlib libressl
+PKG_DEPENDS:= zlib libressl
+PKG_URL:= https://libwebsockets.org/
+PKG_SITES:= https://github.com/warmcat/libwebsockets/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBWEBSOCKETS,libwebsockets,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+CONFIG_STYLE:= cmake
+
+libwebsockets-install:
+ $(INSTALL_DIR) $(IDIR_LIBWEBSOCKETS)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libwebsockets*.so* \
+ $(IDIR_LIBWEBSOCKETS)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libx264/Makefile b/package/libx264/Makefile
index 18b92ffc1..394cbcd82 100644
--- a/package/libx264/Makefile
+++ b/package/libx264/Makefile
@@ -13,8 +13,6 @@ PKG_URL:= http://www.videolan.org/developers/x264.html
PKG_SITES:= http://git.videolan.org/git/x264.git
PKG_OPTS:= dev
-PKG_BUILDDEP_IBM_X40:= yasm-host
-
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LIBX264,libx264,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
diff --git a/package/libx265/Makefile b/package/libx265/Makefile
index 616bacd8f..bde8655cd 100644
--- a/package/libx265/Makefile
+++ b/package/libx265/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libx265
-PKG_VERSION:= 2.7
-PKG_HASH:= d5e75fa62ffe6ed49e691f8eb8ab8c1634ffcc0725dd553c6fdb4d5443b494a2
+PKG_VERSION:= 3.2
+PKG_HASH:= 364d79bcd56116a9e070fdeb1d9d2aaef1a786b4970163fb56ff0991a183133b
PKG_RELEASE:= 1
PKG_DESCR:= h265 encoding library
PKG_SECTION:= libs/video
PKG_BUILDDEP:= cmake-host
PKG_URL:= http://x265.org
-PKG_SITES:= https://bitbucket.org/multicoreware/x265/downloads/
+PKG_SITES:= http://ftp.videolan.org/pub/videolan/x265/
PKG_OPTS:= dev
DISTFILES:= x265_${PKG_VERSION}.tar.gz
diff --git a/package/libxcb/Makefile b/package/libxcb/Makefile
index a8b52760d..5dbd1b4b5 100644
--- a/package/libxcb/Makefile
+++ b/package/libxcb/Makefile
@@ -4,12 +4,12 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libxcb
-PKG_VERSION:= 1.12
+PKG_VERSION:= 1.16
PKG_RELEASE:= 1
-PKG_HASH:= 092f147149d8a6410647a848378aaae749304d5b73e028ccb8306aa8a9e26f06
+PKG_HASH:= bc0f75f84b28e6496a19a1d094d7e47def861a50cb7cce5b23b62eecdc2a4479
PKG_DESCR:= interface to the x window system protocol
PKG_SECTION:= x11/libs
-PKG_BUILDDEP+= python2 libpthread-stubs libxslt libXau xcb-proto
+PKG_BUILDDEP:= python3 libpthread-stubs libxslt libXau xcb-proto
HOST_BUILDDEP:= libXau-host libpthread-stubs-host xcb-proto-host
PKG_SITES:= http://xcb.freedesktop.org/dist/
PKG_OPTS:= dev
@@ -22,10 +22,10 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call HOST_template,LIBXCB,libxcb,${PKG_VERSION}-${PKG_RELEASE}))
$(eval $(call PKG_template,LIBXCB,libxcb,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-include $(ADK_TOPDIR)/mk/python.mk
+include $(ADK_TOPDIR)/mk/python3.mk
HOST_STYLE:= auto
-CONFIGURE_ENV+= PYTHON=$(PYTHON)
+CONFIGURE_ENV+= PYTHONPATH=$(PYTHON) PYTHON=python3
libxcb-install:
${INSTALL_DIR} ${IDIR_LIBXCB}/usr/lib
diff --git a/package/libxcrypt/Makefile b/package/libxcrypt/Makefile
new file mode 100644
index 000000000..3d6bb2907
--- /dev/null
+++ b/package/libxcrypt/Makefile
@@ -0,0 +1,30 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libxcrypt
+PKG_VERSION:= 4.4.36
+PKG_RELEASE:= 1
+PKG_HASH:= b979838d5f1f238869d467484793b72b8bca64c4eae696fdbba0a9e0b6c28453
+PKG_DESCR:= crypt library
+PKG_SECTION:= libs/crypto
+PKG_SITES:= https://github.com/besser82/libxcrypt/archive/refs/tags/
+PKG_OPTS:= dev
+
+PKG_LIBC_DEPENDS:= glibc
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBXCRYPT,libxcrypt,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+AUTOTOOL_STYLE:= autogen
+
+libxcrypt-install:
+ $(INSTALL_DIR) $(IDIR_LIBXCRYPT)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/lib*crypt*.so* \
+ $(IDIR_LIBXCRYPT)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libxcvt/Makefile b/package/libxcvt/Makefile
new file mode 100644
index 000000000..952b7c7e7
--- /dev/null
+++ b/package/libxcvt/Makefile
@@ -0,0 +1,30 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libxcvt
+PKG_VERSION:= 0.1.1
+PKG_RELEASE:= 1
+PKG_HASH:= 27ebce180d355f94c1992930bedb40a36f6d7312ee50bf7f0acbcd22f33e8c29
+PKG_DESCR:= xcvt library
+PKG_SECTION:= libs/misc
+PKG_SITES:= https://www.x.org/releases/individual/lib/
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBXCVT,libxcvt,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+libxcvt-install:
+ $(INSTALL_DIR) $(IDIR_LIBXCVT)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libxcvt*.so* \
+ $(IDIR_LIBXCVT)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libxkbcommon/Makefile b/package/libxkbcommon/Makefile
new file mode 100644
index 000000000..1650043a9
--- /dev/null
+++ b/package/libxkbcommon/Makefile
@@ -0,0 +1,35 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= libxkbcommon
+PKG_VERSION:= 1.5.0
+PKG_RELEASE:= 1
+PKG_HASH:= 560f11c4bbbca10f495f3ef7d3a6aa4ca62b4f8fb0b52e7d459d18a26e46e017
+PKG_DESCR:= library for handling of keyboard descriptions
+PKG_SECTION:= libs/misc
+PKG_BUILDDEP:= meson-host
+PKG_SITES:= https://xkbcommon.org/download/
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBXKBCOMMON,libxkbcommon,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+MESON_FLAGS+= -Denable-docs=false \
+ -Denable-wayland=false \
+ -Dxkb-config-root=/usr/share/X11/xkb
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+libxkbcommon-install:
+ $(INSTALL_DIR) $(IDIR_LIBXKBCOMMON)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libxkbcommon*.so* \
+ $(IDIR_LIBXKBCOMMON)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libxml2/Makefile b/package/libxml2/Makefile
index 5835c98d7..20a1428b7 100644
--- a/package/libxml2/Makefile
+++ b/package/libxml2/Makefile
@@ -4,48 +4,33 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libxml2
-PKG_VERSION:= 2.9.4
+PKG_VERSION:= 2.10.3
PKG_RELEASE:= 1
-PKG_HASH:= ffb911191e509b966deb55de705387f14156e1a56b21824357cdf0053233633c
+PKG_HASH:= 5d2cc3d78bec3dbe212a9d7fa629ada25a7da928af432c93060ff5c17ee28a9c
PKG_DESCR:= xml parser and toolkit
PKG_SECTION:= libs/data
PKG_DEPENDS:= zlib
-PKG_BUILDDEP:= libxml2-host python2 zlib
-HOST_BUILDDEP:= python2-host
+PKG_BUILDDEP:= libxml2-host python3 zlib
+HOST_BUILDDEP:= python3-host
PKG_URL:= http://www.xmlsoft.org/
-PKG_SITES:= http://xmlsoft.org/sources/
+PKG_SITES:= https://download.gnome.org/sources/libxml2/2.10/
PKG_OPTS:= dev
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
-
-PKG_SUBPKGS:= LIBXML2 LIBXML2_PYTHON
-PKGSD_LIBXML2_PYTHON:= xml python bindings
-PKGSC_LIBXML2_PYTHON:= libs/misc
-PKGSB_LIBXML2_PYTHON:= python2
-PKGSS_LIBXML2_PYTHON:= python2
-
include $(ADK_TOPDIR)/mk/host.mk
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call HOST_template,LIBXML2,libxml2,$(PKG_VERSION)-$(PKG_RELEASE)))
$(eval $(call PKG_template,LIBXML2,libxml2,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
-$(eval $(call PKG_template,LIBXML2_PYTHON,libxml2-python,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_LIBXML2_PYTHON),$(PKGSC_LIBXML2_PYTHON)))
-
-include $(ADK_TOPDIR)/mk/python.mk
-TARGET_CPPFLAGS+= -I$(STAGING_TARGET_DIR)/usr/include/python$(PYTHON_VERSION)
-HOST_CPPFLAGS+= -I$(STAGING_HOST_DIR)/usr/include/python$(PYTHON_VERSION)
HOST_STYLE:= auto
-HOST_CONFIGURE_ARGS+= --with-python \
+HOST_CONFIGURE_ARGS+= --without-python \
--with-threads \
--without-iconv \
--without-lzma \
--without-zlib
-AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --without-c14n \
--without-debug \
- --without-docbook \
--with-catalog \
--with-html \
--without-ftp \
@@ -69,17 +54,12 @@ CONFIGURE_ARGS+= --without-c14n \
--with-xinclude \
--with-xpath \
--with-xptr \
- --with-python \
+ --without-python \
--with-zlib='$(STAGING_TARGET_DIR)/usr'
libxml2-install:
$(INSTALL_DIR) $(IDIR_LIBXML2)/usr/lib
$(CP) $(WRKINST)/usr/lib/libxml2.so* $(IDIR_LIBXML2)/usr/lib
-libxml2-python-install:
- $(INSTALL_DIR) $(IDIR_LIBXML2_PYTHON)/usr/lib/python/site-packages
- $(CP) $(WRKINST)/usr/lib/python/site-packages/*.{so,py} \
- $(IDIR_LIBXML2_PYTHON)/usr/lib/python/site-packages
-
include $(ADK_TOPDIR)/mk/host-bottom.mk
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/libxml2/patches/patch-Makefile_am b/package/libxml2/patches/patch-Makefile_am
deleted file mode 100644
index f14a120d9..000000000
--- a/package/libxml2/patches/patch-Makefile_am
+++ /dev/null
@@ -1,14 +0,0 @@
---- libxml2-2.9.2.orig/Makefile.am 2014-10-13 05:02:53.000000000 -0500
-+++ libxml2-2.9.2/Makefile.am 2015-02-11 12:51:49.858163855 -0600
-@@ -2,9 +2,9 @@
-
- ACLOCAL_AMFLAGS = -I m4
-
--SUBDIRS = include . doc example xstc $(PYTHON_SUBDIR)
-+SUBDIRS = include . xstc $(PYTHON_SUBDIR)
-
--DIST_SUBDIRS = include . doc example python xstc
-+DIST_SUBDIRS = include . python xstc
-
- AM_CPPFLAGS = -I$(top_builddir)/include -I$(srcdir)/include
-
diff --git a/package/libxml2/patches/patch-configure_ac b/package/libxml2/patches/patch-configure_ac
deleted file mode 100644
index 6cbef4845..000000000
--- a/package/libxml2/patches/patch-configure_ac
+++ /dev/null
@@ -1,96 +0,0 @@
---- libxml2-2.9.2.orig/configure.ac 2014-10-15 23:06:15.000000000 -0500
-+++ libxml2-2.9.2/configure.ac 2015-02-11 12:53:35.494162888 -0600
-@@ -837,62 +837,13 @@ if test "$with_python" != "no" ; then
- echo Found python in environment PYTHON=$PYTHON
- with_python=`$PYTHON -c "import sys; print(sys.exec_prefix)"`
- else
-- AC_PATH_PROG(PYTHON, python python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
-- fi
-- fi
-- fi
-- fi
-- if test "$PYTHON" != ""
-- then
-- PYTHON_VERSION=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_version())"`
-- PYTHON_INCLUDES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_inc())"`
--# does not work as it produce a /usr/lib/python path instead of/usr/lib64/python
--#
--# PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
-- echo Found Python version $PYTHON_VERSION
-- fi
-- if test "$PYTHON_VERSION" != "" -a "$PYTHON_INCLUDES" = ""
-- then
-- if test -r $with_python/include/python$PYTHON_VERSION/Python.h
-- then
-- PYTHON_INCLUDES=$with_python/include/python$PYTHON_VERSION
-- else
-- if test -r $prefix/include/python$PYTHON_VERSION/Python.h
-- then
-- PYTHON_INCLUDES=$prefix/include/python$PYTHON_VERSION
-- else
-- if test -r /usr/include/python$PYTHON_VERSION/Python.h
-- then
-- PYTHON_INCLUDES=/usr/include/python$PYTHON_VERSION
-- else
-- if test -r $with_python/include/Python.h
-- then
-- PYTHON_INCLUDES=$with_python/include
-- else
-- echo could not find python$PYTHON_VERSION/Python.h or $with_python/include/Python.h
-- fi
-+ AC_PATH_PROG(PYTHON, python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5)
- fi
- fi
- fi
- fi
-- if test "$with_python_install_dir" != ""
-- then
-- PYTHON_SITE_PACKAGES="$with_python_install_dir"
-- fi
-- if test "$PYTHON_VERSION" != "" -a "$PYTHON_SITE_PACKAGES" = ""
-- then
-- if test -d $libdir/python$PYTHON_VERSION/site-packages
-- then
-- PYTHON_SITE_PACKAGES=$libdir/python$PYTHON_VERSION/site-packages
-- else
-- if test -d $with_python/lib/site-packages
-- then
-- PYTHON_SITE_PACKAGES=$with_python/lib/site-packages
-- else
-- PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
-- fi
-- fi
-- fi
-+ PYTHON_INCLUDES=`python$PYTHON_VERSION-config --includes`
-+ PYTHON_SITE_PACKAGES=${prefix}/lib/python$PYTHON_VERSION/site-packages
- pythondir='$(PYTHON_SITE_PACKAGES)'
- PYTHON_LIBS=`python$PYTHON_VERSION-config --ldflags`
- else
-@@ -1065,26 +1016,7 @@ else
- THREAD_CFLAGS="$THREAD_CFLAGS -DHAVE_BEOS_THREADS"
- ;;
- *linux*)
-- if test "${GCC}" = "yes" ; then
-- GCC_VERSION=`${CC} --version | head -1 | awk '{print $3}'`
-- GCC_MAJOR=`echo ${GCC_VERSION} | sed 's+\..*++'`
-- GCC_MEDIUM=`echo ${GCC_VERSION} | sed 's+[[0-9]]*\.++' | sed 's+\..*++'`
-- if test "${THREAD_LIBS}" = "-lpthread" ; then
-- if expr ${GCC_MEDIUM} \> 2 \& ${GCC_MAJOR} = 3 > /dev/null
-- then
-- THREAD_LIBS=""
-- BASE_THREAD_LIBS="-lpthread"
-- else
-- if expr ${GCC_MAJOR} \> 3 > /dev/null
-- then
-- THREAD_LIBS=""
-- BASE_THREAD_LIBS="-lpthread"
-- else
-- echo old GCC disabling weak symbols for pthread
-- fi
-- fi
-- fi
-- fi
-+ THREAD_LIBS="-lpthread"
- ;;
- esac
- if test "$WITH_THREADS" = "1" ; then
diff --git a/package/libxml2/patches/patch-python_Makefile_am b/package/libxml2/patches/patch-python_Makefile_am
deleted file mode 100644
index b3ac2539b..000000000
--- a/package/libxml2/patches/patch-python_Makefile_am
+++ /dev/null
@@ -1,12 +0,0 @@
---- libxml2-2.9.2.orig/python/Makefile.am 2014-10-03 04:00:53.000000000 -0500
-+++ libxml2-2.9.2/python/Makefile.am 2015-02-11 12:53:07.150163147 -0600
-@@ -18,8 +18,7 @@ EXTRA_DIST = \
- if WITH_PYTHON
- AM_CPPFLAGS = \
- -I$(top_builddir)/include \
-- -I$(top_srcdir)/include \
-- -I$(PYTHON_INCLUDES)
-+ -I$(top_srcdir)/include
-
- python_LTLIBRARIES = libxml2mod.la
-
diff --git a/package/libxshmfence/Makefile b/package/libxshmfence/Makefile
index f5ceb3571..1faba0dc7 100644
--- a/package/libxshmfence/Makefile
+++ b/package/libxshmfence/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= libxshmfence
-PKG_VERSION:= 1.2
+PKG_VERSION:= 1.3
PKG_RELEASE:= 1
-PKG_HASH:= 58467a0e36fc4ec749dc55f81a4ab3b822c82b6dfb7d36bdb6b28c9fd2a5ccaf
+PKG_HASH:= 7eb3d46ad91bab444f121d475b11b39273142d090f7e9ac43e6a87f4ff5f902c
PKG_DESCR:= interface to shared-memory fences
PKG_SECTION:= x11/libs
PKG_SITES:= http://www.x.org/releases/individual/lib/
diff --git a/package/libxslt/Makefile b/package/libxslt/Makefile
index 012ade2c1..3c2522122 100644
--- a/package/libxslt/Makefile
+++ b/package/libxslt/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= libxslt
-PKG_VERSION:= 1.1.29
+PKG_VERSION:= 1.1.38
PKG_RELEASE:= 1
-PKG_HASH:= b5976e3857837e7617b29f2249ebb5eeac34e249208d31f1fbf7a6ba7a4090ce
+PKG_HASH:= 1f32450425819a09acaff2ab7a5a7f8a2ec7956e505d7beeb45e843d0e1ecab1
PKG_DESCR:= xslt library
PKG_SECTION:= libs/data
PKG_DEPENDS:= libxml2
@@ -14,11 +14,9 @@ PKG_BUILDDEP:= libxslt-host libxml2
HOST_BUILDDEP:= libxml2-host
PKG_NEEDS:= c++
PKG_URL:= http://xmlsoft.org/XSLT
-PKG_SITES:= http://xmlsoft.org/sources/
+PKG_SITES:= https://download.gnome.org/sources/libxslt/1.1/
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
PKG_SUBPKGS:= LIBXSLT XSLTPROC
PKGSD_XSLTPROC:= xslt processor utility
PKGSC_XSLTPROC:= sys/misc
@@ -30,12 +28,14 @@ $(eval $(call HOST_template,LIBXSLT,libxslt,${PKG_VERSION}-${PKG_RELEASE}))
$(eval $(call PKG_template,LIBXSLT,libxslt,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
$(eval $(call PKG_template,XSLTPROC,xsltproc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_XSLTPROC},${PKGSC_XSLTPROC}))
+#AUTOTOOL_STYLE:= autoreconf
+HOST_LDFLAGS+= -lxml2
HOST_CONFIGURE_ARGS+= --without-python \
--without-crypto \
--with-libxml-prefix="${STAGING_HOST_DIR}/usr" \
--with-libxml-include-prefix="${STAGING_HOST_DIR}/usr/include/libxml2" \
--with-libxml-libs-prefix="${STAGING_HOST_DIR}/usr/lib"
-AUTOTOOL_STYLE:= autoreconf
+TARGET_LDFLAGS+= -lxml2
CONFIGURE_ARGS+= --with-libxml-prefix="${STAGING_TARGET_DIR}/usr" \
--with-libxml-include-prefix="${STAGING_TARGET_DIR}/usr/include/libxml2" \
--with-libxml-libs-prefix="${STAGING_TARGET_DIR}/usr/lib" \
diff --git a/package/lighttpd/Makefile b/package/lighttpd/Makefile
index c6865c145..5c126e861 100644
--- a/package/lighttpd/Makefile
+++ b/package/lighttpd/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= lighttpd
-PKG_VERSION:= 1.4.45
+PKG_VERSION:= 1.4.68
PKG_RELEASE:= 1
-PKG_HASH:= 1c97225deea33eefba6d4158c2cef27913d47553263516bbe9d2e2760fc43a3f
+PKG_HASH:= e56f37ae52b63e1ada4d76ce78005affb6e56eea2f6bdb0ce17d6d36e9583384
PKG_DESCR:= lightweight web server
PKG_SECTION:= net/http
PKG_URL:= http://www.lighttpd.net/
@@ -22,9 +22,9 @@ PKGCS_WITH_LIBRESSL:= libressl ca-certificates
PKGCD_WITHOUT_SSL:= use no ssl
PKG_SUBPKGS:= LIGHTTPD LIGHTTPD_MOD_ALIAS LIGHTTPD_MOD_AUTH
-PKG_SUBPKGS+= LIGHTTPD_MOD_CGI LIGHTTPD_MOD_DIRLIST LIGHTTPD_MOD_EVASIVE LIGHTTPD_MOD_EXPIRE LIGHTTPD_MOD_FASTCGI
+PKG_SUBPKGS+= LIGHTTPD_MOD_CGI LIGHTTPD_MOD_DIRLIST LIGHTTPD_MOD_EXPIRE LIGHTTPD_MOD_FASTCGI
PKG_SUBPKGS+= LIGHTTPD_MOD_PROXY LIGHTTPD_MOD_REDIRECT LIGHTTPD_MOD_REWRITE LIGHTTPD_MOD_SETENV
-PKG_SUBPKGS+= LIGHTTPD_MOD_VHOST LIGHTTPD_MOD_SSI LIGHTTPD_MOD_STATUS LIGHTTPD_MOD_USERTRACK
+PKG_SUBPKGS+= LIGHTTPD_MOD_VHOST LIGHTTPD_MOD_SSI LIGHTTPD_MOD_STATUS
PKGSD_LIGHTTPD_MOD_ALIAS:= alias support
PKGSN_LIGHTTPD_MOD_ALIAS:= lighttpd
PKGSD_LIGHTTPD_MOD_AUTH:= authentication support
@@ -35,8 +35,6 @@ PKGSD_LIGHTTPD_MOD_DIRLIST:= Dirlisting support
PKGSB_LIGHTTPD_MOD_DIRLIST:= pcre
PKGSS_LIGHTTPD_MOD_DIRLIST:= libpcre
PKGSN_LIGHTTPD_MOD_DIRLIST:= lighttpd
-PKGSD_LIGHTTPD_MOD_EVASIVE:= Evasive support
-PKGSN_LIGHTTPD_MOD_EVASIVE:= lighttpd
PKGSD_LIGHTTPD_MOD_EXPIRE:= Expire support
PKGSN_LIGHTTPD_MOD_EXPIRE:= lighttpd
PKGSD_LIGHTTPD_MOD_FASTCGI:= FastCGI support
@@ -55,8 +53,6 @@ PKGSD_LIGHTTPD_MOD_SSI:= SSI support
PKGSN_LIGHTTPD_MOD_SSI:= lighttpd
PKGSD_LIGHTTPD_MOD_STATUS:= Status support
PKGSN_LIGHTTPD_MOD_STATUS:= lighttpd
-PKGSD_LIGHTTPD_MOD_USERTRACK:= Usertracking support
-PKGSN_LIGHTTPD_MOD_USERTRACK:= lighttpd
PKGSD_LIGHTTPD_MOD_WEBDAV:= Webdav support
PKGSB_LIGHTTPD_MOD_WEBDAV:= libxml2 sqlite util-linux
PKGSS_LIGHTTPD_MOD_WEBDAV:= libxml2 libsqlite libuuid
@@ -79,7 +75,6 @@ $(eval $(call PKG_template,LIGHTTPD_MOD_ALIAS,lighttpd-mod-alias,$(PKG_VERSION)-
$(eval $(call PKG_template,LIGHTTPD_MOD_AUTH,lighttpd-mod-auth,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIGHTTPD_MOD_AUTH},${PKG_SECTION}))
$(eval $(call PKG_template,LIGHTTPD_MOD_CGI,lighttpd-mod-cgi,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIGHTTPD_MOD_CGI},${PKG_SECTION}))
$(eval $(call PKG_template,LIGHTTPD_MOD_DIRLIST,lighttpd-mod-dirlist,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIGHTTPD_MOD_DIRLIST},${PKG_SECTION}))
-$(eval $(call PKG_template,LIGHTTPD_MOD_EVASIVE,lighttpd-mod-evasive,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIGHTTPD_MOD_EVASIVE},${PKG_SECTION}))
$(eval $(call PKG_template,LIGHTTPD_MOD_EXPIRE,lighttpd-mod-expire,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIGHTTPD_MOD_EXPIRE},${PKG_SECTION}))
$(eval $(call PKG_template,LIGHTTPD_MOD_FASTCGI,lighttpd-mod-fastcgi,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIGHTTPD_MOD_FASTCGI},${PKG_SECTION}))
$(eval $(call PKG_template,LIGHTTPD_MOD_PROXY,lighttpd-mod-proxy,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIGHTTPD_MOD_PROXY},${PKG_SECTION}))
@@ -89,13 +84,11 @@ $(eval $(call PKG_template,LIGHTTPD_MOD_SETENV,lighttpd-mod-setenv,$(PKG_VERSION
$(eval $(call PKG_template,LIGHTTPD_MOD_VHOST,lighttpd-mod-vhost,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIGHTTPD_MOD_VHOST},${PKG_SECTION}))
$(eval $(call PKG_template,LIGHTTPD_MOD_SSI,lighttpd-mod-ssi,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIGHTTPD_MOD_SSI},${PKG_SECTION}))
$(eval $(call PKG_template,LIGHTTPD_MOD_STATUS,lighttpd-mod-status,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIGHTTPD_MOD_STATUS},${PKG_SECTION}))
-$(eval $(call PKG_template,LIGHTTPD_MOD_USERTRACK,lighttpd-mod-usertrack,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIGHTTPD_MOD_USERTRACK},${PKG_SECTION}))
$(eval $(call PKG_mod_template,LIGHTTPD_MOD_ALIAS,alias))
$(eval $(call PKG_mod_template,LIGHTTPD_MOD_AUTH,auth))
$(eval $(call PKG_mod_template,LIGHTTPD_MOD_CGI,cgi))
$(eval $(call PKG_mod_template,LIGHTTPD_MOD_DIRLIST,dirlisting))
-$(eval $(call PKG_mod_template,LIGHTTPD_MOD_EVASIVE,evasive))
$(eval $(call PKG_mod_template,LIGHTTPD_MOD_EXPIRE,expire))
$(eval $(call PKG_mod_template,LIGHTTPD_MOD_FASTCGI,fastcgi))
$(eval $(call PKG_mod_template,LIGHTTPD_MOD_PROXY,proxy))
@@ -105,7 +98,6 @@ $(eval $(call PKG_mod_template,LIGHTTPD_MOD_SETENV,setenv))
$(eval $(call PKG_mod_template,LIGHTTPD_MOD_VHOST,simple_vhost))
$(eval $(call PKG_mod_template,LIGHTTPD_MOD_SSI,ssi))
$(eval $(call PKG_mod_template,LIGHTTPD_MOD_STATUS,status))
-$(eval $(call PKG_mod_template,LIGHTTPD_MOD_USERTRACK,usertrack))
CONFIGURE_ARGS+= --libdir=/usr/lib/lighttpd \
--sysconfdir=/etc/lighttpd \
@@ -113,10 +105,8 @@ CONFIGURE_ARGS+= --libdir=/usr/lib/lighttpd \
--without-zlib \
--without-bzip2 \
--without-fam \
- --without-gdbm \
--without-ldap \
--without-lua \
- --without-memcache \
--without-mysql \
--without-webdav-props \
--without-webdav-locks \
diff --git a/package/linux-atm/Makefile b/package/linux-atm/Makefile
index f2c1ed82e..276b63eaa 100644
--- a/package/linux-atm/Makefile
+++ b/package/linux-atm/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= linux-atm
-PKG_VERSION:= 2.5.1
-PKG_RELEASE:= 3
-PKG_HASH:= 6bc60fe53c9e9c828a6d7f3675da11ad7fb54491863584e01c1051740fe2a286
+PKG_VERSION:= 2.5.2
+PKG_RELEASE:= 1
+PKG_HASH:= 9645481a2b16476b59220aa2d6bc5bc41043f291326c9b37581018fbd16dd53a
PKG_DESCR:= atm library
PKG_SECTION:= libs/net
PKG_BUILDDEP:= flex-host bison-host
@@ -16,15 +16,13 @@ PKG_NOPARALLEL:= 1
PKG_LIBNAME:= libatm
PKG_OPTS:= dev
-PKG_HOST_DEPENDS:= !freebsd
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SUBPKGS:= LIBATM BR2684CTL
PKGSD_BR2684CTL:= br2684ctl ATM utility
PKGSS_BR2684CTL:= libatm
PKGSC_BR2684CTL:= net/route
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tgz
-
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,LIBATM,libatm,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
diff --git a/package/linux-atm/patches/patch-ltmain_sh b/package/linux-atm/patches/patch-ltmain_sh
deleted file mode 100644
index 583f17839..000000000
--- a/package/linux-atm/patches/patch-ltmain_sh
+++ /dev/null
@@ -1,11 +0,0 @@
---- linux-atm-2.5.1.orig/ltmain.sh 2008-08-30 00:27:10.000000000 +0200
-+++ linux-atm-2.5.1/ltmain.sh 2011-01-15 21:47:10.000000000 +0100
-@@ -1676,7 +1676,7 @@ EOF
- # -F/path gives path to uninstalled frameworks, gcc on darwin
- # @file GCC response files
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
-+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-fstack-protector*|-flto)
-
- # Unknown arguments in both finalize_command and compile_command need
- # to be aesthetically quoted because they are evaled later.
diff --git a/package/linux-atm/patches/patch-src_Makefile_am b/package/linux-atm/patches/patch-src_Makefile_am
new file mode 100644
index 000000000..378b4ca16
--- /dev/null
+++ b/package/linux-atm/patches/patch-src_Makefile_am
@@ -0,0 +1,7 @@
+--- linux-atm-2.5.1.orig/src/Makefile.am 2009-08-03 22:36:56.000000000 +0200
++++ linux-atm-2.5.1/src/Makefile.am 2020-09-14 15:09:51.650818873 +0200
+@@ -1,3 +1 @@
+-SUBDIRS = include lib test debug qgen q2931 saal sigd maint arpd ilmid man led lane \
+- mpoad oamd switch config extra br2684
+-
++SUBDIRS = include lib br2684ctl
diff --git a/package/linux-atm/patches/patch-src_Makefile_in b/package/linux-atm/patches/patch-src_Makefile_in
index 843577f7f..17a162daa 100644
--- a/package/linux-atm/patches/patch-src_Makefile_in
+++ b/package/linux-atm/patches/patch-src_Makefile_in
@@ -1,11 +1,11 @@
---- linux-atm-2.5.1.orig/src/Makefile.in 2009-11-30 17:21:16.000000000 +0100
-+++ linux-atm-2.5.1/src/Makefile.in 2009-12-17 16:12:07.284420844 +0100
-@@ -214,7 +214,7 @@ target_vendor = @target_vendor@
+--- linux-atm-2.5.2.orig/src/Makefile.in 2010-12-28 17:06:09.000000000 +0100
++++ linux-atm-2.5.2/src/Makefile.in 2020-09-14 15:27:36.454621754 +0200
+@@ -215,7 +215,7 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-SUBDIRS = include lib test debug qgen q2931 saal sigd maint arpd ilmid man led lane \
-+SUBDIRS = include lib debug qgen q2931 saal sigd maint arpd ilmid man led lane \
++SUBDIRS = include lib debug qgen q2931 saal sigd ilmid led lane \
mpoad oamd switch config extra br2684
all: all-recursive
diff --git a/package/linux-atm/patches/patch-src_qgen_Makefile_in b/package/linux-atm/patches/patch-src_qgen_Makefile_in
deleted file mode 100644
index 9ed7ec3de..000000000
--- a/package/linux-atm/patches/patch-src_qgen_Makefile_in
+++ /dev/null
@@ -1,40 +0,0 @@
---- linux-atm-2.5.1.orig/src/qgen/Makefile.in 2009-11-30 17:21:18.000000000 +0100
-+++ linux-atm-2.5.1/src/qgen/Makefile.in 2014-02-07 21:40:48.000000000 +0100
-@@ -57,15 +57,15 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top
- depcomp = $(SHELL) $(top_srcdir)/depcomp
- am__depfiles_maybe = depfiles
- am__mv = mv -f
--COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-+COMPILE = $(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
- LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-+ --mode=compile $(CC_FOR_BUILD) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
- CCLD = $(CC)
- LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
-- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
-- $(LDFLAGS) -o $@
-+ --mode=link $(CC_FOR_BUILD) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(AM_LDFLAGS) \
-+ $(LDFLAGS_FOR_BUILD) -o $@
- LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS)
- LTLEXCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS)
-@@ -91,7 +91,7 @@ CC_FOR_BUILD = @CC_FOR_BUILD@
- CFLAGS = @CFLAGS_FOR_BUILD@
- CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
- CPP = @CPP@
--CPPFLAGS = @CPPFLAGS@
-+CPPFLAGS =
- CXX = @CXX@
- CXXCPP = @CXXCPP@
- CXXDEPMODE = @CXXDEPMODE@
-@@ -114,7 +114,7 @@ INSTALL_DATA = @INSTALL_DATA@
- INSTALL_PROGRAM = @INSTALL_PROGRAM@
- INSTALL_SCRIPT = @INSTALL_SCRIPT@
- INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
--LDFLAGS = @LDFLAGS@
-+LDFLAGS =
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
diff --git a/package/linux-atm/patches/patch-src_sigd_Makefile_in b/package/linux-atm/patches/patch-src_sigd_Makefile_in
index faa5a1385..62f0e5424 100644
--- a/package/linux-atm/patches/patch-src_sigd_Makefile_in
+++ b/package/linux-atm/patches/patch-src_sigd_Makefile_in
@@ -1,6 +1,6 @@
---- linux-atm-2.5.1.orig/src/sigd/Makefile.in 2009-11-30 17:21:19.000000000 +0100
-+++ linux-atm-2.5.1/src/sigd/Makefile.in 2009-12-17 16:21:42.636433571 +0100
-@@ -244,7 +244,7 @@ atmsigd_XTRAS = mess.o $(top_builddir)/s
+--- linux-atm-2.5.2.orig/src/sigd/Makefile.in 2010-12-28 17:06:11.000000000 +0100
++++ linux-atm-2.5.2/src/sigd/Makefile.in 2020-09-14 15:22:00.557233015 +0200
+@@ -245,7 +245,7 @@ atmsigd_XTRAS = mess.o $(top_builddir)/s
$(top_builddir)/src/lib/libatm.la \
$(top_builddir)/src/saal/libsaal.a
diff --git a/package/linux-atm/patches/patch-src_switch_Makefile_in b/package/linux-atm/patches/patch-src_switch_Makefile_in
index 4a2981839..0aabc8b69 100644
--- a/package/linux-atm/patches/patch-src_switch_Makefile_in
+++ b/package/linux-atm/patches/patch-src_switch_Makefile_in
@@ -1,6 +1,6 @@
---- linux-atm-2.5.1.orig/src/switch/Makefile.in 2009-11-30 17:21:19.000000000 +0100
-+++ linux-atm-2.5.1/src/switch/Makefile.in 2009-12-17 16:30:47.392542123 +0100
-@@ -249,7 +249,7 @@ target_vendor = @target_vendor@
+--- linux-atm-2.5.2.orig/src/switch/Makefile.in 2010-12-28 17:06:11.000000000 +0100
++++ linux-atm-2.5.2/src/switch/Makefile.in 2020-09-14 15:22:00.585234798 +0200
+@@ -250,7 +250,7 @@ target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/package/linux-atm/patches/patch-src_switch_debug_Makefile_in b/package/linux-atm/patches/patch-src_switch_debug_Makefile_in
index 2d8fa57d2..b7e08da25 100644
--- a/package/linux-atm/patches/patch-src_switch_debug_Makefile_in
+++ b/package/linux-atm/patches/patch-src_switch_debug_Makefile_in
@@ -1,6 +1,6 @@
---- linux-atm-2.5.1.orig/src/switch/debug/Makefile.in 2009-11-30 17:21:19.000000000 +0100
-+++ linux-atm-2.5.1/src/switch/debug/Makefile.in 2009-12-17 16:28:31.520542232 +0100
-@@ -199,7 +199,7 @@ sw_debug_SOURCES = debug.c
+--- linux-atm-2.5.2.orig/src/switch/debug/Makefile.in 2010-12-28 17:06:11.000000000 +0100
++++ linux-atm-2.5.2/src/switch/debug/Makefile.in 2020-09-14 15:22:00.573234034 +0200
+@@ -200,7 +200,7 @@ sw_debug_SOURCES = debug.c
sw_debug_XTRAS = $(top_builddir)/src/switch/libsw.a \
$(top_builddir)/src/lib/libatm.la
diff --git a/package/linux-atm/patches/patch-src_switch_tcp_Makefile_in b/package/linux-atm/patches/patch-src_switch_tcp_Makefile_in
index f23a64405..04113eee1 100644
--- a/package/linux-atm/patches/patch-src_switch_tcp_Makefile_in
+++ b/package/linux-atm/patches/patch-src_switch_tcp_Makefile_in
@@ -1,6 +1,6 @@
---- linux-atm-2.5.1.orig/src/switch/tcp/Makefile.in 2009-11-30 17:21:19.000000000 +0100
-+++ linux-atm-2.5.1/src/switch/tcp/Makefile.in 2009-12-17 16:33:08.832418828 +0100
-@@ -199,7 +199,7 @@ sw_tcp_SOURCES = tcpsw.c
+--- linux-atm-2.5.2.orig/src/switch/tcp/Makefile.in 2010-12-28 17:06:11.000000000 +0100
++++ linux-atm-2.5.2/src/switch/tcp/Makefile.in 2020-09-14 15:22:00.593235307 +0200
+@@ -200,7 +200,7 @@ sw_tcp_SOURCES = tcpsw.c
sw_tcp_XTRAS = $(top_builddir)/src/switch/libsw.a \
$(top_builddir)/src/lib/libatm.la
diff --git a/package/lirc/Makefile b/package/lirc/Makefile
index b72992549..9f2e886c2 100644
--- a/package/lirc/Makefile
+++ b/package/lirc/Makefile
@@ -4,11 +4,12 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= lirc
-PKG_VERSION:= 0.9.4
+PKG_VERSION:= 0.10.2
PKG_RELEASE:= 1
-PKG_HASH:= dd18a6751674fd61e4a96eebc3b9e5c883389d6230811943513443522dfc5dd0
+PKG_HASH:= 3d44ec8274881cf262f160805641f0827ffcc20ade0d85e7e6f3b90e0d3d222a
PKG_DESCR:= decode and send infra-red signals
PKG_SECTION:= sys/hw
+PKG_BUILDDEP:= libxml2-host libxslt-host
PKG_URL:= http://www.lirc.org/
PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=lirc/}
diff --git a/package/logitechmediaserver/Makefile b/package/logitechmediaserver/Makefile
index 5fcd398c3..fdaa45edb 100644
--- a/package/logitechmediaserver/Makefile
+++ b/package/logitechmediaserver/Makefile
@@ -4,10 +4,10 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= logitechmediaserver
-PKG_VERSION:= 7.9.1
-PKG_EXTRAVER:= 1519287262-noCPAN
+PKG_VERSION:= 8.4.1
+PKG_EXTRAVER:= 1708787582-noCPAN
PKG_RELEASE:= 1
-PKG_HASH:= c57cb0158bed9804d30283890df186964ae6ad8fe72e21857b08b6592c00fd5f
+PKG_HASH:= b521bb7e03ee24003e718298cf54c7aac29e59a2da37d55a3380904397341802
PKG_DESCR:= popular media server
PKG_SECTION:= mm/audio
PKG_NEEDS:= data
@@ -19,7 +19,7 @@ PKG_DEPENDS+= p5-dbd-sqlite p5-tie-refhash p5-template-toolkit
PKG_DEPENDS+= p5-class-xsaccessor p5-io-interface p5-anyevent
PKG_BUILDDEP:= perl
PKG_URL:= http://wiki.slimdevices.com/index.php/Logitech_Media_Server
-PKG_SITES:= http://downloads.slimdevices.com/nightly/7.9/sc/a141d03b6489a3a1c65eebc34213e809d1c95df4/
+PKG_SITES:= https://downloads.slimdevices.com/nightly/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}-${PKG_EXTRAVER}.tgz
WRKDIST= ${WRKDIR}/${PKG_NAME}-${PKG_VERSION}-${PKG_EXTRAVER}
diff --git a/package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm b/package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm
deleted file mode 100644
index 39d9a53a6..000000000
--- a/package/logitechmediaserver/patches/patch-Slim_Utils_OS_Linux_pm
+++ /dev/null
@@ -1,13 +0,0 @@
---- logitechmediaserver-7.9.1-1502887423-noCPAN.orig/Slim/Utils/OS/Linux.pm 2017-08-09 10:50:44.000000000 +0200
-+++ logitechmediaserver-7.9.1-1502887423-noCPAN/Slim/Utils/OS/Linux.pm 2017-08-17 20:44:24.015911172 +0200
-@@ -47,6 +47,10 @@ sub getFlavor {
-
- return 'Netgear RAIDiator';
-
-+ } elsif (-f '/etc/.adktarget') {
-+
-+ return 'OpenADK';
-+
- } elsif (-f '/etc/squeezeos.version') {
-
- return 'SqueezeOS';
diff --git a/package/logrotate/Makefile b/package/logrotate/Makefile
index 4701a9c0c..166edcbdb 100644
--- a/package/logrotate/Makefile
+++ b/package/logrotate/Makefile
@@ -4,24 +4,19 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= logrotate
-PKG_VERSION:= 3.8.9
+PKG_VERSION:= 3.21.0
PKG_RELEASE:= 1
-PKG_HASH:= 700ed7ce9072a1cca324779a74797dfaefdae37ac50a817134b947c4ded1dfa7
+PKG_HASH:= 8fa12015e3b8415c121fc9c0ca53aa872f7b0702f543afda7e32b6c4900f6516
PKG_DESCR:= logfile rotation utility
PKG_SECTION:= sys/misc
PKG_DEPENDS:= libpopt
PKG_BUILDDEP:= popt
-PKG_SITES:= https://fedorahosted.org/releases/l/o/logrotate/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+PKG_SITES:= https://github.com/logrotate/logrotate/releases/download/$(PKG_VERSION)/
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,LOGROTATE,logrotate,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-CONFIG_STYLE:= manual
-TARGET_CFLAGS+= -DVERSION=\"$(PKG_VERSION)\"
-
logrotate-install:
${INSTALL_DIR} ${IDIR_LOGROTATE}/usr/sbin
${INSTALL_BIN} ${WRKINST}/usr/sbin/logrotate ${IDIR_LOGROTATE}/usr/sbin
diff --git a/package/logrotate/patches/patch-Makefile b/package/logrotate/patches/patch-Makefile
deleted file mode 100644
index 9b8fec9c3..000000000
--- a/package/logrotate/patches/patch-Makefile
+++ /dev/null
@@ -1,36 +0,0 @@
---- logrotate-3.8.9.orig/Makefile 2015-02-13 07:11:21.000000000 +0100
-+++ logrotate-3.8.9/Makefile 2015-04-02 16:40:24.000000000 +0200
-@@ -1,11 +1,12 @@
- VERSION = $(shell awk '/Version:/ { print $$2 }' logrotate.spec)
--OS_NAME = $(shell uname -s)
--LFS = $(shell echo `getconf LFS_CFLAGS 2>/dev/null`)
--CFLAGS = -Wall -D_GNU_SOURCE -D$(OS_NAME) -DVERSION=\"$(VERSION)\" -DHAVE_STRPTIME=1 -DHAVE_QSORT $(RPM_OPT_FLAGS) $(LFS)
-+OS_NAME = Linux
-+#LFS = $(shell echo `getconf LFS_CFLAGS 2>/dev/null`)
-+CFLAGS ?=
-+CFLAGS += -D_GNU_SOURCE -D$(OS_NAME) -DVERSION=\"$(VERSION)\" -DHAVE_STRPTIME=1 -DHAVE_QSORT $(RPM_OPT_FLAGS) $(LFS)
- PROG = logrotate
- MAN = logrotate.8
- MAN5 = logrotate.conf.5
--LOADLIBES = -lpopt
-+LIBS = -lpopt
- SVNURL= svn+ssh://svn.fedorahosted.org/svn/logrotate
- SVNPUBURL = http://svn.fedorahosted.org/svn/logrotate
- SVNTAG = r$(subst .,-,$(VERSION))
-@@ -64,7 +65,7 @@ endif
- # Red Hat Linux
- ifeq ($(OS_NAME),Linux)
- INSTALL = install
-- BASEDIR = /usr
-+ BASEDIR = $(DESTDIR)/usr
- endif
-
- # FreeBSD
-@@ -124,6 +125,7 @@ show_warning:
- @echo ""
-
- $(PROG): $(OBJS)
-+ $(CC) $(LDFLAGS) -o $(PROG) $^ $(LIBS)
-
- clean:
- rm -f $(OBJS) $(PROG) core* .depend
diff --git a/package/ltp/Makefile b/package/ltp/Makefile
index cbcb7e9e0..1a039c239 100644
--- a/package/ltp/Makefile
+++ b/package/ltp/Makefile
@@ -4,11 +4,15 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= ltp
-PKG_VERSION:= 20180515
+PKG_VERSION:= 20240129
PKG_RELEASE:= 1
PKG_DESCR:= linux test project
-PKG_HASH:= 8c41f10fa26cf01b50ae91374e3e9570f9a321286560626e182d159aba82d915
-PKG_DEPENDS:= bash mke2fs mkfs
+PKG_HASH:= c302f6b2ca09cbb7835f549777bdb9233fe31f7086d7ad8e65472a0804e3e025
+PKG_DEPENDS:= bash mke2fs mkfs shadow libtirpc libaio
+PKG_DEPENDS+= kmod dosfstools
+PKG_BUILDDEP+= libtirpc libaio
+PKG_KDEPENDS:= coredump bsd-process-acct ikconfig-proc cgroups
+PKG_KDEPENDS+= user-ns net-ns time-ns bpf-syscall blk-dev-loop watch-queue
PKG_NEEDS:= threads
PKG_SECTION:= base/tests
PKG_URL:= http://linux-test-project.github.io
@@ -28,19 +32,12 @@ CONFIGURE_ARGS+= --with-open-posix-testsuite \
--without-power-management-testsuite \
--without-python \
--without-perl \
- --without-expect
+ --without-expect \
+ --disable-metadata
pre-configure:
PATH="$(HOST_PATH)" $(MAKE) -C $(WRKBUILD) autotools
-# bessel float and mallopt not implemented in uClibc-ng
-pre-build:
- -rm ${WRKBUILD}/testcases/misc/math/float/float_bessel.c
- -rm -rf ${WRKBUILD}/testcases/misc/math/float/bessel
- -rm -rf ${WRKBUILD}/testcases/network/{rpc,nfs*}
- -rm -rf ${WRKBUILD}/testcases/kernel/syscalls/profil
- -rm -rf ${WRKBUILD}/testcases/kernel/syscalls/mallopt
-
ltp-install:
$(INSTALL_DIR) $(IDIR_LTP)/opt/ltp/tmp
$(CP) $(WRKINST)/usr/* $(IDIR_LTP)/opt/ltp
diff --git a/package/ltp/patches/patch-Makefile b/package/ltp/patches/patch-Makefile
new file mode 100644
index 000000000..0c47a972d
--- /dev/null
+++ b/package/ltp/patches/patch-Makefile
@@ -0,0 +1,11 @@
+--- ltp-full-20220121.orig/Makefile 2022-01-21 20:33:16.000000000 +0100
++++ ltp-full-20220121/Makefile 2022-02-23 15:14:48.211207957 +0100
+@@ -62,7 +62,7 @@ $(1):: | $$(abs_top_builddir)/$$(basenam
+ endif
+ endef
+
+-COMMON_TARGETS += testcases tools metadata
++COMMON_TARGETS += testcases tools
+
+ # Don't want to nuke the original files if we're installing in-build-tree.
+ ifneq ($(BUILD_TREE_STATE),$(BUILD_TREE_SRCDIR_INSTALL))
diff --git a/package/ltp/patches/patch-runtest_mm b/package/ltp/patches/patch-runtest_mm
deleted file mode 100644
index 968b15e1e..000000000
--- a/package/ltp/patches/patch-runtest_mm
+++ /dev/null
@@ -1,8 +0,0 @@
---- ltp-full-20170929.orig/runtest/mm 2017-09-29 17:11:53.000000000 +0200
-+++ ltp-full-20170929/runtest/mm 2017-10-05 18:58:09.655415743 +0200
-@@ -100,4 +100,4 @@ overcommit_memory06 overcommit_memory -R
-
- max_map_count max_map_count -i 10
-
--min_free_kbytes min_free_kbytes
-+#min_free_kbytes min_free_kbytes
diff --git a/package/ltp/patches/patch-runtest_sched b/package/ltp/patches/patch-runtest_sched
deleted file mode 100644
index 38b8be05d..000000000
--- a/package/ltp/patches/patch-runtest_sched
+++ /dev/null
@@ -1,13 +0,0 @@
---- ltp-5ad79b71f6df2f191f6a81c6ef71078781c0ab15.orig/runtest/sched 2015-12-06 17:03:41.000000000 +0100
-+++ ltp-5ad79b71f6df2f191f6a81c6ef71078781c0ab15/runtest/sched 2015-12-06 17:12:57.000000000 +0100
-@@ -6,8 +6,8 @@ pth_str03 pth_str03
- time-schedule01 time-schedule
- trace_sched01 trace_sched -c 1
-
--hackbench01 hackbench 50 process 1000
--hackbench02 hackbench 20 thread 1000
-+#hackbench01 hackbench 50 process 500
-+#hackbench02 hackbench 20 thread 500
-
- sched_setattr01 sched_setattr01
- sched_getattr01 sched_getattr01
diff --git a/package/ltp/patches/patch-runtest_syscalls b/package/ltp/patches/patch-runtest_syscalls
deleted file mode 100644
index f370daca0..000000000
--- a/package/ltp/patches/patch-runtest_syscalls
+++ /dev/null
@@ -1,11 +0,0 @@
---- ltp-full-20170929.orig/runtest/syscalls 2017-09-29 17:11:53.000000000 +0200
-+++ ltp-full-20170929/runtest/syscalls 2017-10-05 18:58:09.667414299 +0200
-@@ -301,7 +301,7 @@ fork08 fork08
- fork09 fork09
- fork10 fork10
- fork11 fork11
--fork13 fork13 -i 1000000
-+fork13 fork13 -i 10000
- fork14 fork14
-
- fpathconf01 fpathconf01
diff --git a/package/ltp/patches/patch-scenario_groups_default b/package/ltp/patches/patch-scenario_groups_default
deleted file mode 100644
index 62a07df6c..000000000
--- a/package/ltp/patches/patch-scenario_groups_default
+++ /dev/null
@@ -1,14 +0,0 @@
---- ltp-full-20140422.orig/scenario_groups/default 2014-04-23 10:36:54.000000000 +0200
-+++ ltp-full-20140422/scenario_groups/default 2014-07-07 18:27:26.448313302 +0200
-@@ -19,11 +19,9 @@ fcntl-locktests
- connectors
- admin_tools
- timers
--power_management_tests
- numa
- hugetlb
- commands
--hyperthreading
- kernel_misc
- modules
- fs_ext4
diff --git a/package/ltp/patches/patch-testcases_kernel_Makefile b/package/ltp/patches/patch-testcases_kernel_Makefile
deleted file mode 100644
index 8268287dd..000000000
--- a/package/ltp/patches/patch-testcases_kernel_Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
---- ltp-full-20170929.orig/testcases/kernel/Makefile 2017-09-29 17:11:53.000000000 +0200
-+++ ltp-full-20170929/testcases/kernel/Makefile 2017-10-05 18:58:09.679412855 +0200
-@@ -50,7 +50,6 @@ SUBDIRS += connectors \
- numa \
- pty \
- sched \
-- security \
- timers \
- tracing \
- module \
diff --git a/package/ltp/patches/patch-testcases_kernel_syscalls_fanotify_fanotify02_c b/package/ltp/patches/patch-testcases_kernel_syscalls_fanotify_fanotify02_c
deleted file mode 100644
index 32ed42190..000000000
--- a/package/ltp/patches/patch-testcases_kernel_syscalls_fanotify_fanotify02_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- ltp-full-20170929.orig/testcases/kernel/syscalls/fanotify/fanotify02.c 2017-09-29 17:11:54.000000000 +0200
-+++ ltp-full-20170929/testcases/kernel/syscalls/fanotify/fanotify02.c 2017-10-05 18:58:09.683412374 +0200
-@@ -28,6 +28,7 @@
- #define _GNU_SOURCE
- #include "config.h"
-
-+#define _GNU_SOURCE
- #include <stdio.h>
- #include <sys/stat.h>
- #include <sys/types.h>
diff --git a/package/ltp/patches/patch-testcases_kernel_syscalls_fanotify_fanotify04_c b/package/ltp/patches/patch-testcases_kernel_syscalls_fanotify_fanotify04_c
deleted file mode 100644
index 94571d0bb..000000000
--- a/package/ltp/patches/patch-testcases_kernel_syscalls_fanotify_fanotify04_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- ltp-full-20170929.orig/testcases/kernel/syscalls/fanotify/fanotify04.c 2017-09-29 17:11:54.000000000 +0200
-+++ ltp-full-20170929/testcases/kernel/syscalls/fanotify/fanotify04.c 2017-10-05 18:58:09.691411411 +0200
-@@ -29,6 +29,7 @@
- #define _GNU_SOURCE
- #include "config.h"
-
-+#define _GNU_SOURCE
- #include <stdio.h>
- #include <sys/stat.h>
- #include <sys/types.h>
diff --git a/package/ltrace/Makefile b/package/ltrace/Makefile
index 9088aa24e..c26099d09 100644
--- a/package/ltrace/Makefile
+++ b/package/ltrace/Makefile
@@ -4,22 +4,23 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= ltrace
-PKG_VERSION:= c22d359433b333937ee3d803450dc41998115685
+PKG_VERSION:= 0.7.3
PKG_RELEASE:= 1
-PKG_GIT:= hash
+PKG_HASH:= 0e6f8c077471b544c06def7192d983861ad2f8688dd5504beae62f0c5f5b9503
PKG_DESCR:= intercepts and records dynamic library calls
PKG_SECTION:= app/debug
PKG_DEPENDS:= libelf
PKG_BUILDDEP:= libelf
PKG_NEEDS:= c++
PKG_URL:= http://ltrace.org/
-PKG_SITES:= https://alioth.debian.org/anonscm/git/collab-maint/ltrace.git
+PKG_SITES:= http://www.ltrace.org/
+
+DISTFILES:= $(PKG_NAME)_$(PKG_VERSION).orig.tar.bz2
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LTRACE,ltrace,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --disable-werror
ltrace-install:
diff --git a/package/lttng-tools/Makefile b/package/lttng-tools/Makefile
index f3505fe55..fe9678212 100644
--- a/package/lttng-tools/Makefile
+++ b/package/lttng-tools/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= lttng-tools
-PKG_VERSION:= 2.9.5
+PKG_VERSION:= 2.13.11
PKG_RELEASE:= 1
-PKG_HASH:= 77839eb6fc6c652125f08acfd9369701c2516eb05cc2084160e7efc7a3fb731c
+PKG_HASH:= ac5baeef9fa690936b1ca01ecd1742da762c2c08511ff1b4e923938d94d0f979
PKG_DESCR:= open source tracing framework
PKG_SECTION:= app/debug
PKG_BUILDDEP:= popt libxml2 util-linux userspace-rcu ncurses
@@ -20,7 +20,10 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LTTNG_TOOLS,lttng-tools,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-CONFIGURE_ARGS+= --without-lttng-ust
+AUTOTOOL_STYLE:= autoreconf
+CONFIGURE_ARGS+= --without-lttng-ust \
+ --disable-tests \
+ --disable-silent-rules
lttng-tools-install:
$(INSTALL_DIR) $(IDIR_LTTNG_TOOLS)/usr/bin
diff --git a/package/lttng-tools/patches/patch-configure_ac b/package/lttng-tools/patches/patch-configure_ac
new file mode 100644
index 000000000..fcde66d8b
--- /dev/null
+++ b/package/lttng-tools/patches/patch-configure_ac
@@ -0,0 +1,19 @@
+--- lttng-tools-2.13.11.orig/configure.ac 2023-08-21 20:32:56.422853499 +0200
++++ lttng-tools-2.13.11/configure.ac 2024-02-18 06:45:39.022802047 +0100
+@@ -884,6 +884,8 @@ AC_ARG_ENABLE([bin-lttng-sessiond], AS_H
+ [Disable the build of lttng-sessiond binaries]))
+ AC_ARG_ENABLE([extras], AS_HELP_STRING([--disable-extras],
+ [Disable the build of the extra components]))
++AC_ARG_ENABLE([tests], AS_HELP_STRING([--disable-tests],
++ [Disable the build of the test components]))
+
+
+ build_lib_consumer=no
+@@ -1035,6 +1037,7 @@ AM_CONDITIONAL([BUILD_BIN_LTTNG_SESSIOND
+
+ # Export the tests and extras build conditions.
+ AS_IF([\
++test "x$enable_tests" != "xno" && \
+ test "x$enable_bin_lttng" != "xno" && \
+ test "x$enable_bin_lttng_consumerd" != "xno" && \
+ test "x$enable_bin_lttng_crash" != "xno" && \
diff --git a/package/lttng-tools/patches/patch-src_bin_lttng-sessiond_thread_c b/package/lttng-tools/patches/patch-src_bin_lttng-sessiond_thread_c
new file mode 100644
index 000000000..53652ccf1
--- /dev/null
+++ b/package/lttng-tools/patches/patch-src_bin_lttng-sessiond_thread_c
@@ -0,0 +1,11 @@
+--- lttng-tools-2.13.11.orig/src/bin/lttng-sessiond/thread.c 2023-08-21 20:32:56.490852554 +0200
++++ lttng-tools-2.13.11/src/bin/lttng-sessiond/thread.c 2024-02-18 06:55:46.482793807 +0100
+@@ -134,7 +134,7 @@ void lttng_thread_put(struct lttng_threa
+ if (!thread) {
+ return;
+ }
+- assert(thread->ref.refcount);
++ //assert(thread->ref.refcount);
+ urcu_ref_put(&thread->ref, lttng_thread_release);
+ }
+
diff --git a/package/lttng-tools/patches/patch-src_common_fd-handle_c b/package/lttng-tools/patches/patch-src_common_fd-handle_c
new file mode 100644
index 000000000..079fcb539
--- /dev/null
+++ b/package/lttng-tools/patches/patch-src_common_fd-handle_c
@@ -0,0 +1,20 @@
+--- lttng-tools-2.13.11.orig/src/common/fd-handle.c 2023-08-21 20:32:56.530851999 +0200
++++ lttng-tools-2.13.11/src/common/fd-handle.c 2024-02-18 06:50:31.478798080 +0100
+@@ -21,7 +21,7 @@ static void fd_handle_release(struct urc
+ int ret;
+ struct fd_handle *handle = container_of(ref, struct fd_handle, ref);
+
+- assert(handle->fd >= 0);
++ //assert(handle->fd >= 0);
+ ret = close(handle->fd);
+ if (ret == -1) {
+ PERROR("Failed to close file descriptor of fd_handle upon release: fd = %d",
+@@ -78,7 +78,7 @@ void fd_handle_put(struct fd_handle *han
+ LTTNG_HIDDEN
+ int fd_handle_get_fd(struct fd_handle *handle)
+ {
+- assert(handle);
++ //assert(handle);
+ return handle->fd;
+ }
+
diff --git a/package/lttng-tools/patches/patch-src_common_shm_c b/package/lttng-tools/patches/patch-src_common_shm_c
new file mode 100644
index 000000000..e55463125
--- /dev/null
+++ b/package/lttng-tools/patches/patch-src_common_shm_c
@@ -0,0 +1,20 @@
+--- lttng-tools-2.13.11.orig/src/common/shm.c 2023-08-21 20:32:56.550851722 +0200
++++ lttng-tools-2.13.11/src/common/shm.c 2024-02-18 06:56:33.822793165 +0100
+@@ -32,7 +32,7 @@ static int get_wait_shm(char *shm_path,
+ int wait_shm_fd, ret;
+ mode_t mode, old_mode;
+
+- assert(shm_path);
++ //assert(shm_path);
+
+ /* Default permissions */
+ mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP;
+@@ -166,7 +166,7 @@ char *shm_ust_get_mmap(char *shm_path, i
+ char *wait_shm_mmap;
+ long sys_page_size;
+
+- assert(shm_path);
++ //assert(shm_path);
+
+ sys_page_size = sysconf(_SC_PAGE_SIZE);
+ if (sys_page_size < 0) {
diff --git a/package/luajit/Makefile b/package/luajit/Makefile
index 4d1612cd1..21fec1a1e 100644
--- a/package/luajit/Makefile
+++ b/package/luajit/Makefile
@@ -4,17 +4,13 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= luajit
-PKG_VERSION:= 2.0.4
+PKG_VERSION:= 0d313b243194a0b8d2399d8b549ca5a0ff234db5
+PKG_GIT:= hash
PKG_RELEASE:= 1
-PKG_HASH:= 620fa4eb12375021bef6e4f237cbd2dd5d49e56beb414bee052c746beef1807d
PKG_DESCR:= just in time compiler for lua
PKG_SECTION:= dev/lang
PKG_URL:= http://luajit.org/download/
-PKG_SITES:= http://luajit.org/download/
-
-DISTFILES:= LuaJIT-$(PKG_VERSION).tar.gz
-
-WRKDIST= $(WRKDIR)/LuaJIT-$(PKG_VERSION)
+PKG_SITES:= https://luajit.org/git/luajit.git
include $(ADK_TOPDIR)/mk/package.mk
@@ -30,7 +26,7 @@ XAKE_FLAGS+= STATIC_CC="$(TARGET_CC)" \
LDFLAGS='' \
TARGET_CFLAGS='$(TARGET_CFLAGS) -fPIC' \
TARGET_LDFLAGS='$(TARGET_LDFLAGS)' \
- HOST_CC='$(HOST_CC) -m32' \
+ HOST_CC='$(HOST_CC)' \
HOST_CFLAGS='$(HOST_CFLAGS)' \
HOST_LDFLAGS='$(HOST_LDFLAGS)' \
Q=''
diff --git a/package/lvm/Makefile b/package/lvm/Makefile
index ac782d98c..82ff98a3a 100644
--- a/package/lvm/Makefile
+++ b/package/lvm/Makefile
@@ -4,13 +4,14 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= lvm
-PKG_VERSION:= 2.02.177
-PKG_RELEASE:= 1
-PKG_HASH:= 4025a23ec9b15c2cb7486d151c29dc953b75efc4d452cfe9dbbc7c0fac8e80f2
+PKG_VERSION:= 2.02.188
+PKG_RELEASE:= 2
+PKG_HASH:= 7101e8b0816ad77e4390fed9749a090214ba520061cd083437871e19e50cc9bd
PKG_DESCR:= logical volume management
PKG_SECTION:= sys/fs
-PKG_DEPENDS:= libdevmapper libncurses
-PKG_BUILDDEP:= ncurses util-linux
+PKG_DEPENDS:= libdevmapper libncurses libaio
+PKG_KDEPENDS:= blk-dev-dm
+PKG_BUILDDEP:= ncurses util-linux libaio
PKG_NEEDS:= threads
PKG_URL:= http://sourceware.org/lvm2/
PKG_SITES:= http://ftp.gwdg.de/pub/linux/sources.redhat.com/lvm2/
@@ -40,6 +41,8 @@ CONFIGURE_ARGS+= --with-user="" --with-group="" \
--with-optimisation="" \
--disable-testing \
--disable-blkid_wiping \
+ --disable-udev-systemd-background-jobs \
+ --with-symvers=no \
--with-lvm1=none
CONFIGURE_ENV+= ac_cv_flag_HAVE_PIE=no \
ac_cv_func_malloc_0_nonnull=yes \
@@ -49,6 +52,8 @@ lvm-install:
${INSTALL_DIR} ${IDIR_LVM}/usr/sbin
${INSTALL_BIN} ${WRKINST}/usr/sbin/lvm \
${IDIR_LVM}/usr/sbin
+ ${INSTALL_DIR} ${IDIR_LVM}/etc/
+ ${INSTALL_DATA} ./files/lvm.conf ${IDIR_LVM}/etc/
libdevmapper-install:
${INSTALL_DIR} ${IDIR_LIBDEVMAPPER}/usr/lib
diff --git a/package/lvm/files/lvm.conf b/package/lvm/files/lvm.conf
new file mode 100644
index 000000000..a2e77c05d
--- /dev/null
+++ b/package/lvm/files/lvm.conf
@@ -0,0 +1,4 @@
+devices {
+ # avoid constant cfgfs updates
+ write_cache_state = 0
+}
diff --git a/package/lvm/patches/0001-configure-support-builds-without-versioning.patch b/package/lvm/patches/0001-configure-support-builds-without-versioning.patch
new file mode 100644
index 000000000..49c20cccc
--- /dev/null
+++ b/package/lvm/patches/0001-configure-support-builds-without-versioning.patch
@@ -0,0 +1,273 @@
+From 7a45d4d688d4966664ca94619b2ad0fc8d333d77 Mon Sep 17 00:00:00 2001
+From: Zdenek Kabelac <zkabelac@redhat.com>
+Date: Mon, 29 Mar 2021 21:46:12 +0200
+Subject: [PATCH] configure: support builds without versioning
+
+Not all libc (like musl, uclibc dietlibc) libraries support full symbol
+version resolution in runtime like glibc.
+Add support to not generate symbol versions when compiling against them.
+
+Additionally libdevmapper.so was broken when compiled against
+uclibc. Runtime linker loader caused calling dm_task_get_info_base()
+function recursively, leading to segmentation fault.
+
+Introduce --with-symvers=STYLE option, which allows to choose
+between gnu and disabled symbol versioning. By default gnu symbol
+versioning is used.
+__GNUC__ check is replaced now with GNU_SYMVER.
+Additionally ld version script is included only in
+case of gnu option, which slightly reduces output size.
+
+Providing --without-symvers to configure script when building against
+uclibc library fixes segmentation fault error described above, due to
+lack of several versions of the same symbol in libdevmapper.so
+library.
+
+Based on:
+https://patchwork.kernel.org/project/dm-devel/patch/20180831144817.31207-1-m.niestroj@grinn-global.com/
+
+Suggested-by: Marcin Niestroj <m.niestroj@grinn-global.com>
+---
+ configure | 35 ++++++++++++++++++++++++++++++++---
+ configure.ac | 26 +++++++++++++++++++++++---
+ include/configure.h.in | 3 +++
+ lib/misc/lib.h | 4 ++--
+ libdm/datastruct/bitset.c | 4 +---
+ libdm/ioctl/libdm-iface.c | 2 +-
+ libdm/libdm-deptree.c | 2 +-
+ libdm/libdm-stats.c | 2 +-
+ 8 files changed, 64 insertions(+), 14 deletions(-)
+
+diff --git a/configure b/configure
+index bb8d502209d60..eeb8397a27d0b 100755
+--- a/configure
++++ b/configure
+@@ -942,6 +942,7 @@ enable_cmirrord
+ with_cmirrord_pidfile
+ enable_debug
+ with_optimisation
++with_symvers
+ enable_profiling
+ enable_valgrind_pool
+ enable_devmapper
+@@ -1792,6 +1793,8 @@ Optional Packages:
+ --with-cmirrord-pidfile=PATH
+ cmirrord pidfile [PID_DIR/cmirrord.pid]
+ --with-optimisation=OPT C optimisation flag [OPT=-O2]
++ --with-symvers=STYLE use symbol versioning of the shared library
++ [default=gnu]
+ --with-lvmlockd-pidfile=PATH
+ lvmlockd pidfile [PID_DIR/lvmlockd.pid]
+ --with-lvmetad-pidfile=PATH
+@@ -3168,13 +3171,11 @@ if test -z "$CFLAGS"; then :
+ fi
+ case "$host_os" in
+ linux*)
+- CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym"
+ # equivalent to -rdynamic
+ ELDFLAGS="-Wl,--export-dynamic"
+ # FIXME Generate list and use --dynamic-list=.dlopen.sym
+ CLDWHOLEARCHIVE="-Wl,-whole-archive"
+ CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive"
+- LDDEPS="$LDDEPS .export.sym"
+ LIB_SUFFIX=so
+ DEVMAPPER=yes
+ BUILD_LVMETAD=no
+@@ -3190,7 +3191,6 @@ case "$host_os" in
+ ;;
+ darwin*)
+ CFLAGS="$CFLAGS -no-cpp-precomp -fno-common"
+- CLDFLAGS="$CLDFLAGS"
+ ELDFLAGS=
+ CLDWHOLEARCHIVE="-all_load"
+ CLDNOWHOLEARCHIVE=
+@@ -11182,6 +11182,35 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COPTIMISE_FLAG" >&5
+ $as_echo "$COPTIMISE_FLAG" >&6; }
+
++################################################################################
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use symbol versioning" >&5
++$as_echo_n "checking whether to use symbol versioning... " >&6; }
++
++# Check whether --with-symvers was given.
++if test "${with_symvers+set}" = set; then :
++ withval=$with_symvers; case "$withval" in
++ gnu|no) symvers=$withval ;;
++ *) as_fn_error $? "Unknown argument to with-symvers" "$LINENO" 5 ;;
++ esac
++else
++ symvers=gnu
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $symvers" >&5
++$as_echo "$symvers" >&6; }
++
++if test "$GCC" = "yes" && test "$symvers" = "gnu" ; then
++
++$as_echo "#define GNU_SYMVER 1" >>confdefs.h
++
++ case "$host_os" in
++ linux*)
++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version-script,.export.sym"
++ LDDEPS="$LDDEPS .export.sym"
++ ;;
++ esac
++fi
++
+ ################################################################################
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to gather gcov profiling data" >&5
+ $as_echo_n "checking whether to gather gcov profiling data... " >&6; }
+diff --git a/configure.ac b/configure.ac
+index f040a5a713d7f..a2697d15c9150 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -30,13 +30,11 @@ AC_CANONICAL_TARGET([])
+ AS_IF([test -z "$CFLAGS"], [COPTIMISE_FLAG="-O2"])
+ case "$host_os" in
+ linux*)
+- CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym"
+ # equivalent to -rdynamic
+ ELDFLAGS="-Wl,--export-dynamic"
+ # FIXME Generate list and use --dynamic-list=.dlopen.sym
+ CLDWHOLEARCHIVE="-Wl,-whole-archive"
+ CLDNOWHOLEARCHIVE="-Wl,-no-whole-archive"
+- LDDEPS="$LDDEPS .export.sym"
+ LIB_SUFFIX=so
+ DEVMAPPER=yes
+ BUILD_LVMETAD=no
+@@ -52,7 +50,6 @@ case "$host_os" in
+ ;;
+ darwin*)
+ CFLAGS="$CFLAGS -no-cpp-precomp -fno-common"
+- CLDFLAGS="$CLDFLAGS"
+ ELDFLAGS=
+ CLDWHOLEARCHIVE="-all_load"
+ CLDNOWHOLEARCHIVE=
+@@ -981,6 +978,29 @@ AC_ARG_WITH(optimisation,
+ COPTIMISE_FLAG=$withval)
+ AC_MSG_RESULT($COPTIMISE_FLAG)
+
++################################################################################
++dnl -- Symbol versioning
++AC_MSG_CHECKING(whether to use symbol versioning)
++AC_ARG_WITH(symvers,
++ AC_HELP_STRING([--with-symvers=STYLE],
++ [use symbol versioning of the shared library [default=gnu]]),
++ [ case "$withval" in
++ gnu|no) symvers=$withval ;;
++ *) AC_MSG_ERROR(Unknown argument to with-symvers) ;;
++ esac], symvers=gnu)
++AC_MSG_RESULT($symvers)
++
++if test "$GCC" = "yes" && test "$symvers" = "gnu" ; then
++ AC_DEFINE(GNU_SYMVER, 1,
++ [Define to use GNU versioning in the shared library.])
++ case "$host_os" in
++ linux*)
++ CLDFLAGS="${CLDFLAGS-"$LDFLAGS"} -Wl,--version-script,.export.sym"
++ LDDEPS="$LDDEPS .export.sym"
++ ;;
++ esac
++fi
++
+ ################################################################################
+ dnl -- Enable profiling
+ AC_MSG_CHECKING(whether to gather gcov profiling data)
+diff --git a/include/configure.h.in b/include/configure.h.in
+index 49663e484e0b2..af0fa31e063a3 100644
+--- a/include/configure.h.in
++++ b/include/configure.h.in
+@@ -150,6 +150,9 @@
+ /* Path to fsadm binary. */
+ #undef FSADM_PATH
+
++/* Define to use GNU versioning in the shared library. */
++#undef GNU_SYMVER
++
+ /* Define to 1 if you have the `alarm' function. */
+ #undef HAVE_ALARM
+
+diff --git a/lib/misc/lib.h b/lib/misc/lib.h
+index d7fa5c721c118..3cd7a76ae3486 100644
+--- a/lib/misc/lib.h
++++ b/lib/misc/lib.h
+@@ -42,7 +42,7 @@
+ * specified version string.
+ *
+ * Since versioning is only available when compiling with GCC the entire
+- * compatibility version should be enclosed in '#if defined(__GNUC__)',
++ * compatibility version should be enclosed in '#if defined(GNU_SYMVER)',
+ * for example:
+ *
+ * int dm_foo(int bar)
+@@ -67,7 +67,7 @@
+ * versions of library symbols prior to the introduction of symbol
+ * versioning: it must never be used for new symbols.
+ */
+-#if defined(__GNUC__)
++#if defined(GNU_SYMVER)
+ #define DM_EXPORT_SYMBOL(func, ver) \
+ __asm__(".symver " #func "_v" #ver ", " #func "@DM_" #ver )
+ #define DM_EXPORT_SYMBOL_BASE(func) \
+diff --git a/libdm/datastruct/bitset.c b/libdm/datastruct/bitset.c
+index b0826e1eb54ec..642587e5472b1 100644
+--- a/libdm/datastruct/bitset.c
++++ b/libdm/datastruct/bitset.c
+@@ -242,7 +242,7 @@ bad:
+ return NULL;
+ }
+
+-#if defined(__GNUC__)
++#if defined(GNU_SYMVER)
+ /*
+ * Maintain backward compatibility with older versions that did not
+ * accept a 'min_num_bits' argument to dm_bitset_parse_list().
+@@ -254,6 +254,4 @@ dm_bitset_t dm_bitset_parse_list_v1_02_129(const char *str, struct dm_pool *mem)
+ }
+ DM_EXPORT_SYMBOL(dm_bitset_parse_list, 1_02_129);
+
+-#else /* if defined(__GNUC__) */
+-
+ #endif
+diff --git a/libdm/ioctl/libdm-iface.c b/libdm/ioctl/libdm-iface.c
+index 14186e680d97d..4be7ab34a704f 100644
+--- a/libdm/ioctl/libdm-iface.c
++++ b/libdm/ioctl/libdm-iface.c
+@@ -2176,7 +2176,7 @@ void dm_lib_exit(void)
+ _version_checked = 0;
+ }
+
+-#if defined(__GNUC__)
++#if defined(GNU_SYMVER)
+ /*
+ * Maintain binary backward compatibility.
+ * Version script mechanism works with 'gcc' compatible compilers only.
+diff --git a/libdm/libdm-deptree.c b/libdm/libdm-deptree.c
+index ba1ed1991a0cf..802db076e27f1 100644
+--- a/libdm/libdm-deptree.c
++++ b/libdm/libdm-deptree.c
+@@ -3849,7 +3849,7 @@ void dm_tree_node_set_callback(struct dm_tree_node *dnode,
+ dnode->callback_data = data;
+ }
+
+-#if defined(__GNUC__)
++#if defined(GNU_SYMVER)
+ /*
+ * Backward compatible implementations.
+ *
+diff --git a/libdm/libdm-stats.c b/libdm/libdm-stats.c
+index a3697c74dfde8..9f09f1c2f082e 100644
+--- a/libdm/libdm-stats.c
++++ b/libdm/libdm-stats.c
+@@ -5069,7 +5069,7 @@ int dm_stats_start_filemapd(int fd, uint64_t group_id, const char *path,
+ * current dm_stats_create_region() version.
+ */
+
+-#if defined(__GNUC__)
++#if defined(GNU_SYMVER)
+ int dm_stats_create_region_v1_02_106(struct dm_stats *dms, uint64_t *region_id,
+ uint64_t start, uint64_t len, int64_t step,
+ int precise, const char *program_id,
+--
+2.33.1
+
diff --git a/package/lvm/patches/patch-Makefile_in b/package/lvm/patches/patch-Makefile_in
deleted file mode 100644
index 305822e5b..000000000
--- a/package/lvm/patches/patch-Makefile_in
+++ /dev/null
@@ -1,20 +0,0 @@
---- LVM2.2.02.177.orig/Makefile.in 2017-12-18 21:44:34.000000000 +0100
-+++ LVM2.2.02.177/Makefile.in 2018-06-07 03:09:57.000000000 +0200
-@@ -18,7 +18,7 @@ top_builddir = @top_builddir@
- abs_top_builddir = @abs_top_builddir@
- abs_top_srcdir = @abs_top_srcdir@
-
--SUBDIRS = conf daemons include lib libdaemon libdm man scripts tools
-+SUBDIRS = conf daemons include lib libdaemon libdm scripts tools
-
- ifeq ("@UDEV_RULES@", "yes")
- SUBDIRS += udev
-@@ -69,7 +69,7 @@ liblvm.device-mapper: include.device-map
- daemons.device-mapper: libdm.device-mapper
- tools.device-mapper: libdm.device-mapper
- scripts.device-mapper: include.device-mapper
--device-mapper: tools.device-mapper daemons.device-mapper man.device-mapper
-+device-mapper: tools.device-mapper daemons.device-mapper
-
- ifeq ("@INTL@", "yes")
- lib.pofile: include.pofile
diff --git a/package/lvm/patches/patch-conf_Makefile_in b/package/lvm/patches/patch-conf_Makefile_in
deleted file mode 100644
index 5b910dba7..000000000
--- a/package/lvm/patches/patch-conf_Makefile_in
+++ /dev/null
@@ -1,23 +0,0 @@
---- LVM2.2.02.168.orig/conf/Makefile.in 2016-12-01 00:17:28.000000000 +0100
-+++ LVM2.2.02.168/conf/Makefile.in 2017-03-27 19:47:20.000000000 +0200
-@@ -37,14 +37,16 @@ generate:
-
- install_conf: $(CONFSRC)
- @if [ ! -e $(confdir)/$(CONFDEST) ]; then \
-- echo "$(INSTALL_WDATA) -D $< $(confdir)/$(CONFDEST)"; \
-- $(INSTALL_WDATA) -D $< $(confdir)/$(CONFDEST); \
-+ echo "$(INSTALL_WDATA) $< $(confdir)/$(CONFDEST)"; \
-+ $(INSTALL_DIR) $(confdir); \
-+ $(INSTALL_WDATA) $< $(confdir)/$(CONFDEST); \
- fi
-
- install_localconf: $(CONFLOCAL)
- @if [ ! -e $(confdir)/$(CONFLOCAL) ]; then \
-- echo "$(INSTALL_WDATA) -D $< $(confdir)/$(CONFLOCAL)"; \
-- $(INSTALL_WDATA) -D $< $(confdir)/$(CONFLOCAL); \
-+ echo "$(INSTALL_WDATA) $< $(confdir)/$(CONFLOCAL)"; \
-+ $(INSTALL_DIR) $(confdir); \
-+ $(INSTALL_WDATA) $< $(confdir)/$(CONFLOCAL); \
- fi
-
- install_profiles: $(PROFILES)
diff --git a/package/lvm/patches/patch-configure_in b/package/lvm/patches/patch-configure_in
deleted file mode 100644
index a1b99eae9..000000000
--- a/package/lvm/patches/patch-configure_in
+++ /dev/null
@@ -1,45 +0,0 @@
---- LVM2.2.02.177.orig/configure.in 2017-12-18 21:44:34.000000000 +0100
-+++ LVM2.2.02.177/configure.in 2018-06-07 03:09:58.000000000 +0200
-@@ -29,7 +29,7 @@ AC_CANONICAL_TARGET([])
-
- AS_IF([test -z "$CFLAGS"], [COPTIMISE_FLAG="-O2"])
- case "$host_os" in
-- linux*)
-+ *)
- CLDFLAGS="$CLDFLAGS -Wl,--version-script,.export.sym"
- # equivalent to -rdynamic
- ELDFLAGS="-Wl,--export-dynamic"
-@@ -50,21 +50,6 @@ case "$host_os" in
- FSADM=yes
- BLKDEACTIVATE=yes
- ;;
-- darwin*)
-- CFLAGS="$CFLAGS -no-cpp-precomp -fno-common"
-- CLDFLAGS="$CLDFLAGS"
-- ELDFLAGS=
-- CLDWHOLEARCHIVE="-all_load"
-- CLDNOWHOLEARCHIVE=
-- LIB_SUFFIX=dylib
-- DEVMAPPER=yes
-- ODIRECT=no
-- DM_IOCTLS=no
-- SELINUX=no
-- CLUSTER=none
-- FSADM=no
-- BLKDEACTIVATE=no
-- ;;
- esac
-
- ################################################################################
-@@ -111,10 +96,8 @@ AC_CHECK_HEADERS([assert.h ctype.h diren
- AC_CHECK_HEADERS(termios.h sys/statvfs.h sys/timerfd.h sys/vfs.h linux/magic.h linux/fiemap.h)
-
- case "$host_os" in
-- linux*)
-+ *)
- AC_CHECK_HEADERS(asm/byteorder.h linux/fs.h malloc.h,,AC_MSG_ERROR(bailing out)) ;;
-- darwin*)
-- AC_CHECK_HEADERS(machine/endian.h sys/disk.h,,AC_MSG_ERROR(bailing out)) ;;
- esac
-
- ################################################################################
diff --git a/package/lvm/patches/patch-lib_mm_memlock_c b/package/lvm/patches/patch-lib_mm_memlock_c
deleted file mode 100644
index af53ad132..000000000
--- a/package/lvm/patches/patch-lib_mm_memlock_c
+++ /dev/null
@@ -1,76 +0,0 @@
---- LVM2.2.02.177.orig/lib/mm/memlock.c 2017-12-18 21:44:35.000000000 +0100
-+++ LVM2.2.02.177/lib/mm/memlock.c 2018-06-07 03:09:58.000000000 +0200
-@@ -25,7 +25,6 @@
- #include <sys/mman.h>
- #include <sys/time.h>
- #include <sys/resource.h>
--#include <malloc.h>
-
- #ifdef HAVE_VALGRIND
- #include <valgrind.h>
-@@ -152,10 +151,8 @@ static void _touch_memory(void *mem, siz
- static void _allocate_memory(void)
- {
- #ifndef VALGRIND_POOL
-- void *stack_mem;
-+ void *stack_mem, *temp_malloc_mem;
- struct rlimit limit;
-- int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks;
-- char *areas[max_areas];
-
- /* Check if we could preallocate requested stack */
- if ((getrlimit (RLIMIT_STACK, &limit) == 0) &&
-@@ -164,50 +161,13 @@ static void _allocate_memory(void)
- _touch_memory(stack_mem, _size_stack);
- /* FIXME else warn user setting got ignored */
-
-- /*
-- * When a brk() fails due to fragmented address space (which sometimes
-- * happens when we try to grab 8M or so), glibc will make a new
-- * arena. In this arena, the rules for using “direct” mmap are relaxed,
-- * circumventing the MAX_MMAPs and MMAP_THRESHOLD settings. We can,
-- * however, detect when this happens with mallinfo() and try to co-opt
-- * malloc into using MMAP as a MORECORE substitute instead of returning
-- * MMAP'd memory directly. Since MMAP-as-MORECORE does not munmap the
-- * memory on free(), this is good enough for our purposes.
-- */
-- while (missing > 0) {
-- struct mallinfo inf = mallinfo();
-- hblks = inf.hblks;
--
-- if ((areas[area] = malloc(_size_malloc_tmp)))
-- _touch_memory(areas[area], _size_malloc_tmp);
--
-- inf = mallinfo();
--
-- if (hblks < inf.hblks) {
-- /* malloc cheated and used mmap, even though we told it
-- not to; we try with twice as many areas, each half
-- the size, to circumvent the faulty logic in glibc */
-- free(areas[area]);
-- _size_malloc_tmp /= 2;
-- } else {
-- ++ area;
-- missing -= _size_malloc_tmp;
-- }
--
-- if (area == max_areas && missing > 0) {
-- /* Too bad. Warn the user and proceed, as things are
-- * most likely going to work out anyway. */
-- log_warn("WARNING: Failed to reserve memory, %d bytes missing.", missing);
-- break;
-- }
-- }
-+ if ((temp_malloc_mem = malloc(_size_malloc_tmp)))
-+ _touch_memory(temp_malloc_mem, _size_malloc_tmp);
-
- if ((_malloc_mem = malloc(_size_malloc)))
- _touch_memory(_malloc_mem, _size_malloc);
-
-- /* free up the reserves so subsequent malloc's can use that memory */
-- for (i = 0; i < area; ++i)
-- free(areas[i]);
-+ free(temp_malloc_mem);
- #endif
- }
-
diff --git a/package/lvm/patches/patch-libdm_Makefile_in b/package/lvm/patches/patch-libdm_Makefile_in
deleted file mode 100644
index 4943fab06..000000000
--- a/package/lvm/patches/patch-libdm_Makefile_in
+++ /dev/null
@@ -1,49 +0,0 @@
---- LVM2.2.02.168.orig/libdm/Makefile.in 2016-12-01 00:17:30.000000000 +0100
-+++ LVM2.2.02.168/libdm/Makefile.in 2017-03-27 20:24:52.000000000 +0200
-@@ -38,10 +38,7 @@ SOURCES =\
-
- INCLUDES = -I$(srcdir)/$(interface)
-
--ifeq ("@STATIC_LINK@", "yes")
- LIB_STATIC = $(interface)/libdevmapper.a
--endif
--
- LIB_SHARED = $(interface)/libdevmapper.$(LIB_SUFFIX)
- LIB_VERSION = $(LIB_VERSION_DM)
- TARGETS = libdevmapper.$(LIB_SUFFIX) libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION)
-@@ -69,9 +66,7 @@ libdevmapper.$(LIB_SUFFIX) libdevmapper.
-
- INSTALL_TYPE = install_dynamic
-
--ifeq ("@STATIC_LINK@", "yes")
-- INSTALL_TYPE += install_static
--endif
-+INSTALL_TYPE += install_static
-
- ifeq ("@PKGCONFIG@", "yes")
- INSTALL_TYPE += install_pkgconfig
-@@ -82,7 +77,8 @@ install: $(INSTALL_TYPE) install_include
- install_device-mapper: install
-
- install_include: $(srcdir)/libdevmapper.h
-- $(INSTALL_DATA) -D $< $(includedir)/$(<F)
-+ $(INSTALL_DIR) $(includedir)
-+ $(INSTALL_DATA) $< $(includedir)/$(<F)
-
- install_dynamic: install_@interface@
-
-@@ -91,10 +87,12 @@ install_static: install_@interface@_stat
- install_ioctl: install_lib_shared
-
- install_pkgconfig: libdevmapper.pc
-- $(INSTALL_DATA) -D $< $(pkgconfigdir)/devmapper.pc
-+ $(INSTALL_DIR) $(pkgconfigdir)
-+ $(INSTALL_DATA) $< $(pkgconfigdir)/devmapper.pc
-
- install_ioctl_static: $(LIB_STATIC)
-- $(INSTALL_DATA) -D $< $(usrlibdir)/$(<F)
-+ $(INSTALL_DIR) $(usrlibdir)
-+ $(INSTALL_DATA) $< $(usrlibdir)/$(<F)
-
- CLEAN_TARGETS += ioctl/libdevmapper.a
- DISTCLEAN_TARGETS += libdevmapper.pc
diff --git a/package/lvm/patches/patch-make_tmpl_in b/package/lvm/patches/patch-make_tmpl_in
deleted file mode 100644
index 7ddf32071..000000000
--- a/package/lvm/patches/patch-make_tmpl_in
+++ /dev/null
@@ -1,28 +0,0 @@
---- LVM2.2.02.177.orig/make.tmpl.in 2017-12-18 21:44:35.000000000 +0100
-+++ LVM2.2.02.177/make.tmpl.in 2018-06-07 03:09:58.000000000 +0200
-@@ -468,7 +468,8 @@ $(LIB_SHARED): $(LIB_SHARED).$(LIB_VERSI
- CLEAN_TARGETS += $(LDDEPS) .exported_symbols_generated
-
- install_lib_shared: $(LIB_SHARED)
-- $(INSTALL_PROGRAM) -D $< $(libdir)/$(<F).$(LIB_VERSION)
-+ $(INSTALL_DIR) $(libdir)
-+ $(INSTALL_PROGRAM) $< $(libdir)/$(<F).$(LIB_VERSION)
- $(INSTALL_DIR) $(usrlibdir)
- $(LN_S) -f $(USRLIB_RELPATH)$(<F).$(LIB_VERSION) $(usrlibdir)/$(<F)
-
-@@ -476,11 +477,13 @@ install_lib_shared: $(LIB_SHARED)
- # and for compatibility links in libdir are created
- # when the code is fixed links could be removed.
- install_dm_plugin: $(LIB_SHARED)
-- $(INSTALL_PROGRAM) -D $< $(libdir)/device-mapper/$(<F)
-+ $(INSTALL_DIR) $(libdir)
-+ $(INSTALL_PROGRAM) $< $(libdir)/device-mapper/$(<F)
- $(LN_S) -f device-mapper/$(<F) $(libdir)/$(<F)
-
- install_lvm2_plugin: $(LIB_SHARED)
-- $(INSTALL_PROGRAM) -D $< $(libdir)/lvm2/$(<F)
-+ $(INSTALL_DIR) $(libdir)
-+ $(INSTALL_PROGRAM) $< $(libdir)/lvm2/$(<F)
- $(LN_S) -f lvm2/$(<F) $(libdir)/$(<F)
- $(LN_S) -f $(<F) $(libdir)/$(<F).$(LIB_VERSION)
- endif
diff --git a/package/lvm/patches/patch-scripts_Makefile_in b/package/lvm/patches/patch-scripts_Makefile_in
deleted file mode 100644
index af1cea8cb..000000000
--- a/package/lvm/patches/patch-scripts_Makefile_in
+++ /dev/null
@@ -1,12 +0,0 @@
---- LVM2.2.02.168.orig/scripts/Makefile.in 2016-12-01 00:17:31.000000000 +0100
-+++ LVM2.2.02.168/scripts/Makefile.in 2017-03-27 20:49:38.000000000 +0200
-@@ -51,7 +51,8 @@ vpath %.sh $(srcdir)
- vpath %.ocf $(srcdir)
-
- %_install: %.sh
-- $(INSTALL_PROGRAM) -D $< $(sbindir)/$(basename $(<F))
-+ $(INSTALL_DIR) $(sbindir)
-+ $(INSTALL_PROGRAM) $< $(sbindir)/$(basename $(<F))
-
- %_install: %.ocf
- $(INSTALL_DIR) $(ocf_scriptdir)
diff --git a/package/lvm/patches/patch-tools_Makefile_in b/package/lvm/patches/patch-tools_Makefile_in
deleted file mode 100644
index 9fc597990..000000000
--- a/package/lvm/patches/patch-tools_Makefile_in
+++ /dev/null
@@ -1,48 +0,0 @@
---- LVM2.2.02.177.orig/tools/Makefile.in 2017-12-18 21:44:35.000000000 +0100
-+++ LVM2.2.02.177/tools/Makefile.in 2018-06-07 03:15:42.000000000 +0200
-@@ -217,18 +217,21 @@ endif
- install_dmsetup_dynamic install_dmsetup_static
-
- install_cmdlib_include: $(srcdir)/lvm2cmd.h
-- $(INSTALL_DATA) -D $< $(includedir)/$(<F)
-+ $(INSTALL_DIR) $(includedir)
-+ $(INSTALL_DATA) $< $(includedir)/$(<F)
-
- install_cmdlib_dynamic: liblvm2cmd.$(LIB_SUFFIX)
-- $(INSTALL_PROGRAM) -D $< $(libdir)/$(<F).$(LIB_VERSION)
- $(INSTALL_DIR) $(usrlibdir)
-+ $(INSTALL_PROGRAM) $< $(libdir)/$(<F).$(LIB_VERSION)
- $(LN_S) -f $(USRLIB_RELPATH)$(<F).$(LIB_VERSION) $(usrlibdir)/$(<F)
-
- install_cmdlib_static: liblvm2cmd-static.a
-+ $(INSTALL_DIR) $(usrlibdir)
- $(INSTALL_DATA) -D $< $(usrlibdir)/liblvm2cmd.a
-
- install_tools_dynamic: lvm .commands
-- $(INSTALL_PROGRAM) -D lvm $(sbindir)/lvm
-+ $(INSTALL_DIR) $(sbindir)
-+ $(INSTALL_PROGRAM) lvm $(sbindir)/lvm
- @echo Creating symbolic links for individual commands in $(sbindir)
- @for v in `cat .commands`; do \
- echo "$(LN_S) -f lvm $(sbindir)/$$v"; \
-@@ -236,14 +239,17 @@ install_tools_dynamic: lvm .commands
- done;
-
- install_tools_static: lvm.static
-- $(INSTALL_PROGRAM) -D $< $(staticdir)/$(<F)
-+ $(INSTALL_DIR) $(staticdir)
-+ $(INSTALL_PROGRAM) $< $(staticdir)/$(<F)
-
- install_dmsetup_dynamic: dmsetup
-- $(INSTALL_PROGRAM) -D $< $(sbindir)/$(<F)
-+ $(INSTALL_DIR) $(sbindir)
-+ $(INSTALL_PROGRAM) $< $(sbindir)/$(<F)
- $(LN_S) -f $(<F) $(sbindir)/dmstats
-
- install_dmsetup_static: dmsetup.static
-- $(INSTALL_PROGRAM) -D $< $(staticdir)/$(<F)
-+ $(INSTALL_DIR) $(staticdir)
-+ $(INSTALL_PROGRAM) $< $(staticdir)/$(<F)
- $(LN_S) -f $(<F) $(staticdir)/dmstats
-
- install_device-mapper: $(INSTALL_DMSETUP_TARGETS)
diff --git a/package/lvm/patches/patch-tools_lvmcmdline_c b/package/lvm/patches/patch-tools_lvmcmdline_c
deleted file mode 100644
index 8c5cb5c6b..000000000
--- a/package/lvm/patches/patch-tools_lvmcmdline_c
+++ /dev/null
@@ -1,34 +0,0 @@
---- LVM2.2.02.177.orig/tools/lvmcmdline.c 2017-12-18 21:44:35.000000000 +0100
-+++ LVM2.2.02.177/tools/lvmcmdline.c 2018-06-07 03:09:58.000000000 +0200
-@@ -3093,9 +3093,12 @@ int lvm_split(char *str, int *argc, char
- static int _check_standard_fds(void)
- {
- int err = is_valid_fd(STDERR_FILENO);
-+ FILE *stdin_stream = stdin;
-+ FILE *stdout_stream = stdout;
-+ FILE *stderr_stream = stderr;
-
- if (!is_valid_fd(STDIN_FILENO) &&
-- !(stdin = fopen(_PATH_DEVNULL, "r"))) {
-+ !(stdin_stream = fopen(_PATH_DEVNULL, "r"))) {
- if (err)
- perror("stdin stream open");
- else
-@@ -3105,7 +3108,7 @@ static int _check_standard_fds(void)
- }
-
- if (!is_valid_fd(STDOUT_FILENO) &&
-- !(stdout = fopen(_PATH_DEVNULL, "w"))) {
-+ !(stdout_stream = fopen(_PATH_DEVNULL, "w"))) {
- if (err)
- perror("stdout stream open");
- /* else no stdout */
-@@ -3113,7 +3116,7 @@ static int _check_standard_fds(void)
- }
-
- if (!is_valid_fd(STDERR_FILENO) &&
-- !(stderr = fopen(_PATH_DEVNULL, "w"))) {
-+ !(stderr_stream = fopen(_PATH_DEVNULL, "w"))) {
- printf("stderr stream open: %s\n",
- strerror(errno));
- return 0;
diff --git a/package/lynx/Makefile b/package/lynx/Makefile
index 8a1e2b2af..945096303 100644
--- a/package/lynx/Makefile
+++ b/package/lynx/Makefile
@@ -4,26 +4,56 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= lynx
-PKG_VERSION:= 2.8.8
-PKG_RELEASE:= 3
-PKG_HASH:= 234c9dc77d4c4594ad6216d7df4d49eae3019a3880e602f39721b35b97fbc408
+PKG_VERSION:= 2.9.1
+PKG_RELEASE:= 1
+PKG_HASH:= 085fb3924b8684485c6be1b1ca745417da6ace768f94428ead95caf9dd8b56b7
PKG_DESCR:= text browser
PKG_SECTION:= app/browser
-PKG_DEPENDS:= libncurses zlib libressl
-PKG_BUILDDEP:= ncurses zlib libressl
-PKG_URL:= http://lynx.isc.org/
-PKG_SITES:= http://lynx.isc.org/${PKG_NAME}${PKG_VERSION}/
+PKG_DEPENDS:= libncurses zlib
+PKG_BUILDDEP:= ncurses zlib
+PKG_URL:= https://lynx.invisible-island.net/
+PKG_SITES:= https://invisible-island.net/archives/lynx/tarballs/
PKG_NOPARALLEL:= 1
DISTFILES:= ${PKG_NAME}${PKG_VERSION}.tar.gz
-WRKDIST= ${WRKDIR}/lynx2-8-8
+WRKDIST= ${WRKDIR}/$(PKG_NAME)$(PKG_VERSION)
+
+PKG_CHOICES_LYNX:= WITH_LIBRESSL WITH_OPENSSL WITH_GNUTLS WITHOUT_SSL
+PKGCD_WITH_LIBRESSL:= use libressl for crypto
+PKGCS_WITH_LIBRESSL:= libressl ca-certificates
+PKGCB_WITH_LIBRESSL:= libressl
+PKGCD_WITH_OPENSSL:= use libopenssl for crypto
+PKGCS_WITH_OPENSSL:= libopenssl ca-certificates
+PKGCB_WITH_OPENSSL:= openssl
+PKGCD_WITH_GNUTLS:= use gnutls for crypto
+PKGCS_WITH_GNUTLS:= libgnutls ca-certificates
+PKGCB_WITH_GNUTLS:= gnutls
+PKGCD_WITHOUT_SSL:= use no ssl
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,LYNX,lynx,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-TARGET_CPPFLAGS+= -I${STAGING_TARGET_DIR}/include/openssl
-TARGET_CPPFLAGS+= -DUSE_OPENSSL_INCL -DUSE_X509_SUPPORT
+#TARGET_CPPFLAGS+= -I${STAGING_TARGET_DIR}/include/openssl
+#TARGET_CPPFLAGS+= -DUSE_OPENSSL_INCL -DUSE_X509_SUPPORT
+#HOST_CFLAGS+= -DUSE_OPENSSL_INCL -DUSE_X509_SUPPORT
+
+ifeq (${ADK_PACKAGE_LYNX_WITH_LIBRESSL},y)
+CONFIGURE_ARGS+= --with-ssl="${STAGING_TARGET_DIR}/usr" \
+ --without-gnutls
+endif
+ifeq (${ADK_PACKAGE_LYNX_WITH_OPENSSL},y)
+CONFIGURE_ARGS+= --with-ssl="${STAGING_TARGET_DIR}/usr" \
+ --without-gnutls
+endif
+ifeq (${ADK_PACKAGE_LYNX_WITH_GNUTLS},y)
+CONFIGURE_ARGS+= --with-gnutls="${STAGING_TARGET_DIR}/usr" \
+ --without-ssl
+endif
+ifeq (${ADK_PACKAGE_LYNX_WITHOUT_SSL},y)
+CONFIGURE_ARGS+= --without-ssl \
+ --without-gnutls
+endif
CONFIGURE_ENV+= ac_cv_path_TELNET=telnet \
ac_cv_path_TN3270=tn3270 \
@@ -42,7 +72,6 @@ CONFIGURE_ENV+= ac_cv_path_TELNET=telnet \
ac_cv_path_NCURSES_CONFIG=${STAGING_TARGET_DIR}/usr/bin/ncurses5-config
CONFIGURE_ARGS+= --disable-warnings \
- --without-gnutls \
--without-socks \
--without-socks5 \
--enable-addrlist-page \
@@ -59,7 +88,6 @@ CONFIGURE_ARGS+= --disable-warnings \
--without-bzlib \
--without-x \
--with-zlib=${STAGING_TARGET_DIR}/usr \
- --with-ssl=${STAGING_TARGET_DIR}/usr \
--with-curses-dir=${STAGING_TARGET_DIR}/usr \
--disable-full-paths \
--with-cfg-file=/etc/lynx.cfg \
diff --git a/package/lynx/patches/patch-WWW_Library_Implementation_HTTP_c b/package/lynx/patches/patch-WWW_Library_Implementation_HTTP_c
deleted file mode 100644
index 8f563a71b..000000000
--- a/package/lynx/patches/patch-WWW_Library_Implementation_HTTP_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- lynx2-8-8.orig/WWW/Library/Implementation/HTTP.c 2014-01-11 20:06:15.000000000 +0100
-+++ lynx2-8-8/WWW/Library/Implementation/HTTP.c 2017-06-05 13:30:53.165071650 +0200
-@@ -720,7 +720,7 @@ static int HTLoadHTTP(const char *arg,
- #elif SSLEAY_VERSION_NUMBER >= 0x0900
- #ifndef USE_NSS_COMPAT_INCL
- if (!try_tls) {
-- handle->options |= SSL_OP_NO_TLSv1;
-+ SSL_set_options(handle, SSL_OP_NO_TLSv1);
- #if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT)
- } else {
- int ret = (int) SSL_set_tlsext_host_name(handle, ssl_host);
diff --git a/package/lynx/patches/patch-WWW_Library_Implementation_HTUtils_h b/package/lynx/patches/patch-WWW_Library_Implementation_HTUtils_h
deleted file mode 100644
index c8217b70e..000000000
--- a/package/lynx/patches/patch-WWW_Library_Implementation_HTUtils_h
+++ /dev/null
@@ -1,34 +0,0 @@
---- lynx2-8-8.orig/WWW/Library/Implementation/HTUtils.h 2014-02-05 01:50:18.000000000 +0100
-+++ lynx2-8-8/WWW/Library/Implementation/HTUtils.h 2014-03-21 22:14:07.000000000 +0100
-@@ -725,6 +725,8 @@ extern int WWW_TraceMask;
-
- #define SHORTENED_RBIND /* FIXME: do this in configure-script */
-
-+#ifdef DONT_USE_SSL
-+#else
- #ifdef USE_SSL
-
- #define free_func free__func
-@@ -765,6 +767,7 @@ extern int WWW_TraceMask;
-
- #undef free_func
- #endif /* USE_SSL */
-+#endif
-
- #ifdef HAVE_BSD_STDLIB_H
- #include <bsd/stdlib.h> /* prototype for arc4random.h */
-@@ -801,11 +804,14 @@ extern "C" {
-
- extern FILE *TraceFP(void);
-
-+#ifdef DONT_USE_SSL
-+#else
- #ifdef USE_SSL
- extern SSL *HTGetSSLHandle(void);
- extern void HTSSLInitPRNG(void);
- extern int HTGetSSLCharacter(void *handle);
- #endif /* USE_SSL */
-+#endif
-
- #ifdef __cplusplus
- }
diff --git a/package/lynx/patches/patch-makefile_in b/package/lynx/patches/patch-makefile_in
deleted file mode 100644
index 5cb6b5962..000000000
--- a/package/lynx/patches/patch-makefile_in
+++ /dev/null
@@ -1,11 +0,0 @@
---- lynx2-8-8.orig/makefile.in 2014-03-09 22:43:10.000000000 +0100
-+++ lynx2-8-8/makefile.in 2014-03-21 23:17:26.000000000 +0100
-@@ -210,7 +210,7 @@ SRC_CFLAGS = \
- WWWINC=$(WWW_DIR) \
- WWWLIB="../$(WWW_DIR)/libwww.a"
-
--actual_PROG = `echo lynx| sed '$(transform)'`
-+actual_PROG = lynx
- binary_PROG = $(actual_PROG)$x
-
- all lynx$x: cfg_defs.h LYHelp.h
diff --git a/package/lynx/patches/patch-src_chrtrans_makeuctb_c b/package/lynx/patches/patch-src_chrtrans_makeuctb_c
deleted file mode 100644
index 9972a6f8c..000000000
--- a/package/lynx/patches/patch-src_chrtrans_makeuctb_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- lynx2-8-8.orig/src/chrtrans/makeuctb.c 2013-11-29 01:52:56.000000000 +0100
-+++ lynx2-8-8/src/chrtrans/makeuctb.c 2014-03-21 22:12:13.000000000 +0100
-@@ -28,6 +28,7 @@
-
- #define DONT_USE_GETTEXT
- #define DONT_USE_SOCKS5
-+#define DONT_USE_SSL
- #include <UCDefs.h>
- #include <UCkd.h>
-
diff --git a/package/lz4/Makefile b/package/lz4/Makefile
index da85c1a12..148144693 100644
--- a/package/lz4/Makefile
+++ b/package/lz4/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= lz4
-PKG_VERSION:= 1.8.2
+PKG_VERSION:= 1.9.4
PKG_RELEASE:= 1
-PKG_HASH:= 0963fbe9ee90acd1d15e9f09e826eaaf8ea0312e854803caf2db0a6dd40f4464
+PKG_HASH:= 0b0e3aa07c8c063ddf40b082bdf7e37a1562bda40a0ff5272957f3e987e0e54b
PKG_DESCR:= compression utility
PKG_SECTION:= app/archive
PKG_DEPENDS:= liblz4
diff --git a/package/lz4/patches/patch-lib_Makefile b/package/lz4/patches/patch-lib_Makefile
deleted file mode 100644
index 9b883d267..000000000
--- a/package/lz4/patches/patch-lib_Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
---- lz4-1.8.2.orig/lib/Makefile 2018-05-07 23:38:45.000000000 +0200
-+++ lz4-1.8.2/lib/Makefile 2018-05-22 20:22:31.000000000 +0200
-@@ -45,6 +45,7 @@ LIBVER := $(shell echo $(LIBVER_SCRIPT)
- BUILD_SHARED:=yes
- BUILD_STATIC:=yes
-
-+OS?=$(shell uname)
- CPPFLAGS+= -DXXH_NAMESPACE=LZ4_
- CFLAGS ?= -O3
- DEBUGFLAGS:= -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
-@@ -58,7 +59,7 @@ SRCFILES := $(sort $(wildcard *.c))
-
- # OS X linker doesn't support -soname, and use different extension
- # see : https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html
--ifeq ($(shell uname), Darwin)
-+ifeq ($(OS), Darwin)
- SHARED_EXT = dylib
- SHARED_EXT_MAJOR = $(LIBVER_MAJOR).$(SHARED_EXT)
- SHARED_EXT_VER = $(LIBVER).$(SHARED_EXT)
diff --git a/package/lzip/Makefile b/package/lzip/Makefile
index b2a69641e..90fa5dbab 100644
--- a/package/lzip/Makefile
+++ b/package/lzip/Makefile
@@ -4,11 +4,12 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= lzip
-PKG_VERSION:= 1.17
+PKG_VERSION:= 1.24
PKG_RELEASE:= 1
-PKG_HASH:= 9443855e0a33131233b22cdb6c62c9313a483f16cc7415efe88d4a494cea0352
+PKG_HASH:= d42659229b10e066eeb6e81eb673cdd893b672e512d26719c2d95975556ca56c
PKG_DESCR:= compression utility
PKG_SECTION:= app/archive
+PKG_NEEDS:= c++
PKG_URL:= http://www.nongnu.org/lzip/lzip.html
PKG_SITES:= http://download.savannah.gnu.org/releases/lzip/
diff --git a/package/lzip/patches/patch-configure b/package/lzip/patches/patch-configure
index 3ac80460f..f7e067a0e 100644
--- a/package/lzip/patches/patch-configure
+++ b/package/lzip/patches/patch-configure
@@ -1,9 +1,9 @@
---- lzip-1.17.orig/configure 2015-07-09 18:58:33.000000000 +0200
-+++ lzip-1.17/configure 2016-09-24 13:07:38.493476268 +0200
-@@ -20,10 +20,10 @@ bindir='$(exec_prefix)/bin'
- datarootdir='$(prefix)/share'
- infodir='$(datarootdir)/info'
- mandir='$(datarootdir)/man'
+--- lzip-1.24.orig/configure 2024-01-26 14:01:44.000000000 +0100
++++ lzip-1.24/configure 2024-02-12 07:10:37.674941547 +0100
+@@ -23,10 +23,10 @@ mandir='$(datarootdir)/man'
+ build=no
+ check=no
+ installdir=
-CXX=g++
-CPPFLAGS=
-CXXFLAGS='-Wall -W -O2'
@@ -12,6 +12,6 @@
+CPPFLAGS?=
+CXXFLAGS?='-Wall -W -O2'
+LDFLAGS?=
+ MAKEINFO=makeinfo
# checking whether we are using GNU C++.
- ${CXX} --version > /dev/null 2>&1
diff --git a/package/lzma/Makefile b/package/lzma/Makefile
index 4b44d1035..ae77c9b5d 100644
--- a/package/lzma/Makefile
+++ b/package/lzma/Makefile
@@ -9,6 +9,7 @@ PKG_RELEASE:= 1
PKG_HASH:= 02aa57f995d15b7acb7c2496d88a39fb0124ea00bf027cc61dd24eddb5942dff
PKG_DESCR:= compression utility
PKG_SECTION:= app/archive
+PKG_NEEDS:= c++
PKG_URL:= http://tukaani.org/lzma/
PKG_SITES:= http://tukaani.org/lzma/
diff --git a/package/lzop/Makefile b/package/lzop/Makefile
index ca30eee44..b95a4aad5 100644
--- a/package/lzop/Makefile
+++ b/package/lzop/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= lzop
-PKG_VERSION:= 1.03
+PKG_VERSION:= 1.04
PKG_RELEASE:= 1
-PKG_HASH:= c1425b8c77d49f5a679d5a126c90ea6ad99585a55e335a613cae59e909dbb2c9
+PKG_HASH:= 7e72b62a8a60aff5200a047eea0773a8fb205caf7acbe1774d95147f305a2f41
PKG_DESCR:= compression utility
PKG_SECTION:= app/archive
PKG_DEPENDS:= liblzo
diff --git a/package/lzop/patches/patch-src_miniacc_h b/package/lzop/patches/patch-src_miniacc_h
deleted file mode 100644
index a21c26abc..000000000
--- a/package/lzop/patches/patch-src_miniacc_h
+++ /dev/null
@@ -1,26 +0,0 @@
---- lzop-1.03.orig/src/miniacc.h 2010-11-01 15:40:44.000000000 +0100
-+++ lzop-1.03/src/miniacc.h 2017-03-07 05:40:51.656010073 +0100
-@@ -4469,12 +4469,12 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mod
- #if defined(__MSDOS__) && defined(__TURBOC__) && (__TURBOC__ < 0x0150)
- #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
- #else
-- ACCCHK_ASSERT((1 << (8*SIZEOF_INT-1)) < 0)
-+ ACCCHK_ASSERT((int)(1u << (8*SIZEOF_INT-1)) < 0)
- #endif
- ACCCHK_ASSERT((1u << (8*SIZEOF_INT-1)) > 0)
- #if 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
- #else
-- ACCCHK_ASSERT((1l << (8*SIZEOF_LONG-1)) < 0)
-+ ACCCHK_ASSERT((long)(1ul << (8*SIZEOF_LONG-1)) < 0)
- #endif
- ACCCHK_ASSERT((1ul << (8*SIZEOF_LONG-1)) > 0)
- #if defined(acc_int16e_t)
-@@ -4703,7 +4703,7 @@ ACCLIB_EXTERN(int, acc_spawnve) (int mod
- #elif 1 && (ACC_CC_LCC || ACC_CC_LCCWIN32) && !defined(ACCCHK_CFG_PEDANTIC)
- #elif 1 && (ACC_CC_SUNPROC) && !defined(ACCCHK_CFG_PEDANTIC)
- #elif !(ACC_BROKEN_INTEGRAL_PROMOTION) && (SIZEOF_INT > 1)
-- ACCCHK_ASSERT( (((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0)
-+ ACCCHK_ASSERT( (int)((unsigned int)((unsigned char)128) << (int)(8*sizeof(int)-8)) < 0)
- #endif
- #if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0530) && (__BORLANDC__ < 0x0560))
- # pragma option pop
diff --git a/package/m4/Makefile b/package/m4/Makefile
index a6af849a3..6973ed164 100644
--- a/package/m4/Makefile
+++ b/package/m4/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= m4
-PKG_VERSION:= 1.4.18
+PKG_VERSION:= 1.4.19
PKG_RELEASE:= 1
-PKG_HASH:= f2c1e86ca0a404ff281631bdc8377638992744b175afb806e25871a24a934e07
+PKG_HASH:= 63aede5c6d33b6d9b13511cd0be2cac046f2e70fd0a07aa9573a04a82783af96
PKG_DESCR:= macro processor
PKG_SECTION:= dev/tools
PKG_BUILDDEP:= m4-host
diff --git a/package/m4/patches/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch b/package/m4/patches/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch
deleted file mode 100644
index 5c5c11b99..000000000
--- a/package/m4/patches/0001-fflush-adjust-to-glibc-2.28-libio.h-removal.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 4af4a4a71827c0bc5e0ec67af23edef4f15cee8e Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Mon, 5 Mar 2018 10:56:29 -0800
-Subject: [PATCH] fflush: adjust to glibc 2.28 libio.h removal
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Problem reported by Daniel P. Berrangé in:
-https://lists.gnu.org/r/bug-gnulib/2018-03/msg00000.html
-* lib/fbufmode.c (fbufmode):
-* lib/fflush.c (clear_ungetc_buffer_preserving_position)
-(disable_seek_optimization, rpl_fflush):
-* lib/fpending.c (__fpending):
-* lib/fpurge.c (fpurge):
-* lib/freadable.c (freadable):
-* lib/freadahead.c (freadahead):
-* lib/freading.c (freading):
-* lib/freadptr.c (freadptr):
-* lib/freadseek.c (freadptrinc):
-* lib/fseeko.c (fseeko):
-* lib/fseterr.c (fseterr):
-* lib/fwritable.c (fwritable):
-* lib/fwriting.c (fwriting):
-Check _IO_EOF_SEEN instead of _IO_ftrylockfile.
-* lib/stdio-impl.h (_IO_IN_BACKUP) [_IO_EOF_SEEN]:
-Define if not already defined.
-
-[yann.morin.1998@free.fr: partially backport from upstream gnulib]
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-
----
- lib/fflush.c | 6 +++---
- lib/fpending.c | 2 +-
- lib/fpurge.c | 2 +-
- lib/freadahead.c | 2 +-
- lib/freading.c | 2 +-
- lib/fseeko.c | 4 ++--
- lib/stdio-impl.h | 6 ++++++
- 7 files changed, 15 insertions(+), 9 deletions(-)
-
-diff --git a/lib/fflush.c b/build-aux/gnulib/lib/fflush.c
-index 983ade0ff..a6edfa105 100644
---- a/lib/fflush.c
-+++ b/lib/fflush.c
-@@ -33,7 +33,7 @@
- #undef fflush
-
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-
- /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */
- static void
-@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp)
-
- #endif
-
--#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
-+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */)
-
- # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
-@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream)
- if (stream == NULL || ! freading (stream))
- return fflush (stream);
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-
- clear_ungetc_buffer_preserving_position (stream);
-
-diff --git a/lib/fpending.c b/build-aux/gnulib/lib/fpending.c
-index c84e3a5b4..789f50e4e 100644
---- a/lib/fpending.c
-+++ b/lib/fpending.c
-@@ -32,7 +32,7 @@ __fpending (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- return fp->_IO_write_ptr - fp->_IO_write_base;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
- /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */
-diff --git a/lib/fpurge.c b/build-aux/gnulib/lib/fpurge.c
-index b1d417c7a..3aedcc373 100644
---- a/lib/fpurge.c
-+++ b/lib/fpurge.c
-@@ -62,7 +62,7 @@ fpurge (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_IO_read_end = fp->_IO_read_ptr;
- fp->_IO_write_ptr = fp->_IO_write_base;
- /* Avoid memory leak when there is an active ungetc buffer. */
-diff --git a/lib/freadahead.c b/build-aux/gnulib/lib/freadahead.c
-index c2ecb5b28..23ec76ee5 100644
---- a/lib/freadahead.c
-+++ b/lib/freadahead.c
-@@ -30,7 +30,7 @@ extern size_t __sreadahead (FILE *);
- size_t
- freadahead (FILE *fp)
- {
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- if (fp->_IO_write_ptr > fp->_IO_write_base)
- return 0;
- return (fp->_IO_read_end - fp->_IO_read_ptr)
-diff --git a/lib/freading.c b/build-aux/gnulib/lib/freading.c
-index 73c28acdd..c24d0c88a 100644
---- a/lib/freading.c
-+++ b/lib/freading.c
-@@ -31,7 +31,7 @@ freading (FILE *fp)
- /* Most systems provide FILE as a struct and the necessary bitmask in
- <stdio.h>, because they need it for implementing getc() and putc() as
- fast macros. */
--# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- return ((fp->_flags & _IO_NO_WRITES) != 0
- || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0
- && fp->_IO_read_base != NULL));
-diff --git a/lib/fseeko.c b/build-aux/gnulib/lib/fseeko.c
-index 0101ab55f..193f4e8ce 100644
---- a/lib/fseeko.c
-+++ b/lib/fseeko.c
-@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence)
- #endif
-
- /* These tests are based on fpurge.c. */
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- if (fp->_IO_read_end == fp->_IO_read_ptr
- && fp->_IO_write_ptr == fp->_IO_write_base
- && fp->_IO_save_base == NULL)
-@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence)
- return -1;
- }
-
--#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
-+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
- fp->_flags &= ~_IO_EOF_SEEN;
- fp->_offset = pos;
- #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__
-diff --git a/lib/stdio-impl.h b/build-aux/gnulib/lib/stdio-impl.h
-index 78d896e9f..05c5752a2 100644
---- a/lib/stdio-impl.h
-+++ b/lib/stdio-impl.h
-@@ -18,6 +18,12 @@
- the same implementation of stdio extension API, except that some fields
- have different naming conventions, or their access requires some casts. */
-
-+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this
-+ problem by defining it ourselves. FIXME: Do not rely on glibc
-+ internals. */
-+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
-+# define _IO_IN_BACKUP 0x100
-+#endif
-
- /* BSD stdio derived implementations. */
-
---
-2.14.1
-
diff --git a/package/m4/patches/patch-lib_vasnprintf_c b/package/m4/patches/patch-lib_vasnprintf_c
deleted file mode 100644
index 07b989cc6..000000000
--- a/package/m4/patches/patch-lib_vasnprintf_c
+++ /dev/null
@@ -1,28 +0,0 @@
---- m4-1.4.18.orig/lib/vasnprintf.c 2016-12-31 14:54:42.000000000 +0100
-+++ m4-1.4.18/lib/vasnprintf.c 2018-02-24 20:59:00.000000000 +0100
-@@ -4858,7 +4858,10 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
- #endif
- *fbp = dp->conversion;
- #if USE_SNPRINTF
--# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
-+# if ! (((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \
-+ && !defined __UCLIBC__) \
-+ || (defined __APPLE__ && defined __MACH__) \
-+ || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
- fbp[1] = '%';
- fbp[2] = 'n';
- fbp[3] = '\0';
-@@ -4872,6 +4875,13 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *
- in format strings in writable memory may crash the program
- (if compiled with _FORTIFY_SOURCE=2), so we should avoid it
- in this situation. */
-+ /* On Mac OS X 10.3 or newer, we know that snprintf's return
-+ value conforms to ISO C 99: the tests gl_SNPRINTF_RETVAL_C99
-+ and gl_SNPRINTF_TRUNCATION_C99 pass.
-+ Therefore we can avoid using %n in this situation.
-+ On Mac OS X 10.13 or newer, the use of %n in format strings
-+ in writable memory by default crashes the program, so we
-+ should avoid it in this situation. */
- /* On native Windows systems (such as mingw), we can avoid using
- %n because:
- - Although the gl_SNPRINTF_TRUNCATION_C99 test fails,
diff --git a/package/make/Makefile b/package/make/Makefile
index 670bbfe06..ee584771a 100644
--- a/package/make/Makefile
+++ b/package/make/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= make
-PKG_VERSION:= 4.2.1
-PKG_RELEASE:= 2
-PKG_HASH:= e40b8f018c1da64edd1cc9a6fce5fa63b2e707e404e20cad91fbae337c98a5b7
+PKG_VERSION:= 4.4.1
+PKG_RELEASE:= 1
+PKG_HASH:= dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3
PKG_DESCR:= c/c++ code buildtool
PKG_SECTION:= dev/tools
PKG_DEPENDS:= libelf
diff --git a/package/make/patches/patch-configure_ac b/package/make/patches/patch-configure_ac
deleted file mode 100644
index e155851b4..000000000
--- a/package/make/patches/patch-configure_ac
+++ /dev/null
@@ -1,14 +0,0 @@
---- make-4.2.1.orig/configure.ac 2016-06-06 12:27:31.000000000 +0000
-+++ make-4.2.1/configure.ac 2018-02-28 20:57:40.797354623 +0000
-@@ -399,10 +399,9 @@ AC_CACHE_CHECK([if system libc has GNU g
- #include <glob.h>
- #include <fnmatch.h>
-
--#define GLOB_INTERFACE_VERSION 1
- #if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
- # include <gnu-versions.h>
--# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
-+# if _GNU_GLOB_INTERFACE_VERSION == 1 || _GNU_GLOB_INTERFACE_VERSION == 2
- gnu glob
- # endif
- #endif],
diff --git a/package/mariadb/Makefile b/package/mariadb/Makefile
index bbd029bd0..33a865c1f 100644
--- a/package/mariadb/Makefile
+++ b/package/mariadb/Makefile
@@ -4,13 +4,14 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= mariadb
-PKG_VERSION:= 10.1.25
+PKG_VERSION:= 10.11.7
PKG_RELEASE:= 1
-PKG_HASH:= 7205ecaa6f1bc16335ad88faa5c46be52b3ac628a5e795cb942a3f4335b2a0d6
+PKG_HASH:= 5239a245ed90517e96396605cd01ccd8f73cd7442d1b3076b6ffe258110e5157
PKG_DESCR:= sql client library
PKG_SECTION:= libs/db
-PKG_DEPENDS:= libncurses zlib libevent libpcre
-PKG_BUILDDEP:= cmake-host mariadb-host ncurses zlib readline libevent pcre libressl
+PKG_DEPENDS:= libncurses zlib libevent libpcre boost libfmt libkrb5
+PKG_BUILDDEP:= cmake-host mariadb-host ncurses zlib readline libevent
+PKG_BUILDDEP+= boost fmt gnutls pcre2 krb5
HOST_BUILDDEP:= cmake-host
PKG_NEEDS:= c++
PKG_URL:= http://www.mariadb.org/
@@ -18,6 +19,8 @@ PKG_SITES= https://downloads.mariadb.org/interstitial/mariadb-$(PKG_VERSION)/so
PKG_LIBNAME:= libmariadbclient
PKG_OPTS:= dev
+PKG_CFLINE_MARIADB:= select ADK_PACKAGE_BOOST_DATE_TIME
+
# atomic ops not implemented
PKG_ARCH_DEPENDS:= !mips
@@ -37,15 +40,15 @@ HOST_ALL_TARGET:= import_executables
CONFIG_STYLE:= cmake
CMAKE_FLAGS+= -DCMAKE_CROSSCOMPILING=ON \
-DIMPORT_EXECUTABLES=${BASE_DIR}/host_build_${GNU_HOST_NAME}/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)-host/$(PKG_NAME)-$(PKG_VERSION)/import_executables.cmake \
- -DWITH_SSL=system \
- -DWITHOUT_SERVER=OFF \
+ -DWITHOUT_SERVER=ON \
+ -DWITH_SSL=bundled \
+ -DWITH_SYSTEMD=auto \
-DSECURITY_HARDENED=OFF \
-DWITHOUT_DYNAMIC_PLUGINS=ON \
-DWITHOUT_MROONGA=ON \
-DWITHOUT_TOKUDB=ON \
-DSTACK_DIRECTION=-1 \
-DWITH_JEMALLOC=OFF \
- -DWITH_SYSTEMD=OFF \
-DWITH_UNIT_TESTS=OFF
host-configure:
@@ -62,6 +65,8 @@ libmariadbclient-install:
${INSTALL_DIR} ${IDIR_LIBMARIADBCLIENT}/usr/lib
${CP} ${WRKINST}/usr/lib/libmysqlclient.so* \
${IDIR_LIBMARIADBCLIENT}/usr/lib
+ ${CP} ${WRKINST}/usr/lib/libmariadb.so* \
+ ${IDIR_LIBMARIADBCLIENT}/usr/lib
include ${ADK_TOPDIR}/mk/host-bottom.mk
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/mbedtls/Makefile b/package/mbedtls/Makefile
index 9771ffc96..9ce0d5468 100644
--- a/package/mbedtls/Makefile
+++ b/package/mbedtls/Makefile
@@ -4,17 +4,17 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= mbedtls
-PKG_VERSION:= 2.3.0
+PKG_VERSION:= 2.28.7
PKG_RELEASE:= 1
-PKG_HASH:= 590734c8bc8b3ac48e9123d44bf03562e91f8dce0d1ac2615c318c077f3215b2
+PKG_HASH:= 1df6073f0cf6a4e1953890bf5e0de2a8c7e6be50d6d6c69fa9fefcb1d14e981a
PKG_DESCR:= embedded ssl/tls library
PKG_SECTION:= libs/crypto
PKG_URL:= https://tls.mbed.org
-PKG_SITES:= https://tls.mbed.org/download/
+PKG_SITES:= https://github.com/Mbed-TLS/mbedtls/archive/refs/tags/
PKG_LIBNAME:= libmbedtls
PKG_OPTS:= dev
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION)-apache.tgz
+DISTFILES:= v$(PKG_VERSION).tar.gz
include $(ADK_TOPDIR)/mk/package.mk
@@ -24,9 +24,7 @@ CONFIG_STYLE:= manual
ALL_TARGET:= lib
TARGET_CFLAGS+= -DSHARED
-libpolarssl-install:
+libmbedtls-install:
$(INSTALL_DIR) $(IDIR_LIBMBEDTLS)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libpolarssl.so* \
- $(IDIR_LIBMBEDTLS)/usr/lib
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/mbedtls/patches/patch-Makefile b/package/mbedtls/patches/patch-Makefile
new file mode 100644
index 000000000..95c3340e1
--- /dev/null
+++ b/package/mbedtls/patches/patch-Makefile
@@ -0,0 +1,35 @@
+--- mbedtls-3.5.2.orig/Makefile 2024-01-24 10:49:11.000000000 +0100
++++ mbedtls-3.5.2/Makefile 2024-02-22 19:10:23.460591189 +0100
+@@ -79,22 +79,22 @@ $(VISUALC_FILES):
+
+ ifndef WINDOWS
+ install: no_test
+- mkdir -p $(DESTDIR)/include/mbedtls
+- cp -rp include/mbedtls $(DESTDIR)/include
+- mkdir -p $(DESTDIR)/include/psa
+- cp -rp include/psa $(DESTDIR)/include
++ mkdir -p $(DESTDIR)/usr/include/mbedtls
++ cp -rp include/mbedtls $(DESTDIR)/usr/include
++ mkdir -p $(DESTDIR)/usr/include/psa
++ cp -rp include/psa $(DESTDIR)/usr/include
+
+- mkdir -p $(DESTDIR)/lib
+- cp -RP library/libmbedtls.* $(DESTDIR)/lib
+- cp -RP library/libmbedx509.* $(DESTDIR)/lib
+- cp -RP library/libmbedcrypto.* $(DESTDIR)/lib
++ mkdir -p $(DESTDIR)/usr/lib
++ cp -RP library/libmbedtls.* $(DESTDIR)/usr/lib
++ cp -RP library/libmbedx509.* $(DESTDIR)/usr/lib
++ cp -RP library/libmbedcrypto.* $(DESTDIR)/usr/lib
+
+- mkdir -p $(DESTDIR)/bin
++ mkdir -p $(DESTDIR)/usr/bin
+ for p in programs/*/* ; do \
+ if [ -x $$p ] && [ ! -d $$p ] ; \
+ then \
+ f=$(PREFIX)`basename $$p` ; \
+- cp $$p $(DESTDIR)/bin/$$f ; \
++ cp $$p $(DESTDIR)/usr/bin/$$f ; \
+ fi \
+ done
+
diff --git a/package/mc/Makefile b/package/mc/Makefile
index 50e31b25e..539c292c4 100644
--- a/package/mc/Makefile
+++ b/package/mc/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= mc
-PKG_VERSION:= 4.8.16
+PKG_VERSION:= 4.8.31
PKG_RELEASE:= 1
-PKG_HASH:= bbbcbe3097d3160f865d24aa38ff122f1c59752b5ef153ca4ade5ac0f82b7020
+PKG_HASH:= 24191cf8667675b8e31fc4a9d18a0a65bdc0598c2c5c4ea092494cd13ab4ab1a
PKG_DESCR:= norton commander clone
PKG_SECTION:= sys/misc
PKG_DEPENDS:= glib libncurses libssh2
@@ -19,11 +19,9 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,MC,mc,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-TARGET_LDFLAGS+= -ltinfo
+TARGET_LDFLAGS+= -ltinfo -lncurses
CONFIGURE_ARGS+= --enable-charset \
- --disable-extcharset \
--disable-background \
- --disable-gcc-warnings \
--disable-glibtest \
--disable-netcode \
--without-libiconv-prefix \
@@ -37,7 +35,7 @@ CONFIGURE_ARGS+= --enable-charset \
--without-ext2undel \
--with-subshell \
--with-screen=ncurses \
- --with-edit
+ --disable-silent-rules
CONFIGURE_ENV+= mc_cv_have_zipinfo=yes \
am_cv_func_iconv=no
@@ -48,7 +46,7 @@ mc-install:
${CP} ${WRKINST}/usr/share/mc/* ${IDIR_MC}/usr/share/mc
${INSTALL_BIN} ${WRKINST}/usr/bin/mc ${IDIR_MC}/usr/bin/
cd ${IDIR_MC}/usr/bin && ln -fs mc mcedit && ln -fs mc mcview
- cd ${WRKINST}/etc/mc && ${CP} mcedit.menu mc.ext sfs.ini \
+ cd ${WRKINST}/etc/mc && ${CP} mcedit.menu sfs.ini \
mc.menu ${IDIR_MC}/etc/mc/
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/mc/patches/patch-lib_tty_tty-ncurses_c b/package/mc/patches/patch-lib_tty_tty-ncurses_c
new file mode 100644
index 000000000..34c0b53df
--- /dev/null
+++ b/package/mc/patches/patch-lib_tty_tty-ncurses_c
@@ -0,0 +1,42 @@
+--- mc-4.8.31.orig/lib/tty/tty-ncurses.c 2024-01-20 20:34:38.000000000 +0100
++++ mc-4.8.31/lib/tty/tty-ncurses.c 2024-02-14 11:53:54.151821148 +0100
+@@ -561,39 +561,11 @@ tty_fill_region (int y, int x, int rows,
+ void
+ tty_colorize_area (int y, int x, int rows, int cols, int color)
+ {
+-#ifdef ENABLE_SHADOWS
+- cchar_t *ctext;
+- wchar_t wch[10]; /* TODO not sure if the length is correct */
+- attr_t attrs;
+- short color_pair;
+-
+- if (!use_colors || !tty_clip (&y, &x, &rows, &cols))
+- return;
+-
+- tty_setcolor (color);
+- ctext = g_malloc (sizeof (cchar_t) * (cols + 1));
+-
+- for (int row = 0; row < rows; row++)
+- {
+- mvin_wchnstr (y + row, x, ctext, cols);
+-
+- for (int col = 0; col < cols; col++)
+- {
+- getcchar (&ctext[col], wch, &attrs, &color_pair, NULL);
+- setcchar (&ctext[col], wch, attrs, color, NULL);
+- }
+-
+- mvadd_wchnstr (y + row, x, ctext, cols);
+- }
+-
+- g_free (ctext);
+-#else
+ (void) y;
+ (void) x;
+ (void) rows;
+ (void) cols;
+ (void) color;
+-#endif /* ENABLE_SHADOWS */
+ }
+
+ /* --------------------------------------------------------------------------------------------- */
diff --git a/package/mdadm/Makefile b/package/mdadm/Makefile
index bc8efee0f..69d17ee2f 100644
--- a/package/mdadm/Makefile
+++ b/package/mdadm/Makefile
@@ -4,10 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= mdadm
-PKG_VERSION:= 4.0
+PKG_VERSION:= 4.2
PKG_RELEASE:= 1
-PKG_HASH:= 1d6ae7f24ced3a0fa7b5613b32f4a589bb4881e3946a5a2c3724056254ada3a9
+PKG_HASH:= 461c215670864bb74a4d1a3620684aa2b2f8296dffa06743f26dda5557acf01d
PKG_DESCR:= tool for managing software raid arrays
+PKG_DEPENDS:= libudev
+PKG_BUILDDEP:= eudev
+PKG_KDEPENDS:= blk-dev-md md md-raid0 md-raid1 md-raid456
PKG_SECTION:= sys/fs
PKG_URL:= http://neil.brown.name/blog/mdadm
PKG_SITES:= ${MASTER_SITE_KERNEL:=utils/raid/mdadm/}
diff --git a/package/mdadm/patches/patch-Makefile b/package/mdadm/patches/patch-Makefile
index 9c5057c22..7ce1f18b2 100644
--- a/package/mdadm/patches/patch-Makefile
+++ b/package/mdadm/patches/patch-Makefile
@@ -1,27 +1,23 @@
---- mdadm-4.0.orig/Makefile 2017-01-09 22:46:34.000000000 +0100
-+++ mdadm-4.0/Makefile 2017-06-02 01:53:13.425906734 +0200
-@@ -42,8 +42,8 @@ KLIBC=/home/src/klibc/klibc-0.77
- KLIBC_GCC = gcc -nostdinc -iwithprefix include -I$(KLIBC)/klibc/include -I$(KLIBC)/linux/include -I$(KLIBC)/klibc/arch/i386/include -I$(KLIBC)/klibc/include/bits32
-
- CC ?= $(CROSS_COMPILE)gcc
--CXFLAGS ?= -ggdb
--CWFLAGS = -Wall -Werror -Wstrict-prototypes -Wextra -Wno-unused-parameter
-+CXFLAGS ?=
-+CWFLAGS = -Wall -Wstrict-prototypes -Wextra -Wno-unused-parameter
- ifdef WARN_UNUSED
- CWFLAGS += -Wp,-D_FORTIFY_SOURCE=2 -O3
- endif
-@@ -269,9 +269,10 @@ $(MON_OBJS) : $(INCL) mdmon.h
+--- mdadm-4.2.orig/Makefile 2021-12-30 20:43:35.000000000 +0100
++++ mdadm-4.2/Makefile 2024-02-11 17:01:11.419915988 +0100
+@@ -250,7 +250,7 @@ $(MON_OBJS) : $(INCL) mdmon.h
sha1.o : sha1.c sha1.h md5.h
$(CC) $(CFLAGS) -DHAVE_STDINT_H -o sha1.o -c sha1.c
--install : mdadm mdmon install-man install-udev
+-install : install-bin install-man install-udev
++install : install-bin install-udev
+
+ install-static : mdadm.static install-man
+ $(INSTALL) -D $(STRIP) -m 755 mdadm.static $(DESTDIR)$(BINDIR)/mdadm
+@@ -301,8 +301,9 @@ install-systemd: systemd/mdmon@.service
+ if [ -f /etc/SuSE-release -o -n "$(SUSE)" ] ;then $(INSTALL) -D -m 755 systemd/SUSE-mdadm_env.sh $(DESTDIR)$(LIB_DIR)/mdadm_env.sh ;fi
+
+ install-bin: mdadm mdmon
- $(INSTALL) -D $(STRIP) -m 755 mdadm $(DESTDIR)$(BINDIR)/mdadm
- $(INSTALL) -D $(STRIP) -m 755 mdmon $(DESTDIR)$(BINDIR)/mdmon
-+install : mdadm mdmon install-udev
+ mkdir -p $(DESTDIR)$(BINDIR)
+ $(INSTALL) -m 755 mdadm $(DESTDIR)$(BINDIR)/mdadm
+ $(INSTALL) -m 755 mdmon $(DESTDIR)$(BINDIR)/mdmon
- install-static : mdadm.static install-man
- $(INSTALL) -D $(STRIP) -m 755 mdadm.static $(DESTDIR)$(BINDIR)/mdadm
+ uninstall:
+ rm -f $(DESTDIR)$(MAN8DIR)/mdadm.8 $(DESTDIR)$(MAN8DIR)/mdmon.8 $(DESTDIR)$(MAN4DIR)/md.4 $(DESTDIR)$(MAN5DIR)/mdadm.conf.5 $(DESTDIR)$(BINDIR)/mdadm
diff --git a/package/mesa-demos/Makefile b/package/mesa-demos/Makefile
index e1addc2ba..fec8cb4d3 100644
--- a/package/mesa-demos/Makefile
+++ b/package/mesa-demos/Makefile
@@ -4,28 +4,39 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= mesa-demos
-PKG_VERSION:= 8.2.0
+PKG_VERSION:= 8.5.0
PKG_RELEASE:= 1
-PKG_HASH:= 5f0e76215ffc6acdaa80c7aadf02e448cb95d0ae8f69dbb894382b9c349a19e2
+PKG_HASH:= 2472818cea452a34229d03084e7c81f94267d14a39c5287379de0fb1dc02caab
PKG_DESCR:= opengl demo apps
PKG_SECTION:= mm/video
-PKG_DEPENDS:= mesa
+PKG_DEPENDS:= mesa libglew libglu
PKG_BUILDDEP:= mesa libglew glu
PKG_SITES:= ftp://ftp.freedesktop.org/pub/mesa/demos/${PKG_VERSION}/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-PKG_ARCH_DEPENDS:= x86 x86_64 mips mipsel mips64 mips64el arm
+PKG_ARCH_DEPENDS:= x86 x86_64 mips mipsel mips64 mips64el arm aarch64
-PKG_SUBPKGS:= GLXINFO
+PKG_SUBPKGS:= GLXINFO GLXGEARS
+PKGSD_GLXGEARS:= opengl demo app
PKGSD_GLXINFO:= command-line tool for diagnosing problems with your 3D acceleration card
-PKGSS_GLXINFO:= libxt libxau libxdmcp libxcb libx11 libxext libglew
+PKGSS_GLXINFO:= libxt libxau libxdmcp libxcb libx11 libxext libglew
+PKGSS_GLXINFO+= libxxf86vm
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,GLXINFO,glxinfo,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,GLXGEARS,glxgears,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-CONFIGURE_ARGS+= --disable-egl
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+glxgears-install:
+ $(INSTALL_DIR) $(IDIR_GLXGEARS)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/glxgears \
+ $(IDIR_GLXGEARS)/usr/bin
glxinfo-install:
$(INSTALL_DIR) $(IDIR_GLXINFO)/usr/bin
diff --git a/package/mesa/Makefile b/package/mesa/Makefile
index 6dead03f7..75a10c003 100644
--- a/package/mesa/Makefile
+++ b/package/mesa/Makefile
@@ -4,44 +4,39 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= mesa
-PKG_VERSION:= 17.2.2
+PKG_VERSION:= 23.3.3
PKG_RELEASE:= 1
-PKG_HASH:= cf522244d6a5a1ecde3fc00e7c96935253fe22f808f064cab98be6f3faa65782
+PKG_HASH:= 518307c0057fa3cee8b58df78be431d4df5aafa7edc60d09278b2d7a0a80f3b4
PKG_DESCR:= 3d graphics library
PKG_SECTION:= libs/video
PKG_DEPENDS:= libxdamage libxfixes libdrm libxxf86vm libexpat
-PKG_DEPENDS+= libxml2 libxml2-python
-PKG_BUILDDEP:= python2 libxml2 libXdamage libXfixes
+PKG_DEPENDS+= libxml2
+PKG_BUILDDEP:= python3 libxml2 libXdamage libXfixes libXrandr
PKG_BUILDDEP+= libXxf86vm libdrm dri2proto glproto expat libXext
PKG_BUILDDEP+= eudev dri3proto presentproto xcb-proto libxcb
-PKG_BUILDDEP+= libxshmfence
+PKG_BUILDDEP+= libxshmfence python-mako-host
PKG_NEEDS:= c++
PKG_URL:= http://www.mesa3d.org/
PKG_SITES:= ftp://ftp.freedesktop.org/pub/mesa/
PKG_LIBNAME:= mesa
PKG_OPTS:= dev
-PKG_ARCH_DEPENDS:= x86 x86_64 mips mipsel mips64 mips64el arm
+PKG_ARCH_DEPENDS:= x86 x86_64 mips mipsel mips64 mips64el arm aarch64
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,MESA,mesa,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-DRI_DRIVERS:= swrast
-ifeq (${ADK_TARGET_SYSTEM_IBM_X40},y)
-DRI_DRIVERS:= i915
-endif
-
-CONFIGURE_ARGS+= --disable-static \
- --disable-gallium-llvm \
- --without-gallium-drivers \
- --enable-dri \
- --enable-dri3 \
- --enable-glx=dri \
- --with-dri-driverdir=/usr/lib/dri \
- --with-dri-drivers=${DRI_DRIVERS}
-CONFIGURE_ENV+= MISSING="echo"
-XAKE_FLAGS+= HOST_CC=${CC_FOR_BUILD}
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+MESON_FLAGS+= -Dllvm=disabled \
+ -Dgallium-drivers=swrast,panfrost,vc4,v3d \
+ -Dvulkan-drivers= \
+ -Dgbm=enabled \
+ -Dplatforms=x11
mesa-install:
$(INSTALL_DIR) $(IDIR_MESA)/usr/lib/dri
@@ -51,6 +46,8 @@ mesa-install:
$(IDIR_MESA)/usr/lib
$(CP) $(WRKINST)/usr/lib/libglapi.so* \
$(IDIR_MESA)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libgbm.so* \
+ $(IDIR_MESA)/usr/lib
${CP} $(WRKINST)/usr/lib/dri/*.so \
${IDIR_MESA}/usr/lib/dri/
diff --git a/package/mesa/patches/patch-src_mapi_glapi_glapi_gentable_c b/package/mesa/patches/patch-src_mapi_glapi_glapi_gentable_c
deleted file mode 100644
index af6a53aa7..000000000
--- a/package/mesa/patches/patch-src_mapi_glapi_glapi_gentable_c
+++ /dev/null
@@ -1,14 +0,0 @@
---- mesa-11.0.6.orig/src/mapi/glapi/glapi_gentable.c 2015-11-21 12:45:27.000000000 +0100
-+++ mesa-11.0.6/src/mapi/glapi/glapi_gentable.c 2016-01-05 22:36:19.266092512 +0100
-@@ -35,11 +35,6 @@
- #include <dix-config.h>
- #endif
-
--#if (defined(GLXEXT) && defined(HAVE_BACKTRACE)) \
-- || (!defined(GLXEXT) && defined(DEBUG) && !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(__OpenBSD__) && !defined(__NetBSD__) && !defined(__DragonFly__))
--#define USE_BACKTRACE
--#endif
--
- #ifdef USE_BACKTRACE
- #include <execinfo.h>
- #endif
diff --git a/package/meson/Makefile b/package/meson/Makefile
index d16d450e0..314fac6dc 100644
--- a/package/meson/Makefile
+++ b/package/meson/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= meson
-PKG_VERSION:= 0.44.0
+PKG_VERSION:= 1.3.2
PKG_RELEASE:= 1
-PKG_HASH:= 5cdbc68c63b5b4a8ee862ab3b6393a2633487ebc9b3e1c3da1091b9c912d1d95
+PKG_HASH:= 683082fb3c5cddf203b21d29bdf4c227e2f7964da5324a15e1a5f7db94322b4b
PKG_DESCR:= build utility
PKG_SECTION:= dev/tools
HOST_BUILDDEP:= python3-host ninja-host
@@ -35,12 +35,20 @@ meson-hostinstall:
-e "s%@TARGET_ARCH@%$(ADK_TARGET_ARCH)%g" \
-e "s%@TARGET_CPU@%$(ADK_TARGET_CPU_ARCH)%g" \
-e "s%@TARGET_ENDIAN@%$(ADK_TARGET_ENDIAN)%g" \
- -e "s%@TARGET_CFLAGS@%`printf '"%s", ' $(TARGET_CFLAGS)`%g" \
+ -e "s%@TARGET_CFLAGS@%`printf '"%s", ' $(TARGET_CFLAGS)`%g" \
-e "s%@TARGET_LDFLAGS@%`printf '"%s", ' $(TARGET_LDFLAGS)`%g" \
-e "s%@TARGET_CXXFLAGS@%`printf '"%s", ' $(TARGET_CXXFLAGS)`%g" \
-e "s%@STAGING_HOST_DIR@%$(STAGING_HOST_DIR)%g" \
$(WRKBUILD)/cross-compilation.conf.in \
> $(STAGING_HOST_DIR)/etc/meson/cross-compilation.conf
+ sed -i "s/\"/'/g" $(STAGING_HOST_DIR)/etc/meson/cross-compilation.conf
+ sed -e "s%@HOST_CFLAGS@%`printf '"%s", ' $(HOST_CFLAGS)`%g" \
+ -e "s%@HOST_LDFLAGS@%`printf '"%s", ' $(HOST_LDFLAGS)`%g" \
+ -e "s%@HOST_CXXFLAGS@%`printf '"%s", ' $(HOST_CXXFLAGS)`%g" \
+ -e "s%@STAGING_HOST_DIR@%$(STAGING_HOST_DIR)%g" \
+ $(WRKBUILD)/host-compilation.conf.in \
+ > $(STAGING_HOST_DIR)/etc/meson/host-compilation.conf
+ sed -i "s/\"/'/g" $(STAGING_HOST_DIR)/etc/meson/host-compilation.conf
include ${ADK_TOPDIR}/mk/host-bottom.mk
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/meson/src/cross-compilation.conf.in b/package/meson/src/cross-compilation.conf.in
index a636ca329..24ef6ef53 100644
--- a/package/meson/src/cross-compilation.conf.in
+++ b/package/meson/src/cross-compilation.conf.in
@@ -8,12 +8,16 @@ c = '@TARGET_CROSS@gcc'
cpp = '@TARGET_CROSS@g++'
ar = '@TARGET_CROSS@ar'
strip = '@TARGET_CROSS@strip'
-pkgconfig = '@STAGING_HOST_DIR@/usr/bin/pkg-config'
-[properties]
+pkg-config = '@STAGING_HOST_DIR@/usr/bin/pkg-config'
+
+[built-in options]
c_args = [@TARGET_CFLAGS@]
c_link_args = [@TARGET_LDFLAGS@]
cpp_args = [@TARGET_CXXFLAGS@]
cpp_link_args = [@TARGET_LDFLAGS@]
+
+[properties]
+needs_exe_wrapper = true
[host_machine]
system = 'linux'
diff --git a/package/meson/src/host-compilation.conf.in b/package/meson/src/host-compilation.conf.in
new file mode 100644
index 000000000..c67cec76e
--- /dev/null
+++ b/package/meson/src/host-compilation.conf.in
@@ -0,0 +1,12 @@
+# Note: OpenADK's and Meson's terminologies differ about the meaning
+# of 'build', 'host' and 'target':
+# - OpenADK's 'host' is Meson's 'build'
+# - OpenADK's 'target' is Meson's 'host'
+
+[binaries]
+pkgconfig = '@STAGING_HOST_DIR@/usr/bin/pkg-config'
+[properties]
+c_args = [@HOST_CFLAGS@]
+c_link_args = [@HOST_LDFLAGS@]
+cpp_args = [@HOST_CXXFLAGS@]
+cpp_link_args = [@HOST_LDFLAGS@]
diff --git a/package/mgetty/Makefile b/package/mgetty/Makefile
index c610f53b7..105da3001 100644
--- a/package/mgetty/Makefile
+++ b/package/mgetty/Makefile
@@ -4,15 +4,16 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= mgetty
-PKG_VERSION:= 1.1.36
-PKG_EXTRAVER:= Jun15
+PKG_VERSION:= 1.2.1
PKG_RELEASE:= 1
-PKG_HASH:= 8b8642aa318604ad057ed161cacff5c600296cbfbc9b4d562134ee5c130c80ce
+PKG_HASH:= c8a72f5ca4142e30627ad16725c40692fb09e6284514392b95ac02062cac9a89
PKG_DESCR:= mgetty + sendfax
PKG_SECTION:= sys/misc
-PKG_SITES:= ftp://alpha.greenie.net/pub/mgetty/source/1.1/
+PKG_SITES:= ftp://mgetty.greenie.net/pub/mgetty/source/1.2/
-DISTFILES:= ${PKG_NAME}${PKG_VERSION}-${PKG_EXTRAVER}.tar.gz
+PKG_CFLINE_MGETTY:= depends on ADK_BROKEN
+
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
include ${ADK_TOPDIR}/mk/package.mk
diff --git a/package/mgetty/patches/patch-Makefile b/package/mgetty/patches/patch-Makefile
index 41f1203f0..d121e705a 100644
--- a/package/mgetty/patches/patch-Makefile
+++ b/package/mgetty/patches/patch-Makefile
@@ -1,86 +1,39 @@
---- mgetty-1.1.36.orig/Makefile 2007-06-15 13:15:56.000000000 +0200
-+++ mgetty-1.1.36/Makefile 2011-02-28 21:22:07.000000000 +0100
-@@ -4,7 +4,7 @@
- #
- # this is the C compiler to use (on SunOS, the standard "cc" does not
+--- mgetty-1.2.1.orig/Makefile 2018-09-11 12:38:58.000000000 +0200
++++ mgetty-1.2.1/Makefile 2024-02-13 16:33:13.023498839 +0100
+@@ -6,7 +6,7 @@
# grok my code, so please use gcc there. On ISC 4.0, use "icc".).
--CC=gcc
-+CC?=gcc
- #CC=cc
#
- #### C Compiler Flags ####
-@@ -102,7 +102,7 @@ CC=gcc
+ # if you are cross-compiling, this is the C compiler for the target platform
+-CC=cc
++CC?=cc
+ #CC=gcc
+ #
+ # if you are cross-compiling, *this* needs to be the C compiler that
+@@ -109,7 +109,7 @@ HOSTCC=$(CC)
# USTAT - ustat(), no statfs etc.
#
#CFLAGS=-Wall -O2 -pipe -DSECUREWARE -DUSE_POLL
--CFLAGS=-O2 -Wall -pipe
-+CFLAGS?=-O2 -Wall -pipe
+-CFLAGS=-Wall -O2 -pipe
++CFLAGS?=-Wall -O2 -pipe
#CFLAGS=-O -DSVR4
#CFLAGS=-O -DSVR4 -DSVR42
#CFLAGS=-O -DUSE_POLL
-@@ -143,7 +143,7 @@ CFLAGS=-O2 -Wall -pipe
+@@ -150,7 +150,7 @@ CFLAGS=-Wall -O2 -pipe
# "utmp.o: unresolved symbol _login"
# For Linux, add "-lutil" if the linker complains about "updwtmp".
#
-LDFLAGS=
+LDFLAGS?=
- LIBS=
+ #LIBS=
#LIBS=-lprot -lsocket # SCO Unix
#LIBS=-lsocket
-@@ -164,7 +164,9 @@ LIBS=
+@@ -171,7 +171,8 @@ LIBS=-lutil # FreeBSD or Linux/GNU l
#
# if your systems doesn't have one, use the shell script that I provide
# in "inst.sh" (taken from X11R5). Needed on IRIX5.2
-INSTALL=install -c -o bin -g bin
+STRIP=
+INSTALL=install -c -o root -g root
-+#INSTALL=install -c -o bin -g bin
#INSTALL=install -c -o root -g wheel # NeXT/BSD
#INSTALL=/usr/ucb/install -c -o bin -g bin # AIX, Solaris 2.x
#INSTALL=installbsd -c -o bin -g bin # OSF/1, AIX 4.1, 4.2
-@@ -216,7 +218,7 @@ FAX_SPOOL_OUT=$(FAX_SPOOL)/outgoing
- # (it's possible to run faxrunq(d) as root, but the FAX_OUT_USER
- # MUST NOT BE root or any other privileged account).
- #
--FAX_OUT_USER=fax
-+FAX_OUT_USER=root
- #
- #
- # Where section 1 manual pages should be placed
-@@ -421,7 +423,12 @@ sedscript: mksed
- ./mksed >sedscript
- chmod +x sedscript
-
--mksed: mksed.c policy.h Makefile
-+REALGCC:=/usr/bin/gcc
-+mksed: mksed.c policy.h Makefile
-+ ( echo $(CC_FOR_BUILD); $(MAKE) "CC=$(CC_FOR_BUILD)" "CFLAGS=$(CFLAGS_FOR_BUILD)" mksed-wrong;\
-+ );
-+
-+mksed-wrong: mksed.c policy.h Makefile
- $(CC) $(CFLAGS) -DBINDIR=\"$(BINDIR)\" -DSBINDIR=\"$(SBINDIR)\" \
- -DLIBDIR=\"$(LIBDIR)\" \
- -DCONFDIR=\"$(CONFDIR)\" \
-@@ -586,8 +593,10 @@ install.bin: mgetty sendfax newslock \
- -test -d $(SBINDIR) || ( ./mkidirs $(SBINDIR) ; chmod 755 $(SBINDIR) )
- -mv -f $(SBINDIR)/mgetty $(SBINDIR)/mgetty.old
- -mv -f $(SBINDIR)/sendfax $(SBINDIR)/sendfax.old
-- $(INSTALL) -s -m 700 mgetty $(SBINDIR)
-- $(INSTALL) -s -m 755 sendfax $(SBINDIR)
-+ $(INSTALL) -m 700 mgetty $(SBINDIR)
-+ $(STRIP) $(SBINDIR)/mgetty
-+ $(INSTALL) -m 755 sendfax $(SBINDIR)
-+ $(STRIP) $(SBINDIR)/sendfax
- #
- # data files + directories
- #
-@@ -649,7 +658,8 @@ install.bin: mgetty sendfax newslock \
- if [ ! -z "$(INSTALL_MECHO)" ] ; then \
- cd compat ; \
- $(CC) $(CFLAGS) -o mg.echo mg.echo.c && \
-- $(INSTALL) -s -m 755 mg.echo $(BINDIR) ; \
-+ $(INSTALL) -m 755 mg.echo $(BINDIR) && \
-+ $(STRIP) $(BINDIR)/mg.echo ; \
- fi
-
- #
diff --git a/package/mgetty/patches/patch-g3_Makefile b/package/mgetty/patches/patch-g3_Makefile
deleted file mode 100644
index 3cb6cf24e..000000000
--- a/package/mgetty/patches/patch-g3_Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
---- mgetty-1.1.36.orig/g3/Makefile 2006-02-22 18:25:34.000000000 +0100
-+++ mgetty-1.1.36/g3/Makefile 2009-08-28 15:17:14.239450922 +0200
-@@ -37,7 +37,8 @@ install: all
- # install programs
- #
- for f in $(G3_PROGRAMS) ; do \
-- $(INSTALL) -s -m 755 $$f $(BINDIR) ; \
-+ $(INSTALL) -m 755 $$f $(BINDIR) ; \
-+ $(STRIP) $(BINDIR)/$$f ; \
- done
- #
- # make symlink for "g3topbm" (so third-party fax viewers won't fail)
diff --git a/package/mgetty/patches/patch-g3_g3cat_c b/package/mgetty/patches/patch-g3_g3cat_c
deleted file mode 100644
index 964eea4aa..000000000
--- a/package/mgetty/patches/patch-g3_g3cat_c
+++ /dev/null
@@ -1,38 +0,0 @@
---- mgetty-1.1.36.orig/g3/g3cat.c 2005-02-27 20:03:37.000000000 +0100
-+++ mgetty-1.1.36/g3/g3cat.c 2017-06-03 23:40:23.804404768 +0200
-@@ -44,7 +44,7 @@ static int b_written = 0; /* bytes of a
- /* written */
-
- #ifdef __GNUC__
--inline
-+static inline
- #endif
- void putcode _P2( (code, len), int code, int len )
- {
-@@ -67,7 +67,7 @@ void putcode _P2( (code, len), int code,
- }
-
- #ifdef __GNUC__
--inline
-+static inline
- #endif
- void putwhitespan _P1( (l), int l )
- {
-@@ -98,7 +98,7 @@ void putwhitespan _P1( (l), int l )
- }
-
- #ifdef __GNUC__
--inline
-+static inline
- #endif
- void putblackspan _P1( (l), int l )
- {
-@@ -129,7 +129,7 @@ void putblackspan _P1( (l), int l )
- }
-
- #ifdef __GNUC__
--inline
-+static inline
- #endif
- void puteol _P0( void ) /* write byte-aligned EOL */
- {
diff --git a/package/mgetty/patches/patch-g3_pbm2g3_c b/package/mgetty/patches/patch-g3_pbm2g3_c
deleted file mode 100644
index f56292e84..000000000
--- a/package/mgetty/patches/patch-g3_pbm2g3_c
+++ /dev/null
@@ -1,38 +0,0 @@
---- mgetty-1.1.36.orig/g3/pbm2g3.c 1998-05-07 13:32:04.000000000 +0200
-+++ mgetty-1.1.36/g3/pbm2g3.c 2017-06-03 23:32:07.020481555 +0200
-@@ -40,7 +40,7 @@ static unsigned int out_hibit = 0;
- static int out_byte_tab[ 256 ]; /* for g3 byte reversal */
-
- #ifdef __GNUC__
--inline
-+static inline
- #endif
- void putcode _P2( (code, len), int code, int len )
- {
-@@ -60,7 +60,7 @@ void putcode _P2( (code, len), int code,
- }
-
- #ifdef __GNUC__
--inline
-+static inline
- #endif
- void puteol _P0( void ) /* write byte-aligned EOL */
- {
-@@ -69,7 +69,7 @@ void puteol _P0( void ) /* write byte-
- }
-
- #ifdef __GNUC__
--inline
-+static inline
- #endif
- void putwhitespan _P1( (l), int l )
- {
-@@ -100,7 +100,7 @@ void putwhitespan _P1( (l), int l )
- }
-
- #ifdef __GNUC__
--inline
-+static inline
- #endif
- void putblackspan _P1( (l), int l )
- {
diff --git a/package/mgetty/patches/patch-logfile_c b/package/mgetty/patches/patch-logfile_c
deleted file mode 100644
index e2c4fdc96..000000000
--- a/package/mgetty/patches/patch-logfile_c
+++ /dev/null
@@ -1,17 +0,0 @@
---- mgetty-1.1.36.orig/logfile.c 2005-11-26 14:48:16.000000000 +0100
-+++ mgetty-1.1.36/logfile.c 2009-08-28 15:17:14.239450922 +0200
-@@ -327,12 +327,11 @@ static int first_open = TRUE;
- }
- else /* ERROR or FATAL */
- {
-- fprintf(log_fp, "\n%02d/%02d %02d:%02d:%02d %s %s: %s",
-+ fprintf(log_fp, "\n%02d/%02d %02d:%02d:%02d %s %s: #%d",
- tm->tm_mon+1, tm->tm_mday,
- tm->tm_hour, tm->tm_min, tm->tm_sec,
- log_infix, ws,
-- ( errnr <= sys_nerr ) ? sys_errlist[errnr]:
-- "<error not in list>" );
-+ errnr );
- #ifdef SYSLOG
- syslog( level == L_FATAL? LOG_ALERT: LOG_ERR, "%s: %m", ws );
- #endif
diff --git a/package/midori/Makefile b/package/midori/Makefile
deleted file mode 100644
index 6f45300e0..000000000
--- a/package/midori/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= midori
-PKG_VERSION:= 0.5.11
-PKG_RELEASE:= 2
-PKG_HASH:= 3b8f3a0fe8283fcbb0f9c88b2165e2689d3e18f7c1b5d275fff97cf20e7be198
-PKG_DESCR:= graphical web browser
-PKG_SECTION:= x11/apps
-PKG_DEPENDS:= libnotify webkitgtk gcr pango libatk cairo libsqlite
-PKG_DEPENDS+= gdk-pixbuf libgtk3 p11-kit libxcomposite at-spi2-atk
-PKG_DEPENDS+= libpng icu4c gstreamer gst-plugins-base dbus libgnutls
-PKG_DEPENDS+= libxslt libjpeg-turbo libtasn1 libnettle enchant
-PKG_DEPENDS+= libgmp at-spi2-core libxext
-PKG_BUILDDEP:= cmake-host vala-host libnotify webkitgtk gcr
-PKG_BUILDDEP+= librsvg-host librsvg pango atk cairo sqlite
-PKG_BUILDDEP+= gdk-pixbuf libgtk3 p11-kit libpng icu4c gstreamer
-PKG_BUILDDEP+= libXext
-PKG_URL:= http://www.midori-browser.org
-PKG_SITES:= http://distfiles.openadk.org/
-
-PKG_ARCH_DEPENDS:= !mips
-
-WRKBUILD= ${WRKDIR}/${PKG_NAME}-obj
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,MIDORI,midori,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-CONFIG_STYLE:= cmake
-CMAKE_FLAGS+= -DUSE_GTK3=ON \
- -DHALF_BRO_INCOM_WEBKIT2=ON \
- -DENABLE_NLS=OFF \
- -DUSE_ZEITGEIST=OFF
-
-midori-install:
- $(INSTALL_DIR) $(IDIR_MIDORI)/usr/lib
- $(CP) $(WRKINST)/usr/lib/* \
- $(IDIR_MIDORI)/usr/lib
- $(INSTALL_DIR) $(IDIR_MIDORI)/usr/share
- $(CP) $(WRKINST)/usr/share/* \
- $(IDIR_MIDORI)/usr/share
- $(INSTALL_DIR) $(IDIR_MIDORI)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/midori \
- $(IDIR_MIDORI)/usr/bin
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/midori/patches/patch-CMakeLists_txt b/package/midori/patches/patch-CMakeLists_txt
deleted file mode 100644
index 2129969f6..000000000
--- a/package/midori/patches/patch-CMakeLists_txt
+++ /dev/null
@@ -1,13 +0,0 @@
---- midori-0.5.11.orig/CMakeLists.txt 2015-08-30 13:56:26.000000000 +0200
-+++ midori-0.5.11/CMakeLists.txt 2016-04-03 15:01:39.481595419 +0200
-@@ -206,8 +206,8 @@ if (HALF_BRO_INCOM_WEBKIT2)
- elseif (USE_GTK3)
- pkg_check_modules(DEPS_GTK REQUIRED
- gtk+-3.0>=3.10.0
-- webkitgtk-3.0>=1.8.1
-- javascriptcoregtk-3.0
-+ webkitgtk-4.0>=1.8.1
-+ javascriptcoregtk-4.0
- )
- add_definitions("-DGTK_VERSION=\"${DEPS_GTK_gtk+-3.0_VERSION}\"")
- add_definitions("-DWEBKIT_VERSION=\"${DEPS_GTK_webkitgtk-3.0_VERSION}\"")
diff --git a/package/minijail/Makefile b/package/minijail/Makefile
new file mode 100644
index 000000000..4582ff62f
--- /dev/null
+++ b/package/minijail/Makefile
@@ -0,0 +1,38 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= minijail
+PKG_VERSION:= v17
+PKG_RELEASE:= 1
+PKG_HASH:= 1ee5a5916491a32c121c7422b4d8c16481c0396a3acab34bf1c44589dcf810ae
+PKG_DESCR:= sandboxing and containment tool
+PKG_SECTION:= sys/misc
+PKG_DEPENDS:= libcap
+PKG_BUILDDEP:= libcap
+PKG_URL:= https://google.github.io/minijail/
+PKG_SITES:= https://github.com/google/minijail/archive/refs/tags/
+
+DISTFILES:= linux-$(PKG_VERSION).tar.gz
+WRKDIST= ${WRKDIR}/${PKG_NAME}-linux-${PKG_VERSION}
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,MINIJAIL,minijail,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+INSTALL_STYLE:= manual
+
+minijail-install:
+ $(INSTALL_DIR) $(IDIR_MINIJAIL)/lib
+ $(CP) $(WRKBUILD)/libminijailpreload.so \
+ $(IDIR_MINIJAIL)/lib
+ $(INSTALL_DIR) $(IDIR_MINIJAIL)/lib
+ $(CP) $(WRKBUILD)/libminijail.so \
+ $(IDIR_MINIJAIL)/lib
+ $(INSTALL_DIR) $(IDIR_MINIJAIL)/usr/bin
+ $(INSTALL_BIN) $(WRKBUILD)/minijail0 \
+ $(IDIR_MINIJAIL)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/minijail/patches/patch-common_mk b/package/minijail/patches/patch-common_mk
new file mode 100644
index 000000000..23dc08e77
--- /dev/null
+++ b/package/minijail/patches/patch-common_mk
@@ -0,0 +1,15 @@
+--- minijail-linux-v17.orig/common.mk 2021-08-11 08:01:06.000000000 +0200
++++ minijail-linux-v17/common.mk 2022-01-13 04:53:35.432449083 +0100
+@@ -306,12 +306,6 @@ check_libs_cxx = $(call check_compile,$(
+ check_cc = $(call check_compile_cc,'int main() { return 0; }',$(1),$(2))
+ check_cxx = $(call check_compile_cxx,'int main() { return 0; }',$(1),$(2))
+
+-# Choose the stack protector flags based on whats supported by the compiler.
+-SSP_CFLAGS := $(call check_cc,-fstack-protector-strong)
+-ifeq ($(SSP_CFLAGS),)
+- SSP_CFLAGS := $(call check_cc,-fstack-protector-all)
+-endif
+-
+ # To update these from an including Makefile:
+ # CXXFLAGS += -mahflag # Append to the list
+ # CXXFLAGS := -mahflag $(CXXFLAGS) # Prepend to the list
diff --git a/package/minijail/patches/patch-libminijail_c b/package/minijail/patches/patch-libminijail_c
new file mode 100644
index 000000000..67b06094e
--- /dev/null
+++ b/package/minijail/patches/patch-libminijail_c
@@ -0,0 +1,12 @@
+--- minijail-linux-v17.orig/libminijail.c 2021-08-11 08:01:06.000000000 +0200
++++ minijail-linux-v17/libminijail.c 2022-01-13 04:24:57.190934413 +0100
+@@ -2620,9 +2620,6 @@ static int fd_is_open(int fd)
+ return fcntl(fd, F_GETFD) != -1 || errno != EBADF;
+ }
+
+-static_assert(FD_SETSIZE >= MAX_PRESERVED_FDS * 2 - 1,
+- "If true, ensure_no_fd_conflict will always find an unused fd.");
+-
+ /* If parent_fd will be used by a child fd, move it to an unused fd. */
+ static int ensure_no_fd_conflict(const fd_set *child_fds,
+ int child_fd, int *parent_fd)
diff --git a/package/mksh/Makefile b/package/mksh/Makefile
index 9b331a28e..220e69333 100644
--- a/package/mksh/Makefile
+++ b/package/mksh/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= mksh
-PKG_VERSION:= 56c
+PKG_VERSION:= 59c
PKG_RELEASE:= 1
-PKG_HASH:= dd86ebc421215a7b44095dc13b056921ba81e61b9f6f4cdab08ca135d02afb77
+PKG_HASH:= 77ae1665a337f1c48c61d6b961db3e52119b38e58884d1c89684af31f87bc506
PKG_DESCR:= mirbsd korn shell
PKG_SECTION:= base/shells
PKG_NEEDS:= mmu
@@ -37,7 +37,7 @@ BUILD_STYLE:= manual
INSTALL_STYLE:= manual
host-build:
- cd $(WRKBUILD) && $(BASH) $(WRKSRC)/Build.sh -Q -r -c lto
+ cd $(WRKBUILD) && $(BASH) $(WRKSRC)/Build.sh -Q -r
mksh-hostinstall:
$(INSTALL_DIR) $(STAGING_HOST_DIR)/usr/bin
@@ -48,7 +48,7 @@ do-build:
cd $(WRKBUILD) && CC='$(TARGET_CC)' CFLAGS='$(TARGET_CFLAGS)' \
CPPFLAGS='$(TARGET_CPPFLAGS)' LDFLAGS='$(TARGET_LDFLAGS)' \
HAVE_CAN_FSTACKPROTECTORALL=0 HAVE_CAN_FSTACKPROTECTORSTRONG=0 \
- TARGET_OS=Linux $(BASH) $(WRKSRC)/Build.sh -Q -r -c lto
+ TARGET_OS=Linux $(BASH) $(WRKSRC)/Build.sh -Q -r
mksh-install:
$(INSTALL_DIR) $(IDIR_MKSH)/root
diff --git a/package/mongrel2/Makefile b/package/mongrel2/Makefile
index 8fa6393b2..9ae849160 100644
--- a/package/mongrel2/Makefile
+++ b/package/mongrel2/Makefile
@@ -4,13 +4,13 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= mongrel2
-PKG_VERSION:= 1.11.0
+PKG_VERSION:= 1.13.0
PKG_RELEASE:= 1
-PKG_HASH:= 917f2ce07c0908cae63ac03f3039815839355d46568581902377ba7e41257bed
+PKG_HASH:= b6f1f50c9f65b605342d8792b1cc8a1c151105339030313b9825b6a68d400c10
PKG_DESCR:= application, language, and network architecture agnostic web server
PKG_SECTION:= net/http
-PKG_BUILDDEP:= zeromq sqlite
-PKG_DEPENDS:= zeromq libsqlite
+PKG_BUILDDEP:= zeromq sqlite-host sqlite mbedtls
+PKG_DEPENDS:= zeromq libsqlite mbedtls
PKG_NEEDS:= threads c++
PKG_URL:= http://mongrel2.org
PKG_SITES:= https://github.com/mongrel2/mongrel2/releases/download/v$(PKG_VERSION)/
diff --git a/package/mongrel2/patches/patch-Makefile b/package/mongrel2/patches/patch-Makefile
index 182389538..14ede92ab 100644
--- a/package/mongrel2/patches/patch-Makefile
+++ b/package/mongrel2/patches/patch-Makefile
@@ -1,30 +1,20 @@
---- mongrel2-v1.11.0.orig/Makefile 2015-12-31 10:25:17.000000000 +0100
-+++ mongrel2-v1.11.0/Makefile 2016-04-25 20:21:46.996240089 +0200
-@@ -1,6 +1,7 @@
--CFLAGS=-g -O2 -Wall -Wextra -Isrc -Isrc/mbedtls/include -pthread -rdynamic -DNDEBUG $(OPTFLAGS) -D_FILE_OFFSET_BITS=64
-+CFLAGS?=
-+CFLAGS+=-Wall -Wextra -Isrc -Isrc/mbedtls/include -pthread -rdynamic -DNDEBUG $(OPTFLAGS) -D_FILE_OFFSET_BITS=64
- LIBS=-lzmq -ldl -lsqlite3 $(OPTLIBS)
+--- mongrel2-v1.13.0.orig/Makefile 2021-12-25 01:03:28.000000000 +0100
++++ mongrel2-v1.13.0/Makefile 2024-02-22 19:19:16.724583955 +0100
+@@ -2,7 +2,7 @@ CFLAGS?=-g -O2
+ CFLAGS += -Wall -Wextra -Wno-implicit-fallthrough -Wno-unused-const-variable -I./src -DNDEBUG -D_FILE_OFFSET_BITS=64 -pthread
+ CFLAGS += ${OPTFLAGS}
+ LIBS+=-lzmq -ldl -lsqlite3 -lmbedtls -lmbedx509 -lmbedcrypto
-PREFIX?=/usr/local
+PREFIX?=/usr
get_objs = $(addsuffix .o,$(basename $(wildcard $(1))))
-@@ -29,7 +30,7 @@ ifdef $($(shell \
- fi ))
- endif
+@@ -18,7 +18,7 @@ TEST_SRC=$(wildcard tests/*_tests.c)
+ TESTS=$(patsubst %.c,%,${TEST_SRC})
+ MAKEOPTS=OPTFLAGS="${CFLAGS} ${NOEXTCFLAGS} ${OPTFLAGS}" LDFLAGS="${LDFLAGS}" LIBS="${LIBS}" DESTDIR="${DESTDIR}" PREFIX="${PREFIX}"
--all: builddirs bin/mongrel2 tests m2sh procer
-+all: builddirs bin/mongrel2 m2sh procer
+-all: bin/mongrel2 tests m2sh procer
++all: bin/mongrel2 m2sh procer
- dev: CFLAGS=-g -Wall -Isrc -Wall -Wextra $(OPTFLAGS) -D_FILE_OFFSET_BITS=64
- dev: all
-@@ -160,8 +161,6 @@ install: all
- || ( install -d $(DESTDIR)/$(PREFIX)/bin/ \
- && install bin/mongrel2 $(DESTDIR)/$(PREFIX)/bin/ )
- ${MAKE} ${MAKEOPTS} -C tools/m2sh install
-- ${MAKE} ${MAKEOPTS} -C tools/config_modules install
-- ${MAKE} ${MAKEOPTS} -C tools/filters install
- ${MAKE} ${MAKEOPTS} -C tools/procer install
-
- examples/python/mongrel2/sql/config.sql: src/config/config.sql src/config/mimetypes.sql
+ ${OBJECTS_NOEXT}: CFLAGS += ${NOEXTCFLAGS}
+ ${OBJECTS}: | builddirs
diff --git a/package/mongrel2/patches/patch-tools_m2sh_Makefile b/package/mongrel2/patches/patch-tools_m2sh_Makefile
index c6296496a..abec82a1f 100644
--- a/package/mongrel2/patches/patch-tools_m2sh_Makefile
+++ b/package/mongrel2/patches/patch-tools_m2sh_Makefile
@@ -1,5 +1,5 @@
---- mongrel2-v1.11.0.orig/tools/m2sh/Makefile 2015-12-31 10:25:18.000000000 +0100
-+++ mongrel2-v1.11.0/tools/m2sh/Makefile 2016-04-25 20:14:36.744476585 +0200
+--- mongrel2-v1.13.0.orig/tools/m2sh/Makefile 2021-12-25 01:03:28.000000000 +0100
++++ mongrel2-v1.13.0/tools/m2sh/Makefile 2024-02-22 19:03:20.332596928 +0100
@@ -1,7 +1,8 @@
-CFLAGS=-DNDEBUG -DNO_LINENOS -pthread -g -I../../src -Isrc -Wall $(OPTFLAGS)
+CFLAGS?=
@@ -11,17 +11,17 @@
SOURCES=$(wildcard src/*.c src/**/*.c)
OBJECTS=$(patsubst %.c,%.o,${SOURCES})
TEST_SRC=$(wildcard tests/*.c)
-@@ -9,7 +10,7 @@ TESTS=$(patsubst %.c,%,${TEST_SRC})
- LIB_SRC=$(filter-out src/m2sh.c,${SOURCES})
- LIB_OBJ=$(filter-out src/m2sh.o,${OBJECTS})
+@@ -12,7 +13,7 @@ RAGEL_OBJECTS=src/lexer.o src/cli.o
+
+ $(RAGEL_OBJECTS): CFLAGS += -Wno-unused-const-variable -Wimplicit-fallthrough=0 -Wno-unused-parameter
-all: ../lemon/lemon tests build/m2sh
+all: ../lemon/lemon build/m2sh
dev: CFLAGS=-g -Wall -Wextra -Isrc -I../../src $(OPTFLAGS)
dev: all
-@@ -27,7 +28,7 @@ build/m2sh: ../lemon/lemon ../../build/l
- $(CC) $(CFLAGS) -o build/m2sh ${OBJECTS} ../../build/libm2.a $(LIBS)
+@@ -32,7 +33,7 @@ build/m2sh: ../lemon/lemon ../../build/l
+ $(CC) $(CFLAGS) -o build/m2sh ${OBJECTS} ../../build/libm2.a $(LDFLAGS) $(LIBS)
../lemon/lemon: ../lemon/lemon.c
- $(CC) -O2 ../lemon/lemon.c -o ../lemon/lemon
diff --git a/package/monit/Makefile b/package/monit/Makefile
index ace5b354d..2cc22ef74 100644
--- a/package/monit/Makefile
+++ b/package/monit/Makefile
@@ -4,13 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= monit
-PKG_VERSION:= 5.23.0
+PKG_VERSION:= 5.33.0
PKG_RELEASE:= 1
-PKG_HASH:= dd39fe3a379c02402ba9c44c201b3ba925ebdc8f04225918820607b6c5d56713
+PKG_HASH:= 1ace889c0183473a9d70160df6533bb6e1338dc1354f5928507803e1e2a863b5
PKG_DESCR:= utility for system services monitoring
PKG_SECTION:= sys/misc
-PKG_DEPENDS:= libressl
-PKG_BUILDDEP:= libressl
+PKG_DEPENDS:= libressl zlib
+PKG_BUILDDEP:= libressl zlib
PKG_NEEDS:= threads
PKG_URL:= http://mmonit.com/monit/
PKG_SITES:= https://mmonit.com/monit/dist/
diff --git a/package/monit/patches/patch-configure b/package/monit/patches/patch-configure
new file mode 100644
index 000000000..5908d3b70
--- /dev/null
+++ b/package/monit/patches/patch-configure
@@ -0,0 +1,49 @@
+--- monit-5.33.0.orig/configure 2023-02-11 11:29:07.000000000 +0100
++++ monit-5.33.0/configure 2024-02-13 16:51:40.139483822 +0100
+@@ -5428,46 +5428,6 @@ else $as_nop
+ :
+ fi
+
+-if test `uname` != "AIX"; then
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fstack-protector-all" >&5
+-printf %s "checking whether C compiler accepts -fstack-protector-all... " >&6; }
+-if test ${ax_cv_check_cflags___fstack_protector_all+y}
+-then :
+- printf %s "(cached) " >&6
+-else $as_nop
+-
+- ax_check_save_flags=$CFLAGS
+- CFLAGS="$CFLAGS -fstack-protector-all"
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main (void)
+-{
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_compile "$LINENO"
+-then :
+- ax_cv_check_cflags___fstack_protector_all=yes
+-else $as_nop
+- ax_cv_check_cflags___fstack_protector_all=no
+-fi
+-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+- CFLAGS=$ax_check_save_flags
+-fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fstack_protector_all" >&5
+-printf "%s\n" "$ax_cv_check_cflags___fstack_protector_all" >&6; }
+-if test "x$ax_cv_check_cflags___fstack_protector_all" = xyes
+-then :
+- CFLAGS="$CFLAGS -fstack-protector-all"
+-else $as_nop
+- :
+-fi
+-
+-fi
+
+
+ # ------------------------------------------------------------------------
diff --git a/package/monit/patches/patch-libmonit_configure b/package/monit/patches/patch-libmonit_configure
new file mode 100644
index 000000000..f86308419
--- /dev/null
+++ b/package/monit/patches/patch-libmonit_configure
@@ -0,0 +1,49 @@
+--- monit-5.33.0.orig/libmonit/configure 2023-02-11 11:29:10.000000000 +0100
++++ monit-5.33.0/libmonit/configure 2024-02-13 16:56:07.859480191 +0100
+@@ -5130,46 +5130,6 @@ else $as_nop
+ :
+ fi
+
+-if test `uname` != "AIX"; then
+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fstack-protector-all" >&5
+-printf %s "checking whether C compiler accepts -fstack-protector-all... " >&6; }
+-if test ${ax_cv_check_cflags___fstack_protector_all+y}
+-then :
+- printf %s "(cached) " >&6
+-else $as_nop
+-
+- ax_check_save_flags=$CFLAGS
+- CFLAGS="$CFLAGS -fstack-protector-all"
+- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+-/* end confdefs.h. */
+-
+-int
+-main (void)
+-{
+-
+- ;
+- return 0;
+-}
+-_ACEOF
+-if ac_fn_c_try_compile "$LINENO"
+-then :
+- ax_cv_check_cflags___fstack_protector_all=yes
+-else $as_nop
+- ax_cv_check_cflags___fstack_protector_all=no
+-fi
+-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+- CFLAGS=$ax_check_save_flags
+-fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fstack_protector_all" >&5
+-printf "%s\n" "$ax_cv_check_cflags___fstack_protector_all" >&6; }
+-if test "x$ax_cv_check_cflags___fstack_protector_all" = xyes
+-then :
+- CFLAGS="$CFLAGS -fstack-protector-all"
+-else $as_nop
+- :
+-fi
+-
+-fi
+
+ # ---------------------------------------------------------------------------
+ # Libtool
diff --git a/package/mopd/Makefile b/package/mopd/Makefile
index e3ffe9dd3..54245dc63 100644
--- a/package/mopd/Makefile
+++ b/package/mopd/Makefile
@@ -15,6 +15,7 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,MOPD,mopd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+TARGET_CFLAGS+= -fcommon
CONFIG_STYLE:= manual
INSTALL_STYLE:= manual
diff --git a/package/mopd/src/Makefile b/package/mopd/src/Makefile
index 980579251..522884369 100644
--- a/package/mopd/src/Makefile
+++ b/package/mopd/src/Makefile
@@ -12,7 +12,7 @@ MOP_PATH="-DMOP_FILE_PATH=\\\"/tftpboot/mop\\\""
# AOUT_SUPPORT="-DNOAOUT"
AOUT_SUPPORT=""
-CFLAGS="-g ${AOUT_SUPPORT} ${MOP_PATH} ${DEFAULT_HOSTNAME} ${REAL_HOSTNAME}"
+CFLAGS="-fcommon ${AOUT_SUPPORT} ${MOP_PATH} ${DEFAULT_HOSTNAME} ${REAL_HOSTNAME}"
#make file to build linux-mopd
SUBDIRS=common mopd mopchk mopprobe moptrace
diff --git a/package/mosh/Makefile b/package/mosh/Makefile
index df17088dc..dc18e02bd 100644
--- a/package/mosh/Makefile
+++ b/package/mosh/Makefile
@@ -4,12 +4,12 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= mosh
-PKG_VERSION:= 1.2.6
+PKG_VERSION:= 1.3.2
PKG_RELEASE:= 1
-PKG_HASH:= 7e82b7fbfcc698c70f5843bb960dadb8e7bd7ac1d4d2151c9d979372ea850e85
+PKG_HASH:= da600573dfa827d88ce114e0fed30210689381bbdcff543c931e4d6a2e851216
PKG_DESCR:= mobile shell
PKG_SECTION:= net/security
-PKG_DEPENDS:= zlib ncurses libressl
+PKG_DEPENDS:= zlib ncurses libressl perl
PKG_BUILDDEP:= protobuf-host protobuf zlib ncurses libressl
PKG_NEEDS:= c++
PKG_URL:= https://mosh.org/
diff --git a/package/mosquitto/Makefile b/package/mosquitto/Makefile
index 836e1630b..2cafc703f 100644
--- a/package/mosquitto/Makefile
+++ b/package/mosquitto/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= mosquitto
-PKG_VERSION:= 1.4.9
+PKG_VERSION:= 2.0.18
PKG_RELEASE:= 1
-PKG_HASH:= 1df3ae07de40b80a74cd37a7b026895c544cdd3b42c9e0719ae91623aa98c58b
+PKG_HASH:= d665fe7d0032881b1371a47f34169ee4edab67903b2cd2b4c083822823f4448a
PKG_DESCR:= mqtt broker
PKG_SECTION:= net/misc
PKG_DEPENDS:= c-ares libressl
@@ -33,7 +33,7 @@ mosquitto-install:
$(IDIR_MOSQUITTO)/usr/bin
$(INSTALL_BIN) $(WRKINST)/usr/sbin/mosquitto* \
$(IDIR_MOSQUITTO)/usr/sbin
- $(INSTALL_DATA) $(WRKINST)/etc/mosquitto/* \
+ $(INSTALL_DATA) $(WRKINST)/usr/etc/mosquitto/* \
$(IDIR_MOSQUITTO)/etc/mosquitto
$(CP) $(WRKINST)/usr/lib/*.so* \
$(IDIR_MOSQUITTO)/usr/lib
diff --git a/package/motion/Makefile b/package/motion/Makefile
index 4e2c7d4f7..f88db12bd 100644
--- a/package/motion/Makefile
+++ b/package/motion/Makefile
@@ -4,22 +4,24 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= motion
-# actually a svn version from 25.06.2014 checkout
-PKG_VERSION:= 4.0
-PKG_RELEASE:= 2
-PKG_HASH:= ff2931b0af037da126fed3e496430944132528132e71473aae478ff2e7f78e0d
+PKG_VERSION:= 4.6.0
+PKG_RELEASE:= 1
+PKG_HASH:= 9268df31a5ebeaf8daca4747cdcd01c86e223625b6f971e9bcec98edf35ec06f
PKG_DESCR:= webcam motion sensing and logging
PKG_SECTION:= mm/video
-PKG_DEPENDS:= libjpeg-turbo libsdl
-PKG_BUILDDEP:= libjpeg-turbo sdl
+PKG_DEPENDS:= libjpeg-turbo libmicrohttpd
+PKG_BUILDDEP:= libjpeg-turbo libmicrohttpd
PKG_NEEDS:= threads
-PKG_URL:= http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome
-PKG_SITES:= http://distfiles.openadk.org/
+PKG_SITES:= https://github.com/Motion-Project/motion/archive/refs/tags/
+
+DISTFILES:= release-$(PKG_VERSION).tar.gz
+WRKDIST= ${WRKDIR}/${PKG_NAME}-release-${PKG_VERSION}
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,MOTION,motion,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --without-ffmpeg \
--without-jpeg-mmx \
--without-optimizecpu \
diff --git a/package/motion/patches/patch-config_h b/package/motion/patches/patch-config_h
deleted file mode 100644
index 7c6d32ce8..000000000
--- a/package/motion/patches/patch-config_h
+++ /dev/null
@@ -1,33 +0,0 @@
---- motion-4.0.orig/config.h 2011-09-18 22:49:29.000000000 +0200
-+++ motion-4.0/config.h 2012-07-25 14:54:50.000000000 +0200
-@@ -14,7 +14,7 @@
- #define HAVE_LINUX_VIDEODEV2_H 1
-
- /* Define to 1 if you have the <linux/videodev.h> header file. */
--#define HAVE_LINUX_VIDEODEV_H 1
-+/* #undef HAVE_LINUX_VIDEODEV_H */
-
- /* Define to 1 if you have the <memory.h> header file. */
- #define HAVE_MEMORY_H 1
-@@ -89,10 +89,10 @@
- #define SIZEOF_INT 4
-
- /* The size of `int *', as computed by sizeof. */
--#define SIZEOF_INT_P 8
-+#define SIZEOF_INT_P 4
-
- /* The size of `long int', as computed by sizeof. */
--#define SIZEOF_LONG_INT 8
-+#define SIZEOF_LONG_INT 4
-
- /* The size of `long long', as computed by sizeof. */
- #define SIZEOF_LONG_LONG 8
-@@ -101,7 +101,7 @@
- #define SIZEOF_SHORT 2
-
- /* The size of `void *', as computed by sizeof. */
--#define SIZEOF_VOID_P 8
-+#define SIZEOF_VOID_P 4
-
- /* Define to 1 if you have the ANSI C header files. */
- #define STDC_HEADERS 1
diff --git a/package/motion/patches/patch-configure b/package/motion/patches/patch-configure
deleted file mode 100644
index e4f923ce8..000000000
--- a/package/motion/patches/patch-configure
+++ /dev/null
@@ -1,20 +0,0 @@
---- motion-4.0.orig/configure 2011-09-18 22:48:41.000000000 +0200
-+++ motion-4.0/configure 2012-07-25 15:29:03.000000000 +0200
-@@ -2395,7 +2395,7 @@ fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Darwin" >&5
- $as_echo_n "checking for Darwin... " >&6; }
--Darwin=`uname -a | grep "Darwin"`
-+Darwin=
-
- if test "${Darwin}" = ""; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-@@ -2403,7 +2403,7 @@ $as_echo "no" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for *BSD" >&5
- $as_echo_n "checking for *BSD... " >&6; }
-
-- FreeBSD=`uname -a | grep "BSD"`
-+ FreeBSD=
- if test "${FreeBSD}" = ""; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
- $as_echo "no" >&6; }
diff --git a/package/motion/patches/patch-motion_init-Debian b/package/motion/patches/patch-motion_init-Debian
deleted file mode 100644
index 18f9ef1a3..000000000
--- a/package/motion/patches/patch-motion_init-Debian
+++ /dev/null
@@ -1,11 +0,0 @@
---- motion-4.0.orig/motion.init-Debian 2011-09-18 22:49:29.000000000 +0200
-+++ motion-4.0/motion.init-Debian 2012-07-25 14:54:50.000000000 +0200
-@@ -6,7 +6,7 @@
-
- NAME=motion
- PATH=/bin:/usr/bin:/sbin:/usr/sbin
--DAEMON=/usr/local/bin/motion
-+DAEMON=/usr/bin/motion
- PIDFILE=/var/run/motion/$NAME.pid
-
-
diff --git a/package/motion/patches/patch-motion_init-FreeBSD_sh b/package/motion/patches/patch-motion_init-FreeBSD_sh
deleted file mode 100644
index 64a47fe11..000000000
--- a/package/motion/patches/patch-motion_init-FreeBSD_sh
+++ /dev/null
@@ -1,11 +0,0 @@
---- motion-4.0.orig/motion.init-FreeBSD.sh 2011-09-18 22:49:29.000000000 +0200
-+++ motion-4.0/motion.init-FreeBSD.sh 2012-07-25 14:54:50.000000000 +0200
-@@ -18,7 +18,7 @@ motion_enable="${motion_enable-NO}"
- name="motion"
- rcvar=`set_rcvar`
-
--command="/usr/local/bin/${name}"
-+command="/usr/bin/${name}"
- pidfile="/var/run/${name}.pid"
- required_files="/usr/local/etc/${name}.conf"
-
diff --git a/package/mpc/Makefile b/package/mpc/Makefile
index 7ccdb9a1e..0ae87e82d 100644
--- a/package/mpc/Makefile
+++ b/package/mpc/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= mpc
-PKG_VERSION:= 0.28
+PKG_VERSION:= 0.35
PKG_RELEASE:= 1
-PKG_HASH:= a4337d06c85dc81a638821d30fce8a137a58d13d510be34a11c1cce95cabc547
+PKG_HASH:= 382959c3bfa2765b5346232438650491b822a16607ff5699178aa1386e3878d4
PKG_DESCR:= music player client
PKG_SECTION:= mm/audio
PKG_DEPENDS:= libmpdclient
@@ -18,8 +18,11 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,MPC,mpc,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-CONFIGURE_ARGS+= --disable-iconv
-CONFIGURE_ENV+= ac_cv_lib_nsl_gethostbyname=no
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
mpc-install:
$(INSTALL_DIR) $(IDIR_MPC)/usr/bin
diff --git a/package/mpd/Makefile b/package/mpd/Makefile
index 82e02ab0a..424358185 100644
--- a/package/mpd/Makefile
+++ b/package/mpd/Makefile
@@ -4,17 +4,19 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= mpd
-PKG_VERSION:= 0.20.13
+PKG_VERSION:= 0.23.15
PKG_RELEASE:= 1
-PKG_HASH:= 46c1c534d80a52de00263e8ef43a6011ff9d765232443749539ef26b1b48ff40
+PKG_HASH:= 550132239ad1acf82ccf8905b56cc13dc2c81a4489b96fba7731b3049907661a
PKG_DESCR:= music player daemon
PKG_SECTION:= mm/audio
-PKG_DEPENDS:= libmpdclient boost libncurses libexpat
-PKG_BUILDDEP:= libmpdclient boost ncurses expat
+PKG_DEPENDS:= libmpdclient boost libncurses libexpat libsqlite libfmt libxcb
+PKG_DEPENDS+= libxau libxdmcp
+PKG_BUILDDEP:= libmpdclient boost ncurses expat sqlite fmt libxcb
+PKG_BUILDDEP+= libXau libXdmcp
PKG_FDEPENDS:= libmpdclient
PKG_NEEDS:= threads c++ data
PKG_URL:= http://www.musicpd.org/
-PKG_SITES:= http://www.musicpd.org/download/mpd/0.20/
+PKG_SITES:= http://www.musicpd.org/download/mpd/0.23/
PKG_FLAVOURS_MPD:= WITH_ALSA WITH_AO WITH_MP3 WITH_MP4
PKG_FLAVOURS_MPD+= WITH_OGG WITH_FLAC WITH_WAV WITH_MMS WITH_FFMPEG
@@ -91,7 +93,7 @@ PKGFD_WITH_CURL:= enable CURL support
PKGFS_WITH_CURL:= libcurl
PKGFB_WITH_CURL:= curl
ifeq ($(ADK_PACKAGE_MPD_WITH_CURL),y)
-PKG_FDEPENDS+= libcurl
+PKG_FDEPENDS+= curl
endif
PKGFD_WITH_SAMPLERATE:= enable samplerate support
@@ -135,142 +137,128 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,MPD,mpd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_FDEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
TARGET_CPPFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE
TARGET_CFLAGS+= -std=gnu99
-CONFIGURE_ENV+= ac_cv_lib_nsl_gethostbyname=no
-CONFIGURE_ARGS+= --disable-fifo \
- --disable-oss \
- --disable-icu \
- --disable-bzip2 \
- --disable-libwrap \
- --disable-smbclient \
- --disable-mpc \
- --disable-wavpack \
- --disable-modplug \
- --disable-sqlite \
- --disable-mpg123 \
- --disable-soundcloud \
- --enable-inotify \
- --enable-pipe-output
+
+MESON_FLAGS+= -Dfifo=false \
+ -Doss=disabled
ifneq ($(ADK_PACKAGE_MPD_WITH_JACK),)
-CONFIGURE_ARGS+= --enable-jack
+MESON_FLAGS+= -Djack=enabled
else
-CONFIGURE_ARGS+= --disable-jack
+MESON_FLAGS+= -Djack=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_SNDFILE),)
-CONFIGURE_ARGS+= --enable-sndfile
+MESON_FLAGS+= -Dsndfile=enabled
else
-CONFIGURE_ARGS+= --disable-sndfile
+MESON_FLAGS+= -Dsndfile=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_HTTPD),)
-CONFIGURE_ARGS+= --enable-httpd-output
+MESON_FLAGS+= -Dhttpd=true
else
-CONFIGURE_ARGS+= --disable-httpd-output
+MESON_FLAGS+= -Dhttpd=false
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_AVAHI),)
-CONFIGURE_ARGS+= --with-zeroconf=avahi
+MESON_FLAGS+= -Dzeroconf=avahi
else
-CONFIGURE_ARGS+= --with-zeroconf=no
+MESON_FLAGS+= -Dzeroconf=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_PULSE),)
-CONFIGURE_ARGS+= --enable-pulse
+MESON_FLAGS+= -Dpulse=enabled
else
-CONFIGURE_ARGS+= --disable-pulse
+MESON_FLAGS+= -Dpulse=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_ALSA),)
-CONFIGURE_ARGS+= --enable-alsa
+MESON_FLAGS+= -Dalsa=enabled
else
-CONFIGURE_ARGS+= --disable-alsa
+MESON_FLAGS+= -Dalsa=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_AO),)
-CONFIGURE_ARGS+= --enable-ao
+MESON_FLAGS+= -Dao=enabled
else
-CONFIGURE_ARGS+= --disable-ao
+MESON_FLAGS+= -Dao=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_MP3),)
-CONFIGURE_ARGS+= --enable-id3 --enable-mad
+MESON_FLAGS+= -Dmad=enabled
else
-CONFIGURE_ARGS+= --disable-id3 --disable-mad
+MESON_FLAGS+= -Dmad=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_MP4),)
-CONFIGURE_ARGS+= --enable-aac
+MESON_FLAGS+= -Dfaad=enabled
else
-CONFIGURE_ARGS+= --disable-aac
+MESON_FLAGS+= -Dfaad=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_OGG),)
-CONFIGURE_ARGS+= --enable-vorbis
+MESON_FLAGS+= -Dvorbis=enabled
else
-CONFIGURE_ARGS+= --disable-vorbis
+MESON_FLAGS+= -Dvorbis=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_TREMOR),)
-CONFIGURE_ARGS+= \
- --disable-vorbis \
- --with-tremor \
- --with-tremor-includes=$(STAGING_TARGET_DIR)/usr/include \
- --with-tremor-libraries=$(STAGING_TARGET_DIR)/usr/lib
+MESON_FLAGS+= -Dtremor=enabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_FLAC),)
-CONFIGURE_ARGS+= --enable-flac
+MESON_FLAGS+= -Dflac=enabled
else
-CONFIGURE_ARGS+= --disable-flac
+MESON_FLAGS+= -Dflac=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_WAV),)
-CONFIGURE_ARGS+= --enable-audiofile
+MESON_FLAGS+= -Daudiofile=enabled
else
-CONFIGURE_ARGS+= --disable-audiofile
+MESON_FLAGS+= -Daudiofile=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_SHOUT),)
-CONFIGURE_ARGS+= --enable-shout \
- --enable-lame-encoder \
- --enable-vorbis-encoder
+MESON_FLAGS+= -Dshout=enabled
else
-CONFIGURE_ARGS+= --disable-shout \
- --disable-lame-encoder \
- --disable-vorbis-encoder
+MESON_FLAGS+= -Dshout=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_CURL),)
-CONFIGURE_ARGS+= --enable-curl
+MESON_FLAGS+= -Dcurl=enabled
else
-CONFIGURE_ARGS+= --disable-curl
+MESON_FLAGS+= -Dcurl=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_MMS),)
-CONFIGURE_ARGS+= --enable-mms
+MESON_FLAGS+= -Dmms=enabled
else
-CONFIGURE_ARGS+= --disable-mms
+MESON_FLAGS+= -Dmms=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_FFMPEG),)
-CONFIGURE_ARGS+= --enable-ffmpeg
+MESON_FLAGS+= -Dffmpeg=enabled
else
-CONFIGURE_ARGS+= --disable-ffmpeg
+MESON_FLAGS+= -Dffmpeg=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_SAMPLERATE),)
-CONFIGURE_ARGS+= --enable-lsr
+MESON_FLAGS+= -Dlibsamplerate=enabled
else
-CONFIGURE_ARGS+= --disable-lsr
+MESON_FLAGS+= -Dlibsamplerate=disabled
endif
ifneq ($(ADK_PACKAGE_MPD_WITH_OPUS),)
-CONFIGURE_ARGS+= --enable-opus
+MESON_FLAGS+= -Dopus=enabled
else
-CONFIGURE_ARGS+= --disable-opus
+MESON_FLAGS+= -Dopus=disabled
endif
mpd-install:
diff --git a/package/mpd/files/mpd.conf b/package/mpd/files/mpd.conf
index 4c6cfe471..7e1c947d5 100644
--- a/package/mpd/files/mpd.conf
+++ b/package/mpd/files/mpd.conf
@@ -8,7 +8,6 @@ db_file "/data/mpd/database"
pid_file "/var/run/mpd/mpd.pid"
log_file "syslog"
filesystem_charset "UTF-8"
-id3v1_encoding "UTF-8"
mixer_type "software"
# An example of an ALSA output
diff --git a/package/mpfr/patches/patch-src_mpfr-longlong_h b/package/mpfr/patches/patch-src_mpfr-longlong_h
deleted file mode 100644
index e68cfa752..000000000
--- a/package/mpfr/patches/patch-src_mpfr-longlong_h
+++ /dev/null
@@ -1,11 +0,0 @@
---- mpfr-3.1.2.orig/src/mpfr-longlong.h 2013-03-13 16:37:32.000000000 +0100
-+++ mpfr-3.1.2/src/mpfr-longlong.h 2014-01-06 16:29:39.854354889 +0100
-@@ -1043,7 +1043,7 @@ extern UWtype __MPN(udiv_qrnnd) _PROTO (
- #define UDIV_TIME 100
- #endif /* __mips */
-
--#if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64
-+#if (defined (__mips) && __mips >= 3) && W_TYPE_SIZE == 64 && defined (_LP64)
- #if __GMP_GNUC_PREREQ (4,4)
- #define umul_ppmm(w1, w0, u, v) \
- do { \
diff --git a/package/mpg123/Makefile b/package/mpg123/Makefile
index 9ef90c5cf..dbc9b0033 100644
--- a/package/mpg123/Makefile
+++ b/package/mpg123/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= mpg123
-PKG_VERSION:= 1.25.2
+PKG_VERSION:= 1.32.4
PKG_RELEASE:= 1
-PKG_HASH:= 5314b0fb8ad291bfc79ff4c5c321b971916819a65233ec065434358fcf8aee38
+PKG_HASH:= 5a99664338fb2f751b662f40ee25804d0c9db6b575dcb5ce741c6dc64224a08a
PKG_DESCR:= mp3 console player
PKG_SECTION:= mm/audio
PKG_DEPENDS:= alsa-lib
@@ -21,21 +21,20 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,MPG123,mpg123,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-AUTOTOOL_STYLE:= autoreconf
-
ifeq ($(ADK_TARGET_CPU_X86_I486),y)
CONFIGURE_ARGS+= --with-cpu=i486
endif
ifeq ($(ADK_TARGET_CPU_X86_I586),y)
CONFIGURE_ARGS+= --with-cpu=i586
endif
-ifeq ($(ADK_TARGET_CPU_WITH_NEON),y)
+ifeq ($(ADK_TARGET_ARCH_ARM)$(ADK_TARGET_CPU_WITH_NEON),yy)
CONFIGURE_ARGS+= --with-cpu=neon
endif
+ifeq ($(ADK_TARGET_ARCH_AARCH64),y)
+CONFIGURE_ARGS+= --with-cpu=aarch64
+endif
-TARGET_CPPFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE
-CONFIGURE_ARGS+= --disable-shared \
- --with-default-audio=alsa
+CONFIGURE_ARGS+= --with-default-audio=alsa --disable-shared
mpg123-install:
$(INSTALL_DIR) $(IDIR_MPG123)/usr/bin
diff --git a/package/mpg123/patches/patch-configure_ac b/package/mpg123/patches/patch-configure_ac
deleted file mode 100644
index 41a7e658e..000000000
--- a/package/mpg123/patches/patch-configure_ac
+++ /dev/null
@@ -1,11 +0,0 @@
---- mpg123-1.21.0.orig/configure.ac 2014-09-28 16:27:28.000000000 -0500
-+++ mpg123-1.21.0/configure.ac 2015-02-16 13:31:29.910186926 -0600
-@@ -1548,7 +1548,7 @@ do
- HAVE_ALSA=no
- else
-
-- ALSA_LIBS="-lasound"
-+ ALSA_LIBS="-lasound -lpthread"
- # Check for ALSA
- AC_CHECK_LIB( [asound], [snd_pcm_open],
- [ AC_CHECK_HEADER( [alsa/asoundlib.h],
diff --git a/package/mplayer/Makefile b/package/mplayer/Makefile
index 2233053ff..ef821a290 100644
--- a/package/mplayer/Makefile
+++ b/package/mplayer/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= mplayer
-PKG_VERSION:= 1.3.0
+PKG_VERSION:= 1.5
PKG_RELEASE:= 1
-PKG_HASH:= 3ad0846c92d89ab2e4e6fb83bf991ea677e7aa2ea775845814cbceb608b09843
+PKG_HASH:= 650cd55bb3cb44c9b39ce36dac488428559799c5f18d16d98edb2b7256cbbf85
PKG_DESCR:= popular video player
PKG_SECTION:= mm/video
PKG_DEPENDS:= alsa-lib libjpeg-turbo libfaad2 libmad libncurses
@@ -20,12 +20,10 @@ PKG_NEEDS:= threads intl
PKG_URL:= http://www.mplayerhq.hu/
PKG_SITES:= http://www.mplayerhq.hu/MPlayer/releases/
-PKG_BUILDDEP_IBM_X40:= yasm-host
-
DISTFILES:= MPlayer-$(PKG_VERSION).tar.xz
WRKDIST= ${WRKDIR}/MPlayer-${PKG_VERSION}
-PKG_ARCH_DEPENDS:= x86 x86_64 mips arm
+PKG_ARCH_DEPENDS:= x86 x86_64 mips arm aarch64
PKG_FLAVOURS_MPLAYER:= WITH_DIRECTFB
PKGFD_WITH_DIRECTFB:= enable DirectFB video output support
@@ -131,12 +129,6 @@ else
CONFIGURE_DIRECTFB= --disable-directfb
endif
-ifeq ($(ADK_TARGET_SYSTEM_IBM_X40),y)
- --yasm=${STAGING_HOST_DIR}/usr/bin/yasm
-else
- --yasm=''
-endif
-
CONFIGURE_ARGS:= --prefix=/usr \
--enable-x11 \
--confdir=/etc \
@@ -169,7 +161,6 @@ CONFIGURE_ARGS:= --prefix=/usr \
--disable-live \
--disable-pvr \
--disable-ftp \
- --disable-ivtv \
--disable-freetype \
--disable-mpg123 \
--disable-arts \
diff --git a/package/mplayer/patches/patch-stream_asf_streaming_c b/package/mplayer/patches/patch-stream_asf_streaming_c
deleted file mode 100644
index 4fa3b696b..000000000
--- a/package/mplayer/patches/patch-stream_asf_streaming_c
+++ /dev/null
@@ -1,27 +0,0 @@
---- mplayer-1.0-32749.orig/stream/asf_streaming.c 2011-01-03 11:26:52.000000000 +0100
-+++ mplayer-1.0-32749/stream/asf_streaming.c 2011-07-29 17:54:35.013424616 +0200
-@@ -38,7 +38,6 @@
-
- #include "stream.h"
- #include "libmpdemux/demuxer.h"
--#include "asf_mmst_streaming.h"
- #include "network.h"
- #include "tcp.h"
-
-@@ -87,16 +86,6 @@ static int asf_streaming_start( stream_t
- if( fd==-2 ) return -1;
- }
-
-- //Is protocol mms or mmst?
-- if (!strcasecmp(proto, "mmst") || !strcasecmp(proto, "mms"))
-- {
-- mp_msg(MSGT_NETWORK,MSGL_V,"Trying ASF/TCP...\n");
-- fd = asf_mmst_streaming_start( stream );
-- stream->streaming_ctrl->url->port = port;
-- if( fd>-1 ) return fd;
-- mp_msg(MSGT_NETWORK,MSGL_V," ===> ASF/TCP failed\n");
-- if( fd==-2 ) return -1;
-- }
-
- //Is protocol http, http_proxy, or mms?
- if (!strcasecmp(proto, "http_proxy") || !strcasecmp(proto, "http") ||
diff --git a/package/mqttmpd/Makefile b/package/mqttmpd/Makefile
new file mode 100644
index 000000000..264e82307
--- /dev/null
+++ b/package/mqttmpd/Makefile
@@ -0,0 +1,28 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= mqttmpd
+PKG_VERSION:= r5
+PKG_RELEASE:= 1
+PKG_GIT:= tag
+PKG_DESCR:= mqtt mpd bridge
+PKG_SECTION:= mm/audio
+PKG_DEPENDS:= mosquitto mpd
+PKG_BUILDDEP:= mosquitto
+PKG_URL:= https://github.com/kurt-vd/mqttmpd
+PKG_SITES:= https://github.com/kurt-vd/mqttmpd.git
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,MQTTMPD,mqttmpd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+
+mqttmpd-install:
+ $(INSTALL_DIR) $(IDIR_MQTTMPD)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/mqttmpd \
+ $(IDIR_MQTTMPD)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/mqttmpd/patches/patch-Makefile b/package/mqttmpd/patches/patch-Makefile
new file mode 100644
index 000000000..81036fe66
--- /dev/null
+++ b/package/mqttmpd/patches/patch-Makefile
@@ -0,0 +1,32 @@
+--- mqttmpd-r5.orig/Makefile 2020-04-22 16:34:15.000000000 +0200
++++ mqttmpd-r5/Makefile 2020-04-23 23:12:16.506689542 +0200
+@@ -1,12 +1,12 @@
+ PROGS = mqttmpd
+ default : $(PROGS)
+
+-PREFIX = /usr/local
++PREFIX = /usr
+
+-CC = gcc
+-CFLAGS = -Wall
+-CPPFLAGS= -D_GNU_SOURCE
+-LDLIBS = -lmosquitto
++#CC = gcc
++CFLAGS+= -Wall
++CPPFLAGS+= -D_GNU_SOURCE
++LDLIBS+= -lmosquitto
+ INSTOPTS= -s
+
+ VERSION := $(shell git describe --tags --always)
+@@ -15,8 +15,10 @@ VERSION := $(shell git describe --tags -
+
+ CPPFLAGS += -DVERSION=\"$(VERSION)\"
+
++all: $(PROGS)
++
+ install: $(PROGS)
+- $(foreach PROG, $(PROGS), install -vp -m 0777 $(INSTOPTS) $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG);)
++ $(foreach PROG, $(PROGS), install -vp -D -m 0777 $(INSTOPTS) $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG);)
+
+ clean:
+ rm -rf $(wildcard *.o) $(PROGS)
diff --git a/package/mtdev/Makefile b/package/mtdev/Makefile
new file mode 100644
index 000000000..b4e2bfd3c
--- /dev/null
+++ b/package/mtdev/Makefile
@@ -0,0 +1,26 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= mtdev
+PKG_VERSION:= 1.1.6
+PKG_RELEASE:= 1
+PKG_HASH:= 1325f389a2f25cd5f5a8ea4d29aad24aa7c3ec30401d679400dd79eb9c0a8dbb
+PKG_DESCR:= library which transforms all variants of kernel MT events
+PKG_SECTION:= libs/misc
+PKG_SITES:= https://bitmath.org/code/mtdev/
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,MTDEV,mtdev,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+mtdev-install:
+ $(INSTALL_DIR) $(IDIR_MTDEV)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libmtdev*.so* \
+ $(IDIR_MTDEV)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/mtr/Makefile b/package/mtr/Makefile
index 910dce00b..8076804f6 100644
--- a/package/mtr/Makefile
+++ b/package/mtr/Makefile
@@ -4,17 +4,17 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= mtr
-PKG_VERSION:= 0.75
-PKG_RELEASE:= 2
-PKG_HASH:= 1d1a5de6b233289bf17a21e3bf83c82db47d22bb269af986229b788689e1f0f3
+PKG_VERSION:= 0.95
+PKG_RELEASE:= 1
+PKG_HASH:= 12490fb660ba5fb34df8c06a0f62b4f9cbd11a584fc3f6eceda0a99124e8596f
PKG_DESCR:= traceroute/ping tool
PKG_SECTION:= net/debug
PKG_DEPENDS:= libncurses
PKG_BUILDDEP:= ncurses
PKG_URL:= http://www.bitwizard.nl/mtr/
-PKG_SITES:= ftp://ftp.bitwizard.nl/mtr/
+PKG_SITES:= https://github.com/traviscross/mtr/archive/refs/tags/
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+DISTFILES:= v${PKG_VERSION}.tar.gz
PKG_LIBC_DEPENDS:= uclibc-ng glibc
@@ -23,6 +23,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,MTR,mtr,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
TARGET_LDFLAGS+= -ltinfo
+AUTOTOOL_STYLE:= bootstrap
CONFIGURE_ENV+= ac_cv_lib_resolv_res_mkquery=yes
CONFIGURE_ARGS+= --without-gtk
diff --git a/package/mtr/patches/501-dns.patch b/package/mtr/patches/501-dns.patch
deleted file mode 100644
index f1c915580..000000000
--- a/package/mtr/patches/501-dns.patch
+++ /dev/null
@@ -1,511 +0,0 @@
-diff -Naur mtr-0.69.old/dns.c mtr-0.69.new/dns.c
---- mtr-0.69.old/dns.c 2005-01-11 09:32:42.000000000 +0100
-+++ mtr-0.69.new/dns.c 2005-10-03 21:31:27.000000000 +0200
-@@ -853,6 +853,507 @@
- fputs("\r",stderr);
- }
-
-+#ifdef __UCLIBC__
-+
-+static const char digits[] = "0123456789";
-+#define __set_errno(e) (errno = (e))
-+
-+#define NS_PUT16(s, cp) do { \
-+ register u_int16_t t_s = (u_int16_t)(s); \
-+ register u_char *t_cp = (u_char *)(cp); \
-+ *t_cp++ = t_s >> 8; \
-+ *t_cp = t_s; \
-+ (cp) += NS_INT16SZ; \
-+} while (0)
-+
-+
-+
-+#define NS_PUT32(l, cp) do { \
-+ register u_int32_t t_l = (u_int32_t)(l); \
-+ register u_char *t_cp = (u_char *)(cp); \
-+ *t_cp++ = t_l >> 24; \
-+ *t_cp++ = t_l >> 16; \
-+ *t_cp++ = t_l >> 8; \
-+ *t_cp = t_l; \
-+ (cp) += NS_INT32SZ; \
-+} while (0)
-+
-+
-+void
-+ns_put16(u_int src, u_char *dst) {
-+ NS_PUT16(src, dst);
-+}
-+
-+void
-+ns_put32(u_long src, u_char *dst) {
-+ NS_PUT32(src, dst);
-+}
-+
-+void __putshort(u_int16_t src, u_char *dst) { ns_put16(src, dst); }
-+void __putlong(u_int32_t src, u_char *dst) { ns_put32(src, dst); }
-+
-+int
-+mklower(int ch) {
-+ if (ch >= 0x41 && ch <= 0x5A)
-+ return (ch + 0x20);
-+ return (ch);
-+}
-+
-+
-+static int
-+dn_find(const u_char *domain, const u_char *msg,
-+ const u_char * const *dnptrs,
-+ const u_char * const *lastdnptr)
-+{
-+ const u_char *dn, *cp, *sp;
-+ const u_char * const *cpp;
-+ u_int n;
-+
-+ for (cpp = dnptrs; cpp < lastdnptr; cpp++) {
-+ sp = *cpp;
-+ /*
-+ * terminate search on:
-+ * root label
-+ * compression pointer
-+ * unusable offset
-+ */
-+ while (*sp != 0 && (*sp & NS_CMPRSFLGS) == 0 &&
-+ (sp - msg) < 0x4000) {
-+ dn = domain;
-+ cp = sp;
-+ while ((n = *cp++) != 0) {
-+ /*
-+ * check for indirection
-+ */
-+ switch (n & NS_CMPRSFLGS) {
-+ case 0: /* normal case, n == len */
-+ if (n != *dn++)
-+ goto next;
-+ for ((void)NULL; n > 0; n--)
-+ if (mklower(*dn++) !=
-+ mklower(*cp++))
-+ goto next;
-+ /* Is next root for both ? */
-+ if (*dn == '\0' && *cp == '\0')
-+ return (sp - msg);
-+ if (*dn)
-+ continue;
-+ goto next;
-+
-+ case NS_CMPRSFLGS: /* indirection */
-+ cp = msg + (((n & 0x3f) << 8) | *cp);
-+ break;
-+
-+ default: /* illegal type */
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ }
-+ next:
-+ sp += *sp + 1;
-+ }
-+ }
-+ __set_errno (ENOENT);
-+ return (-1);
-+}
-+
-+
-+int
-+ns_name_pack(const u_char *src, u_char *dst, int dstsiz,
-+ const u_char **dnptrs, const u_char **lastdnptr)
-+{
-+ u_char *dstp;
-+ const u_char **cpp, **lpp, *eob, *msg;
-+ const u_char *srcp;
-+ int n, l, first = 1;
-+
-+ srcp = src;
-+ dstp = dst;
-+ eob = dstp + dstsiz;
-+ lpp = cpp = NULL;
-+ if (dnptrs != NULL) {
-+ if ((msg = *dnptrs++) != NULL) {
-+ for (cpp = dnptrs; *cpp != NULL; cpp++)
-+ (void)NULL;
-+ lpp = cpp; /* end of list to search */
-+ }
-+ } else
-+ msg = NULL;
-+
-+ /* make sure the domain we are about to add is legal */
-+ l = 0;
-+ do {
-+ n = *srcp;
-+ if ((n & NS_CMPRSFLGS) != 0 && n != 0x41) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ if (n == 0x41)
-+ n = *++srcp / 8;
-+ l += n + 1;
-+ if (l > MAXCDNAME) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ srcp += n + 1;
-+ } while (n != 0);
-+
-+ /* from here on we need to reset compression pointer array on error */
-+ srcp = src;
-+ do {
-+ /* Look to see if we can use pointers. */
-+ n = *srcp;
-+ if (n != 0 && n != 0x41 && msg != NULL) {
-+ l = dn_find(srcp, msg, (const u_char * const *)dnptrs,
-+ (const u_char * const *)lpp);
-+ if (l >= 0) {
-+ if (dstp + 1 >= eob) {
-+ goto cleanup;
-+ }
-+ *dstp++ = (l >> 8) | NS_CMPRSFLGS;
-+ *dstp++ = l % 256;
-+ return (dstp - dst);
-+ }
-+ /* Not found, save it. */
-+ if (lastdnptr != NULL && cpp < lastdnptr - 1 &&
-+ (dstp - msg) < 0x4000 && first) {
-+ *cpp++ = dstp;
-+ *cpp = NULL;
-+ first = 0;
-+ }
-+ }
-+ /* copy label to buffer */
-+ if ((n & NS_CMPRSFLGS) != 0 && n != 0x41) { /* Should not happen. */
-+ goto cleanup;
-+ }
-+ if (n == 0x41) {
-+ n = *++srcp / 8;
-+ if (dstp + 1 >= eob)
-+ goto cleanup;
-+ *dstp++ = 0x41;
-+ }
-+ if (dstp + 1 + n >= eob) {
-+ goto cleanup;
-+ }
-+ memcpy(dstp, srcp, n + 1);
-+ srcp += n + 1;
-+ dstp += n + 1;
-+ } while (n != 0);
-+
-+ if (dstp > eob) {
-+cleanup:
-+ if (msg != NULL)
-+ *lpp = NULL;
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ return (dstp - dst);
-+}
-+
-+
-+int
-+ns_name_pton(const char *src, u_char *dst, size_t dstsiz) {
-+ u_char *label, *bp, *eom;
-+ int c, n, escaped;
-+ char *cp;
-+
-+ escaped = 0;
-+ bp = dst;
-+ eom = dst + dstsiz;
-+ label = bp++;
-+
-+ while ((c = *src++) != 0) {
-+ if (escaped) {
-+ if ((cp = strchr(digits, c)) != NULL) {
-+ n = (cp - digits) * 100;
-+ if ((c = *src++) == 0 ||
-+ (cp = strchr(digits, c)) == NULL) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ n += (cp - digits) * 10;
-+ if ((c = *src++) == 0 ||
-+ (cp = strchr(digits, c)) == NULL) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ n += (cp - digits);
-+ if (n > 255) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ c = n;
-+ } else if (c == '[' && label == bp - 1 && *src == 'x') {
-+ /* Theoretically we would have to handle \[o
-+ as well but we do not since we do not need
-+ it internally. */
-+ *label = 0x41;
-+ label = bp++;
-+ ++src;
-+ while (isxdigit (*src)) {
-+ n = *src > '9' ? *src - 'a' + 10 : *src - '0';
-+ ++src;
-+ if (! isxdigit(*src)) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ n <<= 4;
-+ n += *src > '9' ? *src - 'a' + 10 : *src - '0';
-+ if (bp + 1 >= eom) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ *bp++ = n;
-+ ++src;
-+ }
-+ *label = (bp - label - 1) * 8;
-+ if (*src++ != ']' || *src++ != '.') {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ escaped = 0;
-+ label = bp++;
-+ if (bp >= eom) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ continue;
-+ }
-+ escaped = 0;
-+ } else if (c == '\\') {
-+ escaped = 1;
-+ continue;
-+ } else if (c == '.') {
-+ c = (bp - label - 1);
-+ if ((c & NS_CMPRSFLGS) != 0) { /* Label too big. */
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ if (label >= eom) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ *label = c;
-+ /* Fully qualified ? */
-+ if (*src == '\0') {
-+ if (c != 0) {
-+ if (bp >= eom) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ *bp++ = '\0';
-+ }
-+ if ((bp - dst) > MAXCDNAME) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ return (1);
-+ }
-+ if (c == 0 || *src == '.') {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ label = bp++;
-+ continue;
-+ }
-+ if (bp >= eom) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ *bp++ = (u_char)c;
-+ }
-+ c = (bp - label - 1);
-+ if ((c & NS_CMPRSFLGS) != 0) { /* Label too big. */
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ if (label >= eom) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ *label = c;
-+ if (c != 0) {
-+ if (bp >= eom) {
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ *bp++ = 0;
-+ }
-+ if ((bp - dst) > MAXCDNAME) { /* src too big */
-+ __set_errno (EMSGSIZE);
-+ return (-1);
-+ }
-+ return (0);
-+}
-+
-+
-+
-+int
-+ns_name_compress(const char *src, u_char *dst, size_t dstsiz,
-+ const u_char **dnptrs, const u_char **lastdnptr)
-+{
-+ u_char tmp[NS_MAXCDNAME];
-+
-+ if (ns_name_pton(src, tmp, sizeof tmp) == -1)
-+ return (-1);
-+ return (ns_name_pack(tmp, dst, dstsiz, dnptrs, lastdnptr));
-+}
-+
-+
-+int
-+dn_comp(const char *src, u_char *dst, int dstsiz,
-+ u_char **dnptrs, u_char **lastdnptr)
-+{
-+ return (ns_name_compress(src, dst, (size_t)dstsiz,
-+ (const u_char **)dnptrs,
-+ (const u_char **)lastdnptr));
-+}
-+
-+
-+
-+
-+int
-+res_nmkquery(res_state statp,
-+ int op, /* opcode of query */
-+ const char *dname, /* domain name */
-+ int class, int type, /* class and type of query */
-+ const u_char *data, /* resource record data */
-+ int datalen, /* length of data */
-+ const u_char *newrr_in, /* new rr for modify or append */
-+ u_char *buf, /* buffer to put query */
-+ int buflen) /* size of buffer */
-+{
-+ register HEADER *hp;
-+ register u_char *cp;
-+ register int n;
-+ u_char *dnptrs[20], **dpp, **lastdnptr;
-+
-+#ifdef DEBUG
-+ if (statp->options & RES_DEBUG)
-+ printf(";; res_nmkquery(%s, %s, %s, %s)\n",
-+ _res_opcodes[op], dname, p_class(class), p_type(type));
-+#endif
-+ /*
-+ * Initialize header fields.
-+ */
-+ if ((buf == NULL) || (buflen < HFIXEDSZ))
-+ return (-1);
-+ memset(buf, 0, HFIXEDSZ);
-+ hp = (HEADER *) buf;
-+ /* We randomize the IDs every time. The old code just
-+ incremented by one after the initial randomization which
-+ still predictable if the application does multiple
-+ requests. */
-+#if 0
-+ hp->id = htons(++statp->id);
-+#else
-+ hp->id = htons(statp->id);
-+ int randombits;
-+ do
-+ {
-+#ifdef RANDOM_BITS
-+ RANDOM_BITS (randombits);
-+#else
-+ struct timeval tv;
-+ gettimeofday (&tv, NULL);
-+ randombits = (tv.tv_sec << 8) ^ tv.tv_usec;
-+#endif
-+ }
-+ while ((randombits & 0xffff) == 0);
-+ statp->id = (statp->id + randombits) & 0xffff;
-+#endif
-+ hp->opcode = op;
-+ hp->rd = (statp->options & RES_RECURSE) != 0;
-+ hp->rcode = NOERROR;
-+ cp = buf + HFIXEDSZ;
-+ buflen -= HFIXEDSZ;
-+ dpp = dnptrs;
-+ *dpp++ = buf;
-+ *dpp++ = NULL;
-+ lastdnptr = dnptrs + sizeof dnptrs / sizeof dnptrs[0];
-+ /*
-+ * perform opcode specific processing
-+ */
-+ switch (op) {
-+ case QUERY: /*FALLTHROUGH*/
-+ case NS_NOTIFY_OP:
-+ if ((buflen -= QFIXEDSZ) < 0)
-+ return (-1);
-+ if ((n = dn_comp(dname, cp, buflen, dnptrs, lastdnptr)) < 0)
-+ return (-1);
-+ cp += n;
-+ buflen -= n;
-+ __putshort(type, cp);
-+ cp += INT16SZ;
-+ __putshort(class, cp);
-+ cp += INT16SZ;
-+ hp->qdcount = htons(1);
-+ if (op == QUERY || data == NULL)
-+ break;
-+ /*
-+ * Make an additional record for completion domain.
-+ */
-+ buflen -= RRFIXEDSZ;
-+ n = dn_comp((char *)data, cp, buflen, dnptrs, lastdnptr);
-+ if (n < 0)
-+ return (-1);
-+ cp += n;
-+ buflen -= n;
-+ __putshort(T_NULL, cp);
-+ cp += INT16SZ;
-+ __putshort(class, cp);
-+ cp += INT16SZ;
-+ __putlong(0, cp);
-+ cp += INT32SZ;
-+ __putshort(0, cp);
-+ cp += INT16SZ;
-+ hp->arcount = htons(1);
-+ break;
-+
-+ case IQUERY:
-+ /*
-+ * Initialize answer section
-+ */
-+ if (buflen < 1 + RRFIXEDSZ + datalen)
-+ return (-1);
-+ *cp++ = '\0'; /* no domain name */
-+ __putshort(type, cp);
-+ cp += INT16SZ;
-+ __putshort(class, cp);
-+ cp += INT16SZ;
-+ __putlong(0, cp);
-+ cp += INT32SZ;
-+ __putshort(datalen, cp);
-+ cp += INT16SZ;
-+ if (datalen) {
-+ memcpy(cp, data, datalen);
-+ cp += datalen;
-+ }
-+ hp->ancount = htons(1);
-+ break;
-+
-+ default:
-+ return (-1);
-+ }
-+ return (cp - buf);
-+}
-+
-+int
-+res_mkquery(int op, /* opcode of query */
-+ const char *dname, /* domain name */
-+ int class, int type, /* class and type of query */
-+ const u_char *data, /* resource record data */
-+ int datalen, /* length of data */
-+ const u_char *newrr_in, /* new rr for modify or append */
-+ u_char *buf, /* buffer to put query */
-+ int buflen) /* size of buffer */
-+{
-+ return (res_nmkquery(&_res, op, dname, class, type,
-+ data, datalen,
-+ newrr_in, buf, buflen));
-+}
-+
-+#endif
-
- void dorequest(char *s,int type,word id)
- {
diff --git a/package/mtr/patches/patch-curses_c b/package/mtr/patches/patch-curses_c
deleted file mode 100644
index 2e04bd4ce..000000000
--- a/package/mtr/patches/patch-curses_c
+++ /dev/null
@@ -1,21 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- mtr-0.75.orig/curses.c 2008-08-19 18:55:48.000000000 +0200
-+++ mtr-0.75/curses.c 2008-10-10 15:04:37.000000000 +0200
-@@ -241,7 +241,7 @@ int mtr_curses_keyaction(void)
- return ActionNone;
- }
- if (tolower(c) == 'j') {
-- if( index(fld_active, 'N') ) {
-+ if( strchr(fld_active, 'N') ) {
- strcpy(fld_active, "DR AGJMXI"); /* GeoMean and jitter */
- } else {
- strcpy(fld_active, "LS NABWV"); /* default */
-@@ -328,7 +328,7 @@ void mtr_curses_hosts(int startstat)
- if (j == -1) continue;
-
- /* temporay hack for stats usec to ms... */
-- if( index( data_fields[j].format, 'f' ) ) {
-+ if( strchr( data_fields[j].format, 'f' ) ) {
- sprintf(buf + hd_len, data_fields[j].format,
- data_fields[j].net_xxx(at) /1000.0 );
- } else {
diff --git a/package/mtr/patches/patch-report_c b/package/mtr/patches/patch-report_c
deleted file mode 100644
index bbae19253..000000000
--- a/package/mtr/patches/patch-report_c
+++ /dev/null
@@ -1,30 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- mtr-0.75.orig/report.c 2008-09-18 14:40:09.000000000 +0200
-+++ mtr-0.75/report.c 2008-10-10 15:05:00.000000000 +0200
-@@ -122,7 +122,7 @@ void report_close(void)
- if (j < 0) continue;
-
- /* 1000.0 is a temporay hack for stats usec to ms, impacted net_loss. */
-- if( index( data_fields[j].format, 'f' ) ) {
-+ if( strchr( data_fields[j].format, 'f' ) ) {
- snprintf( buf + len, sizeof(buf), data_fields[j].format,
- data_fields[j].net_xxx(at) /1000.0 );
- } else {
-@@ -201,7 +201,7 @@ void xml_close(void)
- strcat(name, data_fields[j].format);
- strcat(name, "</%s>\n");
- /* 1000.0 is a temporay hack for stats usec to ms, impacted net_loss. */
-- if( index( data_fields[j].format, 'f' ) ) {
-+ if( strchr( data_fields[j].format, 'f' ) ) {
- printf( name,
- data_fields[j].title,
- data_fields[j].net_xxx(at) /1000.0,
-@@ -280,7 +280,7 @@ void csv_close(void)
- if (j < 0) continue;
-
- /* 1000.0 is a temporay hack for stats usec to ms, impacted net_loss. */
-- if( index( data_fields[j].format, 'f' ) ) {
-+ if( strchr( data_fields[j].format, 'f' ) ) {
- printf( ", %.2f", data_fields[j].net_xxx(at) / 1000.0);
- } else {
- printf( ", %d", data_fields[j].net_xxx(at) );
diff --git a/package/musl/Makefile b/package/musl/Makefile
index ba31e1f5f..4e49aadd9 100644
--- a/package/musl/Makefile
+++ b/package/musl/Makefile
@@ -29,7 +29,7 @@ INSTALL_STYLE:= manual
MUSL_LD_SO:= "`echo 'void main(void) {}' |${TARGET_CC} ${TARGET_CFLAGS} -x c -o \
$(BUILD_DIR)/.musl.tmp - >/dev/null 2>&1 ;\
${TARGET_COMPILER_PREFIX}readelf -l $(BUILD_DIR)/.musl.tmp 2>/dev/null \
- | grep 'program interpreter: /lib/ld-musl' | sed -e 's|.*lib/||'|sed -e 's|]||' ;\
+ | grep 'program interpreter: /lib.*/ld-musl' | sed -e 's|.*lib.*/||'|sed -e 's|]||' ;\
rm $(BUILD_DIR)/.musl.tmp`"
# do nothing, musl is already build in toolchain directory
@@ -48,11 +48,7 @@ endif
musl-dev-install:
${INSTALL_DIR} ${IDIR_MUSL_DEV}/usr/lib
${CP} ${STAGING_TARGET_DIR}/usr/lib/crt*.o ${IDIR_MUSL_DEV}/usr/lib
- ${KERNEL_MAKE_ENV} \
- $(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-linux-$(KERNEL_VERSION)/linux-$(KERNEL_FILE_VER) \
- $(KERNEL_MAKE_OPTS) \
- INSTALL_HDR_PATH=$(IDIR_MUSL_DEV)/usr \
- headers_install
+ ${KERNEL_MAKE} INSTALL_HDR_PATH=$(IDIR_MUSL_DEV)/usr headers_install
$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/${PKG_NAME}-${PKG_VERSION} \
DESTDIR=$(IDIR_MUSL_DEV) \
install-headers
diff --git a/package/mutt/Makefile b/package/mutt/Makefile
index e268f761e..a8578b6ad 100644
--- a/package/mutt/Makefile
+++ b/package/mutt/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= mutt
-PKG_VERSION:= 1.8.3
+PKG_VERSION:= 2.2.12
PKG_RELEASE:= 1
-PKG_HASH:= 9b81746d67ffeca5ea44f60893b70dc93c86d4bc10187d4dd360185e4d42ed42
+PKG_HASH:= 043af312f64b8e56f7fd0bf77f84a205d4c498030bd9586457665c47bb18ce38
PKG_DESCR:= mail client for console
PKG_SECTION:= net/mail
PKG_DEPENDS:= libncurses
diff --git a/package/mympd/Makefile b/package/mympd/Makefile
new file mode 100644
index 000000000..ccef09b13
--- /dev/null
+++ b/package/mympd/Makefile
@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= mympd
+PKG_VERSION:= 14.0.2
+PKG_RELEASE:= 1
+PKG_HASH:= 309476bcc352f5b9ddc365412cb636e41b3a9e675c0ef94c17b982af2dfc3aa8
+PKG_DESCR:= standalone music player daemon web gui
+PKG_SECTION:= net/http
+PKG_DEPENDS:= mpd libopenssl pcre2
+PKG_BUILDDEP:= cmake-host libmpdclient openssl pcre2
+PKG_URL:= https://github.com/jcorporation/myMPD
+PKG_SITES:= https://github.com/jcorporation/myMPD/archive/refs/tags/
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+WRKDIST= ${WRKDIR}/myMPD-${PKG_VERSION}
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,MYMPD,mympd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+CONFIG_STYLE:= cmake
+CMAKE_FLAGS:= -DMYMPD_EMBEDDED_ASSETS=ON
+
+mympd-install:
+ $(INSTALL_DIR) $(IDIR_MYMPD)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/mympd \
+ $(IDIR_MYMPD)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/mympd/files/mympd.init b/package/mympd/files/mympd.init
new file mode 100644
index 000000000..f7eec5b6d
--- /dev/null
+++ b/package/mympd/files/mympd.init
@@ -0,0 +1,31 @@
+#!/bin/sh
+#PKG mympd
+#INIT 90
+
+. /etc/rc.conf
+
+case $1 in
+autostop) ;;
+autostart)
+ test x"${mympd:-NO}" = x"NO" && exit 0
+ test x"$mympd" = x"DAEMON" && test -x /bin/mksh && exec mksh -T- $0 start
+ exec sh $0 start
+ ;;
+start)
+ mkdir -p /var/cache/mympd 2>/dev/null
+ mkdir -p /etc/mympd 2>/dev/null
+ mympd -w /etc/mympd -s &
+ ;;
+stop)
+ kill $(pgrep -f mympd)
+ ;;
+restart)
+ sh $0 stop
+ sh $0 start
+ ;;
+*)
+ echo "Usage: $0 {start | stop | restart}"
+ exit 1
+ ;;
+esac
+exit $?
diff --git a/package/mympd/files/mympd.postinst b/package/mympd/files/mympd.postinst
new file mode 100644
index 000000000..be700987b
--- /dev/null
+++ b/package/mympd/files/mympd.postinst
@@ -0,0 +1,7 @@
+#!/bin/sh
+. $IPKG_INSTROOT/etc/functions.sh
+add_rcconf mympd NO
+gid=$(get_next_gid)
+add_group mympd $gid
+add_user mympd $(get_next_uid) $gid /var/lib/mympd
+
diff --git a/package/mympd/patches/patch-src_compile_time_h_in b/package/mympd/patches/patch-src_compile_time_h_in
new file mode 100644
index 000000000..5868aa338
--- /dev/null
+++ b/package/mympd/patches/patch-src_compile_time_h_in
@@ -0,0 +1,13 @@
+--- myMPD-14.0.2.orig/src/compile_time.h.in 2024-02-11 12:00:47.000000000 +0100
++++ myMPD-14.0.2/src/compile_time.h.in 2024-02-13 06:02:38.922236003 +0100
+@@ -58,8 +58,8 @@
+ #define MPD_VERSION_MIN_PATCH 0
+
+ //default paths from cmake
+-#define MYMPD_DOC_ROOT "${MYMPD_DOC_ROOT}"
+-#define MYMPD_WORK_DIR "${MYMPD_WORK_DIR}"
++#define MYMPD_DOC_ROOT "/srv/mympd"
++#define MYMPD_WORK_DIR "/etc/mympd"
+ #define MYMPD_CACHE_DIR "${MYMPD_CACHE_DIR}"
+ #define MYMPD_LUALIBS_PATH "${MYMPD_LUALIBS_PATH}"
+
diff --git a/package/mympd/patches/patch-src_main_c b/package/mympd/patches/patch-src_main_c
new file mode 100644
index 000000000..971c4f1cd
--- /dev/null
+++ b/package/mympd/patches/patch-src_main_c
@@ -0,0 +1,21 @@
+--- myMPD-14.0.2.orig/src/main.c 2024-02-11 12:00:47.000000000 +0100
++++ myMPD-14.0.2/src/main.c 2024-02-13 05:31:53.330851831 +0100
+@@ -492,12 +492,12 @@ int main(int argc, char **argv) {
+ }
+
+ //set output buffers
+- if (setvbuf(stdout, NULL, _IOLBF, 0) != 0 ||
+- setvbuf(stderr, NULL, _IOLBF, 0) != 0)
+- {
+- MYMPD_LOG_EMERG(NULL, "Could not set stdout and stderr buffer");
+- goto cleanup;
+- }
++ //if (setvbuf(stdout, NULL, _IOLBF, 0) != 0 ||
++ // setvbuf(stderr, NULL, _IOLBF, 0) != 0)
++ //{
++ // MYMPD_LOG_EMERG(NULL, "Could not set stdout and stderr buffer");
++ // goto cleanup;
++ // }
+
+ //init webserver
+ mgr = malloc_assert(sizeof(struct mg_mgr));
diff --git a/package/nano/Makefile b/package/nano/Makefile
index 24ed98e89..1c6ae32c7 100644
--- a/package/nano/Makefile
+++ b/package/nano/Makefile
@@ -4,15 +4,15 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= nano
-PKG_VERSION:= 2.9.1
+PKG_VERSION:= 5.9
PKG_RELEASE:= 1
-PKG_HASH:= 6316d52d0d26af3e79a13dcb4db1c7a4aeac61b37fd9381e801a4189a2ecba7c
+PKG_HASH:= 757db8cda4bb2873599e47783af463e3b547a627b0cabb30ea7bf71fb4c24937
PKG_DESCR:= enhanced clone of the pico editor
PKG_SECTION:= app/editor
PKG_DEPENDS:= libncurses
PKG_BUILDDEP:= ncurses
PKG_URL:= http://www.nano-editor.org/
-PKG_SITES:= http://www.nano-editor.org/dist/v2.9/
+PKG_SITES:= https://www.nano-editor.org/dist/v5/
include ${ADK_TOPDIR}/mk/package.mk
diff --git a/package/ncurses/Makefile b/package/ncurses/Makefile
index 2b2c3d2d1..915d7f49d 100644
--- a/package/ncurses/Makefile
+++ b/package/ncurses/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= ncurses
-PKG_VERSION:= 6.0
-PKG_RELEASE:= 2
-PKG_HASH:= f551c24b30ce8bfb6e96d9f59b42fbea30fa3a6123384172f9e7284bcf647260
+PKG_VERSION:= 6.4
+PKG_RELEASE:= 1
+PKG_HASH:= 6931283d9ac87c5073f30b6290c4c75f21632bb4fc3603ac8100812bed248159
PKG_DESCR:= terminal handling library
PKG_SECTION:= libs/misc
PKG_BUILDDEP:= ncurses-host
@@ -31,7 +31,7 @@ TARGET_CFLAGS:= $(filter-out -static,$(TARGET_CFLAGS))
TARGET_LDFLAGS:=$(filter-out -static,$(TARGET_LDFLAGS))
endif
-ifeq ($(ADK_TARGET_BINFMT_FLAT)$(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
+ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
CONFIGURE_ARGS+= --with-static
else
CONFIGURE_ARGS+= --with-shared
@@ -66,9 +66,10 @@ ALL_TARGET:= libs
INSTALL_TARGET:= install.libs install.data
# use sth which does not exist
-HOST_ALL_TARGET:= progs
-HOST_INSTALL_TARGET:= install.includes install.progs
-HOST_CONFIGURE_ARGS+= --without-shared \
+#HOST_ALL_TARGET:= progs
+#HOST_INSTALL_TARGET:= install.includes install.progs
+HOST_CFLAGS+= -fPIC
+HOST_CONFIGURE_ARGS+= --with-shared \
--with-build-cc="${HOST_CC}" \
--with-progs \
--with-ticlib \
diff --git a/package/ncurses/patches/patch-ncurses_base_MKlib_gen_sh b/package/ncurses/patches/patch-ncurses_base_MKlib_gen_sh
deleted file mode 100644
index acf5ef81e..000000000
--- a/package/ncurses/patches/patch-ncurses_base_MKlib_gen_sh
+++ /dev/null
@@ -1,11 +0,0 @@
---- ncurses-6.0.orig/ncurses/base/MKlib_gen.sh 2015-08-07 02:48:24.000000000 +0200
-+++ ncurses-6.0/ncurses/base/MKlib_gen.sh 2015-10-31 19:14:18.000000000 +0100
-@@ -62,7 +62,7 @@ if test "${LC_MESSAGES+set}" = set; then
- if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
- if test "${LC_COLLATE+set}" = set; then LC_COLLATE=C; export LC_COLLATE; fi
-
--preprocessor="$1 -DNCURSES_INTERNALS -I../include"
-+preprocessor="$1 -P -DNCURSES_INTERNALS -I../include"
- AWK="$2"
- USE="$3"
-
diff --git a/package/neon/Makefile b/package/neon/Makefile
index 936a1e030..68087268e 100644
--- a/package/neon/Makefile
+++ b/package/neon/Makefile
@@ -4,16 +4,16 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= neon
-PKG_VERSION:= 0.30.1
+PKG_VERSION:= 0.33.0
PKG_RELEASE:= 1
-PKG_HASH:= 00c626c0dc18d094ab374dbd9a354915bfe4776433289386ed489c2ec0845cdd
+PKG_HASH:= 659a5cc9cea05e6e7864094f1e13a77abbbdbab452f04d751a8c16a9447cf4b8
PKG_DESCR:= http and webdav library
PKG_SECTION:= libs/misc
PKG_DEPENDS:= libxml2 zlib libressl
PKG_BUILDDEP:= libxml2 zlib libressl
PKG_NEEDS:= threads
-PKG_URL:= http://webdav.org/neon/
-PKG_SITES:= http://webdav.org/neon/
+PKG_URL:= https://notroj.github.io/neon/
+PKG_SITES:= https://notroj.github.io/neon/
PKG_OPTS:= dev
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
diff --git a/package/net-snmp/patches/patch-configure_d_config_os_libs2 b/package/net-snmp/patches/patch-configure_d_config_os_libs2
new file mode 100644
index 000000000..ec5bf585d
--- /dev/null
+++ b/package/net-snmp/patches/patch-configure_d_config_os_libs2
@@ -0,0 +1,12 @@
+--- net-snmp-5.8.orig/configure.d/config_os_libs2 2018-07-16 16:33:40.000000000 +0200
++++ net-snmp-5.8/configure.d/config_os_libs2 2019-10-06 12:45:37.396843992 +0200
+@@ -604,6 +604,9 @@ AC_CHECK_FUNCS(nlist nlist64 knlist)
+ AC_CHECK_HEADERS([curses.h])
+ AC_CHECK_HEADERS([ncurses/curses.h])
+ NETSNMP_SEARCH_LIBS([endwin], [curses ncurses],,,,[LIBCURSES])
++if test -n "$LIBCURSES"; then
++ NETSNMP_SEARCH_LIBS([halfdelay], [tinfo], [LIBCURSES="$LIBCURSES $LIBTINFO"],,,[LIBTINFO])
++fi
+ AC_SUBST([LIBCURSES])
+
+ # libm for ceil
diff --git a/package/netcat-openbsd/Makefile b/package/netcat-openbsd/Makefile
new file mode 100644
index 000000000..6a45186c6
--- /dev/null
+++ b/package/netcat-openbsd/Makefile
@@ -0,0 +1,30 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= netcat-openbsd
+PKG_VERSION:= 1.217
+PKG_RELEASE:= 1
+PKG_HASH:= fcb551d9987fd51d020c62b6d81df0c2bb17ce1887bbc3fda4d28313791cc0f5
+PKG_DESCR:= openbsd netcat
+PKG_SECTION:= net/misc
+PKG_BUILDDEP:= libbsd
+PKG_DEPENDS:= libbsd
+PKG_SITES:= http://deb.debian.org/debian/pool/main/n/netcat-openbsd/
+
+NO_DISTFILES:= 1
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,NETCAT_OPENBSD,netcat-openbsd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+INSTALL_STYLE:= manual
+
+netcat-openbsd-install:
+ $(INSTALL_DIR) $(IDIR_NETCAT_OPENBSD)/usr/bin
+ $(INSTALL_BIN) $(WRKBUILD)/nc \
+ $(IDIR_NETCAT_OPENBSD)/usr/bin/netcat-openbsd
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/netcat-openbsd/src/Makefile b/package/netcat-openbsd/src/Makefile
new file mode 100644
index 000000000..8247cfd0c
--- /dev/null
+++ b/package/netcat-openbsd/src/Makefile
@@ -0,0 +1,20 @@
+# $OpenBSD: Makefile,v 1.7 2015/09/11 21:07:01 beck Exp $
+
+PROG= nc
+SRCS= netcat.c atomicio.c socks.c
+
+PKG_CONFIG ?= pkg-config
+LIBS= `$(PKG_CONFIG) --libs libbsd` -lresolv
+OBJS= $(SRCS:.c=.o)
+CFLAGS= -g -O2
+LDFLAGS= -Wl,--no-add-needed
+
+all: nc
+nc: $(OBJS)
+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o nc
+
+$(OBJS): %.o: %.c
+ $(CC) $(CFLAGS) -c $< -o $@
+
+clean:
+ rm -f $(OBJS) nc
diff --git a/package/netcat-openbsd/src/atomicio.c b/package/netcat-openbsd/src/atomicio.c
new file mode 100644
index 000000000..344ac63ab
--- /dev/null
+++ b/package/netcat-openbsd/src/atomicio.c
@@ -0,0 +1,67 @@
+/* $OpenBSD: atomicio.c,v 1.11 2012/12/04 02:24:47 deraadt Exp $ */
+/*
+ * Copyright (c) 2006 Damien Miller. All rights reserved.
+ * Copyright (c) 2005 Anil Madhavapeddy. All rights reserved.
+ * Copyright (c) 1995,1999 Theo de Raadt. All rights reserved.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <errno.h>
+#include <poll.h>
+#include <unistd.h>
+
+#include "atomicio.h"
+
+/*
+ * ensure all of data on socket comes through. f==read || f==vwrite
+ */
+size_t
+atomicio(ssize_t (*f) (int, void *, size_t), int fd, void *_s, size_t n)
+{
+ char *s = _s;
+ size_t pos = 0;
+ ssize_t res;
+ struct pollfd pfd;
+
+ pfd.fd = fd;
+ pfd.events = f == read ? POLLIN : POLLOUT;
+ while (n > pos) {
+ res = (f) (fd, s + pos, n - pos);
+ switch (res) {
+ case -1:
+ if (errno == EINTR)
+ continue;
+ if ((errno == EAGAIN) || (errno == ENOBUFS)) {
+ (void)poll(&pfd, 1, -1);
+ continue;
+ }
+ return 0;
+ case 0:
+ errno = EPIPE;
+ return pos;
+ default:
+ pos += (size_t)res;
+ }
+ }
+ return (pos);
+}
diff --git a/package/netcat-openbsd/src/atomicio.h b/package/netcat-openbsd/src/atomicio.h
new file mode 100644
index 000000000..7bf5b2541
--- /dev/null
+++ b/package/netcat-openbsd/src/atomicio.h
@@ -0,0 +1,39 @@
+/* $OpenBSD: atomicio.h,v 1.2 2007/09/07 14:50:44 tobias Exp $ */
+
+/*
+ * Copyright (c) 2006 Damien Miller. All rights reserved.
+ * Copyright (c) 1995,1999 Theo de Raadt. All rights reserved.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _ATOMICIO_H
+#define _ATOMICIO_H
+
+/*
+ * Ensure all of data on socket comes through. f==read || f==vwrite
+ */
+size_t atomicio(ssize_t (*)(int, void *, size_t), int, void *, size_t);
+
+#define vwrite (ssize_t (*)(int, void *, size_t))write
+
+#endif /* _ATOMICIO_H */
diff --git a/package/netcat-openbsd/src/nc.1 b/package/netcat-openbsd/src/nc.1
new file mode 100644
index 000000000..a77a551e9
--- /dev/null
+++ b/package/netcat-openbsd/src/nc.1
@@ -0,0 +1,582 @@
+.\" $OpenBSD: nc.1,v 1.95 2020/02/12 14:46:36 schwarze Exp $
+.\"
+.\" Copyright (c) 1996 David Sacerdote
+.\" All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. The name of the author may not be used to endorse or promote products
+.\" derived from this software without specific prior written permission
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd $Mdocdate: February 12 2020 $
+.Dt NC 1
+.Os
+.Sh NAME
+.Nm nc
+.Nd arbitrary TCP and UDP connections and listens
+.Sh SYNOPSIS
+.Nm nc
+.Op Fl 46bCDdFhklNnrStUuvZz
+.Op Fl I Ar length
+.Op Fl i Ar interval
+.Op Fl M Ar ttl
+.Op Fl m Ar minttl
+.Op Fl O Ar length
+.Op Fl P Ar proxy_username
+.Op Fl p Ar source_port
+.Op Fl q Ar seconds
+.Op Fl s Ar sourceaddr
+.Op Fl T Ar keyword
+.Op Fl V Ar rtable
+.Op Fl W Ar recvlimit
+.Op Fl w Ar timeout
+.Op Fl X Ar proxy_protocol
+.Op Fl x Ar proxy_address Ns Op : Ns Ar port
+.Op Ar destination
+.Op Ar port
+.Sh DESCRIPTION
+The
+.Nm
+(or
+.Nm netcat )
+utility is used for just about anything under the sun involving TCP,
+UDP, or
+.Ux Ns -domain
+sockets.
+It can open TCP connections, send UDP packets, listen on arbitrary
+TCP and UDP ports, do port scanning, and deal with both IPv4 and
+IPv6.
+Unlike
+.Xr telnet 1 ,
+.Nm
+scripts nicely, and separates error messages onto standard error instead
+of sending them to standard output, as
+.Xr telnet 1
+does with some.
+.Pp
+Common uses include:
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+simple TCP proxies
+.It
+shell-script based HTTP clients and servers
+.It
+network daemon testing
+.It
+a SOCKS or HTTP ProxyCommand for
+.Xr ssh 1
+.It
+and much, much more
+.El
+.Pp
+The options are as follows:
+.Bl -tag -width Ds
+.It Fl 4
+Use IPv4 addresses only.
+.It Fl 6
+Use IPv6 addresses only.
+.It Fl b
+Allow broadcast.
+.It Fl C
+Send CRLF as line-ending. Each line feed (LF) character from the input
+data is translated into CR+LF before being written to the socket. Line
+feed characters that are already preceded with a carriage return (CR)
+are not translated. Received data is not affected.
+.It Fl D
+Enable debugging on the socket.
+.It Fl d
+Do not attempt to read from stdin.
+.It Fl F
+Pass the first connected socket using
+.Xr sendmsg 2
+to stdout and exit.
+This is useful in conjunction with
+.Fl X
+to have
+.Nm
+perform connection setup with a proxy but then leave the rest of the
+connection to another program (e.g.\&
+.Xr ssh 1
+using the
+.Xr ssh_config 5
+.Cm ProxyUseFdpass
+option).
+Cannot be used with
+.Fl U .
+.It Fl h
+Print out the
+.Nm
+help text and exit.
+.It Fl I Ar length
+Specify the size of the TCP receive buffer.
+.It Fl i Ar interval
+Sleep for
+.Ar interval
+seconds between lines of text sent and received.
+Also causes a delay time between connections to multiple ports.
+.It Fl k
+When a connection is completed, listen for another one.
+Requires
+.Fl l .
+When used together with the
+.Fl u
+option, the server socket is not connected and it can receive UDP datagrams from
+multiple hosts.
+.It Fl l
+Listen for an incoming connection rather than initiating a
+connection to a remote host.
+The
+.Ar destination
+and
+.Ar port
+to listen on can be specified either as non-optional arguments, or with
+options
+.Fl s
+and
+.Fl p
+respectively.
+Cannot be used together with
+.Fl x
+or
+.Fl z .
+Additionally, any timeouts specified with the
+.Fl w
+option are ignored.
+.It Fl M Ar ttl
+Set the TTL / hop limit of outgoing packets.
+.It Fl m Ar minttl
+Ask the kernel to drop incoming packets whose TTL / hop limit is under
+.Ar minttl .
+.It Fl N
+.Xr shutdown 2
+the network socket after EOF on the input.
+Some servers require this to finish their work.
+.It Fl n
+Do not perform domain name resolution.
+If a name cannot be resolved without DNS, an error will be reported.
+.It Fl O Ar length
+Specify the size of the TCP send buffer.
+.It Fl P Ar proxy_username
+Specifies a username to present to a proxy server that requires authentication.
+If no username is specified then authentication will not be attempted.
+Proxy authentication is only supported for HTTP CONNECT proxies at present.
+.It Fl p Ar source_port
+Specify the source port
+.Nm
+should use, subject to privilege restrictions and availability.
+.It Fl q Ar seconds
+after EOF on stdin, wait the specified number of
+.Ar seconds
+and then quit. If
+.Ar seconds
+is negative, wait forever (default). Specifying a non-negative
+.Ar seconds
+implies
+.Fl N .
+.It Fl r
+Choose source and/or destination ports randomly
+instead of sequentially within a range or in the order that the system
+assigns them.
+.It Fl S
+Enable the RFC 2385 TCP MD5 signature option.
+.It Fl s Ar sourceaddr
+Set the source address to send packets from,
+which is useful on machines with multiple interfaces.
+For
+.Ux Ns -domain
+datagram sockets, specifies the local temporary socket file
+to create and use so that datagrams can be received.
+Cannot be used together with
+.Fl x .
+.It Fl T Ar keyword
+Change the IPv4 TOS/IPv6 traffic class value.
+.Ar keyword
+may be one of
+.Cm critical ,
+.Cm inetcontrol ,
+.Cm lowcost ,
+.Cm lowdelay ,
+.Cm netcontrol ,
+.Cm throughput ,
+.Cm reliability ,
+or one of the DiffServ Code Points:
+.Cm ef ,
+.Cm af11 No ... Cm af43 ,
+.Cm cs0 No ... Cm cs7 ;
+or a number in either hex or decimal.
+.It Fl t
+Send RFC 854 DON'T and WON'T responses to RFC 854 DO and WILL requests.
+This makes it possible to use
+.Nm
+to script telnet sessions.
+.It Fl U
+Use
+.Ux Ns -domain
+sockets.
+Cannot be used together with
+.Fl F
+or
+.Fl x .
+.It Fl u
+Use UDP instead of TCP.
+Cannot be used together with
+.Fl x .
+For
+.Ux Ns -domain
+sockets, use a datagram socket instead of a stream socket.
+If a
+.Ux Ns -domain
+socket is used, a temporary receiving socket is created in
+.Pa /tmp
+unless the
+.Fl s
+flag is given.
+.It Fl V Ar rtable
+Set the routing table to be used.
+.It Fl v
+Produce more verbose output.
+.It Fl W Ar recvlimit
+Terminate after receiving
+.Ar recvlimit
+packets from the network.
+.It Fl w Ar timeout
+Connections which cannot be established or are idle timeout after
+.Ar timeout
+seconds.
+The
+.Fl w
+flag has no effect on the
+.Fl l
+option, i.e.\&
+.Nm
+will listen forever for a connection, with or without the
+.Fl w
+flag.
+The default is no timeout.
+.It Fl X Ar proxy_protocol
+Use
+.Ar proxy_protocol
+when talking to the proxy server.
+Supported protocols are
+.Cm 4
+(SOCKS v.4),
+.Cm 5
+(SOCKS v.5)
+and
+.Cm connect
+(HTTPS proxy).
+If the protocol is not specified, SOCKS version 5 is used.
+.It Fl x Ar proxy_address Ns Op : Ns Ar port
+Connect to
+.Ar destination
+using a proxy at
+.Ar proxy_address
+and
+.Ar port .
+If
+.Ar port
+is not specified, the well-known port for the proxy protocol is used (1080
+for SOCKS, 3128 for HTTPS).
+An IPv6 address can be specified unambiguously by enclosing
+.Ar proxy_address
+in square brackets.
+A proxy cannot be used with any of the options
+.Fl lsuU .
+.It Fl Z
+DCCP mode.
+.It Fl z
+Only scan for listening daemons, without sending any data to them.
+Cannot be used together with
+.Fl l .
+.El
+.Pp
+.Ar destination
+can be a numerical IP address or a symbolic hostname
+(unless the
+.Fl n
+option is given).
+In general, a destination must be specified,
+unless the
+.Fl l
+option is given
+(in which case the local host is used).
+For
+.Ux Ns -domain
+sockets, a destination is required and is the socket path to connect to
+(or listen on if the
+.Fl l
+option is given).
+.Pp
+.Ar port
+can be specified as a numeric port number or as a service name.
+Port ranges may be specified as numeric port numbers of the form
+.Ar nn Ns - Ns Ar mm .
+In general,
+a destination port must be specified,
+unless the
+.Fl U
+option is given.
+.Sh CLIENT/SERVER MODEL
+It is quite simple to build a very basic client/server model using
+.Nm .
+On one console, start
+.Nm
+listening on a specific port for a connection.
+For example:
+.Pp
+.Dl $ nc -l 1234
+.Pp
+.Nm
+is now listening on port 1234 for a connection.
+On a second console
+.Pq or a second machine ,
+connect to the machine and port being listened on:
+.Pp
+.Dl $ nc 127.0.0.1 1234
+.Pp
+There should now be a connection between the ports.
+Anything typed at the second console will be concatenated to the first,
+and vice-versa.
+After the connection has been set up,
+.Nm
+does not really care which side is being used as a
+.Sq server
+and which side is being used as a
+.Sq client .
+The connection may be terminated using an
+.Dv EOF
+.Pq Sq ^D .
+.Pp
+There is no
+.Fl c
+or
+.Fl e
+option in this netcat, but you still can execute a command after connection
+being established by redirecting file descriptors. Be cautious here because
+opening a port and let anyone connected execute arbitrary command on your
+site is DANGEROUS. If you really need to do this, here is an example:
+.Pp
+On
+.Sq server
+side:
+.Pp
+.Dl $ rm -f /tmp/f; mkfifo /tmp/f
+.Dl $ cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f
+.Pp
+On
+.Sq client
+side:
+.Pp
+.Dl $ nc host.example.com 1234
+.Dl $ (shell prompt from host.example.com)
+.Pp
+By doing this, you create a fifo at /tmp/f and make nc listen at port 1234
+of address 127.0.0.1 on
+.Sq server
+side, when a
+.Sq client
+establishes a connection successfully to that port, /bin/sh gets executed
+on
+.Sq server
+side and the shell prompt is given to
+.Sq client
+side.
+.Pp
+When connection is terminated,
+.Nm
+quits as well. Use
+.Fl k
+if you want it keep listening, but if the command quits this option won't
+restart it or keep
+.Nm
+running. Also don't forget to remove the file descriptor once you don't need
+it anymore:
+.Pp
+.Dl $ rm -f /tmp/f
+.Pp
+.Sh DATA TRANSFER
+The example in the previous section can be expanded to build a
+basic data transfer model.
+Any information input into one end of the connection will be output
+to the other end, and input and output can be easily captured in order to
+emulate file transfer.
+.Pp
+Start by using
+.Nm
+to listen on a specific port, with output captured into a file:
+.Pp
+.Dl $ nc -l 1234 \*(Gt filename.out
+.Pp
+Using a second machine, connect to the listening
+.Nm
+process, feeding it the file which is to be transferred:
+.Pp
+.Dl $ nc -N host.example.com 1234 \*(Lt filename.in
+.Pp
+After the file has been transferred, the connection will close automatically.
+.Sh TALKING TO SERVERS
+It is sometimes useful to talk to servers
+.Dq by hand
+rather than through a user interface.
+It can aid in troubleshooting,
+when it might be necessary to verify what data a server is sending
+in response to commands issued by the client.
+For example, to retrieve the home page of a web site:
+.Bd -literal -offset indent
+$ printf "GET / HTTP/1.0\er\en\er\en" | nc host.example.com 80
+.Ed
+.Pp
+Note that this also displays the headers sent by the web server.
+They can be filtered, using a tool such as
+.Xr sed 1 ,
+if necessary.
+.Pp
+More complicated examples can be built up when the user knows the format
+of requests required by the server.
+As another example, an email may be submitted to an SMTP server using:
+.Bd -literal -offset indent
+$ nc [\-C] localhost 25 \*(Lt\*(Lt EOF
+HELO host.example.com
+MAIL FROM:\*(Ltuser@host.example.com\*(Gt
+RCPT TO:\*(Ltuser2@host.example.com\*(Gt
+DATA
+Body of email.
+\&.
+QUIT
+EOF
+.Ed
+.Sh PORT SCANNING
+It may be useful to know which ports are open and running services on
+a target machine.
+The
+.Fl z
+flag can be used to tell
+.Nm
+to report open ports,
+rather than initiate a connection. Usually it's useful to turn on verbose
+output to stderr by use this option in conjunction with
+.Fl v
+option.
+.Pp
+For example:
+.Bd -literal -offset indent
+$ nc \-zv host.example.com 20-30
+Connection to host.example.com 22 port [tcp/ssh] succeeded!
+Connection to host.example.com 25 port [tcp/smtp] succeeded!
+.Ed
+.Pp
+The port range was specified to limit the search to ports 20 \- 30, and is
+scanned by increasing order (unless the
+.Fl r
+flag is set).
+.Pp
+You can also specify a list of ports to scan, for example:
+.Bd -literal -offset indent
+$ nc \-zv host.example.com http 20 22-23
+nc: connect to host.example.com 80 (tcp) failed: Connection refused
+nc: connect to host.example.com 20 (tcp) failed: Connection refused
+Connection to host.example.com port [tcp/ssh] succeeded!
+nc: connect to host.example.com 23 (tcp) failed: Connection refused
+.Ed
+.Pp
+The ports are scanned by the order you given (unless the
+.Fl r
+flag is set).
+.Pp
+Alternatively, it might be useful to know which server software
+is running, and which versions.
+This information is often contained within the greeting banners.
+In order to retrieve these, it is necessary to first make a connection,
+and then break the connection when the banner has been retrieved.
+This can be accomplished by specifying a small timeout with the
+.Fl w
+flag, or perhaps by issuing a
+.Qq Dv QUIT
+command to the server:
+.Bd -literal -offset indent
+$ echo "QUIT" | nc host.example.com 20-30
+SSH-1.99-OpenSSH_3.6.1p2
+Protocol mismatch.
+220 host.example.com IMS SMTP Receiver Version 0.84 Ready
+.Ed
+.Sh EXAMPLES
+Open a TCP connection to port 42 of host.example.com, using port 31337 as
+the source port, with a timeout of 5 seconds:
+.Pp
+.Dl $ nc -p 31337 -w 5 host.example.com 42
+.Pp
+Open a UDP connection to port 53 of host.example.com:
+.Pp
+.Dl $ nc -u host.example.com 53
+.Pp
+Open a TCP connection to port 42 of host.example.com using 10.1.2.3 as the
+IP for the local end of the connection:
+.Pp
+.Dl $ nc -s 10.1.2.3 host.example.com 42
+.Pp
+Create and listen on a
+.Ux Ns -domain
+stream socket:
+.Pp
+.Dl $ nc -lU /var/tmp/dsocket
+.Pp
+Connect to port 42 of host.example.com via an HTTP proxy at 10.2.3.4,
+port 8080.
+This example could also be used by
+.Xr ssh 1 ;
+see the
+.Cm ProxyCommand
+directive in
+.Xr ssh_config 5
+for more information.
+.Pp
+.Dl $ nc -x10.2.3.4:8080 -Xconnect host.example.com 42
+.Pp
+The same example again, this time enabling proxy authentication with username
+.Dq ruser
+if the proxy requires it:
+.Pp
+.Dl $ nc -x10.2.3.4:8080 -Xconnect -Pruser host.example.com 42
+.Sh SEE ALSO
+.Xr cat 1 ,
+.Xr ssh 1
+.Sh AUTHORS
+Original implementation by
+.An *Hobbit* Aq Mt hobbit@avian.org .
+.br
+Rewritten with IPv6 support by
+.An Eric Jackson Aq Mt ericj@monkey.org .
+.br
+Modified for Debian port by Aron Xu
+.Aq aron@debian.org .
+.Sh CAVEATS
+UDP port scans using the
+.Fl uz
+combination of flags will always report success irrespective of
+the target machine's state.
+However,
+in conjunction with a traffic sniffer either on the target machine
+or an intermediary device,
+the
+.Fl uz
+combination could be useful for communications diagnostics.
+Note that the amount of UDP traffic generated may be limited either
+due to hardware resources and/or configuration settings.
diff --git a/package/netcat-openbsd/src/netcat.c b/package/netcat-openbsd/src/netcat.c
new file mode 100644
index 000000000..bd7344fb4
--- /dev/null
+++ b/package/netcat-openbsd/src/netcat.c
@@ -0,0 +1,2305 @@
+/* $OpenBSD: netcat.c,v 1.217 2020/02/12 14:46:36 schwarze Exp $ */
+/*
+ * Copyright (c) 2001 Eric Jackson <ericj@monkey.org>
+ * Copyright (c) 2015 Bob Beck. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Re-written nc(1) for OpenBSD. Original implementation by
+ * *Hobbit* <hobbit@avian.org>.
+ */
+
+#define _GNU_SOURCE
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/uio.h>
+#include <sys/un.h>
+
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <netinet/ip.h>
+#include <arpa/telnet.h>
+#ifdef __linux__
+# include <linux/in6.h>
+#endif
+#if defined(TCP_MD5SIG_EXT) && defined(TCP_MD5SIG_MAXKEYLEN)
+# include <bsd/readpassphrase.h>
+#endif
+
+#ifndef IPTOS_LOWDELAY
+# define IPTOS_LOWDELAY 0x10
+# define IPTOS_THROUGHPUT 0x08
+# define IPTOS_RELIABILITY 0x04
+# define IPTOS_LOWCOST 0x02
+# define IPTOS_MINCOST IPTOS_LOWCOST
+#endif /* IPTOS_LOWDELAY */
+
+# ifndef IPTOS_DSCP_AF11
+# define IPTOS_DSCP_AF11 0x28
+# define IPTOS_DSCP_AF12 0x30
+# define IPTOS_DSCP_AF13 0x38
+# define IPTOS_DSCP_AF21 0x48
+# define IPTOS_DSCP_AF22 0x50
+# define IPTOS_DSCP_AF23 0x58
+# define IPTOS_DSCP_AF31 0x68
+# define IPTOS_DSCP_AF32 0x70
+# define IPTOS_DSCP_AF33 0x78
+# define IPTOS_DSCP_AF41 0x88
+# define IPTOS_DSCP_AF42 0x90
+# define IPTOS_DSCP_AF43 0x98
+# define IPTOS_DSCP_EF 0xb8
+#endif /* IPTOS_DSCP_AF11 */
+
+#ifndef IPTOS_DSCP_CS0
+# define IPTOS_DSCP_CS0 0x00
+# define IPTOS_DSCP_CS1 0x20
+# define IPTOS_DSCP_CS2 0x40
+# define IPTOS_DSCP_CS3 0x60
+# define IPTOS_DSCP_CS4 0x80
+# define IPTOS_DSCP_CS5 0xa0
+# define IPTOS_DSCP_CS6 0xc0
+# define IPTOS_DSCP_CS7 0xe0
+#endif /* IPTOS_DSCP_CS0 */
+
+#ifndef IPTOS_DSCP_EF
+# define IPTOS_DSCP_EF 0xb8
+#endif /* IPTOS_DSCP_EF */
+
+
+#include <ctype.h>
+#include <err.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <netdb.h>
+#include <poll.h>
+#include <signal.h>
+#include <stddef.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#ifdef TLS
+# include <tls.h>
+#endif
+#include <unistd.h>
+#include <bsd/stdlib.h>
+#include <bsd/string.h>
+
+#include "atomicio.h"
+
+#define PORT_MAX 65535
+#define UNIX_DG_TMP_SOCKET_SIZE 19
+
+#define POLL_STDIN 0
+#define POLL_NETOUT 1
+#define POLL_NETIN 2
+#define POLL_STDOUT 3
+#define BUFSIZE 16384
+
+#ifdef TLS
+# define TLS_NOVERIFY (1 << 1)
+# define TLS_NONAME (1 << 2)
+# define TLS_CCERT (1 << 3)
+# define TLS_MUSTSTAPLE (1 << 4)
+#endif
+
+#define CONNECTION_SUCCESS 0
+#define CONNECTION_FAILED 1
+#define CONNECTION_TIMEOUT 2
+
+#define UDP_SCAN_TIMEOUT 3 /* Seconds */
+
+/* Command Line Options */
+int bflag; /* Allow Broadcast */
+int dflag; /* detached, no stdin */
+int Fflag; /* fdpass sock to stdout */
+unsigned int iflag; /* Interval Flag */
+int kflag; /* More than one connect */
+int lflag; /* Bind to local port */
+int Nflag; /* shutdown() network socket */
+int nflag; /* Don't do name look up */
+char *Pflag; /* Proxy username */
+char *pflag; /* Localport flag */
+int qflag = -1; /* Quit after some secs */
+int rflag; /* Random ports flag */
+char *sflag; /* Source Address */
+int tflag; /* Telnet Emulation */
+int uflag; /* UDP - Default to TCP */
+int dccpflag; /* DCCP - Default to TCP */
+int vflag; /* Verbosity */
+int xflag; /* Socks proxy */
+int zflag; /* Port Scan Flag */
+int Dflag; /* sodebug */
+int Iflag; /* TCP receive buffer size */
+int Oflag; /* TCP send buffer size */
+int Sflag; /* TCP MD5 signature option */
+int Tflag = -1; /* IP Type of Service */
+int rtableid = -1;
+
+# if defined(TLS)
+int usetls; /* use TLS */
+const char *Cflag; /* Public cert file */
+const char *Kflag; /* Private key file */
+const char *oflag; /* OCSP stapling file */
+const char *Rflag; /* Root CA file */
+int tls_cachanged; /* Using non-default CA file */
+int TLSopt; /* TLS options */
+char *tls_expectname; /* required name in peer cert */
+char *tls_expecthash; /* required hash of peer cert */
+char *tls_ciphers; /* TLS ciphers */
+char *tls_protocols; /* TLS protocols */
+FILE *Zflag; /* file to save peer cert */
+# else
+int Cflag = 0; /* CRLF line-ending */
+# endif
+
+# if defined(TCP_MD5SIG_EXT) && defined(TCP_MD5SIG_MAXKEYLEN)
+char Sflag_password[TCP_MD5SIG_MAXKEYLEN];
+# endif
+int recvcount, recvlimit;
+int timeout = -1;
+int family = AF_UNSPEC;
+char *portlist[PORT_MAX+1];
+char *unix_dg_tmp_socket;
+int ttl = -1;
+int minttl = -1;
+
+void atelnet(int, unsigned char *, unsigned int);
+int strtoport(char *portstr, int udp);
+void build_ports(char **);
+void help(void) __attribute__((noreturn));
+int local_listen(const char *, const char *, struct addrinfo);
+# if defined(TLS)
+void readwrite(int, struct tls *);
+# else
+void readwrite(int);
+# endif
+void fdpass(int nfd) __attribute__((noreturn));
+int remote_connect(const char *, const char *, struct addrinfo, char *);
+# if defined(TLS)
+int timeout_tls(int, struct tls *, int (*)(struct tls *));
+# endif
+int timeout_connect(int, const struct sockaddr *, socklen_t);
+int socks_connect(const char *, const char *, struct addrinfo,
+ const char *, const char *, struct addrinfo, int, const char *);
+int udptest(int);
+int unix_bind(char *, int);
+int unix_connect(char *);
+int unix_listen(char *);
+void set_common_sockopts(int, const struct sockaddr *);
+int process_tos_opt(char *, int *);
+# if defined(TLS)
+int process_tls_opt(char *, int *);
+void save_peer_cert(struct tls *_tls_ctx, FILE *_fp);
+# endif
+void report_sock(const char *, const struct sockaddr *, socklen_t, char *);
+# if defined(TLS)
+void report_tls(struct tls *tls_ctx, char * host);
+# endif
+void usage(int);
+# if defined(TLS)
+ssize_t drainbuf(int, unsigned char *, size_t *, struct tls *);
+ssize_t fillbuf(int, unsigned char *, size_t *, struct tls *);
+void tls_setup_client(struct tls *, int, char *);
+struct tls *tls_setup_server(struct tls *, int, char *);
+# else
+ssize_t drainbuf(int, unsigned char *, size_t *, int);
+ssize_t fillbuf(int, unsigned char *, size_t *);
+# endif
+
+char *proto_name(int uflag, int dccpflag);
+static int connect_with_timeout(int fd, const struct sockaddr *sa,
+ socklen_t salen, int ctimeout);
+
+static void quit();
+
+int
+main(int argc, char *argv[])
+{
+ int ch, s = -1, ret, socksv;
+ char *host, **uport;
+ char ipaddr[NI_MAXHOST];
+ struct addrinfo hints;
+ struct servent *sv;
+ socklen_t len;
+ union {
+ struct sockaddr_storage storage;
+ struct sockaddr_un forunix;
+ } cliaddr;
+ char *proxy = NULL, *proxyport = NULL;
+ const char *errstr;
+ struct addrinfo proxyhints;
+ char unix_dg_tmp_socket_buf[UNIX_DG_TMP_SOCKET_SIZE];
+# if defined(TLS)
+ struct tls_config *tls_cfg = NULL;
+ struct tls *tls_ctx = NULL;
+# endif
+ uint32_t protocols;
+
+ ret = 1;
+ socksv = 5;
+ host = NULL;
+ uport = NULL;
+ sv = NULL;
+# if defined(TLS)
+ Rflag = tls_default_ca_cert_file();
+# endif
+
+ signal(SIGPIPE, SIG_IGN);
+
+ while ((ch = getopt(argc, argv,
+# if defined(TLS)
+ "46bC:cDde:FH:hI:i:K:klM:m:NnO:o:P:p:q:R:rSs:T:tUuV:vW:w:X:x:Z:z"))
+# else
+ "46bCDdFhI:i:klM:m:NnO:P:p:q:rSs:T:tUuV:vW:w:X:x:Zz"))
+# endif
+ != -1) {
+ switch (ch) {
+ case '4':
+ family = AF_INET;
+ break;
+ case '6':
+ family = AF_INET6;
+ break;
+ case 'b':
+# if defined(SO_BROADCAST)
+ bflag = 1;
+# else
+ errx(1, "no broadcast frame support available");
+# endif
+ break;
+ case 'U':
+ family = AF_UNIX;
+ break;
+ case 'X':
+ if (strcasecmp(optarg, "connect") == 0)
+ socksv = -1; /* HTTP proxy CONNECT */
+ else if (strcmp(optarg, "4") == 0)
+ socksv = 4; /* SOCKS v.4 */
+ else if (strcmp(optarg, "5") == 0)
+ socksv = 5; /* SOCKS v.5 */
+ else
+ errx(1, "unsupported proxy protocol");
+ break;
+# if defined(TLS)
+ case 'C':
+ Cflag = optarg;
+ break;
+ case 'c':
+ usetls = 1;
+ break;
+# else
+ case 'C':
+ Cflag = 1;
+ break;
+# endif
+ case 'd':
+ dflag = 1;
+ break;
+# if defined(TLS)
+ case 'e':
+ tls_expectname = optarg;
+ break;
+# endif
+ case 'F':
+ Fflag = 1;
+ break;
+# if defined(TLS)
+ case 'H':
+ tls_expecthash = optarg;
+ break;
+# endif
+ case 'h':
+ help();
+ break;
+ case 'i':
+ iflag = strtonum(optarg, 0, UINT_MAX, &errstr);
+ if (errstr)
+ errx(1, "interval %s: %s", errstr, optarg);
+ break;
+# if defined(TLS)
+ case 'K':
+ Kflag = optarg;
+ break;
+# endif
+ case 'k':
+ kflag = 1;
+ break;
+ case 'l':
+ lflag = 1;
+ break;
+ case 'M':
+ ttl = strtonum(optarg, 0, 255, &errstr);
+ if (errstr)
+ errx(1, "ttl is %s", errstr);
+ break;
+ case 'm':
+ minttl = strtonum(optarg, 0, 255, &errstr);
+ if (errstr)
+ errx(1, "minttl is %s", errstr);
+ break;
+ case 'N':
+ Nflag = 1;
+ break;
+ case 'n':
+ nflag = 1;
+ break;
+ case 'P':
+ Pflag = optarg;
+ break;
+ case 'p':
+ pflag = optarg;
+ break;
+ case 'q':
+ qflag = strtonum(optarg, INT_MIN, INT_MAX, &errstr);
+ if (errstr)
+ errx(1, "quit timer %s: %s", errstr, optarg);
+ if (qflag >= 0)
+ Nflag = 1;
+ break;
+# if defined(TLS)
+ case 'R':
+ tls_cachanged = 1;
+ Rflag = optarg;
+ break;
+# endif
+ case 'r':
+ rflag = 1;
+ break;
+ case 's':
+ sflag = optarg;
+ break;
+ case 't':
+ tflag = 1;
+ break;
+ case 'u':
+ uflag = 1;
+ break;
+ case 'Z':
+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
+ dccpflag = 1;
+# else
+ errx(1, "no DCCP support available");
+# endif
+ break;
+ case 'V':
+# if defined(RT_TABLEID_MAX)
+ rtableid = (int)strtonum(optarg, 0,
+ RT_TABLEID_MAX, &errstr);
+ if (errstr)
+ errx(1, "rtable %s: %s", errstr, optarg);
+# else
+ errx(1, "no alternate routing table support available");
+# endif
+ break;
+ case 'v':
+ vflag = 1;
+ break;
+ case 'W':
+ recvlimit = strtonum(optarg, 1, INT_MAX, &errstr);
+ if (errstr)
+ errx(1, "receive limit %s: %s", errstr, optarg);
+ break;
+ case 'w':
+ timeout = strtonum(optarg, 0, INT_MAX / 1000, &errstr);
+ if (errstr)
+ errx(1, "timeout %s: %s", errstr, optarg);
+ timeout *= 1000;
+ break;
+ case 'x':
+ xflag = 1;
+ if ((proxy = strdup(optarg)) == NULL)
+ err(1, NULL);
+ break;
+# if defined(TLS)
+ case 'Z':
+ if (strcmp(optarg, "-") == 0)
+ Zflag = stderr;
+ else if ((Zflag = fopen(optarg, "w")) == NULL)
+ err(1, "can't open %s", optarg);
+ break;
+# endif
+ case 'z':
+ zflag = 1;
+ break;
+ case 'D':
+ Dflag = 1;
+ break;
+ case 'I':
+ Iflag = strtonum(optarg, 1, 65536 << 14, &errstr);
+ if (errstr != NULL)
+ errx(1, "TCP receive window %s: %s",
+ errstr, optarg);
+ break;
+ case 'O':
+ Oflag = strtonum(optarg, 1, 65536 << 14, &errstr);
+ if (errstr != NULL)
+ errx(1, "TCP send window %s: %s",
+ errstr, optarg);
+ break;
+# if defined(TLS)
+ case 'o':
+ oflag = optarg;
+ break;
+# endif
+ case 'S':
+# if defined(TCP_MD5SIG_EXT) && defined(TCP_MD5SIG_MAXKEYLEN)
+ if (readpassphrase("TCP MD5SIG password: ",
+ Sflag_password, TCP_MD5SIG_MAXKEYLEN, RPP_REQUIRE_TTY) == NULL)
+ errx(1, "Unable to read TCP MD5SIG password");
+ Sflag = 1;
+# else
+ errx(1, "no TCP MD5 signature support available");
+# endif
+ break;
+ case 'T':
+ errstr = NULL;
+ errno = 0;
+# if defined(TLS)
+ if (process_tls_opt(optarg, &TLSopt))
+ break;
+# endif
+ if (process_tos_opt(optarg, &Tflag))
+ break;
+ if (strlen(optarg) > 1 && optarg[0] == '0' &&
+ optarg[1] == 'x')
+ Tflag = (int)strtol(optarg, NULL, 16);
+ else
+ Tflag = (int)strtonum(optarg, 0, 255,
+ &errstr);
+ if (Tflag < 0 || Tflag > 255 || errstr || errno)
+# if defined(TLS)
+ errx(1, "illegal tos/tls value %s", optarg);
+# else
+ errx(1, "illegal tos value %s", optarg);
+# endif
+ break;
+ default:
+ usage(1);
+ }
+ }
+ argc -= optind;
+ argv += optind;
+
+# if defined(RT_TABLEID_MAX)
+ if (rtableid >= 0)
+ if (setrtable(rtableid) == -1)
+ err(1, "setrtable");
+# endif
+
+ /* Cruft to make sure options are clean, and used properly. */
+ if (argc == 0 && lflag) {
+ uport = &pflag;
+ host = sflag;
+ } else if (argc == 1 && !pflag &&
+ /* `nc -l 12345` or `nc -U bar` or `nc -uU -s foo bar` */
+ (!sflag || (family == AF_UNIX && uflag && !lflag))) {
+ if (family == AF_UNIX) {
+ host = argv[0];
+ uport = NULL;
+ } else if (lflag) {
+ host = NULL;
+ uport = argv;
+ }
+ } else if (argc >= 2) {
+ if (lflag && (pflag || sflag || argc > 2))
+ usage(1); /* conflict */
+ host = argv[0];
+ uport = &argv[1];
+ } else
+ usage(1);
+
+ if (family == AF_UNIX) {
+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
+ if (dccpflag)
+ errx(1, "cannot use -Z and -U");
+# endif
+ if (uport && *uport)
+ errx(1, "cannot use port with -U");
+ if (!host)
+ errx(1, "missing socket pathname");
+ } else if (!uport || !*uport)
+ errx(1, "missing port number");
+
+ if (lflag && zflag)
+ errx(1, "cannot use -z and -l");
+
+# if defined(TLS)
+ if (usetls) {
+ if (Cflag && unveil(Cflag, "r") == -1)
+ err(1, "unveil");
+ if (unveil(Rflag, "r") == -1)
+ err(1, "unveil");
+ if (Kflag && unveil(Kflag, "r") == -1)
+ err(1, "unveil");
+ if (oflag && unveil(oflag, "r") == -1)
+ err(1, "unveil");
+ } else if (family == AF_UNIX && uflag && lflag && !kflag) {
+ /*
+ * After recvfrom(2) from client, the server connects
+ * to the client socket. As the client path is determined
+ * during runtime, we cannot unveil(2).
+ */
+ } else {
+ if (family == AF_UNIX) {
+ if (unveil(host, "rwc") == -1)
+ err(1, "unveil");
+ if (uflag && !kflag) {
+ if (sflag) {
+ if (unveil(sflag, "rwc") == -1)
+ err(1, "unveil");
+ } else {
+ if (unveil("/tmp", "rwc") == -1)
+ err(1, "unveil");
+ }
+ }
+ } else {
+ /* no filesystem visibility */
+ if (unveil("/", "") == -1)
+ err(1, "unveil");
+ }
+ }
+# endif
+
+ if (!lflag && kflag)
+ errx(1, "must use -l with -k");
+# if defined(TLS)
+ if (uflag && usetls)
+ errx(1, "cannot use -c and -u");
+ if ((family == AF_UNIX) && usetls)
+ errx(1, "cannot use -c and -U");
+# endif
+ if ((family == AF_UNIX) && Fflag)
+ errx(1, "cannot use -F and -U");
+# if defined(TLS)
+ if (Fflag && usetls)
+ errx(1, "cannot use -c and -F");
+ if (TLSopt && !usetls)
+ errx(1, "you must specify -c to use TLS options");
+ if (Cflag && !usetls)
+ errx(1, "you must specify -c to use -C");
+ if (Kflag && !usetls)
+ errx(1, "you must specify -c to use -K");
+ if (Zflag && !usetls)
+ errx(1, "you must specify -c to use -Z");
+ if (oflag && !Cflag)
+ errx(1, "you must specify -C to use -o");
+ if (tls_cachanged && !usetls)
+ errx(1, "you must specify -c to use -R");
+ if (tls_expecthash && !usetls)
+ errx(1, "you must specify -c to use -H");
+ if (tls_expectname && !usetls)
+ errx(1, "you must specify -c to use -e");
+# endif
+
+ /* Get name of temporary socket for unix datagram client */
+ if ((family == AF_UNIX) && uflag && !lflag) {
+ if (sflag) {
+ unix_dg_tmp_socket = sflag;
+ } else {
+ strlcpy(unix_dg_tmp_socket_buf, "/tmp/nc.XXXXXXXXXX",
+ UNIX_DG_TMP_SOCKET_SIZE);
+ if (mkstemp(unix_dg_tmp_socket_buf) == -1)
+ err(1, "mkstemp");
+ unix_dg_tmp_socket = unix_dg_tmp_socket_buf;
+ }
+ }
+
+ /* Initialize addrinfo structure. */
+ if (family != AF_UNIX) {
+ memset(&hints, 0, sizeof(struct addrinfo));
+ hints.ai_family = family;
+ if (uflag) {
+ hints.ai_socktype = SOCK_DGRAM;
+ hints.ai_protocol = IPPROTO_UDP;
+ }
+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
+ else if (dccpflag) {
+ hints.ai_socktype = SOCK_DCCP;
+ hints.ai_protocol = IPPROTO_DCCP;
+ }
+# endif
+ else {
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_protocol = IPPROTO_TCP;
+ }
+ if (nflag)
+ hints.ai_flags |= AI_NUMERICHOST;
+ }
+
+ if (xflag) {
+ if (uflag)
+ errx(1, "no proxy support for UDP mode");
+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
+ if (dccpflag)
+ errx(1, "no proxy support for DCCP mode");
+# endif
+ if (lflag)
+ errx(1, "no proxy support for listen");
+
+ if (family == AF_UNIX)
+ errx(1, "no proxy support for unix sockets");
+
+ if (sflag)
+ errx(1, "no proxy support for local source address");
+
+ if (*proxy == '[') {
+ ++proxy;
+ proxyport = strchr(proxy, ']');
+ if (proxyport == NULL)
+ errx(1, "missing closing bracket in proxy");
+ *proxyport++ = '\0';
+ if (*proxyport == '\0')
+ /* Use default proxy port. */
+ proxyport = NULL;
+ else {
+ if (*proxyport == ':')
+ ++proxyport;
+ else
+ errx(1, "garbage proxy port delimiter");
+ }
+ } else {
+ proxyport = strrchr(proxy, ':');
+ if (proxyport != NULL)
+ *proxyport++ = '\0';
+ }
+
+ memset(&proxyhints, 0, sizeof(struct addrinfo));
+ proxyhints.ai_family = family;
+ proxyhints.ai_socktype = SOCK_STREAM;
+ proxyhints.ai_protocol = IPPROTO_TCP;
+ if (nflag)
+ proxyhints.ai_flags |= AI_NUMERICHOST;
+ }
+
+# if defined(TLS)
+ if (usetls) {
+ if ((tls_cfg = tls_config_new()) == NULL)
+ errx(1, "unable to allocate TLS config");
+ if (Rflag && tls_config_set_ca_file(tls_cfg, Rflag) == -1)
+ errx(1, "%s", tls_config_error(tls_cfg));
+ if (Cflag && tls_config_set_cert_file(tls_cfg, Cflag) == -1)
+ errx(1, "%s", tls_config_error(tls_cfg));
+ if (Kflag && tls_config_set_key_file(tls_cfg, Kflag) == -1)
+ errx(1, "%s", tls_config_error(tls_cfg));
+ if (oflag && tls_config_set_ocsp_staple_file(tls_cfg, oflag) == -1)
+ errx(1, "%s", tls_config_error(tls_cfg));
+ if (tls_config_parse_protocols(&protocols, tls_protocols) == -1)
+ errx(1, "invalid TLS protocols `%s'", tls_protocols);
+ if (tls_config_set_protocols(tls_cfg, protocols) == -1)
+ errx(1, "%s", tls_config_error(tls_cfg));
+ if (tls_config_set_ciphers(tls_cfg, tls_ciphers) == -1)
+ errx(1, "%s", tls_config_error(tls_cfg));
+ if (!lflag && (TLSopt & TLS_CCERT))
+ errx(1, "clientcert is only valid with -l");
+ if (TLSopt & TLS_NONAME)
+ tls_config_insecure_noverifyname(tls_cfg);
+ if (TLSopt & TLS_NOVERIFY) {
+ if (tls_expecthash != NULL)
+ errx(1, "-H and -T noverify may not be used "
+ "together");
+ tls_config_insecure_noverifycert(tls_cfg);
+ }
+ if (TLSopt & TLS_MUSTSTAPLE)
+ tls_config_ocsp_require_stapling(tls_cfg);
+
+ if (Pflag) {
+ if (pledge("stdio inet dns tty", NULL) == -1)
+ err(1, "pledge");
+ } else if (pledge("stdio inet dns", NULL) == -1)
+ err(1, "pledge");
+ }
+# endif
+ if (lflag) {
+ ret = 0;
+
+ if (family == AF_UNIX) {
+ if (uflag)
+ s = unix_bind(host, 0);
+ else
+ s = unix_listen(host);
+ } else
+ s = local_listen(host, *uport, hints);
+ if (s < 0)
+ err(1, NULL);
+
+# if defined(TLS)
+ if (usetls) {
+ tls_config_verify_client_optional(tls_cfg);
+ if ((tls_ctx = tls_server()) == NULL)
+ errx(1, "tls server creation failed");
+ if (tls_configure(tls_ctx, tls_cfg) == -1)
+ errx(1, "tls configuration failed (%s)",
+ tls_error(tls_ctx));
+ }
+# endif
+ /* Allow only one connection at a time, but stay alive. */
+ for (;;) {
+ if (uflag && kflag) {
+ /*
+ * For UDP and -k, don't connect the socket,
+ * let it receive datagrams from multiple
+ * socket pairs.
+ */
+# if defined(TLS)
+ readwrite(s, NULL);
+# else
+ readwrite(s);
+# endif
+ } else if (uflag && !kflag) {
+ /*
+ * For UDP and not -k, we will use recvfrom()
+ * initially to wait for a caller, then use
+ * the regular functions to talk to the caller.
+ */
+ int rv;
+ char buf[2048];
+ struct sockaddr_storage z;
+
+ len = sizeof(z);
+ rv = recvfrom(s, buf, sizeof(buf), MSG_PEEK,
+ (struct sockaddr *)&z, &len);
+ if (rv == -1)
+ err(1, "recvfrom");
+
+ rv = connect(s, (struct sockaddr *)&z, len);
+ if (rv == -1)
+ err(1, "connect");
+
+ if (vflag)
+ report_sock("Connection received",
+ (struct sockaddr *)&z, len,
+ family == AF_UNIX ? host : NULL);
+
+# if defined(TLS)
+ readwrite(s, NULL);
+ } else {
+ struct tls *tls_cctx = NULL;
+# else
+ readwrite(s);
+ } else {
+# endif
+ int connfd;
+
+ len = sizeof(cliaddr);
+ connfd = accept4(s, (struct sockaddr *)&cliaddr,
+ &len, SOCK_NONBLOCK);
+ if (connfd == -1) {
+ /* For now, all errnos are fatal */
+ err(1, "accept");
+ }
+ if (vflag)
+ report_sock("Connection received",
+ (struct sockaddr *)&cliaddr, len,
+ family == AF_UNIX ? host : NULL);
+# if defined(TLS)
+ if ((usetls) &&
+ (tls_cctx = tls_setup_server(tls_ctx, connfd, host)))
+ readwrite(connfd, tls_cctx);
+ if (!usetls)
+ readwrite(connfd, NULL);
+ if (tls_cctx)
+ timeout_tls(s, tls_cctx, tls_close);
+ close(connfd);
+ tls_free(tls_cctx);
+# else
+ readwrite(connfd);
+ close(connfd);
+# endif
+ }
+ if (family == AF_UNIX && uflag) {
+ if (connect(s, NULL, 0) == -1)
+ err(1, "connect");
+ }
+
+ if (!kflag) {
+ if (s != -1)
+ close(s);
+ break;
+ }
+ }
+ } else if (family == AF_UNIX) {
+ ret = 0;
+
+ if ((s = unix_connect(host)) > 0) {
+ if (!zflag)
+# if defined(TLS)
+ readwrite(s, NULL);
+# else
+ readwrite(s);
+# endif
+ close(s);
+ } else {
+ warn("%s", host);
+ ret = 1;
+ }
+
+ if (uflag)
+ unlink(unix_dg_tmp_socket);
+ return ret;
+
+ } else {
+ int i = 0;
+
+ /* Construct the portlist[] array. */
+ build_ports(uport);
+
+ /* Cycle through portlist, connecting to each port. */
+ for (s = -1, i = 0; portlist[i] != NULL; i++) {
+ if (s != -1)
+ close(s);
+# if defined(TLS)
+ tls_free(tls_ctx);
+ tls_ctx = NULL;
+
+ if (usetls) {
+ if ((tls_ctx = tls_client()) == NULL)
+ errx(1, "tls client creation failed");
+ if (tls_configure(tls_ctx, tls_cfg) == -1)
+ errx(1, "tls configuration failed (%s)",
+ tls_error(tls_ctx));
+ }
+# endif
+ if (xflag)
+ s = socks_connect(host, portlist[i], hints,
+ proxy, proxyport, proxyhints, socksv,
+ Pflag);
+ else
+ s = remote_connect(host, portlist[i], hints,
+ ipaddr);
+
+ if (s == -1)
+ continue;
+
+ ret = 0;
+ if (vflag) {
+ /* For UDP, make sure we are connected. */
+ if (uflag) {
+ if (udptest(s) == -1) {
+ ret = 1;
+ continue;
+ }
+ }
+
+ char *proto = proto_name(uflag, dccpflag);
+ /* Don't look up port if -n. */
+ if (nflag)
+ sv = NULL;
+ else {
+ sv = getservbyport(
+ ntohs(atoi(portlist[i])),
+ proto);
+ }
+
+ fprintf(stderr, "Connection to %s", host);
+
+ /*
+ * if we aren't connecting thru a proxy and
+ * there is something to report, print IP
+ */
+ if (!nflag && !xflag
+ && (strcmp(host, ipaddr) != 0))
+ fprintf(stderr, " (%s)", ipaddr);
+
+ fprintf(stderr, " %s port [%s/%s] succeeded!\n",
+ portlist[i], proto,
+ sv ? sv->s_name : "*");
+ }
+ if (Fflag)
+ fdpass(s);
+# if defined(TLS)
+ else {
+ if (usetls)
+ tls_setup_client(tls_ctx, s, host);
+ if (!zflag)
+ readwrite(s, tls_ctx);
+ if (tls_ctx)
+ timeout_tls(s, tls_ctx, tls_close);
+ }
+# else
+ else if (!zflag)
+ readwrite(s);
+# endif
+ }
+ }
+
+ if (s != -1)
+ close(s);
+# if defined(TLS)
+ tls_free(tls_ctx);
+ tls_config_free(tls_cfg);
+# endif
+
+ return ret;
+}
+
+/*
+ * unix_bind()
+ * Returns a unix socket bound to the given path
+ */
+int
+unix_bind(char *path, int flags)
+{
+ struct sockaddr_un s_un;
+ int s, save_errno;
+
+ /* Create unix domain socket. */
+ if ((s = socket(AF_UNIX, flags | (uflag ? SOCK_DGRAM : SOCK_STREAM),
+ 0)) == -1)
+ return -1;
+
+ unlink(path);
+
+ memset(&s_un, 0, sizeof(struct sockaddr_un));
+ s_un.sun_family = AF_UNIX;
+
+ if (strlcpy(s_un.sun_path, path, sizeof(s_un.sun_path)) >=
+ sizeof(s_un.sun_path)) {
+ close(s);
+ errno = ENAMETOOLONG;
+ return -1;
+ }
+
+ if (bind(s, (struct sockaddr *)&s_un, sizeof(s_un)) == -1) {
+ save_errno = errno;
+ close(s);
+ errno = save_errno;
+ return -1;
+ }
+ if (vflag)
+ report_sock("Bound", NULL, 0, path);
+
+ return s;
+}
+
+# if defined(TLS)
+int
+timeout_tls(int s, struct tls *tls_ctx, int (*func)(struct tls *))
+{
+ struct pollfd pfd;
+ int ret;
+
+ while ((ret = (*func)(tls_ctx)) != 0) {
+ if (ret == TLS_WANT_POLLIN)
+ pfd.events = POLLIN;
+ else if (ret == TLS_WANT_POLLOUT)
+ pfd.events = POLLOUT;
+ else
+ break;
+ pfd.fd = s;
+ if ((ret = poll(&pfd, 1, timeout)) == 1)
+ continue;
+ else if (ret == 0) {
+ errno = ETIMEDOUT;
+ ret = -1;
+ break;
+ } else
+ err(1, "poll failed");
+ }
+
+ return ret;
+}
+
+void
+tls_setup_client(struct tls *tls_ctx, int s, char *host)
+{
+ const char *errstr;
+
+ if (tls_connect_socket(tls_ctx, s,
+ tls_expectname ? tls_expectname : host) == -1) {
+ errx(1, "tls connection failed (%s)",
+ tls_error(tls_ctx));
+ }
+ if (timeout_tls(s, tls_ctx, tls_handshake) == -1) {
+ if ((errstr = tls_error(tls_ctx)) == NULL)
+ errstr = strerror(errno);
+ errx(1, "tls handshake failed (%s)", errstr);
+ }
+ if (vflag)
+ report_tls(tls_ctx, host);
+ if (tls_expecthash && (tls_peer_cert_hash(tls_ctx) == NULL ||
+ strcmp(tls_expecthash, tls_peer_cert_hash(tls_ctx)) != 0))
+ errx(1, "peer certificate is not %s", tls_expecthash);
+ if (Zflag) {
+ save_peer_cert(tls_ctx, Zflag);
+ if (Zflag != stderr && (fclose(Zflag) != 0))
+ err(1, "fclose failed saving peer cert");
+ }
+}
+
+struct tls *
+tls_setup_server(struct tls *tls_ctx, int connfd, char *host)
+{
+ struct tls *tls_cctx;
+ const char *errstr;
+
+ if (tls_accept_socket(tls_ctx, &tls_cctx, connfd) == -1) {
+ warnx("tls accept failed (%s)", tls_error(tls_ctx));
+ } else if (timeout_tls(connfd, tls_cctx, tls_handshake) == -1) {
+ if ((errstr = tls_error(tls_cctx)) == NULL)
+ errstr = strerror(errno);
+ warnx("tls handshake failed (%s)", errstr);
+ } else {
+ int gotcert = tls_peer_cert_provided(tls_cctx);
+
+ if (vflag && gotcert)
+ report_tls(tls_cctx, host);
+ if ((TLSopt & TLS_CCERT) && !gotcert)
+ warnx("No client certificate provided");
+ else if (gotcert && tls_expecthash &&
+ (tls_peer_cert_hash(tls_cctx) == NULL ||
+ strcmp(tls_expecthash, tls_peer_cert_hash(tls_cctx)) != 0))
+ warnx("peer certificate is not %s", tls_expecthash);
+ else if (gotcert && tls_expectname &&
+ (!tls_peer_cert_contains_name(tls_cctx, tls_expectname)))
+ warnx("name (%s) not found in client cert",
+ tls_expectname);
+ else {
+ return tls_cctx;
+ }
+ }
+ return NULL;
+}
+# endif
+
+/*
+ * unix_connect()
+ * Returns a socket connected to a local unix socket. Returns -1 on failure.
+ */
+int
+unix_connect(char *path)
+{
+ struct sockaddr_un s_un;
+ int s, save_errno;
+
+ if (uflag) {
+ if ((s = unix_bind(unix_dg_tmp_socket, SOCK_CLOEXEC)) == -1)
+ return -1;
+ } else {
+ if ((s = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0)) == -1) {
+ errx(1, "create unix socket failed");
+ return -1;
+ }
+ }
+
+ memset(&s_un, 0, sizeof(struct sockaddr_un));
+ s_un.sun_family = AF_UNIX;
+
+ if (strlcpy(s_un.sun_path, path, sizeof(s_un.sun_path)) >=
+ sizeof(s_un.sun_path)) {
+ close(s);
+ errno = ENAMETOOLONG;
+ warn("unix connect abandoned");
+ return -1;
+ }
+ if (connect(s, (struct sockaddr *)&s_un, sizeof(s_un)) == -1) {
+ save_errno = errno;
+ warn("unix connect failed");
+ close(s);
+ errno = save_errno;
+ return -1;
+ }
+ return s;
+
+}
+
+/*
+ * unix_listen()
+ * Create a unix domain socket, and listen on it.
+ */
+int
+unix_listen(char *path)
+{
+ int s;
+
+ if ((s = unix_bind(path, 0)) == -1)
+ return -1;
+ if (listen(s, 5) == -1) {
+ close(s);
+ return -1;
+ }
+ if (vflag)
+ report_sock("Listening", NULL, 0, path);
+
+ return s;
+}
+
+char *proto_name(int uflag, int dccpflag) {
+
+ char *proto = NULL;
+ if (uflag) {
+ proto = "udp";
+ }
+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
+ else if (dccpflag) {
+ proto = "dccp";
+ }
+# endif
+ else {
+ proto = "tcp";
+ }
+
+ return proto;
+}
+
+/*
+ * remote_connect()
+ * Returns a socket connected to a remote host. Properly binds to a local
+ * port or source address if needed. Returns -1 on failure.
+ */
+int
+remote_connect(const char *host, const char *port, struct addrinfo hints,
+ char *ipaddr)
+{
+ struct addrinfo *res, *res0;
+ int s = -1, error, herr, on = 1, save_errno;
+
+ if ((error = getaddrinfo(host, port, &hints, &res0)))
+ errx(1, "getaddrinfo for host \"%s\" port %s: %s", host,
+ port, gai_strerror(error));
+
+ for (res = res0; res; res = res->ai_next) {
+ if ((s = socket(res->ai_family, res->ai_socktype |
+ SOCK_NONBLOCK, res->ai_protocol)) == -1)
+ continue;
+
+ /* Bind to a local port or source address if specified. */
+ if (sflag || pflag) {
+ struct addrinfo ahints, *ares;
+
+# if defined (SO_BINDANY)
+ /* try SO_BINDANY, but don't insist */
+ setsockopt(s, SOL_SOCKET, SO_BINDANY, &on, sizeof(on));
+# endif
+ memset(&ahints, 0, sizeof(struct addrinfo));
+ ahints.ai_family = res->ai_family;
+ if (uflag) {
+ ahints.ai_socktype = SOCK_DGRAM;
+ ahints.ai_protocol = IPPROTO_UDP;
+
+ }
+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
+ else if (dccpflag) {
+ hints.ai_socktype = SOCK_DCCP;
+ hints.ai_protocol = IPPROTO_DCCP;
+ }
+# endif
+ else {
+ ahints.ai_socktype = SOCK_STREAM;
+ ahints.ai_protocol = IPPROTO_TCP;
+ }
+ ahints.ai_flags = AI_PASSIVE;
+ if ((error = getaddrinfo(sflag, pflag, &ahints, &ares)))
+ errx(1, "getaddrinfo: %s", gai_strerror(error));
+
+ if (bind(s, (struct sockaddr *)ares->ai_addr,
+ ares->ai_addrlen) == -1)
+ err(1, "bind failed");
+ freeaddrinfo(ares);
+ }
+
+ set_common_sockopts(s, res->ai_addr);
+
+ if (ipaddr != NULL) {
+ herr = getnameinfo(res->ai_addr, res->ai_addrlen,
+ ipaddr, NI_MAXHOST, NULL, 0, NI_NUMERICHOST);
+ switch (herr) {
+ case 0:
+ break;
+ case EAI_SYSTEM:
+ err(1, "getnameinfo");
+ default:
+ errx(1, "getnameinfo: %s", gai_strerror(herr));
+ }
+ }
+
+ if ((error = connect_with_timeout(s, res->ai_addr, res->ai_addrlen,
+ timeout)) == CONNECTION_SUCCESS)
+ break;
+
+ char *proto = proto_name(uflag, dccpflag);
+
+ if (vflag) {
+ /* only print IP if there is something to report */
+ if (nflag || ipaddr == NULL ||
+ (strncmp(host, ipaddr, NI_MAXHOST) == 0))
+ warn("connect to %s port %s (%s) %s", host,
+ port, proto,
+ error == CONNECTION_TIMEOUT ? "timed out" : "failed");
+ else
+ warn("connect to %s (%s) port %s (%s) %s",
+ host, ipaddr, port, proto,
+ error == CONNECTION_TIMEOUT ? "timed out" : "failed");
+ }
+
+ save_errno = errno;
+ close(s);
+ errno = save_errno;
+ s = -1;
+ }
+
+ freeaddrinfo(res0);
+
+ return s;
+}
+
+int
+timeout_connect(int s, const struct sockaddr *name, socklen_t namelen)
+{
+ struct pollfd pfd;
+ socklen_t optlen;
+ int optval;
+ int ret;
+
+ if ((ret = connect(s, name, namelen)) != 0 && errno == EINPROGRESS) {
+ pfd.fd = s;
+ pfd.events = POLLOUT;
+ if ((ret = poll(&pfd, 1, timeout)) == 1) {
+ optlen = sizeof(optval);
+ if ((ret = getsockopt(s, SOL_SOCKET, SO_ERROR,
+ &optval, &optlen)) == 0) {
+ errno = optval;
+ ret = optval == 0 ? 0 : -1;
+ }
+ } else if (ret == 0) {
+ errno = ETIMEDOUT;
+ ret = -1;
+ } else
+ err(1, "poll failed");
+ }
+
+ return ret;
+}
+
+static int connect_with_timeout(int fd, const struct sockaddr *sa,
+ socklen_t salen, int ctimeout)
+{
+ int err;
+ struct timeval tv, *tvp = NULL;
+ fd_set connect_fdset;
+ socklen_t len;
+ int orig_flags;
+
+ orig_flags = fcntl(fd, F_GETFL, 0);
+ if (fcntl(fd, F_SETFL, orig_flags | O_NONBLOCK) < 0 ) {
+ warn("can't set O_NONBLOCK - timeout not available");
+ if (connect(fd, sa, salen) == 0)
+ return CONNECTION_SUCCESS;
+ else
+ return CONNECTION_FAILED;
+ }
+
+ /* set connect timeout */
+ if (ctimeout > 0) {
+ tv.tv_sec = (time_t)ctimeout/1000;
+ tv.tv_usec = 0;
+ tvp = &tv;
+ }
+
+ /* attempt the connection */
+ err = connect(fd, sa, salen);
+ if (err != 0 && errno == EINPROGRESS) {
+ /* connection is proceeding
+ * it is complete (or failed) when select returns */
+
+ /* initialize connect_fdset */
+ FD_ZERO(&connect_fdset);
+ FD_SET(fd, &connect_fdset);
+
+ /* call select */
+ do {
+ err = select(fd + 1, NULL, &connect_fdset,
+ NULL, tvp);
+ } while (err < 0 && errno == EINTR);
+
+ /* select error */
+ if (err < 0)
+ errx(1,"select error: %s", strerror(errno));
+ /* we have reached a timeout */
+ if (err == 0)
+ return CONNECTION_TIMEOUT;
+ /* select returned successfully, but we must test socket
+ * error for result */
+ len = sizeof(err);
+ if (getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &len) < 0)
+ errx(1, "getsockopt error: %s", strerror(errno));
+ /* setup errno according to the result returned by
+ * getsockopt */
+ if (err != 0)
+ errno = err;
+ }
+
+ /* return aborted if an error occured, and valid otherwise */
+ fcntl(fd, F_SETFL, orig_flags);
+ return (err != 0)? CONNECTION_FAILED : CONNECTION_SUCCESS;
+}
+
+/*
+ * local_listen()
+ * Returns a socket listening on a local port, binds to specified source
+ * address. Returns -1 on failure.
+ */
+int
+local_listen(const char *host, const char *port, struct addrinfo hints)
+{
+ struct addrinfo *res, *res0;
+ int s = -1, ret, x = 1, save_errno;
+ int error;
+
+ /* Allow nodename to be null. */
+ hints.ai_flags |= AI_PASSIVE;
+
+ /*
+ * In the case of binding to a wildcard address
+ * default to binding to an ipv4 address.
+ */
+ if (host == NULL && hints.ai_family == AF_UNSPEC)
+ hints.ai_family = AF_INET;
+
+ if ((error = getaddrinfo(host, port, &hints, &res0)))
+ errx(1, "getaddrinfo: %s", gai_strerror(error));
+
+ for (res = res0; res; res = res->ai_next) {
+ if ((s = socket(res->ai_family, res->ai_socktype,
+ res->ai_protocol)) == -1)
+ continue;
+
+ ret = setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &x, sizeof(x));
+ if (ret == -1)
+ err(1, NULL);
+
+# if defined(SO_REUSEPORT)
+ ret = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof(x));
+ if (ret == -1)
+ err(1, NULL);
+# endif
+
+ set_common_sockopts(s, res->ai_addr);
+
+ if (bind(s, (struct sockaddr *)res->ai_addr,
+ res->ai_addrlen) == 0)
+ break;
+
+ save_errno = errno;
+ close(s);
+ errno = save_errno;
+ s = -1;
+ }
+
+ if (!uflag && s != -1) {
+ if (listen(s, 1) == -1)
+ err(1, "listen");
+ }
+ if (vflag && s != -1) {
+ struct sockaddr_storage ss;
+ socklen_t len;
+
+ len = sizeof(ss);
+ if (getsockname(s, (struct sockaddr *)&ss, &len) == -1)
+ err(1, "getsockname");
+ report_sock(uflag ? "Bound" : "Listening",
+ (struct sockaddr *)&ss, len, NULL);
+ }
+
+ freeaddrinfo(res0);
+
+ return s;
+}
+
+/*
+ * readwrite()
+ * Loop that polls on the network file descriptor and stdin.
+ */
+void
+# if defined(TLS)
+readwrite(int net_fd, struct tls *tls_ctx)
+# else
+readwrite(int net_fd)
+# endif
+{
+ struct pollfd pfd[4];
+ int stdin_fd = STDIN_FILENO;
+ int stdout_fd = STDOUT_FILENO;
+ unsigned char netinbuf[BUFSIZE];
+ size_t netinbufpos = 0;
+ unsigned char stdinbuf[BUFSIZE];
+ size_t stdinbufpos = 0;
+ int n, num_fds;
+ ssize_t ret;
+
+ /* don't read from stdin if requested */
+ if (dflag)
+ stdin_fd = -1;
+
+ /* stdin */
+ pfd[POLL_STDIN].fd = stdin_fd;
+ pfd[POLL_STDIN].events = POLLIN;
+
+ /* network out */
+ pfd[POLL_NETOUT].fd = net_fd;
+ pfd[POLL_NETOUT].events = 0;
+
+ /* network in */
+ pfd[POLL_NETIN].fd = net_fd;
+ pfd[POLL_NETIN].events = POLLIN;
+
+ /* stdout */
+ pfd[POLL_STDOUT].fd = stdout_fd;
+ pfd[POLL_STDOUT].events = 0;
+
+ while (1) {
+ /* both inputs are gone, buffers are empty, we are done */
+ if (pfd[POLL_STDIN].fd == -1 && pfd[POLL_NETIN].fd == -1 &&
+ stdinbufpos == 0 && netinbufpos == 0) {
+ if (qflag <= 0)
+ return;
+ goto delay_exit;
+ }
+ /* both outputs are gone, we can't continue */
+ if (pfd[POLL_NETOUT].fd == -1 && pfd[POLL_STDOUT].fd == -1) {
+ if (qflag <= 0)
+ return;
+ goto delay_exit;
+ }
+ /* listen and net in gone, queues empty, done */
+ if (lflag && pfd[POLL_NETIN].fd == -1 &&
+ stdinbufpos == 0 && netinbufpos == 0) {
+ if (qflag <= 0)
+ return;
+delay_exit:
+ close(net_fd);
+ signal(SIGALRM, quit);
+ alarm(qflag);
+ }
+
+ /* poll */
+ num_fds = poll(pfd, 4, timeout);
+
+ /* treat poll errors */
+ if (num_fds == -1)
+ err(1, "polling error");
+
+ /* timeout happened */
+ if (num_fds == 0)
+ return;
+
+ /* treat socket error conditions */
+ for (n = 0; n < 4; n++) {
+ if (pfd[n].revents & (POLLERR|POLLNVAL)) {
+ pfd[n].fd = -1;
+ }
+ }
+ /* reading is possible after HUP */
+ if (pfd[POLL_STDIN].events & POLLIN &&
+ pfd[POLL_STDIN].revents & POLLHUP &&
+ !(pfd[POLL_STDIN].revents & POLLIN))
+ pfd[POLL_STDIN].fd = -1;
+
+ if (pfd[POLL_NETIN].events & POLLIN &&
+ pfd[POLL_NETIN].revents & POLLHUP &&
+ !(pfd[POLL_NETIN].revents & POLLIN))
+ pfd[POLL_NETIN].fd = -1;
+
+ if (pfd[POLL_NETOUT].revents & POLLHUP) {
+ if (Nflag)
+ shutdown(pfd[POLL_NETOUT].fd, SHUT_WR);
+ pfd[POLL_NETOUT].fd = -1;
+ }
+ /* if HUP, stop watching stdout */
+ if (pfd[POLL_STDOUT].revents & POLLHUP)
+ pfd[POLL_STDOUT].fd = -1;
+ /* if no net out, stop watching stdin */
+ if (pfd[POLL_NETOUT].fd == -1)
+ pfd[POLL_STDIN].fd = -1;
+ /* if no stdout, stop watching net in */
+ if (pfd[POLL_STDOUT].fd == -1) {
+ if (pfd[POLL_NETIN].fd != -1)
+ shutdown(pfd[POLL_NETIN].fd, SHUT_RD);
+ pfd[POLL_NETIN].fd = -1;
+ }
+
+ /* try to read from stdin */
+ if (pfd[POLL_STDIN].revents & POLLIN && stdinbufpos < BUFSIZE) {
+ ret = fillbuf(pfd[POLL_STDIN].fd, stdinbuf,
+# if defined(TLS)
+ &stdinbufpos, NULL);
+ if (ret == TLS_WANT_POLLIN)
+ pfd[POLL_STDIN].events = POLLIN;
+ else if (ret == TLS_WANT_POLLOUT)
+ pfd[POLL_STDIN].events = POLLOUT;
+ else
+# else
+ &stdinbufpos);
+# endif
+ if (ret == 0 || ret == -1)
+ pfd[POLL_STDIN].fd = -1;
+ /* read something - poll net out */
+ if (stdinbufpos > 0)
+ pfd[POLL_NETOUT].events = POLLOUT;
+ /* filled buffer - remove self from polling */
+ if (stdinbufpos == BUFSIZE)
+ pfd[POLL_STDIN].events = 0;
+ }
+ /* try to write to network */
+ if (pfd[POLL_NETOUT].revents & POLLOUT && stdinbufpos > 0) {
+ ret = drainbuf(pfd[POLL_NETOUT].fd, stdinbuf,
+# if defined(TLS)
+ &stdinbufpos, tls_ctx);
+ if (ret == TLS_WANT_POLLIN)
+ pfd[POLL_NETOUT].events = POLLIN;
+ else if (ret == TLS_WANT_POLLOUT)
+ pfd[POLL_NETOUT].events = POLLOUT;
+ else
+# else
+ &stdinbufpos, (iflag || Cflag) ? 1 : 0);
+# endif
+ if (ret == -1)
+ pfd[POLL_NETOUT].fd = -1;
+ /* buffer empty - remove self from polling */
+ if (stdinbufpos == 0)
+ pfd[POLL_NETOUT].events = 0;
+ /* buffer no longer full - poll stdin again */
+ if (stdinbufpos < BUFSIZE)
+ pfd[POLL_STDIN].events = POLLIN;
+ }
+ /* try to read from network */
+ if (pfd[POLL_NETIN].revents & POLLIN && netinbufpos < BUFSIZE) {
+ ret = fillbuf(pfd[POLL_NETIN].fd, netinbuf,
+# if defined(TLS)
+ &netinbufpos, tls_ctx);
+ if (ret == TLS_WANT_POLLIN)
+ pfd[POLL_NETIN].events = POLLIN;
+ else if (ret == TLS_WANT_POLLOUT)
+ pfd[POLL_NETIN].events = POLLOUT;
+ else
+# else
+ &netinbufpos);
+# endif
+ if (ret == -1)
+ pfd[POLL_NETIN].fd = -1;
+ /* eof on net in - remove from pfd */
+ if (ret == 0) {
+ shutdown(pfd[POLL_NETIN].fd, SHUT_RD);
+ pfd[POLL_NETIN].fd = -1;
+ }
+ if (recvlimit > 0 && ++recvcount >= recvlimit) {
+ if (pfd[POLL_NETIN].fd != -1)
+ shutdown(pfd[POLL_NETIN].fd, SHUT_RD);
+ pfd[POLL_NETIN].fd = -1;
+ pfd[POLL_STDIN].fd = -1;
+ }
+ /* read something - poll stdout */
+ if (netinbufpos > 0)
+ pfd[POLL_STDOUT].events = POLLOUT;
+ /* filled buffer - remove self from polling */
+ if (netinbufpos == BUFSIZE)
+ pfd[POLL_NETIN].events = 0;
+ /* handle telnet */
+ if (tflag)
+ atelnet(pfd[POLL_NETIN].fd, netinbuf,
+ netinbufpos);
+ }
+ /* try to write to stdout */
+ if (pfd[POLL_STDOUT].revents & POLLOUT && netinbufpos > 0) {
+ ret = drainbuf(pfd[POLL_STDOUT].fd, netinbuf,
+# if defined(TLS)
+ &netinbufpos, NULL);
+ if (ret == TLS_WANT_POLLIN)
+ pfd[POLL_STDOUT].events = POLLIN;
+ else if (ret == TLS_WANT_POLLOUT)
+ pfd[POLL_STDOUT].events = POLLOUT;
+ else
+# else
+ &netinbufpos, 0);
+# endif
+ if (ret == -1)
+ pfd[POLL_STDOUT].fd = -1;
+ /* buffer empty - remove self from polling */
+ if (netinbufpos == 0)
+ pfd[POLL_STDOUT].events = 0;
+ /* buffer no longer full - poll net in again */
+ if (netinbufpos < BUFSIZE)
+ pfd[POLL_NETIN].events = POLLIN;
+ }
+
+ /* stdin gone and queue empty? */
+ if (pfd[POLL_STDIN].fd == -1 && stdinbufpos == 0) {
+ if (pfd[POLL_NETOUT].fd != -1 && Nflag)
+ shutdown(pfd[POLL_NETOUT].fd, SHUT_WR);
+ pfd[POLL_NETOUT].fd = -1;
+ /* #817050: handle UDP sockets and kflag */
+ if ((lflag || uflag) && pfd[POLL_NETIN].fd != -1 &&
+ qflag >= 0 && netinbufpos == 0) {
+ shutdown(pfd[POLL_NETIN].fd, SHUT_RD);
+ pfd[POLL_NETIN].fd = -1;
+ kflag = 0;
+ }
+ }
+ /* net in gone and queue empty? */
+ if (pfd[POLL_NETIN].fd == -1 && netinbufpos == 0) {
+ pfd[POLL_STDOUT].fd = -1;
+ }
+ }
+}
+
+ssize_t
+drainbuf(int fd, unsigned char *buf, size_t *bufpos, int oneline)
+{
+ ssize_t n, r;
+ ssize_t adjust;
+ unsigned char *lf = NULL;
+
+ if (oneline)
+ lf = memchr(buf, '\n', *bufpos);
+ if (lf == NULL) {
+ n = *bufpos;
+ oneline = 0;
+ }
+ else if (Cflag && (lf == buf || buf[lf - buf - 1] != '\r')) {
+ n = lf - buf;
+ oneline = 2;
+ }
+ else
+ n = lf - buf + 1;
+ if (n > 0)
+ n = write(fd, buf, n);
+
+ /* don't treat EAGAIN, EINTR as error */
+ if (n == -1 && (errno == EAGAIN || errno == EINTR))
+ n = -2;
+ if (oneline == 2 && n >= 0)
+ n++;
+ if (n <= 0)
+ return n;
+
+ if (oneline == 2 && (r = atomicio(vwrite, fd, "\r\n", 2)) != 2)
+ err(1, "write failed (%zu/2)", r);
+ if (oneline > 0 && iflag)
+ sleep(iflag);
+
+ /* adjust buffer */
+ adjust = *bufpos - n;
+ if (adjust > 0)
+ memmove(buf, buf + n, adjust);
+ *bufpos -= n;
+ return n;
+}
+
+ssize_t
+# if defined(TLS)
+fillbuf(int fd, unsigned char *buf, size_t *bufpos, struct tls *tls)
+# else
+fillbuf(int fd, unsigned char *buf, size_t *bufpos)
+# endif
+{
+ size_t num = BUFSIZE - *bufpos;
+ ssize_t n;
+
+# if defined(TLS)
+ if (tls) {
+ n = tls_read(tls, buf + *bufpos, num);
+ if (n == -1)
+ errx(1, "tls read failed (%s)", tls_error(tls));
+ } else {
+# endif
+ n = read(fd, buf + *bufpos, num);
+ /* don't treat EAGAIN, EINTR as error */
+ if (n == -1 && (errno == EAGAIN || errno == EINTR))
+# if defined(TLS)
+ n = TLS_WANT_POLLIN;
+ }
+# else
+ n = -2;
+# endif
+ if (n <= 0)
+ return n;
+ *bufpos += n;
+ return n;
+}
+
+/*
+ * fdpass()
+ * Pass the connected file descriptor to stdout and exit.
+ */
+void
+fdpass(int nfd)
+{
+ struct msghdr mh;
+ union {
+ struct cmsghdr hdr;
+ char buf[CMSG_SPACE(sizeof(int))];
+ } cmsgbuf;
+ struct cmsghdr *cmsg;
+ struct iovec iov;
+ char c = '\0';
+ ssize_t r;
+ struct pollfd pfd;
+
+ /* Avoid obvious stupidity */
+ if (isatty(STDOUT_FILENO))
+ errx(1, "Cannot pass file descriptor to tty");
+
+ memset(&mh, 0, sizeof(mh));
+ memset(&cmsgbuf, 0, sizeof(cmsgbuf));
+ memset(&iov, 0, sizeof(iov));
+
+ mh.msg_control = (caddr_t)&cmsgbuf.buf;
+ mh.msg_controllen = sizeof(cmsgbuf.buf);
+ cmsg = CMSG_FIRSTHDR(&mh);
+ cmsg->cmsg_len = CMSG_LEN(sizeof(int));
+ cmsg->cmsg_level = SOL_SOCKET;
+ cmsg->cmsg_type = SCM_RIGHTS;
+ *(int *)CMSG_DATA(cmsg) = nfd;
+
+ iov.iov_base = &c;
+ iov.iov_len = 1;
+ mh.msg_iov = &iov;
+ mh.msg_iovlen = 1;
+
+ memset(&pfd, 0, sizeof(pfd));
+ pfd.fd = STDOUT_FILENO;
+ pfd.events = POLLOUT;
+ for (;;) {
+ r = sendmsg(STDOUT_FILENO, &mh, 0);
+ if (r == -1) {
+ if (errno == EAGAIN || errno == EINTR) {
+ if (poll(&pfd, 1, -1) == -1)
+ err(1, "poll");
+ continue;
+ }
+ err(1, "sendmsg");
+ } else if (r != 1)
+ errx(1, "sendmsg: unexpected return value %zd", r);
+ else
+ break;
+ }
+ exit(0);
+}
+
+/* Deal with RFC 854 WILL/WONT DO/DONT negotiation. */
+void
+atelnet(int nfd, unsigned char *buf, unsigned int size)
+{
+ unsigned char *p, *end;
+ unsigned char obuf[4];
+
+ if (size < 3)
+ return;
+ end = buf + size - 2;
+
+ for (p = buf; p < end; p++) {
+ if (*p != IAC)
+ continue;
+
+ obuf[0] = IAC;
+ p++;
+ if ((*p == WILL) || (*p == WONT))
+ obuf[1] = DONT;
+ else if ((*p == DO) || (*p == DONT))
+ obuf[1] = WONT;
+ else
+ continue;
+
+ p++;
+ obuf[2] = *p;
+ if (atomicio(vwrite, nfd, obuf, 3) != 3)
+ warn("Write Error!");
+ }
+}
+
+
+int
+strtoport(char *portstr, int udp)
+{
+ struct servent *entry;
+ const char *errstr;
+ char *proto;
+ int port = -1;
+
+ proto = udp ? "udp" : "tcp";
+
+ port = strtonum(portstr, 1, PORT_MAX, &errstr);
+ if (errstr == NULL)
+ return port;
+ if (errno != EINVAL)
+ errx(1, "port number %s: %s", errstr, portstr);
+ if ((entry = getservbyname(portstr, proto)) == NULL)
+ errx(1, "service \"%s\" unknown", portstr);
+ return ntohs(entry->s_port);
+}
+
+/*
+ * build_ports()
+ * Build an array of ports in portlist[], listing each port
+ * that we should try to connect to.
+ */
+void
+build_ports(char **p)
+{
+ struct servent *sv;
+ char *n;
+ int hi, lo, cp;
+ int x = 0;
+ int i;
+
+ char *proto = proto_name(uflag, dccpflag);
+ for (i = 0; p[i] != NULL; i++) {
+ sv = getservbyname(p[i], proto);
+ if (sv) {
+ if (asprintf(&portlist[x], "%d", ntohs(sv->s_port)) < 0)
+ err(1, "asprintf");
+ x++;
+ } else if (isdigit((unsigned char)*p[i]) && (n = strchr(p[i], '-')) != NULL) {
+ *n = '\0';
+ n++;
+
+ /* Make sure the ports are in order: lowest->highest. */
+ hi = strtoport(n, uflag);
+ lo = strtoport(p[i], uflag);
+ if (lo > hi) {
+ cp = hi;
+ hi = lo;
+ lo = cp;
+ }
+
+ /* Load ports sequentially. */
+ for (cp = lo; cp <= hi; cp++) {
+ if (asprintf(&portlist[x], "%d", cp) == -1)
+ err(1, "asprintf");
+ x++;
+ }
+ } else {
+ hi = strtoport(p[i], uflag);
+ if (asprintf(&portlist[x], "%d", hi) < 0)
+ err(1, "asprintf");
+ x++;
+ }
+ }
+
+ /*
+ * Initialize portlist with a random permutation using
+ * Fisher–Yates shuffle.
+ */
+ if (rflag) {
+ for (i = x-1; i > 0; i--) {
+ cp = arc4random_uniform(i+1);
+ if (cp != i) {
+ n = portlist[i];
+ portlist[i] = portlist[cp];
+ portlist[cp] = n;
+ }
+ }
+ }
+}
+
+/*
+ * udptest()
+ * Do a few writes to see if the UDP port is there.
+ * Fails once PF state table is full.
+ */
+int
+udptest(int s)
+{
+ int i, t;
+
+ if ((write(s, "X", 1) != 1) ||
+ ((write(s, "X", 1) != 1) && (errno == ECONNREFUSED)))
+ return -1;
+
+ /* Give the remote host some time to reply. */
+ for (i = 0, t = (timeout == -1) ? UDP_SCAN_TIMEOUT : (timeout / 1000);
+ i < t; i++) {
+ sleep(1);
+ if ((write(s, "X", 1) != 1) && (errno == ECONNREFUSED))
+ return -1;
+ }
+ return 1;
+}
+
+void
+set_common_sockopts(int s, const struct sockaddr* sa)
+{
+ int x = 1;
+ int af = sa->sa_family;
+
+# if defined(SO_BROADCAST)
+ if (bflag) {
+ /* allow datagram sockets to send packets to a broadcast address
+ * (this option has no effect on stream-oriented sockets) */
+ if (setsockopt(s, SOL_SOCKET, SO_BROADCAST,
+ &x, sizeof(x)) == -1)
+ err(1, NULL);
+ }
+# endif
+# if defined(TCP_MD5SIG_EXT) && defined(TCP_MD5SIG_MAXKEYLEN)
+ if (Sflag) {
+ struct tcp_md5sig sig;
+ memset(&sig, 0, sizeof(sig));
+ memcpy(&sig.tcpm_addr, sa, sizeof(struct sockaddr_storage));
+ sig.tcpm_keylen = TCP_MD5SIG_MAXKEYLEN < strlen(Sflag_password)
+ ? TCP_MD5SIG_MAXKEYLEN
+ : strlen(Sflag_password);
+ memcpy(sig.tcpm_key, Sflag_password, sig.tcpm_keylen);
+ sig.tcpm_flags = TCP_MD5SIG_FLAG_PREFIX;
+ if (setsockopt(s, IPPROTO_TCP, TCP_MD5SIG_EXT,
+ &sig, sizeof(sig)) == -1)
+ err(1, NULL);
+ }
+# endif
+ if (Dflag) {
+ if (setsockopt(s, SOL_SOCKET, SO_DEBUG,
+ &x, sizeof(x)) == -1)
+ err(1, NULL);
+ }
+ if (Tflag != -1) {
+ if (af == AF_INET && setsockopt(s, IPPROTO_IP,
+ IP_TOS, &Tflag, sizeof(Tflag)) == -1)
+ err(1, "set IP ToS");
+
+#if defined(IPV6_TCLASS)
+ else if (af == AF_INET6 && setsockopt(s, IPPROTO_IPV6,
+ IPV6_TCLASS, &Tflag, sizeof(Tflag)) == -1)
+ err(1, "set IPv6 traffic class");
+#else
+ else if (af == AF_INET6)
+ errx(1, "can't set IPv6 traffic class (unavailable)");
+#endif
+ }
+ if (Iflag) {
+ if (setsockopt(s, SOL_SOCKET, SO_RCVBUF,
+ &Iflag, sizeof(Iflag)) == -1)
+ err(1, "set TCP receive buffer size");
+ }
+ if (Oflag) {
+ if (setsockopt(s, SOL_SOCKET, SO_SNDBUF,
+ &Oflag, sizeof(Oflag)) == -1)
+ err(1, "set TCP send buffer size");
+ }
+
+ if (ttl != -1) {
+ if (af == AF_INET && setsockopt(s, IPPROTO_IP,
+ IP_TTL, &ttl, sizeof(ttl)))
+ err(1, "set IP TTL");
+
+#if defined(IPV6_UNICAST_HOPS)
+ else if (af == AF_INET6 && setsockopt(s, IPPROTO_IPV6,
+ IPV6_UNICAST_HOPS, &ttl, sizeof(ttl)))
+ err(1, "set IPv6 unicast hops");
+#else
+ else if (af == AF_INET6)
+ errx(1, "can't set IPv6 unicast hops (unavailable)");
+#endif
+ }
+
+ if (minttl != -1) {
+#if defined(IP_MINTTL)
+ if (af == AF_INET && setsockopt(s, IPPROTO_IP,
+ IP_MINTTL, &minttl, sizeof(minttl)))
+ err(1, "set IP min TTL");
+#else
+ if (af == AF_INET)
+ errx(1, "can't set IP min TTL (unavailable)");
+#endif
+
+#if defined(IPV6_MINHOPCOUNT)
+ else if (af == AF_INET6 && setsockopt(s, IPPROTO_IPV6,
+ IPV6_MINHOPCOUNT, &minttl, sizeof(minttl)))
+ err(1, "set IPv6 min hop count");
+#else
+ else if (af == AF_INET6)
+ errx(1, "can't set IPv6 min hop count (unavailable)");
+#endif
+ }
+}
+
+int
+process_tos_opt(char *s, int *val)
+{
+ /* DiffServ Codepoints and other TOS mappings */
+ const struct toskeywords {
+ const char *keyword;
+ int val;
+ } *t, toskeywords[] = {
+ { "af11", IPTOS_DSCP_AF11 },
+ { "af12", IPTOS_DSCP_AF12 },
+ { "af13", IPTOS_DSCP_AF13 },
+ { "af21", IPTOS_DSCP_AF21 },
+ { "af22", IPTOS_DSCP_AF22 },
+ { "af23", IPTOS_DSCP_AF23 },
+ { "af31", IPTOS_DSCP_AF31 },
+ { "af32", IPTOS_DSCP_AF32 },
+ { "af33", IPTOS_DSCP_AF33 },
+ { "af41", IPTOS_DSCP_AF41 },
+ { "af42", IPTOS_DSCP_AF42 },
+ { "af43", IPTOS_DSCP_AF43 },
+ { "critical", IPTOS_PREC_CRITIC_ECP },
+ { "cs0", IPTOS_DSCP_CS0 },
+ { "cs1", IPTOS_DSCP_CS1 },
+ { "cs2", IPTOS_DSCP_CS2 },
+ { "cs3", IPTOS_DSCP_CS3 },
+ { "cs4", IPTOS_DSCP_CS4 },
+ { "cs5", IPTOS_DSCP_CS5 },
+ { "cs6", IPTOS_DSCP_CS6 },
+ { "cs7", IPTOS_DSCP_CS7 },
+ { "ef", IPTOS_DSCP_EF },
+ { "inetcontrol", IPTOS_PREC_INTERNETCONTROL },
+ { "lowcost", IPTOS_LOWCOST },
+ { "lowdelay", IPTOS_LOWDELAY },
+ { "netcontrol", IPTOS_PREC_NETCONTROL },
+ { "reliability", IPTOS_RELIABILITY },
+ { "throughput", IPTOS_THROUGHPUT },
+ { NULL, -1 },
+ };
+
+ for (t = toskeywords; t->keyword != NULL; t++) {
+ if (strcmp(s, t->keyword) == 0) {
+ *val = t->val;
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+# if defined(TLS)
+int
+process_tls_opt(char *s, int *flags)
+{
+ size_t len;
+ char *v;
+
+ const struct tlskeywords {
+ const char *keyword;
+ int flag;
+ char **value;
+ } *t, tlskeywords[] = {
+ { "ciphers", -1, &tls_ciphers },
+ { "clientcert", TLS_CCERT, NULL },
+ { "muststaple", TLS_MUSTSTAPLE, NULL },
+ { "noverify", TLS_NOVERIFY, NULL },
+ { "noname", TLS_NONAME, NULL },
+ { "protocols", -1, &tls_protocols },
+ { NULL, -1, NULL },
+ };
+
+ len = strlen(s);
+ if ((v = strchr(s, '=')) != NULL) {
+ len = v - s;
+ v++;
+ }
+
+ for (t = tlskeywords; t->keyword != NULL; t++) {
+ if (strlen(t->keyword) == len &&
+ strncmp(s, t->keyword, len) == 0) {
+ if (t->value != NULL) {
+ if (v == NULL)
+ errx(1, "invalid tls value `%s'", s);
+ *t->value = v;
+ } else {
+ *flags |= t->flag;
+ }
+ return 1;
+ }
+ }
+ return 0;
+}
+
+void
+save_peer_cert(struct tls *tls_ctx, FILE *fp)
+{
+ const char *pem;
+ size_t plen;
+
+ if ((pem = tls_peer_cert_chain_pem(tls_ctx, &plen)) == NULL)
+ errx(1, "Can't get peer certificate");
+ if (fprintf(fp, "%.*s", (int)plen, pem) < 0)
+ err(1, "unable to save peer cert");
+ if (fflush(fp) != 0)
+ err(1, "unable to flush peer cert");
+}
+
+void
+report_tls(struct tls * tls_ctx, char * host)
+{
+ time_t t;
+ const char *ocsp_url;
+
+ fprintf(stderr, "TLS handshake negotiated %s/%s with host %s\n",
+ tls_conn_version(tls_ctx), tls_conn_cipher(tls_ctx), host);
+ fprintf(stderr, "Peer name: %s\n",
+ tls_expectname ? tls_expectname : host);
+ if (tls_peer_cert_subject(tls_ctx))
+ fprintf(stderr, "Subject: %s\n",
+ tls_peer_cert_subject(tls_ctx));
+ if (tls_peer_cert_issuer(tls_ctx))
+ fprintf(stderr, "Issuer: %s\n",
+ tls_peer_cert_issuer(tls_ctx));
+ if ((t = tls_peer_cert_notbefore(tls_ctx)) != -1)
+ fprintf(stderr, "Valid From: %s", ctime(&t));
+ if ((t = tls_peer_cert_notafter(tls_ctx)) != -1)
+ fprintf(stderr, "Valid Until: %s", ctime(&t));
+ if (tls_peer_cert_hash(tls_ctx))
+ fprintf(stderr, "Cert Hash: %s\n",
+ tls_peer_cert_hash(tls_ctx));
+ ocsp_url = tls_peer_ocsp_url(tls_ctx);
+ if (ocsp_url != NULL)
+ fprintf(stderr, "OCSP URL: %s\n", ocsp_url);
+ switch (tls_peer_ocsp_response_status(tls_ctx)) {
+ case TLS_OCSP_RESPONSE_SUCCESSFUL:
+ fprintf(stderr, "OCSP Stapling: %s\n",
+ tls_peer_ocsp_result(tls_ctx) == NULL ? "" :
+ tls_peer_ocsp_result(tls_ctx));
+ fprintf(stderr,
+ " response_status=%d cert_status=%d crl_reason=%d\n",
+ tls_peer_ocsp_response_status(tls_ctx),
+ tls_peer_ocsp_cert_status(tls_ctx),
+ tls_peer_ocsp_crl_reason(tls_ctx));
+ t = tls_peer_ocsp_this_update(tls_ctx);
+ fprintf(stderr, " this update: %s",
+ t != -1 ? ctime(&t) : "\n");
+ t = tls_peer_ocsp_next_update(tls_ctx);
+ fprintf(stderr, " next update: %s",
+ t != -1 ? ctime(&t) : "\n");
+ t = tls_peer_ocsp_revocation_time(tls_ctx);
+ fprintf(stderr, " revocation: %s",
+ t != -1 ? ctime(&t) : "\n");
+ break;
+ case -1:
+ break;
+ default:
+ fprintf(stderr, "OCSP Stapling: failure - response_status %d (%s)\n",
+ tls_peer_ocsp_response_status(tls_ctx),
+ tls_peer_ocsp_result(tls_ctx) == NULL ? "" :
+ tls_peer_ocsp_result(tls_ctx));
+ break;
+
+ }
+}
+# endif
+
+void
+report_sock(const char *msg, const struct sockaddr *sa, socklen_t salen,
+ char *path)
+{
+ char host[NI_MAXHOST], port[NI_MAXSERV];
+ int herr;
+ int flags = NI_NUMERICSERV;
+
+ if (path != NULL) {
+ fprintf(stderr, "%s on %s\n", msg, path);
+ return;
+ }
+
+ if (nflag)
+ flags |= NI_NUMERICHOST;
+
+ herr = getnameinfo(sa, salen, host, sizeof(host), port, sizeof(port),
+ flags);
+ switch (herr) {
+ case 0:
+ break;
+ case EAI_SYSTEM:
+ warn("getnameinfo");
+ return;
+ default:
+ warnx("getnameinfo: %s", gai_strerror(herr));
+ return;
+ }
+
+ fprintf(stderr, "%s on %s %s\n", msg, host, port);
+}
+
+void
+help(void)
+{
+# if defined(DEBIAN_VERSION)
+ fprintf(stderr, "OpenBSD netcat (Debian patchlevel " DEBIAN_VERSION ")\n");
+# endif
+ usage(0);
+ fprintf(stderr, "\tCommand Summary:\n\
+ \t-4 Use IPv4\n\
+ \t-6 Use IPv6\n\
+ \t-b Allow broadcast\n\
+ \t-C Send CRLF as line-ending\n\
+ \t-D Enable the debug socket option\n\
+ \t-d Detach from stdin\n\
+ \t-F Pass socket fd\n\
+ \t-h This help text\n\
+ \t-I length TCP receive buffer length\n\
+ \t-i interval Delay interval for lines sent, ports scanned\n\
+ \t-k Keep inbound sockets open for multiple connects\n\
+ \t-l Listen mode, for inbound connects\n\
+ \t-M ttl Outgoing TTL / Hop Limit\n\
+ \t-m minttl Minimum incoming TTL / Hop Limit\n\
+ \t-N Shutdown the network socket after EOF on stdin\n\
+ \t-n Suppress name/port resolutions\n\
+ \t-O length TCP send buffer length\n\
+ \t-P proxyuser\tUsername for proxy authentication\n\
+ \t-p port\t Specify local port for remote connects\n\
+ \t-q secs\t quit after EOF on stdin and delay of secs\n\
+ \t-r Randomize remote ports\n\
+ \t-S Enable the TCP MD5 signature option\n\
+ \t-s sourceaddr Local source address\n\
+ \t-T keyword TOS value\n\
+ \t-t Answer TELNET negotiation\n\
+ \t-U Use UNIX domain socket\n\
+ \t-u UDP mode\n\
+ \t-V rtable Specify alternate routing table\n\
+ \t-v Verbose\n\
+ \t-W recvlimit Terminate after receiving a number of packets\n\
+ \t-w timeout Timeout for connects and final net reads\n\
+ \t-X proto Proxy protocol: \"4\", \"5\" (SOCKS) or \"connect\"\n\
+ \t-x addr[:port]\tSpecify proxy address and port\n\
+ \t-Z DCCP mode\n\
+ \t-z Zero-I/O mode [used for scanning]\n\
+ Port numbers can be individual or ranges: lo-hi [inclusive]\n");
+ exit(0);
+}
+
+void
+usage(int ret)
+{
+ fprintf(stderr,
+ "usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-M ttl]\n"
+ "\t [-m minttl] [-O length] [-P proxy_username] [-p source_port]\n"
+ "\t [-q seconds] [-s sourceaddr] [-T keyword] [-V rtable] [-W recvlimit]\n"
+ "\t [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]]\n"
+ "\t [destination] [port]\n");
+ if (ret)
+ exit(1);
+}
+
+/*
+ * quit()
+ * handler for a "-q" timeout (exit 0 instead of 1)
+ */
+static void quit()
+{
+ exit(0);
+}
diff --git a/package/netcat-openbsd/src/socks.c b/package/netcat-openbsd/src/socks.c
new file mode 100644
index 000000000..58fd5765b
--- /dev/null
+++ b/package/netcat-openbsd/src/socks.c
@@ -0,0 +1,400 @@
+/* $OpenBSD: socks.c,v 1.30 2019/11/04 17:33:28 millert Exp $ */
+
+/*
+ * Copyright (c) 1999 Niklas Hallqvist. All rights reserved.
+ * Copyright (c) 2004, 2005 Damien Miller. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+
+#include <err.h>
+#include <errno.h>
+#include <netdb.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <resolv.h>
+#include <bsd/readpassphrase.h>
+#include "atomicio.h"
+
+#define SOCKS_PORT "1080"
+#define HTTP_PROXY_PORT "3128"
+#define HTTP_MAXHDRS 64
+#define SOCKS_V5 5
+#define SOCKS_V4 4
+#define SOCKS_NOAUTH 0
+#define SOCKS_NOMETHOD 0xff
+#define SOCKS_CONNECT 1
+#define SOCKS_IPV4 1
+#define SOCKS_DOMAIN 3
+#define SOCKS_IPV6 4
+
+int remote_connect(const char *, const char *, struct addrinfo, char *);
+int socks_connect(const char *, const char *, struct addrinfo,
+ const char *, const char *, struct addrinfo, int,
+ const char *);
+
+static int
+decode_addrport(const char *h, const char *p, struct sockaddr *addr,
+ socklen_t addrlen, int v4only, int numeric)
+{
+ int r;
+ struct addrinfo hints, *res;
+
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = v4only ? PF_INET : PF_UNSPEC;
+ hints.ai_flags = numeric ? AI_NUMERICHOST : 0;
+ hints.ai_socktype = SOCK_STREAM;
+ r = getaddrinfo(h, p, &hints, &res);
+ /* Don't fatal when attempting to convert a numeric address */
+ if (r != 0) {
+ if (!numeric) {
+ errx(1, "getaddrinfo(\"%.64s\", \"%.64s\"): %s", h, p,
+ gai_strerror(r));
+ }
+ return (-1);
+ }
+ if (addrlen < res->ai_addrlen) {
+ freeaddrinfo(res);
+ errx(1, "internal error: addrlen < res->ai_addrlen");
+ }
+ memcpy(addr, res->ai_addr, res->ai_addrlen);
+ freeaddrinfo(res);
+ return (0);
+}
+
+static int
+proxy_read_line(int fd, char *buf, size_t bufsz)
+{
+ size_t off;
+
+ for(off = 0;;) {
+ if (off >= bufsz)
+ errx(1, "proxy read too long");
+ if (atomicio(read, fd, buf + off, 1) != 1)
+ err(1, "proxy read");
+ /* Skip CR */
+ if (buf[off] == '\r')
+ continue;
+ if (buf[off] == '\n') {
+ buf[off] = '\0';
+ break;
+ }
+ off++;
+ }
+ return (off);
+}
+
+static void
+getproxypass(const char *proxyuser, const char *proxyhost,
+ char *pw, size_t pwlen)
+{
+ char prompt[512];
+
+ snprintf(prompt, sizeof(prompt), "Proxy password for %s@%s: ",
+ proxyuser, proxyhost);
+ if (readpassphrase(prompt, pw, pwlen, RPP_REQUIRE_TTY) == NULL)
+ errx(1, "Unable to read proxy passphrase");
+}
+
+/*
+ * Error strings adapted from the generally accepted SOCKSv4 spec:
+ *
+ * http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol
+ */
+static const char *
+socks4_strerror(int e)
+{
+ switch (e) {
+ case 90:
+ return "Succeeded";
+ case 91:
+ return "Request rejected or failed";
+ case 92:
+ return "SOCKS server cannot connect to identd on the client";
+ case 93:
+ return "Client program and identd report different user-ids";
+ default:
+ return "Unknown error";
+ }
+}
+
+/*
+ * Error strings taken almost directly from RFC 1928.
+ */
+static const char *
+socks5_strerror(int e)
+{
+ switch (e) {
+ case 0:
+ return "Succeeded";
+ case 1:
+ return "General SOCKS server failure";
+ case 2:
+ return "Connection not allowed by ruleset";
+ case 3:
+ return "Network unreachable";
+ case 4:
+ return "Host unreachable";
+ case 5:
+ return "Connection refused";
+ case 6:
+ return "TTL expired";
+ case 7:
+ return "Command not supported";
+ case 8:
+ return "Address type not supported";
+ default:
+ return "Unknown error";
+ }
+}
+
+int
+socks_connect(const char *host, const char *port,
+ struct addrinfo hints __attribute__ ((__unused__)),
+ const char *proxyhost, const char *proxyport, struct addrinfo proxyhints,
+ int socksv, const char *proxyuser)
+{
+ int proxyfd, r, authretry = 0;
+ size_t hlen, wlen;
+ unsigned char buf[1024];
+ size_t cnt;
+ struct sockaddr_storage addr;
+ struct sockaddr_in *in4 = (struct sockaddr_in *)&addr;
+ struct sockaddr_in6 *in6 = (struct sockaddr_in6 *)&addr;
+ in_port_t serverport;
+
+ if (proxyport == NULL)
+ proxyport = (socksv == -1) ? HTTP_PROXY_PORT : SOCKS_PORT;
+
+ /* Abuse API to lookup port */
+ if (decode_addrport("0.0.0.0", port, (struct sockaddr *)&addr,
+ sizeof(addr), 1, 1) == -1)
+ errx(1, "unknown port \"%.64s\"", port);
+ serverport = in4->sin_port;
+
+ again:
+ if (authretry++ > 3)
+ errx(1, "Too many authentication failures");
+
+ proxyfd = remote_connect(proxyhost, proxyport, proxyhints, NULL);
+
+ if (proxyfd < 0)
+ return (-1);
+
+ if (socksv == 5) {
+ if (decode_addrport(host, port, (struct sockaddr *)&addr,
+ sizeof(addr), 0, 1) == -1)
+ addr.ss_family = 0; /* used in switch below */
+
+ /* Version 5, one method: no authentication */
+ buf[0] = SOCKS_V5;
+ buf[1] = 1;
+ buf[2] = SOCKS_NOAUTH;
+ cnt = atomicio(vwrite, proxyfd, buf, 3);
+ if (cnt != 3)
+ err(1, "write failed (%zu/3)", (size_t)cnt);
+
+ cnt = atomicio(read, proxyfd, buf, 2);
+ if (cnt != 2)
+ err(1, "read failed (%zu/3)", (size_t)cnt);
+
+ if (buf[1] == SOCKS_NOMETHOD)
+ errx(1, "authentication method negotiation failed");
+
+ switch (addr.ss_family) {
+ case 0:
+ /* Version 5, connect: domain name */
+
+ /* Max domain name length is 255 bytes */
+ hlen = strlen(host);
+ if (hlen > 255)
+ errx(1, "host name too long for SOCKS5");
+ buf[0] = SOCKS_V5;
+ buf[1] = SOCKS_CONNECT;
+ buf[2] = 0;
+ buf[3] = SOCKS_DOMAIN;
+ buf[4] = hlen;
+ memcpy(buf + 5, host, hlen);
+ memcpy(buf + 5 + hlen, &serverport, sizeof serverport);
+ wlen = 7 + hlen;
+ break;
+ case AF_INET:
+ /* Version 5, connect: IPv4 address */
+ buf[0] = SOCKS_V5;
+ buf[1] = SOCKS_CONNECT;
+ buf[2] = 0;
+ buf[3] = SOCKS_IPV4;
+ memcpy(buf + 4, &in4->sin_addr, sizeof in4->sin_addr);
+ memcpy(buf + 8, &in4->sin_port, sizeof in4->sin_port);
+ wlen = 10;
+ break;
+ case AF_INET6:
+ /* Version 5, connect: IPv6 address */
+ buf[0] = SOCKS_V5;
+ buf[1] = SOCKS_CONNECT;
+ buf[2] = 0;
+ buf[3] = SOCKS_IPV6;
+ memcpy(buf + 4, &in6->sin6_addr, sizeof in6->sin6_addr);
+ memcpy(buf + 20, &in6->sin6_port,
+ sizeof in6->sin6_port);
+ wlen = 22;
+ break;
+ default:
+ errx(1, "internal error: silly AF");
+ }
+
+ cnt = atomicio(vwrite, proxyfd, buf, wlen);
+ if (cnt != wlen)
+ err(1, "write failed (%zu/%zu)", (size_t)cnt, (size_t)wlen);
+
+ cnt = atomicio(read, proxyfd, buf, 4);
+ if (cnt != 4)
+ err(1, "read failed (%zu/4)", (size_t)cnt);
+ if (buf[1] != 0) {
+ errx(1, "connection failed, SOCKSv5 error: %s",
+ socks5_strerror(buf[1]));
+ }
+ switch (buf[3]) {
+ case SOCKS_IPV4:
+ cnt = atomicio(read, proxyfd, buf + 4, 6);
+ if (cnt != 6)
+ err(1, "read failed (%zu/6)", (size_t)cnt);
+ break;
+ case SOCKS_IPV6:
+ cnt = atomicio(read, proxyfd, buf + 4, 18);
+ if (cnt != 18)
+ err(1, "read failed (%zu/18)", (size_t)cnt);
+ break;
+ default:
+ errx(1, "connection failed, unsupported address type");
+ }
+ } else if (socksv == 4) {
+ /* This will exit on lookup failure */
+ decode_addrport(host, port, (struct sockaddr *)&addr,
+ sizeof(addr), 1, 0);
+
+ /* Version 4 */
+ buf[0] = SOCKS_V4;
+ buf[1] = SOCKS_CONNECT; /* connect */
+ memcpy(buf + 2, &in4->sin_port, sizeof in4->sin_port);
+ memcpy(buf + 4, &in4->sin_addr, sizeof in4->sin_addr);
+ buf[8] = 0; /* empty username */
+ wlen = 9;
+
+ cnt = atomicio(vwrite, proxyfd, buf, wlen);
+ if (cnt != wlen)
+ err(1, "write failed (%zu/%zu)", (size_t)cnt, (size_t)wlen);
+
+ cnt = atomicio(read, proxyfd, buf, 8);
+ if (cnt != 8)
+ err(1, "read failed (%zu/8)", (size_t)cnt);
+ if (buf[1] != 90) {
+ errx(1, "connection failed, SOCKSv4 error: %s",
+ socks4_strerror(buf[1]));
+ }
+ } else if (socksv == -1) {
+ /* HTTP proxy CONNECT */
+
+ /* Disallow bad chars in hostname */
+ if (strcspn(host, "\r\n\t []:") != strlen(host))
+ errx(1, "Invalid hostname");
+
+ /* Try to be sane about numeric IPv6 addresses */
+ if (strchr(host, ':') != NULL) {
+ r = snprintf((char*)buf, sizeof(buf),
+ "CONNECT [%s]:%d HTTP/1.0\r\n",
+ host, ntohs(serverport));
+ } else {
+ r = snprintf((char*)buf, sizeof(buf),
+ "CONNECT %s:%d HTTP/1.0\r\n",
+ host, ntohs(serverport));
+ }
+ if (r < 0 || (size_t)r >= sizeof(buf))
+ errx(1, "hostname too long");
+ r = strlen((char*)buf);
+
+ cnt = atomicio(vwrite, proxyfd, buf, r);
+ if (cnt != r)
+ err(1, "write failed (%zu/%d)", (size_t)cnt, (int)r);
+
+ if (authretry > 1) {
+ char proxypass[256];
+ char resp[1024];
+
+ getproxypass(proxyuser, proxyhost,
+ proxypass, sizeof proxypass);
+ r = snprintf((char*)buf, sizeof(buf), "%s:%s",
+ proxyuser, proxypass);
+ explicit_bzero(proxypass, sizeof proxypass);
+ if (r == -1 || (size_t)r >= sizeof(buf) ||
+ b64_ntop(buf, strlen((char*)buf), resp,
+ sizeof(resp)) == -1)
+ errx(1, "Proxy username/password too long");
+ r = snprintf((char*)buf, sizeof(buf), "Proxy-Authorization: "
+ "Basic %s\r\n", resp);
+ if (r < 0 || (size_t)r >= sizeof(buf))
+ errx(1, "Proxy auth response too long");
+ r = strlen((char*)buf);
+ if ((cnt = atomicio(vwrite, proxyfd, buf, r)) != r)
+ err(1, "write failed (%zu/%d)", (size_t)cnt, r);
+ explicit_bzero(proxypass, sizeof proxypass);
+ explicit_bzero(buf, sizeof buf);
+ }
+
+ /* Terminate headers */
+ if ((cnt = atomicio(vwrite, proxyfd, "\r\n", 2)) != 2)
+ err(1, "write failed (%zu/2)", cnt);
+
+ /* Read status reply */
+ proxy_read_line(proxyfd, (char*)buf, sizeof(buf));
+ if (proxyuser != NULL &&
+ (strncmp((char*)buf, "HTTP/1.0 407 ", 12) == 0 ||
+ strncmp((char*)buf, "HTTP/1.1 407 ", 12) == 0)) {
+ if (authretry > 1) {
+ fprintf(stderr, "Proxy authentication "
+ "failed\n");
+ }
+ close(proxyfd);
+ goto again;
+ } else if (strncmp((char*)buf, "HTTP/1.0 200 ", 12) != 0 &&
+ strncmp((char*)buf, "HTTP/1.1 200 ", 12) != 0)
+ errx(1, "Proxy error: \"%s\"", buf);
+
+ /* Headers continue until we hit an empty line */
+ for (r = 0; r < HTTP_MAXHDRS; r++) {
+ proxy_read_line(proxyfd, (char*)buf, sizeof(buf));
+ if (*buf == '\0')
+ break;
+ }
+ if (*buf != '\0')
+ errx(1, "Too many proxy headers received");
+ } else
+ errx(1, "Unknown proxy protocol %d", socksv);
+
+ return (proxyfd);
+}
diff --git a/package/netperf/Makefile b/package/netperf/Makefile
index 713cd4b9a..59781944b 100644
--- a/package/netperf/Makefile
+++ b/package/netperf/Makefile
@@ -18,6 +18,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,NETPERF,netperf,${PKG_VERSION}${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CFLAGS+= -fcommon
# uClibc setpgrp does not take arguments
CONFIGURE_ENV+= ac_cv_func_setpgrp_void=yes
diff --git a/package/nfs-utils/Makefile b/package/nfs-utils/Makefile
index fb0982fc7..d2bdba4ba 100644
--- a/package/nfs-utils/Makefile
+++ b/package/nfs-utils/Makefile
@@ -4,13 +4,14 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= nfs-utils
-PKG_VERSION:= 2.3.1
+PKG_VERSION:= 2.6.4
PKG_RELEASE:= 1
-PKG_HASH:= ca92f1ab86b2af4dcd62d7716d46a6cdec268e83fe8d564cd8ff1464cc495989
+PKG_HASH:= c0ae376ac056011ed0954deba2362d7d8193c653b500b68a543aec512cd2ecfa
PKG_DESCR:= network filesystem utilities
PKG_SECTION:= net/fs
-PKG_DEPENDS:= keyutils libtirpc rpcbind
-PKG_BUILDDEP:= keyutils libtirpc
+PKG_DEPENDS:= keyutils libtirpc rpcbind libmount libuuid libevent sqlite
+PKG_DEPENDS+= libncurses libblkid
+PKG_BUILDDEP:= keyutils libtirpc util-linux libevent sqlite ncurses
PKG_KDEPENDS:= nfs-fs
PKG_NEEDS:= threads
PKG_URL:= http://sourceforge.net/projects/nfs
@@ -58,8 +59,7 @@ CONFIGURE_ARGS+= --without-tcp-wrappers \
--with-rpcgen=internal \
--disable-caps \
--enable-tirpc \
- --with-tirpcinclude=${STAGING_TARGET_DIR}/usr/include/tirpc \
- --disable-uuid
+ --with-tirpcinclude=${STAGING_TARGET_DIR}/usr/include/tirpc
nfs-utils-client-install:
${INSTALL_DIR} ${IDIR_NFS_UTILS_CLIENT}/sbin
diff --git a/package/nfs-utils/files/nfsd.exports b/package/nfs-utils/files/nfsd.exports
index 432ebe177..1a9d3ef90 100644
--- a/package/nfs-utils/files/nfsd.exports
+++ b/package/nfs-utils/files/nfsd.exports
@@ -1,6 +1,6 @@
# on embedded devices with MTD you can _only_ export usb disks or sticks
# for nfsv3
-#/media *(ro,no_root_squash,insecure,no_subtree_check,crossmnt)
+#/media *(ro,fsid=0,no_root_squash,insecure,no_subtree_check,crossmnt)
# for nfsv4, do mount --bind /srv/music /nfs4/music and
# set nfs_server_version 4 in /etc/rc.conf
#/nfs4 hostname(rw,sync,fsid=0,crossmnt,no_subtree_check)
diff --git a/package/nfs-utils/patches/patch-support_export_hostname_c b/package/nfs-utils/patches/patch-support_export_hostname_c
deleted file mode 100644
index 731d18fd9..000000000
--- a/package/nfs-utils/patches/patch-support_export_hostname_c
+++ /dev/null
@@ -1,20 +0,0 @@
---- nfs-utils-1.3.4.orig/support/export/hostname.c 2016-08-03 20:25:15.000000000 +0200
-+++ nfs-utils-1.3.4/support/export/hostname.c 2016-10-08 17:55:01.000000000 +0200
-@@ -384,6 +384,7 @@ host_numeric_addrinfo(const struct socka
-
- ai = host_pton(buf);
-
-+#if !definded(__UCLIBC__) && defined(__GLIBC__)
- /*
- * getaddrinfo(AI_NUMERICHOST) never fills in ai_canonname
- */
-@@ -394,7 +395,9 @@ host_numeric_addrinfo(const struct socka
- ai = NULL;
- }
- }
-+#endif
-
- return ai;
- }
-+
- #endif /* !HAVE_GETNAMEINFO */
diff --git a/package/nfs-utils/patches/patch-support_include_conffile_h b/package/nfs-utils/patches/patch-support_include_conffile_h
deleted file mode 100644
index f49b79b38..000000000
--- a/package/nfs-utils/patches/patch-support_include_conffile_h
+++ /dev/null
@@ -1,11 +0,0 @@
---- nfs-utils-2.1.1.orig/support/include/conffile.h 2017-01-12 16:21:39.000000000 +0100
-+++ nfs-utils-2.1.1/support/include/conffile.h 2017-08-12 18:53:54.262608096 +0200
-@@ -33,7 +33,7 @@
- #ifndef _CONFFILE_H_
- #define _CONFFILE_H_
-
--#include <sys/queue.h>
-+#include "queue.h"
- #include <ctype.h>
- #include <stdint.h>
- #include <stdbool.h>
diff --git a/package/nfs-utils/patches/patch-support_reexport_fsidd_c b/package/nfs-utils/patches/patch-support_reexport_fsidd_c
new file mode 100644
index 000000000..562ed4caa
--- /dev/null
+++ b/package/nfs-utils/patches/patch-support_reexport_fsidd_c
@@ -0,0 +1,10 @@
+--- nfs-utils-2.6.4.orig/support/reexport/fsidd.c 2023-11-17 18:32:39.000000000 +0100
++++ nfs-utils-2.6.4/support/reexport/fsidd.c 2024-01-04 13:47:58.231661971 +0100
+@@ -6,6 +6,7 @@
+ #ifdef HAVE_DLFCN_H
+ #include <dlfcn.h>
+ #endif
++#include <unistd.h>
+ #include <event2/event.h>
+
+ #include "conffile.h"
diff --git a/package/nfs-utils/patches/patch-support_reexport_reexport_c b/package/nfs-utils/patches/patch-support_reexport_reexport_c
new file mode 100644
index 000000000..9a491bdaf
--- /dev/null
+++ b/package/nfs-utils/patches/patch-support_reexport_reexport_c
@@ -0,0 +1,10 @@
+--- nfs-utils-2.6.4.orig/support/reexport/reexport.c 2023-11-17 18:32:39.000000000 +0100
++++ nfs-utils-2.6.4/support/reexport/reexport.c 2024-01-04 13:47:43.771377090 +0100
+@@ -5,6 +5,7 @@
+ #ifdef HAVE_DLFCN_H
+ #include <dlfcn.h>
+ #endif
++#include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/vfs.h>
+ #include <errno.h>
diff --git a/package/nfs-utils/patches/patch-tools_Makefile_am b/package/nfs-utils/patches/patch-tools_Makefile_am
deleted file mode 100644
index dda2eeba5..000000000
--- a/package/nfs-utils/patches/patch-tools_Makefile_am
+++ /dev/null
@@ -1,10 +0,0 @@
---- nfs-utils-1.3.0.orig/tools/Makefile.am 2014-03-25 16:12:07.000000000 +0100
-+++ nfs-utils-1.3.0/tools/Makefile.am 2014-05-13 21:09:39.000000000 +0200
-@@ -6,6 +6,6 @@ if CONFIG_RPCGEN
- OPTDIRS += rpcgen
- endif
-
--SUBDIRS = locktest rpcdebug nlmtest mountstats nfs-iostat $(OPTDIRS)
-+SUBDIRS = $(OPTDIRS)
-
- MAINTAINERCLEANFILES = Makefile.in
diff --git a/package/nfs-utils/patches/patch-tools_rpcgen_Makefile_am b/package/nfs-utils/patches/patch-tools_rpcgen_Makefile_am
index 5da9c311e..83e03f263 100644
--- a/package/nfs-utils/patches/patch-tools_rpcgen_Makefile_am
+++ b/package/nfs-utils/patches/patch-tools_rpcgen_Makefile_am
@@ -1,25 +1,13 @@
---- nfs-utils-1.3.0.orig/tools/rpcgen/Makefile.am 2014-03-25 16:12:07.000000000 +0100
-+++ nfs-utils-1.3.0/tools/rpcgen/Makefile.am 2014-05-20 11:40:39.333034278 +0200
-@@ -1,7 +1,9 @@
- ## Process this file with automake to produce Makefile.in
+--- nfs-utils-2.6.4.orig/tools/rpcgen/Makefile.am 2023-11-17 18:32:39.000000000 +0100
++++ nfs-utils-2.6.4/tools/rpcgen/Makefile.am 2024-01-04 13:27:43.388279004 +0100
+@@ -1,5 +1,10 @@
+ CLEANFILES = *~
- CC=$(CC_FOR_BUILD)
--LIBTOOL = @LIBTOOL@ --tag=CC
++CC=$(CC_FOR_BUILD)
+CFLAGS=$(CFLAGS_FOR_BUILD)
+CPPFLAGS=$(CPPFLAGS_FOR_BUILD)
+LDFLAGS=$(LDFLAGS_FOR_BUILD)
++
+ bin_PROGRAMS = rpcgen
+ man_MANS = rpcgen.1
- noinst_PROGRAMS = rpcgen
- rpcgen_SOURCES = rpc_clntout.c rpc_cout.c rpc_hout.c rpc_main.c \
-@@ -9,11 +11,6 @@ rpcgen_SOURCES = rpc_clntout.c rpc_cout.
- rpc_util.c rpc_sample.c rpc_output.h rpc_parse.h \
- rpc_scan.h rpc_util.h
-
--rpcgen_CFLAGS=$(CFLAGS_FOR_BUILD)
--rpcgen_CPPLAGS=$(CPPFLAGS_FOR_BUILD)
--rpcgen_LDFLAGS=$(LDFLAGS_FOR_BUILD)
--rpcgen_LDADD=$(LIBTIRPC)
--
- MAINTAINERCLEANFILES = Makefile.in
-
- EXTRA_DIST = rpcgen.new.1
diff --git a/package/nfs-utils/patches/patch-tools_rpcgen_rpc_cout_c b/package/nfs-utils/patches/patch-tools_rpcgen_rpc_cout_c
deleted file mode 100644
index a94015405..000000000
--- a/package/nfs-utils/patches/patch-tools_rpcgen_rpc_cout_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- nfs-utils-1.2.3.orig/tools/rpcgen/rpc_cout.c 2010-09-28 14:24:16.000000000 +0200
-+++ nfs-utils-1.2.3/tools/rpcgen/rpc_cout.c 2010-12-24 15:51:41.000000000 +0100
-@@ -36,7 +36,6 @@ static char sccsid[] = "@(#)rpc_cout.c 1
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
--#include <malloc.h>
- #include <ctype.h>
- #include "rpc_parse.h"
- #include "rpc_util.h"
diff --git a/package/nfs-utils/patches/patch-tools_rpcgen_rpc_main_c b/package/nfs-utils/patches/patch-tools_rpcgen_rpc_main_c
deleted file mode 100644
index 1d7937005..000000000
--- a/package/nfs-utils/patches/patch-tools_rpcgen_rpc_main_c
+++ /dev/null
@@ -1,38 +0,0 @@
---- nfs-utils-1.3.4.orig/tools/rpcgen/rpc_main.c 2016-08-03 20:25:15.000000000 +0200
-+++ nfs-utils-1.3.4/tools/rpcgen/rpc_main.c 2016-10-08 09:58:39.000000000 +0200
-@@ -156,11 +156,7 @@ int timerflag; /* TRUE if !indefinite &
- int newstyle; /* newstyle of passing arguments (by value) */
- int Cflag = 0 ; /* ANSI C syntax */
- static int allfiles; /* generate all files */
--#ifdef linux
- int tirpcflag = 0; /* no tirpc by default */
--#else
--int tirpcflag = 1; /* generating code for tirpc, by default */
--#endif
-
- int
- main(int argc, char **argv)
-@@ -544,13 +540,8 @@ s_output(int argc, char **argv, char *in
- timerflag = 1;
- }
-
--#ifndef linux
-- if( !tirpcflag && inetdflag )
-- f_print(fout, "#include <sys/ttycom.h>/* TIOCNOTTY */\n");
--#else
- if( !tirpcflag )
- f_print(fout, "#include <sys/ioctl.h>/* TIOCNOTTY */\n");
--#endif
- if( Cflag && (inetdflag || pmflag ) ) {
- f_print(fout, "#ifdef __cplusplus\n");
- f_print(fout, "#include <sysent.h> /* getdtablesize, open */\n");
-@@ -563,9 +554,6 @@ s_output(int argc, char **argv, char *in
- f_print(fout, "#include <sys/types.h>\n");
-
- f_print(fout, "#include <memory.h>\n");
--#ifndef linux
-- f_print(fout, "#include <stropts.h>\n");
--#endif
- if (inetdflag || !tirpcflag ) {
- f_print(fout, "#include <sys/socket.h>\n");
- f_print(fout, "#include <netinet/in.h>\n");
diff --git a/package/nfs-utils/patches/patch-utils_mountd_v4root_c b/package/nfs-utils/patches/patch-utils_mountd_v4root_c
deleted file mode 100644
index bba60a48d..000000000
--- a/package/nfs-utils/patches/patch-utils_mountd_v4root_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- nfs-utils-3e2ab78a2cfbc2d11c31ced8d3f538d5aae757f1.orig/utils/mountd/v4root.c 2016-10-01 21:41:15.000000000 +0200
-+++ nfs-utils-3e2ab78a2cfbc2d11c31ced8d3f538d5aae757f1/utils/mountd/v4root.c 2016-10-02 08:52:21.000000000 +0200
-@@ -13,7 +13,7 @@
-
- #include <sys/types.h>
- #include <sys/stat.h>
--#include <sys/queue.h>
-+#include "queue.h"
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
diff --git a/package/nfs-utils/patches/patch-utils_statd_rmtcall_c b/package/nfs-utils/patches/patch-utils_statd_rmtcall_c
deleted file mode 100644
index 102794697..000000000
--- a/package/nfs-utils/patches/patch-utils_statd_rmtcall_c
+++ /dev/null
@@ -1,13 +0,0 @@
---- nfs-utils-1.3.4.orig/utils/statd/rmtcall.c 2016-08-03 20:25:15.000000000 +0200
-+++ nfs-utils-1.3.4/utils/statd/rmtcall.c 2016-10-08 17:55:10.000000000 +0200
-@@ -93,8 +93,10 @@ statd_get_socket(void)
- __func__);
- break;
- }
-+#if 0
- se = getservbyport(sin.sin_port, "udp");
- if (se == NULL)
-+#endif
- break;
-
- if (retries == MAX_BRP_RETRIES) {
diff --git a/package/nginx/Makefile b/package/nginx/Makefile
index fc43d851d..6a13c1277 100644
--- a/package/nginx/Makefile
+++ b/package/nginx/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= nginx
-PKG_VERSION:= 1.12.0
+PKG_VERSION:= 1.25.3
PKG_RELEASE:= 1
-PKG_HASH:= b4222e26fdb620a8d3c3a3a8b955e08b713672e1bc5198d1e4f462308a795b30
+PKG_HASH:= 64c5b975ca287939e828303fa857d22f142b251f17808dfe41733512d9cded86
PKG_DESCR:= powerful http reverse proxy and webserver
PKG_SECTION:= net/http
PKG_BUILDDEP:= pcre zlib
@@ -47,7 +47,8 @@ CONFIGURE_ARGS:= --prefix=/srv/www \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--http-scgi-temp-path=/var/lib/nginx/uwsgi \
- --http-uwsgi-temp-path=/var/lib/nginx/uwsgi
+ --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
+ --without-http_upstream_zone_module
ifeq ($(ADK_PACKAGE_NGINX_WITH_LIBRESSL),y)
CONFIGURE_ARGS+= --with-http_ssl_module
diff --git a/package/nginx/files/nginx.conf b/package/nginx/files/nginx.conf
index ea11ef025..bc80bef6a 100644
--- a/package/nginx/files/nginx.conf
+++ b/package/nginx/files/nginx.conf
@@ -1,4 +1,5 @@
-worker_processes 1;
+user nginx;
+worker_processes 4;
events {
worker_connections 1024;
@@ -16,7 +17,7 @@ http {
root /srv/www/htdocs;
location ~ \.php$ {
- fastcgi_pass unix:/var/run/php5.sock;
+ fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
diff --git a/package/nginx/files/nginx.postinst b/package/nginx/files/nginx.postinst
index 557ccd181..322e99e06 100644
--- a/package/nginx/files/nginx.postinst
+++ b/package/nginx/files/nginx.postinst
@@ -1,3 +1,6 @@
#!/bin/sh
. $IPKG_INSTROOT/etc/functions.sh
+gid=$(get_next_gid)
+add_user nginx $(get_next_uid) $gid /srv/www
+add_group nginx $gid
add_rcconf nginx NO
diff --git a/package/nginx/patches/patch-auto_cc_conf b/package/nginx/patches/patch-auto_cc_conf
deleted file mode 100644
index 99550ab48..000000000
--- a/package/nginx/patches/patch-auto_cc_conf
+++ /dev/null
@@ -1,28 +0,0 @@
---- nginx-1.9.12.orig/auto/cc/conf 2016-02-24 15:53:23.000000000 +0100
-+++ nginx-1.9.12/auto/cc/conf 2016-03-04 19:56:52.000000000 +0100
-@@ -181,6 +181,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
- ngx_feature="gcc builtin atomic operations"
- ngx_feature_name=NGX_HAVE_GCC_ATOMIC
- ngx_feature_run=yes
-+ ngx_feature_run_force_result="$ngx_force_gcc_have_atomic"
- ngx_feature_incs=
- ngx_feature_path=
- ngx_feature_libs=
-@@ -200,7 +201,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
- else
- ngx_feature="C99 variadic macros"
- ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS"
-- ngx_feature_run=yes
-+ ngx_feature_run=no
- ngx_feature_incs="#include <stdio.h>
- #define var(dummy, ...) sprintf(__VA_ARGS__)"
- ngx_feature_path=
-@@ -214,7 +215,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
-
- ngx_feature="gcc variadic macros"
- ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
-- ngx_feature_run=yes
-+ ngx_feature_run=no
- ngx_feature_incs="#include <stdio.h>
- #define var(dummy, args...) sprintf(args)"
- ngx_feature_path=
diff --git a/package/nginx/patches/patch-auto_os_darwin b/package/nginx/patches/patch-auto_os_darwin
index 456c4a7d3..eb10369e6 100644
--- a/package/nginx/patches/patch-auto_os_darwin
+++ b/package/nginx/patches/patch-auto_os_darwin
@@ -1,6 +1,6 @@
---- nginx-1.9.12.orig/auto/os/darwin 2016-02-24 15:53:23.000000000 +0100
-+++ nginx-1.9.12/auto/os/darwin 2016-03-04 19:56:52.000000000 +0100
-@@ -30,6 +30,7 @@ NGX_KQUEUE_CHECKED=YES
+--- nginx-1.21.3.orig/auto/os/darwin 2021-09-07 17:21:03.000000000 +0200
++++ nginx-1.21.3/auto/os/darwin 2021-10-29 14:50:09.085546624 +0200
+@@ -33,6 +33,7 @@ NGX_KQUEUE_CHECKED=YES
ngx_feature="kqueue's EVFILT_TIMER"
ngx_feature_name="NGX_HAVE_TIMER_EVENT"
ngx_feature_run=yes
@@ -8,7 +8,7 @@
ngx_feature_incs="#include <sys/event.h>
#include <sys/time.h>"
ngx_feature_path=
-@@ -60,6 +61,7 @@ ngx_feature_test="int kq;
+@@ -63,6 +64,7 @@ ngx_feature_test="int kq;
ngx_feature="Darwin 64-bit kqueue millisecond timeout bug"
ngx_feature_name=NGX_DARWIN_KEVENT_BUG
ngx_feature_run=bug
@@ -16,7 +16,7 @@
ngx_feature_incs="#include <sys/event.h>
#include <sys/time.h>"
ngx_feature_path=
-@@ -90,6 +92,7 @@ CC_AUX_FLAGS="$CC_AUX_FLAGS"
+@@ -92,6 +94,7 @@ ngx_feature_test="int kq;
ngx_feature="sendfile()"
ngx_feature_name="NGX_HAVE_SENDFILE"
ngx_feature_run=yes
diff --git a/package/nginx/patches/patch-auto_os_linux b/package/nginx/patches/patch-auto_os_linux
index 0281b2def..0e33cb195 100644
--- a/package/nginx/patches/patch-auto_os_linux
+++ b/package/nginx/patches/patch-auto_os_linux
@@ -1,5 +1,5 @@
---- nginx-1.11.10.orig/auto/os/linux 2017-02-14 16:36:04.000000000 +0100
-+++ nginx-1.11.10/auto/os/linux 2017-03-18 08:19:23.069283778 +0100
+--- nginx-1.21.3.orig/auto/os/linux 2021-09-07 17:21:03.000000000 +0200
++++ nginx-1.21.3/auto/os/linux 2021-10-29 14:50:09.089546624 +0200
@@ -36,7 +36,7 @@ fi
ngx_feature="epoll"
@@ -9,7 +9,7 @@
ngx_feature_incs="#include <sys/epoll.h>"
ngx_feature_path=
ngx_feature_libs=
-@@ -110,7 +110,7 @@ ngx_feature_test="int fd; struct stat sb
+@@ -135,7 +135,7 @@ ngx_feature_test="int fd; struct stat sb
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
ngx_feature="sendfile()"
ngx_feature_name="NGX_HAVE_SENDFILE"
@@ -18,7 +18,7 @@
ngx_feature_incs="#include <sys/sendfile.h>
#include <errno.h>"
ngx_feature_path=
-@@ -131,7 +131,7 @@ fi
+@@ -156,7 +156,7 @@ fi
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
ngx_feature="sendfile64()"
ngx_feature_name="NGX_HAVE_SENDFILE64"
@@ -27,7 +27,7 @@
ngx_feature_incs="#include <sys/sendfile.h>
#include <errno.h>"
ngx_feature_path=
-@@ -149,7 +149,7 @@ ngx_include="sys/prctl.h"; . auto/includ
+@@ -174,7 +174,7 @@ ngx_include="sys/prctl.h"; . auto/includ
ngx_feature="prctl(PR_SET_DUMPABLE)"
ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
@@ -36,8 +36,8 @@
ngx_feature_incs="#include <sys/prctl.h>"
ngx_feature_path=
ngx_feature_libs=
-@@ -170,20 +170,6 @@ ngx_feature_test="cpu_set_t mask;
- sched_setaffinity(0, sizeof(cpu_set_t), &mask)"
+@@ -215,20 +215,6 @@ ngx_feature_test="struct __user_cap_data
+ (void) SYS_capset"
. auto/feature
-
diff --git a/package/nginx/patches/patch-auto_unix b/package/nginx/patches/patch-auto_unix
index ceaf9eb2a..796bd5cc6 100644
--- a/package/nginx/patches/patch-auto_unix
+++ b/package/nginx/patches/patch-auto_unix
@@ -1,56 +1,6 @@
---- nginx-1.11.10.orig/auto/unix 2017-02-14 16:36:04.000000000 +0100
-+++ nginx-1.11.10/auto/unix 2017-03-18 08:19:23.073283934 +0100
-@@ -100,6 +100,7 @@ if test -z "$NGX_KQUEUE_CHECKED"; then
- ngx_feature="kqueue's EVFILT_TIMER"
- ngx_feature_name="NGX_HAVE_TIMER_EVENT"
- ngx_feature_run=yes
-+ ngx_feature_run_force_result="$ngx_force_have_timer_event"
- ngx_feature_incs="#include <sys/event.h>
- #include <sys/time.h>"
- ngx_feature_path=
-@@ -702,6 +703,7 @@ ngx_feature_test="char buf[1]; struct io
- ngx_feature="sys_nerr"
- ngx_feature_name="NGX_SYS_NERR"
- ngx_feature_run=value
-+ngx_feature_run_force_result="$ngx_force_sys_nerr"
- ngx_feature_incs='#include <errno.h>
- #include <stdio.h>'
- ngx_feature_path=
-@@ -716,6 +718,7 @@ if [ $ngx_found = no ]; then
- ngx_feature="_sys_nerr"
- ngx_feature_name="NGX_SYS_NERR"
- ngx_feature_run=value
-+ ngx_feature_run_force_result="$ngx_force_sys_nerr"
- ngx_feature_incs='#include <errno.h>
- #include <stdio.h>'
- ngx_feature_path=
-@@ -731,6 +734,7 @@ if [ $ngx_found = no ]; then
- ngx_feature='maximum errno'
- ngx_feature_name=NGX_SYS_NERR
- ngx_feature_run=value
-+ ngx_feature_run_force_result="$ngx_force_sys_nerr"
- ngx_feature_incs='#include <errno.h>
- #include <string.h>
- #include <stdio.h>'
-@@ -788,7 +792,7 @@ ngx_feature_test="void *p; p = memalign(
-
- ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
- ngx_feature_name="NGX_HAVE_MAP_ANON"
--ngx_feature_run=yes
-+ngx_feature_run=no
- ngx_feature_incs="#include <sys/mman.h>"
- ngx_feature_path=
- ngx_feature_libs=
-@@ -801,7 +805,7 @@ ngx_feature_test="void *p;
-
- ngx_feature='mmap("/dev/zero", MAP_SHARED)'
- ngx_feature_name="NGX_HAVE_MAP_DEVZERO"
--ngx_feature_run=yes
-+ngx_feature_run=no
- ngx_feature_incs="#include <sys/mman.h>
- #include <sys/stat.h>
- #include <fcntl.h>"
-@@ -816,7 +820,7 @@ ngx_feature_test='void *p; int fd;
+--- nginx-1.21.3.orig/auto/unix 2021-09-07 17:21:03.000000000 +0200
++++ nginx-1.21.3/auto/unix 2021-10-29 14:54:32.249555992 +0200
+@@ -833,7 +833,7 @@ ngx_feature_test='void *p; int fd;
ngx_feature="System V shared memory"
ngx_feature_name="NGX_HAVE_SYSVSHM"
@@ -59,7 +9,7 @@
ngx_feature_incs="#include <sys/ipc.h>
#include <sys/shm.h>"
ngx_feature_path=
-@@ -830,7 +834,7 @@ ngx_feature_test="int id;
+@@ -847,7 +847,7 @@ ngx_feature_test="int id;
ngx_feature="POSIX semaphores"
ngx_feature_name="NGX_HAVE_POSIX_SEM"
diff --git a/package/nginx/patches/patch-src_os_unix_ngx_errno_c b/package/nginx/patches/patch-src_os_unix_ngx_errno_c
index 70020937a..fc9142273 100644
--- a/package/nginx/patches/patch-src_os_unix_ngx_errno_c
+++ b/package/nginx/patches/patch-src_os_unix_ngx_errno_c
@@ -1,5 +1,5 @@
---- nginx-1.2.2.orig/src/os/unix/ngx_errno.c 2012-07-02 18:51:02.000000000 +0200
-+++ nginx-1.2.2/src/os/unix/ngx_errno.c 2012-07-16 09:32:48.000000000 +0200
+--- nginx-1.21.3.orig/src/os/unix/ngx_errno.c 2021-09-07 17:21:03.000000000 +0200
++++ nginx-1.21.3/src/os/unix/ngx_errno.c 2021-10-29 14:50:09.101546624 +0200
@@ -8,6 +8,9 @@
#include <ngx_config.h>
#include <ngx_core.h>
@@ -8,5 +8,5 @@
+#define NGX_SYS_NERR 128
+#endif
- /*
- * The strerror() messages are copied because:
+ static ngx_str_t ngx_unknown_error = ngx_string("Unknown error");
+
diff --git a/package/ninja/patches/patch-configure_py b/package/ninja/patches/patch-configure_py
new file mode 100644
index 000000000..cb743c891
--- /dev/null
+++ b/package/ninja/patches/patch-configure_py
@@ -0,0 +1,8 @@
+--- ninja-1.8.2.orig/configure.py 2017-09-11 03:20:10.000000000 +0200
++++ ninja-1.8.2/configure.py 2021-09-21 11:39:51.729841404 +0200
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # Copyright 2001 Google Inc. All Rights Reserved.
+ #
diff --git a/package/nmap/Makefile b/package/nmap/Makefile
index eb6f34892..d8164a379 100644
--- a/package/nmap/Makefile
+++ b/package/nmap/Makefile
@@ -4,13 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= nmap
-PKG_VERSION:= 7.40
+PKG_VERSION:= 7.92
PKG_RELEASE:= 1
-PKG_HASH:= 9e14665fffd054554d129d62c13ad95a7b5c7a046daa2290501909e65f4d3188
+PKG_HASH:= a5479f2f8a6b0b2516767d2f7189c386c1dc858d997167d7ec5cfc798c7571a1
PKG_DESCR:= utility for network exploration or security auditing
PKG_SECTION:= net/security
-PKG_DEPENDS:= libdnet libpcap libpcre
-PKG_BUILDDEP:= libdnet libpcap pcre
+PKG_DEPENDS:= libdnet libpcap libpcre zlib
+PKG_BUILDDEP:= libdnet libpcap pcre zlib
PKG_NEEDS:= c++
PKG_URL:= http://nmap.org/
PKG_SITES:= http://download.insecure.org/nmap/dist/
@@ -26,16 +26,18 @@ TARGET_LDFLAGS+= -lpthread
CONFIGURE_ENV+= ac_cv_dnet_bsd_bpf=no
CONFIGURE_ARGS+= --without-openssl \
--without-zenmap \
+ --without-nping \
--without-ndiff \
--without-liblua \
--with-libpcap="${STAGING_TARGET_DIR}/usr" \
--with-libpcre="${STAGING_TARGET_DIR}/usr" \
+ --with-zlib="${STAGING_TARGET_DIR}/usr" \
--enable-static
nmap-install:
${INSTALL_DIR} ${IDIR_NMAP}/usr/share/nmap
${INSTALL_DIR} ${IDIR_NMAP}/usr/bin
- for file in mac-prefixes os-db protocols rpc service-probes services; do \
+ for file in payloads mac-prefixes os-db protocols rpc service-probes services; do \
${CP} ${WRKINST}/usr/share/nmap/nmap-$$file ${IDIR_NMAP}/usr/share/nmap; \
done
${INSTALL_BIN} ${WRKINST}/usr/bin/nmap ${IDIR_NMAP}/usr/bin/
diff --git a/package/nodejs/Makefile b/package/nodejs/Makefile
index a3747b04f..02627aa6a 100644
--- a/package/nodejs/Makefile
+++ b/package/nodejs/Makefile
@@ -4,19 +4,17 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= nodejs
-PKG_VERSION:= 8.2.1
+PKG_VERSION:= 20.11.1
PKG_RELEASE:= 1
-PKG_HASH:= 66fe1379bc7daf9a16c6b5c45ab695bf1cdcfae9738d2989e940104d6b31973f
+PKG_HASH:= 4af1ba6ea848cc05908b8a62b02fb27684dd52b2a7988ee82b0cfa72deb90b94
PKG_DESCR:= asynchronous event driven framework
PKG_SECTION:= net/http
PKG_DEPENDS:= zlib
-PKG_BUILDDEP:= python2-host nodejs-host zlib
+PKG_BUILDDEP:= python3-host nodejs-host zlib
PKG_NEEDS:= threads c++
PKG_URL:= https://nodejs.org/
PKG_SITES:= https://nodejs.org/dist/v$(PKG_VERSION)/
-PKG_SYSTEM_DEPENDS:= !mikrotik-rb532
-
DISTFILES:= node-v$(PKG_VERSION).tar.gz
WRKDIST= $(WRKDIR)/node-v$(PKG_VERSION)
@@ -26,17 +24,16 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call HOST_template,NODEJS,nodejs,$(PKG_VERSION)-$(PKG_RELEASE)))
$(eval $(call PKG_template,NODEJS,nodejs,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+HOST_CFLAGS:=
+HOST_CXXFLAGS:=
HOST_STYLE:= manual
CONFIG_STYLE:= manual
host-configure:
(cd $(WRKSRC); \
- PYTHON=$(STAGING_HOST_DIR)/usr/bin/python2 \
- $(STAGING_HOST_DIR)/usr/bin/python2 ./configure \
+ PYTHON=$(STAGING_HOST_DIR)/usr/bin/python3 \
+ $(STAGING_HOST_DIR)/usr/bin/python3 ./configure \
--prefix=/usr \
- --without-snapshot \
- --without-dtrace \
- --without-etw \
--without-intl \
--shared-zlib \
)
@@ -48,21 +45,20 @@ host-build:
nodejs-hostinstall:
cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
${HOST_FAKE_FLAGS} DESTDIR='${STAGING_HOST_DIR}' ${HOST_INSTALL_TARGET} $(MAKE_TRACE)
- $(INSTALL_BIN) ${WRKBUILD}/out/Release/mkpeephole ${STAGING_HOST_DIR}/usr/bin
+ $(INSTALL_BIN) ${WRKBUILD}/out/Release/node_js2c ${STAGING_HOST_DIR}/usr/bin
+ $(INSTALL_BIN) ${WRKBUILD}/out/Release/bytecode_builtins_list_generator ${STAGING_HOST_DIR}/usr/bin
+ $(INSTALL_BIN) ${WRKBUILD}/out/Release/torque ${STAGING_HOST_DIR}/usr/bin
do-configure:
(cd $(WRKSRC); \
- PYTHON=$(STAGING_HOST_DIR)/usr/bin/python2 \
- $(STAGING_HOST_DIR)/usr/bin/python2 ./configure \
+ PYTHON=$(STAGING_HOST_DIR)/usr/bin/python3 \
+ $(STAGING_HOST_DIR)/usr/bin/python3 ./configure \
--prefix=/usr \
--cross-compiling \
- --without-snapshot \
- --without-dtrace \
- --without-etw \
--without-intl \
--shared-zlib \
)
- $(SED) "s#<(mkpeephole_exec)#$(STAGING_HOST_DIR)/usr/bin/mkpeephole#g" $(WRKSRC)/deps/v8/src/v8.gyp
+# $(SED) "s#<(mkpeephole_exec)#$(STAGING_HOST_DIR)/usr/bin/mkpeephole#g" $(WRKSRC)/deps/v8/src/v8.gyp
nodejs-install:
$(INSTALL_DIR) $(IDIR_NODEJS)/usr/lib
diff --git a/package/nodejs/patches/patch-deps_v8_src_base_debug_stack_trace_posix_cc b/package/nodejs/patches/patch-deps_v8_src_base_debug_stack_trace_posix_cc
deleted file mode 100644
index 433613981..000000000
--- a/package/nodejs/patches/patch-deps_v8_src_base_debug_stack_trace_posix_cc
+++ /dev/null
@@ -1,11 +0,0 @@
---- node-v8.0.0.orig/deps/v8/src/base/debug/stack_trace_posix.cc 2017-05-30 19:31:35.000000000 +0200
-+++ node-v8.0.0/deps/v8/src/base/debug/stack_trace_posix.cc 2017-06-01 13:30:13.141625623 +0200
-@@ -25,7 +25,7 @@
- #include <string>
- #include <vector>
-
--#if V8_LIBC_GLIBC || V8_LIBC_BSD || V8_LIBC_UCLIBC || V8_OS_SOLARIS
-+#if V8_LIBC_GLIBC || V8_LIBC_BSD || V8_OS_SOLARIS
- #define HAVE_EXECINFO_H 1
- #endif
-
diff --git a/package/nodejs/patches/patch-deps_v8_src_log-utils_h b/package/nodejs/patches/patch-deps_v8_src_log-utils_h
deleted file mode 100644
index 4447e6403..000000000
--- a/package/nodejs/patches/patch-deps_v8_src_log-utils_h
+++ /dev/null
@@ -1,11 +0,0 @@
---- node-v8.0.0.orig/deps/v8/src/log-utils.h 2017-05-30 19:31:39.000000000 +0200
-+++ node-v8.0.0/deps/v8/src/log-utils.h 2017-06-01 13:28:54.580576740 +0200
-@@ -9,6 +9,8 @@
-
- #include <cstdarg>
-
-+#include <cstdarg>
-+
- #include "src/allocation.h"
- #include "src/base/compiler-specific.h"
- #include "src/base/platform/mutex.h"
diff --git a/package/nut/Makefile b/package/nut/Makefile
index e44867f7f..c77daf708 100644
--- a/package/nut/Makefile
+++ b/package/nut/Makefile
@@ -4,13 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= nut
-PKG_VERSION:= 2.7.3
+PKG_VERSION:= 2.8.1
PKG_RELEASE:= 1
-PKG_HASH:= ff44d95d06a51559a0a018eef7f8d17911c1002b6352a7d7580ff75acb12126b
+PKG_HASH:= 7da48ee23b1f0d8d72560bb0af84f5c5ae4dbe35452b84cb49840132e47f099c
PKG_DESCR:= network ups tools
PKG_SECTION:= net/misc
PKG_URL:= http://www.networkupstools.org/
-PKG_SITES:= http://www.networkupstools.org/source/2.7/
+PKG_SITES:= http://www.networkupstools.org/source/2.8/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
diff --git a/package/olsrd/Makefile b/package/olsrd/Makefile
index fb79c412f..c940d7ac3 100644
--- a/package/olsrd/Makefile
+++ b/package/olsrd/Makefile
@@ -4,16 +4,17 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= olsrd
-PKG_VERSION:= 0.9.0.3
+PKG_VERSION:= 0.9.8
PKG_RELEASE:= 1
-PKG_HASH:= 59d37570c58ec25636a71d5a7cf4460448be693f01d768ae369a7f66e58077fb
+PKG_HASH:= ee9e524224e5d5304dcf61f1dc5485c569da09d382934ff85b233be3e24821a3
PKG_DESCR:= optimized link state routing protocol daemon
PKG_SECTION:= net/wifi
-PKG_URL:= http://www.olsr.org/
-PKG_SITES:= http://www.olsr.org/releases/0.9/
+PKG_BUILDDEP:= gpsd
+PKG_DEPENDS:= gpsd
+PKG_SITES:= https://github.com/OLSR/olsrd/archive/refs/tags/
PKG_NOPARALLEL:= 1
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+DISTFILES:= v${PKG_VERSION}.tar.gz
PKG_SUBPKGS:= OLSRD OLSRD_MOD_DYN_GW OLSRD_MOD_HTTPINFO
PKG_SUBPKGS+= OLSRD_MOD_NAMESERVICE OLSRD_MOD_TAS
@@ -53,7 +54,7 @@ CONFIG_STYLE:= manual
TARGET_CFLAGS+= -fPIC -D_GNU_SOURCE
ALL_TARGET+= libs
INSTALL_TARGET+= install_libs
-MAKE_ENV+= OS="linux" DEBUG=0 STRIP="true" OFLAGS="${TARGET_CFLAGS}" prefix="/usr"
+MAKE_ENV+= OS="linux" DEBUG=0 STRIP="true" VERBOSE=1 OFLAGS="${TARGET_CFLAGS}" prefix="/usr"
post-install: ${INSTALL_MODS_y} ${INSTALL_MODS_m}
${INSTALL_DIR} ${IDIR_OLSRD}/usr/sbin ${IDIR_OLSRD}/etc/olsrd
diff --git a/package/olsrd/patches/patch-lib_pud_Makefile b/package/olsrd/patches/patch-lib_pud_Makefile
new file mode 100644
index 000000000..1367cac08
--- /dev/null
+++ b/package/olsrd/patches/patch-lib_pud_Makefile
@@ -0,0 +1,11 @@
+--- olsrd-0.9.8.orig/lib/pud/Makefile 2019-08-11 10:09:47.000000000 +0200
++++ olsrd-0.9.8/lib/pud/Makefile 2024-02-29 11:26:30.299243074 +0100
+@@ -108,7 +108,7 @@ endif
+
+ default_target: nmealib library $(PLUGIN_FULLNAME)
+
+-$(PLUGIN_FULLNAME): $(OBJS) version-script.txt
++$(PLUGIN_FULLNAME): $(OBJS) version-script.txt nmealib
+ ifeq ($(PUD_NMEALIB_STATICALLY_LINKED),)
+ ifeq ($(VERBOSE),0)
+ @echo "[LD] $@ (nmealib dynamically linked)"
diff --git a/package/olsrd/patches/patch-lib_pud_src_gpsdclient_c b/package/olsrd/patches/patch-lib_pud_src_gpsdclient_c
new file mode 100644
index 000000000..fc71997fc
--- /dev/null
+++ b/package/olsrd/patches/patch-lib_pud_src_gpsdclient_c
@@ -0,0 +1,98 @@
+--- olsrd-0.9.8.orig/lib/pud/src/gpsdclient.c 2019-08-11 10:09:47.000000000 +0200
++++ olsrd-0.9.8/lib/pud/src/gpsdclient.c 2024-02-29 11:26:48.195242832 +0100
+@@ -79,6 +79,23 @@ static void gpsdError(const char *s) {
+ syslog(LOG_ERR, "gpsd error: %s", s);
+ }
+
++#if GPSD_API_MAJOR_VERSION >= 9
++static double time_as_double(struct timespec *ts) {
++ return (ts->tv_sec + ts->tv_nsec * 1e-9);
++}
++
++static bool is_online(struct gps_data_t *gpsdata) {
++ return !!gpsdata->online.tv_sec;
++}
++#else
++
++#define time_as_double(x) *(x)
++
++static bool is_online(struct gps_data_t *gpsdata) {
++ return !!gpsdata->online;
++}
++#endif
++
+ /* standard parsing of a GPS data source spec */
+ void gpsdParseSourceSpec(char *arg, GpsDaemon *gpsDaemon) {
+ if (!arg //
+@@ -298,8 +315,8 @@ void nmeaInfoFromGpsd(struct gps_data_t
+ 8, //
+ dev->parity, //
+ dev->stopbits, //
+- dev->cycle, //
+- dev->mincycle);
++ time_as_double(&dev->cycle), //
++ time_as_double(&dev->mincycle));
+
+ connectionTracking->devSeen[i] = true;
+ connectionTracking->dev[i] = *dev;
+@@ -353,11 +370,6 @@ void nmeaInfoFromGpsd(struct gps_data_t
+ );
+
+ gpsdata->set &= ~STATUS_SET; /* always valid */
+- if (gpsdata->status == STATUS_NO_FIX) {
+- nmeaInfoClear(info);
+- nmeaTimeSet(&info->utc, &info->present, NULL);
+- return;
+- }
+
+ if (!gpsdata->set) {
+ return;
+@@ -367,11 +379,18 @@ void nmeaInfoFromGpsd(struct gps_data_t
+ nmeaInfoSetPresent(&info->present, NMEALIB_PRESENT_SMASK);
+
+ /* date & time */
++#if GPSD_API_MAJOR_VERSION >= 9
++ if (gpsdata->fix.time.tv_sec > 0) {
++ struct tm *time = gmtime(&gpsdata->fix.time.tv_sec);
++ unsigned int hsec = (unsigned int) (gpsdata->fix.time.tv_nsec / 10000000);
++#else
+ if (!isNaN(gpsdata->fix.time)) {
+ double seconds;
+ double fraction = modf(fabs(gpsdata->fix.time), &seconds);
+ long sec = lrint(seconds);
+ struct tm *time = gmtime(&sec);
++ unsigned int hsec = (unsigned int) lrint(fraction * 100);
++#endif
+ if (time) {
+ info->utc.year = (unsigned int) time->tm_year + 1900;
+ info->utc.mon = (unsigned int) time->tm_mon + 1;
+@@ -379,7 +398,7 @@ void nmeaInfoFromGpsd(struct gps_data_t
+ info->utc.hour = (unsigned int) time->tm_hour;
+ info->utc.min = (unsigned int) time->tm_min;
+ info->utc.sec = (unsigned int) time->tm_sec;
+- info->utc.hsec = (unsigned int) lrint(fraction * 100);
++ info->utc.hsec = hsec;
+
+ nmeaInfoSetPresent(&info->present, NMEALIB_PRESENT_UTCDATE | NMEALIB_PRESENT_UTCTIME);
+ }
+@@ -387,7 +406,7 @@ void nmeaInfoFromGpsd(struct gps_data_t
+ gpsdata->set &= ~TIME_SET;
+
+ /* sig & fix */
+- if (!gpsdata->online) {
++ if (!is_online(gpsdata)) {
+ gpsdata->fix.mode = MODE_NO_FIX;
+ }
+
+@@ -454,7 +473,11 @@ void nmeaInfoFromGpsd(struct gps_data_t
+ if ((gpsdata->fix.mode >= MODE_3D) //
+ && !isNaN(gpsdata->fix.altitude)) {
+ info->elevation = gpsdata->fix.altitude;
++#if GPSD_API_MAJOR_VERSION >= 9
++ info->height = gpsdata->fix.geoid_sep;
++#else
+ info->height = gpsdata->separation;
++#endif
+ nmeaInfoSetPresent(&info->present, NMEALIB_PRESENT_ELV | NMEALIB_PRESENT_HEIGHT);
+ }
+ gpsdata->set &= ~ALTITUDE_SET;
diff --git a/package/olsrd/patches/patch-lib_pud_src_gpsdclient_h b/package/olsrd/patches/patch-lib_pud_src_gpsdclient_h
new file mode 100644
index 000000000..635f97740
--- /dev/null
+++ b/package/olsrd/patches/patch-lib_pud_src_gpsdclient_h
@@ -0,0 +1,16 @@
+--- olsrd-0.9.8.orig/lib/pud/src/gpsdclient.h 2019-08-11 10:09:47.000000000 +0200
++++ olsrd-0.9.8/lib/pud/src/gpsdclient.h 2024-02-29 11:24:18.019244869 +0100
+@@ -60,13 +60,6 @@ struct GpsdConnectionState {
+ struct devconfig_t dev[MAXUSERDEVS];
+ };
+
+-/* describe a data source */
+-struct fixsource_t {
+- char spec[PATH_MAX]; /* working space, will be modified */
+- char *server; /* pointer into spec field */
+- char *port; /* pointer into spec field */
+- char *device; /* pointer into spec field */
+-};
+
+ /**
+ * The gpsd daemon spec
diff --git a/package/olsrd/patches/patch-src_cfgparser_local_mk b/package/olsrd/patches/patch-src_cfgparser_local_mk
new file mode 100644
index 000000000..4ef666d99
--- /dev/null
+++ b/package/olsrd/patches/patch-src_cfgparser_local_mk
@@ -0,0 +1,17 @@
+--- olsrd-0.9.8.orig/src/cfgparser/local.mk 2019-08-11 10:09:47.000000000 +0200
++++ olsrd-0.9.8/src/cfgparser/local.mk 2024-02-29 09:47:24.131323729 +0100
+@@ -74,12 +74,8 @@ $(C)oparse.c: $(C)oparse.y $(C)olsrd_con
+ ifeq ($(VERBOSE),0)
+ @echo "[BISON] $@"
+ endif
+- $(MAKECMDPREFIX)$(BISON) -d -o "$@-tmp" "$<"
+- $(MAKECMDPREFIX)sed -e 's/register //' \
+- -e '/^#line/s/$(call quote,$@-tmp)/$(call quote,$@)/' \
+- < "$@-tmp" >"$@"
+- $(MAKECMDPREFIX)mv "$(subst .c,.h,$@-tmp)" "$(subst .c,.h,$@)"
+- $(MAKECMDPREFIX)$(RM) "$@-tmp" "$(subst .c,.h,$@-tmp)"
++ $(MAKECMDPREFIX)$(BISON) -d -o "$@" "$<"
++ $(MAKECMDPREFIX)sed -e 's/register //' "$@" > "$@.o" && mv "$@.o" "$@"
+
+ $(C)oparse.o: CFLAGS := $(filter-out -Wunreachable-code,$(CFLAGS))
+
diff --git a/package/open-iscsi/Makefile b/package/open-iscsi/Makefile
index 5afb377bc..f33b52f1f 100644
--- a/package/open-iscsi/Makefile
+++ b/package/open-iscsi/Makefile
@@ -4,30 +4,34 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= open-iscsi
-PKG_VERSION:= 2.0
-PKG_EXTRAVER:= 871
+PKG_VERSION:= 2.1.9
PKG_RELEASE:= 1
-PKG_HASH:= bcea8746ae82f2ada7bc05d2aa59bcda1ca0d5197f05f2e16744aae59f0a7dcb
+PKG_HASH:= 60e2a1e3058a8af7f702e86a5a0511b05b8754d29d3d2df4e0e301399b5cf70a
PKG_DESCR:= iscsi utilities
+PKG_DEPENDS:= libkmod libressl
+PKG_BUILDDEP:= cmake-host kmod libressl
PKG_SECTION:= sys/fs
-PKG_URL:= http://www.open-iscsi.org/
-PKG_SITES:= http://www.open-iscsi.org/bits/
+PKG_SITES:= https://github.com/open-iscsi/open-iscsi/archive/refs/tags/
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION)-$(PKG_EXTRAVER).tar.gz
-WRKDIST= ${WRKDIR}/${PKG_NAME}-${PKG_VERSION}-${PKG_EXTRAVER}
+DISTFILES:= $(PKG_VERSION).tar.gz
+#WRKDIST= ${WRKDIR}/${PKG_NAME}-${PKG_VERSION}-${PKG_EXTRAVER}
include $(ADK_TOPDIR)/mk/package.mk
-ALL_TARGET:= user
-INSTALL_TARGET:= install_user
-
$(eval $(call PKG_template,OPEN_ISCSI,open-iscsi,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-CONFIG_STYLE:= manual
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+MESON_FLAGS+= -Dno_systemd=true \
+ -Disns=disabled
open-iscsi-install:
- $(INSTALL_DIR) $(IDIR_OPEN_ISCSI)/sbin $(IDIR_OPEN_ISCSI)/etc/iscsi
- $(INSTALL_BIN) $(WRKINST)/sbin/* $(IDIR_OPEN_ISCSI)/sbin
+ $(INSTALL_DIR) $(IDIR_OPEN_ISCSI)/usr/sbin $(IDIR_OPEN_ISCSI)/etc/iscsi
+ $(INSTALL_BIN) $(WRKINST)/usr/sbin/* $(IDIR_OPEN_ISCSI)/usr/sbin
$(CP) $(WRKINST)/etc/iscsi/* $(IDIR_OPEN_ISCSI)/etc/iscsi
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/open-iscsi/patches/patch-usr_Makefile b/package/open-iscsi/patches/patch-usr_Makefile
deleted file mode 100644
index af7106fd8..000000000
--- a/package/open-iscsi/patches/patch-usr_Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
---- open-iscsi-2.0-871.orig/usr/Makefile 2009-07-11 05:55:58.000000000 +0200
-+++ open-iscsi-2.0-871/usr/Makefile 2010-11-22 23:23:09.000000000 +0100
-@@ -1,6 +1,6 @@
- # This Makefile will work only with GNU make.
-
--OSNAME=$(shell uname -s)
-+OSNAME=Linux
-
- # allow users to override these
- # eg to compile for a kernel that you aren't currently running
-@@ -55,7 +55,7 @@ iscsiadm: $(COMMON_SRCS) $(FW_BOOT_SRCS)
-
- iscsistart: $(IPC_OBJ) $(ISCSI_LIB_SRCS) $(INITIATOR_SRCS) $(FW_BOOT_SRCS) \
- iscsistart.o statics.o
-- $(CC) $(CFLAGS) -static $^ -o $@
-+ $(CC) $(CFLAGS) $^ -o $@
- clean:
- rm -f *.o $(PROGRAMS) .depend $(LIBSYS)
-
diff --git a/package/open-iscsi/patches/patch-usr_idbm_c b/package/open-iscsi/patches/patch-usr_idbm_c
deleted file mode 100644
index 38838c9a1..000000000
--- a/package/open-iscsi/patches/patch-usr_idbm_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- open-iscsi-2.0-871.orig/usr/idbm.c 2009-07-11 05:55:58.000000000 +0200
-+++ open-iscsi-2.0-871/usr/idbm.c 2014-01-03 12:44:20.000000000 +0100
-@@ -29,6 +29,7 @@
- #include <limits.h>
- #include <sys/stat.h>
- #include <sys/file.h>
-+#include <fcntl.h>
-
- #include "idbm.h"
- #include "idbm_fields.h"
diff --git a/package/open-iscsi/patches/patch-usr_iscsi_sysfs_c b/package/open-iscsi/patches/patch-usr_iscsi_sysfs_c
deleted file mode 100644
index 42f5d0330..000000000
--- a/package/open-iscsi/patches/patch-usr_iscsi_sysfs_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- open-iscsi-2.0-871.orig/usr/iscsi_sysfs.c 2009-07-11 05:55:58.000000000 +0200
-+++ open-iscsi-2.0-871/usr/iscsi_sysfs.c 2010-11-22 23:16:35.000000000 +0100
-@@ -22,6 +22,7 @@
- #include <string.h>
- #include <errno.h>
- #include <dirent.h>
-+#include <sys/stat.h>
-
- #include "log.h"
- #include "initiator.h"
diff --git a/package/open-iscsi/patches/patch-usr_log_h b/package/open-iscsi/patches/patch-usr_log_h
deleted file mode 100644
index f4a5f9431..000000000
--- a/package/open-iscsi/patches/patch-usr_log_h
+++ /dev/null
@@ -1,17 +0,0 @@
---- open-iscsi-2.0-871.orig/usr/log.h 2009-07-11 05:55:58.000000000 +0200
-+++ open-iscsi-2.0-871/usr/log.h 2010-11-22 22:45:22.000000000 +0100
-@@ -28,14 +28,12 @@
-
- #include "iscsid.h"
-
--#if defined(Linux)
- union semun {
- int val;
- struct semid_ds *buf;
- unsigned short int *array;
- struct seminfo *__buf;
- };
--#endif
- #include <sys/sem.h>
-
- #define DEFAULT_AREA_SIZE 16384
diff --git a/package/open-iscsi/patches/patch-usr_mgmt_ipc_c b/package/open-iscsi/patches/patch-usr_mgmt_ipc_c
deleted file mode 100644
index d1d936e0f..000000000
--- a/package/open-iscsi/patches/patch-usr_mgmt_ipc_c
+++ /dev/null
@@ -1,35 +0,0 @@
---- open-iscsi-2.0-871.orig/usr/mgmt_ipc.c 2009-07-11 05:55:58.000000000 +0200
-+++ open-iscsi-2.0-871/usr/mgmt_ipc.c 2014-01-03 12:35:32.000000000 +0100
-@@ -341,31 +341,7 @@ mgmt_ipc_notify_del_portal(queue_task_t
- static int
- mgmt_peeruser(int sock, char *user)
- {
--#if defined(SO_PEERCRED)
-- /* Linux style: use getsockopt(SO_PEERCRED) */
-- struct ucred peercred;
-- socklen_t so_len = sizeof(peercred);
-- struct passwd *pass;
--
-- errno = 0;
-- if (getsockopt(sock, SOL_SOCKET, SO_PEERCRED, &peercred,
-- &so_len) != 0 || so_len != sizeof(peercred)) {
-- /* We didn't get a valid credentials struct. */
-- log_error("peeruser_unux: error receiving credentials: %m");
-- return 0;
-- }
--
-- pass = getpwuid(peercred.uid);
-- if (pass == NULL) {
-- log_error("peeruser_unix: unknown local user with uid %d",
-- (int) peercred.uid);
-- return 0;
-- }
--
-- strlcpy(user, pass->pw_name, PEERUSER_MAX);
-- return 1;
--
--#elif defined(SCM_CREDS)
-+#if defined(SCM_CREDS)
- struct msghdr msg;
- typedef struct cmsgcred Cred;
- #define cruid cmcred_uid
diff --git a/package/openldap/Makefile b/package/openldap/Makefile
index 34c6a6642..2471893d1 100644
--- a/package/openldap/Makefile
+++ b/package/openldap/Makefile
@@ -4,16 +4,16 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= openldap
-PKG_VERSION:= 2.4.45
+PKG_VERSION:= 2.6.0
PKG_RELEASE:= 1
-PKG_HASH:= cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824
+PKG_HASH:= b71c580eac573e9aba15d95f33dd4dd08f2ed4f0d7fc09e08ad4be7ed1e41a4f
PKG_DESCR:= ldap client libraries
PKG_SECTION:= libs/misc
PKG_DEPENDS:= libsasl2 libdb libuuid libncurses libressl
PKG_BUILDDEP:= cyrus-sasl db util-linux libressl
PKG_NEEDS:= threads c++
PKG_URL:= http://www.openldap.org/
-PKG_SITES:= ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/
+PKG_SITES:= https://openldap.org/software/download/OpenLDAP/openldap-release/
PKG_LIBNAME:= libopenldap
PKG_OPTS:= dev
diff --git a/package/openldap/patches/patch-libraries_libldap_tls_o_c b/package/openldap/patches/patch-libraries_libldap_tls_o_c
deleted file mode 100644
index f620c03f6..000000000
--- a/package/openldap/patches/patch-libraries_libldap_tls_o_c
+++ /dev/null
@@ -1,67 +0,0 @@
-Patch from Macports:
-https://trac.macports.org/ticket/54275
---- openldap-2.4.45.orig/libraries/libldap/tls_o.c 2017-06-01 22:01:07.000000000 +0200
-+++ openldap-2.4.45/libraries/libldap/tls_o.c 2017-10-08 19:45:58.513865858 +0200
-@@ -47,7 +47,7 @@
- #include <ssl.h>
- #endif
-
--#if OPENSSL_VERSION_NUMBER >= 0x10100000
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000 && !defined(LIBRESSL_VERSION_NUMBER)
- #define ASN1_STRING_data(x) ASN1_STRING_get0_data(x)
- #endif
-
-@@ -157,7 +157,7 @@ tlso_init( void )
- (void) tlso_seed_PRNG( lo->ldo_tls_randfile );
- #endif
-
--#if OPENSSL_VERSION_NUMBER < 0x10100000
-+#if (OPENSSL_VERSION_NUMBER < 0x10100000) || defined(LIBRESSL_VERSION_NUMBER)
- SSL_load_error_strings();
- SSL_library_init();
- OpenSSL_add_all_digests();
-@@ -205,7 +205,7 @@ static void
- tlso_ctx_ref( tls_ctx *ctx )
- {
- tlso_ctx *c = (tlso_ctx *)ctx;
--#if OPENSSL_VERSION_NUMBER < 0x10100000
-+#if (OPENSSL_VERSION_NUMBER < 0x10100000) || defined(LIBRESSL_VERSION_NUMBER)
- #define SSL_CTX_up_ref(ctx) CRYPTO_add( &(ctx->references), 1, CRYPTO_LOCK_SSL_CTX )
- #endif
- SSL_CTX_up_ref( c );
-@@ -464,7 +464,7 @@ tlso_session_my_dn( tls_session *sess, s
- if (!x) return LDAP_INVALID_CREDENTIALS;
-
- xn = X509_get_subject_name(x);
--#if OPENSSL_VERSION_NUMBER < 0x10100000
-+#if (OPENSSL_VERSION_NUMBER < 0x10100000) || defined(LIBRESSL_VERSION_NUMBER)
- der_dn->bv_len = i2d_X509_NAME( xn, NULL );
- der_dn->bv_val = xn->bytes->data;
- #else
-@@ -500,7 +500,7 @@ tlso_session_peer_dn( tls_session *sess,
- return LDAP_INVALID_CREDENTIALS;
-
- xn = X509_get_subject_name(x);
--#if OPENSSL_VERSION_NUMBER < 0x10100000
-+#if (OPENSSL_VERSION_NUMBER < 0x10100000) || defined(LIBRESSL_VERSION_NUMBER)
- der_dn->bv_len = i2d_X509_NAME( xn, NULL );
- der_dn->bv_val = xn->bytes->data;
- #else
-@@ -721,7 +721,7 @@ struct tls_data {
- Sockbuf_IO_Desc *sbiod;
- };
-
--#if OPENSSL_VERSION_NUMBER < 0x10100000
-+#if (OPENSSL_VERSION_NUMBER < 0x10100000) || defined(LIBRESSL_VERSION_NUMBER)
- #define BIO_set_init(b, x) b->init = x
- #define BIO_set_data(b, x) b->ptr = x
- #define BIO_clear_flags(b, x) b->flags &= ~(x)
-@@ -822,7 +822,7 @@ tlso_bio_puts( BIO *b, const char *str )
- return tlso_bio_write( b, str, strlen( str ) );
- }
-
--#if OPENSSL_VERSION_NUMBER >= 0x10100000
-+#if (OPENSSL_VERSION_NUMBER >= 0x10100000) && !defined(LIBRESSL_VERSION_NUMBER)
- struct bio_method_st {
- int type;
- const char *name;
diff --git a/package/openobex/Makefile b/package/openobex/Makefile
index 18fe0c5c3..b8208e861 100644
--- a/package/openobex/Makefile
+++ b/package/openobex/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= openobex
-PKG_VERSION:= 1.7.1
+PKG_VERSION:= 1.7.2
PKG_RELEASE:= 1
-PKG_HASH:= 3b264665d90901ea4ff720332ffb9b6d1d8f67187463d3a3279caddc7205ea57
+PKG_HASH:= 158860aaea52f0fce0c8e4b64550daaae06df2689e05834697b7e8c7d73dd4fc
PKG_DESCR:= implementation of the obex protocol
PKG_SECTION:= sys/misc
PKG_BUILDDEP:= eudev bluez
diff --git a/package/openocd/Makefile b/package/openocd/Makefile
index 0ccb68705..689df4011 100644
--- a/package/openocd/Makefile
+++ b/package/openocd/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= openocd
-PKG_VERSION:= 0.10.0
+PKG_VERSION:= 0.11.0
PKG_RELEASE:= 1
-PKG_HASH:= 7312e7d680752ac088b8b8f2b5ba3ff0d30e0a78139531847be4b75c101316ae
+PKG_HASH:= 43a3ce734aff1d3706ad87793a9f3a5371cb0e357f0ffd0a151656b06b3d1e7d
PKG_DESCR:= jtag flash and debugging utility
PKG_SECTION:= dev/tools
HOST_BUILDDEP:= libusb-host
diff --git a/package/opensbi/Makefile b/package/opensbi/Makefile
new file mode 100644
index 000000000..be308d3db
--- /dev/null
+++ b/package/opensbi/Makefile
@@ -0,0 +1,29 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= opensbi
+PKG_VERSION:= 1.4
+PKG_RELEASE:= 1
+PKG_HASH:= 319b62a4186fbce9b81a0c5f0ec9f003a10c808397a72138bc9745d9b87b1eb1
+PKG_DESCR:= bootloader for riscv hardware
+PKG_SECTION:= base/boot
+PKG_URL:= https://github.com/riscv-software-src/opensbi
+PKG_SITES:= https://github.com/riscv-software-src/opensbi/archive/refs/tags/
+PKG_ARCH_DEPENDS:= riscv32 riscv64
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,OPENSBI,opensbi,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+MAKE_ENV+= PLATFORM=generic FW_TEXT_START=0x40000000 FW_OPTIONS=0
+CONFIG_STYLE:= manual
+
+opensbi-install:
+ $(CP) $(WRKBUILD)/build/platform/generic/firmware/*.bin \
+ $(FW_DIR)
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/opensc/Makefile b/package/opensc/Makefile
index 863074bee..9f4b1b0f3 100644
--- a/package/opensc/Makefile
+++ b/package/opensc/Makefile
@@ -4,15 +4,15 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= opensc
-PKG_VERSION:= 0.15.0
+PKG_VERSION:= 0.24.0
PKG_RELEASE:= 1
-PKG_HASH:= 7c8600a37d11f82410699ee5c60bfebc46f6714d0d87b4125dd99215c87d4db8
+PKG_HASH:= 24d03c69287291da32a30c4c38a304ad827f56cb85d83619e1f5403ab6480ef8
PKG_DESCR:= utilities to access smart cards
PKG_SECTION:= app/crypto
PKG_BUILDDEP:= openct pcsc-lite readline libressl
PKG_DEPENDS:= libopensc libopenct pcsc-lite libreadline libressl
PKG_URL:= https://github.com/OpenSC/OpenSC/wiki
-PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=opensc/}
+PKG_SITES:= https://github.com/OpenSC/OpenSC/releases/download/$(PKG_VERSION)/
PKG_LIBNAME:= libopensc
PKG_OPTS:= dev
@@ -29,10 +29,11 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,OPENSC,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,LIBOPENSC,libopensc,${PKG_VERSION}-${PKG_RELEASE},${PKGSS_LIBOPENSC},${PKGSD_LIBOPENSC},${PKGSC_LIBOPENSC},${PKG_OPTS}))
-AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --disable-man \
--disable-iconv \
--disable-pcsc \
+ --disable-silent-rules \
+ --disable-strict \
--enable-openct
opensc-install:
diff --git a/package/opensips/Makefile b/package/opensips/Makefile
index 1165d4421..57495a60f 100644
--- a/package/opensips/Makefile
+++ b/package/opensips/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= opensips
-PKG_VERSION:= 2.2.3
+PKG_VERSION:= 3.4.4
PKG_RELEASE:= 1
-PKG_HASH:= ccf540f7aae4335a8319b83f6cb87b562e665991fe1c2adc4e8eb4d4f3042dd7
+PKG_HASH:= eab3608a464884fc40f33cc639a5b124dc838799bd4a9701b7a8af49fb937fc7
PKG_DESCR:= high-performance, configurable, free sip server
PKG_SECTION:= net/voip
PKG_DEPENDS:= libressl
@@ -21,8 +21,8 @@ PKG_SUBPKGS+= OPENSIPS_MOD_AUTH_DB OPENSIPS_MOD_AVPOPS OPENSIPS_MOD_DISPATCHER
PKG_SUBPKGS+= OPENSIPS_MOD_DIVERSION OPENSIPS_MOD_FLATSTORE OPENSIPS_MOD_GFLAGS
PKG_SUBPKGS+= OPENSIPS_MOD_GROUP OPENSIPS_MOD_MEDIAPROXY OPENSIPS_MOD_MSILO
PKG_SUBPKGS+= OPENSIPS_MOD_NATHELPER OPENSIPS_MOD_OPTIONS
-PKG_SUBPKGS+= OPENSIPS_MOD_PERMISSIONS OPENSIPS_MOD_PIKE OPENSIPS_MOD_SMS
-PKG_SUBPKGS+= OPENSIPS_MOD_UAC OPENSIPS_MOD_UAC_REDIRECT OPENSIPS_MOD_URI
+PKG_SUBPKGS+= OPENSIPS_MOD_PERMISSIONS OPENSIPS_MOD_PIKE
+PKG_SUBPKGS+= OPENSIPS_MOD_UAC OPENSIPS_MOD_UAC_REDIRECT
PKGSD_OPENSIPS_MOD_ACCOUNTING:= accounting support
PKGSN_OPENSIPS_MOD_ACCOUNTING:= opensips
@@ -54,14 +54,10 @@ PKGSD_OPENSIPS_MOD_PERMISSIONS:= permissions support
PKGSN_OPENSIPS_MOD_PERMISSIONS:= opensips
PKGSD_OPENSIPS_MOD_PIKE:= pike support
PKGSN_OPENSIPS_MOD_PIKE:= opensips
-PKGSD_OPENSIPS_MOD_SMS:= sms support
-PKGSN_OPENSIPS_MOD_SMS:= opensips
PKGSD_OPENSIPS_MOD_UAC:= uac support
PKGSN_OPENSIPS_MOD_UAC:= opensips
PKGSD_OPENSIPS_MOD_UAC_REDIRECT:= uac redirect support
PKGSN_OPENSIPS_MOD_UAC_REDIRECT:= opensips
-PKGSD_OPENSIPS_MOD_URI:= uri support
-PKGSN_OPENSIPS_MOD_URI:= opensips
include $(ADK_TOPDIR)/mk/package.mk
@@ -92,10 +88,8 @@ $(eval $(call PKG_template,OPENSIPS_MOD_NATHELPER,opensips-mod-nathelper,$(PKG_V
$(eval $(call PKG_template,OPENSIPS_MOD_OPTIONS,opensips-mod-options,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,OPENSIPS_MOD_PERMISSIONS,opensips-mod-permissions,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,OPENSIPS_MOD_PIKE,opensips-mod-pike,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-$(eval $(call PKG_template,OPENSIPS_MOD_SMS,opensips-mod-sms,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,OPENSIPS_MOD_UAC,opensips-mod-uac,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,OPENSIPS_MOD_UAC_REDIRECT,opensips-mod-uac-redirect,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-$(eval $(call PKG_template,OPENSIPS_MOD_URI,opensips-mod-uri,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_mod_template,OPENSIPS_MOD_ACCOUNTING,acc))
$(eval $(call PKG_mod_template,OPENSIPS_MOD_AUTH,auth))
@@ -112,11 +106,9 @@ $(eval $(call PKG_mod_template,OPENSIPS_MOD_NATHELPER,nathelper))
$(eval $(call PKG_mod_template,OPENSIPS_MOD_OPTIONS,options))
$(eval $(call PKG_mod_template,OPENSIPS_MOD_PERMISSIONS,permissions))
$(eval $(call PKG_mod_template,OPENSIPS_MOD_PIKE,pike))
-$(eval $(call PKG_mod_template,OPENSIPS_MOD_SMS,sms))
$(eval $(call PKG_mod_template,OPENSIPS_MOD_SPEEDIAL,speeddial))
$(eval $(call PKG_mod_template,OPENSIPS_MOD_UAC,uac))
$(eval $(call PKG_mod_template,OPENSIPS_MOD_UAC_REDIRECT,uac_redirect))
-$(eval $(call PKG_mod_template,OPENSIPS_MOD_URI,uri))
# Select here the modules for the main package
OPENSIPS_MODULES:= sl tm rr maxfwd usrloc registrar db_text textops exec mi_fifo signaling
@@ -131,7 +123,6 @@ INSTALL_STYLE:= manual
do-build:
PATH='$(HOST_PATH)' $(MAKE) -C $(WRKBUILD) \
prefix=/ \
- extra_defs="-DUSE_PTHREAD_MUTEX" \
TLS=1 \
FREERADIUS=0 \
NICER=0 \
diff --git a/package/openssh/Makefile b/package/openssh/Makefile
index 6e250a630..7db2873a6 100644
--- a/package/openssh/Makefile
+++ b/package/openssh/Makefile
@@ -4,13 +4,14 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= openssh
-PKG_VERSION:= 7.7p1
+PKG_VERSION:= 9.7p1
PKG_RELEASE:= 1
-PKG_HASH:= d73be7e684e99efcd024be15a30bffcbe41b012b2f7b3c9084aed621775e6b8f
+PKG_HASH:= 490426f766d82a2763fcacd8d83ea3d70798750c7bd2aff2e57dc5660f773ffd
PKG_DESCR:= secure shell implementation
PKG_SECTION:= net/security
-PKG_BUILDDEP:= zlib libressl
-PKG_DEPENDS:= zlib libressl
+PKG_BUILDDEP:= zlib
+PKG_BUILDDEP_GLIBC:= libxcrypt
+PKG_DEPENDS:= zlib
PKG_NEEDS:= threads
PKG_URL:= http://www.openssh.com/
PKG_SITES:= http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
@@ -36,6 +37,15 @@ PKGFD_WITH_KRB5:= enable kerberos 5 support
PKGFS_WITH_KRB5:= libkrb5 libcom-err
PKGFB_WITH_KRB5:= krb5
+PKG_CHOICES_OPENSSH:= WITH_LIBRESSL WITH_OPENSSL
+PKGCD_WITH_LIBRESSL:= with libressl
+PKGCS_WITH_LIBRESSL:= libressl
+PKGCB_WITH_LIBRESSL:= libressl
+PKGCD_WITH_OPENSSL:= with openssl
+PKGCS_WITH_OPENSSL:= libopenssl
+PKGCB_WITH_OPENSSL:= openssl
+
+
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,OPENSSH,openssh,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
@@ -62,12 +72,14 @@ CONFIGURE_ARGS+= --without-pie
endif
CONFIGURE_ENV+= LD='${TARGET_CC}' \
+ LDFLAGS='$(TARGET_LDFLAGS) -latomic' \
ac_cv_func_setlogin=no \
ac_cv_have_decl_PR_SET_NO_NEW_PRIVS=no \
ac_cv_lib_nsl_yp_match=no
CONFIGURE_ARGS+= --disable-strip \
--disable-etc-default-login \
--disable-lastlog \
+ --without-hardening \
--with-sandbox=no \
--disable-utmp \
--disable-utmpx \
diff --git a/package/openssl-pkcs11/Makefile b/package/openssl-pkcs11/Makefile
deleted file mode 100644
index b7948e5a1..000000000
--- a/package/openssl-pkcs11/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include ${ADK_TOPDIR}/rules.mk
-
-PKG_NAME:= openssl-pkcs11
-PKG_VERSION:= 0.1.8
-PKG_RELEASE:= 1
-PKG_HASH:= de7d7e41e7c42deef40c53e10ccc3f88d2c036d6656ecee7e82e8be07b06a2e5
-PKG_DESCR:= pkcs11 engine for openssl
-PKG_SECTION:= app/crypto
-PKG_BUILDDEP:= libp11
-PKG_URL:= http://www.opensc-project.org/engine_pkcs11
-PKG_SITES:= http://www.opensc-project.org/files/engine_pkcs11/
-
-DISTFILES:= engine_pkcs11-${PKG_VERSION}.tar.gz
-WRKDIST= ${WRKDIR}/engine_pkcs11-${PKG_VERSION}
-
-include ${ADK_TOPDIR}/mk/package.mk
-
-$(eval $(call PKG_template,OPENSSL_PKCS11,openssl-pkcs11,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-CONFIGURE_ARGS+= --with-openssl="${STAGING_TARGET_DIR}/usr"
-
-openssl-pkcs11-install:
- ${INSTALL_DIR} ${IDIR_OPENSSL_PKCS11}/usr/lib/engines
- ${INSTALL_DATA} ${WRKINST}/usr/lib/engines/engine_pkcs11.so \
- ${IDIR_OPENSSL_PKCS11}/usr/lib/engines
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/openssl-pkcs11/patches/patch-ltmain_sh b/package/openssl-pkcs11/patches/patch-ltmain_sh
deleted file mode 100644
index 317a0b26c..000000000
--- a/package/openssl-pkcs11/patches/patch-ltmain_sh
+++ /dev/null
@@ -1,11 +0,0 @@
---- engine_pkcs11-0.1.8.orig/ltmain.sh 2010-01-07 11:21:35.000000000 +0100
-+++ engine_pkcs11-0.1.8/ltmain.sh 2011-01-16 13:57:19.000000000 +0100
-@@ -4765,7 +4765,7 @@ func_mode_link ()
- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
- # @file GCC response files
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
-+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-fstack-protector*|-flto)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
diff --git a/package/openssl/Makefile b/package/openssl/Makefile
new file mode 100644
index 000000000..406a88681
--- /dev/null
+++ b/package/openssl/Makefile
@@ -0,0 +1,117 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= openssl
+PKG_VERSION:= 3.0.13
+PKG_RELEASE:= 1
+PKG_HASH:= 88525753f79d3bec27d2fa7c66aa0b92b3aa9498dafd93d7cfa4b3780cdae313
+PKG_DESCR:= ssl/tls library
+PKG_SECTION:= libs/crypto
+PKG_URL:= https://www.openssl.org
+PKG_DEPENDS:= zlib
+PKG_BUILDDEP:= zlib
+PKG_SITES:= https://www.openssl.org/source/
+PKG_LIBNAME:= libopenssl
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+PKG_SUBPKGS:= LIBOPENSSL OPENSSL_UTIL
+PKGSD_OPENSSL_UTIL:= openssl command line tool
+PKGSC_OPENSSL_UTIL:= app/crypto
+PKGSS_OPENSSL_UTIL:= libopenssl
+
+
+include $(ADK_TOPDIR)/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,OPENSSL,openssl,${PKG_VERSION}-${PKG_RELEASE}))
+$(eval $(call PKG_template,LIBOPENSSL,libopenssl,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},$(PKG_OPTS)))
+$(eval $(call PKG_template,OPENSSL_UTIL,openssl-util,${PKG_VERSION}-${PKG_RELEASE},${PKGSS_OPENSSL_UTIL},${PKGSD_OPENSSL_UTIL},${PKGSC_OPENSSL_UTIL}))
+
+ifeq ($(ADK_TARGET_USE_STATIC_LIBS),y)
+OPENSSL_OPTIONS:= no-shared zlib no-dso
+else
+OPENSSL_OPTIONS:= shared zlib-dynamic
+endif
+
+OPENSSL_OPTIONS+= threads no-err no-tests no-fuzz-libfuzzer no-fuzz-afl
+OPENSSL_OPTIONS+= no-rc5 no-rc2 no-rc4 no-md2 no-idea
+
+HOST_STYLE:= manual
+CONFIG_STYLE:= manual
+
+INSTALL_TARGET:= install_sw
+FAKE_FLAGS+= INSTALL_PREFIX=${WRKINST}
+
+ifeq ($(ADK_TARGET_ARCH_MICROBLAZE),y)
+TARGET_CFLAGS:= $(subst g3,g,$(TARGET_CFLAGS))
+endif
+ifeq ($(ADK_TARGET_ARCH_XTENSA),y)
+TARGET_CFLAGS:= $(subst g3,g,$(TARGET_CFLAGS))
+endif
+ifeq ($(ADK_TARGET_ARCH_PPC),y)
+TARGET_CFLAGS:= $(subst g3,g,$(TARGET_CFLAGS))
+endif
+
+CONFIG:= linux-generic32
+ifeq ($(ADK_TARGET_ARCH_X86_64),y)
+CONFIG:= linux-x86_64
+endif
+ifeq ($(ADK_TARGET_ARCH_AARCH64),y)
+CONFIG:= linux-aarch64
+endif
+
+ifneq (,$(filter CYGWIN%,${OS_FOR_BUILD}))
+HOSTCONFIG:= Cygwin-x86_64
+endif
+ifeq ($(OS_FOR_BUILD),Darwin)
+HOSTCONFIG:= darwin64-x86_64-cc
+endif
+
+host-configure:
+ifeq ($(HOSTCONFIG),)
+ (cd $(WRKBUILD); ./config --prefix='$(STAGING_HOST_DIR)/usr' -fPIC -ldl)
+else
+ (cd $(WRKBUILD); ./Configure $(HOSTCONFIG) --prefix='$(STAGING_HOST_DIR)/usr')
+endif
+
+host-build:
+ (cd $(WRKBUILD); make)
+
+openssl-hostinstall:
+ (cd $(WRKBUILD); make install)
+
+do-configure:
+ (cd $(WRKBUILD); \
+ PATH='$(TARGET_PATH)' \
+ CROSS_COMPILE='' \
+ CFLAGS="$(TARGET_CFLAGS)" \
+ LDFLAGS="$(TARGET_LDFLAGS) -latomic" \
+ ./Configure $(CONFIG) \
+ --prefix=/usr \
+ --openssldir=/etc/ssl \
+ -I$(STAGING_TARGET_DIR)/usr/include \
+ -L$(STAGING_TARGET_DIR)/usr/lib \
+ -DOPENSSL_SMALL_FOOTPRINT \
+ -DOPENSSL_NO_ASYNC \
+ $(OPENSSL_OPTIONS) \
+ );
+ #$(SED) "s:-O[0-9]:$(TARGET_CFLAGS) -fPIC:" $(WRKBUILD)/Makefile
+
+libopenssl-install:
+ ${INSTALL_DIR} ${IDIR_LIBOPENSSL}/usr/lib
+ ${CP} ${WRKINST}/usr/lib*/lib*.so* ${IDIR_LIBOPENSSL}/usr/lib
+ chmod 644 ${IDIR_LIBOPENSSL}/usr/lib/lib*.so*
+
+openssl-util-install:
+ ${INSTALL_DIR} ${IDIR_OPENSSL_UTIL}/usr/bin
+ ${CP} ${WRKINST}/usr/bin/openssl ${IDIR_OPENSSL_UTIL}/usr/bin
+ ${INSTALL_DIR} ${IDIR_OPENSSL_UTIL}/etc/ssl/{,certs,private}
+ ${CP} ${WRKSRC}/apps/openssl.cnf ${IDIR_OPENSSL_UTIL}/etc/ssl/
+ chmod 0700 ${IDIR_OPENSSL_UTIL}/etc/ssl/private
+
+include $(ADK_TOPDIR)/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/openssl/patches/patch-Configurations_unix-Makefile_tmpl b/package/openssl/patches/patch-Configurations_unix-Makefile_tmpl
new file mode 100644
index 000000000..eb64f9a73
--- /dev/null
+++ b/package/openssl/patches/patch-Configurations_unix-Makefile_tmpl
@@ -0,0 +1,20 @@
+--- openssl-3.0.10.orig/Configurations/unix-Makefile.tmpl 2023-08-01 15:47:24.000000000 +0200
++++ openssl-3.0.10/Configurations/unix-Makefile.tmpl 2023-08-12 19:44:43.932070216 +0200
+@@ -523,7 +523,7 @@ build_all_generated: $(GENERATED_MANDATO
+ @echo " then make will fail..."
+ @ : {- output_on() if $disabled{makedepend}; "" -}
+
+-all: build_sw build_docs
++all: build_sw
+
+ test: tests
+ {- dependmagic('tests'); -}: build_programs_nodep build_modules_nodep link-utils run_tests
+@@ -546,7 +546,7 @@ list-tests:
+ @echo "Tests are not supported with your chosen Configure options"
+ @ : {- output_on() if !$disabled{tests}; "" -}
+
+-install: install_sw install_ssldirs install_docs {- $disabled{fips} ? "" : "install_fips" -}
++install: install_sw install_ssldirs {- $disabled{fips} ? "" : "install_fips" -}
+
+ uninstall: uninstall_docs uninstall_sw {- $disabled{fips} ? "" : "uninstall_fips" -}
+
diff --git a/package/openswan/Makefile b/package/openswan/Makefile
index a752e897d..41ec00201 100644
--- a/package/openswan/Makefile
+++ b/package/openswan/Makefile
@@ -4,22 +4,20 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= openswan
-PKG_VERSION:= 2.6.49.1
+PKG_VERSION:= 3.0.0
PKG_RELEASE:= 1
-PKG_HASH:= b9690e8c6ff524732cd2a729a8a08f5d2acedff41cb97303b82946d039de55f0
+PKG_HASH:= 69fe7a71e54aaf0ea93b874db4963057c1ff4904b3617b36f2c9be2010c23331
PKG_DESCR:= ipsec software
PKG_SECTION:= net/security
PKG_DEPENDS:= libgmp
PKG_BUILDDEP:= gmp
PKG_NEEDS:= threads
PKG_URL:= http://www.openswan.org/
-PKG_SITES:= http://www.openswan.org/download/
+PKG_SITES:= https://github.com/xelerance/Openswan/archive/refs/tags/
PKG_NOPARALLEL:= 1
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
-# GLOB_BRACE usage
-PKG_LIBC_DEPENDS:= uclibc-ng glibc
+DISTFILES:= v${PKG_VERSION}.tar.gz
+WRKDIST= $(WRKDIR)/Openswan-$(PKG_VERSION)
include ${ADK_TOPDIR}/mk/package.mk
@@ -32,7 +30,9 @@ XAKE_FLAGS+= KERNELSRC="${LINUX_DIR}" \
MODPROBE="insmod" \
OSDEP="linux" \
WERROR="" \
- BUILDENV="linux"
+ BUILDENV="linux" \
+ ARCH=$(ADK_TARGET_KARCH) \
+ V=1
ALL_TARGET:= programs
openswan-install:
diff --git a/package/openswan/patches/patch-Makefile_inc b/package/openswan/patches/patch-Makefile_inc
index 82a9d5878..ca00c7598 100644
--- a/package/openswan/patches/patch-Makefile_inc
+++ b/package/openswan/patches/patch-Makefile_inc
@@ -1,15 +1,20 @@
---- openswan-2.6.46.orig/Makefile.inc 2016-01-22 16:50:30.000000000 +0100
-+++ openswan-2.6.46/Makefile.inc 2016-02-15 21:06:59.000000000 +0100
-@@ -194,10 +194,10 @@ BISONOSFLAGS=
- #Example for a cross compile:
- #USERCOMPILE?=-g ${PORTDEFINE} -I/usr/local/arm_tools/arm-elf/inc -L/usr/local/arm_tools/lib/gcc-lib
- GCC_LINT ?= -DGCC_LINT
--USERCOMPILE?=-g -O3 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 ${WERROR} $(GCC_LINT) ${USERCOMPILEEXTRA}
-+USERCOMPILE?=-g -O3 -fPIE -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 ${WERROR} $(GCC_LINT) ${USERCOMPILEEXTRA}
+--- Openswan-3.0.0.orig/Makefile.inc 2021-01-22 19:25:50.000000000 +0100
++++ Openswan-3.0.0/Makefile.inc 2022-03-21 19:40:09.287360911 +0100
+@@ -188,7 +188,7 @@ BISONOSFLAGS=
+ # USER* should be empty for end users/vendors to use
+
+ OPTIMIZE?=-g -O3
+-GCCOPTIONS=${OPTIMIZE} -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 ${WERROR} $(GCC_LINT) ${USERCOMPILEEXTRA}
++GCCOPTIONS=${OPTIMIZE} -fPIE -Wformat -Wformat-security -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 ${WERROR} $(GCC_LINT) ${USERCOMPILEEXTRA}
+ # extra compile flags, for userland and kernel stuff, e.g. -g for debug info
+ # you can add to this in the defaults file using +=
+ # -DGCC_LINT uses gcc-specific declarations to improve compile-time diagnostics.
+@@ -199,7 +199,7 @@ GCC_LINT ?= -DGCC_LINT
+ USERCOMPILE?=${GCCOPTIONS}
# on fedora/rhel
- #USERCOMPILE?=-g -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIE -pie -DSUPPORT_BROKEN_ANDROID_ICS
--KLIPSCOMPILE=-O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -DCONFIG_KLIPS_ALG -DDISABLE_UDP_CHECKSUM
-+KLIPSCOMPILE=-O2 -fPIE -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -DCONFIG_KLIPS_ALG -DDISABLE_UDP_CHECKSUM
+ #USERCOMPILE?=-g -O2 -g -pipe -Wall -Wp,-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIE -pie -DSUPPORT_BROKEN_ANDROID_ICS
+-KLIPSCOMPILE=-O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -DCONFIG_KLIPS_ALG -DDISABLE_UDP_CHECKSUM
++KLIPSCOMPILE=-O2 -fPIE -Wformat -Wformat-security -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -DCONFIG_KLIPS_ALG -DDISABLE_UDP_CHECKSUM
# Additional debugging for developers (warning: can crash openswan!)
#USERCOMPILE?=-g -DLEAK_DETECTIVE ${LIBEFENCE}
# You can also run this before starting openswan on glibc systems:
diff --git a/package/openswan/patches/patch-include_arpa_nameser_h b/package/openswan/patches/patch-include_arpa_nameser_h
deleted file mode 100644
index a59cd15b2..000000000
--- a/package/openswan/patches/patch-include_arpa_nameser_h
+++ /dev/null
@@ -1,128 +0,0 @@
---- openswan-2.6.38.orig/include/arpa/nameser.h 2012-03-23 22:33:43.000000000 +0100
-+++ openswan-2.6.38/include/arpa/nameser.h 2014-03-26 19:50:18.000000000 +0100
-@@ -55,7 +55,6 @@
-
- #include <sys/param.h>
- #include <sys/types.h>
--#include <sys/cdefs.h>
-
- /*
- * Revision information. This is the release date in YYYYMMDD format.
-@@ -505,62 +504,66 @@ typedef enum __ns_cert_types {
- #define ns_makecanon __ns_makecanon
- #define ns_samename __ns_samename
-
--__BEGIN_DECLS
--int ns_msg_getflag __P((ns_msg, int));
--u_int ns_get16 __P((const u_char *));
--u_long ns_get32 __P((const u_char *));
--void ns_put16 __P((u_int, u_char *));
--void ns_put32 __P((u_long, u_char *));
--int ns_initparse __P((const u_char *, int, ns_msg *));
--int ns_skiprr __P((const u_char *, const u_char *, ns_sect, int));
--int ns_parserr __P((ns_msg *, ns_sect, int, ns_rr *));
--int ns_sprintrr __P((const ns_msg *, const ns_rr *,
-- const char *, const char *, char *, size_t));
--int ns_sprintrrf __P((const u_char *, size_t, const char *,
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+int ns_msg_getflag (ns_msg, int);
-+u_int ns_get16 (const u_char *);
-+u_long ns_get32 (const u_char *);
-+void ns_put16 (u_int, u_char *);
-+void ns_put32 (u_long, u_char *);
-+int ns_initparse (const u_char *, int, ns_msg *);
-+int ns_skiprr (const u_char *, const u_char *, ns_sect, int);
-+int ns_parserr (ns_msg *, ns_sect, int, ns_rr *);
-+int ns_sprintrr (const ns_msg *, const ns_rr *,
-+ const char *, const char *, char *, size_t);
-+int ns_sprintrrf (const u_char *, size_t, const char *,
- ns_class, ns_type, u_long, const u_char *,
- size_t, const char *, const char *,
-- char *, size_t));
--int ns_format_ttl __P((u_long, char *, size_t));
--int ns_parse_ttl __P((const char *, u_long *));
--u_int32_t ns_datetosecs __P((const char *cp, int *errp));
--int ns_name_ntol __P((const u_char *, u_char *, size_t));
--int ns_name_ntop __P((const u_char *, char *, size_t));
--int ns_name_pton __P((const char *, u_char *, size_t));
--int ns_name_unpack __P((const u_char *, const u_char *,
-- const u_char *, u_char *, size_t));
--int ns_name_pack __P((const u_char *, u_char *, int,
-- const u_char **, const u_char **));
--int ns_name_uncompress __P((const u_char *, const u_char *,
-- const u_char *, char *, size_t));
--int ns_name_compress __P((const char *, u_char *, size_t,
-- const u_char **, const u_char **));
--int ns_name_skip __P((const u_char **, const u_char *));
--void ns_name_rollback __P((const u_char *, const u_char **,
-- const u_char **));
--int ns_sign __P((u_char *, int *, int, int, void *,
-- const u_char *, int, u_char *, int *, time_t));
--int ns_sign2 __P((u_char *, int *, int, int, void *,
-+ char *, size_t);
-+int ns_format_ttl (u_long, char *, size_t);
-+int ns_parse_ttl (const char *, u_long *);
-+u_int32_t ns_datetosecs (const char *cp, int *errp);
-+int ns_name_ntol (const u_char *, u_char *, size_t);
-+int ns_name_ntop (const u_char *, char *, size_t);
-+int ns_name_pton (const char *, u_char *, size_t);
-+int ns_name_unpack (const u_char *, const u_char *,
-+ const u_char *, u_char *, size_t);
-+int ns_name_pack (const u_char *, u_char *, int,
-+ const u_char **, const u_char **);
-+int ns_name_uncompress (const u_char *, const u_char *,
-+ const u_char *, char *, size_t);
-+int ns_name_compress (const char *, u_char *, size_t,
-+ const u_char **, const u_char **);
-+int ns_name_skip (const u_char **, const u_char *);
-+void ns_name_rollback (const u_char *, const u_char **,
-+ const u_char **);
-+int ns_sign (u_char *, int *, int, int, void *,
-+ const u_char *, int, u_char *, int *, time_t);
-+int ns_sign2 (u_char *, int *, int, int, void *,
- const u_char *, int, u_char *, int *, time_t,
-- u_char **, u_char **));
--int ns_sign_tcp __P((u_char *, int *, int, int,
-- ns_tcp_tsig_state *, int));
--int ns_sign_tcp2 __P((u_char *, int *, int, int,
-+ u_char **, u_char **);
-+int ns_sign_tcp (u_char *, int *, int, int,
-+ ns_tcp_tsig_state *, int);
-+int ns_sign_tcp2 (u_char *, int *, int, int,
- ns_tcp_tsig_state *, int,
-- u_char **, u_char **));
--int ns_sign_tcp_init __P((void *, const u_char *, int,
-- ns_tcp_tsig_state *));
--u_char *ns_find_tsig __P((u_char *, u_char *));
--int ns_verify __P((u_char *, int *, void *,
-+ u_char **, u_char **);
-+int ns_sign_tcp_init (void *, const u_char *, int,
-+ ns_tcp_tsig_state *);
-+u_char *ns_find_tsig (u_char *, u_char *);
-+int ns_verify (u_char *, int *, void *,
- const u_char *, int, u_char *, int *,
-- time_t *, int));
--int ns_verify_tcp __P((u_char *, int *, ns_tcp_tsig_state *, int));
--int ns_verify_tcp_init __P((void *, const u_char *, int,
-- ns_tcp_tsig_state *));
--int ns_samedomain __P((const char *, const char *));
--int ns_subdomain __P((const char *, const char *));
--int ns_makecanon __P((const char *, char *, size_t));
--int ns_samename __P((const char *, const char *));
--__END_DECLS
-+ time_t *, int);
-+int ns_verify_tcp (u_char *, int *, ns_tcp_tsig_state *, int);
-+int ns_verify_tcp_init (void *, const u_char *, int,
-+ ns_tcp_tsig_state *);
-+int ns_samedomain (const char *, const char *);
-+int ns_subdomain (const char *, const char *);
-+int ns_makecanon (const char *, char *, size_t);
-+int ns_samename (const char *, const char *);
-+#ifdef __cplusplus
-+}
-+#endif
-
- #ifdef BIND_4_COMPAT
- #include <arpa/nameser_compat.h>
diff --git a/package/openswan/patches/patch-lib_libalgoparse_kernel_alg_c b/package/openswan/patches/patch-lib_libalgoparse_kernel_alg_c
new file mode 100644
index 000000000..dbb01fb0d
--- /dev/null
+++ b/package/openswan/patches/patch-lib_libalgoparse_kernel_alg_c
@@ -0,0 +1,11 @@
+--- Openswan-3.0.0.orig/lib/libalgoparse/kernel_alg.c 2021-01-22 19:25:50.000000000 +0100
++++ Openswan-3.0.0/lib/libalgoparse/kernel_alg.c 2022-03-22 16:18:54.795141065 +0100
+@@ -27,7 +27,7 @@
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <unistd.h>
+-#include <sys/queue.h>
++#include "queue.h"
+
+ #include <openswan.h>
+
diff --git a/package/openswan/patches/patch-lib_libalgoparse_klips_interface_c b/package/openswan/patches/patch-lib_libalgoparse_klips_interface_c
new file mode 100644
index 000000000..9f901deef
--- /dev/null
+++ b/package/openswan/patches/patch-lib_libalgoparse_klips_interface_c
@@ -0,0 +1,11 @@
+--- Openswan-3.0.0.orig/lib/libalgoparse/klips_interface.c 2021-01-22 19:25:50.000000000 +0100
++++ Openswan-3.0.0/lib/libalgoparse/klips_interface.c 2022-03-22 16:19:33.414205801 +0100
+@@ -22,7 +22,7 @@
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <unistd.h>
+-#include <sys/queue.h>
++#include "queue.h"
+
+ #include <openswan.h>
+
diff --git a/package/openswan/patches/patch-lib_libipsecconf_keywords_c b/package/openswan/patches/patch-lib_libipsecconf_keywords_c
new file mode 100644
index 000000000..671e9564b
--- /dev/null
+++ b/package/openswan/patches/patch-lib_libipsecconf_keywords_c
@@ -0,0 +1,11 @@
+--- Openswan-3.0.0.orig/lib/libipsecconf/keywords.c 2021-01-22 19:25:50.000000000 +0100
++++ Openswan-3.0.0/lib/libipsecconf/keywords.c 2022-03-22 16:20:38.212636657 +0100
+@@ -20,7 +20,7 @@
+ *
+ */
+
+-#include <sys/queue.h>
++#include "queue.h"
+ #include <string.h>
+ #include <assert.h>
+ #include <stdlib.h>
diff --git a/package/openswan/patches/patch-lib_libipsecconf_oeconns_c b/package/openswan/patches/patch-lib_libipsecconf_oeconns_c
new file mode 100644
index 000000000..f7e9ca9c9
--- /dev/null
+++ b/package/openswan/patches/patch-lib_libipsecconf_oeconns_c
@@ -0,0 +1,11 @@
+--- Openswan-3.0.0.orig/lib/libipsecconf/oeconns.c 2021-01-22 19:25:50.000000000 +0100
++++ Openswan-3.0.0/lib/libipsecconf/oeconns.c 2022-03-22 16:21:06.271957222 +0100
+@@ -16,7 +16,7 @@
+ #include <string.h>
+ #include <limits.h>
+ #include <assert.h>
+-#include <sys/queue.h>
++#include "queue.h"
+
+ #include "ipsecconf/parser.h"
+ #include "ipsecconf/confread.h"
diff --git a/package/openswan/patches/patch-lib_liblwres_Makefile b/package/openswan/patches/patch-lib_liblwres_Makefile
deleted file mode 100644
index fb788473a..000000000
--- a/package/openswan/patches/patch-lib_liblwres_Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
---- openswan-2.6.43.orig/lib/liblwres/Makefile 2015-03-13 13:49:09.000000000 -0500
-+++ openswan-2.6.43/lib/liblwres/Makefile 2015-05-01 04:01:15.175426999 -0500
-@@ -23,7 +23,7 @@ CINCLUDES = -I${srcdir}${ISCARCH}/includ
- -I${srcdir}../libisc/include \
- -I. -I./include -I${srcdir}include
- CDEFINES =
--CWARNINGS = -Werror
-+#CWARNINGS = -Werror
-
- CFLAGS+=${USERCOMPILE} ${PORTINCLUDE} ${CINCLUDES} ${CDEFINES} ${CWARNINGS}
-
diff --git a/package/openswan/patches/patch-lib_libopenswan_kernel_alg_c b/package/openswan/patches/patch-lib_libopenswan_kernel_alg_c
deleted file mode 100644
index 36cf64ee4..000000000
--- a/package/openswan/patches/patch-lib_libopenswan_kernel_alg_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- openswan-2.6.38.orig/lib/libopenswan/kernel_alg.c 2012-03-23 22:33:43.000000000 +0100
-+++ openswan-2.6.38/lib/libopenswan/kernel_alg.c 2014-03-26 20:04:18.000000000 +0100
-@@ -27,7 +27,7 @@
- #include <netinet/in.h>
- #include <arpa/inet.h>
- #include <unistd.h>
--#include <sys/queue.h>
-+#include "queue.h"
-
- #include <openswan.h>
-
diff --git a/package/openswan/patches/patch-lib_liboswlog_oswlog_c b/package/openswan/patches/patch-lib_liboswlog_oswlog_c
new file mode 100644
index 000000000..4fb7e2ef7
--- /dev/null
+++ b/package/openswan/patches/patch-lib_liboswlog_oswlog_c
@@ -0,0 +1,11 @@
+--- Openswan-3.0.0.orig/lib/liboswlog/oswlog.c 2021-01-22 19:25:50.000000000 +0100
++++ Openswan-3.0.0/lib/liboswlog/oswlog.c 2022-03-22 16:21:39.003164693 +0100
+@@ -25,7 +25,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <signal.h> /* used only if MSG_NOSIGNAL not defined */
+-#include <sys/queue.h>
++#include "queue.h"
+ #include <libgen.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
diff --git a/package/openvpn/Makefile b/package/openvpn/Makefile
index c5c6d9849..8001a51ca 100644
--- a/package/openvpn/Makefile
+++ b/package/openvpn/Makefile
@@ -4,18 +4,20 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= openvpn
-PKG_VERSION:= 2.4.3
+PKG_VERSION:= 2.6.10
PKG_RELEASE:= 1
-PKG_HASH:= 15e15fc97f189b52aee7c90ec8355aa77469c773125110b4c2f089abecde36fb
+PKG_HASH:= 1993bbb7b9edb430626eaa24573f881fd3df642f427fcb824b1aed1fca1bcc9b
PKG_DESCR:= vpn solution using ssl/tls
-PKG_DEPENDS:= libressl
-PKG_BUILDDEP:= libressl
+PKG_DEPENDS:= libressl libcap-ng
+PKG_BUILDDEP:= libressl libcap-ng
PKG_KDEPENDS:= tun
PKG_SECTION:= net/security
PKG_URL:= http://openvpn.net/
PKG_SITES:= http://swupdate.openvpn.org/community/releases/
-PKG_FLAVOURS_OPENVPN:= WITH_LZO WITH_LZ4 WITH_MANAGEMENT WITH_HTTPPROXY WITH_SOCKS WITH_SMALL
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+
+PKG_FLAVOURS_OPENVPN:= WITH_LZO WITH_LZ4 WITH_MANAGEMENT WITH_SMALL
PKGFD_WITH_LZO:= enable lzo compression support
PKGFS_WITH_LZO:= liblzo
PKGFB_WITH_LZO:= liblzo
@@ -23,8 +25,6 @@ PKGFD_WITH_LZ4:= enable lz4 compression support
PKGFS_WITH_LZ4:= liblz4
PKGFB_WITH_LZ4:= lz4
PKGFD_WITH_MANAGEMENT:= enable management server support
-PKGFD_WITH_HTTPPROXY:= enable http proxy support
-PKGFD_WITH_SOCKS:= enable socks proxy support
PKGFD_WITH_SMALL:= enable extra small binary
include $(ADK_TOPDIR)/mk/package.mk
@@ -51,18 +51,6 @@ else
CONFIGURE_ARGS+= --disable-management
endif
-ifneq ($(ADK_PACKAGE_OPENVPN_WITH_HTTPPROXY),)
-CONFIGURE_ARGS+= --enable-http-proxy
-else
-CONFIGURE_ARGS+= --disable-http-proxy
-endif
-
-ifneq ($(ADK_PACKAGE_OPENVPN_WITH_SOCKS),)
-CONFIGURE_ARGS+= --enable-socks
-else
-CONFIGURE_ARGS+= --disable-socks
-endif
-
ifneq ($(ADK_PACKAGE_OPENVPN_WITH_SMALL),)
CONFIGURE_ARGS+= --enable-small
endif
diff --git a/package/openvpn/patches/patch-tests_t_client_sh b/package/openvpn/patches/patch-tests_t_client_sh
new file mode 100644
index 000000000..55c7ef7d5
--- /dev/null
+++ b/package/openvpn/patches/patch-tests_t_client_sh
@@ -0,0 +1,63 @@
+--- openvpn-2.4.7.orig/tests/t_client.sh 2019-02-20 13:29:00.000000000 +0100
++++ openvpn-2.4.7/tests/t_client.sh 2019-10-07 21:45:31.399817348 +0200
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/bin/bash
+ #
+ # run OpenVPN client against ``test reference'' server
+ # - check that ping, http, ... via tunnel works
+@@ -133,12 +133,12 @@ fail()
+ get_ifconfig_route()
+ {
+ # linux / iproute2? (-> if configure got a path)
+- if [ -n "/usr/sbin/ip" ]
++ if [ -n "/bin/ip" ]
+ then
+ echo "-- linux iproute2 --"
+- /usr/sbin/ip addr show | grep -v valid_lft
+- /usr/sbin/ip route show
+- /usr/sbin/ip -o -6 route show | grep -v ' cache' | sed -E -e 's/ expires [0-9]*sec//' -e 's/ (mtu|hoplimit|cwnd|ssthresh) [0-9]+//g' -e 's/ (rtt|rttvar) [0-9]+ms//g'
++ /bin/ip addr show | grep -v valid_lft
++ /bin/ip route show
++ /bin/ip -o -6 route show | grep -v ' cache' | sed -E -e 's/ expires [0-9]*sec//' -e 's/ (mtu|hoplimit|cwnd|ssthresh) [0-9]+//g' -e 's/ (rtt|rttvar) [0-9]+ms//g'
+ return
+ fi
+
+@@ -146,32 +146,32 @@ get_ifconfig_route()
+ case `uname -s` in
+ Linux)
+ echo "-- linux / ifconfig --"
+- LANG=C /usr/sbin/ifconfig -a |egrep "( addr:|encap:)"
++ LANG=C /sbin/ifconfig -a |egrep "( addr:|encap:)"
+ LANG=C netstat -rn -4 -6
+ return
+ ;;
+ FreeBSD|NetBSD|Darwin)
+ echo "-- FreeBSD/NetBSD/Darwin [MacOS X] --"
+- /usr/sbin/ifconfig -a | egrep "(flags=|inet)"
++ /sbin/ifconfig -a | egrep "(flags=|inet)"
+ netstat -rn | awk '$3 !~ /^UHL/ { print $1,$2,$3,$NF }'
+ return
+ ;;
+ OpenBSD)
+ echo "-- OpenBSD --"
+- /usr/sbin/ifconfig -a | egrep "(flags=|inet)" | \
++ /sbin/ifconfig -a | egrep "(flags=|inet)" | \
+ sed -e 's/pltime [0-9]*//' -e 's/vltime [0-9]*//'
+ netstat -rn | awk '$3 !~ /^UHL/ { print $1,$2,$3,$NF }'
+ return
+ ;;
+ SunOS)
+ echo "-- Solaris --"
+- /usr/sbin/ifconfig -a | egrep "(flags=|inet)"
++ /sbin/ifconfig -a | egrep "(flags=|inet)"
+ netstat -rn | awk '$3 !~ /^UHL/ { print $1,$2,$3,$6 }'
+ return
+ ;;
+ AIX)
+ echo "-- AIX --"
+- /usr/sbin/ifconfig -a | egrep "(flags=|inet)"
++ /sbin/ifconfig -a | egrep "(flags=|inet)"
+ netstat -rn | awk '$3 !~ /^UHL/ { print $1,$2,$3,$6 }'
+ return
+ ;;
diff --git a/package/opkg/Makefile b/package/opkg/Makefile
index 593e1bfff..17f2bf2e2 100644
--- a/package/opkg/Makefile
+++ b/package/opkg/Makefile
@@ -4,13 +4,13 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= opkg
-PKG_VERSION:= 0.3.6
+PKG_VERSION:= 0.6.2
PKG_RELEASE:= 1
-PKG_HASH:= f607f0e61be8cf8a3bbd0d2dccd9ec9e9b6c21dd4307b671c600d6eeaf84d30b
+PKG_HASH:= ac73a90a2549cd04948e563d915912c78e1b8ba0f43af75c5a53fcca474adbd5
PKG_DESCR:= embedded package manager
PKG_DEPENDS:= libcurl libarchive gpgme libressl xz
PKG_BUILDDEP:= curl libarchive gpgme xz libressl
-HOST_BUILDDEP:= libarchive-host curl-host
+HOST_BUILDDEP:= libarchive-host curl-host cpio-host
PKG_NEEDS:= threads
PKG_SECTION:= sys/misc
PKG_URL:= http://git.yoctoproject.org/cgit/cgit.cgi/opkg/
@@ -24,7 +24,6 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call HOST_template,OPKG,opkg,$(PKG_VERSION)-${PKG_RELEASE}))
$(eval $(call PKG_template,OPKG,opkg,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-AUTOTOOL_STYLE:= autoreconf
HOST_CONFIGURE_ARGS+= --disable-openssl \
--disable-gpg \
--disable-xz \
diff --git a/package/oprofile/Makefile b/package/oprofile/Makefile
index 935190464..af04084fb 100644
--- a/package/oprofile/Makefile
+++ b/package/oprofile/Makefile
@@ -4,9 +4,8 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= oprofile
-PKG_VERSION:= 757266704753aea10cf3df7c0902ef35fb1377c1
-PKG_GIT:= hash
-PKG_HASH:= ea65e56db389778f76b9ab8cf66a08fd76b626772be5a3af29e6df87469e404f
+PKG_VERSION:= 1.3.0
+PKG_HASH:= 95ded8bde1ec39922f0af015981a67aec63e025a501e4dc04cd65d38f73647e6
PKG_RELEASE:= 1
PKG_DESCR:= system-wide profiles
PKG_SECTION:= app/debug
@@ -15,7 +14,9 @@ PKG_KDEPENDS:= oprofile
PKG_BUILDDEP:= popt binutils gcc
PKG_NEEDS:= c++
PKG_URL:= http://oprofile.sourceforge.net/
-PKG_SITES:= https://git.code.sf.net/p/oprofile/oprofile.git
+PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=oprofile/}
+
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
PKG_CFLINE_OPROFILE:= select BUSYBOX_EXPR
@@ -23,7 +24,6 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,OPROFILE,oprofile,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-AUTOTOOL_STYLE:= autogen
CONFIGURE_ARGS+= --with-binutils-libname=binutils \
--with-binutils=${STAGING_TARGET_DIR}/usr/lib \
--disable-werror \
diff --git a/package/opus/Makefile b/package/opus/Makefile
index cae0fca62..0785c74d8 100644
--- a/package/opus/Makefile
+++ b/package/opus/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= opus
-PKG_VERSION:= 1.1.5
+PKG_VERSION:= 1.3.1
PKG_RELEASE:= 1
-PKG_HASH:= eb84981ca0f40a3e5d5e58d2e8582cb2fee05a022825a6dfe14d14b04eb563e4
+PKG_HASH:= 65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
PKG_DESCR:= open, royalty-free, highly versatile audio codec
PKG_SECTION:= libs/audio
PKG_URL:= http://opus-codec.org/
diff --git a/package/owfs/Makefile b/package/owfs/Makefile
index 71df2bbf6..227fe8b04 100644
--- a/package/owfs/Makefile
+++ b/package/owfs/Makefile
@@ -4,14 +4,14 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= owfs
-PKG_VERSION:= 3.1p0
+PKG_VERSION:= 3.2p4
PKG_RELEASE:= 1
-PKG_HASH:= 62fca1b3e908cd4515c9eb499bf2b05020bbbea4a5b73611ddc6f205adec7a54
+PKG_HASH:= af0a5035f3f3df876ca15aea13486bfed6b3ef5409dee016db0be67755c35fcc
PKG_DESCR:= software to access 1-wire devices
PKG_SECTION:= sys/hw
PKG_BUILDDEP:= fuse
PKG_URL:= http://owfs.org/
-PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=owfs/}
+PKG_SITES:= https://github.com/owfs/owfs/releases/download/v$(PKG_VERSION)/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
diff --git a/package/p5-anyevent/Makefile b/package/p5-anyevent/Makefile
index 8c1577dc5..a8bcb8179 100644
--- a/package/p5-anyevent/Makefile
+++ b/package/p5-anyevent/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= p5-anyevent
-PKG_VERSION:= 7.11
+PKG_VERSION:= 7.17
PKG_RELEASE:= 1
-PKG_HASH:= 8bf1b59860d04daeec4f6f56e3b86b581dfabacbc3ba0442e493e267b4b9f522
+PKG_HASH:= 50beea689c098fe4aaeb83806c40b9fe7f946d5769acf99f849f099091a4b985
PKG_DESCR:= anyevent
PKG_SECTION:= dev/perl
PKG_DEPENDS:= perl
diff --git a/package/p5-html-parser/Makefile b/package/p5-html-parser/Makefile
index 188c2fb98..7f5f09d10 100644
--- a/package/p5-html-parser/Makefile
+++ b/package/p5-html-parser/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= p5-html-parser
-PKG_VERSION:= 3.71
+PKG_VERSION:= 3.76
PKG_RELEASE:= 1
-PKG_HASH:= be918b3749d3ff93627f72ee4b825683332ecb4c81c67a3a8d72b0435ffbd802
+PKG_HASH:= 64d9e2eb2b420f1492da01ec0e6976363245b4be9290f03f10b7d2cb63fa2f61
PKG_DESCR:= html parser class
PKG_SECTION:= dev/perl
PKG_DEPENDS:= perl
PKG_BUILDDEP:= perl-host perl
-PKG_SITES:= http://cpan.metacpan.org/authors/id/G/GA/GAAS/
+PKG_SITES:= https://cpan.metacpan.org/authors/id/O/OA/OALDERS/
DISTFILES:= HTML-Parser-${PKG_VERSION}.tar.gz
WRKDIST= ${WRKDIR}/HTML-Parser-${PKG_VERSION}
diff --git a/package/p5-parse-yapp/Makefile b/package/p5-parse-yapp/Makefile
new file mode 100644
index 000000000..46b71fc7b
--- /dev/null
+++ b/package/p5-parse-yapp/Makefile
@@ -0,0 +1,42 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+# always use tab spaces as separator, no spaces
+PKG_NAME:= p5-parse-yapp
+PKG_VERSION:= 1.21
+PKG_RELEASE:= 1
+PKG_HASH:= 3810e998308fba2e0f4f26043035032b027ce51ce5c8a52a8b8e340ca65f13e5
+PKG_DESCR:= Parse Yapp
+PKG_SECTION:= dev/perl
+PKG_DEPENDS:= perl
+PKG_BUILDDEP:= perl-host perl
+HOST_BUILDDEP:= perl-host
+PKG_SITES:= https://cpan.metacpan.org/authors/id/W/WB/WBRASWELL/
+
+DISTFILES:= Parse-Yapp-${PKG_VERSION}.tar.gz
+WRKDIST= ${WRKDIR}/Parse-Yapp-${PKG_VERSION}
+
+include $(ADK_TOPDIR)/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,P5_PARSE_YAPP,p5-parse-yapp,$(PKG_VERSION)-$(PKG_RELEASE)))
+$(eval $(call PKG_template,P5_PARSE_YAPP,p5-parse-yapp,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+include $(ADK_TOPDIR)/mk/perl.mk
+
+HOST_STYLE:= perl
+CONFIG_STYLE:= perl
+XAKE_FLAGS+= $(PERL_ENV)
+
+hostpost-install:
+ (cd $(WRKBUILD) && PATH='$(HOST_PATH)' $(HOST_PERL_ENV) make install)
+
+p5-parse-yapp-install:
+ $(INSTALL_DIR) $(IDIR_P5_PARSE_YAPP)$(PERL_SITEDIR)
+ $(CP) $(WRKINST)$(PERL_SITEDIR)/* \
+ $(IDIR_P5_PARSE_YAPP)$(PERL_SITEDIR)
+
+include ${ADK_TOPDIR}/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/p5-sub-name/Makefile b/package/p5-sub-name/Makefile
index fbb246439..f7a55e3ba 100644
--- a/package/p5-sub-name/Makefile
+++ b/package/p5-sub-name/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= p5-sub-name
-PKG_VERSION:= 0.05
+PKG_VERSION:= 0.27
PKG_RELEASE:= 1
-PKG_HASH:= c9d1b805ea1f8e35fdde319468d6378dc1f1123cd8f2b22788238ba842713af1
+PKG_HASH:= ecf36fba1c47ca93e1daa394968ed39c4186867459d9cd173c421e2b972043e8
PKG_DESCR:= rename a sub
PKG_SECTION:= dev/perl
PKG_DEPENDS:= perl
PKG_BUILDDEP:= perl-host perl
-PKG_SITES:= http://cpan.metacpan.org/authors/id/F/FL/FLORA/
+PKG_SITES:= https://cpan.metacpan.org/authors/id/E/ET/ETHER/
DISTFILES:= Sub-Name-${PKG_VERSION}.tar.gz
WRKDIST= ${WRKDIR}/Sub-Name-${PKG_VERSION}
diff --git a/package/p5-xml-parser-expat/Makefile b/package/p5-xml-parser-expat/Makefile
index 16d92ff47..b7fb8244a 100644
--- a/package/p5-xml-parser-expat/Makefile
+++ b/package/p5-xml-parser-expat/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= p5-xml-parser-expat
-PKG_VERSION:= 2.44
+PKG_VERSION:= 2.47
PKG_RELEASE:= 1
-PKG_HASH:= 1ae9d07ee9c35326b3d9aad56eae71a6730a73a116b9fe9e8a4758b7cc033216
+PKG_HASH:= ad4aae643ec784f489b956abe952432871a622d4e2b5c619e8855accbfc4d1d8
PKG_DESCR:= lowlevel access to expat xml parser
PKG_SECTION:= dev/perl
PKG_DEPENDS:= perl libexpat
diff --git a/package/p5-xml-parser/Makefile b/package/p5-xml-parser/Makefile
index 90f0fed30..9783ae0b2 100644
--- a/package/p5-xml-parser/Makefile
+++ b/package/p5-xml-parser/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= p5-xml-parser
-PKG_VERSION:= 2.41
+PKG_VERSION:= 2.47
PKG_RELEASE:= 1
-PKG_HASH:= b48197cd2265a26c5f016489f11a7b450d8833cb8b3d6a46ee15975740894de9
+PKG_HASH:= ad4aae643ec784f489b956abe952432871a622d4e2b5c619e8855accbfc4d1d8
PKG_DESCR:= xml parser
PKG_SECTION:= dev/perl
PKG_DEPENDS:= perl libexpat
diff --git a/package/p5-yaml-xs/Makefile b/package/p5-yaml-xs/Makefile
index 326eb892a..282faaa83 100644
--- a/package/p5-yaml-xs/Makefile
+++ b/package/p5-yaml-xs/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= p5-yaml-xs
-PKG_VERSION:= 0.41
+PKG_VERSION:= 0.89
PKG_RELEASE:= 1
-PKG_HASH:= 9a654427a3a63de434c6d03b18bba144cc7ba0f0e61a7100c6d08d77a90145ce
+PKG_HASH:= 155ab83675345c50add03311acf9dd915955707f909a2abd8b17d7792859b2ec
PKG_DESCR:= yaml serialization using xs and libyaml
PKG_SECTION:= dev/perl
PKG_DEPENDS:= perl
PKG_BUILDDEP:= perl-host perl
-PKG_SITES:= http://cpan.metacpan.org/authors/id/I/IN/INGY/
+PKG_SITES:= https://cpan.metacpan.org/authors/id/T/TI/TINITA/
DISTFILES:= YAML-LibYAML-${PKG_VERSION}.tar.gz
WRKDIST= ${WRKDIR}/YAML-LibYAML-${PKG_VERSION}
diff --git a/package/p8-platform/Makefile b/package/p8-platform/Makefile
new file mode 100644
index 000000000..af0bd5a87
--- /dev/null
+++ b/package/p8-platform/Makefile
@@ -0,0 +1,29 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= p8-platform
+PKG_VERSION:= 2.1.0.1
+PKG_RELEASE:= 1
+PKG_HASH:= 064f8d2c358895c7e0bea9ae956f8d46f3f057772cb97f2743a11d478a0f68a0
+PKG_DESCR:= platform library used by libcec
+PKG_SECTION:= libs/misc
+PKG_URL:= https://github.com/Pulse-Eight/platform
+PKG_SITES:= https://github.com/Pulse-Eight/platform/archive/refs/tags/
+PKG_LIBNAME:= libplatform
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+WRKDIST= $(WRKDIR)/platform-$(PKG_NAME)-$(PKG_VERSION)
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,P8_PLATFORM,p8-platform,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+CONFIG_STYLE:= cmake
+
+p8-platform-install:
+ :
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/paho/Makefile b/package/paho/Makefile
new file mode 100644
index 000000000..b72497b2f
--- /dev/null
+++ b/package/paho/Makefile
@@ -0,0 +1,32 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= paho
+PKG_VERSION:= v1.3.1
+PKG_RELEASE:= 1
+PKG_GIT:= tag
+PKG_DESCR:= Eclipse Paho MQTT client library
+PKG_SECTION:= libs/misc
+PKG_BUILDDEP:= cmake-host
+PKG_URL:= https://www.eclipse.org/paho/clients/c/a
+PKG_SITES:= https://github.com/eclipse/paho.mqtt.c.git
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,PAHO,paho,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+
+CONFIG_STYLE:= cmake
+
+paho-install:
+ $(INSTALL_DIR) $(IDIR_PAHO)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/MQTTVersion \
+ $(IDIR_PAHO)/usr/bin
+ $(INSTALL_DIR) $(IDIR_PAHO)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libpaho*.so* \
+ $(IDIR_PAHO)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/pango/Makefile b/package/pango/Makefile
index 352edeb4d..44fac2f88 100644
--- a/package/pango/Makefile
+++ b/package/pango/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= pango
-PKG_VERSION:= 1.40.3
-PKG_EXTRAVER:= 1.40
+PKG_VERSION:= 1.50.4
+PKG_EXTRAVER:= 1.50
PKG_RELEASE:= 1
-PKG_HASH:= abba8b5ce728520c3a0f1535eab19eac3c14aeef7faa5aded90017ceac2711d3
+PKG_HASH:= f4ad63e87dc2b145300542a4fb004d07a9f91b34152fae0ddbe50ecdd851c162
PKG_DESCR:= library for laying out and rendering of text
PKG_SECTION:= libs/fonts
-PKG_BUILDDEP:= libXft glib cairo harfbuzz fontconfig
-HOST_BUILDDEP:= cairo-host harfbuzz-host
+PKG_BUILDDEP:= libXft glib cairo harfbuzz fontconfig fribidi
+HOST_BUILDDEP:= cairo-host harfbuzz-host glib-host meson-host
PKG_NEEDS:= c++
PKG_URL:= http://www.pango.org/
PKG_SITES:= $(MASTER_SITE_GNOME:=pango/$(PKG_EXTRAVER)/)
@@ -23,10 +23,12 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call HOST_template,PANGO,pango,$(PKG_VERSION)-$(PKG_RELEASE)))
$(eval $(call PKG_template,PANGO,pango,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
-HOST_LDFLAGS+= -lffi
-HOST_STYLE:= auto
-AUTOTOOLS_STYLE:= autoreconf
-CONFIGURE_ARGS+= --disable-man
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+HOST_STYLE:= meson
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
pango-install:
$(INSTALL_DIR) $(IDIR_PANGO)/etc/pango $(IDIR_PANGO)/usr/lib
diff --git a/package/pango/patches/patch-Makefile_am b/package/pango/patches/patch-Makefile_am
deleted file mode 100644
index d7240f677..000000000
--- a/package/pango/patches/patch-Makefile_am
+++ /dev/null
@@ -1,10 +0,0 @@
---- pango-1.38.1.orig/Makefile.am 2015-04-15 19:37:43.000000000 +0200
-+++ pango-1.38.1/Makefile.am 2015-10-25 11:08:45.000000000 +0100
-@@ -1,6 +1,6 @@
- ## Process this file with automake to create Makefile.in.
-
--SUBDIRS= pango pango-view examples docs tools tests build
-+SUBDIRS= pango pango-view tools build
-
- EXTRA_DIST = \
- autogen.sh \
diff --git a/package/parted/Makefile b/package/parted/Makefile
index 41e59b96c..d439d93de 100644
--- a/package/parted/Makefile
+++ b/package/parted/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= parted
-PKG_VERSION:= 3.2
-PKG_RELEASE:= 3
-PKG_HASH:= 858b589c22297cacdf437f3baff6f04b333087521ab274f7ab677cb8c6bb78e4
+PKG_VERSION:= 3.6
+PKG_RELEASE:= 1
+PKG_HASH:= 3b43dbe33cca0f9a18601ebab56b7852b128ec1a3df3a9b30ccde5e73359e612
PKG_DESCR:= partition table editor
PKG_SECTION:= sys/fs
PKG_DEPENDS:= libblkid libuuid libncurses
diff --git a/package/parted/patches/patch-lib_config_h_in b/package/parted/patches/patch-lib_config_h_in
index 44c07bbc6..0a83e62dc 100644
--- a/package/parted/patches/patch-lib_config_h_in
+++ b/package/parted/patches/patch-lib_config_h_in
@@ -1,6 +1,6 @@
---- parted-3.2.orig/lib/config.h.in 2014-07-28 22:02:54.000000000 -0500
-+++ parted-3.2/lib/config.h.in 2015-01-03 14:02:11.888853421 -0600
-@@ -1471,6 +1471,11 @@
+--- parted-3.3.orig/lib/config.h.in 2019-10-11 01:03:37.000000000 +0200
++++ parted-3.3/lib/config.h.in 2020-06-06 20:12:43.000000000 +0200
+@@ -1249,6 +1249,11 @@
/* Enable large inode numbers on Mac OS X 10.5. */
#undef _DARWIN_USE_64_BIT_INODE
diff --git a/package/parted/patches/patch-libparted_arch_linux_c b/package/parted/patches/patch-libparted_arch_linux_c
deleted file mode 100644
index 7a8efcf04..000000000
--- a/package/parted/patches/patch-libparted_arch_linux_c
+++ /dev/null
@@ -1,41 +0,0 @@
---- parted-3.2.orig/libparted/arch/linux.c 2014-06-15 14:15:54.000000000 -0500
-+++ parted-3.2/libparted/arch/linux.c 2015-01-03 14:10:43.244848741 -0600
-@@ -2304,6 +2304,7 @@ zasprintf (const char *format, ...)
- return r < 0 ? NULL : resultp;
- }
-
-+#ifdef ENABLE_DEVICE_MAPPER
- static char *
- dm_canonical_path (PedDevice const *dev)
- {
-@@ -2326,12 +2327,17 @@ dm_canonical_path (PedDevice const *dev)
- err:
- return NULL;
- }
-+#endif
-
- static char*
- _device_get_part_path (PedDevice const *dev, int num)
- {
-+#ifdef ENABLE_DEVICE_MAPPER
- char *devpath = (dev->type == PED_DEVICE_DM
- ? dm_canonical_path (dev) : dev->path);
-+#else
-+ char *devpath = dev->path;
-+#endif
- size_t path_len = strlen (devpath);
- char *result;
- /* Check for devfs-style /disc => /partN transformation
-@@ -2946,10 +2952,12 @@ _disk_sync_part_table (PedDisk* disk)
-
-
- if (disk->dev->type == PED_DEVICE_DM) {
-+#ifdef ENABLE_DEVICE_MAPPER
- add_partition = _dm_add_partition;
- remove_partition = _dm_remove_partition;
- resize_partition = _dm_resize_partition;
- get_partition_start_and_length = _dm_get_partition_start_and_length;
-+#endif
- } else {
- add_partition = _blkpg_add_partition;
- remove_partition = _blkpg_remove_partition;
diff --git a/package/parted/patches/patch-libparted_fs_xfs_platform_defs_h b/package/parted/patches/patch-libparted_fs_xfs_platform_defs_h
index 9d6fe232d..598f75b2e 100644
--- a/package/parted/patches/patch-libparted_fs_xfs_platform_defs_h
+++ b/package/parted/patches/patch-libparted_fs_xfs_platform_defs_h
@@ -1,6 +1,6 @@
---- parted-3.1.orig/libparted/fs/xfs/platform_defs.h 2012-01-12 17:38:40.000000000 +0100
-+++ parted-3.1/libparted/fs/xfs/platform_defs.h 2013-12-25 20:53:13.000000000 +0100
-@@ -51,7 +51,7 @@
+--- parted-3.3.orig/libparted/fs/xfs/platform_defs.h 2019-10-11 00:58:51.000000000 +0200
++++ parted-3.3/libparted/fs/xfs/platform_defs.h 2020-06-06 20:12:43.000000000 +0200
+@@ -52,7 +52,7 @@
# define constpp char * const *
#endif
diff --git a/package/parted/patches/patch-libparted_labels_Makefile_am b/package/parted/patches/patch-libparted_labels_Makefile_am
new file mode 100644
index 000000000..6c32ef071
--- /dev/null
+++ b/package/parted/patches/patch-libparted_labels_Makefile_am
@@ -0,0 +1,10 @@
+--- parted-3.3.orig/libparted/labels/Makefile.am 2019-10-11 00:58:51.000000000 +0200
++++ parted-3.3/libparted/labels/Makefile.am 2020-06-06 20:29:14.000000000 +0200
+@@ -19,7 +19,6 @@ noinst_LTLIBRARIES = liblabels.la
+ liblabels_la_SOURCES = \
+ $(S390_SRCS) \
+ aix.c \
+- atari.c \
+ bsd.c \
+ dos.c \
+ dvh.c \
diff --git a/package/parted/patches/patch-libparted_labels_Makefile_in b/package/parted/patches/patch-libparted_labels_Makefile_in
new file mode 100644
index 000000000..bfc1f1e24
--- /dev/null
+++ b/package/parted/patches/patch-libparted_labels_Makefile_in
@@ -0,0 +1,57 @@
+--- parted-3.3.orig/libparted/labels/Makefile.in 2019-10-11 01:03:39.000000000 +0200
++++ parted-3.3/libparted/labels/Makefile.in 2020-06-06 20:30:12.000000000 +0200
+@@ -206,11 +206,11 @@ LTLIBRARIES = $(noinst_LTLIBRARIES)
+ am__DEPENDENCIES_1 =
+ liblabels_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+-am__liblabels_la_SOURCES_DIST = dasd.c fdasd.c vtoc.c aix.c atari.c \
++am__liblabels_la_SOURCES_DIST = dasd.c fdasd.c vtoc.c aix.c \
+ bsd.c dos.c dvh.c dvh.h efi_crc32.c gpt.c loop.c mac.c misc.h \
+ pc98.c pt-common.h pt-tools.c pt-tools.h rdb.c sun.c
+ @COMPILE_FOR_S390_TRUE@am__objects_1 = dasd.lo fdasd.lo vtoc.lo
+-am_liblabels_la_OBJECTS = $(am__objects_1) aix.lo atari.lo bsd.lo \
++am_liblabels_la_OBJECTS = $(am__objects_1) aix.lo bsd.lo \
+ dos.lo dvh.lo efi_crc32.lo gpt.lo loop.lo mac.lo pc98.lo \
+ pt-tools.lo rdb.lo sun.lo
+ liblabels_la_OBJECTS = $(am_liblabels_la_OBJECTS)
+@@ -233,7 +233,7 @@ am__v_at_1 =
+ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/lib
+ depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+ am__maybe_remake_depfiles = depfiles
+-am__depfiles_remade = ./$(DEPDIR)/aix.Plo ./$(DEPDIR)/atari.Plo \
++am__depfiles_remade = ./$(DEPDIR)/aix.Plo \
+ ./$(DEPDIR)/bsd.Plo ./$(DEPDIR)/dasd.Plo ./$(DEPDIR)/dos.Plo \
+ ./$(DEPDIR)/dvh.Plo ./$(DEPDIR)/efi_crc32.Plo \
+ ./$(DEPDIR)/fdasd.Plo ./$(DEPDIR)/gpt.Plo ./$(DEPDIR)/loop.Plo \
+@@ -1416,7 +1416,6 @@ noinst_LTLIBRARIES = liblabels.la
+ liblabels_la_SOURCES = \
+ $(S390_SRCS) \
+ aix.c \
+- atari.c \
+ bsd.c \
+ dos.c \
+ dvh.c \
+@@ -1501,7 +1500,6 @@ distclean-compile:
+ -rm -f *.tab.c
+
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/aix.Plo@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/atari.Plo@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/bsd.Plo@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dasd.Plo@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dos.Plo@am__quote@ # am--include-marker
+@@ -1683,7 +1681,6 @@ clean-am: clean-generic clean-libtool cl
+
+ distclean: distclean-am
+ -rm -f ./$(DEPDIR)/aix.Plo
+- -rm -f ./$(DEPDIR)/atari.Plo
+ -rm -f ./$(DEPDIR)/bsd.Plo
+ -rm -f ./$(DEPDIR)/dasd.Plo
+ -rm -f ./$(DEPDIR)/dos.Plo
+@@ -1744,7 +1741,6 @@ installcheck-am:
+
+ maintainer-clean: maintainer-clean-am
+ -rm -f ./$(DEPDIR)/aix.Plo
+- -rm -f ./$(DEPDIR)/atari.Plo
+ -rm -f ./$(DEPDIR)/bsd.Plo
+ -rm -f ./$(DEPDIR)/dasd.Plo
+ -rm -f ./$(DEPDIR)/dos.Plo
diff --git a/package/parted/patches/patch-libparted_libparted_c b/package/parted/patches/patch-libparted_libparted_c
new file mode 100644
index 000000000..1c5114d0c
--- /dev/null
+++ b/package/parted/patches/patch-libparted_libparted_c
@@ -0,0 +1,34 @@
+--- parted-3.3.orig/libparted/libparted.c 2019-10-11 00:58:51.000000000 +0200
++++ parted-3.3/libparted/libparted.c 2020-06-06 20:37:57.000000000 +0200
+@@ -75,7 +75,6 @@ extern void ped_disk_pc98_init ();
+ extern void ped_disk_sun_init ();
+ extern void ped_disk_amiga_init ();
+ extern void ped_disk_dasd_init ();
+-extern void ped_disk_atari_init ();
+
+ static void
+ init_disk_types ()
+@@ -86,7 +85,6 @@ init_disk_types ()
+ #if defined __s390__ || defined __s390x__
+ ped_disk_dasd_init();
+ #endif
+- ped_disk_atari_init (); /* easy false positives, so probe others first */
+ ped_disk_sun_init ();
+ #ifdef ENABLE_PC98
+ ped_disk_pc98_init ();
+@@ -143,7 +141,6 @@ extern void ped_disk_pc98_done ();
+ extern void ped_disk_sun_done ();
+ extern void ped_disk_amiga_done ();
+ extern void ped_disk_dasd_done ();
+-extern void ped_disk_atari_done ();
+
+ static void
+ done_disk_types ()
+@@ -163,7 +160,6 @@ done_disk_types ()
+ ped_disk_bsd_done ();
+ ped_disk_amiga_done ();
+ ped_disk_aix_done ();
+- ped_disk_atari_done ();
+ }
+
+ static void _init() __attribute__ ((constructor));
diff --git a/package/pciutils/Makefile b/package/pciutils/Makefile
index 3720f55f8..58a44a037 100644
--- a/package/pciutils/Makefile
+++ b/package/pciutils/Makefile
@@ -5,7 +5,7 @@ include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= pciutils
PKG_VERSION:= 3.5.1
-PKG_RELEASE:= 2
+PKG_RELEASE:= 3
PKG_HASH:= 2bf3a4605a562fb6b8b7673bff85a474a5cf383ed7e4bd8886b4f0939013d42f
PKG_DESCR:= pci utilities
PKG_SECTION:= sys/hw
@@ -13,7 +13,6 @@ PKG_DEPENDS:= zlib
PKG_BUILDDEP:= zlib
PKG_URL:= http://www.kernel.org/pub/software/utils/pciutils/
PKG_SITES:= http://www.kernel.org/pub/software/utils/pciutils/
-PKG_BB:= 1
include $(ADK_TOPDIR)/mk/package.mk
diff --git a/package/pcre/Makefile b/package/pcre/Makefile
index 435d5dcb2..c9814fbae 100644
--- a/package/pcre/Makefile
+++ b/package/pcre/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= pcre
-PKG_VERSION:= 8.41
+PKG_VERSION:= 8.45
PKG_RELEASE:= 1
-PKG_HASH:= 244838e1f1d14f7e2fa7681b857b3a8566b74215f28133f14a8f5e59241b682c
+PKG_HASH:= 4e6ce03e0336e8b4a3d6c2b70b1c5e18590a5673a98186da90d4f33c23defc09
PKG_DESCR:= perl compatible regular expression library
PKG_SECTION:= libs/misc
PKG_URL:= http://www.pcre.org/
diff --git a/package/pcre2/Makefile b/package/pcre2/Makefile
new file mode 100644
index 000000000..3bd0d9935
--- /dev/null
+++ b/package/pcre2/Makefile
@@ -0,0 +1,40 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= pcre2
+PKG_VERSION:= 10.42
+PKG_RELEASE:= 1
+PKG_HASH:= a8e52a9bd1bca8f51c5c24823adc2a99acb12288e289a6507090c1a4a4815010
+PKG_DESCR:= perl compatible regular expression library
+PKG_SECTION:= libs/misc
+PKG_BUILDDEP:= cmake-host
+HOST_BUILDDEP:= cmake-host
+PKG_SITES:= https://github.com/PCRE2Project/pcre2/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+WRKDIST= ${WRKDIR}/$(PKG_NAME)-$(PKG_NAME)-$(PKG_VERSION)
+
+include $(ADK_TOPDIR)/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,PCRE2,pcre2,${PKG_VERSION}-${PKG_RELEASE}))
+$(eval $(call PKG_template,PCRE2,pcre2,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+HOST_STYLE:= cmake
+CONFIG_STYLE:= cmake
+CMAKE_FLAGS+= -DBUILD_SHARED_LIBS=ON
+
+pcre2-hostinstall:
+ cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -j${ADK_MAKE_JOBS} -f ${MAKE_FILE} \
+ ${HOST_FAKE_FLAGS} ${HOST_INSTALL_TARGET}
+
+pcre2-install:
+ $(INSTALL_DIR) $(IDIR_PCRE2)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libpcre2*.so* \
+ $(IDIR_PCRE2)/usr/lib
+
+include ${ADK_TOPDIR}/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/pdnsd/Makefile b/package/pdnsd/Makefile
deleted file mode 100644
index 0cc15e88f..000000000
--- a/package/pdnsd/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= pdnsd
-PKG_VERSION:= 1.2.9a
-PKG_RELEASE:= 1
-PKG_HASH:= bb5835d0caa8c4b31679d6fd6a1a090b71bdf70950db3b1d0cea9cf9cb7e2a7b
-PKG_DESCR:= proxy dns server
-PKG_SECTION:= net/dns
-PKG_NEEDS:= threads
-PKG_URL:= http://members.home.nl/p.a.rombouts/pdnsd/index.html
-PKG_SITES:= http://members.home.nl/p.a.rombouts/pdnsd/releases/
-
-PKG_FLAVOURS_PDNSD:= WITH_IPV6
-PKGFD_WITH_IPV6:= enable IPv6 support
-
-PKG_HOST_DEPENDS:= !netbsd
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}-par.tar.gz
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,PDNSD,pdnsd,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-CONFIGURE_ARGS+= --with-target=Linux
-
-ifneq (${ADK_PACKAGE_PDNSD_WITH_IPV6},)
-CONFIGURE_ARGS+= --enable-ipv6
-else
-CONFIGURE_ARGS+= --disable-ipv6
-endif
-
-pdnsd-install:
- $(INSTALL_DIR) $(IDIR_PDNSD)/etc
- ${INSTALL_DATA} ./files/pdnsd.conf ${IDIR_PDNSD}/etc/
- $(INSTALL_DIR) $(IDIR_PDNSD)/usr/sbin
- $(INSTALL_BIN) $(WRKINST)/usr/sbin/pdnsd{,-ctl} $(IDIR_PDNSD)/usr/sbin/
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/pdnsd/files/pdnsd.conf b/package/pdnsd/files/pdnsd.conf
deleted file mode 100644
index 73690524a..000000000
--- a/package/pdnsd/files/pdnsd.conf
+++ /dev/null
@@ -1,36 +0,0 @@
-global {
- perm_cache = 1024;
- cache_dir = "/var/cache/pdnsd"; # do not change this!
- run_as = "nobody";
- strict_setuid = on;
- server_ip = 127.0.0.1; # Use eth0 here if you want to allow other
- # machines on your network to query pdnsd.
- status_ctl = on;
-# paranoid=on; # This option reduces the chance of cache poisoning
- # but may make pdnsd less efficient, unfortunately.
- query_method=udp_tcp;
- min_ttl=15m; # Retain cached entries at least 15 minutes.
- max_ttl=1w; # One week.
- timeout=10; # Global timeout option (10 seconds).
- proc_limit = 20;
-}
-
-# serve local host definitions
-source {
- owner = "localhost";
- serve_aliases = off; # skip everything after the first host for an IP
- file = "/etc/hosts";
-}
-
-# for dns servers via dhcp
-#server {
-# label = "dhcp";
-# file = "/var/resolv.conf";
-# exclude = ".lan";
-# policy = fqdn_only;
-# timeout = 4;
-# uptest = if;
-# interface = "eth0";
-# interval = 60;
-#}
-
diff --git a/package/pdnsd/files/pdnsd.conffiles b/package/pdnsd/files/pdnsd.conffiles
deleted file mode 100644
index c2ae46acb..000000000
--- a/package/pdnsd/files/pdnsd.conffiles
+++ /dev/null
@@ -1 +0,0 @@
-/etc/pdnsd.conf
diff --git a/package/pdnsd/files/pdnsd.init b/package/pdnsd/files/pdnsd.init
deleted file mode 100644
index 5d6111e69..000000000
--- a/package/pdnsd/files/pdnsd.init
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-#PKG pdnsd
-#INIT 60
-. /etc/rc.conf
-
-case $1 in
-autostop) ;;
-autostart)
- test x"${pdnsd:-NO}" = x"NO" && exit 0
- test x"$pdnsd" = x"DAEMON" && test -x /bin/mksh && exec mksh -T- $0 start
- exec sh $0 start
- ;;
-start)
- [ -f /etc/pdnsd.conf ] || exit
- mkdir -p /var/cache/pdnsd
- touch /var/cache/pdnsd/pdnsd.cache
- # this allows for strict_setuid
- chown -R nobody:nogroup /var/cache/pdnsd
- /usr/sbin/pdnsd -d
- ;;
-stop)
- kill $(pgrep -f /usr/sbin/pdnsd)
- ;;
-restart)
- sh $0 stop
- sleep 1
- sh $0 start
- ;;
-*)
- echo "Usage: $0 {start | stop | restart}"
- exit 1
- ;;
-esac
-exit $?
diff --git a/package/pdnsd/files/pdnsd.postinst b/package/pdnsd/files/pdnsd.postinst
deleted file mode 100644
index 98ba25099..000000000
--- a/package/pdnsd/files/pdnsd.postinst
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-. $IPKG_INSTROOT/etc/functions.sh
-add_rcconf pdnsd NO
diff --git a/package/perf/Makefile b/package/perf/Makefile
index 2e7188c14..61680c399 100644
--- a/package/perf/Makefile
+++ b/package/perf/Makefile
@@ -28,12 +28,10 @@ BUILD_STYLE:= manual
INSTALL_STYLE:= manual
do-build:
- $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" \
- $(KERNEL_MAKE_OPTS) WERROR=0 -C "$(LINUX_DIR)/tools/perf" all
+ ${KERNEL_MAKE} WERROR=0 -C "$(LINUX_DIR)/tools/perf" all
do-install:
- $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" \
- $(KERNEL_MAKE_OPTS) WERROR=0 -C "$(LINUX_DIR)/tools/perf" \
+ ${KERNEL_MAKE} WERROR=0 -C "$(LINUX_DIR)/tools/perf" \
prefix="$(WRKINST)" install
perf-install:
diff --git a/package/perl/Makefile b/package/perl/Makefile
index 63b56c2c5..788d08745 100644
--- a/package/perl/Makefile
+++ b/package/perl/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= perl
-PKG_VERSION:= 5.24.1
+PKG_VERSION:= 5.38.2
PKG_RELEASE:= 1
-PKG_HASH:= 03a77bac4505c270f1890ece75afc7d4b555090b41aa41ea478747e23b2afb3f
+PKG_HASH:= d91115e90b896520e83d4de6b52f8254ef2b70a8d545ffab33200ea9f1cf29e8
PKG_DESCR:= perl interpreter
PKG_SECTION:= dev/lang
PKG_NEEDS:= threads
@@ -14,7 +14,7 @@ PKG_URL:= http://www.perl.org/
PKG_SITES:= http://www.cpan.org/src/
PKG_NOPARALLEL:= 1
-PC_VERSION:= 1.1.5
+PC_VERSION:= 1.5.2
PC_SITE:= https://github.com/arsv/perl-cross/releases/download/$(PC_VERSION)
include ${ADK_TOPDIR}/mk/host.mk
@@ -55,6 +55,7 @@ pre-configure:
cd $(DL_DIR); wget $(PC_SITE)/perl-cross-$(PC_VERSION).tar.gz; \
fi)
(cd $(WRKSRC); tar --strip-components=1 -xf $(DL_DIR)/perl-cross-$(PC_VERSION).tar.gz)
+ $(CP) $(SCRIPT_DIR)/config.* $(WRKSRC)/cnf
perl-install:
${INSTALL_DIR} ${IDIR_PERL}/usr/bin
diff --git a/package/php/Makefile b/package/php/Makefile
index ad956ab9f..7b9a1e81b 100644
--- a/package/php/Makefile
+++ b/package/php/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= php
-PKG_VERSION:= 7.0.27
+PKG_VERSION:= 8.3.2
PKG_RELEASE:= 1
-PKG_HASH:= 4b2bc823e806dbf7b62fe0b92b0d14b0c6e03f88c3fc5d96278416c54ce11f6c
+PKG_HASH:= 4ffa3e44afc9c590e28dc0d2d31fc61f0139f8b335f11880a121b9f9b9f0634e
PKG_DESCR:= php language interpreter
PKG_SECTION:= dev/lang
PKG_NEEDS:= threads
@@ -23,7 +23,7 @@ PKGSN_PHP_CLI:= php
PKG_FLAVOURS_PHP:= MOD_BZ2 MOD_CURL MOD_FTP MOD_GD MOD_GMP MOD_MARIADB
PKG_FLAVOURS_PHP+= MOD_SSL MOD_SESSION MOD_SNMP MOD_SQLITE
-PKG_FLAVOURS_PHP+= MOD_SOCKETS MOD_XML MOD_SIMPLEXML MOD_ZLIB MOD_JSON
+PKG_FLAVOURS_PHP+= MOD_SOCKETS MOD_XML MOD_SIMPLEXML MOD_ZLIB
PKG_FLAVOURS_PHP+= MOD_LDAP MOD_PCNTL
PKGFD_MOD_BZ2:= bzip2 support
@@ -34,17 +34,14 @@ PKGFB_MOD_CURL:= curl
PKGFS_MOD_CURL:= libcurl
PKGFD_MOD_FTP:= ftp support
PKGFD_MOD_GD:= gd support
-PKGFB_MOD_GD:= libgd libpng libjpeg-turbo libXpm
-PKGFS_MOD_GD:= libgd libpng libjpeg-turbo libxpm
PKGFD_MOD_GMP:= gmp support
PKGFB_MOD_GMP:= gmp
PKGFS_MOD_GMP:= libgmp
-PKGFD_MOD_JSON:= json support
PKGFD_MOD_LDAP:= ldap support
PKGFB_MOD_LDAP:= openldap
PKGFS_MOD_LDAP:= libopenldap
PKGFD_MOD_MARIADB:= mariadb support
-PKGFS_MOD_MARIADB:= libmariadb
+PKGFS_MOD_MARIADB:= libmariadbclient
PKGFB_MOD_MARIADB:= mariadb
PKGFD_MOD_SSL:= ssl support
PKGFB_MOD_SSL:= libressl
@@ -92,7 +89,6 @@ PKG_CONFIGURE_OPTS:= \
--enable-cgi \
--enable-fpm \
--enable-opcache=no \
- --disable-hash \
--disable-mbstring \
--disable-mbregex \
--disable-phar \
@@ -109,7 +105,6 @@ PKG_CONFIGURE_OPTS:= \
--without-gettext \
--without-pgsql \
--without-iconv \
- --with-pcre-regex=no \
--with-kerberos=no
ifneq ($(ADK_PACKAGE_PHP_MOD_BZ2),)
@@ -128,26 +123,15 @@ else
PKG_CONFIGURE_OPTS+= --disable-ftp
endif
ifneq ($(ADK_PACKAGE_PHP_MOD_GD),)
-PKG_CONFIGURE_OPTS+= --with-gd=shared,"$(STAGING_TARGET_DIR)/usr" \
- --with-png-dir="$(STAGING_TARGET_DIR)/usr" \
- --with-jpeg-dir="$(STAGING_TARGET_DIR)/usr" \
- --without-freetype-dir \
- --without-t1lib \
- --enable-gd-native-ttf \
- --disable-gd-jis-conv
+PKG_CONFIGURE_OPTS+= --enable-gd=shared
else
-PKG_CONFIGURE_OPTS+= --without-gd
+PKG_CONFIGURE_OPTS+= --disable-gd
endif
ifneq ($(ADK_PACKAGE_PHP_MOD_GMP),)
PKG_CONFIGURE_OPTS+= --with-gmp=shared,"$(STAGING_TARGET_DIR)/usr"
else
PKG_CONFIGURE_OPTS+= --without-gmp
endif
-ifneq ($(ADK_PACKAGE_PHP_MOD_JSON),)
-PKG_CONFIGURE_OPTS+= --enable-json=shared,"$(STAGING_TARGET_DIR)/usr"
-else
-PKG_CONFIGURE_OPTS+= --disable-json
-endif
ifneq ($(ADK_PACKAGE_PHP_MOD_LDAP),)
PKG_CONFIGURE_OPTS+= --with-ldap=shared,"$(STAGING_TARGET_DIR)/usr" \
--with-ldap-sasl="$(STAGING_TARGET_DIR)/usr"
@@ -156,6 +140,7 @@ PKG_CONFIGURE_OPTS+= --without-ldap
endif
ifneq ($(ADK_PACKAGE_PHP_MOD_MARIADB),)
PKG_CONFIGURE_OPTS+= --with-pdo-mysql=shared,"$(STAGING_TARGET_DIR)/usr"
+TARGET_CFLAGS+= -I$(STAGING_TARGET_DIR)/usr/include/mysql
else
PKG_CONFIGURE_OPTS+= --without-pdo-mysql
endif
@@ -200,9 +185,9 @@ else
PKG_CONFIGURE_OPTS+= --disable-xml
endif
ifneq ($(ADK_PACKAGE_PHP_MOD_SIMPLEXML),)
-PKG_CONFIGURE_OPTS+= --enable-simplexml=shared --enable-libxml --with-libxml-dir="$(STAGING_TARGET_DIR)/usr"
+PKG_CONFIGURE_OPTS+= --enable-simplexml=shared
else
-PKG_CONFIGURE_OPTS+= --disable-simplexml --disable-libxml
+PKG_CONFIGURE_OPTS+= --disable-simplexml
endif
ifneq ($(ADK_PACKAGE_PHP_MOD_ZLIB),)
PKG_CONFIGURE_OPTS+= --with-zlib=shared,"$(STAGING_TARGET_DIR)/usr"
@@ -215,7 +200,6 @@ $(eval $(call PKG_template,PHP_MOD_CURL,php-mod-curl,$(PKG_VERSION)-${PKG_RELEAS
$(eval $(call PKG_template,PHP_MOD_FTP,php-mod-ftp,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,PHP_MOD_GD,php-mod-gd,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,PHP_MOD_GMP,php-mod-gmp,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-$(eval $(call PKG_template,PHP_MOD_JSON,php-mod-json,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,PHP_MOD_LDAP,php-mod-ldap,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,PHP_MOD_MARIADB,php-mod-mariadb,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,PHP_MOD_OPENSSL,php-mod-openssl,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
@@ -232,7 +216,6 @@ $(eval $(call PKG_mod_template,PHP_MOD_CURL,curl))
$(eval $(call PKG_mod_template,PHP_MOD_FTP,ftp))
$(eval $(call PKG_mod_template,PHP_MOD_GD,gd))
$(eval $(call PKG_mod_template,PHP_MOD_GMP,gmp))
-$(eval $(call PKG_mod_template,PHP_MOD_JSON,json))
$(eval $(call PKG_mod_template,PHP_MOD_LDAP,ldap))
$(eval $(call PKG_mod_template,PHP_MOD_MARIADB,pdo_mysql))
$(eval $(call PKG_mod_template,PHP_MOD_OPENSSL,openssl))
diff --git a/package/php/files/php-fpm.conf b/package/php/files/php-fpm.conf
index 90b6be5ea..bf057ac93 100644
--- a/package/php/files/php-fpm.conf
+++ b/package/php/files/php-fpm.conf
@@ -359,7 +359,7 @@ chdir = /
;env[TEMP] = /tmp
; Additional php.ini defines, specific to this pool of workers. These settings
-; overwrite the values previously defined in the php.ini. The directives are the
+; override the values previously defined in the php.ini. The directives are the
; same as the PHP SAPI:
; php_value/php_flag - you can set classic ini defines which can
; be overwritten from PHP call 'ini_set'.
@@ -369,7 +369,7 @@ chdir = /
; Defining 'extension' will load the corresponding shared extension from
; extension_dir. Defining 'disable_functions' or 'disable_classes' will not
-; overwrite previously defined php.ini values, but will append the new value
+; override previously defined php.ini values, but will append the new value
; instead.
; Note: path INI options can be relative and will be expanded with the prefix
diff --git a/package/php/files/php.init b/package/php/files/php.init
index 5168bdd3e..a113500b6 100644
--- a/package/php/files/php.init
+++ b/package/php/files/php.init
@@ -16,14 +16,14 @@ start)
if [ -x /usr/bin/php-cgi ];then
/usr/bin/php-cgi -b /var/run/php5.sock &
else
- /usr/bin/php-fpm -D
+ /usr/bin/php -D
fi
;;
stop)
if [ -x /usr/bin/php-cgi ];then
pkill php-cgi
else
- pkill php-fpm
+ pkill php
fi
;;
restart)
diff --git a/package/picocom/Makefile b/package/picocom/Makefile
index 6e06e23b7..e1a3e146a 100644
--- a/package/picocom/Makefile
+++ b/package/picocom/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= picocom
-PKG_VERSION:= 2.1
+PKG_VERSION:= 3.1
PKG_RELEASE:= 1
-PKG_HASH:= 6b152fc5f816eaef6b86336a4cec7cf1496b7c712061e5aea5a36f143a0b09ed
+PKG_HASH:= e6761ca932ffc6d09bd6b11ff018bdaf70b287ce518b3282d29e0270e88420bb
PKG_DESCR:= minimal dumb-terminal emulation program
PKG_SECTION:= sys/serial
PKG_URL:= https://github.com/npat-efault/picocom/
diff --git a/package/picocom/patches/patch-Makefile b/package/picocom/patches/patch-Makefile
deleted file mode 100644
index 5d6911113..000000000
--- a/package/picocom/patches/patch-Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
---- picocom-2.1.orig/Makefile 2015-10-15 23:25:02.000000000 +0200
-+++ picocom-2.1/Makefile 2016-09-23 15:45:44.240688077 +0200
-@@ -1,12 +1,12 @@
-
- VERSION = 2.1
-
--#CC = gcc
-+CC ?= gcc
- CPPFLAGS = -DVERSION_STR=\"$(VERSION)\"
--CFLAGS = -Wall -g
-+CFLAGS ?= -Wall -g
-
- LD = $(CC)
--LDFLAGS = -g
-+LDFLAGS ?= -g
- LDLIBS =
-
- all: picocom
diff --git a/package/picocom/patches/patch-linenoise-1_0_Makefile b/package/picocom/patches/patch-linenoise-1_0_Makefile
deleted file mode 100644
index d7c7a6526..000000000
--- a/package/picocom/patches/patch-linenoise-1_0_Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
---- picocom-2.1.orig/linenoise-1.0/Makefile 2015-10-15 23:25:02.000000000 +0200
-+++ picocom-2.1/linenoise-1.0/Makefile 2016-09-23 15:44:57.086909523 +0200
-@@ -1,7 +1,7 @@
- linenoise_example: linenoise.h linenoise.c
-
- linenoise_example: linenoise.c example.c
-- $(CC) -Wall -W -Os -g -o linenoise_example linenoise.c example.c
-+ $(CC) $(CFLAGS) -o linenoise_example linenoise.c example.c
-
- clean:
- rm -f linenoise_example
diff --git a/package/pinentry/Makefile b/package/pinentry/Makefile
new file mode 100644
index 000000000..93fd39c59
--- /dev/null
+++ b/package/pinentry/Makefile
@@ -0,0 +1,26 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= pinentry
+PKG_VERSION:= 1.2.0
+PKG_RELEASE:= 1
+PKG_HASH:= 10072045a3e043d0581f91cd5676fcac7ffee957a16636adedaa4f583a616470
+PKG_DESCR:= pinentry application
+PKG_SECTION:= app/crypto
+PKG_URL:= https://www.gnupg.org
+PKG_SITES:= https://www.gnupg.org/ftp/gcrypt/pinentry/
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,PINENTRY,pinentry,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+pinentry-install:
+ $(INSTALL_DIR) $(IDIR_PINENTRY)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/pinentry \
+ $(IDIR_PINENTRY)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/pkgconf/Makefile b/package/pkgconf/Makefile
index bded34468..77dbba517 100644
--- a/package/pkgconf/Makefile
+++ b/package/pkgconf/Makefile
@@ -4,16 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= pkgconf
-PKG_VERSION:= 0.9.6
-PKG_RELEASE:= 1
-PKG_HASH:= 8f5f48e52ddef0c3cbffe93f32d5148041e0030b8798b49b0b5fe72f4968d7ec
+PKG_VERSION:= 1.1.0
+PKG_RELEASE:= 2
+PKG_HASH:= 5f1ef65d73a880fa5e7012102a17f7b32010e5e46139aed85851a541ba828a63
PKG_DESCR:= smart pkg-config replacement
PKG_SECTION:= dev/tools
HOST_BUILDDEP:= sed-host
-PKG_URL:= https://github.com/pkgconf/pkgconf
-PKG_SITES:= http://rabbit.dereferenced.org/~nenolod/distfiles/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+PKG_URL:= http://pkgconf.org/
+PKG_SITES:= https://distfiles.dereferenced.org/pkgconf/
include $(ADK_TOPDIR)/mk/host.mk
include $(ADK_TOPDIR)/mk/package.mk
@@ -31,6 +29,9 @@ endif
(cd $(STAGING_HOST_DIR)/usr/bin && ln -sf pkg-config $(GNU_TARGET_NAME)-pkg-config)
pkgconf-install:
+ $(INSTALL_DIR) $(IDIR_PKGCONF)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libpkgconf*so* \
+ $(IDIR_PKGCONF)/usr/lib
$(INSTALL_DIR) $(IDIR_PKGCONF)/usr/bin
$(INSTALL_BIN) $(WRKINST)/usr/bin/pkgconf \
$(IDIR_PKGCONF)/usr/bin
diff --git a/package/platform/Makefile b/package/platform/Makefile
deleted file mode 100644
index c23c3e21a..000000000
--- a/package/platform/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= platform
-PKG_VERSION:= aafa6e9f3b86f2258f5f75809849743b1779072b
-PKG_RELEASE:= 1
-PKG_GIT:= hash
-PKG_DESCR:= platform library used by libcec
-PKG_SECTION:= libs/misc
-PKG_URL:= https://github.com/Pulse-Eight/platform
-PKG_SITES:= https://github.com/Pulse-Eight/platform.git
-PKG_LIBNAME:= libplatform
-PKG_OPTS:= dev
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,LIBPLATFORM,libplatform,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
-
-CONFIG_STYLE:= cmake
-
-libplatform-install:
- :
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/pmacct/Makefile b/package/pmacct/Makefile
index bfba469b8..1368c276c 100644
--- a/package/pmacct/Makefile
+++ b/package/pmacct/Makefile
@@ -4,13 +4,13 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= pmacct
-PKG_VERSION:= 0.12.5
+PKG_VERSION:= 1.7.8
PKG_RELEASE:= 1
-PKG_HASH:= 5252d7df24e9baefcc5a36ed66e9cac5ae505c9d502c8cffb96e6808acbb2fe8
+PKG_HASH:= 4df50a3c6c7bdace3345bbf3bd4f6fa7a6722ec1fb45dfd266ad956b327da98a
PKG_DESCR:= ip accounting tools
PKG_SECTION:= net/acct
-PKG_DEPENDS:= libpcap
-PKG_BUILDDEP:= libpcap
+PKG_DEPENDS:= libpcap libcdada
+PKG_BUILDDEP:= libpcap libcdada
PKG_URL:= http://www.pmacct.net/
PKG_SITES:= http://www.pmacct.net/
@@ -26,7 +26,8 @@ $(eval $(call PKG_template,SFACCTD,sfacctd,$(PKG_VERSION)-${PKG_RELEASE},${PKG_D
$(eval $(call PKG_template,PMACCT_CLIENT,pmacct-client,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
CONFIGURE_ARGS+= --with-pcap-includes="$(STAGING_TARGET_DIR)/usr/include" \
- --with-pcap-libs="$(STAGING_TARGET_DIR)/usr/lib"
+ --with-pcap-libs="$(STAGING_TARGET_DIR)/usr/lib" \
+ --without-external-deps
sfacctd-install:
${INSTALL_DIR} $(IDIR_SFACCTD)/usr/sbin
diff --git a/package/pmacct/patches/patch-configure b/package/pmacct/patches/patch-configure
deleted file mode 100644
index 0c7310ba6..000000000
--- a/package/pmacct/patches/patch-configure
+++ /dev/null
@@ -1,41 +0,0 @@
---- pmacct-0.12.5.orig/configure 2010-12-28 17:26:21.000000000 +0100
-+++ pmacct-0.12.5/configure 2011-01-21 21:15:15.478658080 +0100
-@@ -1006,7 +1006,6 @@ fi
-
- ac_test_CFLAGS="${CFLAGS+set}"
- ac_save_CFLAGS="$CFLAGS"
--CFLAGS=
- echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
- echo "configure:1012: checking whether ${CC-cc} accepts -g" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
-@@ -1022,22 +1021,6 @@ rm -f conftest*
-
- fi
-
--echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
--if test "$ac_test_CFLAGS" = set; then
-- CFLAGS="$ac_save_CFLAGS"
--elif test $ac_cv_prog_cc_g = yes; then
-- if test "$GCC" = yes; then
-- CFLAGS="-g -O2"
-- else
-- CFLAGS="-g"
-- fi
--else
-- if test "$GCC" = yes; then
-- CFLAGS="-O2"
-- else
-- CFLAGS=
-- fi
--fi
-
- host_os=`uname`
- host_cpu=`uname -m`
-@@ -1083,7 +1066,6 @@ fi
-
-
- if test "x$ac_cv_prog_gcc" = xyes ; then
-- CFLAGS="-O2"
- case "$host_os" in
- IRIX*)
- CFLAGS="-mabi=n32 -fno-builtins ${CFLAGS}"
diff --git a/package/poco/Makefile b/package/poco/Makefile
index 3f564ea58..dfaab9299 100644
--- a/package/poco/Makefile
+++ b/package/poco/Makefile
@@ -4,15 +4,15 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= poco
-PKG_VERSION:= 1.6.0
+PKG_VERSION:= 1.9.4
PKG_RELEASE:= 1
-PKG_HASH:= 8e745271d57db8d544d5c8e37b3b7db01d7934e0257a41af0b8da9ee8b1554ee
+PKG_HASH:= 1bcaff7b1f7dfcbe573ddf0bf7e251e93072355ecc468c075339920c97e39c8f
PKG_DESCR:= c++ network libraries
PKG_SECTION:= libs/misc
PKG_BUILDDEP:= zlib pcre
PKG_DEPENDS:= zlib libpcre
PKG_URL:= http://pocoproject.org
-PKG_SITES:= http://pocoproject.org/releases/poco-1.6.0/
+PKG_SITES:= http://pocoproject.org/releases/poco-1.9.4/
PKG_OPTS:= dev
PKG_LIBC_DEPENDS:= glibc
diff --git a/package/popt/Makefile b/package/popt/Makefile
index 5ae57ffae..bd1746a90 100644
--- a/package/popt/Makefile
+++ b/package/popt/Makefile
@@ -4,17 +4,20 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= popt
-PKG_VERSION:= 1.16
-PKG_RELEASE:= 4
-PKG_HASH:= e728ed296fe9f069a0e005003c3d6b2dde3d9cad453422a10d6558616d304cc8
+PKG_VERSION:= 1.19
+PKG_RELEASE:= 1
+PKG_HASH:= 6eb40d650526cb9fe63eb4415bcecdf9cf306f7556e77eff689abc5a44670060
PKG_DESCR:= command line option parsing library
PKG_SECTION:= libs/misc
PKG_URL:= http://rpm5.org/
-PKG_SITES:= http://rpm5.org/files/popt/
+PKG_BUILDDEP:= gettext-host
+HOST_BUILDDEP:= gettext-host libtool-host
+PKG_SITES:= https://github.com/rpm-software-management/popt/archive/refs/tags/
PKG_LIBNAME:= libpopt
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}-release.tar.gz
+WRKDIST= ${WRKDIR}/${PKG_NAME}-${PKG_NAME}-${PKG_VERSION}-release
include ${ADK_TOPDIR}/mk/host.mk
include ${ADK_TOPDIR}/mk/package.mk
@@ -22,6 +25,8 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call HOST_template,POPT,popt,${PKG_VERSION}-${PKG_RELEASE}))
$(eval $(call PKG_template,LIBPOPT,libpopt,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
+AUTOTOOL_STYLE:= autogen
+
libpopt-install:
${INSTALL_DIR} ${IDIR_LIBPOPT}/usr/lib
${CP} ${WRKINST}/usr/lib/libpopt.so* ${IDIR_LIBPOPT}/usr/lib
diff --git a/package/popt/patches/patch-Makefile_am b/package/popt/patches/patch-Makefile_am
new file mode 100644
index 000000000..0c25da403
--- /dev/null
+++ b/package/popt/patches/patch-Makefile_am
@@ -0,0 +1,11 @@
+--- popt-popt-1.19-release.orig/Makefile.am 2022-09-16 09:05:46.000000000 +0200
++++ popt-popt-1.19-release/Makefile.am 2022-09-21 02:11:30.830446841 +0200
+@@ -4,7 +4,7 @@ MCCABE = pmccabe
+
+ EXTRA_DIST = autogen.sh CREDITS $(man_MANS) ci/Dockerfile build-aux popt.pdf
+
+-SUBDIRS = src po tests
++SUBDIRS = src
+
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = popt.pc
diff --git a/package/popt/patches/patch-ltmain_sh b/package/popt/patches/patch-ltmain_sh
deleted file mode 100644
index 821e07bad..000000000
--- a/package/popt/patches/patch-ltmain_sh
+++ /dev/null
@@ -1,11 +0,0 @@
---- popt-1.16.orig/ltmain.sh 2010-05-04 22:55:45.000000000 +0200
-+++ popt-1.16/ltmain.sh 2011-02-05 23:13:17.000000000 +0100
-@@ -4765,7 +4765,7 @@ func_mode_link ()
- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
- # @file GCC response files
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
-+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-fstack-protector*|-flto*)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
diff --git a/package/ppp/patches/patch-pppd_plugins_rp-pppoe_plugin_c b/package/ppp/patches/patch-pppd_plugins_rp-pppoe_plugin_c
index 6a8cb0d8c..d6ec94c69 100644
--- a/package/ppp/patches/patch-pppd_plugins_rp-pppoe_plugin_c
+++ b/package/ppp/patches/patch-pppd_plugins_rp-pppoe_plugin_c
@@ -1,10 +1,11 @@
---- ppp-2.4.6.orig/pppd/plugins/rp-pppoe/plugin.c 2014-01-02 05:42:08.000000000 +0100
-+++ ppp-2.4.6/pppd/plugins/rp-pppoe/plugin.c 2014-06-05 20:42:29.000000000 +0200
-@@ -46,7 +46,6 @@ static char const RCSID[] =
- #include <unistd.h>
- #include <fcntl.h>
- #include <signal.h>
--#include <net/ethernet.h>
+--- ppp-2.4.7.orig/pppd/plugins/rp-pppoe/plugin.c 2014-08-09 14:31:39.000000000 +0200
++++ ppp-2.4.7/pppd/plugins/rp-pppoe/plugin.c 2021-11-04 04:11:17.756625845 +0100
+@@ -49,6 +49,8 @@ static char const RCSID[] =
+ #include <net/ethernet.h>
#include <net/if_arp.h>
#include <linux/ppp_defs.h>
++#define _LINUX_IN_H
++#define _LINUX_IN6_H
#include <linux/if_pppox.h>
+
+ #ifndef _ROOT_PATH
diff --git a/package/protobuf-c/Makefile b/package/protobuf-c/Makefile
new file mode 100644
index 000000000..f2a218e4f
--- /dev/null
+++ b/package/protobuf-c/Makefile
@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= protobuf-c
+PKG_VERSION:= 1.5.0
+PKG_RELEASE:= 1
+PKG_HASH:= d4cb022d55f49796959b07a9d83040822e39129bc0eb28f4e8301da17d758f62
+PKG_DESCR:= protocol buffers implementation in c
+PKG_SECTION:= libs/misc
+PKG_BUILDDEP:= protobuf-c-host
+PKG_SITES:= https://github.com/protobuf-c/protobuf-c/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,PROTOBUF_C,protobuf-c,$(PKG_VERSION)-$(PKG_RELEASE)))
+$(eval $(call PKG_template,PROTOBUF_C,protobuf-c,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+AUTOTOOL_STYLE:= autogen
+CONFIGURE_ENV+= PROTOC="$(STAGING_HOST_DIR)/usr/bin/protoc"
+
+protobuf-c-install:
+ $(INSTALL_DIR) $(IDIR_PROTOBUF_C)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libprotobuf-c*.so* \
+ $(IDIR_PROTOBUF_C)/usr/lib
+
+include $(ADK_TOPDIR)/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/protobuf/Makefile b/package/protobuf/Makefile
index bff6f1084..10920ae2f 100644
--- a/package/protobuf/Makefile
+++ b/package/protobuf/Makefile
@@ -4,12 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= protobuf
-PKG_VERSION:= 3.1.0
+PKG_VERSION:= 3.19.4
PKG_RELEASE:= 1
-PKG_HASH:= 0a0ae63cbffc274efb573bdde9a253e3f32e458c41261df51c5dbc5ad541e8f7
+PKG_HASH:= 3bd7828aa5af4b13b99c191e8b1e884ebfa9ad371b0ce264605d347f135d2568
PKG_DESCR:= extensible mechanism for serializing structured data
PKG_SECTION:= libs/misc
PKG_URL:= https://developers.google.com/protocol-buffers/
+PKG_BUILDDEP:= protobuf-host
+PKG_NEEDS:= c++
PKG_SITES:= https://github.com/google/protobuf/archive/
PKG_OPTS:= dev
diff --git a/package/proxychains-ng/Makefile b/package/proxychains-ng/Makefile
new file mode 100644
index 000000000..ac09b78fb
--- /dev/null
+++ b/package/proxychains-ng/Makefile
@@ -0,0 +1,32 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= proxychains-ng
+PKG_VERSION:= 4.17
+PKG_RELEASE:= 1
+PKG_HASH:= 1a2dc68fcbcb2546a07a915343c1ffc75845f5d9cc3ea5eb3bf0b62a66c0196f
+PKG_DESCR:= socks proxy
+PKG_SECTION:= net/proxy
+PKG_SITES:= https://github.com/rofl0r/proxychains-ng/archive/refs/tags/
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,PROXYCHAINS_NG,proxychains-ng,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+proxychains-ng-install:
+ $(INSTALL_DIR) $(IDIR_PROXYCHAINS_NG)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/proxychains4* \
+ $(IDIR_PROXYCHAINS_NG)/usr/bin
+ $(INSTALL_DIR) $(IDIR_PROXYCHAINS_NG)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libproxychains4.so \
+ $(IDIR_PROXYCHAINS_NG)/usr/lib
+ $(INSTALL_DIR) $(IDIR_PROXYCHAINS_NG)/etc
+ $(CP) $(WRKBUILD)/src/proxychains.conf \
+ $(IDIR_PROXYCHAINS_NG)/etc
+
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/pulseaudio/Makefile b/package/pulseaudio/Makefile
index 68030d227..f0ff6e102 100644
--- a/package/pulseaudio/Makefile
+++ b/package/pulseaudio/Makefile
@@ -4,16 +4,17 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= pulseaudio
-PKG_VERSION:= 10.0
+PKG_VERSION:= 15.0
PKG_RELEASE:= 1
-PKG_HASH:= a3186824de9f0d2095ded5d0d0db0405dc73133983c2fbb37291547e37462f57
+PKG_HASH:= a40b887a3ba98cc26976eb11bdb6613988f145b19024d1b6555c6a03c9cba1a0
PKG_DESCR:= sound system
PKG_SECTION:= mm/audio
PKG_DEPENDS:= libltdl json-c libsndfile libspeex libncurses
PKG_DEPENDS+= libflac libvorbis libogg libuuid libsndfile
-PKG_DEPENDS+= alsa-lib
-PKG_BUILDDEP:= libtool json-c libsndfile speex
+PKG_DEPENDS+= alsa-lib libICE libSM libxtst glib
+PKG_BUILDDEP:= libtool json-c libsndfile speex check meson-host
PKG_BUILDDEP+= flac libvorbis libogg util-linux ncurses alsa-lib
+PKG_BUILDDEP+= libICE libSM libXtst glib
PKG_NEEDS:= threads
PKG_URL:= http://www.freedesktop.org/wiki/Software/PulseAudio/
PKG_SITES:= http://freedesktop.org/software/pulseaudio/releases/
@@ -23,40 +24,18 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,PULSEAUDIO,pulseaudio,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-TARGET_CPPFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
-# use libtool from host directory
-AUTOTOOL_STYLE:= autoreconf
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
-ifeq ($(ADK_TARGET_ARCH_ARM_WITH_NEON),y)
-CONFIGURE_ARGS+= --enable-neon-opt
-else
-CONFIGURE_ARGS+= --disable-neon-opt
-endif
+TARGET_CPPFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE
-CONFIGURE_ARGS+= --disable-manpages \
- --disable-tests \
- --disable-x11 \
- --disable-avahi \
- --disable-lirc \
- --disable-openssl \
- --disable-orc \
- --disable-tcpwrap \
- --disable-oss-output \
- --disable-oss-wrapper \
- --disable-esound \
- --disable-jack \
- --disable-gconf \
- --disable-udev \
- --disable-rpath \
- --disable-dbus \
- --disable-hal-compat \
- --disable-samplerate \
- --without-caps \
- --with-database=simple \
- --enable-alsa \
- --with-speex \
- --with-access-group=audio
+MESON_FLAGS+= -Ddatabase=simple \
+ -Ddoxygen=false \
+ -Dgcov=false \
+ -Dtests=false
pulseaudio-install:
$(INSTALL_DIR) $(IDIR_PULSEAUDIO)/etc/pulse
diff --git a/package/pulseaudio/patches/patch-Makefile_am b/package/pulseaudio/patches/patch-Makefile_am
deleted file mode 100644
index 11132dad5..000000000
--- a/package/pulseaudio/patches/patch-Makefile_am
+++ /dev/null
@@ -1,11 +0,0 @@
---- pulseaudio-10.0.orig/Makefile.am 2017-01-18 04:45:11.000000000 +0100
-+++ pulseaudio-10.0/Makefile.am 2017-06-06 19:51:59.372820444 +0200
-@@ -42,7 +42,7 @@ EXTRA_DIST = \
- src/daemon/.gitignore \
- src/pulse/.gitignore
-
--SUBDIRS = src doxygen man po
-+SUBDIRS = src
-
- MAINTAINERCLEANFILES =
- noinst_DATA =
diff --git a/package/pulseaudio/patches/patch-configure_ac b/package/pulseaudio/patches/patch-configure_ac
deleted file mode 100644
index 2ba044a9b..000000000
--- a/package/pulseaudio/patches/patch-configure_ac
+++ /dev/null
@@ -1,55 +0,0 @@
---- pulseaudio-10.0.orig/configure.ac 2017-01-13 04:02:18.000000000 +0100
-+++ pulseaudio-10.0/configure.ac 2017-06-06 20:05:26.400612037 +0200
-@@ -97,24 +97,8 @@ AS_IF([test "x$M4" = "xno"], AC_MSG_ERRO
-
- PKG_PROG_PKG_CONFIG
-
--# gettext
--
--if test "x$enable_nls" != "xno"; then
--IT_PROG_INTLTOOL([0.35.0])
--
--AM_GNU_GETTEXT_VERSION([0.18.1])
--AM_GNU_GETTEXT([external])
--
--GETTEXT_PACKAGE=pulseaudio
--AC_SUBST([GETTEXT_PACKAGE])
--AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
--else
--# workaround till an intltool m4 bug is fixed upstream
--# (https://bugs.launchpad.net/intltool/+bug/904647)
- USE_NLS=no
- AC_SUBST(USE_NLS)
--fi
--
-
- #### Determine host OS ####
-
-@@ -1486,27 +1470,10 @@ AM_CONDITIONAL([FORCE_PREOPEN], [test "x
- AC_CONFIG_FILES([
- Makefile
- src/Makefile
--man/Makefile
- libpulse.pc
- libpulse-simple.pc
- libpulse-mainloop-glib.pc
--doxygen/Makefile
--doxygen/doxygen.conf
- src/pulse/version.h
--po/Makefile.in
--man/pulseaudio.1.xml
--man/esdcompat.1.xml
--man/pax11publish.1.xml
--man/pacat.1.xml
--man/pacmd.1.xml
--man/pactl.1.xml
--man/pasuspender.1.xml
--man/padsp.1.xml
--man/pulse-daemon.conf.5.xml
--man/pulse-client.conf.5.xml
--man/default.pa.5.xml
--man/pulse-cli-syntax.5.xml
--man/start-pulseaudio-x11.1.xml
- ])
-
- AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
diff --git a/package/py-spidev/Makefile b/package/py-spidev/Makefile
index 00ee559c4..aa9a6ea84 100644
--- a/package/py-spidev/Makefile
+++ b/package/py-spidev/Makefile
@@ -9,8 +9,8 @@ PKG_RELEASE:= 1
PKG_GIT:= hash
PKG_DESCR:= module for interfacing with spi devices from user space via the spidev linux kernel driver
PKG_SECTION:= dev/python
-PKG_DEPENDS:= python2
-PKG_BUILDDEP:= python2
+PKG_DEPENDS:= python3
+PKG_BUILDDEP:= python3
PKG_URL:= https://github.com/doceme/py-spidev
PKG_SITES:= https://github.com/doceme/py-spidev.git
@@ -18,7 +18,7 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,PY_SPIDEV,py-spidev,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-include $(ADK_TOPDIR)/mk/python.mk
+include $(ADK_TOPDIR)/mk/python3.mk
CONFIG_STYLE:= manual
BUILD_STYLE:= manual
diff --git a/package/pycurl/Makefile b/package/pycurl/Makefile
index ddcce6c05..ee3c67b61 100644
--- a/package/pycurl/Makefile
+++ b/package/pycurl/Makefile
@@ -4,15 +4,15 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= pycurl
-PKG_VERSION:= 7.19.0.2
+PKG_VERSION:= 7.45.2
PKG_RELEASE:= 1
-PKG_HASH:= 7a9e793b9181654d5eef3f6d22c244c57d2b51d38feb4c1b71d68efda99b0547
+PKG_HASH:= 5730590be0271364a5bddd9e245c9cc0fb710c4cbacbdd95264a3122d23224ca
PKG_DESCR:= python module for fetching of files
PKG_SECTION:= dev/python
-PKG_BUILDDEP:= python2 curl
-PKG_DEPENDS:= python2 libcurl
-PKG_URL:= http://pycurl.sourceforge.net/
-PKG_SITES:= http://pycurl.sourceforge.net/download/
+PKG_BUILDDEP:= python3 curl
+PKG_DEPENDS:= python3 libcurl
+PKG_URL:= http://pycurl.io/
+PKG_SITES:= https://files.pythonhosted.org/packages/a8/af/24d3acfa76b867dbd8f1166853c18eefc890fc5da03a48672b38ea77ddae/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
@@ -28,7 +28,7 @@ TARGET_CFLAGS+= -fPIC
MAKE_ENV+= LDSHARED="$(TARGET_CC) -shared"
CURL_CONFIG:= $(STAGING_TARGET_DIR)/usr/bin/curl-config
-include $(ADK_TOPDIR)/mk/python.mk
+include $(ADK_TOPDIR)/mk/python3.mk
do-build:
(cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR) $(PYTHON) ./setup.py --curl-config=$(CURL_CONFIG) build)
diff --git a/package/pycurl/patches/patch-setup_py b/package/pycurl/patches/patch-setup_py
deleted file mode 100644
index 26280ec36..000000000
--- a/package/pycurl/patches/patch-setup_py
+++ /dev/null
@@ -1,12 +0,0 @@
---- pycurl-7.19.0.orig/setup.py 2008-09-09 19:40:34.000000000 +0200
-+++ pycurl-7.19.0/setup.py 2011-10-14 17:59:41.000000000 +0200
-@@ -115,9 +115,6 @@ else:
- define_macros.append(('HAVE_CURL_SSL', 1))
- if not libraries:
- libraries.append("curl")
-- # Add extra compile flag for MacOS X
-- if sys.platform[:-1] == "darwin":
-- extra_link_args.append("-flat_namespace")
-
-
- ###############################################################################
diff --git a/package/pyrex/Makefile b/package/pyrex/Makefile
deleted file mode 100644
index ffb37b511..000000000
--- a/package/pyrex/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= Pyrex
-PKG_VERSION:= 0.9.9
-PKG_RELEASE:= 3
-PKG_HASH:= 5f87df06831d0b3412eb4bc9d3fc2ee7bfae1b913d7da8c23ab2bf5699fb6b50
-PKG_DESCR:= mixes python and c data types
-PKG_SECTION:= dev/python
-PKG_DEPENDS:= python2
-PKG_URL:= http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/
-PKG_SITES:= http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,PYREX,pyrex,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-CONFIG_STYLE:= manual
-BUILD_STYLE:= manual
-INSTALL_STYLE:= manual
-
-include $(ADK_TOPDIR)/mk/python.mk
-
-do-build:
- cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR) $(PYTHON) ./setup.py build
- cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR) $(PYTHON) ./setup.py install --prefix="$(STAGING_HOST_DIR)/usr"
- cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR) $(PYTHON) ./setup.py install --prefix="$(WRKINST)/usr"
-
-do-install:
- $(INSTALL_DIR) $(IDIR_PYREX)/usr/lib/python$(PYTHON_VERSION)
- $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/* \
- $(IDIR_PYREX)/usr/lib/python$(PYTHON_VERSION)
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/python-mako/Makefile b/package/python-mako/Makefile
new file mode 100644
index 000000000..bb069a434
--- /dev/null
+++ b/package/python-mako/Makefile
@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= python-mako
+PKG_VERSION:= 1.2.4
+PKG_RELEASE:= 1
+PKG_HASH:= d60a3903dc3bb01a18ad6a89cdbe2e4eadc69c0bc8ef1e3773ba53d44c3f7a34
+PKG_DESCR:= fast, expressive, extensible templating engine
+PKG_SECTION:= dev/tools
+PKG_BUILDDEP:= python3-host
+PKG_SITES:= https://files.pythonhosted.org/packages/05/5f/2ba6e026d33a0e6ddc1dddf9958677f76f5f80c236bd65309d280b166d3e/
+
+DISTFILES:= Mako-$(PKG_VERSION).tar.gz
+
+WRKDIST= $(WRKDIR)/Mako-$(PKG_VERSION)
+
+include ${ADK_TOPDIR}/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,PYTHON_MAKO,python-mako,${PKG_VERSION}-${PKG_RELEASE}))
+
+include $(ADK_TOPDIR)/mk/python3.mk
+
+HOST_STYLE:= manual
+
+python-mako-hostinstall:
+ (cd $(WRKBUILD); PATH='$(HOST_PATH)' python3 ./setup.py install \
+ --prefix=$(STAGING_HOST_DIR)/usr)
+
+include ${ADK_TOPDIR}/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/python-setuptools/Makefile b/package/python-setuptools/Makefile
new file mode 100644
index 000000000..4a05cb202
--- /dev/null
+++ b/package/python-setuptools/Makefile
@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= python-setuptools
+PKG_VERSION:= 69.0.3
+PKG_RELEASE:= 1
+PKG_HASH:= be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78
+PKG_DESCR:= python setuptools
+PKG_SECTION:= dev/tools
+PKG_BUILDDEP:= python3-host
+PKG_SITES:= https://files.pythonhosted.org/packages/fc/c9/b146ca195403e0182a374e0ea4dbc69136bad3cd55bc293df496d625d0f7/
+
+DISTFILES:= setuptools-$(PKG_VERSION).tar.gz
+
+WRKDIST= $(WRKDIR)/setuptools-$(PKG_VERSION)
+
+include ${ADK_TOPDIR}/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,PYTHON_SETUPTOOLS,python-setuptools,${PKG_VERSION}-${PKG_RELEASE}))
+
+include $(ADK_TOPDIR)/mk/python3.mk
+
+HOST_STYLE:= manual
+
+python-setuptools-hostinstall:
+ (cd $(WRKBUILD); PATH='$(HOST_PATH)' python3 ./setup.py install \
+ --prefix=$(STAGING_HOST_DIR)/usr)
+
+include ${ADK_TOPDIR}/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/python2/Makefile b/package/python2/Makefile
deleted file mode 100644
index 358866b0f..000000000
--- a/package/python2/Makefile
+++ /dev/null
@@ -1,150 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include ${ADK_TOPDIR}/rules.mk
-
-PKG_NAME:= python2
-PKG_VERSION:= 2.7.14
-PKG_RELEASE:= 1
-PKG_HASH:= 304c9b202ea6fbd0a4a8e0ad3733715fbd4749f2204a9173a58ec53c32ea73e8
-PKG_DESCR:= python2 script interpreter
-PKG_SECTION:= dev/lang
-PKG_DEPENDS:= libffi
-PKG_BUILDDEP:= libffi python2-host
-HOST_BUILDDEP:= libffi-host libressl-host
-PKG_NEEDS:= threads
-PKG_URL:= http://www.python.org/
-PKG_SITES:= http://www.python.org/ftp/python/${PKG_VERSION}/
-PKG_OPTS:= dev
-
-DISTFILES:= Python-${PKG_VERSION}.tgz
-WRKDIST= ${WRKDIR}/Python-${PKG_VERSION}
-
-PKG_FLAVOURS_PYTHON2:= MOD_ZLIB MOD_BZ2 MOD_EXPAT MOD_SQLITE MOD_GDBM
-PKG_FLAVOURS_PYTHON2+= MOD_NCURSES MOD_SSL MOD_READLINE
-
-PKGFD_MOD_ZLIB:= zlib support
-PKGFB_MOD_ZLIB:= zlib
-PKGFS_MOD_ZLIB:= zlib
-PKGFD_MOD_BZ2:= bzip2 support
-PKGFB_MOD_BZ2:= bzip2
-PKGFS_MOD_BZ2:= libbz2
-PKGFD_MOD_EXPAT:= xml support
-PKGFB_MOD_EXPAT:= expat
-PKGFS_MOD_EXPAT:= libexpat
-PKGFD_MOD_SQLITE:= sqlite support
-PKGFB_MOD_SQLITE:= sqlite
-PKGFS_MOD_SQLITE:= libsqlite
-PKGFD_MOD_GDBM:= gdbm support
-PKGFB_MOD_GDBM:= gdbm
-PKGFS_MOD_GDBM:= libgdbm
-PKGFD_MOD_NCURSES:= ncurses support
-PKGFB_MOD_NCURSES:= ncurses
-PKGFS_MOD_NCURSES:= libncurses
-PKGFD_MOD_READLINE:= readline support
-PKGFB_MOD_READLINE:= readline
-PKGFS_MOD_READLINE:= libreadline
-PKGFD_MOD_SSL:= ssl support
-PKGFB_MOD_SSL:= libressl
-PKGFS_MOD_SSL:= libressl
-
-include ${ADK_TOPDIR}/mk/host.mk
-include ${ADK_TOPDIR}/mk/package.mk
-
-$(eval $(call HOST_template,PYTHON2,python2,${PKG_VERSION}-${PKG_RELEASE}))
-$(eval $(call PKG_template,PYTHON2,python2,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-
-define PKG_mod_template
-
-INSTALL_MODS_$${ADK_PACKAGE_${1}}+= ${2}-install
-
-${2}-install:
- ${INSTALL_DIR} $$(IDIR_$(1))/usr/lib/python2.7/lib-dynload
- for m in ${2}; do \
- ${INSTALL_DATA} $(WRKINST)/usr/lib/python2.7/lib-dynload/$$$${m}*.so $$(IDIR_$(1))/usr/lib/python2.7/lib-dynload ;\
- done
-endef
-
-$(eval $(call PKG_template,PYTHON2_MOD_ZLIB,python2-mod-zlib,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_ZLIB},${PKGFD_MOD_ZLIB},${PKG_SECTION}))
-$(eval $(call PKG_template,PYTHON2_MOD_BZ2,python2-mod-bz2,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_BZ2},${PKGFD_MOD_BZ2},${PKG_SECTION}))
-$(eval $(call PKG_template,PYTHON2_MOD_EXPAT,python2-mod-expat,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_EXPAT},${PKGFD_MOD_EXPAT},${PKG_SECTION}))
-$(eval $(call PKG_template,PYTHON2_MOD_SQLITE,python2-mod-sqlite,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_SQLITE},${PKGFD_MOD_SQLITE},${PKG_SECTION}))
-$(eval $(call PKG_template,PYTHON2_MOD_GDBM,python2-mod-gdbm,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_GDBM},${PKGFD_MOD_GDBM},${PKG_SECTION}))
-$(eval $(call PKG_template,PYTHON2_MOD_NCURSES,python2-mod-ncurses,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_NCURSES},${PKGFD_MOD_NCURSES},${PKG_SECTION}))
-$(eval $(call PKG_template,PYTHON2_MOD_SSL,python2-mod-ssl,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_SSL},${PKGFD_MOD_SSL},${PKG_SECTION}))
-$(eval $(call PKG_template,PYTHON2_MOD_READLINE,python2-mod-readline,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_READLINE},${PKGFD_MOD_READLINE},${PKG_SECTION}))
-
-$(eval $(call PKG_mod_template,PYTHON2_MOD_ZLIB,zlib))
-$(eval $(call PKG_mod_template,PYTHON2_MOD_BZ2,bz2))
-$(eval $(call PKG_mod_template,PYTHON2_MOD_EXPAT,pyexpat))
-$(eval $(call PKG_mod_template,PYTHON2_MOD_SQLITE,_sqlite))
-$(eval $(call PKG_mod_template,PYTHON2_MOD_GDBM,gdbm))
-$(eval $(call PKG_mod_template,PYTHON2_MOD_NCURSES,_curses))
-$(eval $(call PKG_mod_template,PYTHON2_MOD_SSL,_ssl))
-$(eval $(call PKG_mod_template,PYTHON2_MOD_READLINE,readline))
-
-ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
-CONFIGURE_ARGS+= --disable-shared
-endif
-
-HOST_CFLAGS+= -fPIC
-
-AUTOTOOL_STYLE:= autoreconf
-CONFIGURE_ENV+= ac_cv_have_long_long_format=yes \
- ac_cv_file__dev_ptmx=yes \
- ac_cv_file__dev_ptc=no
-CONFIGURE_ARGS+= --with-threads \
- --disable-toolbox-glue \
- --disable-ipv6 \
- --with-system-ffi \
- --without-cxx-main
-
-HOST_CONFIGURE_ENV+= MACOSX_DEPLOYMENT_TARGET=10.9
-HOST_CONFIGURE_ARGS+= --with-threads \
- --with-system-ffi \
- --disable-ipv6 \
- --disable-toolbox-glue \
- --without-cxx-main
-
-hostpre-configure:
- $(CP) $(ADK_TOPDIR)/package/python2/files/patch-Lib_distutils_sysconfig_py $(WRKBUILD)
- $(SED) "s#@@STAGING_TARGET_DIR@@#$(STAGING_TARGET_DIR)#" $(WRKBUILD)/patch-Lib_distutils_sysconfig_py
- $(SED) "s#@@STAGING_HOST_DIR@@#$(STAGING_HOST_DIR)#" $(WRKBUILD)/patch-Lib_distutils_sysconfig_py
- (cd $(WRKBUILD) && ${PATCHP0} < patch-Lib_distutils_sysconfig_py)
- $(SED) "s#@EXENAME@#$(STAGING_HOST_DIR)/usr/bin/python#" \
- $(WRKBUILD)/Misc/python-config.in
-
-hostpost-install:
- $(CP) $(ADK_TOPDIR)/package/python2/files/python-config.patch $(WRKBUILD)/
- $(SED) "s#@@STAGING_TARGET_DIR@@#$(STAGING_TARGET_DIR)#" $(WRKBUILD)/python-config.patch
- $(SED) "s#@@STAGING_HOST_DIR@@#$(STAGING_HOST_DIR)#" $(WRKBUILD)/python-config.patch
- (cd $(STAGING_HOST_DIR)/usr/bin && \
- ${PATCHP0} < $(WRKBUILD)/python-config.patch)
-
-pre-configure:
- $(CP) $(ADK_TOPDIR)/package/python2/files/patch-Lib_distutils_sysconfig_py $(WRKBUILD)
- $(SED) "s#@@STAGING_TARGET_DIR@@#$(STAGING_TARGET_DIR)#" $(WRKBUILD)/patch-Lib_distutils_sysconfig_py
- $(SED) "s#@@STAGING_HOST_DIR@@#$(STAGING_HOST_DIR)#" $(WRKBUILD)/patch-Lib_distutils_sysconfig_py
- (cd $(WRKBUILD) && ${PATCHP0} <$(WRKBUILD)/patch-Lib_distutils_sysconfig_py)
- $(SED) "s#@EXENAME@#$(STAGING_HOST_DIR)/usr/bin/python#" \
- $(WRKBUILD)/Misc/python-config.in
-
-ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
-python2-install:
-else
-python2-install: ${INSTALL_MODS_y} ${INSTALL_MODS_m}
-endif
- ${INSTALL_DIR} ${IDIR_PYTHON2}/usr/bin ${IDIR_PYTHON2}/usr/lib
- ${INSTALL_DIR} ${IDIR_PYTHON2}/usr/include/python2.7
- ${INSTALL_BIN} ${WRKINST}/usr/bin/python ${IDIR_PYTHON2}/usr/bin
- ${INSTALL_DIR} ${IDIR_PYTHON2}/usr/lib/python2.7
- ${CP} ${WRKINST}/usr/lib/libpython*.* ${IDIR_PYTHON2}/usr/lib
- ${CP} ${WRKINST}/usr/lib/python2.7/* ${IDIR_PYTHON2}/usr/lib/python2.7
- ${CP} ${WRKINST}/usr/include/python2.7/pyconfig.h \
- ${IDIR_PYTHON2}/usr/include/python2.7
- @-for i in zlib bz2 _curses _ssl gdbm _sqlite pyexpat readline; do \
- rm ${IDIR_PYTHON2}/usr/lib/python2.7/lib-dynload/$${i}*so 2>/dev/null; \
- done
-
-include ${ADK_TOPDIR}/mk/host-bottom.mk
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/python2/files/patch-Lib_distutils_sysconfig_py b/package/python2/files/patch-Lib_distutils_sysconfig_py
deleted file mode 100644
index cbd51020d..000000000
--- a/package/python2/files/patch-Lib_distutils_sysconfig_py
+++ /dev/null
@@ -1,10 +0,0 @@
---- Lib.orig/distutils/sysconfig.py 2013-05-12 05:32:42.000000000 +0200
-+++ Lib/distutils/sysconfig.py 2013-11-03 18:03:53.000000000 +0100
-@@ -76,6 +76,7 @@ def get_python_inc(plat_specific=0, pref
- """
- if prefix is None:
- prefix = plat_specific and EXEC_PREFIX or PREFIX
-+ prefix = re.sub('@@STAGING_HOST_DIR@@', '@@STAGING_TARGET_DIR@@', prefix)
-
- if os.name == "posix":
- if python_build:
diff --git a/package/python2/files/python-config.patch b/package/python2/files/python-config.patch
deleted file mode 100644
index 0a6ff7145..000000000
--- a/package/python2/files/python-config.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- python2.7-config.orig 2013-12-11 12:40:37.244519764 +0100
-+++ python2.7-config 2013-12-11 12:41:43.279093075 +0100
-@@ -3,6 +3,7 @@
- import sys
- import os
- import getopt
-+import re
- from distutils import sysconfig
-
- valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
-@@ -37,8 +38,8 @@
- print sysconfig.EXEC_PREFIX
-
- elif opt in ('--includes', '--cflags'):
-- flags = ['-I' + sysconfig.get_python_inc(),
-- '-I' + sysconfig.get_python_inc(plat_specific=True)]
-+ flags = ['-I' + re.sub('@@STAGING_TARGET_DIR@@', '@@STAGING_HOST_DIR@@', sysconfig.get_python_inc()),
-+ '-I' + re.sub('@@STAGING_TARGET_DIR@@', '@@STAGING_HOST_DIR@@', sysconfig.get_python_inc(plat_specific=True))]
- if opt == '--cflags':
- flags.extend(getvar('CFLAGS').split())
- print ' '.join(flags)
diff --git a/package/python2/patches/0001-2.7-bpo-33127-Compatibility-patch-for-LibreSSL-2.7.0.patch b/package/python2/patches/0001-2.7-bpo-33127-Compatibility-patch-for-LibreSSL-2.7.0.patch
deleted file mode 100644
index e5759db40..000000000
--- a/package/python2/patches/0001-2.7-bpo-33127-Compatibility-patch-for-LibreSSL-2.7.0.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From edd541897b9c28ee0d0f0131746aa5f19665a104 Mon Sep 17 00:00:00 2001
-From: Christian Heimes <christian@python.org>
-Date: Sat, 24 Mar 2018 19:34:15 +0100
-Subject: [PATCH] [2.7] bpo-33127: Compatibility patch for LibreSSL 2.7.0
- (GH-6210) (GH-6215)
-
-LibreSSL 2.7 introduced OpenSSL 1.1.0 API. The ssl module now detects
-LibreSSL 2.7 and only provides API shims for OpenSSL < 1.1.0 and
-LibreSSL < 2.7.
-
-Documentation updates and fixes for failing tests will be provided in
-another patch set.
-
-Signed-off-by: Christian Heimes <christian@python.org>.
-(cherry picked from commit 4ca0739c9d97ac7cd45499e0d31be68dc659d0e1)
-
-Co-authored-by: Christian Heimes <christian@python.org>
----
- .../2018-03-24-15-08-24.bpo-33127.olJmHv.rst | 1 +
- Modules/_ssl.c | 24 ++++++++++++++--------
- Tools/ssl/multissltests.py | 3 ++-
- 3 files changed, 19 insertions(+), 9 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Library/2018-03-24-15-08-24.bpo-33127.olJmHv.rst
-
-diff --git a/Modules/_ssl.c b/Modules/_ssl.c
-index da8b20f54f..d0ce913d3d 100644
---- a/Modules/_ssl.c
-+++ b/Modules/_ssl.c
-@@ -102,6 +102,12 @@ struct py_ssl_library_code {
-
- #if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
- # define OPENSSL_VERSION_1_1 1
-+# define PY_OPENSSL_1_1_API 1
-+#endif
-+
-+/* LibreSSL 2.7.0 provides necessary OpenSSL 1.1.0 APIs */
-+#if defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER >= 0x2070000fL
-+# define PY_OPENSSL_1_1_API 1
- #endif
-
- /* Openssl comes with TLSv1.1 and TLSv1.2 between 1.0.0h and 1.0.1
-@@ -149,16 +155,18 @@ struct py_ssl_library_code {
- #define INVALID_SOCKET (-1)
- #endif
-
--#ifdef OPENSSL_VERSION_1_1
--/* OpenSSL 1.1.0+ */
--#ifndef OPENSSL_NO_SSL2
--#define OPENSSL_NO_SSL2
--#endif
--#else /* OpenSSL < 1.1.0 */
--#if defined(WITH_THREAD)
-+/* OpenSSL 1.0.2 and LibreSSL needs extra code for locking */
-+#if !defined(OPENSSL_VERSION_1_1) && defined(WITH_THREAD)
- #define HAVE_OPENSSL_CRYPTO_LOCK
- #endif
-
-+#if defined(OPENSSL_VERSION_1_1) && !defined(OPENSSL_NO_SSL2)
-+#define OPENSSL_NO_SSL2
-+#endif
-+
-+#ifndef PY_OPENSSL_1_1_API
-+/* OpenSSL 1.1 API shims for OpenSSL < 1.1.0 and LibreSSL < 2.7.0 */
-+
- #define TLS_method SSLv23_method
-
- static int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne)
-@@ -201,7 +209,7 @@ static X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *store)
- {
- return store->param;
- }
--#endif /* OpenSSL < 1.1.0 or LibreSSL */
-+#endif /* OpenSSL < 1.1.0 or LibreSSL < 2.7.0 */
-
-
- enum py_ssl_error {
---
-2.16.1
-
diff --git a/package/python2/patches/patch-Makefile_pre_in b/package/python2/patches/patch-Makefile_pre_in
deleted file mode 100644
index bcb0e1f6b..000000000
--- a/package/python2/patches/patch-Makefile_pre_in
+++ /dev/null
@@ -1,40 +0,0 @@
---- Python-2.7.13.orig/Makefile.pre.in 2016-12-17 21:05:06.000000000 +0100
-+++ Python-2.7.13/Makefile.pre.in 2017-03-16 19:38:14.000000000 +0100
-@@ -545,7 +545,7 @@ sharedmods: $(BUILDPYTHON) pybuilddir.tx
- esac; \
- $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
- _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
-- $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
-+ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py build
-
- # Build static library
- # avoid long command lines, same as LIBRARY_OBJS
-@@ -1120,28 +1120,6 @@ libinstall: build_all $(srcdir)/Lib/$(PL
- $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
- $(DESTDIR)$(LIBDEST)/distutils/tests ; \
- fi
-- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
-- -d $(LIBDEST) -f \
-- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
-- $(DESTDIR)$(LIBDEST)
-- PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
-- -d $(LIBDEST) -f \
-- -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
-- $(DESTDIR)$(LIBDEST)
-- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
-- -d $(LIBDEST)/site-packages -f \
-- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
-- -d $(LIBDEST)/site-packages -f \
-- -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
-- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
-- -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
-- $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
-
- # Create the PLATDIR source directory, if one wasn't distributed..
- $(srcdir)/Lib/$(PLATDIR):
diff --git a/package/python2/patches/patch-configure_ac b/package/python2/patches/patch-configure_ac
deleted file mode 100644
index 1a09f6eed..000000000
--- a/package/python2/patches/patch-configure_ac
+++ /dev/null
@@ -1,22 +0,0 @@
---- Python-2.7.13.orig/configure.ac 2016-12-17 21:05:07.000000000 +0100
-+++ Python-2.7.13/configure.ac 2017-03-16 19:29:41.000000000 +0100
-@@ -22,7 +22,7 @@ rm -f pybuilddir.txt
- if test "$cross_compiling" = yes; then
- AC_MSG_CHECKING([for python interpreter for cross build])
- if test -z "$PYTHON_FOR_BUILD"; then
-- for interp in python$PACKAGE_VERSION python2 python; do
-+ for interp in python; do
- which $interp >/dev/null 2>&1 || continue
- if $interp -c 'import sys;sys.exit(not (sys.version_info@<:@:2@:>@ >= (2,7) and sys.version_info@<:@0@:>@ < 3))'; then
- break
-@@ -1079,9 +1079,7 @@ then
- if test "$Py_DEBUG" = 'true' ; then
- # Optimization messes up debuggers, so turn it off for
- # debug builds.
-- OPT="-g -O0 -Wall $STRICT_PROTO"
-- else
-- OPT="-g $WRAP -O3 -Wall $STRICT_PROTO"
-+ OPT="$STRICT_PROTO"
- fi
- ;;
- *)
diff --git a/package/python2/patches/patch-setup_py b/package/python2/patches/patch-setup_py
deleted file mode 100644
index bf8e90c9d..000000000
--- a/package/python2/patches/patch-setup_py
+++ /dev/null
@@ -1,115 +0,0 @@
---- Python-2.7.13.orig/setup.py 2016-12-17 21:05:07.000000000 +0100
-+++ Python-2.7.13/setup.py 2017-03-16 19:45:12.000000000 +0100
-@@ -74,7 +74,7 @@ def find_file(filename, std_dirs, paths)
- 'paths' is a list of additional locations to check; if the file is
- found in one of them, the resulting list will contain the directory.
- """
-- if host_platform == 'darwin':
-+ if host_platform == 'darwin' and not cross_compiling:
- # Honor the MacOSX SDK setting when one was specified.
- # An SDK is a directory with the same structure as a real
- # system, but with only header files and libraries.
-@@ -84,7 +84,7 @@ def find_file(filename, std_dirs, paths)
- for dir in std_dirs:
- f = os.path.join(dir, filename)
-
-- if host_platform == 'darwin' and is_macosx_sdk_path(dir):
-+ if host_platform == 'darwin' and is_macosx_sdk_path(dir) and not cross_compiling:
- f = os.path.join(sysroot, dir[1:], filename)
-
- if os.path.exists(f): return []
-@@ -93,7 +93,7 @@ def find_file(filename, std_dirs, paths)
- for dir in paths:
- f = os.path.join(dir, filename)
-
-- if host_platform == 'darwin' and is_macosx_sdk_path(dir):
-+ if host_platform == 'darwin' and is_macosx_sdk_path(dir) and not cross_compiling:
- f = os.path.join(sysroot, dir[1:], filename)
-
- if os.path.exists(f):
-@@ -107,7 +107,7 @@ def find_library_file(compiler, libname,
- if result is None:
- return None
-
-- if host_platform == 'darwin':
-+ if host_platform == 'darwin' and not cross_compiling:
- sysroot = macosx_sdk_root()
-
- # Check whether the found file is in one of the standard directories
-@@ -116,7 +116,7 @@ def find_library_file(compiler, libname,
- # Ensure path doesn't end with path separator
- p = p.rstrip(os.sep)
-
-- if host_platform == 'darwin' and is_macosx_sdk_path(p):
-+ if host_platform == 'darwin' and is_macosx_sdk_path(p) and not cross_compiling:
- # Note that, as of Xcode 7, Apple SDKs may contain textual stub
- # libraries with .tbd extensions rather than the normal .dylib
- # shared libraries installed in /. The Apple compiler tool
-@@ -145,7 +145,7 @@ def find_library_file(compiler, libname,
- # Ensure path doesn't end with path separator
- p = p.rstrip(os.sep)
-
-- if host_platform == 'darwin' and is_macosx_sdk_path(p):
-+ if host_platform == 'darwin' and is_macosx_sdk_path(p) and not cross_compiling:
- if os.path.join(sysroot, p[1:]) == dirname:
- return [ p ]
-
-@@ -178,6 +178,7 @@ class PyBuildExt(build_ext):
-
- def build_extensions(self):
-
-+ self.compiler.library_dirs = []
- # Detect which modules should be compiled
- missing = self.detect_modules()
-
-@@ -299,6 +300,7 @@ class PyBuildExt(build_ext):
-
- def build_extension(self, ext):
-
-+
- if ext.name == '_ctypes':
- if not self.configure_ctypes(ext):
- return
-@@ -460,7 +462,8 @@ class PyBuildExt(build_ext):
- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
- if cross_compiling:
- self.add_gcc_paths()
-- self.add_multiarch_paths()
-+ if not cross_compiling:
-+ self.add_multiarch_paths()
-
- # Add paths specified in the environment variables LDFLAGS and
- # CPPFLAGS for header and library files.
-@@ -497,7 +500,8 @@ class PyBuildExt(build_ext):
- add_dir_to_list(dir_list, directory)
-
- if os.path.normpath(sys.prefix) != '/usr' \
-- and not sysconfig.get_config_var('PYTHONFRAMEWORK'):
-+ and not sysconfig.get_config_var('PYTHONFRAMEWORK') \
-+ and not cross_compiling:
- # OSX note: Don't add LIBDIR and INCLUDEDIR to building a framework
- # (PYTHONFRAMEWORK is set) to avoid # linking problems when
- # building a framework with different architectures than
-@@ -515,8 +519,13 @@ class PyBuildExt(build_ext):
- # lib_dirs and inc_dirs are used to search for files;
- # if a file is found in one of those directories, it can
- # be assumed that no additional -I,-L directives are needed.
-+ if cross_compiling:
-+ add_dir_to_list(self.compiler.library_dirs,
-+ sysconfig.get_config_var('srcdir'))
-+
- inc_dirs = self.compiler.include_dirs[:]
- lib_dirs = self.compiler.library_dirs[:]
-+
- if not cross_compiling:
- for d in (
- '/usr/include',
-@@ -550,7 +559,7 @@ class PyBuildExt(build_ext):
- if host_platform == 'hp-ux11':
- lib_dirs += ['/usr/lib/hpux64', '/usr/lib/hpux32']
-
-- if host_platform == 'darwin':
-+ if host_platform == 'darwin' and not cross_compiling:
- # This should work on any unixy platform ;-)
- # If the user has bothered specifying additional -I and -L flags
- # in OPT and LDFLAGS we might as well use them here.
diff --git a/package/python3-jinja2/Makefile b/package/python3-jinja2/Makefile
new file mode 100644
index 000000000..5cde4fc47
--- /dev/null
+++ b/package/python3-jinja2/Makefile
@@ -0,0 +1,34 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= python3-jinja2
+PKG_VERSION:= 3.0.2
+PKG_RELEASE:= 1
+PKG_HASH:= 827a0e32839ab1600d4eb1c4c33ec5a8edfbc5cb42dafa13b81f182f97784b45
+PKG_DESCR:= fast, expressive, extensible templating engine
+PKG_SECTION:= dev/tools
+PKG_BUILDDEP:= python3-host
+PKG_URL:= https://pypi.org/project/Jinja2/
+PKG_SITES:= https://files.pythonhosted.org/packages/f8/86/7c0eb6e8b05385d1ce682abc0f994abd1668e148fb52603fa86e15d4c110/
+
+DISTFILES:= Jinja2-$(PKG_VERSION).tar.gz
+
+WRKDIST= $(WRKDIR)/Jinja2-$(PKG_VERSION)
+
+include ${ADK_TOPDIR}/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,PYTHON3_JINJA2,python3-jinja2,${PKG_VERSION}-${PKG_RELEASE}))
+
+include $(ADK_TOPDIR)/mk/python.mk
+
+HOST_STYLE:= manual
+
+python3-jinja2-hostinstall:
+ (cd $(WRKBUILD); PATH='$(HOST_PATH)' python3 ./setup.py install \
+ --prefix=$(STAGING_HOST_DIR)/usr)
+
+include ${ADK_TOPDIR}/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/python3/Makefile b/package/python3/Makefile
index ef37bcf72..060ca4003 100644
--- a/package/python3/Makefile
+++ b/package/python3/Makefile
@@ -4,24 +4,20 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= python3
-PKG_VERSION:= 3.6.4
+PKG_VERSION:= 3.11.8
PKG_RELEASE:= 1
-PKG_HASH:= 159b932bf56aeaa76fd66e7420522d8c8853d486b8567c459b84fe2ed13bcaba
-PKG_DESCR:= python3 scripting language
+PKG_HASH:= 9e06008c8901924395bc1da303eac567a729ae012baa182ab39269f650383bb3
+PKG_DESCR:= python scripting language
PKG_SECTION:= dev/lang
-PKG_DEPENDS:= libffi
-PKG_BUILDDEP:= python3-host libffi
-HOST_BUILDDEP:= libffi-host
+PKG_DEPENDS:= libffi zlib libexpat
+PKG_BUILDDEP:= python3-host libffi zlib expat
+HOST_BUILDDEP:= libffi-host libressl-host zlib-host bzip2-host ncurses-host sqlite-host
PKG_NEEDS:= threads
PKG_URL:= http://www.python.org/
PKG_SITES:= http://legacy.python.org/ftp/python/${PKG_VERSION}/
-PKG_HOST_DEPENDS:= !netbsd !openbsd !cygwin
-
-PKG_FLAVOURS_PYTHON3:= MOD_ZLIB MOD_BZ2 MOD_EXPAT MOD_SQLITE MOD_GDBM
-PKG_FLAVOURS_PYTHON3+= MOD_NCURSES MOD_SSL
-# disabled
-#MOD_READLINE
+PKG_FLAVOURS_PYTHON3:= MOD_ZLIB MOD_BZ2 MOD_SQLITE MOD_GDBM
+PKG_FLAVOURS_PYTHON3+= MOD_NCURSES MOD_SSL MOD_READLINE
PKGFD_MOD_ZLIB:= zlib support
PKGFB_MOD_ZLIB:= zlib
@@ -29,9 +25,6 @@ PKGFS_MOD_ZLIB:= zlib
PKGFD_MOD_BZ2:= bzip2 support
PKGFB_MOD_BZ2:= bzip2
PKGFS_MOD_BZ2:= libbz2
-PKGFD_MOD_EXPAT:= xml support
-PKGFB_MOD_EXPAT:= expat
-PKGFS_MOD_EXPAT:= libexpat
PKGFD_MOD_SQLITE:= sqlite support
PKGFB_MOD_SQLITE:= sqlite
PKGFS_MOD_SQLITE:= libsqlite
@@ -59,9 +52,9 @@ define PKG_mod_template
INSTALL_MODS_$${ADK_PACKAGE_${1}}+= ${2}-install
${2}-install:
- ${INSTALL_DIR} $$(IDIR_$(1))/usr/lib/python3.6/lib-dynload
+ ${INSTALL_DIR} $$(IDIR_$(1))/usr/lib/python3.11/lib-dynload
for m in ${2}; do \
- ${INSTALL_DATA} $(WRKINST)/usr/lib/python3.6/lib-dynload/$$$${m}*.so $$(IDIR_$(1))/usr/lib/python3.6/lib-dynload ;\
+ ${INSTALL_DATA} $(WRKINST)/usr/lib/python3.11/lib-dynload/$$$${m}*.so $$(IDIR_$(1))/usr/lib/python3.11/lib-dynload ;\
done
endef
@@ -71,47 +64,48 @@ $(eval $(call PKG_template,PYTHON3,python3,${PKG_VERSION}-${PKG_RELEASE},${PKG_D
$(eval $(call PKG_template,PYTHON3_MOD_ZLIB,python3-mod-zlib,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_ZLIB},${PKGFD_MOD_ZLIB},${PKG_SECTION}))
$(eval $(call PKG_template,PYTHON3_MOD_BZ2,python3-mod-bz2,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_BZ2},${PKGFD_MOD_BZ2},${PKG_SECTION}))
-$(eval $(call PKG_template,PYTHON3_MOD_EXPAT,python3-mod-expat,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_EXPAT},${PKGFD_MOD_EXPAT},${PKG_SECTION}))
$(eval $(call PKG_template,PYTHON3_MOD_SQLITE,python3-mod-sqlite,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_SQLITE},${PKGFD_MOD_SQLITE},${PKG_SECTION}))
$(eval $(call PKG_template,PYTHON3_MOD_GDBM,python3-mod-gdbm,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_GDBM},${PKGFD_MOD_GDBM},${PKG_SECTION}))
$(eval $(call PKG_template,PYTHON3_MOD_NCURSES,python3-mod-ncurses,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_NCURSES},${PKGFD_MOD_NCURSES},${PKG_SECTION}))
$(eval $(call PKG_template,PYTHON3_MOD_SSL,python3-mod-ssl,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_SSL},${PKGFD_MOD_SSL},${PKG_SECTION}))
-#$(eval $(call PKG_template,PYTHON3_MOD_READLINE,python3-mod-readline,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_READLINE},${PKGFD_MOD_READLINE},${PKG_SECTION}))
+$(eval $(call PKG_template,PYTHON3_MOD_READLINE,python3-mod-readline,$(PKG_VERSION)-${PKG_RELEASE},${PKGFS_MOD_READLINE},${PKGFD_MOD_READLINE},${PKG_SECTION}))
$(eval $(call PKG_mod_template,PYTHON3_MOD_ZLIB,zlib))
$(eval $(call PKG_mod_template,PYTHON3_MOD_BZ2,_bz2))
-$(eval $(call PKG_mod_template,PYTHON3_MOD_EXPAT,pyexpat))
$(eval $(call PKG_mod_template,PYTHON3_MOD_SQLITE,_sqlite))
$(eval $(call PKG_mod_template,PYTHON3_MOD_GDBM,_gdbm))
$(eval $(call PKG_mod_template,PYTHON3_MOD_NCURSES,_curses))
$(eval $(call PKG_mod_template,PYTHON3_MOD_SSL,_ssl))
-#$(eval $(call PKG_mod_template,PYTHON3_MOD_READLINE,readline))
+$(eval $(call PKG_mod_template,PYTHON3_MOD_READLINE,readline))
MAKE_ENV+= HOSTPGEN=$(STAGING_HOST_DIR)/usr/bin/pgen3
FAKE_FLAGS+= ENSUREPIP=no
-CONFIGURE_ARGS:= --with-threads \
- --with-system-ffi \
- --with-system-expat \
+CONFIGURE_ARGS:= --with-system-expat \
--disable-ipv6 \
- --without-cxx-main
+ --with-build-python
+
CONFIGURE_ENV+= ac_cv_have_long_long_format=yes \
ac_cv_file__dev_ptmx=yes \
- ac_cv_file__dev_ptc=no
+ ac_cv_file__dev_ptc=no \
+ ac_cv_header_libintl_h=no
-HOST_CONFIGURE_ARGS+= --without-cxx-main \
- --with-threads
+ifeq ($(ADK_TARGET_BIG_ENDIAN),y)
+CONFIGURE_ENV+= ax_cv_c_float_words_bigendian=yes
+else
+CONFIGURE_ENV+= ax_cv_c_float_words_bigendian=no
+endif
python3-install: ${INSTALL_MODS_y} ${INSTALL_MODS_m}
${INSTALL_DIR} ${IDIR_PYTHON3}/usr/bin ${IDIR_PYTHON3}/usr/lib
- ${INSTALL_DIR} ${IDIR_PYTHON3}/usr/lib/python3.6
- ${INSTALL_DIR} ${IDIR_PYTHON3}/usr/include/python3.6m
+ ${INSTALL_DIR} ${IDIR_PYTHON3}/usr/lib/python3.11
+ ${INSTALL_DIR} ${IDIR_PYTHON3}/usr/include/python3.11
${INSTALL_BIN} ${WRKINST}/usr/bin/python3 ${IDIR_PYTHON3}/usr/bin
${CP} ${WRKINST}/usr/lib/libpython*.so* ${IDIR_PYTHON3}/usr/lib
- ${CP} ${WRKINST}/usr/lib/python3.6/* ${IDIR_PYTHON3}/usr/lib/python3.6
- ${CP} ${WRKINST}/usr/include/python3.6m/pyconfig.h \
- ${IDIR_PYTHON3}/usr/include/python3.6m
+ ${CP} ${WRKINST}/usr/lib/python3.11/* ${IDIR_PYTHON3}/usr/lib/python3.11
+ ${CP} ${WRKINST}/usr/include/python3.11/pyconfig.h \
+ ${IDIR_PYTHON3}/usr/include/python3.11
@-for i in zlib _bz2 _curses _ssl _gdbm _sqlite pyexpat readline; do \
- rm ${IDIR_PYTHON3}/usr/lib/python3.6/lib-dynload/$${i}*so; \
+ rm ${IDIR_PYTHON3}/usr/lib/python3.11/lib-dynload/$${i}*so; \
done
include ${ADK_TOPDIR}/mk/host-bottom.mk
diff --git a/package/qingy/Makefile b/package/qingy/Makefile
index 26e508d80..1a59fdb4f 100644
--- a/package/qingy/Makefile
+++ b/package/qingy/Makefile
@@ -21,6 +21,7 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,QINGY,qingy,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CFLAGS+= -fcommon
TARGET_LDFLAGS+= -ltinfo
CONFIGURE_ARGS+= --disable-screen-savers \
--disable-optimizations \
diff --git a/package/quagga/Makefile b/package/quagga/Makefile
index 95cf6e288..e5628ff13 100644
--- a/package/quagga/Makefile
+++ b/package/quagga/Makefile
@@ -4,16 +4,16 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= quagga
-PKG_VERSION:= 1.2.0
+PKG_VERSION:= 1.2.4
PKG_RELEASE:= 1
-PKG_HASH:= 1043644d37975d9f920b76c593368cbe36ca43e27eb57cff316ee80ccb31dce3
+PKG_HASH:= e364c082c3309910e1eb7b068bf39ee298e2f2f3f31a6431a5c115193bd653d3
PKG_DESCR:= routing software package
PKG_SECTION:= net/route
PKG_BUILDDEP:= readline ncurses c-ares
PKG_DEPENDS:= c-ares
PKG_NEEDS:= threads
PKG_URL:= http://www.quagga.net/
-PKG_SITES:= http://download.savannah.gnu.org/releases/quagga/
+PKG_SITES:= https://github.com/Quagga/quagga/releases/download/$(PKG_NAME)-$(PKG_VERSION)/
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
@@ -44,6 +44,7 @@ $(eval $(call PKG_template,QUAGGA_RIPNGD,quagga-ripngd,$(PKG_VERSION)-$(PKG_RELE
$(eval $(call PKG_template,QUAGGA_RIPD,quagga-ripd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_QUAGGA_RIPD),$(PKG_SECTION)))
$(eval $(call PKG_template,QUAGGA_VTYSH,quagga-vtysh,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKGSD_QUAGGA_VTYSH),$(PKG_SECTION)))
+TARGET_CFLAGS+= -fcommon
CONFIGURE_ENV+= quagga_cv_ipforward_method="proc"
CONFIGURE_ARGS+= --localstatedir=/var/run/quagga \
--sysconfdir=/etc/quagga \
diff --git a/package/radvd/Makefile b/package/radvd/Makefile
index 3b9f6c92d..e134ed1d4 100644
--- a/package/radvd/Makefile
+++ b/package/radvd/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= radvd
-PKG_VERSION:= 2.12
+PKG_VERSION:= 2.18
PKG_RELEASE:= 1
-PKG_HASH:= b070e77238e789e298a82cba2b1bfb0b0180b4ebc1adfc4e75058adfdbff747b
+PKG_HASH:= e1bffefe6537e4b205d33afda35fec6014e5f860cc364850068a6ed9c6a65cdc
PKG_DESCR:= routing advertisement daemon for ipv6
PKG_SECTION:= net/ipv6
PKG_DEPENDS:= libdaemon
diff --git a/package/ralink-firmware/Makefile b/package/ralink-firmware/Makefile
new file mode 100644
index 000000000..0c8d96656
--- /dev/null
+++ b/package/ralink-firmware/Makefile
@@ -0,0 +1,28 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= ralink-firmware
+PKG_VERSION:= 1.0
+PKG_RELEASE:= 1
+PKG_HASH:= afecbffbea1bd734437c12db5f24863b9d93c9583a4c0dbe61f57b120f993b87
+PKG_DESCR:= ralink wireless driver firmware
+PKG_SECTION:= sys/firmware
+PKG_SITES:= http://distfiles.openadk.org/
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tgz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,RALINK_FIRMWARE,ralink-firmware,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+do-install:
+ $(INSTALL_DIR) $(IDIR_RALINK_FIRMWARE)/lib/firmware
+ ${CP} ${WRKBUILD}/*.bin ${IDIR_RALINK_FIRMWARE}/lib/firmware
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/rdesktop/Makefile b/package/rdesktop/Makefile
index 98ccc84ca..2cd7636bc 100644
--- a/package/rdesktop/Makefile
+++ b/package/rdesktop/Makefile
@@ -4,25 +4,25 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= rdesktop
-PKG_VERSION:= 1.8.1
+PKG_VERSION:= 1.9.0
PKG_RELEASE:= 1
-PKG_HASH:= 76cc834b89c34d8332f3cb3889483b2ae4d4e8118eeb45a8967c77dd18228246
+PKG_HASH:= d547c2e6f3e4c818a7e69a0f39adb39fac303633e0c25aa804bb588507ffc230
PKG_DESCR:= client for windows terminal services
PKG_SECTION:= x11/apps
-PKG_DEPENDS:= libsamplerate alsa-lib libao libressl
-PKG_BUILDDEP:= libsamplerate alsa-lib libao libressl
+PKG_DEPENDS:= libsamplerate alsa-lib libao libgnutls
+PKG_BUILDDEP:= libsamplerate alsa-lib libao gnutls
PKG_URL:= http://www.rdesktop.org/
-PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=rdesktop/}
+PKG_SITES:= https://github.com/rdesktop/rdesktop/archive/refs/tags/
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+DISTFILES:= v${PKG_VERSION}.tar.gz
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,RDESKTOP,rdesktop,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
TARGET_CFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE
-CONFIGURE_ARGS+= --with-openssl="${STAGING_TARGET_DIR}/usr" \
- --disable-smartcard \
+AUTOTOOL_STYLE:= bootstrap
+CONFIGURE_ARGS+= --disable-smartcard \
--disable-credssp
rdesktop-install:
diff --git a/package/readline/Makefile b/package/readline/Makefile
index 48ef40803..8ac34cceb 100644
--- a/package/readline/Makefile
+++ b/package/readline/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= readline
-PKG_VERSION:= 6.1
-PKG_RELEASE:= 2
-PKG_HASH:= f0caf608c06ccd6d56b3bee1843458d509c53f9b53dffffe07cc11d8f03fa969
+PKG_VERSION:= 8.1
+PKG_RELEASE:= 1
+PKG_HASH:= f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02
PKG_DESCR:= command line editing library
PKG_SECTION:= libs/misc
PKG_DEPENDS:= libncurses
@@ -24,6 +24,7 @@ $(eval $(call HOST_template,READLINE,readline,${PKG_VERSION}-${PKG_RELEASE}))
$(eval $(call PKG_template,LIBREADLINE,libreadline,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
CONFIGURE_ARGS+= --with-curses
+TARGET_LDFLAGS+= -ltinfo
libreadline-install:
${INSTALL_DIR} ${IDIR_LIBREADLINE}/usr/lib
diff --git a/package/rpcbind/Makefile b/package/rpcbind/Makefile
index ec4604c58..b0c175a04 100644
--- a/package/rpcbind/Makefile
+++ b/package/rpcbind/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= rpcbind
-PKG_VERSION:= 0.2.4
-PKG_RELEASE:= 2
-PKG_HASH:= 074a9a530dc7c11e0d905aa59bcb0847c009313f02e98d3d798aa9568f414c66
+PKG_VERSION:= 1.2.6
+PKG_RELEASE:= 1
+PKG_HASH:= 5613746489cae5ae23a443bb85c05a11741a5f12c8f55d2bb5e83b9defeee8de
PKG_DESCR:= converts rpc program numbers into universal addresses
PKG_SECTION:= net/misc
PKG_DEPENDS:= libtirpc
@@ -27,8 +27,9 @@ CONFIGURE_ARGS+= --disable-libwrap \
rpcbind-install:
$(INSTALL_DIR) $(IDIR_RPCBIND)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/rpcbind \
- $(IDIR_RPCBIND)/usr/bin
+ $(INSTALL_DIR) $(IDIR_RPCBIND)/usr/sbin
+ $(INSTALL_BIN) $(WRKINST)/usr/sbin/rpcbind \
+ $(IDIR_RPCBIND)/usr/sbin
$(INSTALL_BIN) $(WRKINST)/usr/bin/rpcinfo \
$(IDIR_RPCBIND)/usr/bin
diff --git a/package/rpcbind/files/rpcbind.init b/package/rpcbind/files/rpcbind.init
index 42c527c90..efc957fd3 100644
--- a/package/rpcbind/files/rpcbind.init
+++ b/package/rpcbind/files/rpcbind.init
@@ -11,10 +11,10 @@ autostart)
exec sh $0 start
;;
start)
- /usr/bin/rpcbind
+ /usr/sbin/rpcbind
;;
stop)
- kill $(pgrep -f /usr/bin/rpcbind)
+ kill $(pgrep -f /usr/sbin/rpcbind)
;;
restart)
sh $0 stop
diff --git a/package/rpcbind/patches/patch-src_security_c b/package/rpcbind/patches/patch-src_security_c
deleted file mode 100644
index c183919c9..000000000
--- a/package/rpcbind/patches/patch-src_security_c
+++ /dev/null
@@ -1,50 +0,0 @@
---- rpcbind-0.2.4.orig/src/security.c 2016-11-28 21:47:28.000000000 +0100
-+++ rpcbind-0.2.4/src/security.c 2016-12-31 16:11:48.723119783 +0100
-@@ -22,14 +22,6 @@
- /*
- * XXX for special case checks in check_callit.
- */
--#ifdef HAVE_RPCSVC_MOUNT_H
--#include <rpcsvc/mount.h>
--#include <rpcsvc/rquota.h>
--#include <rpcsvc/nfs_prot.h>
--#include <rpcsvc/yp.h>
--#include <rpcsvc/ypclnt.h>
--#include <rpcsvc/yppasswd.h>
--#else
- # define MOUNTPROC_MNT 1
- # define MOUNTPROC_UMNT 3
- # define NFS_PROGRAM 100003
-@@ -44,7 +36,6 @@
- # define YPPROC_FIRST 4
- # define YPPROC_NEXT 5
- # define YPPROC_ALL 8
--#endif
-
- #include "rpcbind.h"
-
-@@ -327,24 +318,9 @@ check_callit(SVCXPRT *xprt, struct r_rmt
- args->rmt_proc != MOUNTPROC_UMNT)
- break;
- goto deny;
-- case YPBINDPROG:
-- if (args->rmt_proc != YPBINDPROC_SETDOM)
-- break;
-- /* FALLTHROUGH */
-- case YPPASSWDPROG:
- case NFS_PROGRAM:
- case RQUOTAPROG:
- goto deny;
-- case YPPROG:
-- switch (args->rmt_proc) {
-- case YPPROC_ALL:
-- case YPPROC_MATCH:
-- case YPPROC_FIRST:
-- case YPPROC_NEXT:
-- goto deny;
-- default:
-- break;
-- }
- default:
- break;
- }
diff --git a/package/rrdtool/Makefile b/package/rrdtool/Makefile
index 7bf566a0d..bc46647f4 100644
--- a/package/rrdtool/Makefile
+++ b/package/rrdtool/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= rrdtool
-PKG_VERSION:= 1.6.0
+PKG_VERSION:= 1.8.0
PKG_RELEASE:= 1
-PKG_HASH:= cd948e89cd2d8825fab4a6fb0323f810948d934af7d92c9ee8b5e9e1350e52d7
+PKG_HASH:= bd37614137d7a8dc523359648eb2a81631a34fd91a82ed5581916a52c08433f4
PKG_DESCR:= round robin database management library
PKG_SECTION:= libs/misc
PKG_DEPENDS:= libart libfreetype libpng zlib
@@ -14,7 +14,7 @@ PKG_DEPENDS+= glib cairo pango
PKG_BUILDDEP:= libxml2 cgilib freetype libart libpng
PKG_BUILDDEP+= glib cairo pango
PKG_URL:= http://oss.oetiker.ch/
-PKG_SITES:= http://oss.oetiker.ch/rrdtool/pub/
+PKG_SITES:= https://github.com/oetiker/rrdtool-1.x/releases/download/v$(PKG_VERSION)/
PKG_LIBNAME:= librrd
PKG_OPTS:= dev
@@ -41,7 +41,9 @@ CONFIGURE_ARGS+= --enable-rrdcgi \
--disable-ruby \
--disable-tcl \
--disable-python \
- --disable-libwrap
+ --disable-libwrap \
+ --disable-docs \
+ --disable-examples
TARGET_CPPFLAGS+= -I${STAGING_TARGET_DIR}/usr/include/freetype2
TARGET_LDFLAGS+= -lglib-2.0 -lm
diff --git a/package/rsync/Makefile b/package/rsync/Makefile
index 2826c8cef..9971074f3 100644
--- a/package/rsync/Makefile
+++ b/package/rsync/Makefile
@@ -4,24 +4,36 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= rsync
-PKG_VERSION:= 3.1.3
+PKG_VERSION:= 3.2.7
PKG_RELEASE:= 1
-PKG_HASH:= 55cc554efec5fdaad70de921cd5a5eeb6c29a95524c715f3bbf849235b0800c0
+PKG_HASH:= 4e7d9d3f6ed10878c58c5fb724a67dacf4b6aac7340b13e488fb2dc41346f2bb
PKG_DESCR:= utility that provides fast incremental file transfer
PKG_SECTION:= net/misc
-PKG_DEPENDS:= libpopt
-PKG_BUILDDEP:= popt
+PKG_DEPENDS:= libpopt libressl
+PKG_BUILDDEP:= popt libressl
+HOST_BUILDDEP:= libressl-host
PKG_URL:= http://rsync.samba.org/
PKG_SITES:= http://rsync.samba.org/ftp/rsync/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+include $(ADK_TOPDIR)/mk/host.mk
include ${ADK_TOPDIR}/mk/package.mk
+$(eval $(call HOST_template,RSYNC,rsync,$(PKG_VERSION)-$(PKG_RELEASE)))
$(eval $(call PKG_template,RSYNC,rsync,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+HOST_CONFIGURE_ARGS:= --disable-xxhash \
+ --disable-zstd \
+ --disable-lz4
+CONFIGURE_ARGS:= --disable-xxhash \
+ --disable-zstd \
+ --disable-simd \
+ --disable-lz4
+
rsync-install:
${INSTALL_DIR} ${IDIR_RSYNC}/usr/bin
${INSTALL_BIN} ${WRKINST}/usr/bin/rsync ${IDIR_RSYNC}/usr/bin
+include $(ADK_TOPDIR)/mk/host-bottom.mk
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/rsyslog/Makefile b/package/rsyslog/Makefile
index cbd9905b6..c4aa83b2a 100644
--- a/package/rsyslog/Makefile
+++ b/package/rsyslog/Makefile
@@ -4,16 +4,18 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= rsyslog
-PKG_VERSION:= 8.21.0
+PKG_VERSION:= 8.2010.0
PKG_RELEASE:= 1
-PKG_HASH:= bdb1fde87b75107b58d1cd5d00408822fb15b9f3efb8d9dbb93a1dee128339ab
+PKG_HASH:= 19b232f765c4ba7a35b91ef1f5f9af775f6ff78ef56bb7737a2ce79ccbb32b98
PKG_DESCR:= syslog daemon
PKG_SECTION:= sys/misc
-PKG_DEPENDS:= libestr liblogging libfastjson libuuid zlib libncurses
-PKG_BUILDDEP:= libestr liblogging libfastjson util-linux zlib ncurses
+PKG_DEPENDS:= libestr liblogging libfastjson libuuid zlib libncurses libgcrypt
+PKG_DEPENDS+= libcurl
+PKG_BUILDDEP:= libestr liblogging libfastjson util-linux zlib ncurses libgcrypt
+PKG_BUILDDEP+= curl
PKG_NEEDS:= threads
PKG_URL:= http://www.rsyslog.com/
-PKG_SITES:= http://www.rsyslog.com/files/download/rsyslog/
+PKG_SITES:= https://www.rsyslog.com/files/download/rsyslog/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
diff --git a/package/rtorrent/Makefile b/package/rtorrent/Makefile
index 8777baf87..56034a7f9 100644
--- a/package/rtorrent/Makefile
+++ b/package/rtorrent/Makefile
@@ -15,6 +15,8 @@ PKG_NEEDS:= c++
PKG_URL:= https://rakshasa.github.io/rtorrent/
PKG_SITES:= http://rtorrent.net/downloads/
+PKG_CFLINE_RTORRENT:= depends on ADK_BROKEN
+
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
include ${ADK_TOPDIR}/mk/package.mk
diff --git a/package/ruby/Makefile b/package/ruby/Makefile
index ab1d92fad..f0a55595b 100644
--- a/package/ruby/Makefile
+++ b/package/ruby/Makefile
@@ -4,18 +4,17 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= ruby
-PKG_VERSION:= 2.4.1
+PKG_VERSION:= 3.3.0
PKG_RELEASE:= 1
-PKG_HASH:= a330e10d5cb5e53b3a0078326c5731888bb55e32c4abfeb27d9e7f8e5d000250
+PKG_HASH:= 676b65a36e637e90f982b57b059189b3276b9045034dcd186a7e9078847b975b
PKG_DESCR:= scripting language
PKG_SECTION:= dev/lang
+PKG_DEPENDS:= libressl zlib
PKG_BUILDDEP:= ruby-host libressl zlib
+HOST_BUILDDEP:= libressl-host
PKG_NEEDS:= threads
PKG_URL:= http://www.ruby-lang.org/
-PKG_SITES:= http://ftp.ruby-lang.org/pub/ruby/2.4/
-#PKG_NOPARALLEL:= 1
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+PKG_SITES:= http://ftp.ruby-lang.org/pub/ruby/3.3/
include ${ADK_TOPDIR}/mk/host.mk
include ${ADK_TOPDIR}/mk/package.mk
@@ -26,6 +25,9 @@ $(eval $(call PKG_template,RUBY,ruby,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS
# uClibc setpgrp does not take arguments
CONFIGURE_ENV+= ac_cv_func_setpgrp_void=yes \
stack_protector=no \
+ ac_cv_func_finite=yes \
+ ac_cv_func_isinf=yes \
+ ac_cv_func_isnan=yes \
rb_cv_binary_elf=yes
CONFIGURE_ARGS+= --disable-install-doc \
--with-out-ext=fiddle \
@@ -37,8 +39,9 @@ ALL_TARGET:= main
INSTALL_TARGET:= install-nodoc
HOST_CONFIGURE_ARGS+= --disable-install-doc \
+ --disable-yjit \
--disable-shared \
- --with-out-ext=curses,openssl,readline \
+ --with-out-ext=curses,readline,openssl \
--disable-rubygems
HOST_ALL_TARGET:= main
HOST_INSTALL_TARGET:= install-nodoc
diff --git a/package/ruby/patches/patch-configure b/package/ruby/patches/patch-configure
deleted file mode 100644
index 6a6360320..000000000
--- a/package/ruby/patches/patch-configure
+++ /dev/null
@@ -1,16 +0,0 @@
---- ruby-2.4.0.orig/configure 2016-12-23 17:06:46.000000000 +0100
-+++ ruby-2.4.0/configure 2017-01-30 03:08:52.351107663 +0100
-@@ -9412,6 +9412,13 @@ esac
- ac_cv_func_isinf=yes
- ac_cv_func_isnan=yes
- ;; #(
-+ linux*) :
-+ LIBS="-lm $LIBS"
-+ # finite(), isinf() and isnan() are macros on Linux.
-+ ac_cv_func_finite=yes
-+ ac_cv_func_isinf=yes
-+ ac_cv_func_isnan=yes
-+ ;; #(
- aix*) :
- LIBS="-lm $LIBS"
- ac_cv_func_round=no
diff --git a/package/rxvt-unicode/Makefile b/package/rxvt-unicode/Makefile
index 04e3c0c25..8b977427d 100644
--- a/package/rxvt-unicode/Makefile
+++ b/package/rxvt-unicode/Makefile
@@ -4,13 +4,15 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= rxvt-unicode
-PKG_VERSION:= 9.21
+PKG_VERSION:= 9.30
PKG_RELEASE:= 1
-PKG_HASH:= 75270ed72bc5895a64a1d7392bf45a622204192371c3965bd3dd978dc088956b
+PKG_HASH:= fe1c93d12f385876457a989fc3ae05c0915d2692efc59289d0f70fabe5b44d2d
PKG_DESCR:= terminal emulator with unicode support
PKG_SECTION:= x11/apps
-PKG_DEPENDS:= libx11 fontconfig libxft libxml2 gdk-pixbuf
-PKG_BUILDDEP:= libX11 fontconfig libXft libxml2 gdk-pixbuf
+PKG_DEPENDS:= libx11 fontconfig libxft libxml2 gdk-pixbuf libptytty
+PKG_DEPENDS+= libffi libmount
+PKG_BUILDDEP:= libX11 fontconfig libXft libxml2 gdk-pixbuf libptytty
+PKG_BUILDDEP+= libffi util-linux
PKG_NEEDS:= c++
PKG_URL:= http://software.schmorp.de/pkg/rxvt-unicode.html
PKG_SITES:= http://dist.schmorp.de/rxvt-unicode/
@@ -22,9 +24,7 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,RXVT_UNICODE,rxvt-unicode,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
TARGET_LDFLAGS+= -lpthread
-CONFIGURE_ARGS+= --disable-perl \
- --disable-utmp \
- --disable-afterimage
+CONFIGURE_ARGS+= --disable-perl
rxvt-unicode-install:
$(INSTALL_DIR) $(IDIR_RXVT_UNICODE)/usr/bin
diff --git a/package/s6-linux-utils/Makefile b/package/s6-linux-utils/Makefile
deleted file mode 100644
index 1e8410187..000000000
--- a/package/s6-linux-utils/Makefile
+++ /dev/null
@@ -1,34 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= s6-linux-utils
-PKG_VERSION:= 2.1.0.0
-PKG_RELEASE:= 1
-PKG_HASH:= 3523ba84ba524198711b2de3edaaf620381a4e95d78ec6d13dcb7aba42397ead
-PKG_DESCR:= set of minimalistic Linux-specific system utilities
-PKG_SECTION:= sys/misc
-PKG_DEPENDS:= skalibs
-PKG_BUILDDEP:= skalibs
-PKG_URL:= http://skarnet.org/software/s6-linux-utils/
-PKG_SITES:= http://skarnet.org/software/s6-linux-utils/
-
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,S6_LINUX_UTILS,s6-linux-utils,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-TARGET_LDFLAGS+= -lrt
-CONFIGURE_ARGS+= --with-sysdeps=$(STAGING_TARGET_DIR)/usr/lib/skalibs/sysdeps \
- --with-include=$(STAGING_TARGET_DIR)/usr/include \
- --with-dynlib=$(STAGING_TARGET_DIR)/usr/lib \
- --disable-allstatic
-
-s6-linux-utils-install:
- $(INSTALL_DIR) $(IDIR_S6_LINUX_UTILS)/usr/bin
- $(CP) $(WRKINST)/usr/bin/* \
- $(IDIR_S6_LINUX_UTILS)/usr/bin
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/s6-portable-utils/Makefile b/package/s6-portable-utils/Makefile
deleted file mode 100644
index 224e4fa59..000000000
--- a/package/s6-portable-utils/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= s6-portable-utils
-PKG_VERSION:= 2.0.6.0
-PKG_RELEASE:= 1
-PKG_HASH:= 233b7d13766a23661cc7ed5c052f29b9c558c1d516a538a281a17da22a909d4b
-PKG_DESCR:= set of tiny general Unix utilities
-PKG_SECTION:= sys/misc
-PKG_DEPENDS:= skalibs
-PKG_BUILDDEP:= skalibs
-PKG_URL:= http://skarnet.org/software/s6-portable-utils/
-PKG_SITES:= http://skarnet.org/software/s6-portable-utils/
-
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,S6_PORTABLE_UTILS,s6-portable-utils,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-CONFIGURE_ARGS+= --with-sysdeps=$(STAGING_TARGET_DIR)/usr/lib/skalibs/sysdeps \
- --with-include=$(STAGING_TARGET_DIR)/usr/include \
- --with-dynlib=$(STAGING_TARGET_DIR)/usr/lib \
- --disable-allstatic
-
-s6-portable-utils-install:
- $(INSTALL_DIR) $(IDIR_S6_PORTABLE_UTILS)/usr/bin
- $(CP) $(WRKINST)/usr/bin/* \
- $(IDIR_S6_PORTABLE_UTILS)/usr/bin
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/s6/Makefile b/package/s6/Makefile
deleted file mode 100644
index 209a60f45..000000000
--- a/package/s6/Makefile
+++ /dev/null
@@ -1,39 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= s6
-PKG_VERSION:= 2.3.0.0
-PKG_RELEASE:= 1
-PKG_HASH:= 49c9a0476d93c6279c776ca5ae9c49b3fd39c356eda674828aebf78f8488e8e6
-PKG_DESCR:= small suite of programs for UNIX, designed to allow process supervision
-PKG_SECTION:= base/init
-PKG_DEPENDS:= skalibs execline
-PKG_BUILDDEP:= skalibs execline
-PKG_URL:= http://www.skarnet.org/software/s6/
-PKG_SITES:= http://www.skarnet.org/software/s6/
-
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,S6,s6,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-CONFIGURE_ARGS+= --with-sysdeps=$(STAGING_TARGET_DIR)/usr/lib/skalibs/sysdeps \
- --with-include=$(STAGING_TARGET_DIR)/usr/include \
- --with-dynlib=$(STAGING_TARGET_DIR)/usr/lib \
- --disable-allstatic
-
-s6-install:
- $(INSTALL_DIR) $(IDIR_S6)/usr/bin
- $(INSTALL_DIR) $(IDIR_S6)/usr/sbin
- $(INSTALL_DIR) $(IDIR_S6)/usr/libexec
- $(CP) $(WRKINST)/usr/bin/* \
- $(IDIR_S6)/usr/bin
- $(CP) $(WRKINST)/usr/sbin/* \
- $(IDIR_S6)/usr/sbin
- $(CP) $(WRKINST)/usr/libexec/* \
- $(IDIR_S6)/usr/libexec
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/samba/Makefile b/package/samba/Makefile
index 82d4a5f87..e47d34af3 100644
--- a/package/samba/Makefile
+++ b/package/samba/Makefile
@@ -4,15 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= samba
-PKG_VERSION:= 4.6.9
+PKG_VERSION:= 4.19.4
PKG_RELEASE:= 1
-PKG_HASH:= c31db4aad82f0b9588ef6c4b4dab5dce3fa1787bd298e62d953c2628bb1af21a
+PKG_HASH:= 4026d93b866db198c8ca1685b0f5d52793f65c6e63cb364163af661fdff0968c
PKG_DESCR:= file and print server
PKG_SECTION:= net/fs
PKG_DEPENDS:= libuuid libpopt libgnutls libtirpc
-PKG_DEPENDS+= libtalloc
-PKG_BUILDDEP:= util-linux popt python2 gnutls talloc
-PKG_BUILDDEP+= heimdal-host python2-host libtirpc
+PKG_DEPENDS+= libtalloc libkrb5
+PKG_BUILDDEP:= util-linux talloc p5-parse-yapp-host gnutls krb5
PKG_NEEDS:= threads intl
PKG_URL:= http://www.samba.org/
PKG_SITES:= http://samba.org/samba/ftp/stable/
@@ -29,10 +28,12 @@ CONFIGURE_ARGS+= --enable-fhs \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
- --with-privatedir=/etc/samba \
+ --with-privatedir=/var/lib/samba \
--cross-compile \
--cross-answers=$(WRKSRC)/cache.txt \
--hostcc=gcc \
+ --with-system-mitkrb5 \
+ --without-libunwind \
--without-pie \
--without-gettext \
--without-relro \
@@ -44,20 +45,32 @@ CONFIGURE_ARGS+= --enable-fhs \
--without-ads \
--without-ldap \
--without-acl-support \
+ --without-ad-dc \
+ --without-json \
+ --without-libarchive \
+ --without-iconv \
--disable-glusterfs \
--disable-iprint \
--disable-cups \
--disable-avahi \
--disable-rpath \
+ --disable-python \
--bundled-libraries='com_err,!asn1_compile,!compile_et' \
+ --with-shared-modules=!vfs_snapper \
--disable-rpath-install
CONFIGURE_ENV+= PYTHON_CONFIG="$(STAGING_TARGET_DIR)/usr/bin/python-config" \
python_LDFLAGS="" \
- python_LIBDIR=""
+ python_LIBDIR="" \
+ PERL="$(STAGING_HOST_DIR)/usr/bin/perl-host"
pre-configure:
$(CP) ./files/cache.txt $(WRKSRC)
echo 'Checking uname machine type: "$(ADK_TARGET_ARCH)"' >>$(WRKSRC)/cache.txt
+ifneq ($(ADK_LINUX_64),)
+ echo 'Checking for a 64-bit host to support lmdb: OK' >>$(WRKSRC)/cache.txt
+else
+ echo 'Checking for a 64-bit host to support lmdb: NO' >>$(WRKSRC)/cache.txt
+endif
samba-install:
$(INSTALL_DIR) $(IDIR_SAMBA)/etc/samba
diff --git a/package/samba/files/cache.txt b/package/samba/files/cache.txt
index 3ba8a75ea..9ab9fcd5b 100644
--- a/package/samba/files/cache.txt
+++ b/package/samba/files/cache.txt
@@ -37,3 +37,12 @@ Checking value of NSIG: "65"
Checking value of _NSIG: "65"
Checking value of SIGRTMAX: "64"
Checking value of SIGRTMIN: "34"
+Checking errno of iconv for illegal multibyte sequence: "0"
+checking for clnt_create(): OK
+Checking for a 64-bit host to support lmdb: NO
+Checking value of GNUTLS_CIPHER_AES_128_CFB8: 29
+Checking value of GNUTLS_MAC_AES_CMAC_128: 203
+Checking whether fcntl supports flags to send direct I/O availability signals: OK
+Checking for gnutls fips mode support: NO
+Checking for readlink breakage: NO
+Checking whether the WRFILE -keytab is supported: NO
diff --git a/package/samba/files/samba.init b/package/samba/files/samba.init
index 21b983530..8b9e7e375 100644
--- a/package/samba/files/samba.init
+++ b/package/samba/files/samba.init
@@ -11,12 +11,13 @@ autostart)
exec sh $0 start
;;
start)
- [ -d /var/lib/samba ] || mkdir -p /var/lib/samba
+ [ -d /var/lib/samba/msg.sock ] || mkdir -p /var/lib/samba/msg.sock
[ -d /var/run/samba ] || mkdir -p /var/run/samba
[ -d /var/log/samba ] || mkdir -p /var/log/samba
[ -d /var/cache/samba ] || mkdir -p /var/cache/samba
[ -d /var/lock/samba ] || mkdir -p /var/lock/samba
- /usr/sbin/nmbd -D
+ chmod 700 /var/lib/samba/msg.sock
+ /usr/sbin/nmbd -D
/usr/sbin/smbd -D
;;
stop)
diff --git a/package/samba/patches/patch-nsswitch_wins_c b/package/samba/patches/patch-nsswitch_wins_c
deleted file mode 100644
index 92aa624f5..000000000
--- a/package/samba/patches/patch-nsswitch_wins_c
+++ /dev/null
@@ -1,17 +0,0 @@
---- samba-4.6.6.orig/nsswitch/wins.c 2017-01-09 09:12:30.000000000 +0100
-+++ samba-4.6.6/nsswitch/wins.c 2017-08-02 22:28:16.616627669 +0200
-@@ -39,6 +39,14 @@ static pthread_mutex_t wins_nss_mutex =
- #define INADDRSZ 4
- #endif
-
-+#ifndef NETDB_INTERNAL
-+#define NETDB_INTERNAL -1
-+#endif
-+
-+#ifndef NETDB_SUCCESS
-+#define NETDB_SUCCESS 0
-+#endif
-+
- NSS_STATUS _nss_wins_gethostbyname_r(const char *hostname,
- struct hostent *he,
- char *buffer,
diff --git a/package/samba/patches/patch-source3_lib_util_c b/package/samba/patches/patch-source3_lib_util_c
deleted file mode 100644
index 5755bb837..000000000
--- a/package/samba/patches/patch-source3_lib_util_c
+++ /dev/null
@@ -1,18 +0,0 @@
---- samba-4.6.6.orig/source3/lib/util.c 2017-02-09 08:45:27.000000000 +0100
-+++ samba-4.6.6/source3/lib/util.c 2017-08-02 21:54:59.695281066 +0200
-@@ -565,6 +565,7 @@ char *get_mydnsdomname(TALLOC_CTX *ctx)
- }
- }
-
-+#if 0
- #if (defined(HAVE_NETGROUP) && defined(WITH_AUTOMOUNT))
- /******************************************************************
- Remove any mount options such as -rsize=2048,wsize=2048 etc.
-@@ -687,6 +688,7 @@ char *automount_lookup(TALLOC_CTX *ctx,
- }
- #endif /* WITH_NISPLUS_HOME */
- #endif
-+#endif
-
- bool process_exists(const struct server_id pid)
- {
diff --git a/package/sane-backends/Makefile b/package/sane-backends/Makefile
index fea9bd975..77d28add4 100644
--- a/package/sane-backends/Makefile
+++ b/package/sane-backends/Makefile
@@ -4,15 +4,15 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= sane-backends
-PKG_VERSION:= 1.0.22
-PKG_RELEASE:= 3
-PKG_HASH:= 9f84a16800497f0b79a278531bb1a0f438de6ce8cf509fefc65a252e29f90c54
+PKG_VERSION:= 1.2.1
+PKG_RELEASE:= 1
+PKG_HASH:= f832395efcb90bb5ea8acd367a820c393dda7e0dd578b16f48928b8f5bdd0524
PKG_DESCR:= scanner access now easy
PKG_SECTION:= sys/misc
PKG_BUILDDEP:= libusb libusb-compat
PKG_NEEDS:= threads
PKG_URL:= http://www.sane-project.org/
-PKG_SITES:= ftp://ftp2.sane-project.org/pub/sane/${PKG_NAME}-${PKG_VERSION}/
+PKG_SITES:= https://gitlab.com/sane-project/backends/uploads/110fc43336d0fb5e514f1fdc7360dd87/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
@@ -226,7 +226,9 @@ $(eval $(call PKG_mod_template,SANE_BACKEND_UMAX_PP,umax_pp))
$(eval $(call PKG_mod_template,SANE_BACKEND_UMAX,umax))
TARGET_CFLAGS+= -D_GNU_SOURCE
-CONFIGURE_ENV+= ac_cv_func_ioperm=no have_libv4l1=no
+CONFIGURE_ENV+= ac_cv_func_ioperm=no \
+ have_libv4l1=no \
+ ac_cv_func_mmap_fixed_mapped=yes
CONFIGURE_ARGS+= --disable-translations \
--without-gphoto2 \
--enable-libusb
diff --git a/package/sane-backends/patches/patch-Makefile_in b/package/sane-backends/patches/patch-Makefile_in
deleted file mode 100644
index b1796c56f..000000000
--- a/package/sane-backends/patches/patch-Makefile_in
+++ /dev/null
@@ -1,12 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- sane-backends-1.0.22.orig/Makefile.in 2011-01-30 19:50:56.000000000 +0100
-+++ sane-backends-1.0.22/Makefile.in 2011-10-01 19:26:02.309066938 +0200
-@@ -293,7 +293,7 @@ target_alias = @target_alias@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--SUBDIRS = include lib sanei backend frontend tools doc po
-+SUBDIRS = include lib sanei backend frontend
- DIST_SUBDIRS = include lib sanei backend frontend tools doc po japi testsuite
- dist_doc_DATA = AUTHORS ChangeLog COPYING LICENSE NEWS PROBLEMS PROJECTS \
- README README.aix README.beos README.darwin README.djpeg README.freebsd \
diff --git a/package/sane-backends/patches/patch-backend_canon630u-common_c b/package/sane-backends/patches/patch-backend_canon630u-common_c
deleted file mode 100644
index d9acb4bf1..000000000
--- a/package/sane-backends/patches/patch-backend_canon630u-common_c
+++ /dev/null
@@ -1,12 +0,0 @@
---- sane-backends-1.0.22.orig/backend/canon630u-common.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/canon630u-common.c 2014-03-18 08:33:31.000000000 +0100
-@@ -58,9 +58,7 @@
- #include <unistd.h> /* usleep */
- #include <time.h>
- #include <math.h> /* exp() */
--#ifdef HAVE_OS2_H
- #include <sys/types.h> /* mode_t */
--#endif
- #include <sys/stat.h>
- #include "lm9830.h"
-
diff --git a/package/sane-backends/patches/patch-backend_epson2-commands_c b/package/sane-backends/patches/patch-backend_epson2-commands_c
deleted file mode 100644
index 3b2c46841..000000000
--- a/package/sane-backends/patches/patch-backend_epson2-commands_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/backend/epson2-commands.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/epson2-commands.c 2014-03-18 08:34:27.000000000 +0100
-@@ -19,6 +19,7 @@
-
- #include "sane/config.h"
-
-+#include <sys/types.h>
- #include <byteorder.h>
- #include <math.h>
-
diff --git a/package/sane-backends/patches/patch-backend_genesys_c b/package/sane-backends/patches/patch-backend_genesys_c
deleted file mode 100644
index fc0398856..000000000
--- a/package/sane-backends/patches/patch-backend_genesys_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/backend/genesys.c 2011-02-14 00:10:18.000000000 +0100
-+++ sane-backends-1.0.22/backend/genesys.c 2014-03-18 08:36:00.000000000 +0100
-@@ -65,6 +65,7 @@
- #include <errno.h>
- #include <string.h>
- #include <stdlib.h>
-+#include <sys/types.h>
- #include <unistd.h>
- #include <math.h>
-
diff --git a/package/sane-backends/patches/patch-backend_genesys_h b/package/sane-backends/patches/patch-backend_genesys_h
deleted file mode 100644
index efc830be1..000000000
--- a/package/sane-backends/patches/patch-backend_genesys_h
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/backend/genesys.h 2011-01-16 02:01:28.000000000 +0100
-+++ sane-backends-1.0.22/backend/genesys.h 2014-03-18 08:36:42.000000000 +0100
-@@ -52,6 +52,7 @@
- */
- #undef UNIT_TESTING
-
-+#include <sys/types.h>
- #include "genesys_low.h"
-
- #define FREE_IFNOT_NULL(x) if(x!=NULL) { free(x); x=NULL;}
diff --git a/package/sane-backends/patches/patch-backend_genesys_low_c b/package/sane-backends/patches/patch-backend_genesys_low_c
deleted file mode 100644
index 430ab3791..000000000
--- a/package/sane-backends/patches/patch-backend_genesys_low_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/backend/genesys_low.c 2011-02-14 00:10:18.000000000 +0100
-+++ sane-backends-1.0.22/backend/genesys_low.c 2014-03-18 08:37:27.000000000 +0100
-@@ -46,6 +46,7 @@
- #include <errno.h>
- #include <string.h>
- #include <stdlib.h>
-+#include <sys/types.h>
- #include <unistd.h>
- #include <math.h>
-
diff --git a/package/sane-backends/patches/patch-backend_hp3900_rts8822_c b/package/sane-backends/patches/patch-backend_hp3900_rts8822_c
deleted file mode 100644
index 59b9b5a9b..000000000
--- a/package/sane-backends/patches/patch-backend_hp3900_rts8822_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/backend/hp3900_rts8822.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/hp3900_rts8822.c 2014-03-18 08:38:21.000000000 +0100
-@@ -64,6 +64,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h> /* bzero() */
-+#include <sys/types.h>
- #include <time.h> /* clock() */
- #include <math.h> /* truncf() */
- #include <ctype.h> /* tolower() */
diff --git a/package/sane-backends/patches/patch-backend_hp5400_sanei_c b/package/sane-backends/patches/patch-backend_hp5400_sanei_c
deleted file mode 100644
index 7f340d607..000000000
--- a/package/sane-backends/patches/patch-backend_hp5400_sanei_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/backend/hp5400_sanei.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/hp5400_sanei.c 2014-03-18 08:39:35.000000000 +0100
-@@ -56,6 +56,7 @@
- #include "hp5400_xfer.h"
- #include "hp5400_debug.h"
- #include <stdio.h>
-+#include <sys/types.h>
- #include "../include/sane/sanei_usb.h"
-
- #define CMD_INITBULK1 0x0087 /* send 0x14 */
diff --git a/package/sane-backends/patches/patch-backend_hp5590_low_c b/package/sane-backends/patches/patch-backend_hp5590_low_c
deleted file mode 100644
index 7812886dc..000000000
--- a/package/sane-backends/patches/patch-backend_hp5590_low_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/backend/hp5590_low.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/hp5590_low.c 2014-03-18 08:38:55.000000000 +0100
-@@ -46,6 +46,7 @@
-
- #include <stdio.h>
- #include <string.h>
-+#include <sys/types.h>
- #include <errno.h>
- #ifdef HAVE_NETINET_IN_H
- # include <netinet/in.h>
diff --git a/package/sane-backends/patches/patch-backend_kvs20xx_opt_c b/package/sane-backends/patches/patch-backend_kvs20xx_opt_c
deleted file mode 100644
index 253699d14..000000000
--- a/package/sane-backends/patches/patch-backend_kvs20xx_opt_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/backend/kvs20xx_opt.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/kvs20xx_opt.c 2014-03-18 08:41:24.000000000 +0100
-@@ -8,6 +8,7 @@
-
- #include "../include/sane/config.h"
-
-+#include <sys/types.h>
- #include <string.h>
-
- #define DEBUG_DECLARE_ONLY
diff --git a/package/sane-backends/patches/patch-backend_microtek_c b/package/sane-backends/patches/patch-backend_microtek_c
deleted file mode 100644
index dde369f2d..000000000
--- a/package/sane-backends/patches/patch-backend_microtek_c
+++ /dev/null
@@ -1,11 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- sane-backends-1.0.22.orig/backend/microtek.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/microtek.c 2011-10-01 19:26:01.659066938 +0200
-@@ -59,6 +59,7 @@
-
- #include "../include/sane/config.h"
-
-+#include <stdarg.h>
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
diff --git a/package/sane-backends/patches/patch-backend_pixma_bjnp_c b/package/sane-backends/patches/patch-backend_pixma_bjnp_c
deleted file mode 100644
index 5d347c00e..000000000
--- a/package/sane-backends/patches/patch-backend_pixma_bjnp_c
+++ /dev/null
@@ -1,22 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- sane-backends-1.0.22.orig/backend/pixma_bjnp.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/pixma_bjnp.c 2011-10-01 19:26:01.699066938 +0200
-@@ -59,9 +59,6 @@
- #ifdef HAVE_SYS_TYPES_H
- #include <sys/types.h>
- #endif
--#ifdef HAVE_SYS_TIME_H
--#include <sys/timeb.h>
--#endif
-
- /*
- * networking stuff
-@@ -196,7 +193,7 @@ truncate_hostname (char *hostname, char
- {
- /* this is a hostname, not an ip-address, so remove domain part of the name */
-
-- if ((dot = index (short_hostname, '.')) != NULL)
-+ if ((dot = strchr(short_hostname, '.')) != NULL)
- *dot = '\0';
- }
- return short_hostname;
diff --git a/package/sane-backends/patches/patch-backend_pixma_common_h b/package/sane-backends/patches/patch-backend_pixma_common_h
deleted file mode 100644
index 822cc888e..000000000
--- a/package/sane-backends/patches/patch-backend_pixma_common_h
+++ /dev/null
@@ -1,13 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- sane-backends-1.0.20.orig/backend/pixma_common.h 2009-02-05 15:36:36.000000000 +0100
-+++ sane-backends-1.0.20/backend/pixma_common.h 2009-05-11 21:00:58.000000000 +0200
-@@ -220,8 +220,8 @@ void pixma_hexdump (int level, const voi
- void pixma_dump (int level, const char *type, const void *data, int len,
- int size, int max);
- # define DEBUG_DECLARE_ONLY
--# include "../include/sane/sanei_debug.h"
- #endif /* NDEBUG */
- /** @} end of group debug */
-+# include "../include/sane/sanei_debug.h"
-
- #endif
diff --git a/package/sane-backends/patches/patch-backend_pixma_imageclass_c b/package/sane-backends/patches/patch-backend_pixma_imageclass_c
deleted file mode 100644
index cb265aedb..000000000
--- a/package/sane-backends/patches/patch-backend_pixma_imageclass_c
+++ /dev/null
@@ -1,12 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- sane-backends-1.0.22.orig/backend/pixma_imageclass.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/pixma_imageclass.c 2011-10-01 19:26:01.779066938 +0200
-@@ -161,8 +161,6 @@ query_status (pixma_t * s)
- if (error >= 0)
- {
- memcpy (mf->current_status, data, 12);
-- DBG (3, "Current status: paper=%u cal=%u lamp=%u\n",
-- data[1], data[8], data[7]);
- PDBG (pixma_dbg (3, "Current status: paper=%u cal=%u lamp=%u\n",
- data[1], data[8], data[7]));
- }
diff --git a/package/sane-backends/patches/patch-backend_rts88xx_lib_c b/package/sane-backends/patches/patch-backend_rts88xx_lib_c
deleted file mode 100644
index 060f0a10e..000000000
--- a/package/sane-backends/patches/patch-backend_rts88xx_lib_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/backend/rts88xx_lib.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/rts88xx_lib.c 2014-03-18 08:42:41.000000000 +0100
-@@ -54,6 +54,7 @@
-
- #include <stdio.h>
- #include <sys/time.h>
-+#include <sys/types.h>
-
- #include "../include/_stdint.h"
-
diff --git a/package/sane-backends/patches/patch-backend_sm3600-scanutil_c b/package/sane-backends/patches/patch-backend_sm3600-scanutil_c
deleted file mode 100644
index 436102a18..000000000
--- a/package/sane-backends/patches/patch-backend_sm3600-scanutil_c
+++ /dev/null
@@ -1,11 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- sane-backends-1.0.22.orig/backend/sm3600-scanutil.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/sm3600-scanutil.c 2011-10-01 19:26:01.819066938 +0200
-@@ -47,6 +47,7 @@ $Id$
-
- ====================================================================== */
-
-+#include <stdarg.h>
- #include <unistd.h>
- #include "sm3600-scantool.h"
-
diff --git a/package/sane-backends/patches/patch-backend_umax1220u-common_c b/package/sane-backends/patches/patch-backend_umax1220u-common_c
deleted file mode 100644
index 8889f7795..000000000
--- a/package/sane-backends/patches/patch-backend_umax1220u-common_c
+++ /dev/null
@@ -1,12 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- sane-backends-1.0.20.orig/backend/umax1220u-common.c 2006-04-17 14:46:41.000000000 +0200
-+++ sane-backends-1.0.20/backend/umax1220u-common.c 2009-05-11 21:17:47.000000000 +0200
-@@ -556,7 +556,7 @@ cwritev (UMAX_Handle * scan, UMAX_Cmd cm
- /* Read the opcode back */
-
- CHK (cread (scan, cmd, len, buf, NULL));
-- if (bcmp (buf, data, len))
-+ if (memcmp (buf, data, len))
- {
- DBG (1, "cwritev: verification failed\n");
- return SANE_STATUS_IO_ERROR;
diff --git a/package/sane-backends/patches/patch-backend_xerox_mfp_c b/package/sane-backends/patches/patch-backend_xerox_mfp_c
deleted file mode 100644
index d58262197..000000000
--- a/package/sane-backends/patches/patch-backend_xerox_mfp_c
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/backend/xerox_mfp.c 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/backend/xerox_mfp.c 2014-03-18 08:44:56.000000000 +0100
-@@ -22,6 +22,7 @@
- #include <math.h>
- #include <unistd.h>
- #include <sys/time.h>
-+#include <sys/types.h>
- #include "../include/sane/sane.h"
- #include "../include/sane/sanei.h"
- #include "../include/sane/saneopts.h"
diff --git a/package/sane-backends/patches/patch-configure b/package/sane-backends/patches/patch-configure
deleted file mode 100644
index d8d5aca8d..000000000
--- a/package/sane-backends/patches/patch-configure
+++ /dev/null
@@ -1,90 +0,0 @@
---- sane-backends-1.0.22.orig/configure 2011-02-14 02:27:52.000000000 +0100
-+++ sane-backends-1.0.22/configure 2011-10-01 19:32:51.919066675 +0200
-@@ -7529,77 +7529,7 @@ done
-
-
-
--
--
--
--pkg_failed=no
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBV4L" >&5
--$as_echo_n "checking for LIBV4L... " >&6; }
--
--if test -n "$LIBV4L_CFLAGS"; then
-- pkg_cv_LIBV4L_CFLAGS="$LIBV4L_CFLAGS"
-- elif test -n "$PKG_CONFIG"; then
-- if test -n "$PKG_CONFIG" && \
-- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libv4l1\""; } >&5
-- ($PKG_CONFIG --exists --print-errors "libv4l1") 2>&5
-- ac_status=$?
-- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-- test $ac_status = 0; }; then
-- pkg_cv_LIBV4L_CFLAGS=`$PKG_CONFIG --cflags "libv4l1" 2>/dev/null`
--else
-- pkg_failed=yes
--fi
-- else
-- pkg_failed=untried
--fi
--if test -n "$LIBV4L_LIBS"; then
-- pkg_cv_LIBV4L_LIBS="$LIBV4L_LIBS"
-- elif test -n "$PKG_CONFIG"; then
-- if test -n "$PKG_CONFIG" && \
-- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libv4l1\""; } >&5
-- ($PKG_CONFIG --exists --print-errors "libv4l1") 2>&5
-- ac_status=$?
-- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-- test $ac_status = 0; }; then
-- pkg_cv_LIBV4L_LIBS=`$PKG_CONFIG --libs "libv4l1" 2>/dev/null`
--else
-- pkg_failed=yes
--fi
-- else
-- pkg_failed=untried
--fi
--
--
--
--if test $pkg_failed = yes; then
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
--$as_echo "no" >&6; }
--
--if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-- _pkg_short_errors_supported=yes
--else
-- _pkg_short_errors_supported=no
--fi
-- if test $_pkg_short_errors_supported = yes; then
-- LIBV4L_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libv4l1" 2>&1`
-- else
-- LIBV4L_PKG_ERRORS=`$PKG_CONFIG --print-errors "libv4l1" 2>&1`
-- fi
-- # Put the nasty error message in config.log where it belongs
-- echo "$LIBV4L_PKG_ERRORS" >&5
--
-- have_libv4l1=no
--elif test $pkg_failed = untried; then
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
--$as_echo "no" >&6; }
-- have_libv4l1=no
--else
-- LIBV4L_CFLAGS=$pkg_cv_LIBV4L_CFLAGS
-- LIBV4L_LIBS=$pkg_cv_LIBV4L_LIBS
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
--$as_echo "yes" >&6; }
-- have_libv4l1=yes
--fi
-+have_libv4l1=no
-
-
-
-@@ -16874,7 +16804,7 @@ ALL_BACKENDS="abaton agfafocus apple art
- leo lexmark ma1509 magicolor \
- matsushita microtek microtek2 mustek mustek_pp \
- mustek_usb mustek_usb2 nec net niash pie pint \
-- pixma plustek plustek_pp qcam ricoh rts8891 s9036 \
-+ pixma plustek plustek_pp ricoh rts8891 s9036 \
- sceptre sharp sm3600 sm3840 snapscan sp15c st400 \
- stv680 tamarack teco1 teco2 teco3 test u12 umax
- umax_pp umax1220u v4l xerox_mfp p5"
diff --git a/package/sane-backends/patches/patch-configure_in b/package/sane-backends/patches/patch-configure_in
deleted file mode 100644
index fbc410c70..000000000
--- a/package/sane-backends/patches/patch-configure_in
+++ /dev/null
@@ -1,11 +0,0 @@
---- sane-backends-1.0.22.orig/configure.in 2011-02-14 00:27:15.000000000 +0100
-+++ sane-backends-1.0.22/configure.in 2011-10-01 19:26:02.249066938 +0200
-@@ -559,7 +559,7 @@ ALL_BACKENDS="abaton agfafocus apple art
- leo lexmark ma1509 magicolor \
- matsushita microtek microtek2 mustek mustek_pp \
- mustek_usb mustek_usb2 nec net niash pie pint \
-- pixma plustek plustek_pp qcam ricoh rts8891 s9036 \
-+ pixma plustek plustek_pp ricoh rts8891 s9036 \
- sceptre sharp sm3600 sm3840 snapscan sp15c st400 \
- stv680 tamarack teco1 teco2 teco3 test u12 umax
- umax_pp umax1220u v4l xerox_mfp p5"
diff --git a/package/sane-backends/patches/patch-include_sane_sanei_tcp_h b/package/sane-backends/patches/patch-include_sane_sanei_tcp_h
deleted file mode 100644
index 4ba390003..000000000
--- a/package/sane-backends/patches/patch-include_sane_sanei_tcp_h
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/include/sane/sanei_tcp.h 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/include/sane/sanei_tcp.h 2014-03-18 08:31:07.000000000 +0100
-@@ -20,6 +20,7 @@
-
- #include <sane/sane.h>
-
-+#include <sys/types.h>
- #include <netinet/in.h>
- #include <netdb.h>
-
diff --git a/package/sane-backends/patches/patch-include_sane_sanei_udp_h b/package/sane-backends/patches/patch-include_sane_sanei_udp_h
deleted file mode 100644
index 3d70edada..000000000
--- a/package/sane-backends/patches/patch-include_sane_sanei_udp_h
+++ /dev/null
@@ -1,10 +0,0 @@
---- sane-backends-1.0.22.orig/include/sane/sanei_udp.h 2010-12-02 00:49:58.000000000 +0100
-+++ sane-backends-1.0.22/include/sane/sanei_udp.h 2014-03-18 08:31:40.000000000 +0100
-@@ -20,6 +20,7 @@
-
- #include <sane/sane.h>
-
-+#include <sys/types.h>
- #include <netinet/in.h>
- #include <netdb.h>
-
diff --git a/package/scons/Makefile b/package/scons/Makefile
index 7acc52c1a..b33c67318 100644
--- a/package/scons/Makefile
+++ b/package/scons/Makefile
@@ -4,19 +4,21 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= scons
-PKG_VERSION:= 2.3.0
-PKG_RELEASE:= 2
-PKG_HASH:= 9442069999cf4b2caa94a5886ab4c2c71de1718ed5e9176c18e2b6dbca463b4b
+PKG_VERSION:= 3.1.2
+PKG_RELEASE:= 1
+PKG_HASH:= 7801f3f62f654528e272df780be10c0e9337e897650b62ddcee9f39fde13f8fb
PKG_DESCR:= software construction tool
PKG_SECTION:= dev/tools
-HOST_BUILDDEP:= python2-host
+HOST_BUILDDEP:= python3-host
PKG_URL:= http://www.scons.org
PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=scons/}
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+DISTFILES:= $(PKG_NAME)-${PKG_VERSION}.tar.gz
PKG_CFLINE_SCONS:= depends on ADK_HOST_ONLY
+#WRKDIST= ${WRKDIR}/SCons-${PKG_VERSION}
+
include $(ADK_TOPDIR)/mk/host.mk
include $(ADK_TOPDIR)/mk/package.mk
@@ -26,7 +28,7 @@ HOST_STYLE:= manual
scons-hostinstall:
(cd $(WRKBUILD); PATH='$(HOST_PATH)' python setup.py install \
- --prefix=$(STAGING_HOST_DIR)/usr)
+ --prefix=$(STAGING_HOST_DIR)/usr --install-lib=$(STAGING_HOST_DIR)/usr/lib/scons-$(PKG_VERSION))
include ${ADK_TOPDIR}/mk/host-bottom.mk
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/screen/Makefile b/package/screen/Makefile
index 1f5887a2d..1756f3166 100644
--- a/package/screen/Makefile
+++ b/package/screen/Makefile
@@ -4,13 +4,14 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= screen
-PKG_VERSION:= 4.5.1
+PKG_VERSION:= 4.9.0
PKG_RELEASE:= 1
-PKG_HASH:= 97db2114dd963b016cd4ded34831955dcbe3251e5eee45ac2606e67e9f097b2d
+PKG_HASH:= f9335281bb4d1538ed078df78a20c2f39d3af9a4e91c57d084271e0289c730f4
PKG_DESCR:= window manager for the terminal session
PKG_SECTION:= sys/utils
PKG_DEPENDS:= libncurses libelf
PKG_BUILDDEP:= ncurses libelf
+PKG_NEEDS:= mmu
PKG_URL:= http://www.gnu.org/software/screen/
PKG_SITES:= ${MASTER_SITE_GNU:=screen/}
@@ -20,6 +21,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,SCREEN,screen,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+AUTOTOOL_STYLE:= autoreconf
TARGET_LDFLAGS+= -ltinfo
CONFIGURE_ENV+= $(foreach flag,rename fchmod fchown strerror lstat _exit utimes vsnprintf getcwd setlocale strftime,ac_cv_func_${flag}=yes)
CONFIGURE_ARGS+= --with-sys-screenrc=/etc/screenrc
diff --git a/package/screen/patches/patch-configure b/package/screen/patches/patch-configure
deleted file mode 100644
index 9d5400329..000000000
--- a/package/screen/patches/patch-configure
+++ /dev/null
@@ -1,29 +0,0 @@
---- screen-4.2.1.orig/configure 2014-04-26 12:58:46.000000000 +0200
-+++ screen-4.2.1/configure 2014-05-01 13:04:48.000000000 +0200
-@@ -414,7 +414,7 @@ as_fn_error ()
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
-- as_fn_exit $as_status
-+ # as_fn_exit $as_status
- } # as_fn_error
-
- if expr a : '\(a\)' >/dev/null 2>&1 &&
-@@ -5941,8 +5941,6 @@ else
- fi
- rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
--test -f /lib/libsec.a || test -f /usr/lib/libsec.a && LIBS="$LIBS -lsec"
--test -f /lib/libshadow.a || test -f /usr/lib/libshadow.a && LIBS="$LIBS -lshadow"
- oldlibs="$LIBS"
- LIBS="$LIBS -lsun"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking IRIX sun library..." >&5
-@@ -7023,7 +7021,7 @@ as_fn_error ()
- $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
- fi
- $as_echo "$as_me: error: $2" >&2
-- as_fn_exit $as_status
-+ # as_fn_exit $as_status
- } # as_fn_error
-
-
diff --git a/package/sdl/Makefile b/package/sdl/Makefile
deleted file mode 100644
index 351a65f01..000000000
--- a/package/sdl/Makefile
+++ /dev/null
@@ -1,65 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= sdl
-PKG_VERSION:= 1.2.15
-PKG_RELEASE:= 1
-PKG_HASH:= d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00
-PKG_DESCR:= simple directmedia layer
-PKG_SECTION:= libs/misc
-PKG_DEPENDS:= libusb alsa-lib libx11 libxext
-PKG_BUILDDEP:= sdl-host libusb alsa-lib libX11 libXext
-PKG_NEEDS:= threads
-PKG_URL:= http://www.libsdl.org/
-PKG_SITES:= http://www.libsdl.org/release/
-PKG_LIBNAME:= libsdl
-PKG_OPTS:= dev
-
-PKG_FLAVOURS_LIBSDL:= WITH_TSLIB
-PKGFD_WITH_TSLIB:= enable touchscreen support
-PKGFS_WITH_TSLIB:= tslib
-PKGFB_WITH_TSLIB:= tslib
-
-DISTFILES:= SDL-${PKG_VERSION}.tar.gz
-WRKDIST= ${WRKDIR}/SDL-${PKG_VERSION}
-
-include $(ADK_TOPDIR)/mk/host.mk
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call HOST_template,LIBSDL,libsdl,$(PKG_VERSION)-${PKG_RELEASE}))
-$(eval $(call PKG_template,LIBSDL,libsdl,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-
-HOST_STYLE:= auto
-HOST_CONFIGURE_ARGS+= --without-x \
- --enable-shared \
- --disable-cdrom \
- --disable-joystick \
- --disable-audio \
- --disable-video \
- --disable-assembly \
- --disable-input-tslib \
- --disable-video-directfb \
- --disable-video-cocoa \
- --disable-video-opengl
-
-ifeq ($(ADK_PACKAGE_SDL_WITH_TSLIB),y)
-CONFIGURE_ARGS+= --enable-input-tslib
-endif
-CONFIGURE_ARGS+= --disable-esd \
- --disable-oss \
- --enable-alsa \
- --enable-video-fbcon \
- --disable-video-directfb \
- --disable-video-opengl \
- --disable-video-ps2gs \
- --disable-video-ps3 \
- --with-x
-
-libsdl-install:
- $(INSTALL_DIR) $(IDIR_LIBSDL)/usr/lib
- $(CP) ${WRKINST}/usr/lib/libSDL*.so* $(IDIR_LIBSDL)/usr/lib
-
-include ${ADK_TOPDIR}/mk/host-bottom.mk
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/sdl2-mixer/Makefile b/package/sdl2-mixer/Makefile
new file mode 100644
index 000000000..f77239a75
--- /dev/null
+++ b/package/sdl2-mixer/Makefile
@@ -0,0 +1,29 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= sdl2-mixer
+PKG_VERSION:= 2.6.3
+PKG_RELEASE:= 1
+PKG_HASH:= 7a6ba86a478648ce617e3a5e9277181bc67f7ce9876605eea6affd4a0d6eea8f
+PKG_DESCR:= simple directmedia layer mixer 2
+PKG_SECTION:= libs/misc
+PKG_URL:= http://www.libsdl.org/
+PKG_SITES:= http://www.libsdl.org/projects/SDL_mixer/release/
+PKG_LIBNAME:= libsdl2-mixer
+PKG_OPTS:= dev
+
+DISTFILES:= SDL2_mixer-$(PKG_VERSION).tar.gz
+WRKDIST= ${WRKDIR}/SDL2_mixer-$(PKG_VERSION)
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBSDL2_MIXER,libsdl2-mixer,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+libsdl2-mixer-install:
+ $(INSTALL_DIR) $(IDIR_LIBSDL2_MIXER)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libSDL2*.so* \
+ $(IDIR_LIBSDL2_MIXER)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/sdl2-net/Makefile b/package/sdl2-net/Makefile
new file mode 100644
index 000000000..94691a884
--- /dev/null
+++ b/package/sdl2-net/Makefile
@@ -0,0 +1,29 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= sdl2-net
+PKG_VERSION:= 2.2.0
+PKG_RELEASE:= 1
+PKG_HASH:= 4e4a891988316271974ff4e9585ed1ef729a123d22c08bd473129179dc857feb
+PKG_DESCR:= simple directmedia layer net 2
+PKG_SECTION:= libs/misc
+PKG_URL:= http://www.libsdl.org/
+PKG_SITES:= http://www.libsdl.org/projects/SDL_net/release/
+PKG_LIBNAME:= libsdl2-net
+PKG_OPTS:= dev
+
+DISTFILES:= SDL2_net-$(PKG_VERSION).tar.gz
+WRKDIST= ${WRKDIR}/SDL2_net-$(PKG_VERSION)
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBSDL2_NET,libsdl2-net,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+libsdl2-net-install:
+ $(INSTALL_DIR) $(IDIR_LIBSDL2_NET)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libSDL2*.so* \
+ $(IDIR_LIBSDL2_NET)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/sdl2/Makefile b/package/sdl2/Makefile
new file mode 100644
index 000000000..3e3b3e091
--- /dev/null
+++ b/package/sdl2/Makefile
@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= sdl2
+PKG_VERSION:= 2.28.5
+PKG_RELEASE:= 1
+PKG_HASH:= 9f0556e4a24ef5b267010038ad9e9948b62f236d5bcc4b22179f95ef62d84023
+PKG_DESCR:= simple directmedia layer 2
+PKG_SECTION:= libs/misc
+PKG_URL:= http://www.libsdl.org/
+PKG_SITES:= https://github.com/libsdl-org/SDL/archive/refs/tags/
+PKG_BUILDDEP:= mesa libdrm alsa-lib DirectFB
+PKG_DEPENDS:= mesa libdrm alsa-lib directfb
+PKG_LIBNAME:= libsdl2
+PKG_OPTS:= dev
+
+DISTFILES:= release-$(PKG_VERSION).tar.gz
+WRKDIST= ${WRKDIR}/SDL-release-$(PKG_VERSION)
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBSDL2,libsdl2,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+CONFIGURE_ARGS+= --enable-video-directfb
+
+libsdl2-install:
+ $(INSTALL_DIR) $(IDIR_LIBSDL2)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libSDL2*.so* \
+ $(IDIR_LIBSDL2)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/section.lst b/package/section.lst
index cbb722b16..a1fead9bb 100644
--- a/package/section.lst
+++ b/package/section.lst
@@ -19,6 +19,7 @@ app/chat Chat
app/crypto Cryptography
app/debug Debugging and Analyzing
app/editor Editor and Pager
+app/games Games
app/p2p P2P
net/acct IP Accounting
net/dns DNS and DHCP
@@ -61,6 +62,6 @@ libs/video Video Libraries
dev/lang Programming Languages
dev/perl Perl modules
dev/python Python modules
-dev/scm Souce Code Management
+dev/scm Source Code Management
dev/tools Programming Tools
dev/header Header files
diff --git a/package/serdisplib/Makefile b/package/serdisplib/Makefile
index 804eb68f8..9a3a9cde2 100644
--- a/package/serdisplib/Makefile
+++ b/package/serdisplib/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= serdisplib
-PKG_VERSION:= 1.97.8
+PKG_VERSION:= 2.02
PKG_RELEASE:= 1
-PKG_HASH:= b64738f2fd6a28f6d659945282a4a95eeaaabb0a5867f8a87b8cceb01ce1d029
+PKG_HASH:= 447b74007dc157b0378044245649850b26432b9185b6540ff681fcb0765c4d8b
PKG_DESCR:= display drivers (serial, parallel, usb)
PKG_SECTION:= sys/serial
PKG_DEPENDS:= libusb-compat
@@ -22,7 +22,6 @@ $(eval $(call PKG_template,SERDISPLIB,serdisplib,${PKG_VERSION}-${PKG_RELEASE},$
INSTALL_STYLE:= manual
-CONFIGURE_ENV+= PACKAGE_VERSION_MAJOR=1 PACKAGE_VERSION_MINOR=97
CONFIGURE_ARGS+= --enable-libusb
TARGET_CFLAGS+= ${TARGET_CPPFLAGS}
diff --git a/package/serdisplib/patches/patch-Makefile_in b/package/serdisplib/patches/patch-Makefile_in
deleted file mode 100644
index a140feb5e..000000000
--- a/package/serdisplib/patches/patch-Makefile_in
+++ /dev/null
@@ -1,12 +0,0 @@
-$Id$
---- serdisplib-1.97.8.orig/Makefile.in 2008-07-30 23:05:37.000000000 +0200
-+++ serdisplib-1.97.8/Makefile.in 2009-05-30 18:04:39.430445031 +0200
-@@ -20,7 +20,7 @@ CC = @CC@
- MAKE=@MAKE@
-
-
--subdirs = src tools
-+subdirs = src
-
-
- all:
diff --git a/package/serdisplib/patches/patch-configure b/package/serdisplib/patches/patch-configure
deleted file mode 100644
index b4ea718bd..000000000
--- a/package/serdisplib/patches/patch-configure
+++ /dev/null
@@ -1,22 +0,0 @@
-$Id$
---- serdisplib-1.97.8.orig/configure 2008-07-19 00:40:38.000000000 +0200
-+++ serdisplib-1.97.8/configure 2009-05-30 18:04:39.526453915 +0200
-@@ -2661,18 +2661,6 @@ echo "${ECHO_T}no" >&6
- fi
-
-
--# split version information
--PACKAGE_VERSION_TEMP=${PACKAGE_VERSION/\./\ }
--PACKAGE_VERSION_MAJOR=${PACKAGE_VERSION_TEMP/\ *}
--PACKAGE_VERSION_MINTEMP=${PACKAGE_VERSION_TEMP/*\ }
--if test "${PACKAGE_VERSION_TEMP/*\.*/\.}" = "\."; then
-- PACKAGE_VERSION_MINOR=${PACKAGE_VERSION_MINTEMP/\.*}
-- PACKAGE_VERSION_SUBMINOR=${PACKAGE_VERSION_MINTEMP/*\.}
--else
-- PACKAGE_VERSION_MINOR=$PACKAGE_VERSION_MINTEMP
-- PACKAGE_VERSION_SUBMINOR=""
--fi
--
-
-
-
diff --git a/package/serdisplib/patches/patch-include_serdisplib_serdisp_control_h b/package/serdisplib/patches/patch-include_serdisplib_serdisp_control_h
deleted file mode 100644
index d8c819a34..000000000
--- a/package/serdisplib/patches/patch-include_serdisplib_serdisp_control_h
+++ /dev/null
@@ -1,12 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- serdisplib-1.97.8.orig/include/serdisplib/serdisp_control.h 2008-07-31 00:55:12.000000000 +0200
-+++ serdisplib-1.97.8/include/serdisplib/serdisp_control.h 2009-05-31 16:24:16.000000000 +0200
-@@ -42,7 +42,7 @@
-
- #define SERDISP_VERSION_MAJOR 1 /**< \brief major version of serdisplib \hideinitializer */
- #define SERDISP_VERSION_MINOR 97 /**< \brief minor version of serdisplib \hideinitializer */
--#define SERDISP_VERSION_EXTRA 8 /**< \brief extra version postfix (ignored) \hideinitializer */
-+#define SERDISP_VERSION_EXTRA /**< \brief extra version postfix (ignored) \hideinitializer */
-
- /** \hideinitializer
- * \brief calculates a serdisplib version code
diff --git a/package/serdisplib/patches/patch-src_Makefile_in b/package/serdisplib/patches/patch-src_Makefile_in
deleted file mode 100644
index ad9c6a9c7..000000000
--- a/package/serdisplib/patches/patch-src_Makefile_in
+++ /dev/null
@@ -1,12 +0,0 @@
-$Id$
---- serdisplib-1.97.8.orig/src/Makefile.in 2008-07-30 23:05:37.000000000 +0200
-+++ serdisplib-1.97.8/src/Makefile.in 2009-05-30 18:04:39.534451861 +0200
-@@ -126,7 +126,7 @@ endif
-
- .SUFFIXES : .c .o
-
--all: libraries programs
-+all: libraries
-
- libraries: library.static library.shared
-
diff --git a/package/serdisplib/patches/patch-src_serdisp_connect_c b/package/serdisplib/patches/patch-src_serdisp_connect_c
deleted file mode 100644
index fae45be6f..000000000
--- a/package/serdisplib/patches/patch-src_serdisp_connect_c
+++ /dev/null
@@ -1,21 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- serdisplib-1.97.8.orig/src/serdisp_connect.c 2008-07-20 09:50:41.000000000 +0200
-+++ serdisplib-1.97.8/src/serdisp_connect.c 2009-05-31 16:27:03.000000000 +0200
-@@ -304,7 +304,7 @@ serdisp_CONN_t* SDCONN_open(const char s
- sdcd->sdcdev = (sdcdev == 0 || strlen((char*)sdcdev) > 0) ? (char*)sdcdev : SERDISP_DEFAULTDEVICE;
-
- /* split into protocol and device name */
-- idx = index(sdcd->sdcdev, ':');
-+ idx = strchr(sdcd->sdcdev, ':');
- if (!idx) {
- devname = sdcd->sdcdev;
- /* look if a default connection type can be found for given device */
-@@ -1405,7 +1405,7 @@ serdisp_CONN_t* SDCONN_import_PP(int dir
- int SDCONN_getsignalindex(const char str[], short conntype, short hardwaretype) {
- int i;
- int n = strlen(str);
-- char* idxpos = index(str, ',');
-+ char* idxpos = strchr(str, ',');
-
- if (idxpos)
- n = serdisp_ptrstrlen(idxpos, str);
diff --git a/package/serdisplib/patches/patch-src_serdisp_connect_usb_c b/package/serdisplib/patches/patch-src_serdisp_connect_usb_c
deleted file mode 100644
index c400ce875..000000000
--- a/package/serdisplib/patches/patch-src_serdisp_connect_usb_c
+++ /dev/null
@@ -1,39 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- serdisplib-1.97.8.orig/src/serdisp_connect_usb.c 2008-07-30 23:44:23.000000000 +0200
-+++ serdisplib-1.97.8/src/serdisp_connect_usb.c 2009-05-31 16:28:11.000000000 +0200
-@@ -220,7 +220,7 @@ serdisp_CONN_t* SDCONNusb_open(const cha
- #endif
-
- devname = (char*)sdcdev;
-- idx = index(devname, ':');
-+ idx = strchr(devname, ':');
-
- if (serdisp_ptrdistance(idx, devname) >= 18) {
- sd_error(SERDISP_ENXIO, "%s(): invalid protocol (too long)", __func__);
-@@ -230,7 +230,7 @@ serdisp_CONN_t* SDCONNusb_open(const cha
- sdtools_strncpy(protocol, devname, serdisp_ptrdistance(idx, devname));
- devname = (idx+1);
-
-- idx = index(devname, ':');
-+ idx = strchr(devname, ':');
-
- if (idx) {
- if (serdisp_ptrdistance(idx, devname) >= 8) {
-@@ -242,7 +242,7 @@ serdisp_CONN_t* SDCONNusb_open(const cha
- occurrence = (int)strtol(buffer, 0, 10);
- }
-
-- idx = index(devname, '/');
-+ idx = strchr(devname, '/');
- if (idx && serdisp_ptrdistance(idx, devname) < 7) {
- sdtools_strncpy(buffer, devname, serdisp_ptrdistance(idx, devname));
- vendorID = (int)strtol(buffer, &endptr, 16);
-@@ -254,7 +254,7 @@ serdisp_CONN_t* SDCONNusb_open(const cha
-
-
- if (vendorID != -1) {
-- idx = index(devname, '/');
-+ idx = strchr(devname, '/');
- if (!idx) idx = devname + strlen(devname);
- if (serdisp_ptrdistance(idx, devname) < 7) {
- sdtools_strncpy(buffer, devname, serdisp_ptrdistance(idx, devname));
diff --git a/package/serdisplib/patches/patch-src_serdisp_control_c b/package/serdisplib/patches/patch-src_serdisp_control_c
deleted file mode 100644
index f881ab3fe..000000000
--- a/package/serdisplib/patches/patch-src_serdisp_control_c
+++ /dev/null
@@ -1,48 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- serdisplib-1.97.8.orig/src/serdisp_control.c 2008-07-30 01:04:44.000000000 +0200
-+++ serdisplib-1.97.8/src/serdisp_control.c 2009-05-30 18:07:14.100111588 +0200
-@@ -450,7 +450,7 @@ serdisp_t* serdisp_init(serdisp_CONN_t*
- }
-
- if (found) {
-- char* idxpos = index(patternptr, '=');
-+ char* idxpos = strchr(patternptr, '=');
- int keylen = patternlen;
-
- /* '=' found and position not outside patternlen? */
-@@ -568,7 +568,7 @@ serdisp_t* serdisp_init(serdisp_CONN_t*
- * \since 1.98
- */
- long serdisp_getversioncode(void) {
-- return (long) SERDISP_VERSION_CODE;
-+ return (long)SERDISP_VERSION_CODE;
- }
-
-
-@@ -1831,7 +1831,7 @@ int serdisp_setupwirings(serdisp_t* dd,
- while( (patternptr = sdtools_nextpattern(patternptr, ',', &patternlen, &patternborder)) ) {
- char* valueptr = 0;
- int valuelen = 0;
-- char* idxpos = index(patternptr, ':');
-+ char* idxpos = strchr(patternptr, ':');
- int keylen = patternlen;
-
- int tabidxkey = 0, tabidxvalue;
-@@ -2003,7 +2003,7 @@ int serdisp_setupoptions(serdisp_t* dd,
- while( (optionptr = sdtools_nextpattern(optionptr, ';', &optionlen, &optionborder)) ) {
- char* valueptr = 0;
- int valuelen = 0;
-- char* idxpos = index(optionptr, '=');
-+ char* idxpos = strchr(optionptr, '=');
- int keylen = optionlen;
-
- int stdoptidx; /* index of an option found in standard options */
-@@ -2072,7 +2072,7 @@ int serdisp_setupoptions(serdisp_t* dd,
- int definefound = 0;
-
- while( !definefound && (defineptr = sdtools_nextpattern(defineptr, ',', &definelen, &defineborder)) ) {
-- char* defineidxpos = index(defineptr, '=');
-+ char* defineidxpos = strchr(defineptr, '=');
- int definekeylen = definelen;
- char* definevalueptr = 0;
- int definevaluelen = 0;
diff --git a/package/serdisplib/patches/patch-src_serdisp_tools_c b/package/serdisplib/patches/patch-src_serdisp_tools_c
deleted file mode 100644
index 6b972fafc..000000000
--- a/package/serdisplib/patches/patch-src_serdisp_tools_c
+++ /dev/null
@@ -1,30 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- serdisplib-1.97.8.orig/src/serdisp_tools.c 2008-07-17 01:44:52.000000000 +0200
-+++ serdisplib-1.97.8/src/serdisp_tools.c 2009-05-31 16:26:39.000000000 +0200
-@@ -688,7 +688,7 @@ int sdtools_isinelemlist(const char* ele
-
- if (strlen(lefttrimmedelemlist) == 0) return -1;
-
-- indexpos = index(lefttrimmedelemlist, ',');
-+ indexpos = strchr(lefttrimmedelemlist, ',');
-
- /* this should never occur but to be sure: catch it and return 0 in such a case (invalid elemlist!) */
- if (indexpos == lefttrimmedelemlist)
-@@ -762,7 +762,7 @@ char* sdtools_nextpattern(const char* st
- char* idxpos;
-
- if (*len >= 0) { /* *len < 0: return first parameter, else: not first parameter */
-- idxpos = index(strstart, delim);
-+ idxpos = strchr(strstart, delim);
- if ( !idxpos || (((long)idxpos) >= (((long)strstart) + *border)) ) {
- /* no more delim or found delim out of view => no more param */
- *len = -1; *border = 0;
-@@ -783,7 +783,7 @@ char* sdtools_nextpattern(const char* st
- *border -= n;
- *len -= n;
-
-- idxpos = index(strstart, delim);
-+ idxpos = strchr(strstart, delim);
-
- if ( idxpos && ((long)idxpos < ((long)strstart + (*border))) ) {
- *len = serdisp_ptrstrlen(idxpos, strstart);
diff --git a/package/shadow/Makefile b/package/shadow/Makefile
new file mode 100644
index 000000000..bdcf45944
--- /dev/null
+++ b/package/shadow/Makefile
@@ -0,0 +1,32 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= shadow
+PKG_VERSION:= 4.14.3
+PKG_RELEASE:= 1
+PKG_HASH:= 6969279236fe3152768573a38c9f83cb9ca109851a5a990aec1fc672ac2cfcd2
+PKG_DESCR:= utilities to deal with user accounts
+PKG_BUILDDEP_GLIBC:= libxcrypt
+PKG_SECTION:= sys/utils
+PKG_SITES:= https://github.com/shadow-maint/shadow/releases/download/$(PKG_VERSION)/
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SHADOW,shadow,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIGURE_ARGS+= --without-libbsd
+
+shadow-install:
+ $(INSTALL_DIR) $(IDIR_SHADOW)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/* \
+ $(IDIR_SHADOW)/usr/bin
+ $(INSTALL_DIR) $(IDIR_SHADOW)/usr/sbin
+ $(INSTALL_BIN) $(WRKINST)/usr/sbin/* \
+ $(IDIR_SHADOW)/usr/sbin
+ $(INSTALL_DIR) $(IDIR_SHADOW)/lib
+ $(CP) $(WRKINST)/lib/*.so* \
+ $(IDIR_SHADOW)/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/shairport-sync/Makefile b/package/shairport-sync/Makefile
new file mode 100644
index 000000000..75c6801f8
--- /dev/null
+++ b/package/shairport-sync/Makefile
@@ -0,0 +1,41 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= shairport-sync
+PKG_VERSION:= 3.3.8
+PKG_RELEASE:= 1
+PKG_GIT:= tag
+PKG_DESCR:= airplay daemon
+PKG_SECTION:= mm/audio
+PKG_DEPENDS:= libressl libpopt libdaemon libconfig jack mosquitto libavahi
+PKG_BUILDDEP:= libressl popt libdaemon libconfig jack mosquitto avahi
+PKG_URL:= https://github.com/mikebrady/shairport-sync
+PKG_SITES:= https://github.com/mikebrady/shairport-sync.git
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SHAIRPORT_SYNC,shairport-sync,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+AUTOTOOL_STYLE:= autoreconf
+CONFIGURE_ARGS+= --with-pkg-config \
+ --without-systemv \
+ --without-systemd \
+ --with-libdaemon \
+ --with-avahi \
+ --disable-tinysvcmdns \
+ --with-alsa \
+ --with-jack \
+ --with-mqtt-client \
+ -with-ssl=openssl
+
+shairport-sync-install:
+ $(INSTALL_DIR) $(IDIR_SHAIRPORT_SYNC)/usr/bin
+ $(INSTALL_DIR) $(IDIR_SHAIRPORT_SYNC)/etc/shairport-sync
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/shairport-sync \
+ $(IDIR_SHAIRPORT_SYNC)/usr/bin
+ $(INSTALL_DATA) $(WRKINST)/etc/* \
+ $(IDIR_SHAIRPORT_SYNC)/etc/shairport-sync/
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/shairport-sync/files/shairport-sync.init b/package/shairport-sync/files/shairport-sync.init
new file mode 100644
index 000000000..c9bcb92bf
--- /dev/null
+++ b/package/shairport-sync/files/shairport-sync.init
@@ -0,0 +1,28 @@
+#!/bin/sh
+#PKG shairport-sync
+#INIT 80
+. /etc/rc.conf
+
+case $1 in
+autostop) ;;
+autostart)
+ test x"${shairport_sync:-NO}" = x"NO" && exit 0
+ test x"$shairport_sync" = x"DAEMON" && test -x /bin/mksh && exec mksh -T- $0 start
+ exec sh $0 start
+ ;;
+start)
+ /usr/bin/shairport-sync -c /etc/shairport/shairport-sync.conf -d $shairport_sync_flags
+ ;;
+stop)
+ /usr/bin/shairport-sync -k
+ ;;
+restart)
+ sh $0 stop
+ sh $0 start
+ ;;
+*)
+ echo "Usage: $0 {start | stop | restart}"
+ exit 1
+ ;;
+esac
+exit $?
diff --git a/package/shairport-sync/files/shairport-sync.postinst b/package/shairport-sync/files/shairport-sync.postinst
new file mode 100644
index 000000000..9558f175a
--- /dev/null
+++ b/package/shairport-sync/files/shairport-sync.postinst
@@ -0,0 +1,7 @@
+#!/bin/sh
+. $IPKG_INSTROOT/etc/functions.sh
+add_rcconf shairport_sync NO
+add_rcconf shairport_sync_flags " "
+gid=$(get_next_gid)
+add_group shairport-sync $gid
+add_user shairport-sync $(get_next_uid) $gid /etc/shairport-sync
diff --git a/package/simpleinit/files/rc b/package/simpleinit/files/rc
index e5d4f67d6..08d67601a 100755
--- a/package/simpleinit/files/rc
+++ b/package/simpleinit/files/rc
@@ -1,9 +1,8 @@
#!/bin/sh
echo Starting OpenADK
-hostname openadk
mount -t proc proc /proc
mount -t sysfs sys /sys
-mkdir -m 755 /dev/pts
+mkdir /dev/pts
mount -t devpts devpts /dev/pts
mount -t tmpfs tmpfs /tmp
chmod 1777 /tmp
diff --git a/package/siproxd/Makefile b/package/siproxd/Makefile
index d57ea8888..5442790d2 100644
--- a/package/siproxd/Makefile
+++ b/package/siproxd/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= siproxd
-PKG_VERSION:= 0.8.1
+PKG_VERSION:= 0.8.3
PKG_RELEASE:= 1
-PKG_HASH:= df2df04faf5bdb4980cbdfd5516a47898fc47ca1ebc2c628aa48305b20a09dad
+PKG_HASH:= 9a6d7a6bb6fff162775b1e1fb7018de9c69642cbf8626185dc6ffceeeba07736
PKG_DESCR:= session initiation protocol proxy
PKG_SECTION:= net/voip
PKG_DEPENDS:= libosip2
diff --git a/package/sipsak/Makefile b/package/sipsak/Makefile
index 1903793ed..e55f9bc2b 100644
--- a/package/sipsak/Makefile
+++ b/package/sipsak/Makefile
@@ -4,15 +4,14 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= sipsak
-PKG_VERSION:= 0.9.6
-PKG_RELEASE:= 2
-PKG_HASH:= 5064c56d482a080b6a4aea71821b78c21b59d44f6d1aa14c27429441917911a9
+PKG_VERSION:= 0.9.8.1
+PKG_RELEASE:= 1
+PKG_HASH:= c6faa022cd8c002165875d4aac83b7a2b59194f0491802924117fc6ac980c778
PKG_DESCR:= sip stress and diagnostics utility
PKG_SECTION:= net/voip
-PKG_URL:= http://sourceforge.net/projects/sipsak.berlios/
-PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=sipsak.berlios/}
+PKG_SITES:= https://github.com/nils-ohlmeier/sipsak/releases/download/$(PKG_VERSION)/
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION)-1.tar.gz
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_CHOICES_SIPSAK:= WITH_LIBRESSL WITHOUT_SSL
PKGCD_WITH_LIBRESSL:= use libressl for crypto
@@ -24,6 +23,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,SIPSAK,sipsak,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ENV+= ac_cv_func_malloc_0_nonnull=yes
CONFIGURE_ARGS+= --disable-gnutls
diff --git a/package/sipsak/patches/patch-configure b/package/sipsak/patches/patch-configure
deleted file mode 100644
index 128845ab3..000000000
--- a/package/sipsak/patches/patch-configure
+++ /dev/null
@@ -1,9009 +0,0 @@
---- sipsak-0.9.6.orig/configure 2006-01-28 22:11:34.000000000 +0100
-+++ sipsak-0.9.6/configure 2016-09-23 18:46:18.305339828 +0200
-@@ -1,27 +1,56 @@
- #! /bin/sh
- # Guess values for system-dependent variables and create Makefiles.
--# Generated by GNU Autoconf 2.59 for sipsak 0.9.6.
-+# Generated by GNU Autoconf 2.61 for sipsak 0.9.6.
- #
- # Report bugs to <nils@sipsak.org>.
- #
--# Copyright (C) 2003 Free Software Foundation, Inc.
-+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-+# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
- # This configure script is free software; the Free Software Foundation
- # gives unlimited permission to copy, distribute and modify it.
- ## --------------------- ##
- ## M4sh Initialization. ##
- ## --------------------- ##
-
--# Be Bourne compatible
-+# Be more Bourne compatible
-+DUALCASE=1; export DUALCASE # for MKS sh
- if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
--elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-- set -o posix
-+ setopt NO_GLOB_SUBST
-+else
-+ case `(set -o) 2>/dev/null` in
-+ *posix*) set -o posix ;;
-+esac
-+
-+fi
-+
-+
-+
-+
-+# PATH needs CR
-+# Avoid depending upon Character Ranges.
-+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-+as_cr_digits='0123456789'
-+as_cr_alnum=$as_cr_Letters$as_cr_digits
-+
-+# The user is always right.
-+if test "${PATH_SEPARATOR+set}" != set; then
-+ echo "#! /bin/sh" >conf$$.sh
-+ echo "exit 0" >>conf$$.sh
-+ chmod +x conf$$.sh
-+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-+ PATH_SEPARATOR=';'
-+ else
-+ PATH_SEPARATOR=:
-+ fi
-+ rm -f conf$$.sh
- fi
--DUALCASE=1; export DUALCASE # for MKS sh
-
- # Support unset when possible.
- if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-@@ -31,8 +60,43 @@ else
- fi
-
-
-+# IFS
-+# We need space, tab and new line, in precisely that order. Quoting is
-+# there to prevent editors from complaining about space-tab.
-+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-+# splitting by setting IFS to empty value.)
-+as_nl='
-+'
-+IFS=" "" $as_nl"
-+
-+# Find who we are. Look in the path if we contain no directory separator.
-+case $0 in
-+ *[\\/]* ) as_myself=$0 ;;
-+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-+done
-+IFS=$as_save_IFS
-+
-+ ;;
-+esac
-+# We did not find ourselves, most probably we were run as `sh COMMAND'
-+# in which case we are not to be found in the path.
-+if test "x$as_myself" = x; then
-+ as_myself=$0
-+fi
-+if test ! -f "$as_myself"; then
-+ echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-+ { (exit 1); exit 1; }
-+fi
-+
- # Work around bugs in pre-3.0 UWIN ksh.
--$as_unset ENV MAIL MAILPATH
-+for as_var in ENV MAIL MAILPATH
-+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-+done
- PS1='$ '
- PS2='> '
- PS4='+ '
-@@ -46,18 +110,19 @@ do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
-- $as_unset $as_var
-+ ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
- fi
- done
-
- # Required to use basename.
--if expr a : '\(a\)' >/dev/null 2>&1; then
-+if expr a : '\(a\)' >/dev/null 2>&1 &&
-+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
- else
- as_expr=false
- fi
-
--if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
- else
- as_basename=false
-@@ -65,157 +130,388 @@ fi
-
-
- # Name of the executable.
--as_me=`$as_basename "$0" ||
-+as_me=`$as_basename -- "$0" ||
- $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
-- X"$0" : 'X\(/\)$' \| \
-- . : '\(.\)' 2>/dev/null ||
-+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
- echo X/"$0" |
-- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-- /^X\/\(\/\/\)$/{ s//\1/; q; }
-- /^X\/\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-+ sed '/^.*\/\([^/][^/]*\)\/*$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\/\(\/\/\)$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\/\(\/\).*/{
-+ s//\1/
-+ q
-+ }
-+ s/.*/./; q'`
-
-+# CDPATH.
-+$as_unset CDPATH
-
--# PATH needs CR, and LINENO needs CR and PATH.
--# Avoid depending upon Character Ranges.
--as_cr_letters='abcdefghijklmnopqrstuvwxyz'
--as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
--as_cr_Letters=$as_cr_letters$as_cr_LETTERS
--as_cr_digits='0123456789'
--as_cr_alnum=$as_cr_Letters$as_cr_digits
-
--# The user is always right.
--if test "${PATH_SEPARATOR+set}" != set; then
-- echo "#! /bin/sh" >conf$$.sh
-- echo "exit 0" >>conf$$.sh
-- chmod +x conf$$.sh
-- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-- PATH_SEPARATOR=';'
-- else
-- PATH_SEPARATOR=:
-- fi
-- rm -f conf$$.sh
-+if test "x$CONFIG_SHELL" = x; then
-+ if (eval ":") 2>/dev/null; then
-+ as_have_required=yes
-+else
-+ as_have_required=no
- fi
-
-+ if test $as_have_required = yes && (eval ":
-+(as_func_return () {
-+ (exit \$1)
-+}
-+as_func_success () {
-+ as_func_return 0
-+}
-+as_func_failure () {
-+ as_func_return 1
-+}
-+as_func_ret_success () {
-+ return 0
-+}
-+as_func_ret_failure () {
-+ return 1
-+}
-+
-+exitcode=0
-+if as_func_success; then
-+ :
-+else
-+ exitcode=1
-+ echo as_func_success failed.
-+fi
-
-- as_lineno_1=$LINENO
-- as_lineno_2=$LINENO
-- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-- test "x$as_lineno_1" != "x$as_lineno_2" &&
-- test "x$as_lineno_3" = "x$as_lineno_2" || {
-- # Find who we are. Look in the path if we contain no path at all
-- # relative or not.
-- case $0 in
-- *[\\/]* ) as_myself=$0 ;;
-- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
--done
-+if as_func_failure; then
-+ exitcode=1
-+ echo as_func_failure succeeded.
-+fi
-
-- ;;
-- esac
-- # We did not find ourselves, most probably we were run as `sh COMMAND'
-- # in which case we are not to be found in the path.
-- if test "x$as_myself" = x; then
-- as_myself=$0
-- fi
-- if test ! -f "$as_myself"; then
-- { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-- { (exit 1); exit 1; }; }
-- fi
-- case $CONFIG_SHELL in
-- '')
-+if as_func_ret_success; then
-+ :
-+else
-+ exitcode=1
-+ echo as_func_ret_success failed.
-+fi
-+
-+if as_func_ret_failure; then
-+ exitcode=1
-+ echo as_func_ret_failure succeeded.
-+fi
-+
-+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-+ :
-+else
-+ exitcode=1
-+ echo positional parameters were not saved.
-+fi
-+
-+test \$exitcode = 0) || { (exit 1); exit 1; }
-+
-+(
-+ as_lineno_1=\$LINENO
-+ as_lineno_2=\$LINENO
-+ test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-+ test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-+") 2> /dev/null; then
-+ :
-+else
-+ as_candidate_shells=
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
- for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
- do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
-- for as_base in sh bash ksh sh5; do
-- case $as_dir in
-+ case $as_dir in
- /*)
-- if ("$as_dir/$as_base" -c '
-+ for as_base in sh bash ksh sh5; do
-+ as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
-+ done;;
-+ esac
-+done
-+IFS=$as_save_IFS
-+
-+
-+ for as_shell in $as_candidate_shells $SHELL; do
-+ # Try only shells that exist, to save several forks.
-+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-+ { ("$as_shell") 2> /dev/null <<\_ASEOF
-+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-+ emulate sh
-+ NULLCMD=:
-+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-+ # is contrary to our usage. Disable this feature.
-+ alias -g '${1+"$@"}'='"$@"'
-+ setopt NO_GLOB_SUBST
-+else
-+ case `(set -o) 2>/dev/null` in
-+ *posix*) set -o posix ;;
-+esac
-+
-+fi
-+
-+
-+:
-+_ASEOF
-+}; then
-+ CONFIG_SHELL=$as_shell
-+ as_have_required=yes
-+ if { "$as_shell" 2> /dev/null <<\_ASEOF
-+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-+ emulate sh
-+ NULLCMD=:
-+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-+ # is contrary to our usage. Disable this feature.
-+ alias -g '${1+"$@"}'='"$@"'
-+ setopt NO_GLOB_SUBST
-+else
-+ case `(set -o) 2>/dev/null` in
-+ *posix*) set -o posix ;;
-+esac
-+
-+fi
-+
-+
-+:
-+(as_func_return () {
-+ (exit $1)
-+}
-+as_func_success () {
-+ as_func_return 0
-+}
-+as_func_failure () {
-+ as_func_return 1
-+}
-+as_func_ret_success () {
-+ return 0
-+}
-+as_func_ret_failure () {
-+ return 1
-+}
-+
-+exitcode=0
-+if as_func_success; then
-+ :
-+else
-+ exitcode=1
-+ echo as_func_success failed.
-+fi
-+
-+if as_func_failure; then
-+ exitcode=1
-+ echo as_func_failure succeeded.
-+fi
-+
-+if as_func_ret_success; then
-+ :
-+else
-+ exitcode=1
-+ echo as_func_ret_success failed.
-+fi
-+
-+if as_func_ret_failure; then
-+ exitcode=1
-+ echo as_func_ret_failure succeeded.
-+fi
-+
-+if ( set x; as_func_ret_success y && test x = "$1" ); then
-+ :
-+else
-+ exitcode=1
-+ echo positional parameters were not saved.
-+fi
-+
-+test $exitcode = 0) || { (exit 1); exit 1; }
-+
-+(
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
-- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
-- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
-- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-- CONFIG_SHELL=$as_dir/$as_base
-- export CONFIG_SHELL
-- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-- fi;;
-- esac
-- done
--done
--;;
-- esac
-+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-+
-+_ASEOF
-+}; then
-+ break
-+fi
-+
-+fi
-+
-+ done
-+
-+ if test "x$CONFIG_SHELL" != x; then
-+ for as_var in BASH_ENV ENV
-+ do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-+ done
-+ export CONFIG_SHELL
-+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-+fi
-+
-+
-+ if test $as_have_required = no; then
-+ echo This script requires a shell more modern than all the
-+ echo shells that I found on your system. Please install a
-+ echo modern shell, or manually run the script under such a
-+ echo shell if you do have one.
-+ { (exit 1); exit 1; }
-+fi
-+
-+
-+fi
-+
-+fi
-+
-+
-+
-+(eval "as_func_return () {
-+ (exit \$1)
-+}
-+as_func_success () {
-+ as_func_return 0
-+}
-+as_func_failure () {
-+ as_func_return 1
-+}
-+as_func_ret_success () {
-+ return 0
-+}
-+as_func_ret_failure () {
-+ return 1
-+}
-+
-+exitcode=0
-+if as_func_success; then
-+ :
-+else
-+ exitcode=1
-+ echo as_func_success failed.
-+fi
-+
-+if as_func_failure; then
-+ exitcode=1
-+ echo as_func_failure succeeded.
-+fi
-+
-+if as_func_ret_success; then
-+ :
-+else
-+ exitcode=1
-+ echo as_func_ret_success failed.
-+fi
-+
-+if as_func_ret_failure; then
-+ exitcode=1
-+ echo as_func_ret_failure succeeded.
-+fi
-+
-+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-+ :
-+else
-+ exitcode=1
-+ echo positional parameters were not saved.
-+fi
-+
-+test \$exitcode = 0") || {
-+ echo No shell found that supports shell functions.
-+ echo Please tell autoconf@gnu.org about your system,
-+ echo including any error possibly output before this
-+ echo message
-+}
-+
-+
-+
-+ as_lineno_1=$LINENO
-+ as_lineno_2=$LINENO
-+ test "x$as_lineno_1" != "x$as_lineno_2" &&
-+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
-- # line-number line before each line; the second 'sed' does the real
-- # work. The second script uses 'N' to pair each line-number line
-- # with the numbered line, and appends trailing '-' during
-- # substitution so that $LINENO is not a special case at line end.
-+ # line-number line after each line using $LINENO; the second 'sed'
-+ # does the real work. The second script uses 'N' to pair each
-+ # line-number line with the line containing $LINENO, and appends
-+ # trailing '-' during substitution so that $LINENO is not a special
-+ # case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
-- sed '=' <$as_myself |
-+ # scripts with optimization help from Paolo Bonzini. Blame Lee
-+ # E. McMahon (1931-1989) for sed's syntax. :-)
-+ sed -n '
-+ p
-+ /[$]LINENO/=
-+ ' <$as_myself |
- sed '
-+ s/[$]LINENO.*/&-/
-+ t lineno
-+ b
-+ :lineno
- N
-- s,$,-,
-- : loop
-- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-+ :loop
-+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
-- s,-$,,
-- s,^['$as_cr_digits']*\n,,
-+ s/-\n.*//
- ' >$as_me.lineno &&
-- chmod +x $as_me.lineno ||
-+ chmod +x "$as_me.lineno" ||
- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
-- # original and so on. Autoconf is especially sensible to this).
-- . ./$as_me.lineno
-+ # original and so on. Autoconf is especially sensitive to this).
-+ . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
- }
-
-
--case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-- *c*,-n*) ECHO_N= ECHO_C='
--' ECHO_T=' ' ;;
-- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-+ as_dirname=dirname
-+else
-+ as_dirname=false
-+fi
-+
-+ECHO_C= ECHO_N= ECHO_T=
-+case `echo -n x` in
-+-n*)
-+ case `echo 'x\c'` in
-+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
-+ *) ECHO_C='\c';;
-+ esac;;
-+*)
-+ ECHO_N='-n';;
- esac
-
--if expr a : '\(a\)' >/dev/null 2>&1; then
-+if expr a : '\(a\)' >/dev/null 2>&1 &&
-+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
- else
- as_expr=false
- fi
-
- rm -f conf$$ conf$$.exe conf$$.file
-+if test -d conf$$.dir; then
-+ rm -f conf$$.dir/conf$$.file
-+else
-+ rm -f conf$$.dir
-+ mkdir conf$$.dir
-+fi
- echo >conf$$.file
- if ln -s conf$$.file conf$$ 2>/dev/null; then
-- # We could just check for DJGPP; but this test a) works b) is more generic
-- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-- if test -f conf$$.exe; then
-- # Don't use ln at all; we don't have any links
-+ as_ln_s='ln -s'
-+ # ... but there are two gotchas:
-+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-+ # In both cases, we have to default to `cp -p'.
-+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
-- else
-- as_ln_s='ln -s'
-- fi
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -p'
- fi
--rm -f conf$$ conf$$.exe conf$$.file
-+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-+rmdir conf$$.dir 2>/dev/null
-
- if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-@@ -224,7 +520,28 @@ else
- as_mkdir_p=false
- fi
-
--as_executable_p="test -f"
-+if test -x / >/dev/null 2>&1; then
-+ as_test_x='test -x'
-+else
-+ if ls -dL / >/dev/null 2>&1; then
-+ as_ls_L_option=L
-+ else
-+ as_ls_L_option=
-+ fi
-+ as_test_x='
-+ eval sh -c '\''
-+ if test -d "$1"; then
-+ test -d "$1/.";
-+ else
-+ case $1 in
-+ -*)set "./$1";;
-+ esac;
-+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-+ ???[sx]*):;;*)false;;esac;fi
-+ '\'' sh
-+ '
-+fi
-+as_executable_p=$as_test_x
-
- # Sed expression to map a string onto a valid CPP name.
- as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-@@ -233,39 +550,27 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P
- as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
--# IFS
--# We need space, tab and new line, in precisely that order.
--as_nl='
--'
--IFS=" $as_nl"
--
--# CDPATH.
--$as_unset CDPATH
-
-+exec 7<&0 </dev/null 6>&1
-
- # Name of the host.
- # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
- # so uname gets run too.
- ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
--exec 6>&1
--
- #
- # Initializations.
- #
- ac_default_prefix=/usr/local
-+ac_clean_files=
- ac_config_libobj_dir=.
-+LIBOBJS=
- cross_compiling=no
- subdirs=
- MFLAGS=
- MAKEFLAGS=
- SHELL=${CONFIG_SHELL-/bin/sh}
-
--# Maximum number of lines to put in a shell here document.
--# This variable seems obsolete. It should probably be removed, and
--# only ac_max_sed_lines should be used.
--: ${ac_max_here_lines=38}
--
- # Identity of this package.
- PACKAGE_NAME='sipsak'
- PACKAGE_TARNAME='sipsak'
-@@ -277,42 +582,146 @@ ac_unique_file="sipsak.c"
- # Factoring default headers for most tests.
- ac_includes_default="\
- #include <stdio.h>
--#if HAVE_SYS_TYPES_H
-+#ifdef HAVE_SYS_TYPES_H
- # include <sys/types.h>
- #endif
--#if HAVE_SYS_STAT_H
-+#ifdef HAVE_SYS_STAT_H
- # include <sys/stat.h>
- #endif
--#if STDC_HEADERS
-+#ifdef STDC_HEADERS
- # include <stdlib.h>
- # include <stddef.h>
- #else
--# if HAVE_STDLIB_H
-+# ifdef HAVE_STDLIB_H
- # include <stdlib.h>
- # endif
- #endif
--#if HAVE_STRING_H
--# if !STDC_HEADERS && HAVE_MEMORY_H
-+#ifdef HAVE_STRING_H
-+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
- # include <memory.h>
- # endif
- # include <string.h>
- #endif
--#if HAVE_STRINGS_H
-+#ifdef HAVE_STRINGS_H
- # include <strings.h>
- #endif
--#if HAVE_INTTYPES_H
-+#ifdef HAVE_INTTYPES_H
- # include <inttypes.h>
--#else
--# if HAVE_STDINT_H
--# include <stdint.h>
--# endif
- #endif
--#if HAVE_UNISTD_H
-+#ifdef HAVE_STDINT_H
-+# include <stdint.h>
-+#endif
-+#ifdef HAVE_UNISTD_H
- # include <unistd.h>
- #endif"
-
--ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE DISTCC build build_cpu build_vendor build_os host host_cpu host_vendor host_os CPP EGREP LIBOBJS DISABLE_GNUTLS LIBGNUTLS_CONFIG LIBGNUTLS_CFLAGS LIBGNUTLS_LIBS SIPSAK_HAVE_ARES LTLIBOBJS'
-+ac_subst_vars='SHELL
-+PATH_SEPARATOR
-+PACKAGE_NAME
-+PACKAGE_TARNAME
-+PACKAGE_VERSION
-+PACKAGE_STRING
-+PACKAGE_BUGREPORT
-+exec_prefix
-+prefix
-+program_transform_name
-+bindir
-+sbindir
-+libexecdir
-+datarootdir
-+datadir
-+sysconfdir
-+sharedstatedir
-+localstatedir
-+includedir
-+oldincludedir
-+docdir
-+infodir
-+htmldir
-+dvidir
-+pdfdir
-+psdir
-+libdir
-+localedir
-+mandir
-+DEFS
-+ECHO_C
-+ECHO_N
-+ECHO_T
-+LIBS
-+build_alias
-+host_alias
-+target_alias
-+INSTALL_PROGRAM
-+INSTALL_SCRIPT
-+INSTALL_DATA
-+CYGPATH_W
-+PACKAGE
-+VERSION
-+ACLOCAL
-+AUTOCONF
-+AUTOMAKE
-+AUTOHEADER
-+MAKEINFO
-+install_sh
-+STRIP
-+INSTALL_STRIP_PROGRAM
-+mkdir_p
-+AWK
-+SET_MAKE
-+am__leading_dot
-+AMTAR
-+am__tar
-+am__untar
-+MAINTAINER_MODE_TRUE
-+MAINTAINER_MODE_FALSE
-+MAINT
-+CC
-+CFLAGS
-+LDFLAGS
-+CPPFLAGS
-+ac_ct_CC
-+EXEEXT
-+OBJEXT
-+DEPDIR
-+am__include
-+am__quote
-+AMDEP_TRUE
-+AMDEP_FALSE
-+AMDEPBACKSLASH
-+CCDEPMODE
-+am__fastdepCC_TRUE
-+am__fastdepCC_FALSE
-+DISTCC
-+build
-+build_cpu
-+build_vendor
-+build_os
-+host
-+host_cpu
-+host_vendor
-+host_os
-+CPP
-+GREP
-+EGREP
-+LIBOBJS
-+DISABLE_GNUTLS
-+LIBGNUTLS_CONFIG
-+LIBGNUTLS_CFLAGS
-+LIBGNUTLS_LIBS
-+SIPSAK_HAVE_ARES
-+LTLIBOBJS'
- ac_subst_files=''
-+ ac_precious_vars='build_alias
-+host_alias
-+target_alias
-+CC
-+CFLAGS
-+LDFLAGS
-+LIBS
-+CPPFLAGS
-+CPP'
-+
-
- # Initialize some variables set by options.
- ac_init_help=
-@@ -339,34 +748,48 @@ x_libraries=NONE
- # and all the variables that are supposed to be based on exec_prefix
- # by default will actually change.
- # Use braces instead of parens because sh, perl, etc. also accept them.
-+# (The list follows the same order as the GNU Coding Standards.)
- bindir='${exec_prefix}/bin'
- sbindir='${exec_prefix}/sbin'
- libexecdir='${exec_prefix}/libexec'
--datadir='${prefix}/share'
-+datarootdir='${prefix}/share'
-+datadir='${datarootdir}'
- sysconfdir='${prefix}/etc'
- sharedstatedir='${prefix}/com'
- localstatedir='${prefix}/var'
--libdir='${exec_prefix}/lib'
- includedir='${prefix}/include'
- oldincludedir='/usr/include'
--infodir='${prefix}/info'
--mandir='${prefix}/man'
-+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
-+infodir='${datarootdir}/info'
-+htmldir='${docdir}'
-+dvidir='${docdir}'
-+pdfdir='${docdir}'
-+psdir='${docdir}'
-+libdir='${exec_prefix}/lib'
-+localedir='${datarootdir}/locale'
-+mandir='${datarootdir}/man'
-
- ac_prev=
-+ac_dashdash=
- for ac_option
- do
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
-- eval "$ac_prev=\$ac_option"
-+ eval $ac_prev=\$ac_option
- ac_prev=
- continue
- fi
-
-- ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-+ case $ac_option in
-+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-+ *) ac_optarg=yes ;;
-+ esac
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
-- case $ac_option in
-+ case $ac_dashdash$ac_option in
-+ --)
-+ ac_dashdash=yes ;;
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
-@@ -388,33 +811,45 @@ do
- --config-cache | -C)
- cache_file=config.cache ;;
-
-- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-+ -datadir | --datadir | --datadi | --datad)
- ac_prev=datadir ;;
-- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-- | --da=*)
-+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
- datadir=$ac_optarg ;;
-
-+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-+ | --dataroo | --dataro | --datar)
-+ ac_prev=datarootdir ;;
-+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-+ datarootdir=$ac_optarg ;;
-+
- -disable-* | --disable-*)
- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
-- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-+ expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
-- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-- eval "enable_$ac_feature=no" ;;
-+ ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-+ eval enable_$ac_feature=no ;;
-+
-+ -docdir | --docdir | --docdi | --doc | --do)
-+ ac_prev=docdir ;;
-+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-+ docdir=$ac_optarg ;;
-+
-+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-+ ac_prev=dvidir ;;
-+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-+ dvidir=$ac_optarg ;;
-
- -enable-* | --enable-*)
- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
-- expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-+ expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid feature name: $ac_feature" >&2
- { (exit 1); exit 1; }; }
-- ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-- case $ac_option in
-- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-- *) ac_optarg=yes ;;
-- esac
-- eval "enable_$ac_feature='$ac_optarg'" ;;
-+ ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-+ eval enable_$ac_feature=\$ac_optarg ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-@@ -441,6 +876,12 @@ do
- -host=* | --host=* | --hos=* | --ho=*)
- host_alias=$ac_optarg ;;
-
-+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-+ ac_prev=htmldir ;;
-+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-+ | --ht=*)
-+ htmldir=$ac_optarg ;;
-+
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
-@@ -465,13 +906,16 @@ do
- | --libexe=* | --libex=* | --libe=*)
- libexecdir=$ac_optarg ;;
-
-+ -localedir | --localedir | --localedi | --localed | --locale)
-+ ac_prev=localedir ;;
-+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-+ localedir=$ac_optarg ;;
-+
- -localstatedir | --localstatedir | --localstatedi | --localstated \
-- | --localstate | --localstat | --localsta | --localst \
-- | --locals | --local | --loca | --loc | --lo)
-+ | --localstate | --localstat | --localsta | --localst | --locals)
- ac_prev=localstatedir ;;
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
- localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-@@ -536,6 +980,16 @@ do
- | --progr-tra=* | --program-tr=* | --program-t=*)
- program_transform_name=$ac_optarg ;;
-
-+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-+ ac_prev=pdfdir ;;
-+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-+ pdfdir=$ac_optarg ;;
-+
-+ -psdir | --psdir | --psdi | --psd | --ps)
-+ ac_prev=psdir ;;
-+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-+ psdir=$ac_optarg ;;
-+
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- silent=yes ;;
-@@ -588,24 +1042,20 @@ do
- -with-* | --with-*)
- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
-- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-+ expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
-- ac_package=`echo $ac_package| sed 's/-/_/g'`
-- case $ac_option in
-- *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-- *) ac_optarg=yes ;;
-- esac
-- eval "with_$ac_package='$ac_optarg'" ;;
-+ ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-+ eval with_$ac_package=\$ac_optarg ;;
-
- -without-* | --without-*)
- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
-- expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-+ expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid package name: $ac_package" >&2
- { (exit 1); exit 1; }; }
-- ac_package=`echo $ac_package | sed 's/-/_/g'`
-- eval "with_$ac_package=no" ;;
-+ ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-+ eval with_$ac_package=no ;;
-
- --x)
- # Obsolete; use --with-x.
-@@ -636,8 +1086,7 @@ Try \`$0 --help' for more information."
- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
- { (exit 1); exit 1; }; }
-- ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-- eval "$ac_envvar='$ac_optarg'"
-+ eval $ac_envvar=\$ac_optarg
- export $ac_envvar ;;
-
- *)
-@@ -657,27 +1106,19 @@ if test -n "$ac_prev"; then
- { (exit 1); exit 1; }; }
- fi
-
--# Be sure to have absolute paths.
--for ac_var in exec_prefix prefix
--do
-- eval ac_val=$`echo $ac_var`
-- case $ac_val in
-- [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-- { (exit 1); exit 1; }; };;
-- esac
--done
--
--# Be sure to have absolute paths.
--for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-- localstatedir libdir includedir oldincludedir infodir mandir
-+# Be sure to have absolute directory names.
-+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
-+ datadir sysconfdir sharedstatedir localstatedir includedir \
-+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-+ libdir localedir mandir
- do
-- eval ac_val=$`echo $ac_var`
-+ eval ac_val=\$$ac_var
- case $ac_val in
-- [\\/$]* | ?:[\\/]* ) ;;
-- *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-- { (exit 1); exit 1; }; };;
-+ [\\/$]* | ?:[\\/]* ) continue;;
-+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
- esac
-+ { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-+ { (exit 1); exit 1; }; }
- done
-
- # There might be people who depend on the old broken behavior: `$host'
-@@ -704,22 +1145,43 @@ test -n "$host_alias" && ac_tool_prefix=
- test "$silent" = yes && exec 6>/dev/null
-
-
-+ac_pwd=`pwd` && test -n "$ac_pwd" &&
-+ac_ls_di=`ls -di .` &&
-+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-+ { echo "$as_me: error: Working directory cannot be determined" >&2
-+ { (exit 1); exit 1; }; }
-+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-+ { echo "$as_me: error: pwd does not report name of working directory" >&2
-+ { (exit 1); exit 1; }; }
-+
-+
- # Find the source files, if location was not specified.
- if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
-- # Try the directory containing this script, then its parent.
-- ac_confdir=`(dirname "$0") 2>/dev/null ||
-+ # Try the directory containing this script, then the parent directory.
-+ ac_confdir=`$as_dirname -- "$0" ||
- $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$0" : 'X\(//\)[^/]' \| \
- X"$0" : 'X\(//\)$' \| \
-- X"$0" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
-+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$0" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)[^/].*/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\).*/{
-+ s//\1/
-+ q
-+ }
-+ s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r "$srcdir/$ac_unique_file"; then
- srcdir=..
-@@ -728,50 +1190,31 @@ else
- ac_srcdir_defaulted=no
- fi
- if test ! -r "$srcdir/$ac_unique_file"; then
-- if test "$ac_srcdir_defaulted" = yes; then
-- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-- { (exit 1); exit 1; }; }
-- else
-- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
- { (exit 1); exit 1; }; }
-- fi
- fi
--(cd $srcdir && test -r "./$ac_unique_file") 2>/dev/null ||
-- { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-+ac_abs_confdir=`(
-+ cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
- { (exit 1); exit 1; }; }
--srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
--ac_env_build_alias_set=${build_alias+set}
--ac_env_build_alias_value=$build_alias
--ac_cv_env_build_alias_set=${build_alias+set}
--ac_cv_env_build_alias_value=$build_alias
--ac_env_host_alias_set=${host_alias+set}
--ac_env_host_alias_value=$host_alias
--ac_cv_env_host_alias_set=${host_alias+set}
--ac_cv_env_host_alias_value=$host_alias
--ac_env_target_alias_set=${target_alias+set}
--ac_env_target_alias_value=$target_alias
--ac_cv_env_target_alias_set=${target_alias+set}
--ac_cv_env_target_alias_value=$target_alias
--ac_env_CC_set=${CC+set}
--ac_env_CC_value=$CC
--ac_cv_env_CC_set=${CC+set}
--ac_cv_env_CC_value=$CC
--ac_env_CFLAGS_set=${CFLAGS+set}
--ac_env_CFLAGS_value=$CFLAGS
--ac_cv_env_CFLAGS_set=${CFLAGS+set}
--ac_cv_env_CFLAGS_value=$CFLAGS
--ac_env_LDFLAGS_set=${LDFLAGS+set}
--ac_env_LDFLAGS_value=$LDFLAGS
--ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
--ac_cv_env_LDFLAGS_value=$LDFLAGS
--ac_env_CPPFLAGS_set=${CPPFLAGS+set}
--ac_env_CPPFLAGS_value=$CPPFLAGS
--ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
--ac_cv_env_CPPFLAGS_value=$CPPFLAGS
--ac_env_CPP_set=${CPP+set}
--ac_env_CPP_value=$CPP
--ac_cv_env_CPP_set=${CPP+set}
--ac_cv_env_CPP_value=$CPP
-+ pwd)`
-+# When building in place, set srcdir=.
-+if test "$ac_abs_confdir" = "$ac_pwd"; then
-+ srcdir=.
-+fi
-+# Remove unnecessary trailing slashes from srcdir.
-+# Double slashes in file names in object file debugging info
-+# mess up M-x gdb in Emacs.
-+case $srcdir in
-+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-+esac
-+for ac_var in $ac_precious_vars; do
-+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
-+ eval ac_env_${ac_var}_value=\$${ac_var}
-+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
-+done
-
- #
- # Report the --help message.
-@@ -800,9 +1243,6 @@ Configuration:
- -n, --no-create do not create output files
- --srcdir=DIR find the sources in DIR [configure dir or \`..']
-
--_ACEOF
--
-- cat <<_ACEOF
- Installation directories:
- --prefix=PREFIX install architecture-independent files in PREFIX
- [$ac_default_prefix]
-@@ -820,15 +1260,22 @@ Fine tuning of the installation director
- --bindir=DIR user executables [EPREFIX/bin]
- --sbindir=DIR system admin executables [EPREFIX/sbin]
- --libexecdir=DIR program executables [EPREFIX/libexec]
-- --datadir=DIR read-only architecture-independent data [PREFIX/share]
- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
- --localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --libdir=DIR object code libraries [EPREFIX/lib]
- --includedir=DIR C header files [PREFIX/include]
- --oldincludedir=DIR C header files for non-gcc [/usr/include]
-- --infodir=DIR info documentation [PREFIX/info]
-- --mandir=DIR man documentation [PREFIX/man]
-+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
-+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
-+ --infodir=DIR info documentation [DATAROOTDIR/info]
-+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
-+ --mandir=DIR man documentation [DATAROOTDIR/man]
-+ --docdir=DIR documentation root [DATAROOTDIR/doc/sipsak]
-+ --htmldir=DIR html documentation [DOCDIR]
-+ --dvidir=DIR dvi documentation [DOCDIR]
-+ --pdfdir=DIR pdf documentation [DOCDIR]
-+ --psdir=DIR ps documentation [DOCDIR]
- _ACEOF
-
- cat <<\_ACEOF
-@@ -871,8 +1318,9 @@ Some influential environment variables:
- CFLAGS C compiler flags
- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
- nonstandard directory <lib dir>
-- CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
-- headers in a nonstandard directory <include dir>
-+ LIBS libraries to pass to the linker, e.g. -l<library>
-+ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
-+ you have headers in a nonstandard directory <include dir>
- CPP C preprocessor
-
- Use these variables to override the choices made by `configure' or to help
-@@ -880,120 +1328,86 @@ it to find libraries and programs with n
-
- Report bugs to <nils@sipsak.org>.
- _ACEOF
-+ac_status=$?
- fi
-
- if test "$ac_init_help" = "recursive"; then
- # If there are subdirs, report their specific --help.
-- ac_popdir=`pwd`
- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-- test -d $ac_dir || continue
-+ test -d "$ac_dir" || continue
- ac_builddir=.
-
--if test "$ac_dir" != .; then
-+case "$ac_dir" in
-+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-+*)
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-- # A "../" for each directory in $ac_dir_suffix.
-- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
--else
-- ac_dir_suffix= ac_top_builddir=
--fi
-+ # A ".." for each directory in $ac_dir_suffix.
-+ ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
-+ case $ac_top_builddir_sub in
-+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-+ esac ;;
-+esac
-+ac_abs_top_builddir=$ac_pwd
-+ac_abs_builddir=$ac_pwd$ac_dir_suffix
-+# for backward compatibility:
-+ac_top_builddir=$ac_top_build_prefix
-
- case $srcdir in
-- .) # No --srcdir option. We are building in place.
-+ .) # We are building in place.
- ac_srcdir=.
-- if test -z "$ac_top_builddir"; then
-- ac_top_srcdir=.
-- else
-- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-- fi ;;
-- [\\/]* | ?:[\\/]* ) # Absolute path.
-+ ac_top_srcdir=$ac_top_builddir_sub
-+ ac_abs_top_srcdir=$ac_pwd ;;
-+ [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
-- ac_top_srcdir=$srcdir ;;
-- *) # Relative path.
-- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-- ac_top_srcdir=$ac_top_builddir$srcdir ;;
--esac
--
--# Do not use `cd foo && pwd` to compute absolute paths, because
--# the directories may not exist.
--case `pwd` in
--.) ac_abs_builddir="$ac_dir";;
--*)
-- case "$ac_dir" in
-- .) ac_abs_builddir=`pwd`;;
-- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-- *) ac_abs_builddir=`pwd`/"$ac_dir";;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_top_builddir=${ac_top_builddir}.;;
--*)
-- case ${ac_top_builddir}. in
-- .) ac_abs_top_builddir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_srcdir=$ac_srcdir;;
--*)
-- case $ac_srcdir in
-- .) ac_abs_srcdir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_top_srcdir=$ac_top_srcdir;;
--*)
-- case $ac_top_srcdir in
-- .) ac_abs_top_srcdir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-- esac;;
-+ ac_top_srcdir=$srcdir
-+ ac_abs_top_srcdir=$srcdir ;;
-+ *) # Relative name.
-+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-+ ac_top_srcdir=$ac_top_build_prefix$srcdir
-+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
- esac
-+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-- cd $ac_dir
-- # Check for guested configure; otherwise get Cygnus style configure.
-- if test -f $ac_srcdir/configure.gnu; then
-- echo
-- $SHELL $ac_srcdir/configure.gnu --help=recursive
-- elif test -f $ac_srcdir/configure; then
-- echo
-- $SHELL $ac_srcdir/configure --help=recursive
-- elif test -f $ac_srcdir/configure.ac ||
-- test -f $ac_srcdir/configure.in; then
-- echo
-- $ac_configure --help
-+ cd "$ac_dir" || { ac_status=$?; continue; }
-+ # Check for guested configure.
-+ if test -f "$ac_srcdir/configure.gnu"; then
-+ echo &&
-+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-+ elif test -f "$ac_srcdir/configure"; then
-+ echo &&
-+ $SHELL "$ac_srcdir/configure" --help=recursive
- else
- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-- fi
-- cd $ac_popdir
-+ fi || ac_status=$?
-+ cd "$ac_pwd" || { ac_status=$?; break; }
- done
- fi
-
--test -n "$ac_init_help" && exit 0
-+test -n "$ac_init_help" && exit $ac_status
- if $ac_init_version; then
- cat <<\_ACEOF
- sipsak configure 0.9.6
--generated by GNU Autoconf 2.59
-+generated by GNU Autoconf 2.61
-
--Copyright (C) 2003 Free Software Foundation, Inc.
-+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-+2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
- This configure script is free software; the Free Software Foundation
- gives unlimited permission to copy, distribute and modify it.
- _ACEOF
-- exit 0
-+ exit
- fi
--exec 5>config.log
--cat >&5 <<_ACEOF
-+cat >config.log <<_ACEOF
- This file contains any messages produced by compilers while
- running configure, to aid debugging if configure makes a mistake.
-
- It was created by sipsak $as_me 0.9.6, which was
--generated by GNU Autoconf 2.59. Invocation command line was
-+generated by GNU Autoconf 2.61. Invocation command line was
-
- $ $0 $@
-
- _ACEOF
-+exec 5>>config.log
- {
- cat <<_ASUNAME
- ## --------- ##
-@@ -1012,7 +1426,7 @@ uname -v = `(uname -v) 2>/dev/null || ec
- /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
- /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
- /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
--hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
-+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
- /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
- /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
- /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-@@ -1026,6 +1440,7 @@ do
- test -z "$as_dir" && as_dir=.
- echo "PATH: $as_dir"
- done
-+IFS=$as_save_IFS
-
- } >&5
-
-@@ -1047,7 +1462,6 @@ _ACEOF
- ac_configure_args=
- ac_configure_args0=
- ac_configure_args1=
--ac_sep=
- ac_must_keep_next=false
- for ac_pass in 1 2
- do
-@@ -1058,7 +1472,7 @@ do
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
- continue ;;
-- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-+ *\'*)
- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
- esac
- case $ac_pass in
-@@ -1080,9 +1494,7 @@ do
- -* ) ac_must_keep_next=true ;;
- esac
- fi
-- ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-- # Get rid of the leading space.
-- ac_sep=" "
-+ ac_configure_args="$ac_configure_args '$ac_arg'"
- ;;
- esac
- done
-@@ -1093,8 +1505,8 @@ $as_unset ac_configure_args1 || test "${
- # When interrupted or exit'd, cleanup temporary files, and complete
- # config.log. We remove comments because anyway the quotes in there
- # would cause problems or look ugly.
--# WARNING: Be sure not to use single quotes in there, as some shells,
--# such as our DU 5.0 friend, will then `close' the trap.
-+# WARNING: Use '\'' to represent an apostrophe within the trap.
-+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
- trap 'exit_status=$?
- # Save into config.log some information that might help in debugging.
- {
-@@ -1107,20 +1519,34 @@ trap 'exit_status=$?
- _ASBOX
- echo
- # The following way of writing the cache mishandles newlines in values,
--{
-+(
-+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-+ eval ac_val=\$$ac_var
-+ case $ac_val in #(
-+ *${as_nl}*)
-+ case $ac_var in #(
-+ *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-+ esac
-+ case $ac_var in #(
-+ _ | IFS | as_nl) ;; #(
-+ *) $as_unset $ac_var ;;
-+ esac ;;
-+ esac
-+ done
- (set) 2>&1 |
-- case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-- *ac_space=\ *)
-+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-+ *${as_nl}ac_space=\ *)
- sed -n \
-- "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-- ;;
-+ "s/'\''/'\''\\\\'\'''\''/g;
-+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-+ ;; #(
- *)
-- sed -n \
-- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
-- esac;
--}
-+ esac |
-+ sort
-+)
- echo
-
- cat <<\_ASBOX
-@@ -1131,22 +1557,28 @@ _ASBOX
- echo
- for ac_var in $ac_subst_vars
- do
-- eval ac_val=$`echo $ac_var`
-- echo "$ac_var='"'"'$ac_val'"'"'"
-+ eval ac_val=\$$ac_var
-+ case $ac_val in
-+ *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-+ esac
-+ echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
-
- if test -n "$ac_subst_files"; then
- cat <<\_ASBOX
--## ------------- ##
--## Output files. ##
--## ------------- ##
-+## ------------------- ##
-+## File substitutions. ##
-+## ------------------- ##
- _ASBOX
- echo
- for ac_var in $ac_subst_files
- do
-- eval ac_val=$`echo $ac_var`
-- echo "$ac_var='"'"'$ac_val'"'"'"
-+ eval ac_val=\$$ac_var
-+ case $ac_val in
-+ *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-+ esac
-+ echo "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-@@ -1158,26 +1590,24 @@ _ASBOX
- ## ----------- ##
- _ASBOX
- echo
-- sed "/^$/d" confdefs.h | sort
-+ cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- echo "$as_me: caught signal $ac_signal"
- echo "$as_me: exit $exit_status"
- } >&5
-- rm -f core *.core &&
-- rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-+ rm -f core *.core core.conftest.* &&
-+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
- exit $exit_status
-- ' 0
-+' 0
- for ac_signal in 1 2 13 15; do
- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
- done
- ac_signal=0
-
- # confdefs.h avoids OS command line length limits that DEFS can exceed.
--rm -rf conftest* confdefs.h
--# AIX cpp loses on an empty file, so make sure it contains at least a newline.
--echo >confdefs.h
-+rm -f -r conftest* confdefs.h
-
- # Predefined preprocessor variables.
-
-@@ -1208,14 +1638,17 @@ _ACEOF
-
- # Let the site file select an alternate cache file if it wants to.
- # Prefer explicitly selected file to automatically selected ones.
--if test -z "$CONFIG_SITE"; then
-- if test "x$prefix" != xNONE; then
-- CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-- else
-- CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-- fi
-+if test -n "$CONFIG_SITE"; then
-+ set x "$CONFIG_SITE"
-+elif test "x$prefix" != xNONE; then
-+ set x "$prefix/share/config.site" "$prefix/etc/config.site"
-+else
-+ set x "$ac_default_prefix/share/config.site" \
-+ "$ac_default_prefix/etc/config.site"
- fi
--for ac_site_file in $CONFIG_SITE; do
-+shift
-+for ac_site_file
-+do
- if test -r "$ac_site_file"; then
- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
- echo "$as_me: loading site script $ac_site_file" >&6;}
-@@ -1231,8 +1664,8 @@ if test -r "$cache_file"; then
- { echo "$as_me:$LINENO: loading cache $cache_file" >&5
- echo "$as_me: loading cache $cache_file" >&6;}
- case $cache_file in
-- [\\/]* | ?:[\\/]* ) . $cache_file;;
-- *) . ./$cache_file;;
-+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
-+ *) . "./$cache_file";;
- esac
- fi
- else
-@@ -1244,12 +1677,11 @@ fi
- # Check that the precious variables saved in the cache have kept the same
- # value.
- ac_cache_corrupted=false
--for ac_var in `(set) 2>&1 |
-- sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-+for ac_var in $ac_precious_vars; do
- eval ac_old_set=\$ac_cv_env_${ac_var}_set
- eval ac_new_set=\$ac_env_${ac_var}_set
-- eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-- eval ac_new_val="\$ac_env_${ac_var}_value"
-+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
-+ eval ac_new_val=\$ac_env_${ac_var}_value
- case $ac_old_set,$ac_new_set in
- set,)
- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-@@ -1274,8 +1706,7 @@ echo "$as_me: current value: $ac_new_v
- # Pass precious variables to config.status.
- if test "$ac_new_set" = set; then
- case $ac_new_val in
-- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-- ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-+ *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
- *) ac_arg=$ac_var=$ac_new_val ;;
- esac
- case " $ac_configure_args " in
-@@ -1292,12 +1723,6 @@ echo "$as_me: error: run \`make distclea
- { (exit 1); exit 1; }; }
- fi
-
--ac_ext=c
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
--ac_compiler_gnu=$ac_cv_c_compiler_gnu
--
-
-
-
-@@ -1322,33 +1747,44 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- am__api_version="1.9"
- ac_aux_dir=
--for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-- if test -f $ac_dir/install-sh; then
-+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-+ if test -f "$ac_dir/install-sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install-sh -c"
- break
-- elif test -f $ac_dir/install.sh; then
-+ elif test -f "$ac_dir/install.sh"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
-- elif test -f $ac_dir/shtool; then
-+ elif test -f "$ac_dir/shtool"; then
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/shtool install -c"
- break
- fi
- done
- if test -z "$ac_aux_dir"; then
-- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
--echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
-+ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-+echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
- { (exit 1); exit 1; }; }
- fi
--ac_config_guess="$SHELL $ac_aux_dir/config.guess"
--ac_config_sub="$SHELL $ac_aux_dir/config.sub"
--ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-+
-+# These three variables are undocumented and unsupported,
-+# and are intended to be withdrawn in a future Autoconf release.
-+# They can cause serious problems if a builder's source tree is in a directory
-+# whose full name contains unusual characters.
-+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
-+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.
-+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
-+
-
- # Find a good install program. We prefer a C program (faster),
- # so one script is as good as another. But avoid the broken or
-@@ -1363,8 +1799,8 @@ ac_configure="$SHELL $ac_aux_dir/configu
- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
- # OS/2's system install, which has a completely different semantic
- # ./install, which can be erroneously created by make from ./install.sh.
--echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
--echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
- if test -z "$INSTALL"; then
- if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -1386,7 +1822,7 @@ case $as_dir/ in
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
-@@ -1405,21 +1841,22 @@ case $as_dir/ in
- ;;
- esac
- done
-+IFS=$as_save_IFS
-
-
- fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
-- # As a last resort, use the slow shell script. We don't cache a
-- # path for INSTALL within a source directory, because that will
-+ # As a last resort, use the slow shell script. Don't cache a
-+ # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
-- # removed, or if the path is relative.
-+ # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
- fi
--echo "$as_me:$LINENO: result: $INSTALL" >&5
--echo "${ECHO_T}$INSTALL" >&6
-+{ echo "$as_me:$LINENO: result: $INSTALL" >&5
-+echo "${ECHO_T}$INSTALL" >&6; }
-
- # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
- # It thinks the first close brace ends the variable substitution.
-@@ -1429,8 +1866,8 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCR
-
- test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
--echo "$as_me:$LINENO: checking whether build environment is sane" >&5
--echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; }
- # Just in case
- sleep 1
- echo timestamp > conftest.file
-@@ -1472,20 +1909,20 @@ echo "$as_me: error: newly created file
- Check your system clock" >&2;}
- { (exit 1); exit 1; }; }
- fi
--echo "$as_me:$LINENO: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-+{ echo "$as_me:$LINENO: result: yes" >&5
-+echo "${ECHO_T}yes" >&6; }
- test "$program_prefix" != NONE &&
-- program_transform_name="s,^,$program_prefix,;$program_transform_name"
-+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
- # Use a double $ so make ignores it.
- test "$program_suffix" != NONE &&
-- program_transform_name="s,\$,$program_suffix,;$program_transform_name"
-+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
- # Double any \ or $. echo might interpret backslashes.
- # By default was `s,x,x', remove it if useless.
- cat <<\_ACEOF >conftest.sed
- s/[\\$]/&&/g;s/;s,x,x,$//
- _ACEOF
- program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
--rm conftest.sed
-+rm -f conftest.sed
-
- # expand $ac_aux_dir to an absolute path
- am_aux_dir=`cd $ac_aux_dir && pwd`
-@@ -1537,8 +1974,8 @@ for ac_prog in gawk mawk nawk awk
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
- if test "${ac_cv_prog_AWK+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -1551,54 +1988,57 @@ do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AWK="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
- done
- done
-+IFS=$as_save_IFS
-
- fi
- fi
- AWK=$ac_cv_prog_AWK
- if test -n "$AWK"; then
-- echo "$as_me:$LINENO: result: $AWK" >&5
--echo "${ECHO_T}$AWK" >&6
-+ { echo "$as_me:$LINENO: result: $AWK" >&5
-+echo "${ECHO_T}$AWK" >&6; }
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- fi
-
-+
- test -n "$AWK" && break
- done
-
--echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
--echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
--set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
--if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
-+set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.make <<\_ACEOF
-+SHELL = /bin/sh
- all:
-- @echo 'ac_maketemp="$(MAKE)"'
-+ @echo '@@@%%%=$(MAKE)=@@@%%%'
- _ACEOF
- # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
--eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
--if test -n "$ac_maketemp"; then
-- eval ac_cv_prog_make_${ac_make}_set=yes
--else
-- eval ac_cv_prog_make_${ac_make}_set=no
--fi
-+case `${MAKE-make} -f conftest.make 2>/dev/null` in
-+ *@@@%%%=?*=@@@%%%*)
-+ eval ac_cv_prog_make_${ac_make}_set=yes;;
-+ *)
-+ eval ac_cv_prog_make_${ac_make}_set=no;;
-+esac
- rm -f conftest.make
- fi
--if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-- echo "$as_me:$LINENO: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-+ { echo "$as_me:$LINENO: result: yes" >&5
-+echo "${ECHO_T}yes" >&6; }
- SET_MAKE=
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- SET_MAKE="MAKE=${MAKE-make}"
- fi
-
-@@ -1669,8 +2109,8 @@ if test "$cross_compiling" != no; then
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
- set dummy ${ac_tool_prefix}strip; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
- if test "${ac_cv_prog_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -1683,32 +2123,34 @@ do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
- done
- done
-+IFS=$as_save_IFS
-
- fi
- fi
- STRIP=$ac_cv_prog_STRIP
- if test -n "$STRIP"; then
-- echo "$as_me:$LINENO: result: $STRIP" >&5
--echo "${ECHO_T}$STRIP" >&6
-+ { echo "$as_me:$LINENO: result: $STRIP" >&5
-+echo "${ECHO_T}$STRIP" >&6; }
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- fi
-
-+
- fi
- if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
- set dummy strip; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
- if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -1721,27 +2163,41 @@ do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_STRIP="strip"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
- done
- done
-+IFS=$as_save_IFS
-
-- test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
- fi
- fi
- ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
- if test -n "$ac_ct_STRIP"; then
-- echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
--echo "${ECHO_T}$ac_ct_STRIP" >&6
-+ { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-+echo "${ECHO_T}$ac_ct_STRIP" >&6; }
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- fi
-
-- STRIP=$ac_ct_STRIP
-+ if test "x$ac_ct_STRIP" = x; then
-+ STRIP=":"
-+ else
-+ case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-+whose name does not start with the host triplet. If you think this
-+configuration is useful to you, please write to autoconf@gnu.org." >&5
-+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-+whose name does not start with the host triplet. If you think this
-+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+ STRIP=$ac_ct_STRIP
-+ fi
- else
- STRIP="$ac_cv_prog_STRIP"
- fi
-@@ -1761,17 +2217,17 @@ am__tar='${AMTAR} chof - "$$tardir"'; am
-
-
-
--echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
--echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
-- # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-+{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
-+echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; }
-+ # Check whether --enable-maintainer-mode was given.
- if test "${enable_maintainer_mode+set}" = set; then
-- enableval="$enable_maintainer_mode"
-- USE_MAINTAINER_MODE=$enableval
-+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
- else
- USE_MAINTAINER_MODE=no
--fi;
-- echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
--echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
-+fi
-+
-+ { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
-+echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; }
-
-
- if test $USE_MAINTAINER_MODE = yes; then
-@@ -1786,7 +2242,7 @@ fi
-
-
-
-- ac_config_headers="$ac_config_headers config.h"
-+ac_config_headers="$ac_config_headers config.h"
-
-
- # Checks for programs.
-@@ -1798,8 +2254,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
- set dummy ${ac_tool_prefix}gcc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
- if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -1812,32 +2268,34 @@ do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="${ac_tool_prefix}gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
- done
- done
-+IFS=$as_save_IFS
-
- fi
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
-+ { echo "$as_me:$LINENO: result: $CC" >&5
-+echo "${ECHO_T}$CC" >&6; }
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- fi
-
-+
- fi
- if test -z "$ac_cv_prog_CC"; then
- ac_ct_CC=$CC
- # Extract the first word of "gcc", so it can be a program name with args.
- set dummy gcc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -1850,36 +2308,51 @@ do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CC="gcc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
- done
- done
-+IFS=$as_save_IFS
-
- fi
- fi
- ac_ct_CC=$ac_cv_prog_ac_ct_CC
- if test -n "$ac_ct_CC"; then
-- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
-+ { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-+echo "${ECHO_T}$ac_ct_CC" >&6; }
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- fi
-
-- CC=$ac_ct_CC
-+ if test "x$ac_ct_CC" = x; then
-+ CC=""
-+ else
-+ case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-+whose name does not start with the host triplet. If you think this
-+configuration is useful to you, please write to autoconf@gnu.org." >&5
-+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-+whose name does not start with the host triplet. If you think this
-+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+ CC=$ac_ct_CC
-+ fi
- else
- CC="$ac_cv_prog_CC"
- fi
-
- if test -z "$CC"; then
-- if test -n "$ac_tool_prefix"; then
-- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-+ if test -n "$ac_tool_prefix"; then
-+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
- set dummy ${ac_tool_prefix}cc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
- if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -1892,74 +2365,34 @@ do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="${ac_tool_prefix}cc"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
- done
- done
-+IFS=$as_save_IFS
-
- fi
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
--else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
--fi
--
--fi
--if test -z "$ac_cv_prog_CC"; then
-- ac_ct_CC=$CC
-- # Extract the first word of "cc", so it can be a program name with args.
--set dummy cc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
--if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-- echo $ECHO_N "(cached) $ECHO_C" >&6
--else
-- if test -n "$ac_ct_CC"; then
-- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
--else
--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-- ac_cv_prog_ac_ct_CC="cc"
-- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-- break 2
-- fi
--done
--done
--
--fi
--fi
--ac_ct_CC=$ac_cv_prog_ac_ct_CC
--if test -n "$ac_ct_CC"; then
-- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
-+ { echo "$as_me:$LINENO: result: $CC" >&5
-+echo "${ECHO_T}$CC" >&6; }
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- fi
-
-- CC=$ac_ct_CC
--else
-- CC="$ac_cv_prog_CC"
--fi
-
-+ fi
- fi
- if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
- set dummy cc; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
- if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -1973,7 +2406,7 @@ do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
- ac_prog_rejected=yes
- continue
-@@ -1984,6 +2417,7 @@ do
- fi
- done
- done
-+IFS=$as_save_IFS
-
- if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
-@@ -2001,22 +2435,23 @@ fi
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
-+ { echo "$as_me:$LINENO: result: $CC" >&5
-+echo "${ECHO_T}$CC" >&6; }
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- fi
-
-+
- fi
- if test -z "$CC"; then
- if test -n "$ac_tool_prefix"; then
-- for ac_prog in cl
-+ for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
- set dummy $ac_tool_prefix$ac_prog; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
- if test "${ac_cv_prog_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -2029,36 +2464,38 @@ do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
- done
- done
-+IFS=$as_save_IFS
-
- fi
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6
-+ { echo "$as_me:$LINENO: result: $CC" >&5
-+echo "${ECHO_T}$CC" >&6; }
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- fi
-
-+
- test -n "$CC" && break
- done
- fi
- if test -z "$CC"; then
- ac_ct_CC=$CC
-- for ac_prog in cl
-+ for ac_prog in cl.exe
- do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -2071,29 +2508,45 @@ do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_CC="$ac_prog"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
- done
- done
-+IFS=$as_save_IFS
-
- fi
- fi
- ac_ct_CC=$ac_cv_prog_ac_ct_CC
- if test -n "$ac_ct_CC"; then
-- echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
--echo "${ECHO_T}$ac_ct_CC" >&6
-+ { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-+echo "${ECHO_T}$ac_ct_CC" >&6; }
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- fi
-
-+
- test -n "$ac_ct_CC" && break
- done
-
-- CC=$ac_ct_CC
-+ if test "x$ac_ct_CC" = x; then
-+ CC=""
-+ else
-+ case $cross_compiling:$ac_tool_warned in
-+yes:)
-+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-+whose name does not start with the host triplet. If you think this
-+configuration is useful to you, please write to autoconf@gnu.org." >&5
-+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-+whose name does not start with the host triplet. If you think this
-+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-+ac_tool_warned=yes ;;
-+esac
-+ CC=$ac_ct_CC
-+ fi
- fi
-
- fi
-@@ -2106,21 +2559,35 @@ See \`config.log' for more details." >&2
- { (exit 1); exit 1; }; }
-
- # Provide some information about the compiler.
--echo "$as_me:$LINENO:" \
-- "checking for C compiler version" >&5
-+echo "$as_me:$LINENO: checking for C compiler version" >&5
- ac_compiler=`set X $ac_compile; echo $2`
--{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-- (eval $ac_compiler --version </dev/null >&5) 2>&5
-+{ (ac_try="$ac_compiler --version >&5"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compiler --version >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
--{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-- (eval $ac_compiler -v </dev/null >&5) 2>&5
-+{ (ac_try="$ac_compiler -v >&5"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compiler -v >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
--{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-- (eval $ac_compiler -V </dev/null >&5) 2>&5
-+{ (ac_try="$ac_compiler -V >&5"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compiler -V >&5") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }
-@@ -2145,47 +2612,77 @@ ac_clean_files="$ac_clean_files a.out a.
- # Try to create an executable without -o first, disregard a.out.
- # It will help us diagnose broken compilers, and finding out an intuition
- # of exeext.
--echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
--echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
- ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
--if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-- (eval $ac_link_default) 2>&5
-+#
-+# List of possible output files, starting from the most likely.
-+# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
-+# only as a last resort. b.out is created by i960 compilers.
-+ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
-+#
-+# The IRIX 6 linker writes into existing files which may not be
-+# executable, retaining their permissions. Remove them first so a
-+# subsequent execution test works.
-+ac_rmfiles=
-+for ac_file in $ac_files
-+do
-+ case $ac_file in
-+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
-+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-+ esac
-+done
-+rm -f $ac_rmfiles
-+
-+if { (ac_try="$ac_link_default"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link_default") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- # Find the output, starting from the most likely. This scheme is
--# not robust to junk in `.', hence go to wildcards (a.*) only as a last
--# resort.
--
--# Be careful to initialize this variable, since it used to be cached.
--# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
--ac_cv_exeext=
--# b.out is created by i960 compilers.
--for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-+# in a Makefile. We should not override ac_cv_exeext if it was cached,
-+# so that the user can short-circuit this test for compilers unknown to
-+# Autoconf.
-+for ac_file in $ac_files ''
- do
- test -f "$ac_file" || continue
- case $ac_file in
-- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-- ;;
-- conftest.$ac_ext )
-- # This is the source file.
-+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
- ;;
- [ab].out )
- # We found the default executable, but exeext='' is most
- # certainly right.
- break;;
- *.* )
-- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-- # FIXME: I believe we export ac_cv_exeext for Libtool,
-- # but it would be cool to find out if it's true. Does anybody
-- # maintain Libtool? --akim.
-- export ac_cv_exeext
-+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-+ then :; else
-+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-+ fi
-+ # We set ac_cv_exeext here because the later test for it is not
-+ # safe: cross compilers may not add the suffix if given an `-o'
-+ # argument, so we may need to know it at that point already.
-+ # Even if this section looks crufty: it has the advantage of
-+ # actually working.
- break;;
- * )
- break;;
- esac
- done
-+test "$ac_cv_exeext" = no && ac_cv_exeext=
-+
- else
-+ ac_file=''
-+fi
-+
-+{ echo "$as_me:$LINENO: result: $ac_file" >&5
-+echo "${ECHO_T}$ac_file" >&6; }
-+if test -z "$ac_file"; then
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
-@@ -2197,19 +2694,21 @@ See \`config.log' for more details." >&2
- fi
-
- ac_exeext=$ac_cv_exeext
--echo "$as_me:$LINENO: result: $ac_file" >&5
--echo "${ECHO_T}$ac_file" >&6
-
--# Check the compiler produces executables we can run. If not, either
-+# Check that the compiler produces executables we can run. If not, either
- # the compiler is broken, or we cross compile.
--echo "$as_me:$LINENO: checking whether the C compiler works" >&5
--echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
- # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
- # If not cross compiling, check that we can run a simple program.
- if test "$cross_compiling" != yes; then
- if { ac_try='./$ac_file'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-+ { (case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-@@ -2228,22 +2727,27 @@ See \`config.log' for more details." >&2
- fi
- fi
- fi
--echo "$as_me:$LINENO: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-+{ echo "$as_me:$LINENO: result: yes" >&5
-+echo "${ECHO_T}yes" >&6; }
-
- rm -f a.out a.exe conftest$ac_cv_exeext b.out
- ac_clean_files=$ac_clean_files_save
--# Check the compiler produces executables we can run. If not, either
-+# Check that the compiler produces executables we can run. If not, either
- # the compiler is broken, or we cross compile.
--echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
--echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
--echo "$as_me:$LINENO: result: $cross_compiling" >&5
--echo "${ECHO_T}$cross_compiling" >&6
-+{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
-+{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
-+echo "${ECHO_T}$cross_compiling" >&6; }
-
--echo "$as_me:$LINENO: checking for suffix of executables" >&5
--echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
-+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-@@ -2254,9 +2758,8 @@ if { (eval echo "$as_me:$LINENO: \"$ac_l
- for ac_file in conftest.exe conftest conftest.*; do
- test -f "$ac_file" || continue
- case $ac_file in
-- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
-+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-- export ac_cv_exeext
- break;;
- * ) break;;
- esac
-@@ -2270,14 +2773,14 @@ See \`config.log' for more details." >&2
- fi
-
- rm -f conftest$ac_cv_exeext
--echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
--echo "${ECHO_T}$ac_cv_exeext" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-+echo "${ECHO_T}$ac_cv_exeext" >&6; }
-
- rm -f conftest.$ac_ext
- EXEEXT=$ac_cv_exeext
- ac_exeext=$EXEEXT
--echo "$as_me:$LINENO: checking for suffix of object files" >&5
--echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
-+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
- if test "${ac_cv_objext+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -2297,14 +2800,20 @@ main ()
- }
- _ACEOF
- rm -f conftest.o conftest.obj
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>&5
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
-- for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
-+ for ac_file in conftest.o conftest.obj conftest.*; do
-+ test -f "$ac_file" || continue;
- case $ac_file in
-- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
-+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
- break;;
- esac
-@@ -2322,12 +2831,12 @@ fi
-
- rm -f conftest.$ac_cv_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
--echo "${ECHO_T}$ac_cv_objext" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-+echo "${ECHO_T}$ac_cv_objext" >&6; }
- OBJEXT=$ac_cv_objext
- ac_objext=$OBJEXT
--echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
--echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
- if test "${ac_cv_c_compiler_gnu+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -2350,50 +2859,49 @@ main ()
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_compiler_gnu=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_compiler_gnu=no
-+ ac_compiler_gnu=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
- fi
--echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
--echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
- GCC=`test $ac_compiler_gnu = yes && echo yes`
- ac_test_CFLAGS=${CFLAGS+set}
- ac_save_CFLAGS=$CFLAGS
--CFLAGS="-g"
--echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
--echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
- if test "${ac_cv_prog_cc_g+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- cat >conftest.$ac_ext <<_ACEOF
-+ ac_save_c_werror_flag=$ac_c_werror_flag
-+ ac_c_werror_flag=yes
-+ ac_cv_prog_cc_g=no
-+ CFLAGS="-g"
-+ cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
- cat confdefs.h >>conftest.$ac_ext
-@@ -2409,38 +2917,118 @@ main ()
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
-+ ac_cv_prog_cc_g=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ CFLAGS=""
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
-+int
-+main ()
-+{
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ ac_c_werror_flag=$ac_save_c_werror_flag
-+ CFLAGS="-g"
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
-+int
-+main ()
-+{
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_cv_prog_cc_g=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_cv_prog_cc_g=no
-+
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
--echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+ ac_c_werror_flag=$ac_save_c_werror_flag
-+fi
-+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS=$ac_save_CFLAGS
- elif test $ac_cv_prog_cc_g = yes; then
-@@ -2456,12 +3044,12 @@ else
- CFLAGS=
- fi
- fi
--echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
--echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
--if test "${ac_cv_prog_cc_stdc+set}" = set; then
-+{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-+echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
-+if test "${ac_cv_prog_cc_c89+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_cv_prog_cc_stdc=no
-+ ac_cv_prog_cc_c89=no
- ac_save_CC=$CC
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
-@@ -2495,12 +3083,17 @@ static char *f (char * (*g) (char **, in
- /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
- function prototypes and stuff, but not '\xHH' hex character constants.
- These don't provoke an error unfortunately, instead are silently treated
-- as 'x'. The following induces an error, until -std1 is added to get
-+ as 'x'. The following induces an error, until -std is added to get
- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
- array size at least. It's necessary to write '\x00'==0 to get something
-- that's true only with -std1. */
-+ that's true only with -std. */
- int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-+ inside strings and character constants. */
-+#define FOO(x) 'x'
-+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-+
- int test (int i, double x);
- struct s1 {int (*f) (int a);};
- struct s2 {int (*f) (double a);};
-@@ -2515,205 +3108,57 @@ return f (e, argv, 0) != argv[0] || f
- return 0;
- }
- _ACEOF
--# Don't try gcc -ansi; that turns off useful extensions and
--# breaks some systems' header files.
--# AIX -qlanglvl=ansi
--# Ultrix and OSF/1 -std1
--# HP-UX 10.20 and later -Ae
--# HP-UX older versions -Aa -D_HPUX_SOURCE
--# SVR4 -Xc -D__EXTENSIONS__
--for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
- do
- CC="$ac_save_CC $ac_arg"
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- ac_cv_prog_cc_stdc=$ac_arg
--break
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
-+ ac_cv_prog_cc_c89=$ac_arg
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
-+
- fi
--rm -f conftest.err conftest.$ac_objext
-+
-+rm -f core conftest.err conftest.$ac_objext
-+ test "x$ac_cv_prog_cc_c89" != "xno" && break
- done
--rm -f conftest.$ac_ext conftest.$ac_objext
-+rm -f conftest.$ac_ext
- CC=$ac_save_CC
-
- fi
--
--case "x$ac_cv_prog_cc_stdc" in
-- x|xno)
-- echo "$as_me:$LINENO: result: none needed" >&5
--echo "${ECHO_T}none needed" >&6 ;;
-+# AC_CACHE_VAL
-+case "x$ac_cv_prog_cc_c89" in
-+ x)
-+ { echo "$as_me:$LINENO: result: none needed" >&5
-+echo "${ECHO_T}none needed" >&6; } ;;
-+ xno)
-+ { echo "$as_me:$LINENO: result: unsupported" >&5
-+echo "${ECHO_T}unsupported" >&6; } ;;
- *)
-- echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
--echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-- CC="$CC $ac_cv_prog_cc_stdc" ;;
-+ CC="$CC $ac_cv_prog_cc_c89"
-+ { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-+echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
- esac
-
--# Some people use a C++ compiler to compile C. Since we use `exit',
--# in C++ we need to declare it. In case someone uses the same compiler
--# for both compiling C and C++ we need to have the C++ compiler decide
--# the declaration of exit, since it's the most demanding environment.
--cat >conftest.$ac_ext <<_ACEOF
--#ifndef __cplusplus
-- choke me
--#endif
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- for ac_declaration in \
-- '' \
-- 'extern "C" void std::exit (int) throw (); using std::exit;' \
-- 'extern "C" void std::exit (int); using std::exit;' \
-- 'extern "C" void exit (int) throw ();' \
-- 'extern "C" void exit (int);' \
-- 'void exit (int);'
--do
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--$ac_declaration
--#include <stdlib.h>
--int
--main ()
--{
--exit (42);
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- :
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
-
--continue
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-- cat >conftest.$ac_ext <<_ACEOF
--/* confdefs.h. */
--_ACEOF
--cat confdefs.h >>conftest.$ac_ext
--cat >>conftest.$ac_ext <<_ACEOF
--/* end confdefs.h. */
--$ac_declaration
--int
--main ()
--{
--exit (42);
-- ;
-- return 0;
--}
--_ACEOF
--rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-- ac_status=$?
-- grep -v '^ *+' conftest.er1 >conftest.err
-- rm -f conftest.er1
-- cat conftest.err >&5
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-- break
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--done
--rm -f conftest*
--if test -n "$ac_declaration"; then
-- echo '#ifdef __cplusplus' >>confdefs.h
-- echo $ac_declaration >>confdefs.h
-- echo '#endif' >>confdefs.h
--fi
--
--else
-- echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-@@ -2721,7 +3166,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLA
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
- DEPDIR="${am__leading_dot}deps"
-
-- ac_config_commands="$ac_config_commands depfiles"
-+ac_config_commands="$ac_config_commands depfiles"
-
-
- am_make=${MAKE-make}
-@@ -2731,8 +3176,8 @@ am__doit:
- .PHONY: am__doit
- END
- # If we don't find an include directive, just comment out the code.
--echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
--echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; }
- am__include="#"
- am__quote=
- _am_result=none
-@@ -2759,15 +3204,15 @@ if test "$am__include" = "#"; then
- fi
-
-
--echo "$as_me:$LINENO: result: $_am_result" >&5
--echo "${ECHO_T}$_am_result" >&6
-+{ echo "$as_me:$LINENO: result: $_am_result" >&5
-+echo "${ECHO_T}$_am_result" >&6; }
- rm -f confinc confmf
-
--# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
-+# Check whether --enable-dependency-tracking was given.
- if test "${enable_dependency_tracking+set}" = set; then
-- enableval="$enable_dependency_tracking"
-+ enableval=$enable_dependency_tracking;
-+fi
-
--fi;
- if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-@@ -2787,8 +3232,8 @@ fi
-
- depcc="$CC" am_compiler_list=
-
--echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
--echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
- if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -2877,8 +3322,8 @@ else
- fi
-
- fi
--echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
--echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
-+{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
- CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
-
-@@ -2902,10 +3347,10 @@ fi
-
- ssp_cc=yes
- if test "X$CC" != "X"; then
-- echo "$as_me:$LINENO: checking whether ${CC} accepts -fstack-protector" >&5
--echo $ECHO_N "checking whether ${CC} accepts -fstack-protector... $ECHO_C" >&6
-+ { echo "$as_me:$LINENO: checking whether ${CC} accepts -fstack-protector" >&5
-+echo $ECHO_N "checking whether ${CC} accepts -fstack-protector... $ECHO_C" >&6; }
- ssp_old_cflags="$CFLAGS"
-- CFLAGS="$CFLAGS -fstack-protector"
-+ CFLAGS="$CFLAGS"
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -2922,35 +3367,31 @@ main ()
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- :
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ssp_cc=no
-+ ssp_cc=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- echo $ssp_cc
- if test "X$ssp_cc" = "Xno"; then
- CFLAGS="$ssp_old_cflags"
-@@ -2964,12 +3405,11 @@ _ACEOF
- fi
-
-
-- echo "$as_me:$LINENO: checking for distcc" >&5
--echo $ECHO_N "checking for distcc... $ECHO_C" >&6
-- # Check whether --enable-distcc or --disable-distcc was given.
-+ { echo "$as_me:$LINENO: checking for distcc" >&5
-+echo $ECHO_N "checking for distcc... $ECHO_C" >&6; }
-+ # Check whether --enable-distcc was given.
- if test "${enable_distcc+set}" = set; then
-- enableval="$enable_distcc"
--
-+ enableval=$enable_distcc;
- distcc_dirs="/ /usr /usr/local /usr/local/gnu /usr/gnu"
- for dir in $distcc_dirs; do
- if test -x "$dir/bin/distcc"; then
-@@ -2983,16 +3423,17 @@ if test "${enable_distcc+set}" = set; th
- echo "$as_me: error: not found" >&2;}
- { (exit 1); exit 1; }; }
- else
-- echo "$as_me:$LINENO: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-+ { echo "$as_me:$LINENO: result: yes" >&5
-+echo "${ECHO_T}yes" >&6; }
-
- fi
-
- else
-- echo "$as_me:$LINENO: result: not requested" >&5
--echo "${ECHO_T}not requested" >&6
-+ { echo "$as_me:$LINENO: result: not requested" >&5
-+echo "${ECHO_T}not requested" >&6; }
-+
-+fi
-
--fi;
-
-
- # Find a good install program. We prefer a C program (faster),
-@@ -3008,8 +3449,8 @@ fi;
- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
- # OS/2's system install, which has a completely different semantic
- # ./install, which can be erroneously created by make from ./install.sh.
--echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
--echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
- if test -z "$INSTALL"; then
- if test "${ac_cv_path_install+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-@@ -3031,7 +3472,7 @@ case $as_dir/ in
- # by default.
- for ac_prog in ginstall scoinst install; do
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
- if test $ac_prog = install &&
- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
-@@ -3050,21 +3491,22 @@ case $as_dir/ in
- ;;
- esac
- done
-+IFS=$as_save_IFS
-
-
- fi
- if test "${ac_cv_path_install+set}" = set; then
- INSTALL=$ac_cv_path_install
- else
-- # As a last resort, use the slow shell script. We don't cache a
-- # path for INSTALL within a source directory, because that will
-+ # As a last resort, use the slow shell script. Don't cache a
-+ # value for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
-- # removed, or if the path is relative.
-+ # removed, or if the value is a relative name.
- INSTALL=$ac_install_sh
- fi
- fi
--echo "$as_me:$LINENO: result: $INSTALL" >&5
--echo "${ECHO_T}$INSTALL" >&6
-+{ echo "$as_me:$LINENO: result: $INSTALL" >&5
-+echo "${ECHO_T}$INSTALL" >&6; }
-
- # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
- # It thinks the first close brace ends the variable substitution.
-@@ -3077,57 +3519,86 @@ test -z "$INSTALL_DATA" && INSTALL_DATA=
-
- # Checks for libraries.
- # Make sure we can run config.sub.
--$ac_config_sub sun4 >/dev/null 2>&1 ||
-- { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
--echo "$as_me: error: cannot run $ac_config_sub" >&2;}
-+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-+ { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-+echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
- { (exit 1); exit 1; }; }
-
--echo "$as_me:$LINENO: checking build system type" >&5
--echo $ECHO_N "checking build system type... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking build system type" >&5
-+echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
- if test "${ac_cv_build+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_cv_build_alias=$build_alias
--test -z "$ac_cv_build_alias" &&
-- ac_cv_build_alias=`$ac_config_guess`
--test -z "$ac_cv_build_alias" &&
-+ ac_build_alias=$build_alias
-+test "x$ac_build_alias" = x &&
-+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-+test "x$ac_build_alias" = x &&
- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
- echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
- { (exit 1); exit 1; }; }
--ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
--echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
-+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-+ { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-
- fi
--echo "$as_me:$LINENO: result: $ac_cv_build" >&5
--echo "${ECHO_T}$ac_cv_build" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-+echo "${ECHO_T}$ac_cv_build" >&6; }
-+case $ac_cv_build in
-+*-*-*) ;;
-+*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-+echo "$as_me: error: invalid value of canonical build" >&2;}
-+ { (exit 1); exit 1; }; };;
-+esac
- build=$ac_cv_build
--build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
--build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
--build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+ac_save_IFS=$IFS; IFS='-'
-+set x $ac_cv_build
-+shift
-+build_cpu=$1
-+build_vendor=$2
-+shift; shift
-+# Remember, the first character of IFS is used to create $*,
-+# except with old shells:
-+build_os=$*
-+IFS=$ac_save_IFS
-+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
--echo "$as_me:$LINENO: checking host system type" >&5
--echo $ECHO_N "checking host system type... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking host system type" >&5
-+echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
- if test "${ac_cv_host+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_cv_host_alias=$host_alias
--test -z "$ac_cv_host_alias" &&
-- ac_cv_host_alias=$ac_cv_build_alias
--ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-- { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
--echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
-+ if test "x$host_alias" = x; then
-+ ac_cv_host=$ac_cv_build
-+else
-+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-+ { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
- { (exit 1); exit 1; }; }
-+fi
-
- fi
--echo "$as_me:$LINENO: result: $ac_cv_host" >&5
--echo "${ECHO_T}$ac_cv_host" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-+echo "${ECHO_T}$ac_cv_host" >&6; }
-+case $ac_cv_host in
-+*-*-*) ;;
-+*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-+echo "$as_me: error: invalid value of canonical host" >&2;}
-+ { (exit 1); exit 1; }; };;
-+esac
- host=$ac_cv_host
--host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
--host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
--host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-+ac_save_IFS=$IFS; IFS='-'
-+set x $ac_cv_host
-+shift
-+host_cpu=$1
-+host_vendor=$2
-+shift; shift
-+# Remember, the first character of IFS is used to create $*,
-+# except with old shells:
-+host_os=$*
-+IFS=$ac_save_IFS
-+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-
-@@ -3147,8 +3618,8 @@ ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
- ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
--echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
--echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
- CPP=
-@@ -3182,24 +3653,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- #endif
- Syntax error
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- :
- else
- echo "$as_me: failed program was:" >&5
-@@ -3208,9 +3677,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
- # Broken: fails on valid input.
- continue
- fi
-+
- rm -f conftest.err conftest.$ac_ext
-
-- # OK, works on sane cases. Now check whether non-existent headers
-+ # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
-@@ -3220,24 +3690,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- # Broken: success on invalid input.
- continue
- else
-@@ -3248,6 +3716,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
- ac_preproc_ok=:
- break
- fi
-+
- rm -f conftest.err conftest.$ac_ext
-
- done
-@@ -3265,8 +3734,8 @@ fi
- else
- ac_cv_prog_CPP=$CPP
- fi
--echo "$as_me:$LINENO: result: $CPP" >&5
--echo "${ECHO_T}$CPP" >&6
-+{ echo "$as_me:$LINENO: result: $CPP" >&5
-+echo "${ECHO_T}$CPP" >&6; }
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-@@ -3289,24 +3758,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- #endif
- Syntax error
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- :
- else
- echo "$as_me: failed program was:" >&5
-@@ -3315,9 +3782,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
- # Broken: fails on valid input.
- continue
- fi
-+
- rm -f conftest.err conftest.$ac_ext
-
-- # OK, works on sane cases. Now check whether non-existent headers
-+ # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
-@@ -3327,24 +3795,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <ac_nonexistent.h>
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- # Broken: success on invalid input.
- continue
- else
-@@ -3355,6 +3821,7 @@ sed 's/^/| /' conftest.$ac_ext >&5
- ac_preproc_ok=:
- break
- fi
-+
- rm -f conftest.err conftest.$ac_ext
-
- done
-@@ -3377,23 +3844,170 @@ ac_link='$CC -o conftest$ac_exeext $CFLA
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
--echo "$as_me:$LINENO: checking for egrep" >&5
--echo $ECHO_N "checking for egrep... $ECHO_C" >&6
--if test "${ac_cv_prog_egrep+set}" = set; then
-+{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
-+echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
-+if test "${ac_cv_path_GREP+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-- then ac_cv_prog_egrep='grep -E'
-- else ac_cv_prog_egrep='egrep'
-+ # Extract the first word of "grep ggrep" to use in msg output
-+if test -z "$GREP"; then
-+set dummy grep ggrep; ac_prog_name=$2
-+if test "${ac_cv_path_GREP+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_path_GREP_found=false
-+# Loop through the user's path and test for each of PROGNAME-LIST
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_prog in grep ggrep; do
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-+ # Check for GNU ac_path_GREP and select it if it is found.
-+ # Check for GNU $ac_path_GREP
-+case `"$ac_path_GREP" --version 2>&1` in
-+*GNU*)
-+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-+*)
-+ ac_count=0
-+ echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-+ while :
-+ do
-+ cat "conftest.in" "conftest.in" >"conftest.tmp"
-+ mv "conftest.tmp" "conftest.in"
-+ cp "conftest.in" "conftest.nl"
-+ echo 'GREP' >> "conftest.nl"
-+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-+ ac_count=`expr $ac_count + 1`
-+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
-+ # Best one so far, save it but keep looking for a better one
-+ ac_cv_path_GREP="$ac_path_GREP"
-+ ac_path_GREP_max=$ac_count
- fi
-+ # 10*(2^10) chars as input seems more than enough
-+ test $ac_count -gt 10 && break
-+ done
-+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-+esac
-+
-+
-+ $ac_path_GREP_found && break 3
-+ done
-+done
-+
-+done
-+IFS=$as_save_IFS
-+
-+
- fi
--echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
--echo "${ECHO_T}$ac_cv_prog_egrep" >&6
-- EGREP=$ac_cv_prog_egrep
-
-+GREP="$ac_cv_path_GREP"
-+if test -z "$GREP"; then
-+ { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-
--echo "$as_me:$LINENO: checking for ANSI C header files" >&5
--echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-+else
-+ ac_cv_path_GREP=$GREP
-+fi
-+
-+
-+fi
-+{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-+echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
-+ GREP="$ac_cv_path_GREP"
-+
-+
-+{ echo "$as_me:$LINENO: checking for egrep" >&5
-+echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
-+if test "${ac_cv_path_EGREP+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-+ then ac_cv_path_EGREP="$GREP -E"
-+ else
-+ # Extract the first word of "egrep" to use in msg output
-+if test -z "$EGREP"; then
-+set dummy egrep; ac_prog_name=$2
-+if test "${ac_cv_path_EGREP+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_path_EGREP_found=false
-+# Loop through the user's path and test for each of PROGNAME-LIST
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_prog in egrep; do
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-+ # Check for GNU ac_path_EGREP and select it if it is found.
-+ # Check for GNU $ac_path_EGREP
-+case `"$ac_path_EGREP" --version 2>&1` in
-+*GNU*)
-+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-+*)
-+ ac_count=0
-+ echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-+ while :
-+ do
-+ cat "conftest.in" "conftest.in" >"conftest.tmp"
-+ mv "conftest.tmp" "conftest.in"
-+ cp "conftest.in" "conftest.nl"
-+ echo 'EGREP' >> "conftest.nl"
-+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-+ ac_count=`expr $ac_count + 1`
-+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-+ # Best one so far, save it but keep looking for a better one
-+ ac_cv_path_EGREP="$ac_path_EGREP"
-+ ac_path_EGREP_max=$ac_count
-+ fi
-+ # 10*(2^10) chars as input seems more than enough
-+ test $ac_count -gt 10 && break
-+ done
-+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-+esac
-+
-+
-+ $ac_path_EGREP_found && break 3
-+ done
-+done
-+
-+done
-+IFS=$as_save_IFS
-+
-+
-+fi
-+
-+EGREP="$ac_cv_path_EGREP"
-+if test -z "$EGREP"; then
-+ { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-+
-+else
-+ ac_cv_path_EGREP=$EGREP
-+fi
-+
-+
-+ fi
-+fi
-+{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-+echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
-+ EGREP="$ac_cv_path_EGREP"
-+
-+
-+{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
- if test "${ac_cv_header_stdc+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -3417,35 +4031,31 @@ main ()
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_cv_header_stdc=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_cv_header_stdc=no
-+ ac_cv_header_stdc=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
- if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-@@ -3501,6 +4111,7 @@ cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <ctype.h>
-+#include <stdlib.h>
- #if ((' ' & 0x0FF) == 0x020)
- # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
- # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-@@ -3520,18 +4131,27 @@ main ()
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
-- exit(2);
-- exit (0);
-+ return 2;
-+ return 0;
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-+ { (case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-@@ -3544,12 +4164,14 @@ sed 's/^/| /' conftest.$ac_ext >&5
- ( exit $ac_status )
- ac_cv_header_stdc=no
- fi
--rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
-+
-+
- fi
- fi
--echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
--echo "${ECHO_T}$ac_cv_header_stdc" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-+echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
- if test $ac_cv_header_stdc = yes; then
-
- cat >>confdefs.h <<\_ACEOF
-@@ -3572,9 +4194,9 @@ for ac_header in sys/types.h sys/stat.h
- inttypes.h stdint.h unistd.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
-@@ -3588,38 +4210,35 @@ $ac_includes_default
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- eval "$as_ac_Header=yes"
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--eval "$as_ac_Header=no"
-+ eval "$as_ac_Header=no"
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
- #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-@@ -3651,18 +4270,19 @@ done
- for ac_header in ctype.h errno.h arpa/inet.h netdb.h netinet/in.h netinet/in_systm.h limits.h sys/poll.h regex.h signal.h stdlib.h stdio.h string.h sys/param.h sys/socket.h sys/time.h unistd.h sys/utsname.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- else
- # Is the header compilable?
--echo "$as_me:$LINENO: checking $ac_header usability" >&5
--echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -3673,41 +4293,37 @@ $ac_includes_default
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_header_compiler=no
-+ ac_header_compiler=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6; }
-
- # Is the header present?
--echo "$as_me:$LINENO: checking $ac_header presence" >&5
--echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -3716,24 +4332,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- ac_header_preproc=yes
- else
- echo "$as_me: failed program was:" >&5
-@@ -3741,9 +4355,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
- fi
-+
- rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
-+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6; }
-
- # So? What about this header?
- case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-@@ -3767,25 +4382,24 @@ echo "$as_me: WARNING: $ac_header: s
- echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
- echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-- (
-- cat <<\_ASBOX
-+ ( cat <<\_ASBOX
- ## ------------------------------ ##
- ## Report this to nils@sipsak.org ##
- ## ------------------------------ ##
- _ASBOX
-- ) |
-- sed "s/^/$as_me: WARNING: /" >&2
-+ ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
- esac
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- eval "$as_ac_Header=\$ac_header_preproc"
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
-
- fi
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
-@@ -3805,18 +4419,19 @@ done
- for ac_header in getopt.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- else
- # Is the header compilable?
--echo "$as_me:$LINENO: checking $ac_header usability" >&5
--echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -3827,41 +4442,37 @@ $ac_includes_default
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_header_compiler=no
-+ ac_header_compiler=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6; }
-
- # Is the header present?
--echo "$as_me:$LINENO: checking $ac_header presence" >&5
--echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -3870,24 +4481,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- ac_header_preproc=yes
- else
- echo "$as_me: failed program was:" >&5
-@@ -3895,9 +4504,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
- fi
-+
- rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
-+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6; }
-
- # So? What about this header?
- case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-@@ -3921,25 +4531,24 @@ echo "$as_me: WARNING: $ac_header: s
- echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
- echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-- (
-- cat <<\_ASBOX
-+ ( cat <<\_ASBOX
- ## ------------------------------ ##
- ## Report this to nils@sipsak.org ##
- ## ------------------------------ ##
- _ASBOX
-- ) |
-- sed "s/^/$as_me: WARNING: /" >&2
-+ ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
- esac
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- eval "$as_ac_Header=\$ac_header_preproc"
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
-
- fi
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
-@@ -3951,8 +4560,8 @@ fi
-
- done
-
--echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
--echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
-+echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; }
- if test "${ac_cv_header_sys_wait_h+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -3965,7 +4574,7 @@ cat >>conftest.$ac_ext <<_ACEOF
- #include <sys/types.h>
- #include <sys/wait.h>
- #ifndef WEXITSTATUS
--# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
-+# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
- #endif
- #ifndef WIFEXITED
- # define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-@@ -3982,38 +4591,34 @@ main ()
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_cv_header_sys_wait_h=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_cv_header_sys_wait_h=no
-+ ac_cv_header_sys_wait_h=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
--echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
-+echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; }
- if test $ac_cv_header_sys_wait_h = yes; then
-
- cat >>confdefs.h <<\_ACEOF
-@@ -4022,8 +4627,8 @@ _ACEOF
-
- fi
-
--echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
--echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
-+echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; }
- if test "${ac_cv_header_time+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -4047,38 +4652,34 @@ return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_cv_header_time=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_cv_header_time=no
-+ ac_cv_header_time=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
--echo "${ECHO_T}$ac_cv_header_time" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
-+echo "${ECHO_T}$ac_cv_header_time" >&6; }
- if test $ac_cv_header_time = yes; then
-
- cat >>confdefs.h <<\_ACEOF
-@@ -4094,9 +4695,9 @@ fi
- for ac_header in netinet/ip.h netinet/udp.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
-@@ -4115,38 +4716,35 @@ cat >>conftest.$ac_ext <<_ACEOF
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- eval "$as_ac_Header=yes"
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--eval "$as_ac_Header=no"
-+ eval "$as_ac_Header=no"
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
- #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-@@ -4162,9 +4760,9 @@ done
- for ac_header in netinet/ip_icmp.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
-@@ -4186,38 +4784,35 @@ cat >>conftest.$ac_ext <<_ACEOF
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- eval "$as_ac_Header=yes"
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--eval "$as_ac_Header=no"
-+ eval "$as_ac_Header=no"
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
- #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-@@ -4232,18 +4827,19 @@ done
- for ac_header in cygwin/icmp.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- else
- # Is the header compilable?
--echo "$as_me:$LINENO: checking $ac_header usability" >&5
--echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -4254,41 +4850,37 @@ $ac_includes_default
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_header_compiler=no
-+ ac_header_compiler=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6; }
-
- # Is the header present?
--echo "$as_me:$LINENO: checking $ac_header presence" >&5
--echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -4297,24 +4889,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- ac_header_preproc=yes
- else
- echo "$as_me: failed program was:" >&5
-@@ -4322,9 +4912,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
- fi
-+
- rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
-+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6; }
-
- # So? What about this header?
- case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-@@ -4348,25 +4939,24 @@ echo "$as_me: WARNING: $ac_header: s
- echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
- echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-- (
-- cat <<\_ASBOX
-+ ( cat <<\_ASBOX
- ## ------------------------------ ##
- ## Report this to nils@sipsak.org ##
- ## ------------------------------ ##
- _ASBOX
-- ) |
-- sed "s/^/$as_me: WARNING: /" >&2
-+ ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
- esac
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- eval "$as_ac_Header=\$ac_header_preproc"
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
-
- fi
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
-@@ -4380,8 +4970,8 @@ done
-
-
- # Checks for typedefs, structures, and compiler characteristics.
--echo "$as_me:$LINENO: checking for size_t" >&5
--echo $ECHO_N "checking for size_t... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for size_t" >&5
-+echo $ECHO_N "checking for size_t... $ECHO_C" >&6; }
- if test "${ac_cv_type_size_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -4392,62 +4982,59 @@ cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- $ac_includes_default
-+typedef size_t ac__type_new_;
- int
- main ()
- {
--if ((size_t *) 0)
-+if ((ac__type_new_ *) 0)
- return 0;
--if (sizeof (size_t))
-+if (sizeof (ac__type_new_))
- return 0;
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_cv_type_size_t=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_cv_type_size_t=no
-+ ac_cv_type_size_t=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
--echo "${ECHO_T}$ac_cv_type_size_t" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-+echo "${ECHO_T}$ac_cv_type_size_t" >&6; }
- if test $ac_cv_type_size_t = yes; then
- :
- else
-
- cat >>confdefs.h <<_ACEOF
--#define size_t unsigned
-+#define size_t unsigned int
- _ACEOF
-
- fi
-
--echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
--echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
-+echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; }
- if test "${ac_cv_header_time+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -4471,38 +5058,34 @@ return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_cv_header_time=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_cv_header_time=no
-+ ac_cv_header_time=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
--echo "${ECHO_T}$ac_cv_header_time" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
-+echo "${ECHO_T}$ac_cv_header_time" >&6; }
- if test $ac_cv_header_time = yes; then
-
- cat >>confdefs.h <<\_ACEOF
-@@ -4517,18 +5100,19 @@ fi
- for ac_header in stdlib.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- else
- # Is the header compilable?
--echo "$as_me:$LINENO: checking $ac_header usability" >&5
--echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -4539,41 +5123,37 @@ $ac_includes_default
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_header_compiler=no
-+ ac_header_compiler=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6; }
-
- # Is the header present?
--echo "$as_me:$LINENO: checking $ac_header presence" >&5
--echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -4582,24 +5162,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- ac_header_preproc=yes
- else
- echo "$as_me: failed program was:" >&5
-@@ -4607,9 +5185,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
- fi
-+
- rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
-+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6; }
-
- # So? What about this header?
- case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-@@ -4633,25 +5212,24 @@ echo "$as_me: WARNING: $ac_header: s
- echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
- echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-- (
-- cat <<\_ASBOX
-+ ( cat <<\_ASBOX
- ## ------------------------------ ##
- ## Report this to nils@sipsak.org ##
- ## ------------------------------ ##
- _ASBOX
-- ) |
-- sed "s/^/$as_me: WARNING: /" >&2
-+ ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
- esac
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- eval "$as_ac_Header=\$ac_header_preproc"
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
-
- fi
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
-@@ -4663,8 +5241,8 @@ fi
-
- done
-
--echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5
--echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5
-+echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; }
- if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -4677,7 +5255,7 @@ _ACEOF
- cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
--#if STDC_HEADERS || HAVE_STDLIB_H
-+#if defined STDC_HEADERS || defined HAVE_STDLIB_H
- # include <stdlib.h>
- #else
- char *malloc ();
-@@ -4686,19 +5264,28 @@ char *malloc ();
- int
- main ()
- {
--exit (malloc (0) ? 0 : 1);
-+return ! malloc (0);
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-+ { (case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-@@ -4711,11 +5298,13 @@ sed 's/^/| /' conftest.$ac_ext >&5
- ( exit $ac_status )
- ac_cv_func_malloc_0_nonnull=no
- fi
--rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
-+
-+
- fi
--echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5
--echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5
-+echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; }
- if test $ac_cv_func_malloc_0_nonnull = yes; then
-
- cat >>confdefs.h <<\_ACEOF
-@@ -4727,12 +5316,10 @@ else
- #define HAVE_MALLOC 0
- _ACEOF
-
-- case $LIBOBJS in
-- "malloc.$ac_objext" | \
-- *" malloc.$ac_objext" | \
-- "malloc.$ac_objext "* | \
-+ case " $LIBOBJS " in
- *" malloc.$ac_objext "* ) ;;
-- *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;;
-+ *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
-+ ;;
- esac
-
-
-@@ -4749,18 +5336,19 @@ fi
- for ac_header in sys/select.h sys/socket.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- else
- # Is the header compilable?
--echo "$as_me:$LINENO: checking $ac_header usability" >&5
--echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -4771,41 +5359,37 @@ $ac_includes_default
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_header_compiler=no
-+ ac_header_compiler=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6; }
-
- # Is the header present?
--echo "$as_me:$LINENO: checking $ac_header presence" >&5
--echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -4814,24 +5398,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- ac_header_preproc=yes
- else
- echo "$as_me: failed program was:" >&5
-@@ -4839,9 +5421,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
- fi
-+
- rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
-+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6; }
-
- # So? What about this header?
- case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-@@ -4865,25 +5448,24 @@ echo "$as_me: WARNING: $ac_header: s
- echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
- echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-- (
-- cat <<\_ASBOX
-+ ( cat <<\_ASBOX
- ## ------------------------------ ##
- ## Report this to nils@sipsak.org ##
- ## ------------------------------ ##
- _ASBOX
-- ) |
-- sed "s/^/$as_me: WARNING: /" >&2
-+ ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
- esac
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- eval "$as_ac_Header=\$ac_header_preproc"
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
-
- fi
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
-@@ -4895,13 +5477,13 @@ fi
-
- done
-
--echo "$as_me:$LINENO: checking types of arguments for select" >&5
--echo $ECHO_N "checking types of arguments for select... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking types of arguments for select" >&5
-+echo $ECHO_N "checking types of arguments for select... $ECHO_C" >&6; }
- if test "${ac_cv_func_select_args+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- for ac_arg234 in 'fd_set *' 'int *' 'void *'; do
-- for ac_arg1 in 'int' 'size_t' 'unsigned long' 'unsigned'; do
-+ for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do
- for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
-@@ -4910,10 +5492,10 @@ cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- $ac_includes_default
--#if HAVE_SYS_SELECT_H
-+#ifdef HAVE_SYS_SELECT_H
- # include <sys/select.h>
- #endif
--#if HAVE_SYS_SOCKET_H
-+#ifdef HAVE_SYS_SOCKET_H
- # include <sys/socket.h>
- #endif
-
-@@ -4928,34 +5510,31 @@ extern int select ($ac_arg1,
- }
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_cv_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
-+
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
- done
- done
-@@ -4963,8 +5542,8 @@ done
- : ${ac_cv_func_select_args='int,int *,struct timeval *'}
-
- fi
--echo "$as_me:$LINENO: result: $ac_cv_func_select_args" >&5
--echo "${ECHO_T}$ac_cv_func_select_args" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_func_select_args" >&5
-+echo "${ECHO_T}$ac_cv_func_select_args" >&6; }
- ac_save_IFS=$IFS; IFS=','
- set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'`
- IFS=$ac_save_IFS
-@@ -5005,9 +5584,9 @@ rm -f conftest*
- for ac_func in getchar gethostbyname gethostname getopt getpid gettimeofday memset ntohs regcomp select socket strchr strcmp strstr strtol uname
- do
- as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:$LINENO: checking for $ac_func" >&5
--echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
--if eval "test \"\${$as_ac_var+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
-@@ -5033,68 +5612,60 @@ cat >>conftest.$ac_ext <<_ACEOF
-
- #undef $ac_func
-
--/* Override any gcc2 internal prototype to avoid an error. */
-+/* Override any GCC internal prototype to avoid an error.
-+ Use char because int might match the return type of a GCC
-+ builtin and then its argument prototype would still apply. */
- #ifdef __cplusplus
- extern "C"
--{
- #endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
- char $ac_func ();
- /* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
--#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+#if defined __stub_$ac_func || defined __stub___$ac_func
- choke me
--#else
--char (*f) () = $ac_func;
--#endif
--#ifdef __cplusplus
--}
- #endif
-
- int
- main ()
- {
--return f != $ac_func;
-+return $ac_func ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>conftest.er1
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest$ac_exeext &&
-+ $as_test_x conftest$ac_exeext; then
- eval "$as_ac_var=yes"
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--eval "$as_ac_var=no"
-+ eval "$as_ac_var=no"
- fi
--rm -f conftest.err conftest.$ac_objext \
-+
-+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_var'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
- #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-@@ -5116,9 +5687,9 @@ done
- for ac_func in calloc getdomainname getopt_long inet_ntop strncasecmp strcasestr
- do
- as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--echo "$as_me:$LINENO: checking for $ac_func" >&5
--echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
--if eval "test \"\${$as_ac_var+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
-+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
-+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- cat >conftest.$ac_ext <<_ACEOF
-@@ -5144,68 +5715,60 @@ cat >>conftest.$ac_ext <<_ACEOF
-
- #undef $ac_func
-
--/* Override any gcc2 internal prototype to avoid an error. */
-+/* Override any GCC internal prototype to avoid an error.
-+ Use char because int might match the return type of a GCC
-+ builtin and then its argument prototype would still apply. */
- #ifdef __cplusplus
- extern "C"
--{
- #endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
- char $ac_func ();
- /* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
--#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-+#if defined __stub_$ac_func || defined __stub___$ac_func
- choke me
--#else
--char (*f) () = $ac_func;
--#endif
--#ifdef __cplusplus
--}
- #endif
-
- int
- main ()
- {
--return f != $ac_func;
-+return $ac_func ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>conftest.er1
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest$ac_exeext &&
-+ $as_test_x conftest$ac_exeext; then
- eval "$as_ac_var=yes"
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--eval "$as_ac_var=no"
-+ eval "$as_ac_var=no"
- fi
--rm -f conftest.err conftest.$ac_objext \
-+
-+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_var'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
- #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-@@ -5216,30 +5779,30 @@ done
-
-
-
--echo "$as_me:$LINENO: checking disabled gnutls" >&5
--echo $ECHO_N "checking disabled gnutls... $ECHO_C" >&6
--# Check whether --enable-gnutls or --disable-gnutls was given.
-+{ echo "$as_me:$LINENO: checking disabled gnutls" >&5
-+echo $ECHO_N "checking disabled gnutls... $ECHO_C" >&6; }
-+# Check whether --enable-gnutls was given.
- if test "${enable_gnutls+set}" = set; then
-- enableval="$enable_gnutls"
--
-- echo "$as_me:$LINENO: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-+ enableval=$enable_gnutls;
-+ { echo "$as_me:$LINENO: result: yes" >&5
-+echo "${ECHO_T}yes" >&6; }
- DISABLE_GNUTLS=yes
-
-
- else
-- echo "$as_me:$LINENO: result: not requested" >&5
--echo "${ECHO_T}not requested" >&6
-+ { echo "$as_me:$LINENO: result: not requested" >&5
-+echo "${ECHO_T}not requested" >&6; }
-
--fi;
-+fi
-
--# Check whether --with-libgnutls-prefix or --without-libgnutls-prefix was given.
-+
-+# Check whether --with-libgnutls-prefix was given.
- if test "${with_libgnutls_prefix+set}" = set; then
-- withval="$with_libgnutls_prefix"
-- libgnutls_config_prefix="$withval"
-+ withval=$with_libgnutls_prefix; libgnutls_config_prefix="$withval"
- else
- libgnutls_config_prefix=""
--fi;
-+fi
-+
-
- if test x$libgnutls_config_prefix != x ; then
- if test x${LIBGNUTLS_CONFIG+set} != xset ; then
-@@ -5250,8 +5813,8 @@ fi;
- if test "$DISABLE_GNUTLS" != "yes"; then
- # Extract the first word of "libgnutls-config", so it can be a program name with args.
- set dummy libgnutls-config; ac_word=$2
--echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
- if test "${ac_cv_path_LIBGNUTLS_CONFIG+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -5266,32 +5829,33 @@ do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
-- if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_LIBGNUTLS_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
- done
- done
-+IFS=$as_save_IFS
-
- test -z "$ac_cv_path_LIBGNUTLS_CONFIG" && ac_cv_path_LIBGNUTLS_CONFIG="no"
- ;;
- esac
- fi
- LIBGNUTLS_CONFIG=$ac_cv_path_LIBGNUTLS_CONFIG
--
- if test -n "$LIBGNUTLS_CONFIG"; then
-- echo "$as_me:$LINENO: result: $LIBGNUTLS_CONFIG" >&5
--echo "${ECHO_T}$LIBGNUTLS_CONFIG" >&6
-+ { echo "$as_me:$LINENO: result: $LIBGNUTLS_CONFIG" >&5
-+echo "${ECHO_T}$LIBGNUTLS_CONFIG" >&6; }
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- fi
-
-+
- fi
- min_libgnutls_version=1.0.0
-- echo "$as_me:$LINENO: checking for libgnutls - version >= $min_libgnutls_version" >&5
--echo $ECHO_N "checking for libgnutls - version >= $min_libgnutls_version... $ECHO_C" >&6
-+ { echo "$as_me:$LINENO: checking for libgnutls - version >= $min_libgnutls_version" >&5
-+echo $ECHO_N "checking for libgnutls - version >= $min_libgnutls_version... $ECHO_C" >&6; }
- no_libgnutls=""
- if test "$DISABLE_GNUTLS" = "yes"; then
- LIBGNUTLS_CONFIG=no
-@@ -5375,13 +5939,22 @@ main ()
-
- _ACEOF
- rm -f conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>&5
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-+ { (case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_try") 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
-@@ -5394,15 +5967,17 @@ sed 's/^/| /' conftest.$ac_ext >&5
- ( exit $ac_status )
- no_libgnutls=yes
- fi
--rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
-+
-+
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
- fi
-
- if test "x$no_libgnutls" = x ; then
-- echo "$as_me:$LINENO: result: yes" >&5
--echo "${ECHO_T}yes" >&6
-+ { echo "$as_me:$LINENO: result: yes" >&5
-+echo "${ECHO_T}yes" >&6; }
-
- cat >>confdefs.h <<\_ACEOF
- #define HAVE_GNUTLS 1
-@@ -5415,8 +5990,8 @@ _ACEOF
- if test -f conf.libgnutlstest ; then
- :
- else
-- echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6
-+ { echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6; }
- fi
- if test "$LIBGNUTLS_CONFIG" != "no" ; then
- if test -f conf.libgnutlstest ; then
-@@ -5446,27 +6021,23 @@ main ()
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>conftest.er1
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest$ac_exeext &&
-+ $as_test_x conftest$ac_exeext; then
- echo "*** The test program compiled, but did not run. This usually means"
- echo "*** that the run-time linker is not finding LIBGNUTLS or finding the wrong"
- echo "*** version of LIBGNUTLS. If it is not finding LIBGNUTLS, you'll need to set your"
-@@ -5481,12 +6052,13 @@ else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
-- echo "*** The test program failed to compile or link. See the file config.log for the"
-+ echo "*** The test program failed to compile or link. See the file config.log for the"
- echo "*** exact error that occured. This usually means LIBGNUTLS was incorrectly installed"
- echo "*** or that you have moved LIBGNUTLS since it was installed. In the latter case, you"
- echo "*** may want to edit the libgnutls-config script: $LIBGNUTLS_CONFIG"
- fi
--rm -f conftest.err conftest.$ac_objext \
-+
-+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- CFLAGS="$ac_save_CFLAGS"
- LIBS="$ac_save_LIBS"
-@@ -5506,18 +6078,19 @@ if test "X$LIBGNUTLS_LIBS" == "X";then
- for ac_header in openssl/md5.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- else
- # Is the header compilable?
--echo "$as_me:$LINENO: checking $ac_header usability" >&5
--echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -5528,41 +6101,37 @@ $ac_includes_default
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_header_compiler=no
-+ ac_header_compiler=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6; }
-
- # Is the header present?
--echo "$as_me:$LINENO: checking $ac_header presence" >&5
--echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -5571,24 +6140,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- ac_header_preproc=yes
- else
- echo "$as_me: failed program was:" >&5
-@@ -5596,9 +6163,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
- fi
-+
- rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
-+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6; }
-
- # So? What about this header?
- case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-@@ -5622,33 +6190,32 @@ echo "$as_me: WARNING: $ac_header: s
- echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
- echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-- (
-- cat <<\_ASBOX
-+ ( cat <<\_ASBOX
- ## ------------------------------ ##
- ## Report this to nils@sipsak.org ##
- ## ------------------------------ ##
- _ASBOX
-- ) |
-- sed "s/^/$as_me: WARNING: /" >&2
-+ ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
- esac
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- eval "$as_ac_Header=\$ac_header_preproc"
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
-
- fi
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
- #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
-- echo "$as_me:$LINENO: checking for MD5_Init in -lcrypto" >&5
--echo $ECHO_N "checking for MD5_Init in -lcrypto... $ECHO_C" >&6
-+ { echo "$as_me:$LINENO: checking for MD5_Init in -lcrypto" >&5
-+echo $ECHO_N "checking for MD5_Init in -lcrypto... $ECHO_C" >&6; }
- if test "${ac_cv_lib_crypto_MD5_Init+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -5661,56 +6228,53 @@ cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
-
--/* Override any gcc2 internal prototype to avoid an error. */
-+/* Override any GCC internal prototype to avoid an error.
-+ Use char because int might match the return type of a GCC
-+ builtin and then its argument prototype would still apply. */
- #ifdef __cplusplus
- extern "C"
- #endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
- char MD5_Init ();
- int
- main ()
- {
--MD5_Init ();
-+return MD5_Init ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>conftest.er1
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest$ac_exeext &&
-+ $as_test_x conftest$ac_exeext; then
- ac_cv_lib_crypto_MD5_Init=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_cv_lib_crypto_MD5_Init=no
-+ ac_cv_lib_crypto_MD5_Init=no
- fi
--rm -f conftest.err conftest.$ac_objext \
-+
-+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_MD5_Init" >&5
--echo "${ECHO_T}$ac_cv_lib_crypto_MD5_Init" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_MD5_Init" >&5
-+echo "${ECHO_T}$ac_cv_lib_crypto_MD5_Init" >&6; }
- if test $ac_cv_lib_crypto_MD5_Init = yes; then
-
- cat >>confdefs.h <<\_ACEOF
-@@ -5732,18 +6296,19 @@ fi
- for ac_header in openssl/sha.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- else
- # Is the header compilable?
--echo "$as_me:$LINENO: checking $ac_header usability" >&5
--echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -5754,41 +6319,37 @@ $ac_includes_default
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_header_compiler=no
-+ ac_header_compiler=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6; }
-
- # Is the header present?
--echo "$as_me:$LINENO: checking $ac_header presence" >&5
--echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -5797,24 +6358,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- ac_header_preproc=yes
- else
- echo "$as_me: failed program was:" >&5
-@@ -5822,9 +6381,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
- fi
-+
- rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
-+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6; }
-
- # So? What about this header?
- case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-@@ -5848,33 +6408,32 @@ echo "$as_me: WARNING: $ac_header: s
- echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
- echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-- (
-- cat <<\_ASBOX
-+ ( cat <<\_ASBOX
- ## ------------------------------ ##
- ## Report this to nils@sipsak.org ##
- ## ------------------------------ ##
- _ASBOX
-- ) |
-- sed "s/^/$as_me: WARNING: /" >&2
-+ ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
- esac
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- eval "$as_ac_Header=\$ac_header_preproc"
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
-
- fi
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<_ACEOF
- #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
-- echo "$as_me:$LINENO: checking for SHA1_Init in -lcrypto" >&5
--echo $ECHO_N "checking for SHA1_Init in -lcrypto... $ECHO_C" >&6
-+ { echo "$as_me:$LINENO: checking for SHA1_Init in -lcrypto" >&5
-+echo $ECHO_N "checking for SHA1_Init in -lcrypto... $ECHO_C" >&6; }
- if test "${ac_cv_lib_crypto_SHA1_Init+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -5887,56 +6446,53 @@ cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
-
--/* Override any gcc2 internal prototype to avoid an error. */
-+/* Override any GCC internal prototype to avoid an error.
-+ Use char because int might match the return type of a GCC
-+ builtin and then its argument prototype would still apply. */
- #ifdef __cplusplus
- extern "C"
- #endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
- char SHA1_Init ();
- int
- main ()
- {
--SHA1_Init ();
-+return SHA1_Init ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>conftest.er1
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest$ac_exeext &&
-+ $as_test_x conftest$ac_exeext; then
- ac_cv_lib_crypto_SHA1_Init=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_cv_lib_crypto_SHA1_Init=no
-+ ac_cv_lib_crypto_SHA1_Init=no
- fi
--rm -f conftest.err conftest.$ac_objext \
-+
-+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_SHA1_Init" >&5
--echo "${ECHO_T}$ac_cv_lib_crypto_SHA1_Init" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_lib_crypto_SHA1_Init" >&5
-+echo "${ECHO_T}$ac_cv_lib_crypto_SHA1_Init" >&6; }
- if test $ac_cv_lib_crypto_SHA1_Init = yes; then
-
- cat >>confdefs.h <<\_ACEOF
-@@ -5954,8 +6510,8 @@ done
-
-
-
-- echo "$as_me:$LINENO: checking for ares_version.h" >&5
--echo $ECHO_N "checking for ares_version.h... $ECHO_C" >&6
-+ { echo "$as_me:$LINENO: checking for ares_version.h" >&5
-+echo $ECHO_N "checking for ares_version.h... $ECHO_C" >&6; }
-
- ares_incdir=NONE
- ares_libdir=NONE
-@@ -5973,14 +6529,14 @@ echo $ECHO_N "checking for ares_version.
- done
-
- if test "$ares_incdir" = "NONE"; then
-- echo "$as_me:$LINENO: result: not found" >&5
--echo "${ECHO_T}not found" >&6
-+ { echo "$as_me:$LINENO: result: not found" >&5
-+echo "${ECHO_T}not found" >&6; }
- else
-- echo "$as_me:$LINENO: result: found at $ares_incdir" >&5
--echo "${ECHO_T}found at $ares_incdir" >&6
-+ { echo "$as_me:$LINENO: result: found at $ares_incdir" >&5
-+echo "${ECHO_T}found at $ares_incdir" >&6; }
-
-- echo "$as_me:$LINENO: checking for c-ares lib" >&5
--echo $ECHO_N "checking for c-ares lib... $ECHO_C" >&6
-+ { echo "$as_me:$LINENO: checking for c-ares lib" >&5
-+echo $ECHO_N "checking for c-ares lib... $ECHO_C" >&6; }
-
- for dir in $ares_libdirs; do
- for extension in $ares_libexten; do
-@@ -5997,15 +6553,15 @@ echo $ECHO_N "checking for c-ares lib...
- done
-
- if test "$ares_libdir" = "NONE"; then
-- echo "$as_me:$LINENO: result: not found" >&5
--echo "${ECHO_T}not found" >&6
-+ { echo "$as_me:$LINENO: result: not found" >&5
-+echo "${ECHO_T}not found" >&6; }
- else
-- echo "$as_me:$LINENO: result: found at $ares_libdir" >&5
--echo "${ECHO_T}found at $ares_libdir" >&6
-+ { echo "$as_me:$LINENO: result: found at $ares_libdir" >&5
-+echo "${ECHO_T}found at $ares_libdir" >&6; }
- fi
-
-- echo "$as_me:$LINENO: checking for ares_version in -lcares" >&5
--echo $ECHO_N "checking for ares_version in -lcares... $ECHO_C" >&6
-+ { echo "$as_me:$LINENO: checking for ares_version in -lcares" >&5
-+echo $ECHO_N "checking for ares_version in -lcares... $ECHO_C" >&6; }
- if test "${ac_cv_lib_cares_ares_version+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -6018,56 +6574,53 @@ cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
-
--/* Override any gcc2 internal prototype to avoid an error. */
-+/* Override any GCC internal prototype to avoid an error.
-+ Use char because int might match the return type of a GCC
-+ builtin and then its argument prototype would still apply. */
- #ifdef __cplusplus
- extern "C"
- #endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
- char ares_version ();
- int
- main ()
- {
--ares_version ();
-+return ares_version ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>conftest.er1
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest$ac_exeext &&
-+ $as_test_x conftest$ac_exeext; then
- ac_cv_lib_cares_ares_version=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_cv_lib_cares_ares_version=no
-+ ac_cv_lib_cares_ares_version=no
- fi
--rm -f conftest.err conftest.$ac_objext \
-+
-+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:$LINENO: result: $ac_cv_lib_cares_ares_version" >&5
--echo "${ECHO_T}$ac_cv_lib_cares_ares_version" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_lib_cares_ares_version" >&5
-+echo "${ECHO_T}$ac_cv_lib_cares_ares_version" >&6; }
- if test $ac_cv_lib_cares_ares_version = yes; then
-
- cat >>confdefs.h <<\_ACEOF
-@@ -6085,8 +6638,8 @@ fi
-
- if test "X$SIPSAK_HAVE_ARES" == "X"; then
-
-- echo "$as_me:$LINENO: checking for ruli.h" >&5
--echo $ECHO_N "checking for ruli.h... $ECHO_C" >&6
-+ { echo "$as_me:$LINENO: checking for ruli.h" >&5
-+echo $ECHO_N "checking for ruli.h... $ECHO_C" >&6; }
-
- ruli_incdir=NONE
- ruli_libdir=NONE
-@@ -6103,14 +6656,14 @@ echo $ECHO_N "checking for ruli.h... $EC
- done
-
- if test "$ruli_incdir" = "NONE"; then
-- echo "$as_me:$LINENO: result: not found" >&5
--echo "${ECHO_T}not found" >&6
-+ { echo "$as_me:$LINENO: result: not found" >&5
-+echo "${ECHO_T}not found" >&6; }
- else
-- echo "$as_me:$LINENO: result: found at $ruli_incdir" >&5
--echo "${ECHO_T}found at $ruli_incdir" >&6
-+ { echo "$as_me:$LINENO: result: found at $ruli_incdir" >&5
-+echo "${ECHO_T}found at $ruli_incdir" >&6; }
-
-- echo "$as_me:$LINENO: checking for libruli" >&5
--echo $ECHO_N "checking for libruli... $ECHO_C" >&6
-+ { echo "$as_me:$LINENO: checking for libruli" >&5
-+echo $ECHO_N "checking for libruli... $ECHO_C" >&6; }
-
- for dir in $ruli_libdirs; do
- for extension in $ruli_libexten; do
-@@ -6126,15 +6679,15 @@ echo $ECHO_N "checking for libruli... $E
- done
-
- if test "$ruli_libdir" = "NONE"; then
-- echo "$as_me:$LINENO: result: not found" >&5
--echo "${ECHO_T}not found" >&6
-+ { echo "$as_me:$LINENO: result: not found" >&5
-+echo "${ECHO_T}not found" >&6; }
- else
-- echo "$as_me:$LINENO: result: found at $ruli_libdir" >&5
--echo "${ECHO_T}found at $ruli_libdir" >&6
-+ { echo "$as_me:$LINENO: result: found at $ruli_libdir" >&5
-+echo "${ECHO_T}found at $ruli_libdir" >&6; }
- fi
-
-- echo "$as_me:$LINENO: checking for ruli_sync_query in -lruli" >&5
--echo $ECHO_N "checking for ruli_sync_query in -lruli... $ECHO_C" >&6
-+ { echo "$as_me:$LINENO: checking for ruli_sync_query in -lruli" >&5
-+echo $ECHO_N "checking for ruli_sync_query in -lruli... $ECHO_C" >&6; }
- if test "${ac_cv_lib_ruli_ruli_sync_query+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-@@ -6147,56 +6700,53 @@ cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
-
--/* Override any gcc2 internal prototype to avoid an error. */
-+/* Override any GCC internal prototype to avoid an error.
-+ Use char because int might match the return type of a GCC
-+ builtin and then its argument prototype would still apply. */
- #ifdef __cplusplus
- extern "C"
- #endif
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
- char ruli_sync_query ();
- int
- main ()
- {
--ruli_sync_query ();
-+return ruli_sync_query ();
- ;
- return 0;
- }
- _ACEOF
- rm -f conftest.$ac_objext conftest$ac_exeext
--if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-- (eval $ac_link) 2>conftest.er1
-+if { (ac_try="$ac_link"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_link") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest$ac_exeext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest$ac_exeext &&
-+ $as_test_x conftest$ac_exeext; then
- ac_cv_lib_ruli_ruli_sync_query=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_cv_lib_ruli_ruli_sync_query=no
-+ ac_cv_lib_ruli_ruli_sync_query=no
- fi
--rm -f conftest.err conftest.$ac_objext \
-+
-+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
- conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--echo "$as_me:$LINENO: result: $ac_cv_lib_ruli_ruli_sync_query" >&5
--echo "${ECHO_T}$ac_cv_lib_ruli_ruli_sync_query" >&6
-+{ echo "$as_me:$LINENO: result: $ac_cv_lib_ruli_ruli_sync_query" >&5
-+echo "${ECHO_T}$ac_cv_lib_ruli_ruli_sync_query" >&6; }
- if test $ac_cv_lib_ruli_ruli_sync_query = yes; then
-
- cat >>confdefs.h <<\_ACEOF
-@@ -6215,18 +6765,19 @@ else
- for ac_header in arpa/nameser.h
- do
- as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-- echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-+ { echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
- else
- # Is the header compilable?
--echo "$as_me:$LINENO: checking $ac_header usability" >&5
--echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -6237,41 +6788,37 @@ $ac_includes_default
- #include <$ac_header>
- _ACEOF
- rm -f conftest.$ac_objext
--if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-- (eval $ac_compile) 2>conftest.er1
-+if { (ac_try="$ac_compile"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } &&
-- { ac_try='test -z "$ac_c_werror_flag"
-- || test ! -s conftest.err'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; } &&
-- { ac_try='test -s conftest.$ac_objext'
-- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-- (eval $ac_try) 2>&5
-- ac_status=$?
-- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); }; }; then
-+ (exit $ac_status); } && {
-+ test -z "$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
- else
- echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
-
--ac_header_compiler=no
-+ ac_header_compiler=no
- fi
--rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6; }
-
- # Is the header present?
--echo "$as_me:$LINENO: checking $ac_header presence" >&5
--echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h. */
- _ACEOF
-@@ -6280,24 +6827,22 @@ cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- #include <$ac_header>
- _ACEOF
--if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-- (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+if { (ac_try="$ac_cpp conftest.$ac_ext"
-+case "(($ac_try" in
-+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-+ *) ac_try_echo=$ac_try;;
-+esac
-+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
-- (exit $ac_status); } >/dev/null; then
-- if test -s conftest.err; then
-- ac_cpp_err=$ac_c_preproc_warn_flag
-- ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-- else
-- ac_cpp_err=
-- fi
--else
-- ac_cpp_err=yes
--fi
--if test -z "$ac_cpp_err"; then
-+ (exit $ac_status); } >/dev/null && {
-+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-+ test ! -s conftest.err
-+ }; then
- ac_header_preproc=yes
- else
- echo "$as_me: failed program was:" >&5
-@@ -6305,9 +6850,10 @@ sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
- fi
-+
- rm -f conftest.err conftest.$ac_ext
--echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
--echo "${ECHO_T}$ac_header_preproc" >&6
-+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6; }
-
- # So? What about this header?
- case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-@@ -6331,25 +6877,24 @@ echo "$as_me: WARNING: $ac_header: s
- echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
- echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-- (
-- cat <<\_ASBOX
-+ ( cat <<\_ASBOX
- ## ------------------------------ ##
- ## Report this to nils@sipsak.org ##
- ## ------------------------------ ##
- _ASBOX
-- ) |
-- sed "s/^/$as_me: WARNING: /" >&2
-+ ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
- esac
--echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
--if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- eval "$as_ac_Header=\$ac_header_preproc"
- fi
--echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
--echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+ac_res=`eval echo '${'$as_ac_Header'}'`
-+ { echo "$as_me:$LINENO: result: $ac_res" >&5
-+echo "${ECHO_T}$ac_res" >&6; }
-
- fi
- if test `eval echo '${'$as_ac_Header'}'` = yes; then
-@@ -6366,11 +6911,11 @@ fi
-
- # Check for T1 timer value
- def_timeout=500
-- # Check whether --enable-timeout or --disable-timeout was given.
-+ # Check whether --enable-timeout was given.
- if test "${enable_timeout+set}" = set; then
-- enableval="$enable_timeout"
-- def_timeout=$enableval
--fi;
-+ enableval=$enable_timeout; def_timeout=$enableval
-+fi
-+
- if test "X$def_timeout" = "Xno"; then
- # no timeout makes no sense
- def_timeout=500
-@@ -6382,7 +6927,7 @@ _ACEOF
-
-
-
-- ac_config_files="$ac_config_files Makefile"
-+ac_config_files="$ac_config_files Makefile"
-
- cat >confcache <<\_ACEOF
- # This file is a shell script that caches the results of configure
-@@ -6402,39 +6947,58 @@ _ACEOF
-
- # The following way of writing the cache mishandles newlines in values,
- # but we know of no workaround that is simple, portable, and efficient.
--# So, don't put newlines in cache variables' values.
-+# So, we kill variables containing newlines.
- # Ultrix sh set writes to stderr and can't be redirected directly,
- # and sets the high bit in the cache file unless we assign to the vars.
--{
-+(
-+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-+ eval ac_val=\$$ac_var
-+ case $ac_val in #(
-+ *${as_nl}*)
-+ case $ac_var in #(
-+ *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-+ esac
-+ case $ac_var in #(
-+ _ | IFS | as_nl) ;; #(
-+ *) $as_unset $ac_var ;;
-+ esac ;;
-+ esac
-+ done
-+
- (set) 2>&1 |
-- case `(ac_space=' '; set | grep ac_space) 2>&1` in
-- *ac_space=\ *)
-+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
-+ *${as_nl}ac_space=\ *)
- # `set' does not quote correctly, so add quotes (double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \).
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-- ;;
-+ ;; #(
- *)
- # `set' quotes correctly as required by POSIX, so do not add quotes.
-- sed -n \
-- "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
-- esac;
--} |
-+ esac |
-+ sort
-+) |
- sed '
-+ /^ac_cv_env_/b end
- t clear
-- : clear
-+ :clear
- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
- t end
-- /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-- : end' >>confcache
--if diff $cache_file confcache >/dev/null 2>&1; then :; else
-- if test -w $cache_file; then
-- test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-+ :end' >>confcache
-+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-+ if test -w "$cache_file"; then
-+ test "x$cache_file" != "x/dev/null" &&
-+ { echo "$as_me:$LINENO: updating cache $cache_file" >&5
-+echo "$as_me: updating cache $cache_file" >&6;}
- cat confcache >$cache_file
- else
-- echo "not updating unwritable cache $cache_file"
-+ { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-+echo "$as_me: not updating unwritable cache $cache_file" >&6;}
- fi
- fi
- rm -f confcache
-@@ -6443,32 +7007,18 @@ test "x$prefix" = xNONE && prefix=$ac_de
- # Let make expand exec_prefix.
- test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
--# VPATH may cause trouble with some makes, so we remove $(srcdir),
--# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
--# trailing colons and then remove the whole line if VPATH becomes empty
--# (actually we leave an empty line to preserve line numbers).
--if test "x$srcdir" = x.; then
-- ac_vpsub='/^[ ]*VPATH[ ]*=/{
--s/:*\$(srcdir):*/:/;
--s/:*\${srcdir}:*/:/;
--s/:*@srcdir@:*/:/;
--s/^\([^=]*=[ ]*\):*/\1/;
--s/:*$//;
--s/^[^=]*=[ ]*$//;
--}'
--fi
--
- DEFS=-DHAVE_CONFIG_H
-
- ac_libobjs=
- ac_ltlibobjs=
- for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
- # 1. Remove the extension, and $U if already installed.
-- ac_i=`echo "$ac_i" |
-- sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-- # 2. Add them.
-- ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-- ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-+ ac_i=`echo "$ac_i" | sed "$ac_script"`
-+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
-+ # will be set to the directory where LIBOBJS objects are built.
-+ ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-+ ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
- done
- LIBOBJS=$ac_libobjs
-
-@@ -6520,17 +7070,45 @@ cat >>$CONFIG_STATUS <<\_ACEOF
- ## M4sh Initialization. ##
- ## --------------------- ##
-
--# Be Bourne compatible
-+# Be more Bourne compatible
-+DUALCASE=1; export DUALCASE # for MKS sh
- if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
--elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-- set -o posix
-+ setopt NO_GLOB_SUBST
-+else
-+ case `(set -o) 2>/dev/null` in
-+ *posix*) set -o posix ;;
-+esac
-+
-+fi
-+
-+
-+
-+
-+# PATH needs CR
-+# Avoid depending upon Character Ranges.
-+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-+as_cr_digits='0123456789'
-+as_cr_alnum=$as_cr_Letters$as_cr_digits
-+
-+# The user is always right.
-+if test "${PATH_SEPARATOR+set}" != set; then
-+ echo "#! /bin/sh" >conf$$.sh
-+ echo "exit 0" >>conf$$.sh
-+ chmod +x conf$$.sh
-+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-+ PATH_SEPARATOR=';'
-+ else
-+ PATH_SEPARATOR=:
-+ fi
-+ rm -f conf$$.sh
- fi
--DUALCASE=1; export DUALCASE # for MKS sh
-
- # Support unset when possible.
- if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-@@ -6540,8 +7118,43 @@ else
- fi
-
-
-+# IFS
-+# We need space, tab and new line, in precisely that order. Quoting is
-+# there to prevent editors from complaining about space-tab.
-+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-+# splitting by setting IFS to empty value.)
-+as_nl='
-+'
-+IFS=" "" $as_nl"
-+
-+# Find who we are. Look in the path if we contain no directory separator.
-+case $0 in
-+ *[\\/]* ) as_myself=$0 ;;
-+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-+done
-+IFS=$as_save_IFS
-+
-+ ;;
-+esac
-+# We did not find ourselves, most probably we were run as `sh COMMAND'
-+# in which case we are not to be found in the path.
-+if test "x$as_myself" = x; then
-+ as_myself=$0
-+fi
-+if test ! -f "$as_myself"; then
-+ echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-+ { (exit 1); exit 1; }
-+fi
-+
- # Work around bugs in pre-3.0 UWIN ksh.
--$as_unset ENV MAIL MAILPATH
-+for as_var in ENV MAIL MAILPATH
-+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-+done
- PS1='$ '
- PS2='> '
- PS4='+ '
-@@ -6555,18 +7168,19 @@ do
- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
-- $as_unset $as_var
-+ ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
- fi
- done
-
- # Required to use basename.
--if expr a : '\(a\)' >/dev/null 2>&1; then
-+if expr a : '\(a\)' >/dev/null 2>&1 &&
-+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
- else
- as_expr=false
- fi
-
--if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
- as_basename=basename
- else
- as_basename=false
-@@ -6574,159 +7188,120 @@ fi
-
-
- # Name of the executable.
--as_me=`$as_basename "$0" ||
-+as_me=`$as_basename -- "$0" ||
- $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- X"$0" : 'X\(//\)$' \| \
-- X"$0" : 'X\(/\)$' \| \
-- . : '\(.\)' 2>/dev/null ||
-+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
- echo X/"$0" |
-- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-- /^X\/\(\/\/\)$/{ s//\1/; q; }
-- /^X\/\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
--
--
--# PATH needs CR, and LINENO needs CR and PATH.
--# Avoid depending upon Character Ranges.
--as_cr_letters='abcdefghijklmnopqrstuvwxyz'
--as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
--as_cr_Letters=$as_cr_letters$as_cr_LETTERS
--as_cr_digits='0123456789'
--as_cr_alnum=$as_cr_Letters$as_cr_digits
-+ sed '/^.*\/\([^/][^/]*\)\/*$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\/\(\/\/\)$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\/\(\/\).*/{
-+ s//\1/
-+ q
-+ }
-+ s/.*/./; q'`
-
--# The user is always right.
--if test "${PATH_SEPARATOR+set}" != set; then
-- echo "#! /bin/sh" >conf$$.sh
-- echo "exit 0" >>conf$$.sh
-- chmod +x conf$$.sh
-- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-- PATH_SEPARATOR=';'
-- else
-- PATH_SEPARATOR=:
-- fi
-- rm -f conf$$.sh
--fi
-+# CDPATH.
-+$as_unset CDPATH
-
-
-- as_lineno_1=$LINENO
-- as_lineno_2=$LINENO
-- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-- test "x$as_lineno_1" != "x$as_lineno_2" &&
-- test "x$as_lineno_3" = "x$as_lineno_2" || {
-- # Find who we are. Look in the path if we contain no path at all
-- # relative or not.
-- case $0 in
-- *[\\/]* ) as_myself=$0 ;;
-- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in $PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
--done
-
-- ;;
-- esac
-- # We did not find ourselves, most probably we were run as `sh COMMAND'
-- # in which case we are not to be found in the path.
-- if test "x$as_myself" = x; then
-- as_myself=$0
-- fi
-- if test ! -f "$as_myself"; then
-- { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
--echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-- { (exit 1); exit 1; }; }
-- fi
-- case $CONFIG_SHELL in
-- '')
-- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
--for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
--do
-- IFS=$as_save_IFS
-- test -z "$as_dir" && as_dir=.
-- for as_base in sh bash ksh sh5; do
-- case $as_dir in
-- /*)
-- if ("$as_dir/$as_base" -c '
- as_lineno_1=$LINENO
- as_lineno_2=$LINENO
-- as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
- test "x$as_lineno_1" != "x$as_lineno_2" &&
-- test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
-- $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-- $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-- CONFIG_SHELL=$as_dir/$as_base
-- export CONFIG_SHELL
-- exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-- fi;;
-- esac
-- done
--done
--;;
-- esac
-+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
- # uniformly replaced by the line number. The first 'sed' inserts a
-- # line-number line before each line; the second 'sed' does the real
-- # work. The second script uses 'N' to pair each line-number line
-- # with the numbered line, and appends trailing '-' during
-- # substitution so that $LINENO is not a special case at line end.
-+ # line-number line after each line using $LINENO; the second 'sed'
-+ # does the real work. The second script uses 'N' to pair each
-+ # line-number line with the line containing $LINENO, and appends
-+ # trailing '-' during substitution so that $LINENO is not a special
-+ # case at line end.
- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-- # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
-- sed '=' <$as_myself |
-+ # scripts with optimization help from Paolo Bonzini. Blame Lee
-+ # E. McMahon (1931-1989) for sed's syntax. :-)
-+ sed -n '
-+ p
-+ /[$]LINENO/=
-+ ' <$as_myself |
- sed '
-+ s/[$]LINENO.*/&-/
-+ t lineno
-+ b
-+ :lineno
- N
-- s,$,-,
-- : loop
-- s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-+ :loop
-+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
- t loop
-- s,-$,,
-- s,^['$as_cr_digits']*\n,,
-+ s/-\n.*//
- ' >$as_me.lineno &&
-- chmod +x $as_me.lineno ||
-- { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
--echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-+ chmod +x "$as_me.lineno" ||
-+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
- { (exit 1); exit 1; }; }
-
- # Don't try to exec as it changes $[0], causing all sort of problems
- # (the dirname of $[0] is not the place where we might find the
-- # original and so on. Autoconf is especially sensible to this).
-- . ./$as_me.lineno
-+ # original and so on. Autoconf is especially sensitive to this).
-+ . "./$as_me.lineno"
- # Exit status is that of the last command.
- exit
- }
-
-
--case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-- *c*,-n*) ECHO_N= ECHO_C='
--' ECHO_T=' ' ;;
-- *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-- *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-+ as_dirname=dirname
-+else
-+ as_dirname=false
-+fi
-+
-+ECHO_C= ECHO_N= ECHO_T=
-+case `echo -n x` in
-+-n*)
-+ case `echo 'x\c'` in
-+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
-+ *) ECHO_C='\c';;
-+ esac;;
-+*)
-+ ECHO_N='-n';;
- esac
-
--if expr a : '\(a\)' >/dev/null 2>&1; then
-+if expr a : '\(a\)' >/dev/null 2>&1 &&
-+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
- as_expr=expr
- else
- as_expr=false
- fi
-
- rm -f conf$$ conf$$.exe conf$$.file
-+if test -d conf$$.dir; then
-+ rm -f conf$$.dir/conf$$.file
-+else
-+ rm -f conf$$.dir
-+ mkdir conf$$.dir
-+fi
- echo >conf$$.file
- if ln -s conf$$.file conf$$ 2>/dev/null; then
-- # We could just check for DJGPP; but this test a) works b) is more generic
-- # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-- if test -f conf$$.exe; then
-- # Don't use ln at all; we don't have any links
-+ as_ln_s='ln -s'
-+ # ... but there are two gotchas:
-+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-+ # In both cases, we have to default to `cp -p'.
-+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
- as_ln_s='cp -p'
-- else
-- as_ln_s='ln -s'
-- fi
- elif ln conf$$.file conf$$ 2>/dev/null; then
- as_ln_s=ln
- else
- as_ln_s='cp -p'
- fi
--rm -f conf$$ conf$$.exe conf$$.file
-+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-+rmdir conf$$.dir 2>/dev/null
-
- if mkdir -p . 2>/dev/null; then
- as_mkdir_p=:
-@@ -6735,7 +7310,28 @@ else
- as_mkdir_p=false
- fi
-
--as_executable_p="test -f"
-+if test -x / >/dev/null 2>&1; then
-+ as_test_x='test -x'
-+else
-+ if ls -dL / >/dev/null 2>&1; then
-+ as_ls_L_option=L
-+ else
-+ as_ls_L_option=
-+ fi
-+ as_test_x='
-+ eval sh -c '\''
-+ if test -d "$1"; then
-+ test -d "$1/.";
-+ else
-+ case $1 in
-+ -*)set "./$1";;
-+ esac;
-+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-+ ???[sx]*):;;*)false;;esac;fi
-+ '\'' sh
-+ '
-+fi
-+as_executable_p=$as_test_x
-
- # Sed expression to map a string onto a valid CPP name.
- as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-@@ -6744,31 +7340,14 @@ as_tr_cpp="eval sed 'y%*$as_cr_letters%P
- as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
--# IFS
--# We need space, tab and new line, in precisely that order.
--as_nl='
--'
--IFS=" $as_nl"
--
--# CDPATH.
--$as_unset CDPATH
--
- exec 6>&1
-
--# Open the log real soon, to keep \$[0] and so on meaningful, and to
-+# Save the log message, to keep $[0] and so on meaningful, and to
- # report actual input values of CONFIG_FILES etc. instead of their
--# values after options handling. Logging --version etc. is OK.
--exec 5>>config.log
--{
-- echo
-- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
--## Running $as_me. ##
--_ASBOX
--} >&5
--cat >&5 <<_CSEOF
--
-+# values after options handling.
-+ac_log="
- This file was extended by sipsak $as_me 0.9.6, which was
--generated by GNU Autoconf 2.59. Invocation command line was
-+generated by GNU Autoconf 2.61. Invocation command line was
-
- CONFIG_FILES = $CONFIG_FILES
- CONFIG_HEADERS = $CONFIG_HEADERS
-@@ -6776,30 +7355,20 @@ generated by GNU Autoconf 2.59. Invocat
- CONFIG_COMMANDS = $CONFIG_COMMANDS
- $ $0 $@
-
--_CSEOF
--echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
--echo >&5
-+on `(hostname || uname -n) 2>/dev/null | sed 1q`
-+"
-+
- _ACEOF
-
-+cat >>$CONFIG_STATUS <<_ACEOF
- # Files that config.status was made for.
--if test -n "$ac_config_files"; then
-- echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
--fi
--
--if test -n "$ac_config_headers"; then
-- echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
--fi
--
--if test -n "$ac_config_links"; then
-- echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
--fi
-+config_files="$ac_config_files"
-+config_headers="$ac_config_headers"
-+config_commands="$ac_config_commands"
-
--if test -n "$ac_config_commands"; then
-- echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
--fi
-+_ACEOF
-
- cat >>$CONFIG_STATUS <<\_ACEOF
--
- ac_cs_usage="\
- \`$as_me' instantiates files from templates according to the
- current configuration.
-@@ -6807,7 +7376,7 @@ current configuration.
- Usage: $0 [OPTIONS] [FILE]...
-
- -h, --help print this help, then exit
-- -V, --version print version number, then exit
-+ -V, --version print version number and configuration settings, then exit
- -q, --quiet do not print progress messages
- -d, --debug don't remove temporary files
- --recheck update $as_me by reconfiguring in the same conditions
-@@ -6826,19 +7395,21 @@ Configuration commands:
- $config_commands
-
- Report bugs to <bug-autoconf@gnu.org>."
--_ACEOF
-
-+_ACEOF
- cat >>$CONFIG_STATUS <<_ACEOF
- ac_cs_version="\\
- sipsak config.status 0.9.6
--configured by $0, generated by GNU Autoconf 2.59,
-- with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-+configured by $0, generated by GNU Autoconf 2.61,
-+ with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
-
--Copyright (C) 2003 Free Software Foundation, Inc.
-+Copyright (C) 2006 Free Software Foundation, Inc.
- This config.status script is free software; the Free Software Foundation
- gives unlimited permission to copy, distribute and modify it."
--srcdir=$srcdir
--INSTALL="$INSTALL"
-+
-+ac_pwd='$ac_pwd'
-+srcdir='$srcdir'
-+INSTALL='$INSTALL'
- _ACEOF
-
- cat >>$CONFIG_STATUS <<\_ACEOF
-@@ -6849,39 +7420,24 @@ while test $# != 0
- do
- case $1 in
- --*=*)
-- ac_option=`expr "x$1" : 'x\([^=]*\)='`
-- ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
-+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
- ac_shift=:
- ;;
-- -*)
-+ *)
- ac_option=$1
- ac_optarg=$2
- ac_shift=shift
- ;;
-- *) # This is not an option, so the user has probably given explicit
-- # arguments.
-- ac_option=$1
-- ac_need_defaults=false;;
- esac
-
- case $ac_option in
- # Handling of the options.
--_ACEOF
--cat >>$CONFIG_STATUS <<\_ACEOF
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
- ac_cs_recheck=: ;;
-- --version | --vers* | -V )
-- echo "$ac_cs_version"; exit 0 ;;
-- --he | --h)
-- # Conflict between --help and --header
-- { { echo "$as_me:$LINENO: error: ambiguous option: $1
--Try \`$0 --help' for more information." >&5
--echo "$as_me: error: ambiguous option: $1
--Try \`$0 --help' for more information." >&2;}
-- { (exit 1); exit 1; }; };;
-- --help | --hel | -h )
-- echo "$ac_cs_usage"; exit 0 ;;
-- --debug | --d* | -d )
-+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-+ echo "$ac_cs_version"; exit ;;
-+ --debug | --debu | --deb | --de | --d | -d )
- debug=: ;;
- --file | --fil | --fi | --f )
- $ac_shift
-@@ -6891,18 +7447,24 @@ Try \`$0 --help' for more information."
- $ac_shift
- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
- ac_need_defaults=false;;
-+ --he | --h)
-+ # Conflict between --help and --header
-+ { echo "$as_me: error: ambiguous option: $1
-+Try \`$0 --help' for more information." >&2
-+ { (exit 1); exit 1; }; };;
-+ --help | --hel | -h )
-+ echo "$ac_cs_usage"; exit ;;
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil | --si | --s)
- ac_cs_silent=: ;;
-
- # This is an error.
-- -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
--Try \`$0 --help' for more information." >&5
--echo "$as_me: error: unrecognized option: $1
--Try \`$0 --help' for more information." >&2;}
-+ -*) { echo "$as_me: error: unrecognized option: $1
-+Try \`$0 --help' for more information." >&2
- { (exit 1); exit 1; }; } ;;
-
-- *) ac_config_targets="$ac_config_targets $1" ;;
-+ *) ac_config_targets="$ac_config_targets $1"
-+ ac_need_defaults=false ;;
-
- esac
- shift
-@@ -6918,37 +7480,49 @@ fi
- _ACEOF
- cat >>$CONFIG_STATUS <<_ACEOF
- if \$ac_cs_recheck; then
-- echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-- exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-+ echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-+ CONFIG_SHELL=$SHELL
-+ export CONFIG_SHELL
-+ exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
- fi
-
- _ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF
-+exec 5>>config.log
-+{
-+ echo
-+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-+## Running $as_me. ##
-+_ASBOX
-+ echo "$ac_log"
-+} >&5
-
-+_ACEOF
- cat >>$CONFIG_STATUS <<_ACEOF
- #
--# INIT-COMMANDS section.
-+# INIT-COMMANDS
- #
--
- AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
- _ACEOF
-
--
--
- cat >>$CONFIG_STATUS <<\_ACEOF
-+
-+# Handling of arguments.
- for ac_config_target in $ac_config_targets
- do
-- case "$ac_config_target" in
-- # Handling of arguments.
-- "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-- "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-- "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-+ case $ac_config_target in
-+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-+
- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
- echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
- { (exit 1); exit 1; }; };;
- esac
- done
-
-+
- # If the user did not use the arguments to specify the items to instantiate,
- # then the envvar interface is used. Set only those that are not.
- # We use the long form for the default assignment because of an extremely
-@@ -6960,592 +7534,539 @@ if $ac_need_defaults; then
- fi
-
- # Have a temporary directory for convenience. Make it in the build tree
--# simply because there is no reason to put it here, and in addition,
-+# simply because there is no reason against having it here, and in addition,
- # creating and moving files from /tmp can sometimes cause problems.
--# Create a temporary directory, and hook for its removal unless debugging.
-+# Hook for its removal unless debugging.
-+# Note that there is a small window in which the directory will not be cleaned:
-+# after its creation but before its name has been assigned to `$tmp'.
- $debug ||
- {
-- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-+ tmp=
-+ trap 'exit_status=$?
-+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
-+' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
- }
--
- # Create a (secure) tmp directory for tmp files.
-
- {
-- tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
- test -n "$tmp" && test -d "$tmp"
- } ||
- {
-- tmp=./confstat$$-$RANDOM
-- (umask 077 && mkdir $tmp)
-+ tmp=./conf$$-$RANDOM
-+ (umask 077 && mkdir "$tmp")
- } ||
- {
- echo "$me: cannot create a temporary directory in ." >&2
- { (exit 1); exit 1; }
- }
-
--_ACEOF
--
--cat >>$CONFIG_STATUS <<_ACEOF
--
- #
--# CONFIG_FILES section.
-+# Set up the sed scripts for CONFIG_FILES section.
- #
-
- # No need to generate the scripts if there are no CONFIG_FILES.
- # This happens for instance when ./config.status config.h
--if test -n "\$CONFIG_FILES"; then
-- # Protect against being on the right side of a sed subst in config.status.
-- sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-- s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
--s,@SHELL@,$SHELL,;t t
--s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
--s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
--s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
--s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
--s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
--s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
--s,@exec_prefix@,$exec_prefix,;t t
--s,@prefix@,$prefix,;t t
--s,@program_transform_name@,$program_transform_name,;t t
--s,@bindir@,$bindir,;t t
--s,@sbindir@,$sbindir,;t t
--s,@libexecdir@,$libexecdir,;t t
--s,@datadir@,$datadir,;t t
--s,@sysconfdir@,$sysconfdir,;t t
--s,@sharedstatedir@,$sharedstatedir,;t t
--s,@localstatedir@,$localstatedir,;t t
--s,@libdir@,$libdir,;t t
--s,@includedir@,$includedir,;t t
--s,@oldincludedir@,$oldincludedir,;t t
--s,@infodir@,$infodir,;t t
--s,@mandir@,$mandir,;t t
--s,@build_alias@,$build_alias,;t t
--s,@host_alias@,$host_alias,;t t
--s,@target_alias@,$target_alias,;t t
--s,@DEFS@,$DEFS,;t t
--s,@ECHO_C@,$ECHO_C,;t t
--s,@ECHO_N@,$ECHO_N,;t t
--s,@ECHO_T@,$ECHO_T,;t t
--s,@LIBS@,$LIBS,;t t
--s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
--s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
--s,@INSTALL_DATA@,$INSTALL_DATA,;t t
--s,@CYGPATH_W@,$CYGPATH_W,;t t
--s,@PACKAGE@,$PACKAGE,;t t
--s,@VERSION@,$VERSION,;t t
--s,@ACLOCAL@,$ACLOCAL,;t t
--s,@AUTOCONF@,$AUTOCONF,;t t
--s,@AUTOMAKE@,$AUTOMAKE,;t t
--s,@AUTOHEADER@,$AUTOHEADER,;t t
--s,@MAKEINFO@,$MAKEINFO,;t t
--s,@install_sh@,$install_sh,;t t
--s,@STRIP@,$STRIP,;t t
--s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
--s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
--s,@mkdir_p@,$mkdir_p,;t t
--s,@AWK@,$AWK,;t t
--s,@SET_MAKE@,$SET_MAKE,;t t
--s,@am__leading_dot@,$am__leading_dot,;t t
--s,@AMTAR@,$AMTAR,;t t
--s,@am__tar@,$am__tar,;t t
--s,@am__untar@,$am__untar,;t t
--s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
--s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
--s,@MAINT@,$MAINT,;t t
--s,@CC@,$CC,;t t
--s,@CFLAGS@,$CFLAGS,;t t
--s,@LDFLAGS@,$LDFLAGS,;t t
--s,@CPPFLAGS@,$CPPFLAGS,;t t
--s,@ac_ct_CC@,$ac_ct_CC,;t t
--s,@EXEEXT@,$EXEEXT,;t t
--s,@OBJEXT@,$OBJEXT,;t t
--s,@DEPDIR@,$DEPDIR,;t t
--s,@am__include@,$am__include,;t t
--s,@am__quote@,$am__quote,;t t
--s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
--s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
--s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
--s,@CCDEPMODE@,$CCDEPMODE,;t t
--s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
--s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
--s,@DISTCC@,$DISTCC,;t t
--s,@build@,$build,;t t
--s,@build_cpu@,$build_cpu,;t t
--s,@build_vendor@,$build_vendor,;t t
--s,@build_os@,$build_os,;t t
--s,@host@,$host,;t t
--s,@host_cpu@,$host_cpu,;t t
--s,@host_vendor@,$host_vendor,;t t
--s,@host_os@,$host_os,;t t
--s,@CPP@,$CPP,;t t
--s,@EGREP@,$EGREP,;t t
--s,@LIBOBJS@,$LIBOBJS,;t t
--s,@DISABLE_GNUTLS@,$DISABLE_GNUTLS,;t t
--s,@LIBGNUTLS_CONFIG@,$LIBGNUTLS_CONFIG,;t t
--s,@LIBGNUTLS_CFLAGS@,$LIBGNUTLS_CFLAGS,;t t
--s,@LIBGNUTLS_LIBS@,$LIBGNUTLS_LIBS,;t t
--s,@SIPSAK_HAVE_ARES@,$SIPSAK_HAVE_ARES,;t t
--s,@LTLIBOBJS@,$LTLIBOBJS,;t t
--CEOF
-+if test -n "$CONFIG_FILES"; then
-
- _ACEOF
-
-- cat >>$CONFIG_STATUS <<\_ACEOF
-- # Split the substitutions into bite-sized pieces for seds with
-- # small command number limits, like on Digital OSF/1 and HP-UX.
-- ac_max_sed_lines=48
-- ac_sed_frag=1 # Number of current file.
-- ac_beg=1 # First line for current file.
-- ac_end=$ac_max_sed_lines # Line after last line for current file.
-- ac_more_lines=:
-- ac_sed_cmds=
-- while $ac_more_lines; do
-- if test $ac_beg -gt 1; then
-- sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-- else
-- sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-- fi
-- if test ! -s $tmp/subs.frag; then
-- ac_more_lines=false
-- else
-- # The purpose of the label and of the branching condition is to
-- # speed up the sed processing (if there are no `@' at all, there
-- # is no need to browse any of the substitutions).
-- # These are the two extra sed commands mentioned above.
-- (echo ':t
-- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-- if test -z "$ac_sed_cmds"; then
-- ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-- else
-- ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-- fi
-- ac_sed_frag=`expr $ac_sed_frag + 1`
-- ac_beg=$ac_end
-- ac_end=`expr $ac_end + $ac_max_sed_lines`
-- fi
-- done
-- if test -z "$ac_sed_cmds"; then
-- ac_sed_cmds=cat
-+
-+
-+ac_delim='%!_!# '
-+for ac_last_try in false false false false false :; do
-+ cat >conf$$subs.sed <<_ACEOF
-+SHELL!$SHELL$ac_delim
-+PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
-+PACKAGE_NAME!$PACKAGE_NAME$ac_delim
-+PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
-+PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
-+PACKAGE_STRING!$PACKAGE_STRING$ac_delim
-+PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
-+exec_prefix!$exec_prefix$ac_delim
-+prefix!$prefix$ac_delim
-+program_transform_name!$program_transform_name$ac_delim
-+bindir!$bindir$ac_delim
-+sbindir!$sbindir$ac_delim
-+libexecdir!$libexecdir$ac_delim
-+datarootdir!$datarootdir$ac_delim
-+datadir!$datadir$ac_delim
-+sysconfdir!$sysconfdir$ac_delim
-+sharedstatedir!$sharedstatedir$ac_delim
-+localstatedir!$localstatedir$ac_delim
-+includedir!$includedir$ac_delim
-+oldincludedir!$oldincludedir$ac_delim
-+docdir!$docdir$ac_delim
-+infodir!$infodir$ac_delim
-+htmldir!$htmldir$ac_delim
-+dvidir!$dvidir$ac_delim
-+pdfdir!$pdfdir$ac_delim
-+psdir!$psdir$ac_delim
-+libdir!$libdir$ac_delim
-+localedir!$localedir$ac_delim
-+mandir!$mandir$ac_delim
-+DEFS!$DEFS$ac_delim
-+ECHO_C!$ECHO_C$ac_delim
-+ECHO_N!$ECHO_N$ac_delim
-+ECHO_T!$ECHO_T$ac_delim
-+LIBS!$LIBS$ac_delim
-+build_alias!$build_alias$ac_delim
-+host_alias!$host_alias$ac_delim
-+target_alias!$target_alias$ac_delim
-+INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
-+INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
-+INSTALL_DATA!$INSTALL_DATA$ac_delim
-+CYGPATH_W!$CYGPATH_W$ac_delim
-+PACKAGE!$PACKAGE$ac_delim
-+VERSION!$VERSION$ac_delim
-+ACLOCAL!$ACLOCAL$ac_delim
-+AUTOCONF!$AUTOCONF$ac_delim
-+AUTOMAKE!$AUTOMAKE$ac_delim
-+AUTOHEADER!$AUTOHEADER$ac_delim
-+MAKEINFO!$MAKEINFO$ac_delim
-+install_sh!$install_sh$ac_delim
-+STRIP!$STRIP$ac_delim
-+INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim
-+mkdir_p!$mkdir_p$ac_delim
-+AWK!$AWK$ac_delim
-+SET_MAKE!$SET_MAKE$ac_delim
-+am__leading_dot!$am__leading_dot$ac_delim
-+AMTAR!$AMTAR$ac_delim
-+am__tar!$am__tar$ac_delim
-+am__untar!$am__untar$ac_delim
-+MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim
-+MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim
-+MAINT!$MAINT$ac_delim
-+CC!$CC$ac_delim
-+CFLAGS!$CFLAGS$ac_delim
-+LDFLAGS!$LDFLAGS$ac_delim
-+CPPFLAGS!$CPPFLAGS$ac_delim
-+ac_ct_CC!$ac_ct_CC$ac_delim
-+EXEEXT!$EXEEXT$ac_delim
-+OBJEXT!$OBJEXT$ac_delim
-+DEPDIR!$DEPDIR$ac_delim
-+am__include!$am__include$ac_delim
-+am__quote!$am__quote$ac_delim
-+AMDEP_TRUE!$AMDEP_TRUE$ac_delim
-+AMDEP_FALSE!$AMDEP_FALSE$ac_delim
-+AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim
-+CCDEPMODE!$CCDEPMODE$ac_delim
-+am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
-+am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
-+DISTCC!$DISTCC$ac_delim
-+build!$build$ac_delim
-+build_cpu!$build_cpu$ac_delim
-+build_vendor!$build_vendor$ac_delim
-+build_os!$build_os$ac_delim
-+host!$host$ac_delim
-+host_cpu!$host_cpu$ac_delim
-+host_vendor!$host_vendor$ac_delim
-+host_os!$host_os$ac_delim
-+CPP!$CPP$ac_delim
-+GREP!$GREP$ac_delim
-+EGREP!$EGREP$ac_delim
-+LIBOBJS!$LIBOBJS$ac_delim
-+DISABLE_GNUTLS!$DISABLE_GNUTLS$ac_delim
-+LIBGNUTLS_CONFIG!$LIBGNUTLS_CONFIG$ac_delim
-+LIBGNUTLS_CFLAGS!$LIBGNUTLS_CFLAGS$ac_delim
-+LIBGNUTLS_LIBS!$LIBGNUTLS_LIBS$ac_delim
-+SIPSAK_HAVE_ARES!$SIPSAK_HAVE_ARES$ac_delim
-+LTLIBOBJS!$LTLIBOBJS$ac_delim
-+_ACEOF
-+
-+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 96; then
-+ break
-+ elif $ac_last_try; then
-+ { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-+ { (exit 1); exit 1; }; }
-+ else
-+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
- fi
--fi # test -n "$CONFIG_FILES"
-+done
-+
-+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-+if test -n "$ac_eof"; then
-+ ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-+ ac_eof=`expr $ac_eof + 1`
-+fi
-
-+cat >>$CONFIG_STATUS <<_ACEOF
-+cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
-+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
- _ACEOF
-+sed '
-+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-+s/^/s,@/; s/!/@,|#_!!_#|/
-+:n
-+t n
-+s/'"$ac_delim"'$/,g/; t
-+s/$/\\/; p
-+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-+' >>$CONFIG_STATUS <conf$$subs.sed
-+rm -f conf$$subs.sed
-+cat >>$CONFIG_STATUS <<_ACEOF
-+CEOF$ac_eof
-+_ACEOF
-+
-+
-+# VPATH may cause trouble with some makes, so we remove $(srcdir),
-+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-+# trailing colons and then remove the whole line if VPATH becomes empty
-+# (actually we leave an empty line to preserve line numbers).
-+if test "x$srcdir" = x.; then
-+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
-+s/:*\$(srcdir):*/:/
-+s/:*\${srcdir}:*/:/
-+s/:*@srcdir@:*/:/
-+s/^\([^=]*=[ ]*\):*/\1/
-+s/:*$//
-+s/^[^=]*=[ ]*$//
-+}'
-+fi
-+
- cat >>$CONFIG_STATUS <<\_ACEOF
--for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-- case $ac_file in
-- - | *:- | *:-:* ) # input from stdin
-- cat >$tmp/stdin
-- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-- * ) ac_file_in=$ac_file.in ;;
-+fi # test -n "$CONFIG_FILES"
-+
-+
-+for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS
-+do
-+ case $ac_tag in
-+ :[FHLC]) ac_mode=$ac_tag; continue;;
- esac
-+ case $ac_mode$ac_tag in
-+ :[FHL]*:*);;
-+ :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-+echo "$as_me: error: Invalid tag $ac_tag." >&2;}
-+ { (exit 1); exit 1; }; };;
-+ :[FH]-) ac_tag=-:-;;
-+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-+ esac
-+ ac_save_IFS=$IFS
-+ IFS=:
-+ set x $ac_tag
-+ IFS=$ac_save_IFS
-+ shift
-+ ac_file=$1
-+ shift
-
-- # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-+ case $ac_mode in
-+ :L) ac_source=$1;;
-+ :[FH])
-+ ac_file_inputs=
-+ for ac_f
-+ do
-+ case $ac_f in
-+ -) ac_f="$tmp/stdin";;
-+ *) # Look for the file first in the build tree, then in the source tree
-+ # (if the path is not absolute). The absolute path cannot be DOS-style,
-+ # because $ac_f cannot contain `:'.
-+ test -f "$ac_f" ||
-+ case $ac_f in
-+ [\\/$]*) false;;
-+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-+ esac ||
-+ { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-+echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-+ { (exit 1); exit 1; }; };;
-+ esac
-+ ac_file_inputs="$ac_file_inputs $ac_f"
-+ done
-+
-+ # Let's still pretend it is `configure' which instantiates (i.e., don't
-+ # use $as_me), people would be surprised to read:
-+ # /* config.h. Generated by config.status. */
-+ configure_input="Generated from "`IFS=:
-+ echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
-+ if test x"$ac_file" != x-; then
-+ configure_input="$ac_file. $configure_input"
-+ { echo "$as_me:$LINENO: creating $ac_file" >&5
-+echo "$as_me: creating $ac_file" >&6;}
-+ fi
-+
-+ case $ac_tag in
-+ *:-:* | *:-) cat >"$tmp/stdin";;
-+ esac
-+ ;;
-+ esac
-+
-+ ac_dir=`$as_dirname -- "$ac_file" ||
- $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$ac_file" : 'X\(//\)[^/]' \| \
- X"$ac_file" : 'X\(//\)$' \| \
-- X"$ac_file" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
-+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$ac_file" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-- { if $as_mkdir_p; then
-- mkdir -p "$ac_dir"
-- else
-- as_dir="$ac_dir"
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)[^/].*/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\).*/{
-+ s//\1/
-+ q
-+ }
-+ s/.*/./; q'`
-+ { as_dir="$ac_dir"
-+ case $as_dir in #(
-+ -*) as_dir=./$as_dir;;
-+ esac
-+ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
- as_dirs=
-- while test ! -d "$as_dir"; do
-- as_dirs="$as_dir $as_dirs"
-- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-+ while :; do
-+ case $as_dir in #(
-+ *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
-+ *) as_qdir=$as_dir;;
-+ esac
-+ as_dirs="'$as_qdir' $as_dirs"
-+ as_dir=`$as_dirname -- "$as_dir" ||
- $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
-- X"$as_dir" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
-+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$as_dir" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)[^/].*/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\).*/{
-+ s//\1/
-+ q
-+ }
-+ s/.*/./; q'`
-+ test -d "$as_dir" && break
- done
-- test ! -n "$as_dirs" || mkdir $as_dirs
-- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
--echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-+ test -z "$as_dirs" || eval "mkdir $as_dirs"
-+ } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-+echo "$as_me: error: cannot create directory $as_dir" >&2;}
- { (exit 1); exit 1; }; }; }
--
- ac_builddir=.
-
--if test "$ac_dir" != .; then
-+case "$ac_dir" in
-+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-+*)
- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-- # A "../" for each directory in $ac_dir_suffix.
-- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
--else
-- ac_dir_suffix= ac_top_builddir=
--fi
-+ # A ".." for each directory in $ac_dir_suffix.
-+ ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
-+ case $ac_top_builddir_sub in
-+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-+ esac ;;
-+esac
-+ac_abs_top_builddir=$ac_pwd
-+ac_abs_builddir=$ac_pwd$ac_dir_suffix
-+# for backward compatibility:
-+ac_top_builddir=$ac_top_build_prefix
-
- case $srcdir in
-- .) # No --srcdir option. We are building in place.
-+ .) # We are building in place.
- ac_srcdir=.
-- if test -z "$ac_top_builddir"; then
-- ac_top_srcdir=.
-- else
-- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-- fi ;;
-- [\\/]* | ?:[\\/]* ) # Absolute path.
-+ ac_top_srcdir=$ac_top_builddir_sub
-+ ac_abs_top_srcdir=$ac_pwd ;;
-+ [\\/]* | ?:[\\/]* ) # Absolute name.
- ac_srcdir=$srcdir$ac_dir_suffix;
-- ac_top_srcdir=$srcdir ;;
-- *) # Relative path.
-- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-- ac_top_srcdir=$ac_top_builddir$srcdir ;;
-+ ac_top_srcdir=$srcdir
-+ ac_abs_top_srcdir=$srcdir ;;
-+ *) # Relative name.
-+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-+ ac_top_srcdir=$ac_top_build_prefix$srcdir
-+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
- esac
-+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
--# Do not use `cd foo && pwd` to compute absolute paths, because
--# the directories may not exist.
--case `pwd` in
--.) ac_abs_builddir="$ac_dir";;
--*)
-- case "$ac_dir" in
-- .) ac_abs_builddir=`pwd`;;
-- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-- *) ac_abs_builddir=`pwd`/"$ac_dir";;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_top_builddir=${ac_top_builddir}.;;
--*)
-- case ${ac_top_builddir}. in
-- .) ac_abs_top_builddir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_srcdir=$ac_srcdir;;
--*)
-- case $ac_srcdir in
-- .) ac_abs_srcdir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_top_srcdir=$ac_top_srcdir;;
--*)
-- case $ac_top_srcdir in
-- .) ac_abs_top_srcdir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-- esac;;
--esac
-
-+ case $ac_mode in
-+ :F)
-+ #
-+ # CONFIG_FILE
-+ #
-
- case $INSTALL in
- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-- *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
-+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
- esac
-+_ACEOF
-
-- if test x"$ac_file" != x-; then
-- { echo "$as_me:$LINENO: creating $ac_file" >&5
--echo "$as_me: creating $ac_file" >&6;}
-- rm -f "$ac_file"
-- fi
-- # Let's still pretend it is `configure' which instantiates (i.e., don't
-- # use $as_me), people would be surprised to read:
-- # /* config.h. Generated by config.status. */
-- if test x"$ac_file" = x-; then
-- configure_input=
-- else
-- configure_input="$ac_file. "
-- fi
-- configure_input=$configure_input"Generated from `echo $ac_file_in |
-- sed 's,.*/,,'` by configure."
-+cat >>$CONFIG_STATUS <<\_ACEOF
-+# If the template does not know about datarootdir, expand it.
-+# FIXME: This hack should be removed a few years after 2.60.
-+ac_datarootdir_hack=; ac_datarootdir_seen=
-
-- # First look for the input files in the build tree, otherwise in the
-- # src tree.
-- ac_file_inputs=`IFS=:
-- for f in $ac_file_in; do
-- case $f in
-- -) echo $tmp/stdin ;;
-- [\\/$]*)
-- # Absolute (can't be DOS-style, as IFS=:)
-- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
--echo "$as_me: error: cannot find input file: $f" >&2;}
-- { (exit 1); exit 1; }; }
-- echo "$f";;
-- *) # Relative
-- if test -f "$f"; then
-- # Build tree
-- echo "$f"
-- elif test -f "$srcdir/$f"; then
-- # Source tree
-- echo "$srcdir/$f"
-- else
-- # /dev/null tree
-- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
--echo "$as_me: error: cannot find input file: $f" >&2;}
-- { (exit 1); exit 1; }; }
-- fi;;
-- esac
-- done` || { (exit 1); exit 1; }
-+case `sed -n '/datarootdir/ {
-+ p
-+ q
-+}
-+/@datadir@/p
-+/@docdir@/p
-+/@infodir@/p
-+/@localedir@/p
-+/@mandir@/p
-+' $ac_file_inputs` in
-+*datarootdir*) ac_datarootdir_seen=yes;;
-+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-+ { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-+echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
- _ACEOF
- cat >>$CONFIG_STATUS <<_ACEOF
-+ ac_datarootdir_hack='
-+ s&@datadir@&$datadir&g
-+ s&@docdir@&$docdir&g
-+ s&@infodir@&$infodir&g
-+ s&@localedir@&$localedir&g
-+ s&@mandir@&$mandir&g
-+ s&\\\${datarootdir}&$datarootdir&g' ;;
-+esac
-+_ACEOF
-+
-+# Neutralize VPATH when `$srcdir' = `.'.
-+# Shell code in configure.ac might set extrasub.
-+# FIXME: do we really want to maintain this feature?
-+cat >>$CONFIG_STATUS <<_ACEOF
- sed "$ac_vpsub
- $extrasub
- _ACEOF
- cat >>$CONFIG_STATUS <<\_ACEOF
- :t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
--s,@configure_input@,$configure_input,;t t
--s,@srcdir@,$ac_srcdir,;t t
--s,@abs_srcdir@,$ac_abs_srcdir,;t t
--s,@top_srcdir@,$ac_top_srcdir,;t t
--s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
--s,@builddir@,$ac_builddir,;t t
--s,@abs_builddir@,$ac_abs_builddir,;t t
--s,@top_builddir@,$ac_top_builddir,;t t
--s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
--s,@INSTALL@,$ac_INSTALL,;t t
--" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-- rm -f $tmp/stdin
-- if test x"$ac_file" != x-; then
-- mv $tmp/out $ac_file
-- else
-- cat $tmp/out
-- rm -f $tmp/out
-- fi
--
--done
--_ACEOF
--cat >>$CONFIG_STATUS <<\_ACEOF
--
--#
--# CONFIG_HEADER section.
--#
-+s&@configure_input@&$configure_input&;t t
-+s&@top_builddir@&$ac_top_builddir_sub&;t t
-+s&@srcdir@&$ac_srcdir&;t t
-+s&@abs_srcdir@&$ac_abs_srcdir&;t t
-+s&@top_srcdir@&$ac_top_srcdir&;t t
-+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-+s&@builddir@&$ac_builddir&;t t
-+s&@abs_builddir@&$ac_abs_builddir&;t t
-+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-+s&@INSTALL@&$ac_INSTALL&;t t
-+$ac_datarootdir_hack
-+" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed 's/|#_!!_#|//g' >$tmp/out
-
--# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
--# NAME is the cpp macro being defined and VALUE is the value it is being given.
--#
--# ac_d sets the value in "#define NAME VALUE" lines.
--ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
--ac_dB='[ ].*$,\1#\2'
--ac_dC=' '
--ac_dD=',;t'
--# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
--ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
--ac_uB='$,\1#\2define\3'
--ac_uC=' '
--ac_uD=',;t'
-+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-+ { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-+which seems to be undefined. Please make sure it is defined." >&5
-+echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-+which seems to be undefined. Please make sure it is defined." >&2;}
-
--for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
-- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-+ rm -f "$tmp/stdin"
- case $ac_file in
-- - | *:- | *:-:* ) # input from stdin
-- cat >$tmp/stdin
-- ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-- *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-- ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-- * ) ac_file_in=$ac_file.in ;;
-+ -) cat "$tmp/out"; rm -f "$tmp/out";;
-+ *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
- esac
--
-- test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
--echo "$as_me: creating $ac_file" >&6;}
--
-- # First look for the input files in the build tree, otherwise in the
-- # src tree.
-- ac_file_inputs=`IFS=:
-- for f in $ac_file_in; do
-- case $f in
-- -) echo $tmp/stdin ;;
-- [\\/$]*)
-- # Absolute (can't be DOS-style, as IFS=:)
-- test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
--echo "$as_me: error: cannot find input file: $f" >&2;}
-- { (exit 1); exit 1; }; }
-- # Do quote $f, to prevent DOS paths from being IFS'd.
-- echo "$f";;
-- *) # Relative
-- if test -f "$f"; then
-- # Build tree
-- echo "$f"
-- elif test -f "$srcdir/$f"; then
-- # Source tree
-- echo "$srcdir/$f"
-- else
-- # /dev/null tree
-- { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
--echo "$as_me: error: cannot find input file: $f" >&2;}
-- { (exit 1); exit 1; }; }
-- fi;;
-- esac
-- done` || { (exit 1); exit 1; }
-- # Remove the trailing spaces.
-- sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
--
-+ ;;
-+ :H)
-+ #
-+ # CONFIG_HEADER
-+ #
- _ACEOF
-
--# Transform confdefs.h into two sed scripts, `conftest.defines' and
--# `conftest.undefs', that substitutes the proper values into
--# config.h.in to produce config.h. The first handles `#define'
--# templates, and the second `#undef' templates.
--# And first: Protect against being on the right side of a sed subst in
--# config.status. Protect against being in an unquoted here document
--# in config.status.
--rm -f conftest.defines conftest.undefs
--# Using a here document instead of a string reduces the quoting nightmare.
--# Putting comments in sed scripts is not portable.
--#
--# `end' is used to avoid that the second main sed command (meant for
--# 0-ary CPP macros) applies to n-ary macro definitions.
--# See the Autoconf documentation for `clear'.
--cat >confdef2sed.sed <<\_ACEOF
--s/[\\&,]/\\&/g
--s,[\\$`],\\&,g
--t clear
--: clear
--s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
--t end
--s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
--: end
--_ACEOF
--# If some macros were called several times there might be several times
--# the same #defines, which is useless. Nevertheless, we may not want to
--# sort them, since we want the *last* AC-DEFINE to be honored.
--uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
--sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
--rm -f confdef2sed.sed
-+# Transform confdefs.h into a sed script `conftest.defines', that
-+# substitutes the proper values into config.h.in to produce config.h.
-+rm -f conftest.defines conftest.tail
-+# First, append a space to every undef/define line, to ease matching.
-+echo 's/$/ /' >conftest.defines
-+# Then, protect against being on the right side of a sed subst, or in
-+# an unquoted here document, in config.status. If some macros were
-+# called several times there might be several #defines for the same
-+# symbol, which is useless. But do not sort them, since the last
-+# AC_DEFINE must be honored.
-+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-+# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
-+# NAME is the cpp macro being defined, VALUE is the value it is being given.
-+# PARAMS is the parameter list in the macro definition--in most cases, it's
-+# just an empty string.
-+ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*'
-+ac_dB='\\)[ (].*,\\1define\\2'
-+ac_dC=' '
-+ac_dD=' ,'
-
--# This sed command replaces #undef with comments. This is necessary, for
-+uniq confdefs.h |
-+ sed -n '
-+ t rset
-+ :rset
-+ s/^[ ]*#[ ]*define[ ][ ]*//
-+ t ok
-+ d
-+ :ok
-+ s/[\\&,]/\\&/g
-+ s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
-+ s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
-+ ' >>conftest.defines
-+
-+# Remove the space that was appended to ease matching.
-+# Then replace #undef with comments. This is necessary, for
- # example, in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
--cat >>conftest.undefs <<\_ACEOF
--s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
--_ACEOF
-+# (The regexp can be short, since the line contains either #define or #undef.)
-+echo 's/ $//
-+s,^[ #]*u.*,/* & */,' >>conftest.defines
-
--# Break up conftest.defines because some shells have a limit on the size
--# of here documents, and old seds have small limits too (100 cmds).
--echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
--echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
--echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
--echo ' :' >>$CONFIG_STATUS
--rm -f conftest.tail
--while grep . conftest.defines >/dev/null
-+# Break up conftest.defines:
-+ac_max_sed_lines=50
-+
-+# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1"
-+# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2"
-+# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1"
-+# et cetera.
-+ac_in='$ac_file_inputs'
-+ac_out='"$tmp/out1"'
-+ac_nxt='"$tmp/out2"'
-+
-+while :
- do
-- # Write a limited-size here document to $tmp/defines.sed.
-- echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-- # Speed up: don't consider the non `#define' lines.
-- echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
-- # Work around the forget-to-reset-the-flag bug.
-- echo 't clr' >>$CONFIG_STATUS
-- echo ': clr' >>$CONFIG_STATUS
-- sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
-+ # Write a here document:
-+ cat >>$CONFIG_STATUS <<_ACEOF
-+ # First, check the format of the line:
-+ cat >"\$tmp/defines.sed" <<\\CEOF
-+/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def
-+/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def
-+b
-+:def
-+_ACEOF
-+ sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
- echo 'CEOF
-- sed -f $tmp/defines.sed $tmp/in >$tmp/out
-- rm -f $tmp/in
-- mv $tmp/out $tmp/in
--' >>$CONFIG_STATUS
-- sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
-+ sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
-+ ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
-+ sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
-+ grep . conftest.tail >/dev/null || break
- rm -f conftest.defines
- mv conftest.tail conftest.defines
- done
--rm -f conftest.defines
--echo ' fi # grep' >>$CONFIG_STATUS
--echo >>$CONFIG_STATUS
--
--# Break up conftest.undefs because some shells have a limit on the size
--# of here documents, and old seds have small limits too (100 cmds).
--echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
--rm -f conftest.tail
--while grep . conftest.undefs >/dev/null
--do
-- # Write a limited-size here document to $tmp/undefs.sed.
-- echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-- # Speed up: don't consider the non `#undef'
-- echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
-- # Work around the forget-to-reset-the-flag bug.
-- echo 't clr' >>$CONFIG_STATUS
-- echo ': clr' >>$CONFIG_STATUS
-- sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
-- echo 'CEOF
-- sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-- rm -f $tmp/in
-- mv $tmp/out $tmp/in
--' >>$CONFIG_STATUS
-- sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-- rm -f conftest.undefs
-- mv conftest.tail conftest.undefs
--done
--rm -f conftest.undefs
-+rm -f conftest.defines conftest.tail
-
-+echo "ac_result=$ac_in" >>$CONFIG_STATUS
- cat >>$CONFIG_STATUS <<\_ACEOF
-- # Let's still pretend it is `configure' which instantiates (i.e., don't
-- # use $as_me), people would be surprised to read:
-- # /* config.h. Generated by config.status. */
-- if test x"$ac_file" = x-; then
-- echo "/* Generated by configure. */" >$tmp/config.h
-- else
-- echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
-- fi
-- cat $tmp/in >>$tmp/config.h
-- rm -f $tmp/in
- if test x"$ac_file" != x-; then
-- if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
-+ echo "/* $configure_input */" >"$tmp/config.h"
-+ cat "$ac_result" >>"$tmp/config.h"
-+ if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
- echo "$as_me: $ac_file is unchanged" >&6;}
- else
-- ac_dir=`(dirname "$ac_file") 2>/dev/null ||
--$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-- X"$ac_file" : 'X\(//\)[^/]' \| \
-- X"$ac_file" : 'X\(//\)$' \| \
-- X"$ac_file" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
--echo X"$ac_file" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-- { if $as_mkdir_p; then
-- mkdir -p "$ac_dir"
-- else
-- as_dir="$ac_dir"
-- as_dirs=
-- while test ! -d "$as_dir"; do
-- as_dirs="$as_dir $as_dirs"
-- as_dir=`(dirname "$as_dir") 2>/dev/null ||
--$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-- X"$as_dir" : 'X\(//\)[^/]' \| \
-- X"$as_dir" : 'X\(//\)$' \| \
-- X"$as_dir" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
--echo X"$as_dir" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-- done
-- test ! -n "$as_dirs" || mkdir $as_dirs
-- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
--echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-- { (exit 1); exit 1; }; }; }
--
- rm -f $ac_file
-- mv $tmp/config.h $ac_file
-+ mv "$tmp/config.h" $ac_file
- fi
- else
-- cat $tmp/config.h
-- rm -f $tmp/config.h
-+ echo "/* $configure_input */"
-+ cat "$ac_result"
- fi
-+ rm -f "$tmp/out12"
- # Compute $ac_file's index in $config_headers.
- _am_stamp_count=1
- for _am_header in $config_headers :; do
-@@ -7556,135 +8077,39 @@ for _am_header in $config_headers :; do
- _am_stamp_count=`expr $_am_stamp_count + 1` ;;
- esac
- done
--echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
-+echo "timestamp for $ac_file" >`$as_dirname -- $ac_file ||
- $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X$ac_file : 'X\(//\)[^/]' \| \
- X$ac_file : 'X\(//\)$' \| \
-- X$ac_file : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
-+ X$ac_file : 'X\(/\)' \| . 2>/dev/null ||
- echo X$ac_file |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`/stamp-h$_am_stamp_count
--done
--_ACEOF
--cat >>$CONFIG_STATUS <<\_ACEOF
--
--#
--# CONFIG_COMMANDS section.
--#
--for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-- ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-- ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-- ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
--$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-- X"$ac_dest" : 'X\(//\)[^/]' \| \
-- X"$ac_dest" : 'X\(//\)$' \| \
-- X"$ac_dest" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
--echo X"$ac_dest" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-- { if $as_mkdir_p; then
-- mkdir -p "$ac_dir"
-- else
-- as_dir="$ac_dir"
-- as_dirs=
-- while test ! -d "$as_dir"; do
-- as_dirs="$as_dir $as_dirs"
-- as_dir=`(dirname "$as_dir") 2>/dev/null ||
--$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-- X"$as_dir" : 'X\(//\)[^/]' \| \
-- X"$as_dir" : 'X\(//\)$' \| \
-- X"$as_dir" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
--echo X"$as_dir" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-- done
-- test ! -n "$as_dirs" || mkdir $as_dirs
-- fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
--echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-- { (exit 1); exit 1; }; }; }
--
-- ac_builddir=.
--
--if test "$ac_dir" != .; then
-- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-- # A "../" for each directory in $ac_dir_suffix.
-- ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
--else
-- ac_dir_suffix= ac_top_builddir=
--fi
--
--case $srcdir in
-- .) # No --srcdir option. We are building in place.
-- ac_srcdir=.
-- if test -z "$ac_top_builddir"; then
-- ac_top_srcdir=.
-- else
-- ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-- fi ;;
-- [\\/]* | ?:[\\/]* ) # Absolute path.
-- ac_srcdir=$srcdir$ac_dir_suffix;
-- ac_top_srcdir=$srcdir ;;
-- *) # Relative path.
-- ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-- ac_top_srcdir=$ac_top_builddir$srcdir ;;
--esac
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)[^/].*/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\).*/{
-+ s//\1/
-+ q
-+ }
-+ s/.*/./; q'`/stamp-h$_am_stamp_count
-+ ;;
-
--# Do not use `cd foo && pwd` to compute absolute paths, because
--# the directories may not exist.
--case `pwd` in
--.) ac_abs_builddir="$ac_dir";;
--*)
-- case "$ac_dir" in
-- .) ac_abs_builddir=`pwd`;;
-- [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-- *) ac_abs_builddir=`pwd`/"$ac_dir";;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_top_builddir=${ac_top_builddir}.;;
--*)
-- case ${ac_top_builddir}. in
-- .) ac_abs_top_builddir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-- *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_srcdir=$ac_srcdir;;
--*)
-- case $ac_srcdir in
-- .) ac_abs_srcdir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-- *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-- esac;;
--esac
--case $ac_abs_builddir in
--.) ac_abs_top_srcdir=$ac_top_srcdir;;
--*)
-- case $ac_top_srcdir in
-- .) ac_abs_top_srcdir=$ac_abs_builddir;;
-- [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-- *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-- esac;;
--esac
-+ :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5
-+echo "$as_me: executing $ac_file commands" >&6;}
-+ ;;
-+ esac
-
-
-- { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
--echo "$as_me: executing $ac_dest commands" >&6;}
-- case $ac_dest in
-- depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
-+ case $ac_file$ac_mode in
-+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
- # Strip MF so we end up with the name of the file.
- mf=`echo "$mf" | sed -e 's/:.*$//'`
- # Check whether this is an Automake generated Makefile or not.
-@@ -7694,18 +8119,29 @@ echo "$as_me: executing $ac_dest command
- # each Makefile.in and add a new line on top of each file to say so.
- # So let's grep whole file.
- if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
-- dirpart=`(dirname "$mf") 2>/dev/null ||
-+ dirpart=`$as_dirname -- "$mf" ||
- $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$mf" : 'X\(//\)[^/]' \| \
- X"$mf" : 'X\(//\)$' \| \
-- X"$mf" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
-+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$mf" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)[^/].*/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\).*/{
-+ s//\1/
-+ q
-+ }
-+ s/.*/./; q'`
- else
- continue
- fi
-@@ -7727,53 +8163,79 @@ echo X"$mf" |
- sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
- # Make sure the directory exists.
- test -f "$dirpart/$file" && continue
-- fdir=`(dirname "$file") 2>/dev/null ||
-+ fdir=`$as_dirname -- "$file" ||
- $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
-- X"$file" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
-+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$file" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-- { if $as_mkdir_p; then
-- mkdir -p $dirpart/$fdir
-- else
-- as_dir=$dirpart/$fdir
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)[^/].*/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\).*/{
-+ s//\1/
-+ q
-+ }
-+ s/.*/./; q'`
-+ { as_dir=$dirpart/$fdir
-+ case $as_dir in #(
-+ -*) as_dir=./$as_dir;;
-+ esac
-+ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
- as_dirs=
-- while test ! -d "$as_dir"; do
-- as_dirs="$as_dir $as_dirs"
-- as_dir=`(dirname "$as_dir") 2>/dev/null ||
-+ while :; do
-+ case $as_dir in #(
-+ *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
-+ *) as_qdir=$as_dir;;
-+ esac
-+ as_dirs="'$as_qdir' $as_dirs"
-+ as_dir=`$as_dirname -- "$as_dir" ||
- $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
-- X"$as_dir" : 'X\(/\)' \| \
-- . : '\(.\)' 2>/dev/null ||
-+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$as_dir" |
-- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-- /^X\(\/\/\)$/{ s//\1/; q; }
-- /^X\(\/\).*/{ s//\1/; q; }
-- s/.*/./; q'`
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)[^/].*/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\/\)$/{
-+ s//\1/
-+ q
-+ }
-+ /^X\(\/\).*/{
-+ s//\1/
-+ q
-+ }
-+ s/.*/./; q'`
-+ test -d "$as_dir" && break
- done
-- test ! -n "$as_dirs" || mkdir $as_dirs
-- fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
--echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
-+ test -z "$as_dirs" || eval "mkdir $as_dirs"
-+ } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-+echo "$as_me: error: cannot create directory $as_dir" >&2;}
- { (exit 1); exit 1; }; }; }
--
- # echo "creating $dirpart/$file"
- echo '# dummy' > "$dirpart/$file"
- done
- done
- ;;
-+
- esac
--done
--_ACEOF
-+done # for ac_tag
-
--cat >>$CONFIG_STATUS <<\_ACEOF
-
- { (exit 0); exit 0; }
- _ACEOF
diff --git a/package/sipsak/patches/patch-configure_ac b/package/sipsak/patches/patch-configure_ac
new file mode 100644
index 000000000..665ce59b2
--- /dev/null
+++ b/package/sipsak/patches/patch-configure_ac
@@ -0,0 +1,10 @@
+--- sipsak-0.9.8.1.orig/configure.ac 2021-01-08 06:31:40.000000000 +0100
++++ sipsak-0.9.8.1/configure.ac 2024-02-29 01:40:07.115755921 +0100
+@@ -14,7 +14,6 @@ AC_PROG_CC
+ if test "x$GCC" = "xyes"; then
+ CFLAGS="$CFLAGS -Wall"
+ fi
+-SIPSAK_GCC_STACK_PROTECT_CC
+ CHECK_PROG_DISTCC
+
+ AC_PROG_INSTALL
diff --git a/package/sipsak/patches/patch-header_f_c b/package/sipsak/patches/patch-header_f_c
deleted file mode 100644
index ed142ade5..000000000
--- a/package/sipsak/patches/patch-header_f_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- sipsak-0.9.6.orig/header_f.c 2006-01-28 22:11:50.000000000 +0100
-+++ sipsak-0.9.6/header_f.c 2016-09-23 18:49:25.092385094 +0200
-@@ -604,7 +604,7 @@ void print_message_line(char *message)
- }
-
- /* return pointer to the beginning of the message body */
--inline char* get_body(char *mes) {
-+char* get_body(char *mes) {
- char *cr;
-
- if ((cr = strstr(mes, "\r\n\r\n")) != NULL) {
diff --git a/package/sipsak/patches/patch-header_f_h b/package/sipsak/patches/patch-header_f_h
deleted file mode 100644
index 922599d28..000000000
--- a/package/sipsak/patches/patch-header_f_h
+++ /dev/null
@@ -1,9 +0,0 @@
---- sipsak-0.9.6.orig/header_f.h 2006-01-28 22:11:50.000000000 +0100
-+++ sipsak-0.9.6/header_f.h 2016-09-23 18:49:14.964003070 +0200
-@@ -61,5 +61,5 @@ void new_transaction(char *message);
-
- void print_message_line(char *message);
-
--inline char* get_body(char *mes);
-+char* get_body(char *mes);
- #endif
diff --git a/package/smartmontools/Makefile b/package/smartmontools/Makefile
new file mode 100644
index 000000000..0b480a09f
--- /dev/null
+++ b/package/smartmontools/Makefile
@@ -0,0 +1,31 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+# always use tab spaces as separator, no spaces
+PKG_NAME:= smartmontools
+PKG_VERSION:= 7.1
+PKG_RELEASE:= 1
+PKG_HASH:= 3f734d2c99deb1e4af62b25d944c6252de70ca64d766c4c7294545a2e659b846
+PKG_DESCR:= Tools to provide advanced warning of disk degradation
+PKG_SECTION:= sys/hw
+PKG_URL:= www.smartmontools.org
+PKG_SITES:= $(MASTER_SITE_SOURCEFORGE:=smartmontools/)
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SMARTMONTOOLS,smartmontools,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+smartmontools-install:
+ $(INSTALL_DIR) $(IDIR_SMARTMONTOOLS)/usr/sbin
+ $(INSTALL_BIN) $(WRKINST)/usr/sbin/smartctl \
+ $(IDIR_SMARTMONTOOLS)/usr/sbin
+ $(INSTALL_BIN) $(WRKINST)/usr/sbin/smartd \
+ $(IDIR_SMARTMONTOOLS)/usr/sbin
+ $(INSTALL_BIN) $(WRKINST)/usr/sbin/update-smart-drivedb \
+ $(IDIR_SMARTMONTOOLS)/usr/sbin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/sngrep/Makefile b/package/sngrep/Makefile
index f87eb7292..c4689be62 100644
--- a/package/sngrep/Makefile
+++ b/package/sngrep/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= sngrep
-PKG_VERSION:= 1.4.3
+PKG_VERSION:= 1.4.10
PKG_RELEASE:= 1
-PKG_HASH:= 7385ac202de6d6a1feffb2fd514600563133d9dfa7fb47be052de839abcc1d52
+PKG_HASH:= cedbe521c9730deda004bff71e88c8c56ae66d3d147ddc6f5f965df2ca67a8df
PKG_DESCR:= displaying sip calls message flows from terminal
PKG_SECTION:= net/debug
PKG_BUILDDEP:= libpcap ncurses
diff --git a/package/snort/Makefile b/package/snort/Makefile
index 26a532264..1c044e190 100644
--- a/package/snort/Makefile
+++ b/package/snort/Makefile
@@ -4,15 +4,15 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= snort
-PKG_VERSION:= 2.9.5
+PKG_VERSION:= 2.9.20
PKG_RELEASE:= 1
-PKG_HASH:= 1f9997716e8c086c9d608294a55c323846877c8f16acd129a90ca5fadbba1890
+PKG_HASH:= 29400e13f53b1831e0b8b10ec1224a1cbaa6dc1533a5322a20dd80bb84b4981c
PKG_DESCR:= flexible network intrusion detection system
PKG_SECTION:= net/security
PKG_DEPENDS:= libnet libpcap libpcre libtirpc daq
PKG_BUILDDEP:= libnet libpcap pcre libtirpc daq
PKG_URL:= http://www.snort.org/
-PKG_SITES:= http://distfiles.openadk.org/
+PKG_SITES:= https://www.snort.org/downloads/snort/
PKG_NOPARALLEL:= 1
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
@@ -23,9 +23,12 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,SNORT,snort,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+AUTOTOOL_STYLE:= autoreconf
TARGET_CPPFLAGS+= -I$(STAGING_TARGET_DIR)/usr/include/tirpc
TARGET_LDFLAGS+= -ltirpc
+CONFIGURE_ENV+= have_inaddr_none=yes
CONFIGURE_ARGS+= --disable-static-daq \
+ --disable-open-appid \
--with-libpcap-includes="${STAGING_TARGET_DIR}/usr/include" \
--with-libpcap-libraries="${STAGING_TARGET_DIR}/usr/lib" \
--with-libpcre-includes="${STAGING_TARGET_DIR}/usr/include" \
diff --git a/package/snort/patches/patch-configure b/package/snort/patches/patch-configure
index 3b197b010..915650ed6 100644
--- a/package/snort/patches/patch-configure
+++ b/package/snort/patches/patch-configure
@@ -1,6 +1,6 @@
---- snort-2.9.5.orig/configure 2013-06-04 23:21:55.000000000 +0200
-+++ snort-2.9.5/configure 2013-07-17 11:07:20.000000000 +0200
-@@ -14205,50 +14205,6 @@ _ACEOF
+--- snort-2.9.14.1.orig/configure 2019-08-02 08:33:43.000000000 +0200
++++ snort-2.9.14.1/configure 2019-10-08 14:35:23.506350397 +0200
+@@ -14408,50 +14408,6 @@ _ACEOF
fi
@@ -51,7 +51,7 @@
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-@@ -14578,45 +14534,6 @@ if test "x$LPCAP" = "xno"; then
+@@ -14861,45 +14817,6 @@ if test "x$LPCAP" = "xno"; then
fi
fi
@@ -97,9 +97,9 @@
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcap_lib_version" >&5
$as_echo_n "checking for pcap_lib_version... " >&6; }
-@@ -15432,38 +15349,7 @@ fi
- done
+@@ -15830,38 +15747,7 @@ fi
+ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for daq address space ID" >&5
-$as_echo_n "checking for daq address space ID... " >&6; }
diff --git a/package/snort/patches/patch-configure_in b/package/snort/patches/patch-configure_in
new file mode 100644
index 000000000..5ed8dc9f1
--- /dev/null
+++ b/package/snort/patches/patch-configure_in
@@ -0,0 +1,279 @@
+--- snort-2.9.14.1.orig/configure.in 2019-08-02 08:16:45.000000000 +0200
++++ snort-2.9.14.1/configure.in 2019-10-08 14:40:16.073097068 +0200
+@@ -70,8 +70,10 @@ case "$host" in
+ *-linux*)
+ linux="yes"
+ AC_DEFINE([LINUX],[1],[Define if Linux])
+- AC_SUBST(extra_incl)
+- extra_incl="-I/usr/include/pcap"
++ if test -z "x$with_libpcap_includes"; then
++ AC_SUBST(extra_incl)
++ extra_incl="-I/usr/include/pcap"
++ fi
+ ;;
+ *-hpux10*|*-hpux11*)
+ AC_DEFINE([HPUX],[1],[Define if HP-UX 10 or 11])
+@@ -282,8 +284,8 @@ AC_CHECK_TYPES([int8_t,int16_t,int32_t,i
+ AC_CHECK_TYPES([boolean])
+
+ # In case INADDR_NONE is not defined (like on Solaris)
++AC_CACHE_CHECK([for INADDR_NONE], [have_inaddr_none], [
+ have_inaddr_none="no"
+-AC_MSG_CHECKING([for INADDR_NONE])
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+@@ -296,7 +298,7 @@ AC_RUN_IFELSE(
+ return 0;
+ ]])],
+ [have_inaddr_none="yes"],
+-[have_inaddr_none="no"])
++[have_inaddr_none="no"])])
+ AC_MSG_RESULT($have_inaddr_none)
+ if test "x$have_inaddr_none" = "xno"; then
+ AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition])
+@@ -429,7 +431,7 @@ if test "x$LPCAP" = "xno"; then
+ fi
+
+ AC_MSG_CHECKING([for pcap_lex_destroy])
+-AC_RUN_IFELSE(
++AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+ #include <pcap.h>
+@@ -717,17 +719,11 @@ fi
+ AC_CHECK_FUNCS([daq_hup_apply] [daq_acquire_with_meta] [daq_dp_add_dc])
+
+ AC_MSG_CHECKING([for daq real addresses])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.n_real_dPort = 0;
+-]])],
+-[have_daq_real_addresses="yes"],
+-[have_daq_real_addresses="no"])
++
++AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.n_real_dPort],
++ [have_daq_real_addresses="yes"],
++ [have_daq_real_addresses="no"],
++ [[#include <daq.h>]])
+ AC_MSG_RESULT($have_daq_real_addresses)
+ if test "x$have_daq_real_addresses" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_REAL_ADDRESSES],[1],
+@@ -771,17 +767,11 @@ if test "x$ac_cv_func_daq_dp_add_dc" = "
+ fi
+
+ AC_MSG_CHECKING([for daq address space ID])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.address_space_id = 0;
+-]])],
+-[have_daq_address_space_id="yes"],
+-[have_daq_address_space_id="no"])
++
++AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.address_space_id],
++ [have_daq_address_space_id="yes"],
++ [have_daq_address_space_id="no"],
++ [[#include <daq.h>]])
+ AC_MSG_RESULT($have_daq_address_space_id)
+ if test "x$have_daq_address_space_id" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1],
+@@ -789,17 +779,10 @@ if test "x$have_daq_address_space_id" =
+ fi
+
+ AC_MSG_CHECKING([for daq flow ID])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.flow_id = 0;
+-]])],
+-[have_daq_flow_id="yes"],
+-[have_daq_flow_id="no"])
++AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.flow_id],
++ [have_daq_flow_id="yes"],
++ [have_daq_flow_id="no"],
++ [[#include <daq.h>]])
+ AC_MSG_RESULT($have_daq_flow_id)
+ if test "x$have_daq_flow_id" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_FLOW_ID],[1],
+@@ -807,19 +790,10 @@ if test "x$have_daq_flow_id" = "xyes"; t
+ fi
+
+ AC_MSG_CHECKING([for daq extended flow modifiers])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_ModFlow_t mod;
+- mod.type = 0;
+- mod.length = 0;
+- mod.value = NULL;
+-]])],
+-[have_daq_ext_modflow="yes"],
+-[have_daq_ext_modflow="no"])
++AC_CHECK_MEMBERS([DAQ_ModFlow_t mod.type, DAQ_ModFlow_t mod.length, DAQ_ModFlow_t mod.value],
++ [have_daq_ext_modflow="yes"],
++ [have_daq_ext_modflow="no"],
++ [[#include <daq.h>]])
+ AC_MSG_RESULT($have_daq_ext_modflow)
+ if test "x$have_daq_ext_modflow" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_EXT_MODFLOW"
+@@ -828,19 +802,11 @@ if test "x$have_daq_ext_modflow" = "xyes
+ fi
+
+ AC_MSG_CHECKING([for daq query flow])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_QueryFlow_t mod;
+- mod.type = 0;
+- mod.length = 0;
+- mod.value = NULL;
+-]])],
+-[have_daq_queryflow="yes"],
+-[have_daq_queryflow="no"])
++
++AC_CHECK_MEMBERS([DAQ_QueryFlow_t mod.type, DAQ_QueryFlow_t mod.length, DAQ_QueryFlow_t mod.value],
++ [have_daq_queryflow="yes"],
++ [have_daq_queryflow="no"],
++ [[#include <daq.h>]])
+ AC_MSG_RESULT($have_daq_queryflow)
+ if test "x$have_daq_queryflow" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_QUERYFLOW"
+@@ -849,16 +815,11 @@ if test "x$have_daq_queryflow" = "xyes";
+ fi
+
+ AC_MSG_CHECKING([for daq data channel flags])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_Data_Channel_Params_t params;
+-]])],
+-[have_daq_data_channel_flags="yes"],
+-[have_daq_data_channel_flags="no"])
++
++AC_CHECK_MEMBERS([DAQ_Data_Channel_Params_t params.flags],
++ [have_daq_data_channel_flags="yes"],
++ [have_daq_data_channel_flags="no"],
++ [[#include <daq.h>]])
+ AC_MSG_RESULT($have_daq_data_channel_flags)
+ if test "x$have_daq_data_channel_flags" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_PARAMS"
+@@ -867,17 +828,10 @@ if test "x$have_daq_data_channel_flags"
+ fi
+
+ AC_MSG_CHECKING([for separate IP versions on pinhole endpoints])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_DP_key_t dpKey;
+- dpKey.src_af = 0;
+-]])],
+-[have_daq_data_channel_separate_ip_versions="yes"],
+-[have_daq_data_channel_separate_ip_versions="no"])
++AC_CHECK_MEMBERS([DAQ_DP_key_t dpKey.src_af],
++ [have_daq_data_channel_separate_ip_versions="yes"],
++ [have_daq_data_channel_separate_ip_versions="no"],
++ [[#include <daq.h>]])
+ AC_MSG_RESULT($have_daq_data_channel_separate_ip_versions)
+ if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_SEPARATE_IP_VERSIONS"
+@@ -886,7 +840,7 @@ if test "x$have_daq_data_channel_separat
+ fi
+
+ AC_MSG_CHECKING([for DAQ_VERDICT_RETRY])
+-AC_RUN_IFELSE(
++AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+ #include <daq.h>
+@@ -904,17 +858,10 @@ if test "x$have_daq_verdict_retry" = "xy
+ fi
+
+ AC_MSG_CHECKING([for daq packet trace])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.flags = DAQ_PKT_FLAG_TRACE_ENABLED;
+-]])],
+-[have_daq_packet_trace="yes"],
+-[have_daq_packet_trace="no"])
++AC_CHECK_MEMBERS([DAQ_PktHdr_t hdr.flags],
++ [have_daq_packet_trace="yes"],
++ [have_daq_packet_trace="no"],
++ [[#include <daq.h>]])
+ AC_MSG_RESULT($have_daq_packet_trace)
+ if test "x$have_daq_packet_trace" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_PKT_TRACE],[1],
+@@ -924,17 +871,11 @@ else
+ fi
+
+ AC_MSG_CHECKING([for daq verdict reason])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_ModFlow_t fl;
+- fl.type = DAQ_MODFLOW_TYPE_VER_REASON;
+-]])],
+-[have_daq_verdict_reason="yes"],
+-[have_daq_verdict_reason="no"])
++
++AC_CHECK_MEMBERS([DAQ_ModFlow_t fl.type],
++ [have_daq_verdict_reason="yes"],
++ [have_daq_verdict_reason="no"],
++ [[#include <daq.h>]])
+ AC_MSG_RESULT($have_daq_verdict_reason)
+ if test "x$have_daq_verdict_reason" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_VERDICT_REASON],[1],
+@@ -959,10 +900,8 @@ fi
+
+ # check for sparc %time register
+ if eval "echo $host_cpu|grep -i sparc >/dev/null"; then
+- OLD_CFLAGS="$CFLAGS"
+- CFLAGS="$CFLAGS -mcpu=v9 "
+ AC_MSG_CHECKING([for sparc %time register])
+- AC_RUN_IFELSE(
++ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[]],
+ [[
+@@ -974,8 +913,6 @@ if eval "echo $host_cpu|grep -i sparc >/
+ AC_MSG_RESULT($sparcv9)
+ if test "x$sparcv9" = "xyes"; then
+ AC_DEFINE([SPARCV9],[1],[For sparc v9 with %time register])
+- else
+- CFLAGS="$OLD_CFLAGS"
+ fi
+ fi
+
diff --git a/package/snort/patches/patch-src_dynamic-preprocessors_appid_service_plugins_service_rpc_c b/package/snort/patches/patch-src_dynamic-preprocessors_appid_service_plugins_service_rpc_c
new file mode 100644
index 000000000..fee10a196
--- /dev/null
+++ b/package/snort/patches/patch-src_dynamic-preprocessors_appid_service_plugins_service_rpc_c
@@ -0,0 +1,11 @@
+--- snort-2.9.14.1.orig/src/dynamic-preprocessors/appid/service_plugins/service_rpc.c 2019-08-02 08:16:46.000000000 +0200
++++ snort-2.9.14.1/src/dynamic-preprocessors/appid/service_plugins/service_rpc.c 2019-10-08 14:40:22.925536140 +0200
+@@ -32,7 +32,7 @@
+ #include "flow.h"
+ #include "service_api.h"
+
+-#if defined(FREEBSD) || defined(OPENBSD)
++#if defined(FREEBSD) || defined(OPENBSD) || (defined(LINUX) && defined(__UCLIBC__) && !defined(__UCLIBC_HAS_RPC__) || !defined(__GLIBC__))
+ #include "rpc/rpc.h"
+ #endif
+
diff --git a/package/snort/patches/patch-src_target-based_sf_attribute_table_parser_c b/package/snort/patches/patch-src_target-based_sf_attribute_table_parser_c
deleted file mode 100644
index 4279b4a72..000000000
--- a/package/snort/patches/patch-src_target-based_sf_attribute_table_parser_c
+++ /dev/null
@@ -1,95 +0,0 @@
---- snort-2.9.5.orig/src/target-based/sf_attribute_table_parser.c 2013-06-04 23:23:12.000000000 +0200
-+++ snort-2.9.5/src/target-based/sf_attribute_table_parser.c 2013-07-17 11:10:59.000000000 +0200
-@@ -73,7 +73,6 @@ typedef int flex_int32_t;
- typedef unsigned char flex_uint8_t;
- typedef unsigned short int flex_uint16_t;
- typedef unsigned int flex_uint32_t;
--#endif /* ! C99 */
-
- /* Limits of integral types. */
- #ifndef INT8_MIN
-@@ -104,6 +103,8 @@ typedef unsigned int flex_uint32_t;
- #define UINT32_MAX (4294967295U)
- #endif
-
-+#endif /* ! C99 */
-+
- #endif /* ! FLEXINT_H */
-
- #ifdef __cplusplus
-@@ -160,7 +161,15 @@ typedef unsigned int flex_uint32_t;
-
- /* Size of default input buffer. */
- #ifndef YY_BUF_SIZE
-+#ifdef __ia64__
-+/* On IA-64, the buffer size is 16k, not 8k.
-+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
-+ * Ditto for the __ia64__ case accordingly.
-+ */
-+#define YY_BUF_SIZE 32768
-+#else
- #define YY_BUF_SIZE 16384
-+#endif /* __ia64__ */
- #endif
-
- /* The state buf must be large enough to hold one state per character in the main buffer.
-@@ -6264,7 +6273,7 @@ int sfat_parse(void);
- /* Rules Section.
- * All rules are in here prior to second "%%" seperator
- */
--#line 6268 "sf_attribute_table_parser.c"
-+#line 6277 "sf_attribute_table_parser.c"
-
- #define INITIAL 0
- #define waiting_for_comma_prior_to_data 1
-@@ -6345,7 +6354,12 @@ static int input (void );
-
- /* Amount of stuff to slurp up with each read. */
- #ifndef YY_READ_BUF_SIZE
-+#ifdef __ia64__
-+/* On IA-64, the buffer size is 16k, not 8k */
-+#define YY_READ_BUF_SIZE 16384
-+#else
- #define YY_READ_BUF_SIZE 8192
-+#endif /* __ia64__ */
- #endif
-
- /* Copy whatever the last rule matched to the standard output. */
-@@ -6364,7 +6378,7 @@ static int input (void );
- if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
- { \
- int c = '*'; \
-- unsigned n; \
-+ size_t n; \
- for ( n = 0; n < max_size && \
- (c = getc( sfatin )) != EOF && c != '\n'; ++n ) \
- buf[n] = (char) c; \
-@@ -6448,7 +6462,7 @@ YY_DECL
-
- #line 100 "sf_attribute_table_parser.l"
-
--#line 6452 "sf_attribute_table_parser.c"
-+#line 6466 "sf_attribute_table_parser.c"
-
- if ( !(yy_init) )
- {
-@@ -6842,7 +6856,7 @@ YY_RULE_SETUP
- #line 186 "sf_attribute_table_parser.l"
- ECHO;
- YY_BREAK
--#line 6846 "sf_attribute_table_parser.c"
-+#line 6860 "sf_attribute_table_parser.c"
-
- case YY_END_OF_BUFFER:
- {
-@@ -7558,8 +7572,8 @@ YY_BUFFER_STATE sfat_scan_string (yycons
-
- /** Setup the input buffer state to scan the given bytes. The next call to sfatlex() will
- * scan from a @e copy of @a bytes.
-- * @param bytes the byte buffer to scan
-- * @param len the number of bytes in the buffer pointed to by @a bytes.
-+ * @param yybytes the byte buffer to scan
-+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
- *
- * @return the newly allocated buffer state object.
- */
diff --git a/package/snort/patches/patch-tools_u2boat_Makefile_in b/package/snort/patches/patch-tools_u2boat_Makefile_in
index 495fab6c8..24fec7746 100644
--- a/package/snort/patches/patch-tools_u2boat_Makefile_in
+++ b/package/snort/patches/patch-tools_u2boat_Makefile_in
@@ -1,6 +1,6 @@
---- snort-2.9.5.orig/tools/u2boat/Makefile.in 2013-06-04 23:21:53.000000000 +0200
-+++ snort-2.9.5/tools/u2boat/Makefile.in 2013-07-17 11:21:52.000000000 +0200
-@@ -256,7 +256,7 @@ top_builddir = @top_builddir@
+--- snort-2.9.14.1.orig/tools/u2boat/Makefile.in 2019-08-02 08:33:42.000000000 +0200
++++ snort-2.9.14.1/tools/u2boat/Makefile.in 2019-10-08 14:35:23.514350918 +0200
+@@ -327,7 +327,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign
u2boat_SOURCES = u2boat.c u2boat.h
diff --git a/package/snort/patches/patch-tools_u2spewfoo_Makefile_in b/package/snort/patches/patch-tools_u2spewfoo_Makefile_in
index a8f36785d..8583bebb6 100644
--- a/package/snort/patches/patch-tools_u2spewfoo_Makefile_in
+++ b/package/snort/patches/patch-tools_u2spewfoo_Makefile_in
@@ -1,6 +1,6 @@
---- snort-2.9.5.orig/tools/u2spewfoo/Makefile.in 2013-06-04 23:21:54.000000000 +0200
-+++ snort-2.9.5/tools/u2spewfoo/Makefile.in 2013-07-17 11:24:18.000000000 +0200
-@@ -226,7 +226,7 @@ top_builddir = @top_builddir@
+--- snort-2.9.14.1.orig/tools/u2spewfoo/Makefile.in 2019-08-02 08:33:42.000000000 +0200
++++ snort-2.9.14.1/tools/u2spewfoo/Makefile.in 2019-10-08 14:35:23.526351677 +0200
+@@ -298,7 +298,7 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign
u2spewfoo_SOURCES = u2spewfoo.c
diff --git a/package/socat/Makefile b/package/socat/Makefile
index 9ffac2fd9..5cfdef06a 100644
--- a/package/socat/Makefile
+++ b/package/socat/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= socat
-PKG_VERSION:= 1.7.3.2
+PKG_VERSION:= 1.7.4.3
PKG_RELEASE:= 1
-PKG_HASH:= ce3efc17e3e544876ebce7cd6c85b3c279fda057b2857fcaaf67b9ab8bdaf034
+PKG_HASH:= d697245144731423ddbbceacabbd29447089ea223e9a439b28f9ff90d0dd216e
PKG_DESCR:= multipurpose relay
PKG_SECTION:= net/misc
PKG_NEEDS:= threads
diff --git a/package/sofia-sip/Makefile b/package/sofia-sip/Makefile
new file mode 100644
index 000000000..7e94193dc
--- /dev/null
+++ b/package/sofia-sip/Makefile
@@ -0,0 +1,28 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= sofia-sip
+PKG_VERSION:= 1.13.17
+PKG_RELEASE:= 1
+PKG_HASH:= daca3d961b6aa2974ad5d3be69ed011726c3e4d511b2a0d4cb6d878821a2de7a
+PKG_DESCR:= sip library
+PKG_SECTION:= libs/misc
+PKG_SITES:= https://github.com/freeswitch/sofia-sip/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SOFIA_SIP,sofia-sip,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+AUTOTOOL_STYLE:= bootstrap
+
+sofia-sip-install:
+ $(INSTALL_DIR) $(IDIR_SOFIA_SIP)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libsofia-sip*.so* \
+ $(IDIR_SOFIA_SIP)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/spandsp/Makefile b/package/spandsp/Makefile
new file mode 100644
index 000000000..a54a2fb9e
--- /dev/null
+++ b/package/spandsp/Makefile
@@ -0,0 +1,30 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= spandsp
+PKG_VERSION:= 7b0b8cf3d42b725405bcc63145de5e280265ce4e
+PKG_GIT:= hash
+PKG_RELEASE:= 1
+PKG_DESCR:= dsp library
+PKG_SECTION:= libs/misc
+PKG_BUILDDEP:= libtiff
+PKG_DEPENDS:= libtiff
+PKG_SITES:= https://github.com/freeswitch/spandsp.git
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SPANDSP,spandsp,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+AUTOTOOL_STYLE:= autogen
+CONFIGURE_ENV+= ac_cv_func_realloc_0_nonnull=yes
+CONFIGURE_ENV+= ac_cv_func_malloc_0_nonnull=yes
+
+spandsp-install:
+ $(INSTALL_DIR) $(IDIR_SPANDSP)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libspandsp*.so* \
+ $(IDIR_SPANDSP)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/spdlog/Makefile b/package/spdlog/Makefile
new file mode 100644
index 000000000..3d96eecb9
--- /dev/null
+++ b/package/spdlog/Makefile
@@ -0,0 +1,31 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= spdlog
+PKG_VERSION:= 1.9.2
+PKG_RELEASE:= 1
+PKG_HASH:= 6fff9215f5cb81760be4cc16d033526d1080427d236e86d70bb02994f85e3d38
+PKG_DESCR:= very fast, header-only/compiled, C++ logging library
+PKG_BUILDDEP:= fmt
+PKG_SECTION:= libs/misc
+PKG_SITES:= https://github.com/gabime/spdlog/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SPDLOG,spdlog,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+CONFIG_STYLE:= cmake
+CMAKE_FLAGS+= -DSPDLOG_BUILD_TESTS=OFF \
+ -DSPDLOG_BUILD_EXAMPLE=OFF \
+ -DSPDLOG_BUILD_BENCH=OFF \
+ -DSPDLOG_FMT_EXTERNAL=ON
+
+
+spdlog-install:
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/sqlalchemy/Makefile b/package/sqlalchemy/Makefile
new file mode 100644
index 000000000..35b1f34a6
--- /dev/null
+++ b/package/sqlalchemy/Makefile
@@ -0,0 +1,37 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+# always use tab spaces as separator, no spaces
+PKG_NAME:= SQLAlchemy
+PKG_VERSION:= 1.3.16
+PKG_RELEASE:= 1
+PKG_HASH:= 7224e126c00b8178dfd227bc337ba5e754b197a3867d33b9f30dc0208f773d70
+PKG_DESCR:= python database OR mapper
+PKG_SECTION:= dev/python
+PKG_URL:= https://www.sqlalchemy.org/
+PKG_SITES:= https://files.pythonhosted.org/packages/7f/4b/adfb1f03da7f50db054a5b728d32dbfae8937754cfa159efa0216a3758d1/
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SQLALCHEMY,sqlalchemy,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= manual
+BUILD_STYLE:= manual
+INSTALL_STYLE:= manual
+
+include $(ADK_TOPDIR)/mk/python3.mk
+
+do-build:
+ cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR) $(PYTHON) ./setup.py build
+ $(INSTALL_DIR) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages
+ cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR):$(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages $(PYTHON) ./setup.py install --prefix="$(WRKINST)/usr"
+
+do-install:
+ $(INSTALL_DIR) $(IDIR_SQLALCHEMY)/usr/lib/python$(PYTHON_VERSION)/site-packages
+ $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/*egg $(IDIR_SQLALCHEMY)/usr/lib/python$(PYTHON_VERSION)/site-packages/
+ $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/easy-install.pth $(IDIR_SQLALCHEMY)/usr/lib/python$(PYTHON_VERSION)/site-packages/$(PKG_NAME).pth
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/sqlite/Makefile b/package/sqlite/Makefile
index cf035471f..b9d695fbb 100644
--- a/package/sqlite/Makefile
+++ b/package/sqlite/Makefile
@@ -4,28 +4,30 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= sqlite
-PKG_VERSION:= 3.15.0
+PKG_VERSION:= 3.37.1
PKG_RELEASE:= 1
-PKG_HASH:= 77162da9b4a0336d7e77d5252b690662850f62b47c12d9125f74ab9de78ded27
+PKG_HASH:= 40f22a13bf38bbcd4c7ac79bcfb42a72d5aa40930c1f3f822e30ccce295f0f2e
PKG_DESCR:= embeddable sql database cli
PKG_SECTION:= sys/misc
PKG_BUILDDEP:= ncurses readline
-PKG_DEPENDS:= libsqlite
+PKG_DEPENDS:= libsqlite libreadline libncurses
PKG_URL:= http://www.sqlite.org/
-PKG_SITES:= http://www.sqlite.org/2016/
+PKG_SITES:= http://www.sqlite.org/2021/
PKG_LIBNAME:= libsqlite
PKG_OPTS:= dev
PKG_NOPARALLEL:= 1
-DISTFILES:= sqlite-autoconf-3150000.tar.gz
-WRKDIST= ${WRKDIR}/sqlite-autoconf-3150000
+DISTFILES:= sqlite-autoconf-3370100.tar.gz
+WRKDIST= ${WRKDIR}/sqlite-autoconf-3370100
PKG_SUBPKGS:= SQLITE_CLI LIBSQLITE
PKGSD_LIBSQLITE:= emeddable sql library
PKGSC_LIBSQLITE:= libs/db
+include ${ADK_TOPDIR}/mk/host.mk
include ${ADK_TOPDIR}/mk/package.mk
+$(eval $(call HOST_template,SQLITE,sqlite,${PKG_VERSION}-${PKG_RELEASE}))
$(eval $(call PKG_template,LIBSQLITE,libsqlite,${PKG_VERSION}-${PKG_RELEASE},${PKGSS_LIBSQLITE},${PKGSD_LIBSQLITE},${PKGSC_LIBSQLITE},${PKG_OPTS}))
$(eval $(call PKG_template,SQLITE_CLI,sqlite-cli,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
@@ -57,4 +59,5 @@ sqlite-cli-install:
${INSTALL_DIR} ${IDIR_SQLITE_CLI}/usr/bin
${INSTALL_BIN} ${WRKINST}/usr/bin/sqlite3 ${IDIR_SQLITE_CLI}/usr/bin
+include ${ADK_TOPDIR}/mk/host-bottom.mk
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/squid/Makefile b/package/squid/Makefile
index 665392d44..93fa2c328 100644
--- a/package/squid/Makefile
+++ b/package/squid/Makefile
@@ -4,18 +4,16 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= squid
-PKG_VERSION:= 3.5.26
+PKG_VERSION:= 6.1
PKG_RELEASE:= 1
-PKG_HASH:= baa1eecb7d6e18881f4455060d80ee7cb95ae7e2695fdccf7e21ccc8f879a982
+PKG_HASH:= 6b029096cf531fc7bf83a305efeb0fdb2628cd42a4d20a61e0ab22e85a39c4e7
PKG_DESCR:= web and cache proxy
PKG_SECTION:= net/proxy
PKG_DEPENDS:= libltdl
PKG_BUILDDEP:= libtool
PKG_NEEDS:= threads c++
PKG_URL:= http://www.squid-cache.org/
-PKG_SITES:= http://www.squid-cache.org/Versions/v3/3.5/
-
-PKG_SYSTEM_DEPENDS:= !mikrotik-rb532
+PKG_SITES:= http://www.squid-cache.org/Versions/v6/
PKG_SUBPKGS:= SQUID SQUID_MOD_BASIC_AUTH_GETPWNAM SQUID_MOD_BASIC_AUTH_NCSA
PKG_SUBPKGS+= SQUID_MOD_BASIC_AUTH_SMB SQUID_MOD_DIGEST_AUTH_FILE
@@ -42,8 +40,6 @@ PKGSN_SQUID_MOD_BASIC_AUTH_LDAP:= squid
PKGSS_SQUID_MOD_BASIC_AUTH_LDAP:= libopenldap
PKGSB_SQUID_MOD_BASIC_AUTH_LDAP:= openldap
-PKG_HOST_DEPENDS:= !netbsd !cygwin
-
ifneq (${ADK_PACKAGE_SQUID_MOD_BASIC_AUTH_GETPWNAM},)
BASIC_AUTH_HELPERS+= getpwnam
endif
@@ -116,52 +112,35 @@ $(eval $(call PKG_mod_template,SQUID_MOD_NTLM_AUTH_FAKE,ntlm_fake_auth))
TARGET_LDFLAGS+= -lpthread
HOST_CXXFLAGS+= -static-libstdc++
-AUTOTOOL_STYLE:= autoreconf
-CONFIGURE_ENV+= ac_cv_sizeof_void_p=4 \
- ac_cv_sizeof_short=2 \
- ac_cv_sizeof_int=4 \
- ac_cv_sizeof_long=4 \
- ac_cv_sizeof_long_long=8 \
- ac_cv_sizeof___int64=0 \
- ac_cv_sizeof_int16_t=2 \
- ac_cv_sizeof_uint16_t=2 \
- ac_cv_sizeof_u_int16_t=2 \
- ac_cv_sizeof_int32_t=4 \
- ac_cv_sizeof_uint32_t=4 \
- ac_cv_sizeof_u_int32_t=4 \
- ac_cv_sizeof_int64_t=8 \
- ac_cv_sizeof_uint64_t=8 \
- ac_cv_sizeof_u_int64_t=8 \
- ac_cv_func_setresuid=no \
- ac_cv_func_va_copy=no \
- ac_cv_func___va_copy=no \
+CONFIGURE_ENV+= ac_cv_func_setresuid=yes \
+ ac_cv_func_va_copy=yes \
+ ac_cv_func___va_copy=yes \
ac_cv_epoll_works=yes \
- ac_cv_lib_nsl_main=no \
ac_cv_func_strnstr=no \
- squid_cv_pf_inet6=yes \
- squid_cv_gnu_atomics=yes \
ac_cv_have_squid=yes
XAKE_FLAGS+= MKDIR_P="mkdir -p"
CONFIGURE_ARGS+= --datadir=/usr/share/squid \
--libexecdir=/usr/lib/squid \
--sysconfdir=/etc/squid \
+ --disable-arch-native \
--with-gnu-ld \
--enable-x-accelerator-vary \
--with-pthreads \
--with-dl \
--disable-debug-cbdata \
--disable-strict-error-checking \
+ --enable-dependency-tracking \
--enable-kill-parent-hack \
--enable-arp-acl \
--enable-err-languages=English \
--enable-default-err-language=English \
--enable-linux-netfilter \
- --enable-icmp \
--enable-underscores \
--enable-cache-digests \
--enable-referer-log \
--enable-delay-pools \
--without-libcap \
+ --enable-icmp \
--disable-snmp \
--disable-esi \
--disable-ssl \
@@ -183,8 +162,6 @@ squid-install: ${INSTALL_MODS_y} ${INSTALL_MODS_m}
${IDIR_SQUID}/etc/squid/
${INSTALL_DATA} ./files/squid.conf ${IDIR_SQUID}/etc/squid/
${INSTALL_DIR} ${IDIR_SQUID}/usr/share/squid/errors
- ${CP} ${WRKINST}/usr/share/squid/errors/en \
- ${IDIR_SQUID}/usr/share/squid/errors
${CP} ${WRKINST}/usr/share/squid/errors/templates \
${IDIR_SQUID}/usr/share/squid/errors
${CP} ${WRKINST}/usr/share/squid/icons ${IDIR_SQUID}/usr/share/squid/
diff --git a/package/squid/patches/patch-configure_ac b/package/squid/patches/patch-configure_ac
deleted file mode 100644
index 26d1ceac1..000000000
--- a/package/squid/patches/patch-configure_ac
+++ /dev/null
@@ -1,11 +0,0 @@
---- squid-3.5.26.orig/configure.ac 2017-06-01 15:55:25.000000000 +0200
-+++ squid-3.5.26/configure.ac 2017-06-13 02:16:52.536880342 +0200
-@@ -1368,7 +1368,7 @@ if test "x$with_openssl" = "xyes"; then
- AC_DEFINE(USE_OPENSSL,1,[OpenSSL support is available])
-
- # check for other specific broken implementations
-- SQUID_CHECK_OPENSSL_GETCERTIFICATE_WORKS
-+ #SQUID_CHECK_OPENSSL_GETCERTIFICATE_WORKS
- SQUID_CHECK_OPENSSL_CONST_SSL_METHOD
- SQUID_CHECK_OPENSSL_TXTDB
- SQUID_CHECK_OPENSSL_HELLO_OVERWRITE_HACK
diff --git a/package/squid/patches/patch-include_SquidNew_h b/package/squid/patches/patch-include_SquidNew_h
deleted file mode 100644
index 8223c3cb1..000000000
--- a/package/squid/patches/patch-include_SquidNew_h
+++ /dev/null
@@ -1,26 +0,0 @@
---- squid-3.5.26.orig/include/SquidNew.h 2017-06-01 15:49:00.000000000 +0200
-+++ squid-3.5.26/include/SquidNew.h 2017-06-13 03:13:51.928727436 +0200
-@@ -18,19 +18,19 @@
- */
- #include <new>
-
--_SQUID_EXTERNNEW_ void *operator new(size_t size) throw (std::bad_alloc)
-+_SQUID_EXTERNNEW_ void *operator new(size_t size) noexcept(false)
- {
- return xmalloc(size);
- }
--_SQUID_EXTERNNEW_ void operator delete (void *address) throw()
-+_SQUID_EXTERNNEW_ void operator delete (void *address) noexcept(true)
- {
- xfree(address);
- }
--_SQUID_EXTERNNEW_ void *operator new[] (size_t size) throw (std::bad_alloc)
-+_SQUID_EXTERNNEW_ void *operator new[] (size_t size) noexcept(false)
- {
- return xmalloc(size);
- }
--_SQUID_EXTERNNEW_ void operator delete[] (void *address) throw()
-+_SQUID_EXTERNNEW_ void operator delete[] (void *address) noexcept(true)
- {
- xfree(address);
- }
diff --git a/package/squid/patches/patch-libltdl_aclocal_m4 b/package/squid/patches/patch-libltdl_aclocal_m4
deleted file mode 100644
index 45b9c7e64..000000000
--- a/package/squid/patches/patch-libltdl_aclocal_m4
+++ /dev/null
@@ -1,14 +0,0 @@
---- squid-3.5.2.orig/libltdl/aclocal.m4 2015-02-18 06:17:49.000000000 -0600
-+++ squid-3.5.2/libltdl/aclocal.m4 2015-02-23 15:31:16.264583929 -0600
-@@ -486,9 +486,9 @@ _AM_IF_OPTION([no-define],,
- # Some tools Automake needs.
- AC_REQUIRE([AM_SANITY_CHECK])dnl
- AC_REQUIRE([AC_ARG_PROGRAM])dnl
--AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
-+AM_MISSING_PROG([ACLOCAL], [aclocal])
- AM_MISSING_PROG([AUTOCONF], [autoconf])
--AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
-+AM_MISSING_PROG([AUTOMAKE], [automake])
- AM_MISSING_PROG([AUTOHEADER], [autoheader])
- AM_MISSING_PROG([MAKEINFO], [makeinfo])
- AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
diff --git a/package/squid/patches/patch-src_Makefile_am b/package/squid/patches/patch-src_Makefile_am
deleted file mode 100644
index 17c26aea6..000000000
--- a/package/squid/patches/patch-src_Makefile_am
+++ /dev/null
@@ -1,11 +0,0 @@
---- squid-3.5.26.orig/src/Makefile.am 2017-06-01 15:49:00.000000000 +0200
-+++ squid-3.5.26/src/Makefile.am 2017-06-13 02:16:52.592883945 +0200
-@@ -968,7 +968,7 @@ cache_cf.o: cf_parser.cci
-
- # cf_gen builds the configuration files.
- cf_gen$(EXEEXT): $(cf_gen_SOURCES) $(cf_gen_DEPENDENCIES) cf_gen_defines.cci
-- $(BUILDCXX) $(BUILDCXXFLAGS) -o $@ $(srcdir)/cf_gen.cc -I$(srcdir) -I$(top_builddir)/include/ -I$(top_builddir)/src
-+ $(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) -o $@ $(srcdir)/cf_gen.cc -I$(srcdir) -I$(top_builddir)/include/ -I$(top_builddir)/src
-
- # squid.conf.default is built by cf_gen when making cf_parser.cci
- squid.conf.default squid.conf.documented: cf_parser.cci
diff --git a/package/squid/patches/patch-src_Makefile_in b/package/squid/patches/patch-src_Makefile_in
new file mode 100644
index 000000000..b355e75b2
--- /dev/null
+++ b/package/squid/patches/patch-src_Makefile_in
@@ -0,0 +1,11 @@
+--- squid-5.2.orig/src/Makefile.in 2021-10-03 17:04:37.000000000 +0200
++++ squid-5.2/src/Makefile.in 2021-11-16 13:09:30.751245296 +0100
+@@ -8142,7 +8142,7 @@ cache_cf.o: cf_parser.cci
+
+ # cf_gen builds the configuration files.
+ cf_gen$(EXEEXT): $(cf_gen_SOURCES) $(cf_gen_DEPENDENCIES) cf_gen_defines.cci
+- $(BUILDCXX) $(BUILDCXXFLAGS) -o $@ $(srcdir)/cf_gen.cc -I$(srcdir) -I$(top_builddir)/include/ -I$(top_builddir)/src
++ $(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) -o $@ $(srcdir)/cf_gen.cc -I$(srcdir) -I$(top_builddir)/include/ -I$(top_builddir)/src
+
+ # squid.conf.default is built by cf_gen when making cf_parser.cci
+ squid.conf.default squid.conf.documented: cf_parser.cci
diff --git a/package/squirrel/Makefile b/package/squirrel/Makefile
new file mode 100644
index 000000000..0739f8f8e
--- /dev/null
+++ b/package/squirrel/Makefile
@@ -0,0 +1,34 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+# always use tab spaces as separator, no spaces
+PKG_NAME:= squirrel
+PKG_VERSION:= 3.1
+PKG_RELEASE:= 1
+PKG_HASH:= 4845a7fb82e4740bde01b0854112e3bb92a0816ad959c5758236e73f4409d0cb
+PKG_DESCR:= the squirrel language
+PKG_SECTION:= dev/lang
+PKG_BUILDDEP:= cmake-host
+PKG_NEEDS:= c++
+PKG_URL:= squirrel-lang.org
+PKG_SITES:= $(MASTER_SITE_SOURCEFORGE:=squirrel/)
+DISTFILES:= $(PKG_NAME)_3_1_stable.tar.gz
+WRKDIST= $(WRKDIR)/$(PKG_NAME)3
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,SQUIRREL,squirrel,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIG_STYLE:= cmake
+
+squirrel-install:
+ $(INSTALL_DIR) $(IDIR_SQUIRREL)/usr/bin
+ $(INSTALL_DIR) $(IDIR_SQUIRREL)/usr/lib
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/sq \
+ $(IDIR_SQUIRREL)/usr/bin
+ $(CP) $(WRKINST)/usr/lib/libsq*.so* \
+ $(IDIR_SQUIRREL)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/strace/Makefile b/package/strace/Makefile
index 3b81ff802..dc4541f9c 100644
--- a/package/strace/Makefile
+++ b/package/strace/Makefile
@@ -4,15 +4,15 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= strace
-PKG_VERSION:= 4.24
+PKG_VERSION:= 6.8
PKG_RELEASE:= 1
-PKG_HASH:= 1f4e59fc1edfa2bfb4adf2a748623dc25b105ec79713dd84404199f91b0b0634
+PKG_HASH:= ba6950a96824cdf93a584fa04f0a733896d2a6bc5f0ad9ffe505d9b41e970149
PKG_DESCR:= system call trace program
PKG_SECTION:= app/debug
PKG_URL:= https://strace.io
PKG_SITES:= https://strace.io/files/$(PKG_VERSION)/
-PKG_ARCH_DEPENDS:= !h8300 !nds32
+PKG_ARCH_DEPENDS:= !h8300 !nds32 !cris
include ${ADK_TOPDIR}/mk/package.mk
@@ -29,12 +29,16 @@ TARGET_CPPFLAGS+= -DMSG_EXCEPT=020000 -D_LARGEFILE64_SOURCE=1
CONFIGURE_ENV+= st_cv_m32_mpers=no \
st_cv_mx32_mpers=no
endif
+ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
+TARGET_LDFLAGS+= -pthread
+endif
+AUTOTOOL_STYLE:= autoreconf
CONFIGURE_ARGS+= --enable-mpers=check
INSTALL_STYLE:= manual
do-install:
${INSTALL_DIR} ${IDIR_STRACE}/usr/sbin
- ${INSTALL_BIN} ${WRKBUILD}/strace ${IDIR_STRACE}/usr/sbin
+ ${INSTALL_BIN} ${WRKBUILD}/src/strace ${IDIR_STRACE}/usr/sbin
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/strace/patches/patch-ptrace_h b/package/strace/patches/patch-ptrace_h
deleted file mode 100644
index 930871ea0..000000000
--- a/package/strace/patches/patch-ptrace_h
+++ /dev/null
@@ -1,16 +0,0 @@
---- strace-4.15.orig/ptrace.h 2016-08-30 02:48:36.000000000 +0200
-+++ strace-4.15/ptrace.h 2016-12-18 23:14:42.295800537 +0100
-@@ -55,7 +55,13 @@ extern long ptrace(int, int, char *, lon
- # define ptrace_peeksiginfo_args XXX_ptrace_peeksiginfo_args
- #endif
-
-+#if defined(POWERPC)
-+#define pt_regs uapi_pt_regs
-+#endif
- #include <linux/ptrace.h>
-+#if defined(POWERPC)
-+#undef pt_regs
-+#endif
-
- #ifdef HAVE_STRUCT_IA64_FPREG
- # undef ia64_fpreg
diff --git a/package/strace/patches/riscv32.patch b/package/strace/patches/riscv32.patch
new file mode 100644
index 000000000..b3492845b
--- /dev/null
+++ b/package/strace/patches/riscv32.patch
@@ -0,0 +1,282 @@
+# --- T2-COPYRIGHT-NOTE-BEGIN ---
+# T2 SDE: package/*/strace/riscv32.patch
+# Copyright (C) 2021 - 2022 The T2 SDE Project
+#
+# This Copyright note is generated by scripts/Create-CopyPatch,
+# more information can be found in the files COPYING and README.
+#
+# This patch file is dual-licensed. It is available under the license the
+# patched project is licensed under, as long as it is an OpenSource license
+# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
+# of the GNU General Public License version 2 as used by the T2 SDE.
+# --- T2-COPYRIGHT-NOTE-END ---
+
+Signed-off-by: Alistair Francis <alistair.francis at wdc.com>
+---
+ Makefile.am | 20 ++++++++--------
+ configure.ac | 6 ++++-
+ dist/INSTALL | 2 +-
+ src/linux/{riscv64 => riscv}/arch_defs_.h | 16 +++++++++++++
+ src/linux/{riscv64 => riscv}/arch_regs.c | 0
+ src/linux/riscv/asm_stat.h | 26 +++++++++++++++++++++
+ src/linux/{riscv64 => riscv}/get_error.c | 0
+ src/linux/{riscv64 => riscv}/get_scno.c | 0
+ src/linux/{riscv64 => riscv}/get_syscall_args.c | 0
+ src/linux/{riscv64 => riscv}/ioctls_arch0.h | 0
+ src/linux/riscv/ioctls_inc0.h | 7 ++++++
+ src/linux/{riscv64 => riscv}/raw_syscall.h | 0
+ src/linux/{riscv64 => riscv}/set_error.c | 0
+ src/linux/{riscv64 => riscv}/set_scno.c | 0
+ src/linux/{riscv64 => riscv}/syscallent.h | 8 ++++++-
+ src/linux/riscv64/ioctls_inc0.h | 1 -
+ src/riscv.c | 4 ++--
+ 17 files changed, 74 insertions(+), 16 deletions(-)
+ create mode 100644 src/linux/riscv/arch_defs_.h
+ rename src/linux/{riscv64 => src/riscv}/arch_regs.c (100%)
+ create mode 100644 src/linux/riscv/asm_stat.h
+ rename src/linux/{riscv64 => src/riscv}/get_error.c (100%)
+ rename src/linux/{riscv64 => src/riscv}/get_scno.c (100%)
+ rename src/linux/{riscv64 => src/riscv}/get_syscall_args.c (100%)
+ rename src/linux/{riscv64 => src/riscv}/ioctls_arch0.h (100%)
+ create mode 100644 src/linux/riscv/ioctls_inc0.h
+ rename src/linux/{riscv64 => src/riscv}/raw_syscall.h (100%)
+ rename src/linux/{riscv64 => src/riscv}/set_error.c (100%)
+ rename src/linux/{riscv64 => src/riscv}/set_scno.c (100%)
+ rename src/linux/{riscv64 => src/riscv}/syscallent.h (64%)
+ delete mode 100644 src/linux/riscv64/ioctls_inc0.h
+
+diff --git a/Makefile.am b/Makefile.am
+index 9c62218f..4955654b 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -802,19 +802,19 @@ extrA_DIST =
+ linux/powerpc64le/set_scno.c \
+ linux/powerpc64le/syscallent.h \
+ linux/powerpc64le/userent.h \
+- linux/riscv64/arch_defs_.h \
+- linux/riscv64/arch_prstatus_regset.c \
+- linux/riscv64/arch_prstatus_regset.h \
+- linux/riscv64/arch_regs.c \
+- linux/riscv64/get_error.c \
+- linux/riscv64/get_scno.c \
+- linux/riscv64/get_syscall_args.c \
+- linux/riscv64/ioctls_arch0.h \
+- linux/riscv64/ioctls_inc0.h \
+- linux/riscv64/raw_syscall.h \
+- linux/riscv64/set_error.c \
+- linux/riscv64/set_scno.c \
+- linux/riscv64/syscallent.h \
++ linux/riscv/arch_defs_.h \
++ linux/riscv/arch_prstatus_regset.c \
++ linux/riscv/arch_prstatus_regset.h \
++ linux/riscv/arch_regs.c \
++ linux/riscv/get_error.c \
++ linux/riscv/get_scno.c \
++ linux/riscv/get_syscall_args.c \
++ linux/riscv/ioctls_arch0.h \
++ linux/riscv/ioctls_inc0.h \
++ linux/riscv/raw_syscall.h \
++ linux/riscv/set_error.c \
++ linux/riscv/set_scno.c \
++ linux/riscv/syscallent.h \
+ linux/s390/arch_defs_.h \
+ linux/s390/arch_prstatus_regset.c \
+ linux/s390/arch_prstatus_regset.h \
+diff --git a/configure.ac b/configure.ac
+index dd4f13f4..4a53681c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -157,9 +157,12 @@
+ esac
+ fi
+ ;;
++riscv32*)
++ arch=riscv
++ AC_DEFINE([RISCV32], 1, [Define for the RISC-V 32-bit architecture])
++ ;;
+ riscv64*)
+- arch=riscv64
+- karch=riscv
++ arch=riscv
+ AC_DEFINE([RISCV64], 1, [Define for the RISC-V 64-bit architecture])
+ ;;
+ s390)
+diff --git a/dist/INSTALL b/dist/INSTALL
+index 0d22512b..19e059cf 100644
+--- a/INSTALL
++++ b/INSTALL
+@@ -63,7 +63,7 @@ Taking the aforementioned into account, there are the following requirements:
+
+ - gawk (at least version 3)
+ - Ability to compile for m32 personality (on architectures where it is supported)
+- - On x86_64, x32, powerpc64, sparc64, riscv64, tile64: gcc -m32
++ - On x86_64, x32, powerpc64, sparc64, riscv32, riscv64, tile64: gcc -m32
+ - s390x: gcc -m31
+ - AArch64: a separate compiler for armv7 EABI
+ - See information about configuration in "1.3.2. AArch64: AArch32 support"
+diff --git a/src/linux/riscv64/arch_defs_.h b/src/linux/riscv/arch_defs_.h
+similarity index 20%
+rename from src/linux/riscv64/arch_defs_.h
+rename to src/linux/riscv/arch_defs_.h
+index 0d22512b..19e059cf 100644
+--- a/src/linux/riscv64/arch_defs_.h
++++ b/src/linux/riscv/arch_defs_.h
+@@ -1 +1,8 @@
+-#define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_RISCV64, 0 }
++#if defined(RISCV32)
++# define ARCH_TIMESIZE 64
++# define HAVE_ARCH_TIME32_SYSCALLS 0
++# define HAVE_ARCH_OLD_TIME64_SYSCALLS 0
++# define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_RISCV32, 0 }
++#else
++# define PERSONALITY0_AUDIT_ARCH { AUDIT_ARCH_RISCV64, 0 }
++#endif
+diff --git a/src/linux/riscv64/arch_regs.c b/src/linux/riscv/arch_regs.c
+similarity index 100%
+rename from src/linux/riscv64/arch_regs.c
+rename to src/linux/riscv/arch_regs.c
+diff --git a/src/linux/riscv/asm_stat.h b/src/linux/riscv/asm_stat.h
+new file mode 100644
+index 00000000..73341454
+--- /dev/null
++++ b/src/linux/riscv/asm_stat.h
+@@ -0,0 +1,26 @@
++/*
++ * Copyright (c) 2020 The strace developers.
++ * All rights reserved.
++ *
++ * SPDX-License-Identifier: LGPL-2.1-or-later
++ */
++
++#ifndef STRACE_RISCV_ASM_STAT_H
++# define STRACE_RISCV_ASM_STAT_H
++
++# include "linux/generic/asm_stat.h"
++
++# if defined(RISCV32)
++# undef dev_t
++# undef ino_t
++# undef off64_t
++# undef off_t
++# undef time_t
++
++# define dev_t __kernel_loff_t
++# define ino_t __kernel_loff_t
++# define off64_t __kernel_off64_t
++# define off_t __kernel_off64_t
++# define time_t __kernel_time64_t
++# endif /* defined(RISCV32) */
++#endif /* !STRACE_RISCV_ASM_STAT_H */
+diff --git a/src/linux/riscv64/arch_prstatus_regset.h b/src/linux/riscv/arch_prstatus_regset.h
+similarity index 100%
+rename from src/linux/riscv64/arch_prstatus_regset.h
+rename to src/linux/riscv/arch_prstatus_regset.h
+diff --git a/src/linux/riscv64/arch_prstatus_regset.c b/src/linux/riscv/arch_prstatus_regset.c
+similarity index 100%
+rename from src/linux/riscv64/arch_prstatus_regset.c
+rename to src/linux/riscv/arch_prstatus_regset.c
+diff --git a/src/linux/riscv64/get_error.c b/src/linux/riscv/get_error.c
+similarity index 100%
+rename from src/linux/riscv64/get_error.c
+rename to src/linux/riscv/get_error.c
+diff --git a/src/linux/riscv64/get_scno.c b/src/linux/riscv/get_scno.c
+similarity index 100%
+rename from src/linux/riscv64/get_scno.c
+rename to src/linux/riscv/get_scno.c
+diff --git a/src/linux/riscv64/get_syscall_args.c b/src/linux/riscv/get_syscall_args.c
+similarity index 100%
+rename from src/linux/riscv64/get_syscall_args.c
+rename to src/linux/riscv/get_syscall_args.c
+diff --git a/src/linux/riscv64/ioctls_arch0.h b/src/linux/riscv/ioctls_arch0.h
+similarity index 100%
+rename from src/linux/riscv64/ioctls_arch0.h
+rename to src/linux/riscv/ioctls_arch0.h
+diff --git a/src/linux/riscv/ioctls_inc0.h b/src/linux/riscv/ioctls_inc0.h
+new file mode 100644
+index 00000000..cc39332f
+--- /dev/null
++++ b/src/linux/riscv/ioctls_inc0.h
+@@ -0,0 +1,7 @@
++#if defined(RISCV64)
++# include "../64/ioctls_inc.h"
++#elif defined(RISCV32)
++# include "../32/ioctls_inc.h"
++#else
++# error "Unsupported RISC-V xlen"
++#endif
+diff --git a/src/linux/riscv64/raw_syscall.h b/src/linux/riscv/raw_syscall.h
+similarity index 100%
+rename from src/linux/riscv64/raw_syscall.h
+rename to src/linux/riscv/raw_syscall.h
+diff --git a/src/linux/riscv64/set_error.c b/src/linux/riscv/set_error.c
+similarity index 100%
+rename from src/linux/riscv64/set_error.c
+rename to src/linux/riscv/set_error.c
+diff --git a/src/linux/riscv64/set_scno.c b/src/linux/riscv/set_scno.c
+similarity index 100%
+rename from src/linux/riscv64/set_scno.c
+rename to src/linux/riscv/set_scno.c
+diff --git a/src/linux/riscv64/syscallent.h b/src/linux/riscv/syscallent.h
+similarity index 64%
+rename from src/linux/riscv64/syscallent.h
+rename to src/linux/riscv/syscallent.h
+index 60c6ce58..c8fb3b8f 100644
+--- a/src/linux/riscv64/syscallent.h
++++ b/src/linux/riscv/syscallent.h
+@@ -5,7 +5,13 @@
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ */
+
+-#include "../64/syscallent.h"
++#if defined(RISCV64)
++# include "../64/syscallent.h"
++#elif defined(RISCV32)
++# include "../32/syscallent.h"
++#else
++# error "Unsupported RISC-V xlen"
++#endif
+
+ /* #define __NR_riscv_flush_icache (__NR_arch_specific_syscall + 15) */
+ [259] = { 3, TM, SEN(riscv_flush_icache), "riscv_flush_icache" },
+diff --git a/src/linux/riscv64/ioctls_inc0.h b/src/linux/riscv64/ioctls_inc0.h
+deleted file mode 100644
+index f9939faa..00000000
+--- a/src/linux/riscv64/ioctls_inc0.h
++++ /dev/null
+@@ -1 +0,0 @@
+-#include "../64/ioctls_inc.h"
+diff --git a/riscv.c b/riscv.c
+index 825eb293..20094ba5 100644
+--- a/src/riscv.c
++++ b/src/riscv.c
+@@ -9,7 +9,7 @@
+
+ #include "defs.h"
+
+-#ifdef RISCV64
++#if defined(RISCV64) || defined(RISCV32)
+
+ # include "xlat/riscv_flush_icache_flags.h"
+
+@@ -30,4 +30,4 @@ SYS_FUNC(riscv_flush_icache)
+ return RVAL_DECODED;
+ }
+
+-#endif /* RISCV64 */
++#endif /* defined(RISCV64) || defined(RISCV32) */
+--
+2.25.0
+
+--- strace-5.10/src/config.h.in.vanilla 2021-02-13 16:11:28.950662094 +0100
++++ strace-5.10/src/config.h.in 2021-02-13 16:12:01.681663752 +0100
+@@ -3776,6 +3779,9 @@
+ /* Define for the little endian PowerPC64 architecture. */
+ #undef POWERPC64LE
+
++/* Define for the RISC-V 32-bit architecture */
++#undef RISCV32
++
+ /* Define for the RISC-V 64-bit architecture */
+ #undef RISCV64
+
+
diff --git a/package/stress-ng/Makefile b/package/stress-ng/Makefile
index aece6e635..d9758801c 100644
--- a/package/stress-ng/Makefile
+++ b/package/stress-ng/Makefile
@@ -13,6 +13,8 @@ PKG_SITES:= http://kernel.ubuntu.com/~cking/tarballs/stress-ng/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+PKG_CFLINE_STRESS_NG:= depends on ADK_BROKEN
+
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,STRESS_NG,stress-ng,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
diff --git a/package/strongswan/Makefile b/package/strongswan/Makefile
index 6a215f0ff..790700436 100644
--- a/package/strongswan/Makefile
+++ b/package/strongswan/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= strongswan
-PKG_VERSION:= 5.6.3
+PKG_VERSION:= 5.9.5
PKG_RELEASE:= 1
-PKG_HASH:= 6691af8f15b172f466342a182d47e3f3c3c5188baf63cae104992938c3d37351
+PKG_HASH:= 6db028c9033dfd7cab578ca7e4b0075922cffec7af8bffc7d67cac67f348a5be
PKG_DESCR:= ipsec based vpn software
PKG_SECTION:= net/security
PKG_KDEPENDS:= net-key inet-esp xfrm-user inet-xfrm-mode-transport
diff --git a/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_ed_private_key_c b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_ed_private_key_c
new file mode 100644
index 000000000..f62478391
--- /dev/null
+++ b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_ed_private_key_c
@@ -0,0 +1,11 @@
+--- strongswan-5.8.1.orig/src/libstrongswan/plugins/openssl/openssl_ed_private_key.c 2018-12-14 16:48:24.000000000 +0100
++++ strongswan-5.8.1/src/libstrongswan/plugins/openssl/openssl_ed_private_key.c 2019-10-08 02:03:21.911114313 +0200
+@@ -15,7 +15,7 @@
+
+ #include <openssl/evp.h>
+
+-#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC)
++#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC) && !defined(LIBRESSL_VERSION_NUMBER)
+
+ #include "openssl_ed_private_key.h"
+
diff --git a/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_ed_public_key_c b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_ed_public_key_c
new file mode 100644
index 000000000..54ee502a2
--- /dev/null
+++ b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_ed_public_key_c
@@ -0,0 +1,11 @@
+--- strongswan-5.8.1.orig/src/libstrongswan/plugins/openssl/openssl_ed_public_key.c 2018-12-14 16:48:24.000000000 +0100
++++ strongswan-5.8.1/src/libstrongswan/plugins/openssl/openssl_ed_public_key.c 2019-10-08 02:04:00.045557843 +0200
+@@ -15,7 +15,7 @@
+
+ #include <openssl/evp.h>
+
+-#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC)
++#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC) && !defined(LIBRESSL_VERSION_NUMBER)
+
+ #include <openssl/x509.h>
+
diff --git a/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_plugin_c b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_plugin_c
index 401bd7a64..44915d63c 100644
--- a/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_plugin_c
+++ b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_plugin_c
@@ -1,6 +1,24 @@
---- strongswan-5.5.0.orig/src/libstrongswan/plugins/openssl/openssl_plugin.c 2016-06-30 16:20:10.000000000 +0200
-+++ strongswan-5.5.0/src/libstrongswan/plugins/openssl/openssl_plugin.c 2016-09-30 05:36:45.015692462 +0200
-@@ -573,7 +573,7 @@ plugin_t *openssl_plugin_create()
+--- strongswan-5.9.5.orig/src/libstrongswan/plugins/openssl/openssl_plugin.c 2022-01-08 12:54:02.000000000 +0100
++++ strongswan-5.9.5/src/libstrongswan/plugins/openssl/openssl_plugin.c 2022-03-21 16:41:08.736944525 +0100
+@@ -329,7 +329,7 @@ static private_key_t *openssl_private_ke
+ case EVP_PKEY_EC:
+ return openssl_ec_private_key_create(key, FALSE);
+ #endif
+-#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC)
++#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC) && !defined(LIBRESSL_VERSION_NUMBER)
+ case EVP_PKEY_ED25519:
+ case EVP_PKEY_ED448:
+ return openssl_ed_private_key_create(key, FALSE);
+@@ -481,7 +481,7 @@ static private_key_t *openssl_private_ke
+ case EVP_PKEY_EC:
+ return openssl_ec_private_key_create(key, TRUE);
+ #endif
+-#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC)
++#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC) && !defined(LIBRESSL_VERSION_NUMBER)
+ case EVP_PKEY_ED25519:
+ case EVP_PKEY_ED448:
+ return openssl_ed_private_key_create(key, TRUE);
+@@ -980,7 +980,7 @@ plugin_t *openssl_plugin_create()
},
);
diff --git a/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_plugin_c.orig b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_plugin_c.orig
new file mode 100644
index 000000000..2c88daa81
--- /dev/null
+++ b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_plugin_c.orig
@@ -0,0 +1,29 @@
+--- strongswan-5.8.1.orig/src/libstrongswan/plugins/openssl/openssl_plugin.c 2019-08-27 15:26:53.000000000 +0200
++++ strongswan-5.8.1/src/libstrongswan/plugins/openssl/openssl_plugin.c 2019-10-08 02:05:20.954742229 +0200
+@@ -310,7 +310,7 @@ static private_key_t *openssl_private_ke
+ case EVP_PKEY_EC:
+ return openssl_ec_private_key_create(key, FALSE);
+ #endif
+-#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC)
++#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC) && !defined(LIBRESSL_VERSION_NUMBER)
+ case EVP_PKEY_ED25519:
+ case EVP_PKEY_ED448:
+ return openssl_ed_private_key_create(key, FALSE);
+@@ -462,7 +462,7 @@ static private_key_t *openssl_private_ke
+ case EVP_PKEY_EC:
+ return openssl_ec_private_key_create(key, TRUE);
+ #endif
+-#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC)
++#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_EC) && !defined(LIBRESSL_VERSION_NUMBER)
+ case EVP_PKEY_ED25519:
+ case EVP_PKEY_ED448:
+ return openssl_ed_private_key_create(key, TRUE);
+@@ -814,7 +814,7 @@ plugin_t *openssl_plugin_create()
+ },
+ );
+
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
+ /* note that we can't call OPENSSL_cleanup() when the plugin is destroyed
+ * as we couldn't initialize the library again afterwards */
+ OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CONFIG |
diff --git a/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_rsa_private_key_c b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_rsa_private_key_c
new file mode 100644
index 000000000..1e459f0ef
--- /dev/null
+++ b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_rsa_private_key_c
@@ -0,0 +1,11 @@
+--- strongswan-5.9.5.orig/src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c 2021-12-29 12:08:27.000000000 +0100
++++ strongswan-5.9.5/src/libstrongswan/plugins/openssl/openssl_rsa_private_key.c 2022-03-21 16:48:57.605794714 +0100
+@@ -280,7 +280,7 @@ METHOD(private_key_t, sign, bool,
+ return build_emsa_pkcs1_signature(this, NID_sha384, data, signature);
+ case SIGN_RSA_EMSA_PKCS1_SHA2_512:
+ return build_emsa_pkcs1_signature(this, NID_sha512, data, signature);
+-#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_SHA3)
++#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_SHA3) && !defined(LIBRESSL_VERSION_NUMBER)
+ case SIGN_RSA_EMSA_PKCS1_SHA3_224:
+ return build_emsa_pkcs1_signature(this, NID_sha3_224, data, signature);
+ case SIGN_RSA_EMSA_PKCS1_SHA3_256:
diff --git a/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_rsa_public_key_c b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_rsa_public_key_c
new file mode 100644
index 000000000..3571cad01
--- /dev/null
+++ b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_rsa_public_key_c
@@ -0,0 +1,11 @@
+--- strongswan-5.9.5.orig/src/libstrongswan/plugins/openssl/openssl_rsa_public_key.c 2021-12-29 12:08:27.000000000 +0100
++++ strongswan-5.9.5/src/libstrongswan/plugins/openssl/openssl_rsa_public_key.c 2022-03-21 16:49:30.581005593 +0100
+@@ -281,7 +281,7 @@ METHOD(public_key_t, verify, bool,
+ return verify_emsa_pkcs1_signature(this, NID_sha384, data, signature);
+ case SIGN_RSA_EMSA_PKCS1_SHA2_512:
+ return verify_emsa_pkcs1_signature(this, NID_sha512, data, signature);
+-#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_SHA3)
++#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_SHA3) && !defined(LIBRESSL_VERSION_NUMBER)
+ case SIGN_RSA_EMSA_PKCS1_SHA3_224:
+ return verify_emsa_pkcs1_signature(this, NID_sha3_224, data, signature);
+ case SIGN_RSA_EMSA_PKCS1_SHA3_256:
diff --git a/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_x_diffie_hellman_c b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_x_diffie_hellman_c
new file mode 100644
index 000000000..d5dc7efa0
--- /dev/null
+++ b/package/strongswan/patches/patch-src_libstrongswan_plugins_openssl_openssl_x_diffie_hellman_c
@@ -0,0 +1,11 @@
+--- strongswan-5.9.5.orig/src/libstrongswan/plugins/openssl/openssl_x_diffie_hellman.c 2022-01-08 12:54:02.000000000 +0100
++++ strongswan-5.9.5/src/libstrongswan/plugins/openssl/openssl_x_diffie_hellman.c 2022-03-21 16:41:08.744944336 +0100
+@@ -17,7 +17,7 @@
+
+ /* basic support for X25519 was added with 1.1.0a, but we require features (e.g.
+ * to load the keys) that were only added with 1.1.1 */
+-#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_ECDH)
++#if OPENSSL_VERSION_NUMBER >= 0x1010100fL && !defined(OPENSSL_NO_ECDH) && !defined(LIBRESSL_VERSION_NUMBER)
+
+ #include "openssl_x_diffie_hellman.h"
+ #include "openssl_util.h"
diff --git a/package/strongswan/patches/patch-src_starter_netkey_c b/package/strongswan/patches/patch-src_starter_netkey_c
deleted file mode 100644
index adb7e09eb..000000000
--- a/package/strongswan/patches/patch-src_starter_netkey_c
+++ /dev/null
@@ -1,18 +0,0 @@
---- strongswan-5.5.0.orig/src/starter/netkey.c 2016-04-22 22:01:35.000000000 +0200
-+++ strongswan-5.5.0/src/starter/netkey.c 2016-09-30 05:30:43.681874545 +0200
-@@ -42,6 +42,7 @@ bool starter_netkey_init(void)
- }
-
- /* make sure that all required IPsec modules are loaded */
-+ /*
- if (stat(PROC_MODULES, &stb) == 0)
- {
- ignore_result(system("modprobe -qv ah4"));
-@@ -50,6 +51,7 @@ bool starter_netkey_init(void)
- ignore_result(system("modprobe -qv xfrm4_tunnel"));
- ignore_result(system("modprobe -qv xfrm_user"));
- }
-+ */
-
- DBG2(DBG_APP, "found netkey IPsec stack");
- return TRUE;
diff --git a/package/subversion/Makefile b/package/subversion/Makefile
index 6dee93e16..0c42d76a1 100644
--- a/package/subversion/Makefile
+++ b/package/subversion/Makefile
@@ -4,13 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= subversion
-PKG_VERSION:= 1.9.5
+PKG_VERSION:= 1.14.1
PKG_RELEASE:= 1
-PKG_HASH:= 280ba586c5d51d7b976b65d22d5e8e42f3908ed1c968d71120dcf534ce857a83
+PKG_HASH:= dee2796abaa1f5351e6cc2a60b1917beb8238af548b20d3e1ec22760ab2f0cad
PKG_DESCR:= revision control program
PKG_SECTION:= dev/scm
-PKG_DEPENDS:= zlib apr apr-util libexpat libsqlite neon
-PKG_BUILDDEP:= apr-util expat apr zlib sqlite neon
+PKG_DEPENDS:= zlib apr apr-util libexpat libsqlite neon liblz4
+PKG_BUILDDEP:= apr-util expat apr zlib sqlite neon lz4
PKG_URL:= http://subversion.apache.org/
PKG_SITES:= http://artfiles.org/apache.org/subversion/
@@ -23,6 +23,7 @@ $(eval $(call PKG_template,SUBVERSION,subversion,${PKG_VERSION}-${PKG_RELEASE},$
TARGET_LDFLAGS+= -ltinfo
CONFIGURE_ARGS+= --with-apr=${STAGING_TARGET_DIR}/usr/bin/apr-1-config \
--with-apr-util=${STAGING_TARGET_DIR}/usr/bin/apr-1-config \
+ --with-utf8proc=internal \
--disable-mod-activation \
--disable-keychain \
--without-apxs \
diff --git a/package/sudo/Makefile b/package/sudo/Makefile
index 5d3f7530e..a4c5624dc 100644
--- a/package/sudo/Makefile
+++ b/package/sudo/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= sudo
-PKG_VERSION:= 1.8.20
+PKG_VERSION:= 1.9.15p5
PKG_RELEASE:= 1
-PKG_HASH:= 9e97b8da859c6cc1b5b8c31db93002b750eae16af1bbda9140f8dd85b970e0e0
+PKG_HASH:= 558d10b9a1991fb3b9fa7fa7b07ec4405b7aefb5b3cb0b0871dbc81e3a88e558
PKG_DESCR:= su do
PKG_SECTION:= sys/misc
PKG_NEEDS:= mmu
diff --git a/package/sudo/patches/patch-Makefile_in b/package/sudo/patches/patch-Makefile_in
deleted file mode 100644
index db7f2d624..000000000
--- a/package/sudo/patches/patch-Makefile_in
+++ /dev/null
@@ -1,11 +0,0 @@
---- sudo-1.8.12.orig/Makefile.in 2015-02-09 12:53:54.000000000 -0600
-+++ sudo-1.8.12/Makefile.in 2015-02-17 14:32:12.001362549 -0600
-@@ -49,7 +49,7 @@ sudoers_mode = @SUDOERS_MODE@
- shlib_mode = @SHLIB_MODE@
-
- SUBDIRS = lib/util @ZLIB_SRC@ plugins/group_file plugins/sudoers \
-- plugins/system_group src include doc examples
-+ plugins/system_group src include
-
- SAMPLES = plugins/sample
-
diff --git a/package/sudo/patches/patch-lib_util_Makefile_in b/package/sudo/patches/patch-lib_util_Makefile_in
deleted file mode 100644
index a05b6676e..000000000
--- a/package/sudo/patches/patch-lib_util_Makefile_in
+++ /dev/null
@@ -1,15 +0,0 @@
---- sudo-1.8.15.orig/lib/util/Makefile.in 2015-11-01 00:35:24.000000000 +0100
-+++ sudo-1.8.15/lib/util/Makefile.in 2015-11-03 16:29:33.000000000 +0100
-@@ -160,10 +160,10 @@ signame.c: mksigname
- ./mksigname > $@
-
- mksiglist: $(srcdir)/mksiglist.c $(srcdir)/mksiglist.h $(incdir)/sudo_compat.h $(top_builddir)/config.h
-- $(CC) $(CPPFLAGS) $(CFLAGS) $(srcdir)/mksiglist.c -o $@
-+ $(CC_FOR_BUILD) -I$(top_builddir) -I$(srcdir) -I$(top_srcdir) -I$(incdir) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFS) $(srcdir)/mksiglist.c -o $@
-
- mksigname: $(srcdir)/mksigname.c $(srcdir)/mksigname.h $(incdir)/sudo_compat.h $(top_builddir)/config.h
-- $(CC) $(CPPFLAGS) $(CFLAGS) $(srcdir)/mksigname.c -o $@
-+ $(CC_FOR_BUILD) -I$(top_builddir) -I$(srcdir) -I$(top_srcdir) -I$(incdir) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(DEFS) $(srcdir)/mksigname.c -o $@
-
- $(srcdir)/mksiglist.h: $(srcdir)/siglist.in
- @if [ -n "$(DEVEL)" ]; then \
diff --git a/package/supl/Makefile b/package/supl/Makefile
deleted file mode 100644
index 9d5dc4ad9..000000000
--- a/package/supl/Makefile
+++ /dev/null
@@ -1,35 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= supl
-PKG_VERSION:= 1.0.6
-PKG_RELEASE:= 1
-PKG_HASH:= 068dc47ce818ce5634f09a88159df85a6ce3456e2467b11b8c5f8543a99bb347
-PKG_DESCR:= tools for accessing sup/rrlp server
-PKG_SECTION:= net/misc
-PKG_DEPENDS:= libressl
-PKG_BUILDDEP:= libressl
-PKG_URL:= http://www.tajuma.com/supl/
-PKG_SITES:= $(MASTER_SITE_SOURCEFORGE:=supl/)
-
-DISTFILES:= $(PKG_NAME)_$(PKG_VERSION).tar.gz
-WRKDIST= $(WRKDIR)/trunk
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,SUPL,supl,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-CONFIG_STYLE:= minimal
-CONFIGURE_ARGS+= --prefix="$(WRKINST)/usr" \
- --precompiled-asn1=yes
-
-supl-install:
- $(INSTALL_DIR) $(IDIR_SUPL)/usr/{bin,lib}
- $(INSTALL_BIN) $(WRKINST)/usr/bin/supl-{cert,client,proxy} \
- $(IDIR_SUPL)/usr/bin
- $(CP) $(WRKINST)/usr/lib/lib{asnrrlp,asnsupl,supl}.so* \
- $(IDIR_SUPL)/usr/lib
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/supl/patches/patch-configure b/package/supl/patches/patch-configure
deleted file mode 100644
index 1c8f24d49..000000000
--- a/package/supl/patches/patch-configure
+++ /dev/null
@@ -1,11 +0,0 @@
---- trunk.orig/configure 2011-10-25 21:41:03.000000000 +0200
-+++ trunk/configure 2015-02-27 19:33:11.000000000 +0100
-@@ -91,7 +91,7 @@ cat <<EOF > config.mk
- # Modifications to this file are lost if ./configure is ran again.
-
- CONF_VERSION = 1.0.5
--CONF_CFLAGS = -Wall -O2 $var_debug
-+CONF_CFLAGS = -Wall $var_debug
- CONF_ASN_CFLAGS = $var_asn1_debug
- CONF_PREFIX = $var_prefix
- CONF_PRECOMPILED_ASN = $var_precompiled_asn
diff --git a/package/supl/patches/patch-src_Makefile b/package/supl/patches/patch-src_Makefile
deleted file mode 100644
index cec5a4771..000000000
--- a/package/supl/patches/patch-src_Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
- - use pkg-config everywhere, otherwise libs are not found
---- trunk.orig/src/Makefile 2011-10-17 20:09:22.000000000 +0200
-+++ trunk/src/Makefile 2015-02-09 16:48:37.244935714 +0100
-@@ -21,10 +21,10 @@ DIST = Makefile $(PROGRAM_SOURCE) $(SUPL
- all: supl-client supl-proxy supl-cert
-
- supl-client: libsupl.so supl-client.o
-- $(CC) -o $@ supl-client.o -L. -lsupl -lssl -lm
-+ $(CC) -o $@ supl-client.o -L. -lsupl $(shell pkg-config --libs openssl) -lm
-
- supl-proxy: libsupl.so supl-proxy.o
-- $(CC) -o $@ supl-proxy.o -L. -lsupl -lssl -lm
-+ $(CC) -o $@ supl-proxy.o -L. -lsupl $(shell pkg-config --libs openssl) -lm
-
- supl-cert: supl-cert.o
- $(CC) -o $@ supl-cert.o $(shell pkg-config --libs openssl) -lm
diff --git a/package/supl/patches/patch-src_supl-client_c b/package/supl/patches/patch-src_supl-client_c
deleted file mode 100644
index 15e2fa727..000000000
--- a/package/supl/patches/patch-src_supl-client_c
+++ /dev/null
@@ -1,40 +0,0 @@
- - implement bind to device functionality
---- trunk.orig/src/supl-client.c 2011-10-21 20:51:38.000000000 +0200
-+++ trunk/src/supl-client.c 2013-04-24 18:55:01.937252375 +0200
-@@ -252,6 +252,7 @@ static char *usage_str =
- " --cell gsm:mcc,mns:lac,ci|wcdma:mcc,msn,uc set current gsm/wcdma cell id\n"
- " --cell gsm:mcc,mns:lac,ci:lat,lon,uncert set known gsm cell id with position\n"
- " --format|-f human machine parseable output\n"
-+" --interface|-i iface bind to this interface\n"
- " --debug|-d <n> 1 == RRLP, 2 == SUPL, 4 == DEBUG\n"
- " --debug-file file write debug to file\n"
- " --help|-h show this help\n"
-@@ -267,6 +268,7 @@ static struct option long_opts[] = {
- { "cell", 1, 0, 0 },
- { "debug", 1, 0, 'd' },
- { "format", 1, 0, 'f' },
-+ { "interface", 1, 0, 0},
- { "test", 1, 0, 't' },
- { "set-pos", 1, 0, 0 },
- { "pos-helper", 1, 0, 0 },
-@@ -310,7 +312,7 @@ int main(int argc, char *argv[]) {
- int opt_index;
- int c;
-
-- c = getopt_long(argc, argv, "ad:f:t:", long_opts, &opt_index);
-+ c = getopt_long(argc, argv, "ad:f:i:t:", long_opts, &opt_index);
- if (c == -1) break;
- switch (c) {
- case 0:
-@@ -374,6 +376,11 @@ int main(int argc, char *argv[]) {
- }
- break;
-
-+ case 'i':
-+ strncpy(ctx.iface, optarg, IFNAMSIZ);
-+ ctx.iface[IFNAMSIZ] = 0;
-+ break;
-+
- case 'd':
- {
- int debug = atoi(optarg);
diff --git a/package/supl/patches/patch-src_supl_c b/package/supl/patches/patch-src_supl_c
deleted file mode 100644
index 26ab45b18..000000000
--- a/package/supl/patches/patch-src_supl_c
+++ /dev/null
@@ -1,46 +0,0 @@
- - implement bind to device functionality
---- trunk.orig/src/supl.c 2011-10-27 20:41:19.000000000 +0200
-+++ trunk/src/supl.c 2013-04-24 18:56:17.742529773 +0200
-@@ -41,7 +41,7 @@ static struct supl_debug_s {
- } debug;
- #endif
-
--static int server_connect(char *server);
-+static int server_connect(char *server, char *iface);
- static int pdu_make_ulp_start(supl_ctx_t *ctx, supl_ulp_t *pdu);
- static int pdu_make_ulp_pos_init(supl_ctx_t *ctx, supl_ulp_t *pdu);
- static int pdu_make_ulp_rrlp_ack(supl_ctx_t *ctx, supl_ulp_t *pdu, PDU_t *rrlp);
-@@ -236,7 +236,7 @@ int EXPORT supl_server_connect(supl_ctx_
- if (!ctx->ssl) return E_SUPL_CONNECT;
-
- if (server) {
-- ctx->fd = server_connect(server);
-+ ctx->fd = server_connect(server, ctx->iface);
- if (ctx->fd == -1) return E_SUPL_CONNECT;
- }
-
-@@ -266,7 +266,7 @@ void EXPORT supl_close(supl_ctx_t *ctx)
- }
-
-
--static int server_connect(char *server) {
-+static int server_connect(char *server, char *iface) {
- int fd = -1;
- struct addrinfo *ailist, *aip;
- struct addrinfo hint;
-@@ -283,6 +283,15 @@ static int server_connect(char *server)
- if ((fd = socket(aip->ai_family, SOCK_STREAM, 0)) < 0) {
- err = errno;
- }
-+
-+ if (strlen(iface)) {
-+ struct ifreq ifr;
-+ strncpy(ifr.ifr_name, iface, IFNAMSIZ);
-+ ifr.ifr_name[IFNAMSIZ - 1] = 0;
-+ if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr)))
-+ fprintf(stderr, "Error: binding to device %s failed\n", iface);
-+ }
-+
- if (connect(fd, aip->ai_addr, aip->ai_addrlen) != 0) {
- return -1;
- }
diff --git a/package/supl/patches/patch-src_supl_h b/package/supl/patches/patch-src_supl_h
deleted file mode 100644
index c2e9e8da4..000000000
--- a/package/supl/patches/patch-src_supl_h
+++ /dev/null
@@ -1,19 +0,0 @@
- - implement bind to device functionality
---- trunk.orig/src/supl.h 2011-10-21 20:08:29.000000000 +0200
-+++ trunk/src/supl.h 2013-04-24 18:52:14.916232733 +0200
-@@ -19,6 +19,7 @@
- #include <openssl/ssl.h>
- #include <PDU.h>
- #include <ULP-PDU.h>
-+#include <net/if.h>
-
- #define SUPL_PORT "7275"
-
-@@ -204,6 +205,7 @@ typedef struct supl_ctx_s {
- size_t size;
- } slp_session_id;
-
-+ char iface[IFNAMSIZ + 1];
- } supl_ctx_t;
-
- int supl_ctx_new(supl_ctx_t *ctx);
diff --git a/package/swig/Makefile b/package/swig/Makefile
index 79b428050..15069ec62 100644
--- a/package/swig/Makefile
+++ b/package/swig/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= swig
-PKG_VERSION:= 3.0.7
+PKG_VERSION:= 4.0.2
PKG_RELEASE:= 1
-PKG_HASH:= 06dc8816a225667ce1eee545af3caf87e1bbaa379c32838d4cea53152514348d
+PKG_HASH:= d53be9730d8d58a16bf0cbd1f8ac0c0c3e1090573168bfa151b01eb47fa906fc
PKG_DESCR:= swig utility
PKG_SECTION:= dev/tools
PKG_URL:= http://www.swig.org/
diff --git a/package/sysdig/Makefile b/package/sysdig/Makefile
deleted file mode 100644
index ddc36cd53..000000000
--- a/package/sysdig/Makefile
+++ /dev/null
@@ -1,48 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= sysdig
-PKG_VERSION:= ce24a1dd0925c0ed5df9c3e3e290817f536715cf
-PKG_GIT:= hash
-PKG_RELEASE:= 1
-PKG_DESCR:= system troubleshooting tool
-PKG_SECTION:= app/debug
-PKG_DEPENDS:= zlib jsoncpp luajit jq libressl libcurl
-PKG_BUILDDEP:= cmake-host zlib jsoncpp luajit jq libressl
-PKG_BUILDDEP+= curl
-PKG_KDEPENDS:= ftrace generic-tracer function-tracer
-PKG_NEEDS:= c++
-PKG_URL:= http://www.sysdig.org/
-PKG_SITES:= https://github.com/draios/sysdig.git
-
-PKG_SYSTEM_DEPENDS:= !mikrotik-rb532
-
-include $(ADK_TOPDIR)/mk/package.mk
-include $(ADK_TOPDIR)/mk/$(ADK_TARGET_OS)-ver.mk
-
-$(eval $(call PKG_template,SYSDIG,sysdig,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
-CONFIG_STYLE:= cmake
-CMAKE_FLAGS:= -DUSE_BUNDLED_DEPS=OFF -DUSE_BUNDLED_B64=ON
-XAKE_FLAGS+= KERNELDIR="$(LINUX_DIR)" \
- ARCH=$(ADK_TARGET_ARCH)
-
-sysdig-install:
- $(INSTALL_DIR) $(IDIR_SYSDIG)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/sysdig \
- $(IDIR_SYSDIG)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/csysdig \
- $(IDIR_SYSDIG)/usr/bin
- $(INSTALL_DIR) $(IDIR_SYSDIG)/usr/share
- $(CP) $(WRKINST)/usr/share/* \
- $(IDIR_SYSDIG)/usr/share
- ${INSTALL_DIR} ${IDIR_SYSDIG}/etc/modules.d/
- echo "sysdig-probe" > ${IDIR_SYSDIG}/etc/modules.d/90-sysdig
- ${INSTALL_DIR} ${IDIR_SYSDIG}/lib/modules/${KERNEL_VERSION}/
- ${INSTALL_DATA} ${WRKBUILD}/driver/sysdig-probe.ko \
- ${IDIR_SYSDIG}/lib/modules/${KERNEL_VERSION}
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/syslog-ng/Makefile b/package/syslog-ng/Makefile
index 81ac044f3..b2ce09edf 100644
--- a/package/syslog-ng/Makefile
+++ b/package/syslog-ng/Makefile
@@ -4,12 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= syslog-ng
-PKG_VERSION:= 3.14.1
+PKG_VERSION:= 4.6.0
PKG_RELEASE:= 1
-PKG_HASH:= 235b1ac46fe4f3b06b3e945d000276f07deb8243be05d63c04aff06ab6123b64
+PKG_HASH:= a5f8b089887767b5e87f523562fc3c6d5ef4dd320fc9b1f44953cb2d6bd50026
PKG_DESCR:= powerful syslog daemon
PKG_SECTION:= sys/misc
-PKG_BUILDDEP:= cmake-host glib ivykis libressl json-c libnet flex
+PKG_BUILDDEP:= cmake-host glib ivykis libressl json-c libnet
+PKG_BUILDDEP+= pcre flex
PKG_DEPENDS:= glib ivykis libressl json-c libnet
PKG_URL:= http://www.balabit.com/
PKG_SITES:= https://github.com/balabit/syslog-ng/archive/
@@ -26,7 +27,11 @@ CMAKE_FLAGS+= -DSYSLOG_NG_ENABLE_SYSTEMD=OFF \
-DSYSLOG_NG_ENABLE_TCP_WRAPPER=OFF \
-DENABLE_CURL=OFF \
-DENABLE_JAVA=OFF \
- -DENABLE_JAVA_MODULES=OFF
+ -DENABLE_PYTHON=OFF \
+ -DENABLE_JAVA_MODULES=OFF \
+ -DBUILD_TESTING=OFF \
+ -DENABLE_AFSNMP=OFF \
+ -DENABLE_EXAMPLE_MODULES=OFF
syslog-ng-install:
${INSTALL_DIR} ${IDIR_SYSLOG_NG}/usr/sbin \
diff --git a/package/syslog-ng/patches/patch-CMakeLists_txt b/package/syslog-ng/patches/patch-CMakeLists_txt
new file mode 100644
index 000000000..a5cd89d57
--- /dev/null
+++ b/package/syslog-ng/patches/patch-CMakeLists_txt
@@ -0,0 +1,10 @@
+--- syslog-ng-syslog-ng-4.6.0.orig/CMakeLists.txt 2024-01-25 10:09:33.000000000 +0100
++++ syslog-ng-syslog-ng-4.6.0/CMakeLists.txt 2024-02-13 15:32:51.471547962 +0100
+@@ -474,7 +474,6 @@ add_subdirectory(syslog-ng)
+ add_subdirectory(syslog-ng-ctl)
+ add_subdirectory(persist-tool)
+ add_subdirectory(tests)
+-add_subdirectory(libtest)
+
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/syslog-ng-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/syslog-ng-config.h)
+
diff --git a/package/sysstat/Makefile b/package/sysstat/Makefile
index bfba99de8..fb98f7d2b 100644
--- a/package/sysstat/Makefile
+++ b/package/sysstat/Makefile
@@ -4,17 +4,21 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= sysstat
-PKG_VERSION:= 11.4.4
+PKG_VERSION:= 12.7.5
PKG_RELEASE:= 1
-PKG_HASH:= 6585f08e24347d2d6462aee6ef97e80fe4cc869605193184500df0f80fa61cc8
+PKG_HASH:= a4d30e37c0c894214b941b51184723e19d492118c946cfdeac74b6d1f0068016
PKG_DESCR:= system monitoring and performance analysis
PKG_SECTION:= sys/utils
-PKG_SITES:= http://pagesperso-orange.fr/sebastien.godard/
+PKG_SITES:= https://github.com/sysstat/sysstat/archive/refs/tags/
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,SYSSTAT,sysstat,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+CONFIGURE_ENV+= sa_lib_dir=/usr/lib/sa
+
sysstat-install:
${INSTALL_DIR} ${IDIR_SYSSTAT}/usr/lib/sa
${INSTALL_DIR} ${IDIR_SYSSTAT}/usr/bin
diff --git a/package/sysstat/patches/patch-Makefile b/package/sysstat/patches/patch-Makefile
deleted file mode 100644
index 21cc0e994..000000000
--- a/package/sysstat/patches/patch-Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-$Id$
-
- removes manpages, some chown-stuff and the cron-stuff (no need for it)
- fixes cross-compilation
-
---- sysstat-7.0.3.orig/Makefile Sun Oct 22 16:27:03 2006
-+++ sysstat-7.0.3/Makefile Fri May 18 18:31:06 2007
-@@ -7,7 +7,7 @@ VERSION = 7.0.3
- include build/CONFIG
-
- # Compiler to use
--CC = gcc
-+CC ?= gcc
- # Other commands
- SED = sed
- CHMOD = chmod
-@@ -37,8 +37,9 @@ NLS_DIR = $(PREFIX)/share/locale
- SYSCONFIG_DIR = /etc/sysconfig
-
- # Compiler flags
--CFLAGS = -Wall -Wstrict-prototypes -pipe -O2 -fno-strength-reduce
--LFLAGS = -s
-+CFLAGS ?= -O2 -pipe
-+CFLAGS += -Wall -Wstrict-prototypes -fno-strength-reduce
-+LFLAGS = -s ${LDFLAGS}
- # SAS_DFLAGS may also contain SMP_RACE definition
- SAS_DFLAGS += -DSA_DIR=\"$(SA_DIR)\" -DSADC_PATH=\"$(SADC_PATH)\"
-
-@@ -179,10 +180,8 @@ endif
- .PHONY: clean distclean config install install_base install_all uninstall \
- uninstall_base uninstall_all dist bdist
-
--install_base: all man/sadc.8 man/sar.1 man/sadf.1 man/sa1.8 man/sa2.8 man/iostat.1
-+install_base: all
- mkdir -p $(DESTDIR)$(SA_LIB_DIR)
-- mkdir -p $(DESTDIR)$(MAN1_DIR)
-- mkdir -p $(DESTDIR)$(MAN8_DIR)
- mkdir -p $(DESTDIR)$(SA_DIR)
- ifeq ($(CLEAN_SA_DIR),y)
- rm -f $(DESTDIR)$(SA_DIR)/sa??
-@@ -191,19 +190,12 @@ endif
- mkdir -p $(DESTDIR)$(DOC_DIR)
- mkdir -p $(DESTDIR)$(SYSCONFIG_DIR)
- install -m 755 sa1 $(DESTDIR)$(SA_LIB_DIR)
-- install -m 644 $(MANGRPARG) man/sa1.8 $(DESTDIR)$(MAN8_DIR)
- install -m 755 sa2 $(DESTDIR)$(SA_LIB_DIR)
-- install -m 644 $(MANGRPARG) man/sa2.8 $(DESTDIR)$(MAN8_DIR)
- install -m 755 sadc $(DESTDIR)$(SA_LIB_DIR)
-- install -m 644 $(MANGRPARG) man/sadc.8 $(DESTDIR)$(MAN8_DIR)
- install -m 755 sar $(DESTDIR)$(BIN_DIR)
-- install -m 644 $(MANGRPARG) man/sar.1 $(DESTDIR)$(MAN1_DIR)
- install -m 755 sadf $(DESTDIR)$(BIN_DIR)
-- install -m 644 $(MANGRPARG) man/sadf.1 $(DESTDIR)$(MAN1_DIR)
- install -m 755 iostat $(DESTDIR)$(BIN_DIR)
-- install -m 644 $(MANGRPARG) man/iostat.1 $(DESTDIR)$(MAN1_DIR)
- install -m 755 mpstat $(DESTDIR)$(BIN_DIR)
-- install -m 644 $(MANGRPARG) man/mpstat.1 $(DESTDIR)$(MAN1_DIR)
- install -m 644 sysstat.ioconf $(DESTDIR)$(SYSCONFIG_DIR);
- install -m 644 CHANGES $(DESTDIR)$(DOC_DIR)
- install -m 644 COPYING $(DESTDIR)$(DOC_DIR)
-@@ -243,18 +235,6 @@ ifdef REQUIRE_NLS
- endif
-
- install_all: install_base
-- $(CHOWN) $(CRON_OWNER) $(DESTDIR)$(SA_DIR)
-- if [ -d $(DESTDIR)/etc/cron.d ]; then \
-- install -m 644 sysstat.crond $(DESTDIR)/etc/cron.d/sysstat; \
-- elif [ -d $(DESTDIR)/etc/cron.hourly -a -d $(DESTDIR)/etc/cron.daily ]; then \
-- install -m 755 sysstat.cron.hourly $(DESTDIR)/etc/cron.hourly/sysstat; \
-- install -m 755 sysstat.cron.daily $(DESTDIR)/etc/cron.daily/sysstat; \
-- else \
-- su $(CRON_OWNER) -c "crontab -l > /tmp/crontab-$(CRON_OWNER).save"; \
-- $(CP) -a /tmp/crontab-$(CRON_OWNER).save ./crontab-$(CRON_OWNER).`date '+%Y%m%d.%H%M%S'`.save; \
-- echo "USER PREVIOUS CRONTAB SAVED IN CURRENT DIRECTORY (USING .save SUFFIX)."; \
-- su $(CRON_OWNER) -c "crontab crontab"; \
-- fi
- if [ -d $(DESTDIR)$(INIT_DIR) ]; then \
- install -m 755 sysstat $(DESTDIR)$(INIT_DIR)/sysstat; \
- if [ -x $(CHKCONFIG) ]; then \
diff --git a/package/systemd/Makefile b/package/systemd/Makefile
deleted file mode 100644
index 7ded3c7b6..000000000
--- a/package/systemd/Makefile
+++ /dev/null
@@ -1,138 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= systemd
-PKG_VERSION:= 237
-PKG_RELEASE:= 1
-PKG_HASH:= c83dabbe1c9de6b9db1dafdb7e04140c7d0535705c68842f6c0768653ba4913c
-PKG_DESCR:= system and service manager
-PKG_SECTION:= base/init
-PKG_DEPENDS:= libcap libmount libuuid libblkid libncurses libkmod
-PKG_BUILDDEP:= intltool-host gperf-host libcap util-linux
-PKG_BUILDDEP+= gettext-host kmod meson-host ninja-host
-PKG_KDEPENDS:= inotify-user cgroups namespaces fhandle tmpfs-posix-acl tmpfs-xattr
-PKG_NEEDS:= locale intl
-PKG_URL:= https://wiki.freedesktop.org/www/Software/systemd/
-PKG_SITES:= https://github.com/systemd/systemd/archive/
-
-PKG_CFLINE_SYSTEMD:= select BUSYBOX_SULOGIN if ADK_RUNTIME_BASE_BUSYBOX
-PKG_LIBC_DEPENDS:= !musl
-
-PKG_FLAVOURS_SYSTEMD:= WITH_PAM WITH_XZ WITH_ZLIB
-PKGFD_WITH_PAM:= enable pam support
-PKGFS_WITH_PAM:= pam
-PKGFB_WITH_PAM:= pam
-PKGFD_WITH_XZ:= enable xz support
-PKGFS_WITH_XZ:= xz
-PKGFB_WITH_XZ:= xz
-PKGFD_WITH_ZLIB:= enable zlib support
-PKGFS_WITH_ZLIB:= zlib
-PKGFB_WITH_ZLIB:= zlib
-
-DISTFILES:= v$(PKG_VERSION).tar.gz
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,SYSTEMD,systemd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
-
-CONFIG_STYLE:= meson
-BUILD_STYLE:= meson
-INSTALL_STYLE:= meson
-
-MESON_FLAGS+= -Drootlibdir='/usr/lib' \
- -Dman=false \
- -Dima=false \
- -Dlibcryptsetup=false \
- -Defi=false \
- -Dgnu-efi=false \
- -Dldconfig=false \
- -Ddefault-dnssec=no \
- -Dtests=false \
- -Dkill-path=/usr/bin/kill \
- -Dkmod-path=/usr/bin/kmod \
- -Dkexec-path=/usr/sbin/kexec \
- -Dsulogin-path=/usr/sbin/sulogin \
- -Dmount-path=/usr/bin/mount \
- -Dumount-path=/usr/bin/umount \
- -Dacl=false \
- -Daudit=false \
- -Didn=false \
- -Dnss-systemd=false \
- -Dmyhostname=false \
- -Dresolve=false \
- -Dseccomp=false \
- -Dxkbcommon=false \
- -Dbzip2=false \
- -Dlz4=false \
- -Dlibcurl=false \
- -Dgcrypt=false \
- -Dqrencode=false \
- -Dmicrohttpd=false \
- -Dselinux=false \
- -Dhwdb=false \
- -Dbinfmt=false \
- -Dvconsole=false \
- -Dquotacheck=false \
- -Dbacklight=false \
- -Drfkill=false \
- -Dmachined=false \
- -Dimportd=false \
- -Dhostnamed=false \
- -Dlocaled=false \
- -Dcoredump=false \
- -Dsmack=false \
- -Dsysusers=false \
- -Dhibernate=false \
- -Dpolkit=false \
- -Dnetworkd=true \
- -Dtimesyncd=true \
- -Dtmpfiles=true \
- -Dfirstboot=true \
- -Drandomseed=true \
- -Dlogind=true \
- -Dtimedated=true
-
-
-ifeq ($(ADK_PACKAGE_SYSTEMD_WITH_PAM),y)
-MESON_FLAGS+= -Dpam=true
-else
-MESON_FLAGS+= -Dpam=false
-endif
-
-ifeq ($(ADK_PACKAGE_SYSTEMD_WITH_XZ),y)
-MESON_FLAGS+= -Dxz=true
-else
-MESON_FLAGS+= -Dxz=false
-endif
-
-ifeq ($(ADK_PACKAGE_SYSTEMD_WITH_ZLIB),y)
-MESON_FLAGS+= -Dzlib=true
-else
-MESON_FLAGS+= -Dzlib=false
-endif
-
-systemd-install:
- $(INSTALL_DIR) $(IDIR_SYSTEMD)/etc
- touch $(IDIR_SYSTEMD)/etc/machine-id
- $(CP) $(WRKINST)/etc/* \
- $(IDIR_SYSTEMD)/etc
- $(INSTALL_DIR) $(IDIR_SYSTEMD)/usr/lib
- $(CP) $(WRKINST)/usr/lib/*.so* \
- $(IDIR_SYSTEMD)/usr/lib
- $(CP) $(WRKINST)/usr/lib/{systemd,kernel,udev,sysctl.d,tmpfiles.d} \
- $(IDIR_SYSTEMD)/usr/lib
- $(INSTALL_DIR) $(IDIR_SYSTEMD)/usr/bin
- $(CP) $(WRKINST)/usr/bin/* \
- $(IDIR_SYSTEMD)/usr/bin
- $(INSTALL_DIR) $(IDIR_SYSTEMD)/usr/share
- $(CP) $(WRKINST)/usr/share/* \
- $(IDIR_SYSTEMD)/usr/share
- $(CP) ./files/*.network \
- $(IDIR_SYSTEMD)/etc/systemd/network
- (cd $(IDIR_SYSTEMD)/usr/lib/systemd/system && ln -sf multi-user.target default.target)
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/systemd/files/systemd.postinst b/package/systemd/files/systemd.postinst
deleted file mode 100644
index 76e213117..000000000
--- a/package/systemd/files/systemd.postinst
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-. $IPKG_INSTROOT/etc/functions.sh
-gid=$(get_next_gid)
-add_group utmp $gid
-gid=$(get_next_gid)
-add_group systemd-journal $gid
-gid=$(get_next_gid)
-add_group systemd-bus-proxy $gid
-add_user systemd-bus-proxy $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-journal-gateway $gid
-add_user systemd-journal-gateway $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-journal-remote $gid
-add_user systemd-journal-remote $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-journal-upload $gid
-add_user systemd-journal-upload $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-network $gid
-add_user systemd-network $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-resolve $gid
-add_user systemd-resolve $(get_next_uid) $gid /
-gid=$(get_next_gid)
-add_group systemd-timesync $gid
-add_user systemd-timesync $(get_next_uid) $gid /
diff --git a/package/systemd/files/wired.network b/package/systemd/files/wired.network
deleted file mode 100644
index 9613cc040..000000000
--- a/package/systemd/files/wired.network
+++ /dev/null
@@ -1,5 +0,0 @@
-[Match]
-Name=en*
-
-[Network]
-DHCP=ipv4
diff --git a/package/systemd/patches/patch-units_getty@_service_m4 b/package/systemd/patches/patch-units_getty@_service_m4
deleted file mode 100644
index 27bf00933..000000000
--- a/package/systemd/patches/patch-units_getty@_service_m4
+++ /dev/null
@@ -1,11 +0,0 @@
---- systemd-236.orig/units/getty@.service.m4 2017-12-14 23:09:57.000000000 +0100
-+++ systemd-236/units/getty@.service.m4 2018-01-01 18:46:35.149141863 +0100
-@@ -38,7 +38,7 @@ ConditionPathExists=/dev/tty0
- # The '-o' option value tells agetty to replace 'login' arguments with an
- # option to preserve environment (-p), followed by '--' for safety, and then
- # the entered username.
--ExecStart=-/sbin/agetty -o '-p -- \\u' --noclear %I $TERM
-+ExecStart=-/sbin/getty -L %I 115200 vt100
- Type=idle
- Restart=always
- RestartSec=0
diff --git a/package/systemd/patches/patch-units_serial-getty@_service_m4 b/package/systemd/patches/patch-units_serial-getty@_service_m4
deleted file mode 100644
index 08d8f74ff..000000000
--- a/package/systemd/patches/patch-units_serial-getty@_service_m4
+++ /dev/null
@@ -1,11 +0,0 @@
---- systemd-236.orig/units/serial-getty@.service.m4 2017-12-14 23:09:57.000000000 +0100
-+++ systemd-236/units/serial-getty@.service.m4 2018-01-01 18:46:35.157142052 +0100
-@@ -33,7 +33,7 @@ Before=rescue.service
- # The '-o' option value tells agetty to replace 'login' arguments with an
- # option to preserve environment (-p), followed by '--' for safety, and then
- # the entered username.
--ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM
-+ExecStart=-/sbin/getty -L %I 115200 vt100
- Type=idle
- Restart=always
- UtmpIdentifier=%I
diff --git a/package/sysvinit/Makefile b/package/sysvinit/Makefile
deleted file mode 100644
index f87f5d3a1..000000000
--- a/package/sysvinit/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= sysvinit
-PKG_VERSION:= 2.88dsf
-PKG_RELEASE:= 1
-PKG_HASH:= 60bbc8c1e1792056e23761d22960b30bb13eccc2cabff8c7310a01f4d5df1519
-PKG_DESCR:= systemV init
-PKG_SECTION:= base/init
-PKG_URL:= http://savannah.nongnu.org/projects/sysvinit
-PKG_SITES:= http://download.savannah.gnu.org/releases/sysvinit/
-
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,SYSVINIT,sysvinit,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-CONFIG_STYLE:= manual
-FAKE_FLAGS+= ROOT='$(WRKINST)'
-
-sysvinit-install:
- $(INSTALL_DIR) $(IDIR_SYSVINIT)/sbin
- $(INSTALL_BIN) $(WRKINST)/sbin/init \
- $(IDIR_SYSVINIT)/sbin
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/sysvinit/patches/patch-src_Makefile b/package/sysvinit/patches/patch-src_Makefile
deleted file mode 100644
index ed5c51757..000000000
--- a/package/sysvinit/patches/patch-src_Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
---- sysvinit-2.88dsf.orig/src/Makefile 2010-04-11 11:30:27.000000000 +0200
-+++ sysvinit-2.88dsf/src/Makefile 2016-10-28 18:59:43.000000000 +0200
-@@ -8,8 +8,9 @@
- # Version: @(#)Makefile 2.85-13 23-Mar-2004 miquels@cistron.nl
- #
-
--CPPFLAGS =
-+CPPFLAGS ?=
- CFLAGS ?= -ansi -O2 -fomit-frame-pointer
-+LDFLAGS ?=
- override CFLAGS += -W -Wall -D_GNU_SOURCE
- STATIC =
-
diff --git a/package/taglib/Makefile b/package/taglib/Makefile
index b79595790..9297caf75 100644
--- a/package/taglib/Makefile
+++ b/package/taglib/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= taglib
-PKG_VERSION:= 1.9.1
+PKG_VERSION:= 1.13.1
PKG_RELEASE:= 1
-PKG_HASH:= 72d371cd1419a87ae200447a53bff2be219283071e80fd12337928cc967dc71a
+PKG_HASH:= c8da2b10f1bfec2cd7dbfcd33f4a2338db0765d851a50583d410bacf055cfd0b
PKG_DESCR:= audio meta-data library
PKG_SECTION:= libs/audio
PKG_DEPENDS:= zlib
@@ -31,7 +31,7 @@ do-configure:
taglib-install:
$(INSTALL_DIR) $(IDIR_TAGLIB)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libtag*.so* \
+ -$(CP) $(WRKINST)/usr/lib/libtag*.so* \
$(IDIR_TAGLIB)/usr/lib
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/taglib/patches/patch-taglib_pc_cmake b/package/taglib/patches/patch-taglib_pc_cmake
deleted file mode 100644
index 2a468ba8c..000000000
--- a/package/taglib/patches/patch-taglib_pc_cmake
+++ /dev/null
@@ -1,19 +0,0 @@
---- taglib-1.8.orig/taglib.pc.cmake 2012-09-06 20:03:15.000000000 +0200
-+++ taglib-1.8/taglib.pc.cmake 2013-07-31 11:57:48.000000000 +0200
-@@ -1,11 +1,11 @@
- prefix=${CMAKE_INSTALL_PREFIX}
--exec_prefix=${CMAKE_INSTALL_PREFIX}
--libdir=${LIB_INSTALL_DIR}
--includedir=${INCLUDE_INSTALL_DIR}
-+exec_prefix=$prefix
-+libdir=$prefix/lib
-+includedir=$prefix/include
-
- Name: TagLib
- Description: Audio meta-data library
- Requires:
- Version: ${TAGLIB_LIB_MAJOR_VERSION}.${TAGLIB_LIB_MINOR_VERSION}.${TAGLIB_LIB_PATCH_VERSION}
--Libs: -L${LIB_INSTALL_DIR} -ltag
--Cflags: -I${INCLUDE_INSTALL_DIR}/taglib
-+Libs: -ltag
-+Cflags:
diff --git a/package/talloc/Makefile b/package/talloc/Makefile
index 865a95b47..a296a7306 100644
--- a/package/talloc/Makefile
+++ b/package/talloc/Makefile
@@ -4,12 +4,12 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= talloc
-PKG_VERSION:= 2.1.9
+PKG_VERSION:= 2.4.2
PKG_RELEASE:= 1
-PKG_HASH:= f0aad4cb88a3322207c82136ddc07bed48a37c2c21f82962d6c5ccb422711062
+PKG_HASH:= 85ecf9e465e20f98f9950a52e9a411e14320bc555fa257d87697b7e7a9b1d8a6
PKG_DESCR:= memory allocation library
PKG_SECTION:= libs/misc
-PKG_BUILDDEP:= python2-host python2
+PKG_BUILDDEP:= python3-host python3
PKG_URL:= https://talloc.samba.org/talloc/doc/html/index.html
PKG_SITES:= https://www.samba.org/ftp/talloc/
PKG_LIBNAME:= libtalloc
@@ -23,6 +23,7 @@ $(eval $(call PKG_template,LIBTALLOC,libtalloc,$(PKG_VERSION)-$(PKG_RELEASE),$(P
CONFIG_STYLE:= minimal
CONFIGURE_ARGS+= --prefix=/usr \
+ --disable-python \
--cross-compile \
--cross-answers=$(WRKSRC)/cache.txt \
--hostcc=gcc
diff --git a/package/tar/Makefile b/package/tar/Makefile
index 57b9d3ad3..7d1bb84c4 100644
--- a/package/tar/Makefile
+++ b/package/tar/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= tar
-PKG_VERSION:= 1.29
+PKG_VERSION:= 1.35
PKG_RELEASE:= 1
-PKG_HASH:= 402dcfd0022fd7a1f2c5611f5c61af1cd84910a760a44a688e18ddbff4e9f024
+PKG_HASH:= 4d62ff37342ec7aed748535323930c7cf94acf71c3591882b26a7ea50f3edc16
PKG_DESCR:= archiving application
PKG_SECTION:= app/archive
PKG_URL:= http://mirrors.kernel.org/gnu/tar/
diff --git a/package/tcpdump/Makefile b/package/tcpdump/Makefile
index 2d320f480..1bfaaa7b7 100644
--- a/package/tcpdump/Makefile
+++ b/package/tcpdump/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= tcpdump
-PKG_VERSION:= 4.9.0
+PKG_VERSION:= 4.99.4
PKG_RELEASE:= 1
-PKG_HASH:= eae98121cbb1c9adbedd9a777bf2eae9fa1c1c676424a54740311c8abcee5a5e
+PKG_HASH:= 0232231bb2f29d6bf2426e70a08a7e0c63a0d59a9b44863b7f5e2357a6e49fea
PKG_DESCR:= tool for network monitoring and data acquisition
PKG_SECTION:= net/debug
PKG_DEPENDS:= libpcap
@@ -39,7 +39,7 @@ XAKE_FLAGS+= CCOPT="${TARGET_CFLAGS}" \
INCLS="-I. -I${STAGING_TARGET_DIR}/usr/include"
tcpdump-install:
- ${INSTALL_DIR} ${IDIR_TCPDUMP}/usr/sbin
- ${INSTALL_BIN} ${WRKINST}/usr/sbin/tcpdump ${IDIR_TCPDUMP}/usr/sbin
+ ${INSTALL_DIR} ${IDIR_TCPDUMP}/usr/bin
+ ${INSTALL_BIN} ${WRKINST}/usr/bin/tcpdump ${IDIR_TCPDUMP}/usr/bin
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/tcsh/Makefile b/package/tcsh/Makefile
index 74e319ffd..b98f6136b 100644
--- a/package/tcsh/Makefile
+++ b/package/tcsh/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= tcsh
-PKG_VERSION:= 6.19.00
+PKG_VERSION:= 6.24.10
PKG_RELEASE:= 1
-PKG_HASH:= 12e271e0b89e4259d9d6e8d525322e77340e7244cfbd199a591e5f8146285c49
+PKG_HASH:= 13475c0fbeb74139d33ed793bf00ffbbb2ac2dc9fb1d44467a410760aba36664
PKG_DESCR:= alternative csh
PKG_SECTION:= base/shells
PKG_DEPENDS:= libncurses
diff --git a/package/tcsh/patches/patch-Makefile_in b/package/tcsh/patches/patch-Makefile_in
index d573b8df2..300c1632b 100644
--- a/package/tcsh/patches/patch-Makefile_in
+++ b/package/tcsh/patches/patch-Makefile_in
@@ -1,11 +1,11 @@
---- tcsh-6.19.00.orig/Makefile.in 2014-07-25 00:52:13.000000000 +0200
-+++ tcsh-6.19.00/Makefile.in 2015-11-07 23:08:07.000000000 +0100
-@@ -449,7 +449,7 @@ pure:$(P) ${OBJS}
+--- tcsh-6.24.10.orig/Makefile.in 2023-04-14 13:52:38.000000000 +0200
++++ tcsh-6.24.10/Makefile.in 2024-02-11 09:31:36.700281877 +0100
+@@ -506,7 +506,7 @@ pure:$(P) ${OBJS}
+ # emxbind tcsh
- gethost: gethost.c sh.err.h tc.const.h sh.h
- rm -f gethost
-- ${CC_FOR_GETHOST} -o gethost ${CPPFLAGS} ${CFLAGS} $(srcdir)/gethost.c
-+ ${CC_FOR_GETHOST} -o gethost $(srcdir)/gethost.c
+ gethost.${SUF}: gethost.c sh.err.h tc.const.h sh.h
+- ${CC_FOR_GETHOST} ${CF} ${CPPFLAGS} ${CFLAGS} $(srcdir)/gethost.c
++ ${CC_FOR_GETHOST} ${CF} $(srcdir)/gethost.c
- tc.defs.c: gethost host.defs
- @rm -f $@.tmp
+ gethost: gethost.${SUF}
+ rm -f gethost
diff --git a/package/tcsh/patches/patch-sh_h b/package/tcsh/patches/patch-sh_h
deleted file mode 100644
index 2882aefe9..000000000
--- a/package/tcsh/patches/patch-sh_h
+++ /dev/null
@@ -1,23 +0,0 @@
---- tcsh-6.19.00.orig/sh.h 2015-05-10 15:29:28.000000000 +0200
-+++ tcsh-6.19.00/sh.h 2015-11-07 23:06:35.000000000 +0100
-@@ -366,7 +366,7 @@ typedef long tcsh_number_t;
- # include <sys/filio.h>
- #endif /* (!FIOCLEX && SUNOS4) || (SYSVREL == 4 && !_SEQUENT_ && !SCO && !_SX ) */
-
--#if !defined(_MINIX) && !defined(supermax) && !defined(WINNT_NATIVE) && !defined(IRIS4D)
-+#if !defined(_MINIX) && !defined(supermax) && !defined(WINNT_NATIVE) && !defined(IRIS4D) && !defined(__FreeBSD__)
- # include <sys/file.h>
- #endif /* !_MINIX && !supermax && !WINNT_NATIVE && !defined(IRIS4D) */
-
-@@ -400,9 +400,11 @@ typedef long tcsh_number_t;
- #include <pwd.h>
- #include <grp.h>
- #endif /* WINNT_NATIVE */
-+#if !defined(BSD)
- #ifdef HAVE_SHADOW_H
- # include <shadow.h>
- #endif /* HAVE_SHADOW_H */
-+#endif
- #ifdef HAVE_AUTH_H
- # include <auth.h>
- #endif /* HAVE_AUTH_H */
diff --git a/package/tcsh/patches/patch-sh_proc_c b/package/tcsh/patches/patch-sh_proc_c
deleted file mode 100644
index 9b5e277ba..000000000
--- a/package/tcsh/patches/patch-sh_proc_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- tcsh-6.19.00.orig/sh.proc.c 2015-02-22 22:40:14.000000000 +0100
-+++ tcsh-6.19.00/sh.proc.c 2015-11-07 23:06:36.000000000 +0100
-@@ -47,7 +47,7 @@ RCSID("$tcsh: sh.proc.c,v 3.127 2015/02/
- # define HZ 16
- #endif /* aiws */
-
--#if defined(_BSD) || (defined(IRIS4D) && __STDC__) || defined(__lucid) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)
-+#if defined(_BSD) || (defined(IRIS4D) && __STDC__) || defined(__lucid) || defined(__GNU__) || defined(__GLIBC__)
- # if !defined(__ANDROID__)
- # define BSDWAIT
- # endif
diff --git a/package/tinc/Makefile b/package/tinc/Makefile
index b6a2f4540..14cc31a2a 100644
--- a/package/tinc/Makefile
+++ b/package/tinc/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= tinc
-PKG_VERSION:= 1.0.28
+PKG_VERSION:= 1.0.36
PKG_RELEASE:= 1
-PKG_HASH:= 0b502699360f09ce2128a39cf02abca07bfc699fc02ce829b3a90cf5e1e8b344
+PKG_HASH:= 40f73bb3facc480effe0e771442a706ff0488edea7a5f2505d4ccb2aa8163108
PKG_DESCR:= vpn tunnel daemon
PKG_SECTION:= net/security
PKG_DEPENDS:= zlib liblzo libressl
diff --git a/package/tinyproxy/Makefile b/package/tinyproxy/Makefile
index 933fb95e4..47894b558 100644
--- a/package/tinyproxy/Makefile
+++ b/package/tinyproxy/Makefile
@@ -4,33 +4,30 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= tinyproxy
-PKG_VERSION:= 1.8.4
+PKG_VERSION:= 1.11.0
PKG_RELEASE:= 1
-PKG_HASH:= 1999c88c43e31ff4cb5e8379b76776a65fa3d326eea868cb5f88ef58a8f631de
+PKG_HASH:= c1ec81cfc4c551d2c24e0227a5aeeaad8723bd9a39b61cd729e516b82eaa3f32
PKG_DESCR:= lightweight http and https proxy
PKG_SECTION:= net/proxy
PKG_URL:= https://tinyproxy.github.io
-PKG_SITES:= https://github.com/tinyproxy/tinyproxy/archive/
-
-DISTFILES:= $(PKG_VERSION).tar.gz
+PKG_SITES:= https://github.com/tinyproxy/tinyproxy/releases/download/$(PKG_VERSION)/
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,TINYPROXY,tinyproxy,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-AUTOTOOL_STYLE:= autoreconf
-CONFIGURE_ARGS+= --disable-regexcheck
+CONFIGURE_ARGS+= --disable-manpage_support
CONFIGURE_ENV+= ac_cv_func_malloc_0_nonnull=yes \
ac_cv_func_realloc_0_nonnull=yes
tinyproxy-install:
- $(INSTALL_DIR) $(IDIR_TINYPROXY)/usr/sbin
- $(INSTALL_DIR) $(IDIR_TINYPROXY)/etc
+ $(INSTALL_DIR) $(IDIR_TINYPROXY)/usr/bin
+ $(INSTALL_DIR) $(IDIR_TINYPROXY)/etc/tinyproxy
$(INSTALL_DIR) $(IDIR_TINYPROXY)/usr/share/tinyproxy
$(INSTALL_DATA) ./files/tinyproxy.conf \
- $(IDIR_TINYPROXY)/etc
- $(INSTALL_BIN) $(WRKINST)/usr/sbin/tinyproxy \
- $(IDIR_TINYPROXY)/usr/sbin/
+ $(IDIR_TINYPROXY)/etc/tinyproxy/
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/tinyproxy \
+ $(IDIR_TINYPROXY)/usr/bin/
$(INSTALL_DATA) $(WRKINST)/usr/share/tinyproxy/{default,stats,debug}.html \
$(IDIR_TINYPROXY)/usr/share/tinyproxy/
diff --git a/package/tinyproxy/files/tinyproxy.conf b/package/tinyproxy/files/tinyproxy.conf
index 798231b12..c9ee8d178 100644
--- a/package/tinyproxy/files/tinyproxy.conf
+++ b/package/tinyproxy/files/tinyproxy.conf
@@ -137,28 +137,6 @@ PidFile "/var/run/tinyproxy/tinyproxy.pid"
MaxClients 100
#
-# These settings set the upper and lower limit for the number of
-# spare servers which should be available. If the number of spare servers
-# falls below MinSpareServers then new ones will be created. If the number
-# of servers exceeds MaxSpareServers then the extras will be killed off.
-#
-MinSpareServers 5
-MaxSpareServers 20
-
-#
-# Number of servers to start initially.
-#
-StartServers 10
-
-#
-# MaxRequestsPerChild is the number of connections a thread will handle
-# before it is killed. In practise this should be set to 0, which disables
-# thread reaping. If you do notice problems with memory leakage, then set
-# this to something like 10000
-#
-MaxRequestsPerChild 0
-
-#
# The following is the authorization controls. If there are any access
# control keywords then the default action is to DENY. Otherwise, the
# default action is ALLOW.
diff --git a/package/tinyproxy/files/tinyproxy.init b/package/tinyproxy/files/tinyproxy.init
index e0a8b9a81..9a140db56 100644
--- a/package/tinyproxy/files/tinyproxy.init
+++ b/package/tinyproxy/files/tinyproxy.init
@@ -13,10 +13,10 @@ autostart)
start)
mkdir -p /var/run/tinyproxy
chown tinyproxy.tinyproxy /var/run/tinyproxy
- /usr/sbin/tinyproxy
+ /usr/bin/tinyproxy
;;
stop)
- kill $(pgrep -f /usr/sbin/tinyproxy)
+ kill $(pgrep -f /usr/bin/tinyproxy)
;;
restart)
sh $0 stop
diff --git a/package/tinyproxy/patches/patch-Makefile_am b/package/tinyproxy/patches/patch-Makefile_am
deleted file mode 100644
index 443ae2e78..000000000
--- a/package/tinyproxy/patches/patch-Makefile_am
+++ /dev/null
@@ -1,10 +0,0 @@
---- tinyproxy-1.8.3.orig/Makefile.am 2011-08-16 14:14:34.000000000 +0200
-+++ tinyproxy-1.8.3/Makefile.am 2014-04-07 08:43:20.000000000 +0200
-@@ -2,7 +2,6 @@ SUBDIRS = \
- src \
- data \
- etc \
-- docs \
- m4macros \
- tests
-
diff --git a/package/tinyproxy/patches/patch-configure_ac b/package/tinyproxy/patches/patch-configure_ac
deleted file mode 100644
index b3fd83dc9..000000000
--- a/package/tinyproxy/patches/patch-configure_ac
+++ /dev/null
@@ -1,27 +0,0 @@
---- tinyproxy-1.8.3.orig/configure.ac 2011-08-16 14:14:58.000000000 +0200
-+++ tinyproxy-1.8.3/configure.ac 2014-04-07 08:43:06.000000000 +0200
-@@ -282,24 +282,12 @@ AC_SUBST(CPPFLAGS)
- AC_SUBST(LIBS)
- AC_SUBST(ADDITIONAL_OBJECTS)
-
--# Check for asciidoc
--AC_PATH_PROG(A2X, a2x, no)
--AM_CONDITIONAL(HAVE_A2X, test "x$A2X" != "xno")
--if test x"$A2X" = x"no"; then
-- AC_MSG_ERROR([Test for asciidoc failed. See the file 'INSTALL' for help.])
--fi
--
- AC_CONFIG_FILES([
- Makefile
- src/Makefile
- data/Makefile
- data/templates/Makefile
- etc/Makefile
--docs/Makefile
--docs/man5/Makefile
--docs/man5/tinyproxy.conf.txt
--docs/man8/Makefile
--docs/man8/tinyproxy.txt
- m4macros/Makefile
- tests/Makefile
- tests/scripts/Makefile
diff --git a/package/tinyxml2/Makefile b/package/tinyxml2/Makefile
new file mode 100644
index 000000000..e1555bcec
--- /dev/null
+++ b/package/tinyxml2/Makefile
@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= tinyxml2
+PKG_VERSION:= 10.0.0
+PKG_RELEASE:= 1
+PKG_HASH:= 3bdf15128ba16686e69bce256cc468e76c7b94ff2c7f391cc5ec09e40bff3839
+PKG_DESCR:= small xml library
+PKG_SECTION:= libs/misc
+PKG_BUILDDEP+= meson-host
+PKG_SITES:= https://github.com/leethomason/tinyxml2/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,TINYXML2,tinyxml2,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+tinyxml2-install:
+ $(INSTALL_DIR) $(IDIR_TINYXML2)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libtinyxml2*.so* \
+ $(IDIR_TINYXML2)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/tmux/Makefile b/package/tmux/Makefile
index 868ce4abe..bd8d418f4 100644
--- a/package/tmux/Makefile
+++ b/package/tmux/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= tmux
-PKG_VERSION:= 2.7
+PKG_VERSION:= 3.2a
PKG_RELEASE:= 1
-PKG_HASH:= 9ded7d100313f6bc5a87404a4048b3745d61f2332f99ec1400a7c4ed9485d452
+PKG_HASH:= 551553a4f82beaa8dadc9256800bcc284d7c000081e47aa6ecbb6ff36eacd05f
PKG_DESCR:= terminal multiplexer
PKG_SECTION:= sys/utils
PKG_BUILDDEP:= libevent ncurses
PKG_DEPENDS:= libevent libncurses
-PKG_NEEDS:= threads
+PKG_NEEDS:= threads locale
PKG_URL:= http://tmux.github.io
PKG_SITES:= https://github.com/tmux/tmux/releases/download/$(PKG_VERSION)/
@@ -21,6 +21,7 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,TMUX,tmux,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+AUTOTOOL_STYLE:= autoreconf
TARGET_LDFLAGS+= -ltinfo
CONFIGURE_ARGS+= --disable-static
diff --git a/package/tmux/patches/patch-configure_ac b/package/tmux/patches/patch-configure_ac
new file mode 100644
index 000000000..1d70b17ca
--- /dev/null
+++ b/package/tmux/patches/patch-configure_ac
@@ -0,0 +1,22 @@
+--- tmux-3.2a.orig/configure.ac 2021-06-10 10:20:51.000000000 +0200
++++ tmux-3.2a/configure.ac 2022-03-16 12:00:53.916934376 +0100
+@@ -150,18 +150,10 @@ AC_REPLACE_FUNCS([ \
+ strlcpy \
+ strndup \
+ strsep \
++ strtonum \
+ ])
+ AC_FUNC_STRNLEN
+
+-# Check if strtonum works.
+-AC_MSG_CHECKING([for working strtonum])
+-AC_RUN_IFELSE([AC_LANG_PROGRAM(
+- [#include <stdlib.h>],
+- [return (strtonum("0", 0, 1, NULL) == 0 ? 0 : 1);]
+- )],
+- [AC_DEFINE(HAVE_STRTONUM) AC_MSG_RESULT(yes)],
+- [AC_LIBOBJ(strtonum) AC_MSG_RESULT(no)]
+-)
+
+ # Clang sanitizers wrap reallocarray even if it isn't available on the target
+ # system. When compiled it always returns NULL and crashes the program. To
diff --git a/package/tntnet/Makefile b/package/tntnet/Makefile
deleted file mode 100644
index 03d3b558e..000000000
--- a/package/tntnet/Makefile
+++ /dev/null
@@ -1,68 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include ${ADK_TOPDIR}/rules.mk
-
-PKG_NAME:= tntnet
-PKG_VERSION:= 2.2.1
-PKG_RELEASE:= 2
-PKG_HASH:= c83170d08ef04c5868051e1c28c74b9562fe71e9e8263828e755ad5bd3547521
-PKG_DESCR:= small c++ application server
-PKG_SECTION:= net/http
-PKG_DEPENDS:= cxxtools zlib
-PKG_BUILDDEP:= cxxtools zlib
-PKG_NEEDS:= threads c++
-PKG_URL:= http://www.tntnet.org/
-PKG_SITES:= http://www.tntnet.org/download/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
-PKG_CHOICES_TNTNET:= WITH_LIBRESSL WITH_GNUTLS WITHOUT_SSL
-PKGCD_WITH_LIBRESSL:= use libressl for crypto
-PKGCS_WITH_LIBRESSL:= libressl
-PKGCB_WITH_LIBRESSL:= libressl
-PKGCD_WITH_GNUTLS:= use gnutls for crypto
-PKGCS_WITH_GNUTLS:= libgnutls
-PKGCB_WITH_GNUTLS:= gnutls
-PKGCD_WITHOUT_SSL:= use no ssl
-
-include ${ADK_TOPDIR}/mk/package.mk
-
-$(eval $(call PKG_template,TNTNET,tntnet,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-ifeq (${ADK_PACKAGE_TNTNET_WITHOUT_SSL},y)
-CONFIGURE_ARGS+= --with-ssl=no
-endif
-ifeq (${ADK_PACKAGE_TNTNET_WITH_LIBRESSL},y)
-CONFIGURE_ARGS+= --with-ssl=openssl
-endif
-ifeq (${ADK_PACKAGE_TNTNET_WITH_GNUTLS},y)
-CONFIGURE_ARGS+= --with-ssl=gnutls
-endif
-
-CONFIGURE_ARGS+= --without-epoll \
- --without-sdk \
- --without-cgi \
- --disable-unittest \
- --disable-locale \
- --without-sendfile
-CONFIGURE_ENV+= CXXFLAGS='${TARGET_CXXFLAGS}' \
- ac_cv_path_cxxtools_config=${STAGING_TARGET_DIR}/usr/bin
-
-
-tntnet-install:
- ${INSTALL_DIR} ${IDIR_TNTNET}/www
- ${INSTALL_DIR} ${IDIR_TNTNET}/etc/tntnet
- ${INSTALL_DIR} ${IDIR_TNTNET}/usr/bin
- ${INSTALL_DIR} ${IDIR_TNTNET}/usr/lib/tntnet
- ${INSTALL_DATA} ./files/tntnet.{xml,properties} \
- ${IDIR_TNTNET}/etc/tntnet
- ${INSTALL_DATA} ./files/mime.conf \
- ${IDIR_TNTNET}/etc/tntnet
- ${CP} ${WRKINST}/usr/bin/tntnet ${IDIR_TNTNET}/usr/bin
- ${CP} ${WRKINST}/usr/lib/tntnet/tntnet.so* \
- ${IDIR_TNTNET}/usr/lib/tntnet
- ${CP} ${WRKINST}/usr/lib/libtntnet.so* \
- ${IDIR_TNTNET}/usr/lib
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/tntnet/files/mime.conf b/package/tntnet/files/mime.conf
deleted file mode 100644
index bab84a83d..000000000
--- a/package/tntnet/files/mime.conf
+++ /dev/null
@@ -1,22 +0,0 @@
-DefaultType text/html
-AddType text/plain .txt
-AddType text/html .html .htm .xhtml
-AddType image/png .png
-AddType image/gif .gif
-AddType image/bmp .bmp
-AddType application/x-tar .tgz
-AddType image/jpeg .jpeg .jpg
-AddType image/tif .tif .tiff
-AddType text/css .css
-AddType text/plain .asc
-AddType text/rtf .rtf
-AddType video/mpeg .mpeg .mpg .mpe
-AddType application/x-javascript .js
-AddType application/msword .doc .dot
-AddType application/pdf .pdf
-AddType application/postscript .ps .ai .eps
-AddType application/vnd.ms-excel .xls .xlb
-AddType application/vnd.ms-powerpoint .ppt .pps .pot
-AddType application/zip .zip
-AddType application/x-gtar .gtar .tgz .taz
-AddType application/x-java-archive .jar
diff --git a/package/tntnet/files/tntnet.conffiles b/package/tntnet/files/tntnet.conffiles
deleted file mode 100644
index def08bf81..000000000
--- a/package/tntnet/files/tntnet.conffiles
+++ /dev/null
@@ -1,3 +0,0 @@
-/etc/tntnet/tntnet.conf
-/etc/tntnet/tntnet.properties
-/etc/tntnet/mime.conf
diff --git a/package/tntnet/files/tntnet.init b/package/tntnet/files/tntnet.init
deleted file mode 100644
index 01bb7a00b..000000000
--- a/package/tntnet/files/tntnet.init
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-#PKG tntnet
-#INIT 90
-. /etc/rc.conf
-
-case $1 in
-autostop) ;;
-autostart)
- test x"${tntnet:-NO}" = x"NO" && exit 0
- test x"$tntnet" = x"DAEMON" && test -x /bin/mksh && exec mksh -T- $0 start
- exec sh $0 start
- ;;
-start)
- /usr/bin/tntnet /etc/tntnet/tntnet.conf
- ;;
-stop)
- kill $(pgrep -f /usr/bin/tntnet)
- ;;
-restart)
- sh $0 stop
- sh $0 start
- ;;
-*)
- echo "usage: $0 {start | stop | restart}"
- ;;
-esac
-exit $?
diff --git a/package/tntnet/files/tntnet.postinst b/package/tntnet/files/tntnet.postinst
deleted file mode 100644
index 7bdfea5bd..000000000
--- a/package/tntnet/files/tntnet.postinst
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-. $IPKG_INSTROOT/etc/functions.sh
-add_rcconf tntnet NO
-gid=$(get_next_gid)
-add_group tntnet $gid
-add_user tntnet $(get_next_uid) $gid /www
diff --git a/package/tntnet/files/tntnet.properties b/package/tntnet/files/tntnet.properties
deleted file mode 100644
index 3e1006411..000000000
--- a/package/tntnet/files/tntnet.properties
+++ /dev/null
@@ -1,31 +0,0 @@
-# sample logging-properties for application tntnet
-# put this in tntnet.properties and use:
-# log_init("tntnet.properties");
-# in your application to initialize logging
-#
-# define categories with:
-# log_define("some.category")
-# this defines a static function, so you must put it outside other functions.
-# you can define a category per file or a category per namespace.
-#
-# print logging-messages with:
-# log_fatal("some fatal message");
-# log_error("some error message");
-# log_warn("some warn message");
-# log_info("some info message");
-# log_debug("some debug message");
-#
-rootLogger=INFO
-
-# define logger-categories
-logger.tntnet=INFO
-
-file=/var/log/tntnet.log
-maxfilesize=1MB
-maxbackupindex=10
-flushdelay=100 # delay write in milliseconds
-#host=localhost:1234 # send log-messages with udp
-#disabled=1 # disable logging
-#logprocess=1 # log in separate process
-#logprocesuser=someuser # change to user in log process
-#logprocesgroup=somegroup # change to group in log process
diff --git a/package/tntnet/files/tntnet.xml b/package/tntnet/files/tntnet.xml
deleted file mode 100644
index 2d4f160d1..000000000
--- a/package/tntnet/files/tntnet.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<tntnet>
- <mappings>
- <mapping>
- <target>static@tntnet</target>
- <url>(.*)/$</url>
- <pathinfo>/$1/index.html</pathinfo>
- </mapping>
- <mapping>
- <target>static@tntnet</target>
- <url>^/(.*)$</url>
- <pathinfo>/$1</pathinfo>
- </mapping>
- </mappings>
-
- <listeners>
- <listener>
- <ip>0.0.0.0</ip>
- <port>80</port>
- </listener>
- </listeners>
-
- <daemon>1</daemon>
- <user>tntnet</user>
- <group>tntnet</group>
- <maxRequestSize>1048576</maxRequestSize>
- <pidFile>/var/run/tntnet.pid</pidFile>
- <minThreads>2</minThreads>
- <maxThreads>4</maxThreads>
- <documentRoot>/www</documentRoot>
- <compPath>
- <entry>/usr/lib/tntnet</entry>
- </compPath>
- <logging>
- <rootlogger>INFO</rootlogger>
- <loggers>
- <logger>
- <category>tntnet</category>
- <level>INFO</level>
- </logger>
- </loggers>
- <!-- <file>tntnet.log</file> --> <!--uncomment if you want to log to a file -->
- <!-- <maxfilesize>1MB</maxfilesize> -->
- <!-- <maxbackupindex>2</maxbackupindex> -->
- <!-- <host>localhost:1234</host> --> <!-- # send log-messages with udp -->
- </logging>
-
- <include>/etc/tntnet/mime.conf</include>
-</tntnet>
diff --git a/package/tntnet/patches/patch-framework_common_gnutls_cpp b/package/tntnet/patches/patch-framework_common_gnutls_cpp
deleted file mode 100644
index 51037f74a..000000000
--- a/package/tntnet/patches/patch-framework_common_gnutls_cpp
+++ /dev/null
@@ -1,10 +0,0 @@
---- tntnet-2.2.1.orig/framework/common/gnutls.cpp 2013-12-26 15:08:34.000000000 +0100
-+++ tntnet-2.2.1/framework/common/gnutls.cpp 2014-05-20 06:44:01.000000000 +0200
-@@ -35,6 +35,7 @@
- #include <sys/poll.h>
- #include <errno.h>
- #include <cxxtools/ioerror.h>
-+#include <unistd.h>
-
- log_define("tntnet.ssl")
-
diff --git a/package/toolbox/src/Makefile b/package/toolbox/src/Makefile
index 50afea707..65009b6ef 100644
--- a/package/toolbox/src/Makefile
+++ b/package/toolbox/src/Makefile
@@ -57,7 +57,7 @@
SUBDIR+= lsof
SUBDIR+= md5
SUBDIR+= mkdir
- SUBDIR+= mknod
+# SUBDIR+= mknod # does not compile with glibc
SUBDIR+= mount
SUBDIR+= mv
SUBDIR+= netstat
diff --git a/package/tor/Makefile b/package/tor/Makefile
index bdb73c36d..fc690de3d 100644
--- a/package/tor/Makefile
+++ b/package/tor/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= tor
-PKG_VERSION:= 0.3.3.6
+PKG_VERSION:= 0.4.8.10
PKG_RELEASE:= 1
-PKG_HASH:= 99bc59f6dbf395894de12f3a83b3251a82dfd93dc7f6d3afcbbd80f6111433b7
+PKG_HASH:= e628b4fab70edb4727715b23cf2931375a9f7685ac08f2c59ea498a178463a86
PKG_DESCR:= anonymous internet communication system
PKG_SECTION:= net/proxy
PKG_DEPENDS:= libevent zlib libressl
@@ -21,7 +21,6 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,TOR,tor,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-AUTOTOOL_STYLE:= autoreconf
# -DNDEBUG not supported
TARGET_CPPFLAGS:=
CONFIGURE_ENV+= ac_cv_libevent_normal=yes \
diff --git a/package/tor/patches/patch-src_lib_crypt_ops_crypto_openssl_mgt_c b/package/tor/patches/patch-src_lib_crypt_ops_crypto_openssl_mgt_c
new file mode 100644
index 000000000..e15990084
--- /dev/null
+++ b/package/tor/patches/patch-src_lib_crypt_ops_crypto_openssl_mgt_c
@@ -0,0 +1,14 @@
+--- tor-0.4.8.10.orig/src/lib/crypt_ops/crypto_openssl_mgt.c 2023-12-08 19:49:19.000000000 +0100
++++ tor-0.4.8.10/src/lib/crypt_ops/crypto_openssl_mgt.c 2024-04-07 11:39:44.453246186 +0200
+@@ -40,6 +40,11 @@ ENABLE_GCC_WARNING("-Wredundant-decls")
+
+ #include <string.h>
+
++#ifdef OPENSSL_NO_ENGINE
++/* Android's OpenSSL seems to have removed all of its Engine support. */
++#define DISABLE_ENGINES
++#endif
++
+ #ifndef NEW_THREAD_API
+ /** A number of preallocated mutexes for use by OpenSSL. */
+ static tor_mutex_t **openssl_mutexes_ = NULL;
diff --git a/package/tor/patches/patch-src_lib_crypt_ops_crypto_openssl_mgt_h b/package/tor/patches/patch-src_lib_crypt_ops_crypto_openssl_mgt_h
new file mode 100644
index 000000000..49f6d2314
--- /dev/null
+++ b/package/tor/patches/patch-src_lib_crypt_ops_crypto_openssl_mgt_h
@@ -0,0 +1,14 @@
+--- tor-0.4.8.10.orig/src/lib/crypt_ops/crypto_openssl_mgt.h 2023-12-08 19:49:19.000000000 +0100
++++ tor-0.4.8.10/src/lib/crypt_ops/crypto_openssl_mgt.h 2024-04-07 11:39:44.453246186 +0200
+@@ -49,11 +49,6 @@
+ #define OPENSSL_V_SERIES(a,b,c) \
+ OPENSSL_VER((a),(b),(c),0,0)
+
+-#ifdef OPENSSL_NO_ENGINE
+-/* Android's OpenSSL seems to have removed all of its Engine support. */
+-#define DISABLE_ENGINES
+-#endif
+-
+ #if OPENSSL_VERSION_NUMBER >= OPENSSL_VER(1,1,0,0,5)
+ /* OpenSSL as of 1.1.0pre4 has an "new" thread API, which doesn't require
+ * setting up various callbacks.
diff --git a/package/toybox/Makefile b/package/toybox/Makefile
index 3a620a092..c32c3aac5 100644
--- a/package/toybox/Makefile
+++ b/package/toybox/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= toybox
-PKG_VERSION:= 0.7.1
+PKG_VERSION:= 0.8.3
PKG_RELEASE:= 1
-PKG_HASH:= 5bb3069f58faf12940d5cfde3209ac7f63210bebdd9023979b0c20cede126ea7
+PKG_HASH:= eab28fd29d19d4e61ef09704e5871940e6f35fd35a3bb1285e41f204504b5c01
PKG_DESCR:= linux tools collection
PKG_SECTION:= base/apps
PKG_URL:= http://landley.net/toybox/
@@ -24,7 +24,7 @@ XAKE_FLAGS+= CC="gcc" V=1 PREFIX="$(WRKINST)"
do-configure:
-rm $(WRKBUILD)/toys/other/swap*.c
- cd $(WRKBUILD); PATH='$(HOST_PATH)' $(MAKE) defconfig
+ cd $(WRKBUILD); CC="gcc" PATH='$(HOST_PATH)' $(MAKE) defconfig
toybox-install:
$(CP) $(WRKINST)/* $(IDIR_TOYBOX)/
diff --git a/package/toybox/patches/patch-lib_lib_h b/package/toybox/patches/patch-lib_lib_h
deleted file mode 100644
index 0697acb22..000000000
--- a/package/toybox/patches/patch-lib_lib_h
+++ /dev/null
@@ -1,12 +0,0 @@
---- toybox-0.7.1.orig/lib/lib.h 2016-06-01 00:33:23.000000000 +0200
-+++ toybox-0.7.1/lib/lib.h 2016-10-16 12:33:42.000000000 +0200
-@@ -201,7 +201,9 @@ int qstrcmp(const void *a, const void *b
- void create_uuid(char *uuid);
- char *show_uuid(char *uuid);
- char *next_printf(char *s, char **start);
-+#ifndef __APPLE__
- char *strnstr(char *line, char *str);
-+#endif
- int dev_minor(int dev);
- int dev_major(int dev);
- int dev_makedev(int major, int minor);
diff --git a/package/toybox/patches/patch-lib_portability_h b/package/toybox/patches/patch-lib_portability_h
deleted file mode 100644
index 25c24d19c..000000000
--- a/package/toybox/patches/patch-lib_portability_h
+++ /dev/null
@@ -1,22 +0,0 @@
---- toybox-0.7.1.orig/lib/portability.h 2016-06-01 00:33:23.000000000 +0200
-+++ toybox-0.7.1/lib/portability.h 2016-10-16 12:32:11.000000000 +0200
-@@ -22,7 +22,9 @@
-
- // This isn't in the spec, but it's how we determine what libc we're using.
-
-+#ifndef __APPLE__
- #include <features.h>
-+#endif
-
- // Types various replacement prototypes need
- #include <sys/types.h>
-@@ -211,7 +213,9 @@ ssize_t getline(char **lineptr, size_t *
-
- // Linux headers not listed by POSIX or LSB
- #include <sys/mount.h>
-+#ifndef __APPLE__
- #include <sys/swap.h>
-+#endif
-
- // Android is missing some headers and functions
- // "generated/config.h" is included first
diff --git a/package/toybox/patches/patch-scripts_make_sh b/package/toybox/patches/patch-scripts_make_sh
deleted file mode 100644
index dfbad59a7..000000000
--- a/package/toybox/patches/patch-scripts_make_sh
+++ /dev/null
@@ -1,8 +0,0 @@
---- toybox-0.7.1.orig/scripts/make.sh 2016-06-01 00:33:23.000000000 +0200
-+++ toybox-0.7.1/scripts/make.sh 2016-10-16 12:27:17.000000000 +0200
-@@ -1,4 +1,5 @@
- #!/bin/bash
-+set -x
-
- # Grab default values for $CFLAGS and such.
-
diff --git a/package/trafshow/Makefile b/package/trafshow/Makefile
deleted file mode 100644
index be8a9c09b..000000000
--- a/package/trafshow/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include ${ADK_TOPDIR}/rules.mk
-
-PKG_NAME:= trafshow
-PKG_VERSION:= 5.2.3
-PKG_RELEASE:= 2
-PKG_HASH:= ea7e22674a66afcc7174779d0f803c1f25b42271973b4f75fab293b8d7db11fc
-PKG_DESCR:= traffic analyzing tool
-PKG_SECTION:= net/perf
-PKG_BUILDDEP:= libpcap ncurses
-PKG_DEPENDS:= libpcap libncurses
-PKG_NEEDS:= threads
-PKG_SITES:= http://distfiles.openadk.org/
-PKG_NOPARALLEL:= 1
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tgz
-
-include ${ADK_TOPDIR}/mk/package.mk
-
-$(eval $(call PKG_template,TRAFSHOW,trafshow,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-TARGET_CPPFLAGS+= -DHAVE_SOCKADDR_STORAGE -DHAVE_HAS_COLORS -D_GNU_SOURCE
-TARGET_LDFLAGS+= -ltinfo
-
-trafshow-install:
- ${INSTALL_DIR} ${IDIR_TRAFSHOW}/usr/bin
- ${INSTALL_BIN} ${WRKINST}/usr/bin/trafshow ${IDIR_TRAFSHOW}/usr/bin/
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/trafshow/patches/patch-Makefile_in b/package/trafshow/patches/patch-Makefile_in
deleted file mode 100644
index f3f681f14..000000000
--- a/package/trafshow/patches/patch-Makefile_in
+++ /dev/null
@@ -1,54 +0,0 @@
---- trafshow-5.2.3.orig/Makefile.in 2004-06-15 10:29:14.000000000 +0200
-+++ trafshow-5.2.3/Makefile.in 2011-01-21 23:49:58.988658729 +0100
-@@ -28,21 +28,22 @@ MANDEST = @mandir@
-
- PROG = trafshow
- CC = @PTHREAD_CC@
--CFLAGS = @CFLAGS@ -Wall -I. @DEFS@ @PTHREAD_CFLAGS@
-+CFLAGS = @CFLAGS@ -Wall @PTHREAD_CFLAGS@
-+CPPFLAGS = -I. @DEFS@ @CPPFLAGS@
- YACC = @YACC@
- YFLAGS = -d -p `echo $@ | sed -e 's/\..*/_/'`
- LEX = @LEX@
- LEXLIB = @LEXLIB@
- LFLAGS =
- LDFLAGS = @LDFLAGS@
--LIBS = @PTHREAD_LIBS@ @LIBS@
-+LIBS = @PTHREAD_LIBS@ @LIBS@ -pthread
-
- # Explicitly define compilation rule since SunOS 4's make doesn't like gcc.
- # Also, gcc does not remove the .o before forking 'as', which can be a
- # problem if you don't own the file but can write to the directory.
- .c.o:
- @rm -f $@
-- $(CC) $(CFLAGS) -c $*.c
-+ $(CC) $(CPPFLAGS) $(CFLAGS) -c $*.c
-
- CSRC = trafshow.c screen.c colormask.c getkey.c selector.c \
- events.c session.c show_if.c show_stat.c show_dump.c \
-@@ -59,9 +60,11 @@ OBJ = $(CSRC:.c=.o) $(YSRC:.y=.o) $(LSRC
-
- CLEANFILES = $(PROG) $(OBJ) $(GENSRC) y.tab.h
-
-+all: $(PROG)
-+
- $(PROG): $(OBJ)
- @rm -f $@
-- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
-+ $(CC) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)
-
- $(OBJ): config.h trafshow.h Makefile
- version.o: version.c
-@@ -73,9 +76,9 @@ version.c: VERSION Makefile
- @echo 'char compiled[] = "$(CC) $(CFLAGS) $(LIBS)";' >> $@
-
- install:
-- ./install-sh -c -s -m 555 -o bin -g bin $(PROG) $(BINDEST)/$(PROG)
-- ./install-sh -c -m 444 -o bin -g bin $(PROG).1 $(MANDEST)/man1/$(PROG).1
-- [ -f /etc/$(PROG) ] || ./install-sh -c -m 444 .trafshow /etc/$(PROG)
-+ ./install-sh -c -m 755 $(PROG) $(DESTDIR)$(BINDEST)/$(PROG)
-+ ./install-sh -c -m 644 $(PROG).1 $(DESTDIR)$(MANDEST)/man1/$(PROG).1
-+ ./install-sh -c -m 644 .trafshow $(DESTDIR)/etc/$(PROG)
-
- clean:
- rm -f $(CLEANFILES)
diff --git a/package/trafshow/patches/patch-domain_resolver_c b/package/trafshow/patches/patch-domain_resolver_c
deleted file mode 100644
index dfa619116..000000000
--- a/package/trafshow/patches/patch-domain_resolver_c
+++ /dev/null
@@ -1,680 +0,0 @@
-$Id$
---- trafshow-5.2.3.orig/domain_resolver.c 2006-01-08 06:59:23.000000000 +0100
-+++ trafshow-5.2.3/domain_resolver.c 2007-02-04 19:40:27.000000000 +0100
-@@ -28,6 +28,676 @@
- #include <resolv.h>
- #endif
-
-+/*
-+ * Copyright (c) 1985, 1993
-+ * The Regents of the University of California. All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ * 4. Neither the name of the University nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software
-+ * without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-+ * SUCH DAMAGE.
-+ */
-+
-+/*
-+ * Portions Copyright (c) 1993 by Digital Equipment Corporation.
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies, and that
-+ * the name of Digital Equipment Corporation not be used in advertising or
-+ * publicity pertaining to distribution of the document or software without
-+ * specific, written prior permission.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL
-+ * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT
-+ * CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ */
-+
-+/*
-+ * Portions Copyright (c) 1996-1999 by Internet Software Consortium.
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
-+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
-+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ */
-+
-+/*
-+ * Copyright (c) 1996,1999 by Internet Software Consortium.
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
-+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
-+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ */
-+
-+/*
-+ *
-+ * DNS helper functions not implemented in uclibc
-+ *
-+ */
-+
-+#include <ctype.h>
-+#include <unistd.h>
-+
-+static const char digits[] = "0123456789";
-+
-+/* Forward. */
-+
-+static int special(int);
-+static int printable(int);
-+static int dn_find(const u_char *, const u_char *,
-+ const u_char * const *,
-+ const u_char * const *);
-+
-+
-+/*
-+ * ns_name_ntop(src, dst, dstsiz)
-+ * Convert an encoded domain name to printable ascii as per RFC1035.
-+ * return:
-+ * Number of bytes written to buffer, or -1 (with errno set)
-+ * notes:
-+ * The root is returned as "."
-+ * All other domains are returned in non absolute form
-+ */
-+int
-+ns_name_ntop(const u_char *src, char *dst, size_t dstsiz) {
-+ const u_char *cp;
-+ char *dn, *eom;
-+ u_char c;
-+ u_int n;
-+
-+ cp = src;
-+ dn = dst;
-+ eom = dst + dstsiz;
-+
-+ while ((n = *cp++) != 0) {
-+ if ((n & NS_CMPRSFLGS) != 0) {
-+ /* Some kind of compression pointer. */
-+ return (-1);
-+ }
-+ if (dn != dst) {
-+ if (dn >= eom) {
-+ return (-1);
-+ }
-+ *dn++ = '.';
-+ }
-+ if (dn + n >= eom) {
-+ return (-1);
-+ }
-+ for ((void)NULL; n > 0; n--) {
-+ c = *cp++;
-+ if (special(c)) {
-+ if (dn + 1 >= eom) {
-+ return (-1);
-+ }
-+ *dn++ = '\\';
-+ *dn++ = (char)c;
-+ } else if (!printable(c)) {
-+ if (dn + 3 >= eom) {
-+ return (-1);
-+ }
-+ *dn++ = '\\';
-+ *dn++ = digits[c / 100];
-+ *dn++ = digits[(c % 100) / 10];
-+ *dn++ = digits[c % 10];
-+ } else {
-+ if (dn >= eom) {
-+ return (-1);
-+ }
-+ *dn++ = (char)c;
-+ }
-+ }
-+ }
-+ if (dn == dst) {
-+ if (dn >= eom) {
-+ return (-1);
-+ }
-+ *dn++ = '.';
-+ }
-+ if (dn >= eom) {
-+ return (-1);
-+ }
-+ *dn++ = '\0';
-+ return (dn - dst);
-+}
-+
-+/*
-+ * ns_name_pton(src, dst, dstsiz)
-+ * Convert a ascii string into an encoded domain name as per RFC1035.
-+ * return:
-+ * -1 if it fails
-+ * 1 if string was fully qualified
-+ * 0 is string was not fully qualified
-+ * notes:
-+ * Enforces label and domain length limits.
-+ */
-+
-+int
-+ns_name_pton(const char *src, u_char *dst, size_t dstsiz) {
-+ u_char *label, *bp, *eom;
-+ int c, n, escaped;
-+ char *cp;
-+
-+ escaped = 0;
-+ bp = dst;
-+ eom = dst + dstsiz;
-+ label = bp++;
-+
-+ while ((c = *src++) != 0) {
-+ if (escaped) {
-+ if ((cp = strchr(digits, c)) != NULL) {
-+ n = (cp - digits) * 100;
-+ if ((c = *src++) == 0 ||
-+ (cp = strchr(digits, c)) == NULL) {
-+ return (-1);
-+ }
-+ n += (cp - digits) * 10;
-+ if ((c = *src++) == 0 ||
-+ (cp = strchr(digits, c)) == NULL) {
-+ return (-1);
-+ }
-+ n += (cp - digits);
-+ if (n > 255) {
-+ return (-1);
-+ }
-+ c = n;
-+ }
-+ escaped = 0;
-+ } else if (c == '\\') {
-+ escaped = 1;
-+ continue;
-+ } else if (c == '.') {
-+ c = (bp - label - 1);
-+ if ((c & NS_CMPRSFLGS) != 0) { /* Label too big. */
-+ return (-1);
-+ }
-+ if (label >= eom) {
-+ return (-1);
-+ }
-+ *label = c;
-+ /* Fully qualified ? */
-+ if (*src == '\0') {
-+ if (c != 0) {
-+ if (bp >= eom) {
-+ return (-1);
-+ }
-+ *bp++ = '\0';
-+ }
-+ if ((bp - dst) > MAXCDNAME) {
-+ return (-1);
-+ }
-+ return (1);
-+ }
-+ if (c == 0 || *src == '.') {
-+ return (-1);
-+ }
-+ label = bp++;
-+ continue;
-+ }
-+ if (bp >= eom) {
-+ return (-1);
-+ }
-+ *bp++ = (u_char)c;
-+ }
-+ c = (bp - label - 1);
-+ if ((c & NS_CMPRSFLGS) != 0) { /* Label too big. */
-+ return (-1);
-+ }
-+ if (label >= eom) {
-+ return (-1);
-+ }
-+ *label = c;
-+ if (c != 0) {
-+ if (bp >= eom) {
-+ return (-1);
-+ }
-+ *bp++ = 0;
-+ }
-+ if ((bp - dst) > MAXCDNAME) { /* src too big */
-+ return (-1);
-+ }
-+ return (0);
-+}
-+
-+/*
-+ * ns_name_ntol(src, dst, dstsiz)
-+ * Convert a network strings labels into all lowercase.
-+ * return:
-+ * Number of bytes written to buffer, or -1 (with errno set)
-+ * notes:
-+ * Enforces label and domain length limits.
-+ */
-+
-+int
-+ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz) {
-+ const u_char *cp;
-+ u_char *dn, *eom;
-+ u_char c;
-+ u_int n;
-+
-+ cp = src;
-+ dn = dst;
-+ eom = dst + dstsiz;
-+
-+ while ((n = *cp++) != 0) {
-+ if ((n & NS_CMPRSFLGS) != 0) {
-+ /* Some kind of compression pointer. */
-+ return (-1);
-+ }
-+ *dn++ = n;
-+ if (dn + n >= eom) {
-+ return (-1);
-+ }
-+ for ((void)NULL; n > 0; n--) {
-+ c = *cp++;
-+ if (isupper(c))
-+ *dn++ = tolower(c);
-+ else
-+ *dn++ = c;
-+ }
-+ }
-+ *dn++ = '\0';
-+ return (dn - dst);
-+}
-+
-+/*
-+ * ns_name_unpack(msg, eom, src, dst, dstsiz)
-+ * Unpack a domain name from a message, source may be compressed.
-+ * return:
-+ * -1 if it fails, or consumed octets if it succeeds.
-+ */
-+int
-+ns_name_unpack(const u_char *msg, const u_char *eom, const u_char *src,
-+ u_char *dst, size_t dstsiz)
-+{
-+ const u_char *srcp, *dstlim;
-+ u_char *dstp;
-+ int n, len, checked;
-+
-+ len = -1;
-+ checked = 0;
-+ dstp = dst;
-+ srcp = src;
-+ dstlim = dst + dstsiz;
-+ if (srcp < msg || srcp >= eom) {
-+ return (-1);
-+ }
-+ /* Fetch next label in domain name. */
-+ while ((n = *srcp++) != 0) {
-+ /* Check for indirection. */
-+ switch (n & NS_CMPRSFLGS) {
-+ case 0:
-+ /* Limit checks. */
-+ if (dstp + n + 1 >= dstlim || srcp + n >= eom) {
-+ return (-1);
-+ }
-+ checked += n + 1;
-+ *dstp++ = n;
-+ memcpy(dstp, srcp, n);
-+ dstp += n;
-+ srcp += n;
-+ break;
-+
-+ case NS_CMPRSFLGS:
-+ if (srcp >= eom) {
-+ return (-1);
-+ }
-+ if (len < 0)
-+ len = srcp - src + 1;
-+ srcp = msg + (((n & 0x3f) << 8) | (*srcp & 0xff));
-+ if (srcp < msg || srcp >= eom) { /* Out of range. */
-+ return (-1);
-+ }
-+ checked += 2;
-+ /*
-+ * Check for loops in the compressed name;
-+ * if we've looked at the whole message,
-+ * there must be a loop.
-+ */
-+ if (checked >= eom - msg) {
-+ return (-1);
-+ }
-+ break;
-+
-+ default:
-+ return (-1); /* flag error */
-+ }
-+ }
-+ *dstp = '\0';
-+ if (len < 0)
-+ len = srcp - src;
-+ return (len);
-+}
-+
-+/*
-+ * ns_name_pack(src, dst, dstsiz, dnptrs, lastdnptr)
-+ * Pack domain name 'domain' into 'comp_dn'.
-+ * return:
-+ * Size of the compressed name, or -1.
-+ * notes:
-+ * 'dnptrs' is an array of pointers to previous compressed names.
-+ * dnptrs[0] is a pointer to the beginning of the message. The array
-+ * ends with NULL.
-+ * 'lastdnptr' is a pointer to the end of the array pointed to
-+ * by 'dnptrs'.
-+ * Side effects:
-+ * The list of pointers in dnptrs is updated for labels inserted into
-+ * the message as we compress the name. If 'dnptr' is NULL, we don't
-+ * try to compress names. If 'lastdnptr' is NULL, we don't update the
-+ * list.
-+ */
-+int
-+ns_name_pack(const u_char *src, u_char *dst, int dstsiz,
-+ const u_char **dnptrs, const u_char **lastdnptr)
-+{
-+ u_char *dstp;
-+ const u_char **cpp, **lpp, *eob, *msg;
-+ const u_char *srcp;
-+ int n, l, first = 1;
-+
-+ srcp = src;
-+ dstp = dst;
-+ eob = dstp + dstsiz;
-+ lpp = cpp = NULL;
-+ if (dnptrs != NULL) {
-+ if ((msg = *dnptrs++) != NULL) {
-+ for (cpp = dnptrs; *cpp != NULL; cpp++)
-+ (void)NULL;
-+ lpp = cpp; /* end of list to search */
-+ }
-+ } else
-+ msg = NULL;
-+
-+ /* make sure the domain we are about to add is legal */
-+ l = 0;
-+ do {
-+ n = *srcp;
-+ if ((n & NS_CMPRSFLGS) != 0) {
-+ return (-1);
-+ }
-+ l += n + 1;
-+ if (l > MAXCDNAME) {
-+ return (-1);
-+ }
-+ srcp += n + 1;
-+ } while (n != 0);
-+
-+ /* from here on we need to reset compression pointer array on error */
-+ srcp = src;
-+ do {
-+ /* Look to see if we can use pointers. */
-+ n = *srcp;
-+ if (n != 0 && msg != NULL) {
-+ l = dn_find(srcp, msg, (const u_char * const *)dnptrs,
-+ (const u_char * const *)lpp);
-+ if (l >= 0) {
-+ if (dstp + 1 >= eob) {
-+ goto cleanup;
-+ }
-+ *dstp++ = (l >> 8) | NS_CMPRSFLGS;
-+ *dstp++ = l % 256;
-+ return (dstp - dst);
-+ }
-+ /* Not found, save it. */
-+ if (lastdnptr != NULL && cpp < lastdnptr - 1 &&
-+ (dstp - msg) < 0x4000 && first) {
-+ *cpp++ = dstp;
-+ *cpp = NULL;
-+ first = 0;
-+ }
-+ }
-+ /* copy label to buffer */
-+ if (n & NS_CMPRSFLGS) { /* Should not happen. */
-+ goto cleanup;
-+ }
-+ if (dstp + 1 + n >= eob) {
-+ goto cleanup;
-+ }
-+ memcpy(dstp, srcp, n + 1);
-+ srcp += n + 1;
-+ dstp += n + 1;
-+ } while (n != 0);
-+
-+ if (dstp > eob) {
-+cleanup:
-+ if (msg != NULL)
-+ *lpp = NULL;
-+ return (-1);
-+ }
-+ return (dstp - dst);
-+}
-+
-+/*
-+ * ns_name_uncompress(msg, eom, src, dst, dstsiz)
-+ * Expand compressed domain name to presentation format.
-+ * return:
-+ * Number of bytes read out of `src', or -1 (with errno set).
-+ * note:
-+ * Root domain returns as "." not "".
-+ */
-+int
-+ns_name_uncompress(const u_char *msg, const u_char *eom, const u_char *src,
-+ char *dst, size_t dstsiz)
-+{
-+ u_char tmp[NS_MAXCDNAME];
-+ int n;
-+
-+ if ((n = ns_name_unpack(msg, eom, src, tmp, sizeof tmp)) == -1)
-+ return (-1);
-+ if (ns_name_ntop(tmp, dst, dstsiz) == -1)
-+ return (-1);
-+ return (n);
-+}
-+
-+/*
-+ * ns_name_compress(src, dst, dstsiz, dnptrs, lastdnptr)
-+ * Compress a domain name into wire format, using compression pointers.
-+ * return:
-+ * Number of bytes consumed in `dst' or -1 (with errno set).
-+ * notes:
-+ * 'dnptrs' is an array of pointers to previous compressed names.
-+ * dnptrs[0] is a pointer to the beginning of the message.
-+ * The list ends with NULL. 'lastdnptr' is a pointer to the end of the
-+ * array pointed to by 'dnptrs'. Side effect is to update the list of
-+ * pointers for labels inserted into the message as we compress the name.
-+ * If 'dnptr' is NULL, we don't try to compress names. If 'lastdnptr'
-+ * is NULL, we don't update the list.
-+ */
-+int
-+ns_name_compress(const char *src, u_char *dst, size_t dstsiz,
-+ const u_char **dnptrs, const u_char **lastdnptr)
-+{
-+ u_char tmp[NS_MAXCDNAME];
-+
-+ if (ns_name_pton(src, tmp, sizeof tmp) == -1)
-+ return (-1);
-+ return (ns_name_pack(tmp, dst, dstsiz, dnptrs, lastdnptr));
-+}
-+
-+/*
-+ * special(ch)
-+ * Thinking in noninternationalized USASCII (per the DNS spec),
-+ * is this characted special ("in need of quoting") ?
-+ * return:
-+ * boolean.
-+ */
-+static int
-+special(int ch) {
-+ switch (ch) {
-+ case 0x22: /* '"' */
-+ case 0x2E: /* '.' */
-+ case 0x3B: /* ';' */
-+ case 0x5C: /* '\\' */
-+ /* Special modifiers in zone files. */
-+ case 0x40: /* '@' */
-+ case 0x24: /* '$' */
-+ return (1);
-+ default:
-+ return (0);
-+ }
-+}
-+
-+/*
-+ * printable(ch)
-+ * Thinking in noninternationalized USASCII (per the DNS spec),
-+ * is this character visible and not a space when printed ?
-+ * return:
-+ * boolean.
-+ */
-+static int
-+printable(int ch) {
-+ return (ch > 0x20 && ch < 0x7f);
-+}
-+
-+/*
-+ * Thinking in noninternationalized USASCII (per the DNS spec),
-+ * convert this character to lower case if it's upper case.
-+ */
-+static int
-+mklower(int ch) {
-+ if (ch >= 0x41 && ch <= 0x5A)
-+ return (ch + 0x20);
-+ return (ch);
-+}
-+
-+/*
-+ * dn_find(domain, msg, dnptrs, lastdnptr)
-+ * Search for the counted-label name in an array of compressed names.
-+ * return:
-+ * offset from msg if found, or -1.
-+ * notes:
-+ * dnptrs is the pointer to the first name on the list,
-+ * not the pointer to the start of the message.
-+ */
-+static int
-+dn_find(const u_char *domain, const u_char *msg,
-+ const u_char * const *dnptrs,
-+ const u_char * const *lastdnptr)
-+{
-+ const u_char *dn, *cp, *sp;
-+ const u_char * const *cpp;
-+ u_int n;
-+
-+ for (cpp = dnptrs; cpp < lastdnptr; cpp++) {
-+ sp = *cpp;
-+ /*
-+ * terminate search on:
-+ * root label
-+ * compression pointer
-+ * unusable offset
-+ */
-+ while (*sp != 0 && (*sp & NS_CMPRSFLGS) == 0 &&
-+ (sp - msg) < 0x4000) {
-+ dn = domain;
-+ cp = sp;
-+ while ((n = *cp++) != 0) {
-+ /*
-+ * check for indirection
-+ */
-+ switch (n & NS_CMPRSFLGS) {
-+ case 0: /* normal case, n == len */
-+ if (n != *dn++)
-+ goto next;
-+ for ((void)NULL; n > 0; n--)
-+ if (mklower(*dn++) !=
-+ mklower(*cp++))
-+ goto next;
-+ /* Is next root for both ? */
-+ if (*dn == '\0' && *cp == '\0')
-+ return (sp - msg);
-+ if (*dn)
-+ continue;
-+ goto next;
-+
-+ case NS_CMPRSFLGS: /* indirection */
-+ cp = msg + (((n & 0x3f) << 8) | *cp);
-+ break;
-+
-+ default: /* illegal type */
-+ return (-1);
-+ }
-+ }
-+ next:
-+ sp += *sp + 1;
-+ }
-+ }
-+ return (-1);
-+}
-+
-+/*
-+ * Expand compressed domain name 'comp_dn' to full domain name.
-+ * 'msg' is a pointer to the begining of the message,
-+ * 'eomorig' points to the first location after the message,
-+ * 'exp_dn' is a pointer to a buffer of size 'length' for the result.
-+ * Return size of compressed name or -1 if there was an error.
-+ */
-+int
-+dn_expand(const u_char *msg, const u_char *eom, const u_char *src,
-+ char *dst, int dstsiz)
-+{
-+ int n = ns_name_uncompress(msg, eom, src, dst, (size_t)dstsiz);
-+
-+ if (n > 0 && dst[0] == '.')
-+ dst[0] = '\0';
-+ return (n);
-+}
-+
-+/*
-+ * Pack domain name 'exp_dn' in presentation form into 'comp_dn'.
-+ * Return the size of the compressed name or -1.
-+ * 'length' is the size of the array pointed to by 'comp_dn'.
-+ */
-+int
-+dn_comp(const char *src, u_char *dst, int dstsiz,
-+ u_char **dnptrs, u_char **lastdnptr)
-+{
-+ return (ns_name_compress(src, dst, (size_t)dstsiz,
-+ (const u_char **)dnptrs,
-+ (const u_char **)lastdnptr));
-+}
-+
-+
- #include "domain_resolver.h"
- #include "session.h"
- #include "util.h"
diff --git a/package/trafshow/patches/patch-session_c b/package/trafshow/patches/patch-session_c
deleted file mode 100644
index cee3cb266..000000000
--- a/package/trafshow/patches/patch-session_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- trafshow-5.2.3.orig/session.c 2006-01-08 06:58:08.000000000 +0100
-+++ trafshow-5.2.3/session.c 2010-02-05 22:59:54.974334342 +0100
-@@ -40,7 +40,7 @@
- #define ASYNC_MODE FNDELAY
- #elif O_ASYNC
- #define ASYNC_MODE O_ASYNC
--#elif
-+#else
- #error the fcntl argument to turn ON/OFF non-blocking I/O is unknown
- #endif
-
diff --git a/package/transmission/Makefile b/package/transmission/Makefile
index 8fed6d204..3ba43fb1d 100644
--- a/package/transmission/Makefile
+++ b/package/transmission/Makefile
@@ -4,24 +4,22 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= transmission
-PKG_VERSION:= 2.92
+PKG_VERSION:= 4.0.5
PKG_RELEASE:= 1
-PKG_HASH:= 3a8d045c306ad9acb7bf81126939b9594553a388482efa0ec1bfb67b22acd35f
+PKG_HASH:= fd68ff114a479200043c30c7e69dba4c1932f7af36ca4c5b5d2edcb5866e6357
PKG_DESCR:= torrent client
PKG_SECTION:= app/p2p
PKG_DEPENDS:= libressl libevent libcurl
-PKG_BUILDDEP:= libressl libevent curl
+PKG_BUILDDEP:= cmake-host libressl libevent curl
PKG_NEEDS:= threads c++
PKG_URL:= http://www.transmissionbt.com
-PKG_SITES:= http://download.transmissionbt.com/files/
+PKG_SITES:= https://github.com/transmission/transmission/releases/download/$(PKG_VERSION)/
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,TRANSMISSION,transmission,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-TARGET_LDFLAGS+= -liconv
-
-CONFIGURE_ARGS+= --without-gtk
+CONFIG_STYLE:= cmake
transmission-install:
$(INSTALL_DIR) $(IDIR_TRANSMISSION)/usr/share
diff --git a/package/trinity/Makefile b/package/trinity/Makefile
deleted file mode 100644
index cf12729eb..000000000
--- a/package/trinity/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= trinity
-PKG_VERSION:= 1.6
-PKG_RELEASE:= 1
-PKG_HASH:= e40efa320ddc814943e90be0386b5052ce0bbbc457b3f308fa973669d393a6d9
-PKG_DESCR:= linux system call fuzz tester
-PKG_SECTION:= base/tests
-PKG_URL:= http://codemonkey.org.uk/projects/trinity/
-PKG_SITES:= http://codemonkey.org.uk/projects/trinity/
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,TRINITY,trinity,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-XAKE_FLAGS+= CROSS_COMPILE=
-CONFIG_STYLE:= minimal
-CONFIGURE_PROG:= configure.sh
-
-trinity-install:
- $(INSTALL_DIR) $(IDIR_TRINITY)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/trinity \
- $(IDIR_TRINITY)/usr/bin
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/trinity/patches/patch-Makefile b/package/trinity/patches/patch-Makefile
deleted file mode 100644
index aa85e30f1..000000000
--- a/package/trinity/patches/patch-Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
---- trinity-1.6.orig/Makefile 2015-11-03 18:05:50.000000000 +0100
-+++ trinity-1.6/Makefile 2016-02-25 00:24:11.000000000 +0100
-@@ -1,6 +1,6 @@
- VERSION="1.6"
-
--INSTALL_PREFIX ?= $(DESTDIR)
-+INSTALL_PREFIX ?= $(DESTDIR)/usr
- INSTALL_PREFIX ?= $(HOME)
- NR_CPUS := $(shell grep ^processor /proc/cpuinfo | /usr/bin/wc -l)
-
diff --git a/package/trinity/patches/patch-syscalls_prctl_c b/package/trinity/patches/patch-syscalls_prctl_c
deleted file mode 100644
index 9adbe22f8..000000000
--- a/package/trinity/patches/patch-syscalls_prctl_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- trinity-1.6.orig/syscalls/prctl.c 2015-11-03 18:05:50.000000000 +0100
-+++ trinity-1.6/syscalls/prctl.c 2016-02-25 00:26:56.000000000 +0100
-@@ -34,7 +34,7 @@ static int prctl_opts[] = {
- PR_GET_NO_NEW_PRIVS, PR_GET_TID_ADDRESS, PR_SET_THP_DISABLE, PR_GET_THP_DISABLE,
- PR_MPX_ENABLE_MANAGEMENT, PR_MPX_DISABLE_MANAGEMENT,
- #ifdef __mips__
-- GET_FP_MODE, SET_FP_MODE,
-+ PR_GET_FP_MODE, PR_SET_FP_MODE,
- #endif
- PR_CAP_AMBIENT,
- };
diff --git a/package/tvheadend/Makefile b/package/tvheadend/Makefile
index 5557d16ec..2d86705e8 100644
--- a/package/tvheadend/Makefile
+++ b/package/tvheadend/Makefile
@@ -4,7 +4,7 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= tvheadend
-PKG_VERSION:= f46a6c2dc93460d7c2909ebbec42a3ac2557ccb2
+PKG_VERSION:= a9c6db8acbd85297238771b8b4430435b7994928
PKG_GIT:= hash
PKG_RELEASE:= 1
PKG_DESCR:= tv streaming server
@@ -23,7 +23,12 @@ XAKE_FLAGS+= LDLIBS=-liconv
endif
CONFIGURE_ARGS+= --disable-bundle \
- --disable-ffmpeg_static
+ --disable-ffmpeg_static \
+ --disable-execinfo \
+ --disable-libvpx \
+ --disable-libx264 \
+ --disable-libx265 \
+ --nowerror
tvheadend-install:
$(INSTALL_DIR) $(IDIR_TVHEADEND)/usr/bin
diff --git a/package/tvheadend/patches/patch-configure b/package/tvheadend/patches/patch-configure
new file mode 100644
index 000000000..97882365d
--- /dev/null
+++ b/package/tvheadend/patches/patch-configure
@@ -0,0 +1,22 @@
+--- tvheadend-a9c6db8acbd85297238771b8b4430435b7994928.orig/configure 2024-03-03 05:21:25.000000000 +0100
++++ tvheadend-a9c6db8acbd85297238771b8b4430435b7994928/configure 2024-03-03 05:37:39.643872622 +0100
+@@ -28,8 +28,8 @@ OPTIONS=(
+ "satip_server:yes"
+ "satip_client:yes"
+ "hdhomerun_client:no"
+- "hdhomerun_server:yes"
+- "hdhomerun_static:yes"
++ "hdhomerun_server:no"
++ "hdhomerun_static:no"
+ "iptv:yes"
+ "tsfile:yes"
+ "dvbscan:yes"
+@@ -63,7 +63,7 @@ OPTIONS=(
+ "pcre2:auto"
+ "uriparser:auto"
+ "ccache:auto"
+- "tvhcsa:auto"
++ "tvhcsa:no"
+ "bundle:no"
+ "pngquant:no"
+ "kqueue:no"
diff --git a/package/tvheadend/patches/patch-configure.orig b/package/tvheadend/patches/patch-configure.orig
new file mode 100644
index 000000000..3c8ed25ed
--- /dev/null
+++ b/package/tvheadend/patches/patch-configure.orig
@@ -0,0 +1,11 @@
+--- tvheadend-a9c6db8acbd85297238771b8b4430435b7994928.orig/configure 2024-03-03 05:21:25.000000000 +0100
++++ tvheadend-a9c6db8acbd85297238771b8b4430435b7994928/configure 2024-03-03 05:35:58.519873994 +0100
+@@ -63,7 +63,7 @@ OPTIONS=(
+ "pcre2:auto"
+ "uriparser:auto"
+ "ccache:auto"
+- "tvhcsa:auto"
++ "tvhcsa:no"
+ "bundle:no"
+ "pngquant:no"
+ "kqueue:no"
diff --git a/package/twm/Makefile b/package/twm/Makefile
index a59d0e20d..7bf5925fa 100644
--- a/package/twm/Makefile
+++ b/package/twm/Makefile
@@ -9,8 +9,8 @@ PKG_RELEASE:= 1
PKG_HASH:= a0d3f2a9689594220220d32c3cd674056b91dbf7c6c352efe1ffb72d65c66f76
PKG_DESCR:= simple window manager
PKG_SECTION:= x11/apps
-PKG_DEPENDS:= xorg-server
-PKG_BUILDDEP:= xorg-server
+PKG_DEPENDS:= xorg-server libx11 libxext libxt libxmu libice libsm
+PKG_BUILDDEP:= xorg-server libX11 libXext libXt libXmu libICE libSM
PKG_NEEDS:= c++
PKG_URL:= http://xorg.freedesktop.org/
PKG_SITES:= http://xorg.freedesktop.org/archive/individual/app/
diff --git a/package/tzdata/Makefile b/package/tzdata/Makefile
index bcc100695..a1e7de77b 100644
--- a/package/tzdata/Makefile
+++ b/package/tzdata/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= tzdata
-PKG_VERSION:= 2014d
+PKG_VERSION:= 2021e
PKG_RELEASE:= 1
-PKG_HASH:= 4b4966912f5d4a299b0bdf47e6f3103d82dc6a0b5a6b321e2b9d5662597a62f0 e9c775bb76c9700521ada77776277c25f8650a22b56d46c9f00f4147970ef13e
+PKG_HASH:= 07ec42b737d0d3c6be9c337f8abb5f00554a0f9cc4fcf01a703d69403b6bb2b1 584666393a5424d13d27ec01183da17703273664742e049d4f62f62dab631775
PKG_DESCR:= timezone data (/usr/share/zoneinfo)
PKG_SECTION:= base/apps
PKG_URL:= http://www.iana.org/time-zones/
diff --git a/package/tzdata/patches/patch-Makefile b/package/tzdata/patches/patch-Makefile
index ed1bba324..9083a7597 100644
--- a/package/tzdata/patches/patch-Makefile
+++ b/package/tzdata/patches/patch-Makefile
@@ -1,107 +1,42 @@
---- w-tzdata-2014d-1.orig/Makefile 2014-05-28 06:35:46.000000000 +0200
-+++ w-tzdata-2014d-1/Makefile 2014-05-30 09:15:54.792171067 +0200
-@@ -45,33 +45,33 @@ POSIXRULES= America/New_York
-
- # Everything gets put in subdirectories of. . .
-
--TOPDIR= /usr/local
-+TZTOPDIR= /usr
-
- # "Compiled" time zone information is placed in the "TZDIR" directory
- # (and subdirectories).
- # Use an absolute path name for TZDIR unless you're just testing the software.
-
- TZDIR_BASENAME= zoneinfo
--TZDIR= $(TOPDIR)/etc/$(TZDIR_BASENAME)
-+TZDIR= $(TZTOPDIR)/etc/$(TZDIR_BASENAME)
-
- # Types to try, as an alternative to time_t. int64_t should be first.
- TIME_T_ALTERNATIVES= int64_t int32_t uint32_t uint64_t
-
- # The "tzselect", "zic", and "zdump" commands get installed in. . .
-
--ETCDIR= $(TOPDIR)/etc
-+ETCDIR= $(TZTOPDIR)/etc
-
- # If you "make INSTALL", the "date" command gets installed in. . .
-
--BINDIR= $(TOPDIR)/bin
-+BINDIR= $(TZTOPDIR)/bin
-
- # Manual pages go in subdirectories of. . .
-
--MANDIR= $(TOPDIR)/man
-+MANDIR= $(TZTOPDIR)/man
-
- # Library functions are put in an archive in LIBDIR.
-
--LIBDIR= $(TOPDIR)/lib
-+LIBDIR= $(TZTOPDIR)/lib
-
- # If you always want time values interpreted as "seconds since the epoch
- # (not counting leap seconds)", use
-@@ -224,7 +224,7 @@ GCC_DEBUG_FLAGS = -Dlint -g3 -O3 -fno-co
- # before the first Monday in January when a "%V" format is used and January 1
+--- w-tzdata-2021e-1.orig/Makefile 2021-09-25 16:47:39.000000000 +0200
++++ w-tzdata-2021e-1/Makefile 2022-01-09 06:05:17.958089388 +0100
+@@ -370,7 +370,7 @@ GCC_DEBUG_FLAGS = -DGCC_LINT -g3 -O3 -fn
+ # January's first Monday when a "%V" format is used and January 1
# falls on a Friday, Saturday, or Sunday.
-CFLAGS=
+CFLAGS?=
# Linker flags. Default to $(LFLAGS) for backwards compatibility
- # to tzcode2012h and earlier.
-@@ -232,7 +232,7 @@ CFLAGS=
- LDFLAGS= $(LFLAGS)
+ # to release 2012h and earlier.
+@@ -385,7 +385,7 @@ LEAPSECONDS=
+ # The zic command and its arguments.
zic= ./zic
-ZIC= $(zic) $(ZFLAGS)
+ZIC= ./zic_for_build $(ZFLAGS)
- ZFLAGS=
-
-@@ -338,7 +338,7 @@ SHELL= /bin/sh
+ # To shrink the size of installed TZif files,
+ # append "-r @N" to omit data before N-seconds-after-the-Epoch.
+@@ -562,7 +562,7 @@ SHELL= /bin/sh
+ all: tzselect zic zdump libtz.a $(TABDATA) \
+ vanguard.zi main.zi rearguard.zi
- all: tzselect zic zdump libtz.a $(TABDATA)
-
--ALL: all date
-+ALL: zic_for_build date
+-ALL: all date $(ENCHILADA)
++ALL: zic_for_build date $(ENCHILADA)
install: all $(DATA) $(REDO) $(MANS)
- mkdir -p $(DESTDIR)$(ETCDIR) $(DESTDIR)$(TZDIR) \
-@@ -371,6 +371,14 @@ zdump: $(TZDOBJS)
- zic: $(TZCOBJS) yearistype
+ mkdir -p '$(DESTDIR)$(BINDIR)' \
+@@ -637,6 +637,12 @@ zdump: $(TZDOBJS)
+ zic: $(TZCOBJS)
$(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(TZCOBJS) $(LDLIBS)
+zic_for_build: version.h
+ $(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) zic.c -o zic_build.o
+ $(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) localtime.c -o localtime_build.o
+ $(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) asctime.c -o asctime_build.o
-+ $(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) scheck.c -o scheck_build.o
-+ $(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) ialloc.c -o ialloc_build.o
-+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -o $@ zic_build.o localtime_build.o asctime_build.o scheck_build.o ialloc_build.o
++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -o $@ zic_build.o localtime_build.o asctime_build.o
+
- yearistype: yearistype.sh
- cp yearistype.sh yearistype
- chmod +x yearistype
-@@ -378,11 +386,11 @@ yearistype: yearistype.sh
leapseconds: $(LEAP_DEPS)
- $(AWK) -f leapseconds.awk leap-seconds.list >$@
-
--posix_only: zic $(TDATA)
-+posix_only: zic_for_build $(TDATA)
- $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) \
- -L /dev/null $(TDATA)
-
--right_only: zic leapseconds $(TDATA)
-+right_only: zic_for_build leapseconds $(TDATA)
- $(ZIC) -y $(YEARISTYPE) -d $(DESTDIR)$(TZDIR) \
- -L leapseconds $(TDATA)
-
-@@ -520,7 +528,7 @@ check_time_t_alternatives:
- for type in $(TIME_T_ALTERNATIVES); do \
- mkdir -p tzpublic/$$type && \
- make clean_misc && \
-- make TOPDIR=`pwd`/tzpublic/$$type \
-+ make TZTOPDIR=`pwd`/tzpublic/$$type \
- CFLAGS='$(CFLAGS) -Dtime_tz='"'$$type'" \
- install && \
- diff -qr tzpublic/int64_t/etc/zoneinfo tzpublic/$$type/etc/zoneinfo && \
+ $(AWK) -v EXPIRES_LINE=$(EXPIRES_LINE) \
+ -f leapseconds.awk leap-seconds.list >$@.out
diff --git a/package/tzdata/patches/patch-localtime_c b/package/tzdata/patches/patch-localtime_c
deleted file mode 100644
index 548d10073..000000000
--- a/package/tzdata/patches/patch-localtime_c
+++ /dev/null
@@ -1,38 +0,0 @@
---- w-tzdata-2014d-1.orig/localtime.c 2014-01-18 07:42:22.000000000 +0100
-+++ w-tzdata-2014d-1/localtime.c 2014-05-30 09:09:35.130879741 +0200
-@@ -1329,7 +1329,7 @@ localsub(const time_t *const timep, cons
- }
-
- struct tm *
--localtime(const time_t *const timep)
-+localtime_tz(const time_t *const timep)
- {
- tzset();
- return localsub(timep, 0L, &tm);
-@@ -1550,7 +1550,7 @@ ctime(const time_t *const timep)
- ** to local time in the form of a string. It is equivalent to
- ** asctime(localtime(timer))
- */
-- return asctime(localtime(timep));
-+ return asctime(localtime_tz(timep));
- }
-
- char *
-@@ -1929,7 +1929,7 @@ time1(struct tm *const tmp,
- }
-
- time_t
--mktime(struct tm *const tmp)
-+mktime_tz(struct tm *const tmp)
- {
- tzset();
- return time1(tmp, localsub, 0L);
-@@ -1973,7 +1973,7 @@ timeoff(struct tm *const tmp, const long
- long
- gtime(struct tm *const tmp)
- {
-- const time_t t = mktime(tmp);
-+ const time_t t = mktime_tz(tmp);
-
- if (t == WRONG)
- return -1;
diff --git a/package/u-boot-h8300/Makefile b/package/u-boot-h8300/Makefile
index e26b4fd59..bfd0824df 100644
--- a/package/u-boot-h8300/Makefile
+++ b/package/u-boot-h8300/Makefile
@@ -4,6 +4,7 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= u-boot
+# last working hash fa0e8426833edc1be3c2ea3acaf248157048a15a
PKG_VERSION:= h8300
PKG_GIT:= branch
PKG_RELEASE:= 1
@@ -13,7 +14,6 @@ HOST_BUILDDEP:= libressl-host dtc-host
PKG_BUILDDEP:= u-boot-h8300-host
PKG_SITES:= git://git.pf.osdn.jp/gitroot/y/ys/ysato/uboot.git
-
PKG_SYSTEM_DEPENDS:= hitachi-edosk2674
include $(ADK_TOPDIR)/mk/host.mk
@@ -23,7 +23,6 @@ $(eval $(call HOST_template,U_BOOT,u-boot,$(PKG_VERSION)-$(PKG_RELEASE)))
$(eval $(call PKG_template,U_BOOT,u-boot,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
UBOOT:= u-boot.bin
-CONFIG:= clearfog_defconfig
HOST_MAKE_FLAGS+= HOSTCFLAGS="$(HOST_CPPFLAGS) $(HOST_CFLAGS)" \
HOSTLDFLAGS="$(HOST_LDFLAGS) -ldl"
diff --git a/package/u-boot-h8300/patches/dtc.patch b/package/u-boot-h8300/patches/dtc.patch
new file mode 100644
index 000000000..725c3af2f
--- /dev/null
+++ b/package/u-boot-h8300/patches/dtc.patch
@@ -0,0 +1,11 @@
+diff -Nur u-boot-h8300.orig/scripts/dtc/dtc-lexer.l u-boot-h8300/scripts/dtc/dtc-lexer.l
+--- u-boot-h8300.orig/scripts/dtc/dtc-lexer.l 2022-02-11 13:17:30.000000000 +0100
++++ u-boot-h8300/scripts/dtc/dtc-lexer.l 2022-02-11 13:42:14.302389873 +0100
+@@ -38,7 +38,6 @@ LINECOMMENT "//".*\n
+ #include "srcpos.h"
+ #include "dtc-parser.tab.h"
+
+-YYLTYPE yylloc;
+ extern bool treesource_error;
+
+ /* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/package/u-boot-h8300/patches/patch-include_image_h b/package/u-boot-h8300/patches/patch-include_image_h
new file mode 100644
index 000000000..e087a033d
--- /dev/null
+++ b/package/u-boot-h8300/patches/patch-include_image_h
@@ -0,0 +1,13 @@
+--- u-boot-h8300.orig/include/image.h 2022-02-11 13:17:30.000000000 +0100
++++ u-boot-h8300/include/image.h 2022-02-13 01:58:23.457168935 +0100
+@@ -194,9 +194,9 @@ enum {
+ IH_ARCH_ARM64, /* ARM64 */
+ IH_ARCH_ARC, /* Synopsys DesignWare ARC */
+ IH_ARCH_X86_64, /* AMD x86_64, Intel and Via */
++ IH_ARCH_H8300, /* H8/300 */
+ IH_ARCH_XTENSA, /* Xtensa */
+ IH_ARCH_RISCV, /* RISC-V */
+- IH_ARCH_H8300, /* H8/300 */
+ IH_ARCH_COUNT,
+ };
+
diff --git a/package/u-boot-h8300/patches/patch-include_linux_compiler-gcc_h b/package/u-boot-h8300/patches/patch-include_linux_compiler-gcc_h
deleted file mode 100644
index 9780e2175..000000000
--- a/package/u-boot-h8300/patches/patch-include_linux_compiler-gcc_h
+++ /dev/null
@@ -1,11 +0,0 @@
---- u-boot-h8300.orig/include/linux/compiler-gcc.h 2017-08-02 19:27:30.000000000 +0200
-+++ u-boot-h8300/include/linux/compiler-gcc.h 2017-08-02 19:51:29.008209716 +0200
-@@ -109,7 +109,7 @@
- #define __always_unused __attribute__((unused))
-
- #define __gcc_header(x) #x
--#define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h)
-+#define _gcc_header(x) __gcc_header(linux/compiler-gcc5.h)
- #define gcc_header(x) _gcc_header(x)
- #include gcc_header(__GNUC__)
-
diff --git a/package/u-boot/Makefile b/package/u-boot/Makefile
index 4ffafa40f..704465fe9 100644
--- a/package/u-boot/Makefile
+++ b/package/u-boot/Makefile
@@ -4,19 +4,19 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= u-boot
-PKG_VERSION:= 2018.03
+PKG_VERSION:= 2024.04
PKG_RELEASE:= 1
-PKG_HASH:= 7e7477534409d5368eb1371ffde6820f0f79780a1a1f676161c48442cb303dfd
+PKG_HASH:= 18a853fe39fad7ad03a90cc2d4275aeaed6da69735defac3492b80508843dd4a
PKG_DESCR:= portable bootloader
PKG_SECTION:= base/boot
-HOST_BUILDDEP:= libressl-host dtc-host
-PKG_BUILDDEP:= u-boot-host
+HOST_BUILDDEP:= libressl-host dtc-host swig-host python3-host python-setuptools-host
+PKG_BUILDDEP:= python3-host python-setuptools-host swig-host u-boot-host
PKG_URL:= http://www.denx.de/wiki/U-Boot
PKG_SITES:= ftp://ftp.denx.de/pub/u-boot/
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SYSTEM_DEPENDS:= beaglebone-black orange-pi0 raspberry-pi raspberry-pi2 raspberry-pi3 banana-pro solidrun-imx6 solidrun-clearfog raspberry-pi3-64 raspberry-pi3p raspberry-pi3p-64
+PKG_SYSTEM_DEPENDS:= banana-p2-zero beaglebone-black orange-pi0 raspberry-pi raspberry-pi2 raspberry-pi3 banana-pro solidrun-imx6 solidrun-clearfog raspberry-pi3-64 raspberry-pi3p raspberry-pi3p-64 rockpi4-plus phytec-imx6 pcduino-3b imgtec-ci20 st-stm32f746g starfive-visionfive2
include $(ADK_TOPDIR)/mk/host.mk
include $(ADK_TOPDIR)/mk/package.mk
@@ -29,10 +29,17 @@ ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG),y)
CONFIG:= clearfog_defconfig
UBOOT:= u-boot-spl.kwb
endif
+ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_IMX6),y)
+CONFIG:= pcm058_defconfig
+UBOOT:= u-boot.img
+endif
ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
CONFIG:= mx6cuboxi_defconfig
UBOOT:= u-boot.img
endif
+ifeq ($(ADK_TARGET_SYSTEM_PCDUINO_3B),y)
+CONFIG:= Linksprite_pcDuino3_defconfig
+endif
ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
CONFIG:= rpi_defconfig
endif
@@ -51,10 +58,18 @@ endif
ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI3P_64),y)
CONFIG:= rpi_3_defconfig
endif
+ifeq ($(ADK_TARGET_SYSTEM_ROCKPI4_PLUS),y)
+CONFIG:= rock-pi-4-rk3399_defconfig
+UBOOT:= u-boot.itb
+endif
ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
CONFIG:= Bananapro_defconfig
UBOOT:= u-boot-sunxi-with-spl.bin
endif
+ifeq ($(ADK_TARGET_SYSTEM_BANANA_P2_ZERO),y)
+CONFIG:= bananapi_m2_p2_zero_defconfig
+UBOOT:= u-boot-sunxi-with-spl.bin
+endif
ifeq ($(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
CONFIG:= orangepi_zero_defconfig
UBOOT:= u-boot-sunxi-with-spl.bin
@@ -63,6 +78,18 @@ ifeq ($(ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK),y)
CONFIG:= am335x_evm_defconfig
UBOOT:= u-boot.img
endif
+ifeq ($(ADK_TARGET_SYSTEM_IMGTEC_CI20),y)
+CONFIG:= ci20_mmc_defconfig
+UBOOT:= u-boot-dtb.img
+endif
+ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F746G),y)
+CONFIG:= stm32f746-disco_defconfig
+UBOOT:= u-boot-dtb.bin
+endif
+ifeq ($(ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2),y)
+CONFIG:= starfive_visionfive2_defconfig
+UBOOT:= u-boot.itb
+endif
HOST_MAKE_FLAGS+= HOSTCFLAGS="$(HOST_CPPFLAGS) $(HOST_CFLAGS)" \
HOSTLDFLAGS="$(HOST_LDFLAGS) -ldl"
@@ -71,6 +98,10 @@ CONFIG_STYLE:= manual
BUILD_STYLE:= manual
INSTALL_STYLE:= manual
+ifeq ($(ADK_TARGET_BINFMT_FDPIC),y)
+EXTRA_CFLAGS:= -mno-fdpic
+endif
+
host-build:
(cd $(WRKBUILD) && env $(HOST_MAKE_ENV) $(MAKE) -f $(MAKE_FILE) \
$(HOST_MAKE_FLAGS) sandbox_defconfig )
@@ -86,27 +117,42 @@ do-configure:
do-build:
(cd $(WRKBUILD) && env \
+ PKG_CONFIG="$(STAGING_HOST_DIR)/usr/bin/pkg-config" \
+ PKG_CONFIG_LIBDIR="$(STAGING_HOST_DIR)/lib/pkgconfig:$(STAGING_HOST_DIR)/share/pkgconfig" \
+ KBUILD_VERBOSE=1 \
+ KCFLAGS='$(EXTRA_CFLAGS)' \
PATH='$(HOST_PATH)' \
CROSS_COMPILE='$(TARGET_CROSS)' \
+ OPENSBI="$(FW_DIR)/fw_dynamic.bin" \
$(MAKE))
-ifneq ($(OS_FOR_BUILD),Darwin)
(cd $(WRKBUILD) && env \
PATH='$(HOST_PATH)' \
CROSS_COMPILE='$(TARGET_CROSS)' \
- $(MAKE) env)
-endif
+ $(MAKE) envtools)
u-boot-install:
$(CP) $(WRKBUILD)/$(UBOOT) $(FW_DIR)
$(INSTALL_DIR) $(IDIR_U_BOOT)/etc
$(CP) ./files/fw_env.config $(IDIR_U_BOOT)/etc
-ifneq ($(OS_FOR_BUILD),Darwin)
- $(INSTALL_BIN) ./files/uboot_print_env $(IDIR_U_BOOT)/usr/bin
- $(INSTALL_BIN) ./files/uboot_set_env $(IDIR_U_BOOT)/usr/bin
+ $(INSTALL_DIR) $(IDIR_U_BOOT)/usr/bin
+ $(INSTALL_BIN) $(WRKBUILD)/tools/env/fw_printenv \
+ $(IDIR_U_BOOT)/usr/bin
+ cd $(IDIR_U_BOOT)/usr/bin && ln -fs fw_printenv fw_setenv
+ifeq ($(ADK_TARGET_SYSTEM_ROCKPI4_PLUS),y)
+ $(CP) $(WRKBUILD)/idbloader.img $(FW_DIR)
+endif
+ifeq ($(ADK_TARGET_SYSTEM_IMGTEC_CI20),y)
+ $(CP) $(WRKBUILD)/spl/u-boot-spl.bin $(FW_DIR)
endif
ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
$(INSTALL_BIN) ./files/boot.script.bpi $(FW_DIR)
endif
+ifeq ($(ADK_TARGET_SYSTEM_BANANA_P2_ZERO),y)
+ $(INSTALL_BIN) ./files/boot.script.bpizero $(FW_DIR)
+endif
+ifeq ($(ADK_TARGET_SYSTEM_ROCKPI4_PLUS),y)
+ $(INSTALL_BIN) ./files/boot.script.rockpi4 $(FW_DIR)
+endif
ifeq ($(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
$(INSTALL_BIN) ./files/boot.script.opi $(FW_DIR)
endif
@@ -117,10 +163,17 @@ ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
$(INSTALL_BIN) $(WRKBUILD)/SPL $(FW_DIR)
$(INSTALL_BIN) ./files/boot.script.imx6 $(FW_DIR)
endif
+ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_IMX6),y)
+ $(INSTALL_BIN) $(WRKBUILD)/SPL $(FW_DIR)
+ $(INSTALL_BIN) ./files/boot.script.phytec $(FW_DIR)
+endif
ifeq ($(ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK),y)
$(CP) ./files/uEnv.txt.bbb $(FW_DIR)/uEnv.txt
$(INSTALL_BIN) $(WRKBUILD)/MLO $(FW_DIR)
endif
+ifeq ($(ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2),y)
+ $(CP) $(WRKBUILD)/spl/u-boot-spl.bin.normal.out $(FW_DIR)
+endif
include $(ADK_TOPDIR)/mk/host-bottom.mk
include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/u-boot/files/boot.script.bpizero b/package/u-boot/files/boot.script.bpizero
new file mode 100644
index 000000000..1d7893b49
--- /dev/null
+++ b/package/u-boot/files/boot.script.bpizero
@@ -0,0 +1,4 @@
+setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p1 rootwait
+ext4load mmc 0:1 $fdt_addr_r boot/${fdtfile}
+ext4load mmc 0:1 $kernel_addr_r boot/kernel
+bootz $kernel_addr_r - $fdt_addr_r
diff --git a/package/u-boot/files/boot.script.imx6 b/package/u-boot/files/boot.script.imx6
index 24d1b2a93..0a4ff9fd9 100644
--- a/package/u-boot/files/boot.script.imx6
+++ b/package/u-boot/files/boot.script.imx6
@@ -1,4 +1,4 @@
-setenv bootargs 'console=ttymxc0,115200 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32 root=/dev/mmcblk0p1'
-ext4load mmc 0:1 0x18000000 boot/${fdtfile}
-ext4load mmc 0:1 0x10800000 boot/kernel
+setenv bootargs 'console=ttymxc0,115200 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32 root=/dev/mmcblk1p1 rootwait'
+ext4load mmc 1:1 0x18000000 boot/${fdtfile}
+ext4load mmc 1:1 0x10800000 boot/kernel
bootz 0x10800000 - 0x18000000
diff --git a/package/u-boot/files/boot.script.phytec b/package/u-boot/files/boot.script.phytec
new file mode 100644
index 000000000..5075ab855
--- /dev/null
+++ b/package/u-boot/files/boot.script.phytec
@@ -0,0 +1,4 @@
+setenv bootargs 'console=ttymxc1,115200 video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32 root=/dev/mmcblk0p1'
+ext4load mmc 0:1 0x18000000 boot/imx6q-phytec-pbab01.dtb
+ext4load mmc 0:1 0x12000000 boot/kernel
+bootz 0x12000000 - 0x18000000
diff --git a/package/u-boot/files/boot.script.rockpi4 b/package/u-boot/files/boot.script.rockpi4
new file mode 100644
index 000000000..c74916170
--- /dev/null
+++ b/package/u-boot/files/boot.script.rockpi4
@@ -0,0 +1,4 @@
+setenv bootargs console=tty0 console=ttyS2,115200 root=/dev/mmcblk0p1 rootwait
+ext4load mmc 1:1 $kernel_addr_r boot/kernel
+ext4load mmc 1:1 $fdt_addr_r boot/rk3399-rock-pi-4b-plus.dtb
+booti $kernel_addr_r - $fdt_addr_r
diff --git a/package/u-boot/files/fw_env.config b/package/u-boot/files/fw_env.config
index 5571d60e0..8fd738b4e 100644
--- a/package/u-boot/files/fw_env.config
+++ b/package/u-boot/files/fw_env.config
@@ -1 +1 @@
-/mnt/uboot.env 0x0000 0x4000
+/dev/mmcblk1 0x3F8000 0x8000
diff --git a/package/u-boot/files/uboot_print_env b/package/u-boot/files/uboot_print_env
deleted file mode 100755
index 7231e1a47..000000000
--- a/package/u-boot/files/uboot_print_env
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-mount -r /dev/mmcblk0p1 /mnt
-fw_printenv "$@"
-umount /mnt
diff --git a/package/u-boot/files/uboot_set_env b/package/u-boot/files/uboot_set_env
deleted file mode 100755
index 7b5a33ccc..000000000
--- a/package/u-boot/files/uboot_set_env
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-mount /dev/mmcblk0p1 /mnt
-fw_setenv "$@"
-umount /mnt
diff --git a/package/u-boot/patches/patch-configs_bananapi_m2_p2_zero_defconfig b/package/u-boot/patches/patch-configs_bananapi_m2_p2_zero_defconfig
new file mode 100644
index 000000000..c9761d409
--- /dev/null
+++ b/package/u-boot/patches/patch-configs_bananapi_m2_p2_zero_defconfig
@@ -0,0 +1,18 @@
+--- u-boot-2022.10.orig/configs/bananapi_m2_p2_zero_defconfig 1970-01-01 00:00:00.000000000 +0100
++++ u-boot-2022.10/configs/bananapi_m2_p2_zero_defconfig 2022-12-25 07:59:45.852731211 +0100
+@@ -0,0 +1,15 @@
++CONFIG_ARM=y
++CONFIG_ARCH_SUNXI=y
++# CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-bananapi-m2-plus-v1.2"
++CONFIG_DEFAULT_DEVICE_TREE="sun8i-h2-plus-bananapi-m2-zero"
++CONFIG_SPL=y
++CONFIG_MACH_SUN8I_H3=y
++CONFIG_DRAM_CLK=408
++CONFIG_MMC0_CD_PIN=""
++CONFIG_MMC_SUNXI_SLOT_EXTRA=2
++# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
++CONFIG_PREBOOT=""
++# CONFIG_SYS_DEVICE_NULLDEV is not set
++CONFIG_SPL_STACK=0x8000
++CONFIG_SYS_PBSIZE=1024
++CONFIG_SUN8I_EMAC=y
diff --git a/package/u-boot/patches/patch-configs_rock-pi-4-rk3399_defconfig b/package/u-boot/patches/patch-configs_rock-pi-4-rk3399_defconfig
new file mode 100644
index 000000000..818529353
--- /dev/null
+++ b/package/u-boot/patches/patch-configs_rock-pi-4-rk3399_defconfig
@@ -0,0 +1,11 @@
+--- u-boot-2023.07.02.orig/configs/rock-pi-4-rk3399_defconfig 2023-07-11 17:20:44.000000000 +0200
++++ u-boot-2023.07.02/configs/rock-pi-4-rk3399_defconfig 2023-09-29 15:54:05.235780393 +0200
+@@ -70,7 +70,7 @@ CONFIG_REGULATOR_PWM=y
+ CONFIG_REGULATOR_RK8XX=y
+ CONFIG_PWM_ROCKCHIP=y
+ CONFIG_RAM_ROCKCHIP_LPDDR4=y
+-CONFIG_BAUDRATE=1500000
++CONFIG_BAUDRATE=115200
+ CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
+ CONFIG_SYSRESET=y
diff --git a/package/u-boot/patches/patch-configs_rock-pi-4c-rk3399_defconfig b/package/u-boot/patches/patch-configs_rock-pi-4c-rk3399_defconfig
new file mode 100644
index 000000000..87e4bd238
--- /dev/null
+++ b/package/u-boot/patches/patch-configs_rock-pi-4c-rk3399_defconfig
@@ -0,0 +1,11 @@
+--- u-boot-2023.07.02.orig/configs/rock-pi-4c-rk3399_defconfig 2023-07-11 17:20:44.000000000 +0200
++++ u-boot-2023.07.02/configs/rock-pi-4c-rk3399_defconfig 2023-09-29 15:54:16.927583546 +0200
+@@ -67,7 +67,7 @@ CONFIG_REGULATOR_PWM=y
+ CONFIG_REGULATOR_RK8XX=y
+ CONFIG_PWM_ROCKCHIP=y
+ CONFIG_RAM_ROCKCHIP_LPDDR4=y
+-CONFIG_BAUDRATE=1500000
++CONFIG_BAUDRATE=115200
+ CONFIG_DEBUG_UART_SHIFT=2
+ CONFIG_SYS_NS16550_MEM32=y
+ CONFIG_SYSRESET=y
diff --git a/package/u-boot/patches/patch-tools_Makefile b/package/u-boot/patches/patch-tools_Makefile
new file mode 100644
index 000000000..fc284ad58
--- /dev/null
+++ b/package/u-boot/patches/patch-tools_Makefile
@@ -0,0 +1,11 @@
+--- u-boot-2024.01.orig/tools/Makefile 2024-01-08 16:37:48.000000000 +0100
++++ u-boot-2024.01/tools/Makefile 2024-01-17 17:56:21.004096375 +0100
+@@ -250,7 +250,7 @@ HOSTLDLIBS_mkeficapsule += \
+ $(shell pkg-config --libs gnutls 2> /dev/null || echo "-lgnutls")
+ HOSTLDLIBS_mkeficapsule += \
+ $(shell pkg-config --libs uuid 2> /dev/null || echo "-luuid")
+-hostprogs-$(CONFIG_TOOLS_MKEFICAPSULE) += mkeficapsule
++#hostprogs-$(CONFIG_TOOLS_MKEFICAPSULE) += mkeficapsule
+
+ mkfwumdata-objs := mkfwumdata.o generated/lib/crc32.o
+ HOSTLDLIBS_mkfwumdata += -luuid
diff --git a/package/u-boot/src/bl31.elf b/package/u-boot/src/bl31.elf
new file mode 100644
index 000000000..24cb666c7
--- /dev/null
+++ b/package/u-boot/src/bl31.elf
Binary files differ
diff --git a/package/uacme/Makefile b/package/uacme/Makefile
new file mode 100644
index 000000000..6db80991e
--- /dev/null
+++ b/package/uacme/Makefile
@@ -0,0 +1,30 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= uacme
+PKG_VERSION:= 1.7.4
+PKG_RELEASE:= 1
+PKG_HASH:= 0fd3e35218d575321e70dc3489ec3463d015c56c138e99e5add32ab7e5a48d09
+PKG_DESCR:= acme client written in c
+PKG_BUILDDEP:= curl gnutls
+PKG_DEPENDS:= libcurl libgnutls
+PKG_SECTION:= app/crypto
+PKG_SITES:= https://github.com/ndilieto/uacme/archive/refs/tags/
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,UACME,uacme,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+AUTOTOOL_STYLE:= autoreconf
+CONFIGURE_ARGS+= --disable-docs
+
+uacme-install:
+ $(INSTALL_DIR) $(IDIR_UACME)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/uacme \
+ $(IDIR_UACME)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/uclibc-ng-test/Makefile b/package/uclibc-ng-test/Makefile
index 9042bcbc0..44a7e9cde 100644
--- a/package/uclibc-ng-test/Makefile
+++ b/package/uclibc-ng-test/Makefile
@@ -10,18 +10,22 @@ PKG_DESCR:= embedded c library testsuite
PKG_SECTION:= base/tests
PKG_KDEPENDS:= inotify-user
PKG_URL:= http://www.uclibc-ng.org
-PKG_SITES:= git://uclibc-ng.org/git/uclibc-ng-test
+PKG_SITES:= https://git.uclibc-ng.org/git/uclibc-ng-test.git
PKG_NOPARALLEL:= 1
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,UCLIBC_NG_TEST,uclibc-ng-test,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
CONFIG_STYLE:= manual
-# disable math tests
-XAKE_FLAGS+= NO_MATH=1
+XAKE_FLAGS+= V=1
+ifeq ($(ADK_TARGET_LIB_GLIBC),y)
+XAKE_FLAGS+= NO_CRYPT=1
+endif
ifeq ($(ADK_TARGET_LIB_MUSL),y)
XAKE_FLAGS+= NO_MATH=1
endif
@@ -40,11 +44,18 @@ endif
ifeq ($(ADK_TARGET_LIBC_WITH_LOCALE),)
XAKE_FLAGS+= NO_LOCALE=1
endif
+ifeq ($(ADK_TARGET_ARCH_KVX),y)
+XAKE_FLAGS+= NO_TLS=1
+endif
+ifeq ($(ADK_TARGET_WITH_MMU),)
+XAKE_FLAGS+= NO_NPTL=1
+endif
uclibc-ng-test-install:
${INSTALL_DIR} ${IDIR_UCLIBC_NG_TEST}/etc
echo '00:11:22:33:44:55 teeth' > ${IDIR_UCLIBC_NG_TEST}/etc/ethers
${INSTALL_DIR} ${IDIR_UCLIBC_NG_TEST}/usr/lib
${CP} $(WRKINST)/usr/lib/* ${IDIR_UCLIBC_NG_TEST}/usr/lib/
+ -find $(IDIR_UCLIBC_NG_TEST) -name \*.gdb -delete
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/uclibc-ng/Makefile b/package/uclibc-ng/Makefile
index 765878630..c1f2215c4 100644
--- a/package/uclibc-ng/Makefile
+++ b/package/uclibc-ng/Makefile
@@ -31,6 +31,10 @@ uclibc-ng-install:
-$(CP) $(STAGING_TARGET_DIR)/lib/ld*-uClibc*.so* $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
-$(CP) $(STAGING_TARGET_DIR)/lib/libc.so.* $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
-$(CP) $(STAGING_TARGET_DIR)/lib/libuClibc-*.so $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
+ifeq ($(ADK_TARGET_BINFMT_ELF)$(ADK_TARGET_WITH_MMU),y)
+ $(CP) $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/${PKG_NAME}-${PKG_VERSION}/lib/ld*-uClibc*.so* \
+ $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH)
+endif
ifeq ($(ADK_TARGET_ARCH_CSKY),y)
cd $(IDIR_UCLIBC_NG)/$(ADK_TARGET_LIBC_PATH) && \
ln -sf ld-uClibc.so.0 ld.so.1
@@ -46,17 +50,15 @@ endif
uclibc-ng-dev-install:
${INSTALL_DIR} ${IDIR_UCLIBC_NG_DEV}/usr/lib ${IDIR_UCLIBC_NG_DEV}/$(ADK_TARGET_LIBC_PATH)
+ ${INSTALL_DIR} ${IDIR_UCLIBC_NG_DEV}/usr/include
-${CP} ${STAGING_TARGET_DIR}/usr/lib/libc.so ${IDIR_UCLIBC_NG_DEV}/usr/lib
-${CP} ${STAGING_TARGET_DIR}/usr/lib/uclibc_nonshared.a ${IDIR_UCLIBC_NG_DEV}/usr/lib
+ -${CP} ${STAGING_TARGET_DIR}/usr/lib/libpthread_nonshared.a ${IDIR_UCLIBC_NG_DEV}/usr/lib
${CP} ${STAGING_TARGET_DIR}/usr/lib/crt*.o ${IDIR_UCLIBC_NG_DEV}/usr/lib
- ${KERNEL_MAKE_ENV} \
- $(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-linux-$(KERNEL_FILE_VER)-1/linux-$(KERNEL_FILE_VER) \
- $(KERNEL_MAKE_OPTS) \
- INSTALL_HDR_PATH=$(IDIR_UCLIBC_NG_DEV)/usr \
- headers_install
+ ${KERNEL_MAKE} INSTALL_HDR_PATH=$(IDIR_UCLIBC_NG_DEV)/usr headers_install
$(MAKE) -C $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/${PKG_NAME}-${PKG_VERSION} \
PREFIX=$(IDIR_UCLIBC_NG_DEV)/ \
- DEVEL_PREFIX=/usr \
+ DEVEL_PREFIX=/usr/ \
RUNTIME_PREFIX=$(IDIR_UCLIBC_NG_DEV)/ \
HOSTCC="$(CC_FOR_BUILD)" \
CPU_CFLAGS="$(TARGET_CFLAGS)" \
diff --git a/package/udp-broadcast-relay/Makefile b/package/udp-broadcast-relay/Makefile
index adfeafa79..0ce033403 100644
--- a/package/udp-broadcast-relay/Makefile
+++ b/package/udp-broadcast-relay/Makefile
@@ -4,15 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= udp-broadcast-relay
-PKG_VERSION:= 0.3
+PKG_VERSION:= 9a0f13b4b5938bfe0af0d0d4e99dfc127c068e28
PKG_RELEASE:= 1
-PKG_HASH:= 86acb9a359cad1961bdd4be9ae425222c19fd70fc31c730bd2b96629eaba2177
+PKG_GIT:= hash
PKG_DESCR:= listens for packets on a specified udp broadcast port
PKG_SECTION:= net/misc
PKG_URL:= http://www.joachim-breitner.de/udp-broadcast-relay/
-PKG_SITES:= http://www.joachim-breitner.de/udp-broadcast-relay/files/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+PKG_SITES:= https://github.com/nomeata/udp-broadcast-relay.git
include ${ADK_TOPDIR}/mk/package.mk
diff --git a/package/udp-broadcast-relay/patches/patch-main_c b/package/udp-broadcast-relay/patches/patch-main_c
deleted file mode 100644
index f57fb0409..000000000
--- a/package/udp-broadcast-relay/patches/patch-main_c
+++ /dev/null
@@ -1,32 +0,0 @@
-$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- udp-broadcast-relay-0.3.orig/main.c 2003-09-28 16:43:32.000000000 +0200
-+++ udp-broadcast-relay-0.3/main.c 2008-10-15 16:04:02.000000000 +0200
-@@ -220,8 +220,8 @@ main(int argc,char **argv)
- }
-
- /* Save the address for later use */
-- bcopy( (struct sockaddr_in *)&reqbuf.ifr_addr,
-- &ifs[maxifs].dstaddr,
-+ memcpy( &ifs[maxifs].dstaddr,
-+ (struct sockaddr_in *)&reqbuf.ifr_addr,
- sizeof(struct sockaddr_in) );
-
- DPRINT("%s: %i / %s\n",
-@@ -349,7 +349,7 @@ main(int argc,char **argv)
- DPRINT("From:\t\t%s:%d\n",inet_ntoa(rcv_addr.sin_addr),rcv_addr.sin_port);
-
- /* copy sender's details into our datagram as the source addr */
-- bcopy(&(rcv_addr.sin_addr.s_addr),(gram+12),4);
-+ memcpy((gram+12),&(rcv_addr.sin_addr.s_addr),4);
- *(u_short*)(gram+20)=(u_short)rcv_addr.sin_port;
-
- /* set the length of the packet */
-@@ -362,7 +362,7 @@ main(int argc,char **argv)
- if (ifs[x].ifindex == rcv_ifindex) continue; /* no bounces, please */
-
- /* Set destination addr ip - port is set already*/
-- bcopy(&(ifs[x].dstaddr.sin_addr.s_addr),(gram+16),4);
-+ memcpy((gram+16),&(ifs[x].dstaddr.sin_addr.s_addr),4);
-
- DPRINT ("Sent to %s:%d on interface %i\n",
- inet_ntoa(ifs[x].dstaddr.sin_addr), /* dst ip */
diff --git a/package/urlgrabber/Makefile b/package/urlgrabber/Makefile
deleted file mode 100644
index 1b2a32726..000000000
--- a/package/urlgrabber/Makefile
+++ /dev/null
@@ -1,38 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= urlgrabber
-PKG_VERSION:= 3.10
-PKG_RELEASE:= 1
-PKG_HASH:= 151474dcba8ad99a98eb1f18873bd888e8bfd68fd71a280991899e932689dc89
-PKG_DESCR:= python module for fetching of files
-PKG_SECTION:= dev/python
-PKG_BUILDDEP:= pycurl
-PKG_DEPENDS:= pycurl
-PKG_URL:= http://urlgrabber.baseurl.org/
-PKG_SITES:= http://urlgrabber.baseurl.org/download/
-
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,URLGRABBER,urlgrabber,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-CONFIG_STYLE:= manual
-BUILD_STYLE:= manual
-INSTALL_STYLE:= manual
-
-include $(ADK_TOPDIR)/mk/python.mk
-
-do-build:
- (cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR) $(PYTHON) ./setup.py build)
- (cd $(WRKBUILD); env PYTHONPATH=$(PYTHON_LIBDIR) $(PYTHON) ./setup.py install --prefix="$(WRKINST)/usr")
-
-do-install:
- $(INSTALL_DIR) $(IDIR_URLGRABBER)/usr/lib/python$(PYTHON_VERSION)/site-packages
- $(CP) $(WRKINST)/usr/lib/python$(PYTHON_VERSION)/site-packages/* \
- $(IDIR_URLGRABBER)/usr/lib/python$(PYTHON_VERSION)/site-packages
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/urlgrabber/patches/patch-setup_py b/package/urlgrabber/patches/patch-setup_py
deleted file mode 100644
index f33080823..000000000
--- a/package/urlgrabber/patches/patch-setup_py
+++ /dev/null
@@ -1,24 +0,0 @@
---- urlgrabber-3.9.1.orig/setup.py 2009-02-23 22:37:16.000000000 +0100
-+++ urlgrabber-3.9.1/setup.py 2013-02-11 13:46:37.000000000 +0100
-@@ -1,16 +1,16 @@
- # urlgrabber distutils setup
- import re as _re
--import urlgrabber as _urlgrabber
-+#import urlgrabber as _urlgrabber
-
- name = "urlgrabber"
- description = "A high-level cross-protocol url-grabber"
--long_description = _urlgrabber.__doc__
-+long_description = "A high-level cross-protocol url-grabber"
- license = "LGPL"
--version = _urlgrabber.__version__
--_authors = _re.split(r',\s+', _urlgrabber.__author__)
-+version = "3.9.1"
-+_authors = _re.split(r',\s+', 'Michael D. Stenner, Ryan Tomayko')
- author = ', '.join([_re.sub(r'\s+<.*', r'', _) for _ in _authors])
- author_email = ', '.join([_re.sub(r'(^.*<)|(>.*$)', r'', _) for _ in _authors])
--url = _urlgrabber.__url__
-+url = "http://linux.duke.edu/projects/urlgrabber/"
-
- packages = ['urlgrabber']
- package_dir = {'urlgrabber':'urlgrabber'}
diff --git a/package/util-linux/Makefile b/package/util-linux/Makefile
index 86e84ec31..7d2510443 100644
--- a/package/util-linux/Makefile
+++ b/package/util-linux/Makefile
@@ -4,14 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= util-linux
-PKG_VERSION:= 2.32
-PKG_RELEASE:= 2
-PKG_HASH:= 6c7397abc764e32e8159c2e96042874a190303e77adceb4ac5bd502a272a4734
+PKG_VERSION:= 2.39.3
+PKG_RELEASE:= 1
+PKG_HASH:= 7b6605e48d1a49f43cc4b4cfc59f313d0dd5402fa40b96810bd572e167dfed0f
PKG_DESCR:= basic utilities
PKG_SECTION:= base/apps
PKG_BUILDDEP:= ncurses
PKG_NEEDS:= threads
-PKG_SITES:= http://www.kernel.org/pub/linux/utils/util-linux/v$(PKG_VERSION)/
+PKG_SITES:= http://www.kernel.org/pub/linux/utils/util-linux/v2.39/
PKG_OPTS:= dev
PKG_SUBPKGS:= FDISK AGETTY SFDISK SWAP_UTILS LOSETUP MCOOKIE MOUNT
@@ -109,6 +109,7 @@ endif
TARGET_CFLAGS+= -fPIC
FAKE_FLAGS+= INSTALLSUID="install -m 4755"
HOST_CONFIGURE_ARGS+= --enable-libblkid \
+ --enable-libuuid \
--enable-libmount \
--disable-all-programs \
--disable-use-tty-group
@@ -150,8 +151,8 @@ mount-install:
$(INSTALL_BIN) $(WRKINST)/usr/bin/{u,}mount $(IDIR_MOUNT)/bin
mcookie-install:
- $(INSTALL_DIR) $(IDIR_MCOOKIE)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/mcookie $(IDIR_MCOOKIE)/usr/bin
+ $(INSTALL_DIR) $(IDIR_MCOOKIE)/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/mcookie $(IDIR_MCOOKIE)/bin
libuuid-install:
$(INSTALL_DIR) $(IDIR_LIBUUID)/usr/lib
diff --git a/package/v4l-utils/Makefile b/package/v4l-utils/Makefile
index 936b26546..a18b8574c 100644
--- a/package/v4l-utils/Makefile
+++ b/package/v4l-utils/Makefile
@@ -4,19 +4,17 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= v4l-utils
-PKG_VERSION:= 1.10.1
+PKG_VERSION:= 1.26.1
PKG_RELEASE:= 1
-PKG_HASH:= 6147ccc29fe7dd3c5c3994d613c4f2a099bac8b44694a96e5cf4d7caca8336c0
+PKG_HASH:= 4a71608c0ef7df2931176989e6d32b445c0bdc1030a2376d929c8ca6e550ec4e
PKG_DESCR:= video4linux utilities
PKG_SECTION:= mm/video
PKG_BUILDDEP:= libjpeg-turbo
-PKG_SITES:= http://linuxtv.org/downloads/v4l-utils/
+PKG_SITES:= https://www.linuxtv.org/downloads/v4l-utils/
+PKG_NEEDS:= intl
PKG_LIBNAME:= libv4l
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
-
-PKG_LIBC_DEPENDS:= glibc
PKG_SUBPKGS:= V4L_UTILS LIBV4L
PKGSC_LIBV4L:= libs/video
PKGSD_LIBV4L:= Video4Linux2 libraries
@@ -26,8 +24,14 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,V4L_UTILS,v4l-utils,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,LIBV4L,libv4l,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIBV4L},${PKGSC_LIBV4L},${PKG_OPTS}))
-CONFIGURE_ARGS+= --disable-qv4l2
TARGET_CPPFLAGS+= -DLINUX_I2C_DEV_H
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+MESON_FLAGS+= -Dgconv=disabled
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
v4l-utils-install:
$(INSTALL_DIR) $(IDIR_V4L_UTILS)/usr/bin
diff --git a/package/v4l-utils/patches/patch-utils_rds_rds-saa6588_c b/package/v4l-utils/patches/patch-utils_rds_rds-saa6588_c
deleted file mode 100644
index ddd779080..000000000
--- a/package/v4l-utils/patches/patch-utils_rds_rds-saa6588_c
+++ /dev/null
@@ -1,15 +0,0 @@
---- v4l-utils-0.9.3.orig/utils/rds/rds-saa6588.c 2012-05-10 20:10:34.000000000 +0200
-+++ v4l-utils-0.9.3/utils/rds/rds-saa6588.c 2013-07-12 17:53:04.000000000 +0200
-@@ -12,8 +12,12 @@
- #include <errno.h>
- #include <sys/ioctl.h>
- #include <linux/types.h>
-+#ifdef LINUX_I2C_DEV_H
-+#include <linux/i2c-dev.h>
-+#else
- #include <linux/i2c.h>
- #include <linux/i2c-dev.h>
-+#endif
-
- int debug;
-
diff --git a/package/valgrind/Makefile b/package/valgrind/Makefile
index 6e3f3b4d3..10e7b35fc 100644
--- a/package/valgrind/Makefile
+++ b/package/valgrind/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= valgrind
-PKG_VERSION:= 3.13.0
+PKG_VERSION:= 3.22.0
PKG_RELEASE:= 1
-PKG_HASH:= d76680ef03f00cd5e970bbdcd4e57fb1f6df7d2e2c071635ef2be74790190c3b
+PKG_HASH:= c811db5add2c5f729944caf47c4e7a65dcaabb9461e472b578765dd7bf6d2d4c
PKG_DESCR:= memory management debugging tool
PKG_SECTION:= app/debug
PKG_URL:= http://valgrind.org/
@@ -20,7 +20,6 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,VALGRIND,valgrind,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-AUTOTOOL_STYLE:= autoreconf
ifeq ($(ADK_TARGET_LIB_MUSL),y)
TARGET_CPPFLAGS+= -D__MUSL__
endif
@@ -28,12 +27,22 @@ CONFIGURE_ENV+= ac_cv_file__proc_self_fd=yes \
ac_cv_file__proc_self_exe=yes \
ac_cv_file__proc_self_maps=yes
+ifeq ($(ADK_TARGET_ARCH_ARM),y)
+CONFIGURE_ARGS+= --host=$(patsubst arm-%,armv7-%,$(GNU_TARGET_NAME))
+endif
+
valgrind-install:
$(INSTALL_DIR) $(IDIR_VALGRIND)/usr/bin
$(INSTALL_DIR) $(IDIR_VALGRIND)/usr/lib/valgrind
+ $(INSTALL_DIR) $(IDIR_VALGRIND)/usr/libexec/valgrind
$(INSTALL_BIN) $(WRKINST)/usr/bin/valgrind $(IDIR_VALGRIND)/usr/bin/
+ $(INSTALL_BIN) $(WRKBUILD)/memcheck/memcheck-*-linux \
+ $(IDIR_VALGRIND)/usr/libexec/valgrind
+ $(CP) $(WRKINST)/usr/libexec/valgrind/default.supp \
+ $(IDIR_VALGRIND)/usr/libexec/valgrind
+ $(CP) $(WRKINST)/usr/libexec/valgrind/*.so \
+ $(IDIR_VALGRIND)/usr/libexec/valgrind
$(CP) $(WRKINST)/usr/lib/valgrind/* \
$(IDIR_VALGRIND)/usr/lib/valgrind
- touch $(IDIR_VALGRIND)/usr/lib/valgrind/default.supp
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/vilistextum/Makefile b/package/vilistextum/Makefile
index eaacb135d..400997d23 100644
--- a/package/vilistextum/Makefile
+++ b/package/vilistextum/Makefile
@@ -17,6 +17,8 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,VILISTEXTUM,vilistextum,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CFLAGS+= -fcommon
+
vilistextum-install:
${INSTALL_DIR} ${IDIR_VILISTEXTUM}/usr/bin
${INSTALL_BIN} ${WRKINST}/usr/bin/vilistextum \
diff --git a/package/vim/Makefile b/package/vim/Makefile
index 378e95418..7169cf883 100644
--- a/package/vim/Makefile
+++ b/package/vim/Makefile
@@ -4,18 +4,19 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= vim
-PKG_VERSION:= 8.0
+PKG_VERSION:= 9.1
+PKG_EXTRAVER:= 0041
PKG_RELEASE:= 1
-PKG_HASH:= 08bd0d1dd30ece3cb9905ccd48b82b2f81c861696377508021265177dc153a61
+PKG_HASH:= 1531eb2f9a42e3e5a0c5579e26d9a376bd85f7062701c727af482d8597c59592
PKG_DESCR:= very popular text editor
PKG_SECTION:= app/editor
PKG_DEPENDS:= libncurses
PKG_BUILDDEP:= ncurses
PKG_URL:= http://www.vim.org/
-PKG_SITES:= ftp://ftp.vim.org/pub/vim/unix/
+PKG_SITES:= https://github.com/vim/vim/archive/refs/tags/
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
-WRKDIST= ${WRKDIR}/vim80
+DISTFILES:= v${PKG_VERSION}.${PKG_EXTRAVER}.tar.gz
+WRKDIST= ${WRKDIR}/$(PKG_NAME)-$(PKG_VERSION).$(PKG_EXTRAVER)
WRKSRC= ${WRKDIST}/src
include ${ADK_TOPDIR}/mk/package.mk
@@ -28,6 +29,7 @@ CONFIGURE_ENV+= vim_cv_toupper_broken=no \
vim_cv_stat_ignores_slash=yes \
ac_cv_sizeof_int=4 \
vim_cv_terminfo=yes \
+ vim_cv_tgetent=zero \
vim_cv_tty_group=tty \
vim_cv_memmove_handles_overlap=yes \
vim_cv_tty_mode=666
@@ -39,10 +41,7 @@ CONFIGURE_ARGS+= --disable-darwin \
--disable-tclinterp \
--disable-rubyinterp \
--disable-cscope \
- --disable-workshop \
--disable-netbeans \
- --disable-sniff \
- --disable-hangulinput \
--disable-xim \
--disable-fontset \
--disable-gui \
@@ -51,8 +50,7 @@ CONFIGURE_ARGS+= --disable-darwin \
--with-features=small \
--with-compiledby=OpenADK \
--without-x \
- --with-tlib=ncurses \
- --disable-multibyte
+ --with-tlib=ncurses
XAKE_FLAGS+= prefix=/usr \
DESTDIR=${WRKINST} \
STRIP=:
@@ -61,9 +59,9 @@ vim-install:
${INSTALL_DIR} ${IDIR_VIM}/usr/bin
${INSTALL_DIR} ${IDIR_VIM}/usr/share/vim
${CP} ${WRKINST}/usr/bin/{ex,vim,view} ${IDIR_VIM}/usr/bin
- ${CP} ${WRKINST}/usr/share/vim/vim80/defaults.vim \
+ ${CP} ${WRKINST}/usr/share/vim/vim91/defaults.vim \
${IDIR_VIM}/usr/share/vim/
- ${CP} ${WRKINST}/usr/share/vim/vim80/vimrc_example.vim \
+ ${CP} ${WRKINST}/usr/share/vim/vim91/vimrc_example.vim \
${IDIR_VIM}/usr/share/vim/vimrc
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/vlc/Makefile b/package/vlc/Makefile
index a5395b879..ccf59458d 100644
--- a/package/vlc/Makefile
+++ b/package/vlc/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= vlc
-PKG_VERSION:= 2.2.6
+PKG_VERSION:= 3.0.20
PKG_RELEASE:= 1
-PKG_HASH:= c403d3accd9a400eb2181c958f3e7bc5524fe5738425f4253d42883b425a42a8
+PKG_HASH:= adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5
PKG_DESCR:= popular media player
PKG_SECTION:= mm/video
PKG_DEPENDS:= libffmpeg xcb-util libgcrypt alsa-lib
@@ -16,16 +16,13 @@ PKG_URL:= http://www.videolan.org/vlc/
PKG_SITES:= http://download.videolan.org/pub/videolan/vlc/$(PKG_VERSION)/
PKG_FLAVOURS_VLC:= WITH_BLURAY WITH_MAD WITH_OGG WITH_OPUS WITH_SPEEX WITH_THEORA
-PKG_FLAVOURS_VLC+= WITH_VPX WITH_MATROSKA
+PKG_FLAVOURS_VLC+= WITH_VPX WITH_X264
PKGFD_WITH_BLURAY:= enable bluray support
PKGFB_WITH_BLURAY:= libbluray
PKGFS_WITH_BLURAY:= libbluray
PKGFD_WITH_MAD:= enable mp3 support
PKGFB_WITH_MAD:= libmad
PKGFS_WITH_MAD:= libmad
-PKGFD_WITH_MATROSKA:= enable matroska support
-PKGFB_WITH_MATROSKA:= libmatroska
-PKGFS_WITH_MATROSKA:= libmatroska
PKGFD_WITH_OGG:= enable ogg support
PKGFB_WITH_OGG:= libogg
PKGFS_WITH_OGG:= libogg
@@ -41,6 +38,9 @@ PKGFS_WITH_THEORA:= libtheora
PKGFD_WITH_VPX:= enable vpx support
PKGFB_WITH_VPX:= libvpx
PKGFS_WITH_VPX:= libvpx
+PKGFD_WITH_X264:= enable h264 support
+PKGFB_WITH_X264:= libx264
+PKGFS_WITH_X264:= libx264
include $(ADK_TOPDIR)/mk/package.mk
@@ -66,7 +66,10 @@ CONFIGURE_ARGS+= --disable-lua \
--enable-libgcrypt \
--disable-optimizations \
--disable-static \
- --disable-avcodec
+ --disable-swscale \
+ --disable-avformat \
+ --disable-avcodec \
+ --disable-mpg123
ifeq ($(ADK_TARGET_ARCH_ARM_WITH_NEON),)
CONFIGURE_ARGS+= --disable-neon
@@ -82,11 +85,6 @@ CONFIGURE_ARGS+= --enable-mad
else
CONFIGURE_ARGS+= --disable-mad
endif
-ifneq ($(ADK_PACKAGE_VLC_WITH_MATROSKA),)
-CONFIGURE_ARGS+= --enable-mkv
-else
-CONFIGURE_ARGS+= --disable-mkv
-endif
ifneq ($(ADK_PACKAGE_VLC_WITH_OGG),)
CONFIGURE_ARGS+= --enable-ogg
else
@@ -112,6 +110,11 @@ CONFIGURE_ARGS+= --enable-vpx
else
CONFIGURE_ARGS+= --disable-vpx
endif
+ifneq ($(ADK_PACKAGE_VLC_WITH_X264),)
+CONFIGURE_ARGS+= --enable-x264
+else
+CONFIGURE_ARGS+= --disable-x264
+endif
vlc-install:
$(INSTALL_DIR) $(IDIR_VLC)/usr/bin
diff --git a/package/vlc/patches/patch-Makefile_am b/package/vlc/patches/patch-Makefile_am
deleted file mode 100644
index b41062e43..000000000
--- a/package/vlc/patches/patch-Makefile_am
+++ /dev/null
@@ -1,11 +0,0 @@
---- vlc-2.2.4.orig/Makefile.am 2015-10-21 19:48:45.000000000 +0200
-+++ vlc-2.2.4/Makefile.am 2016-09-24 20:37:45.255479549 +0200
-@@ -933,7 +933,7 @@ libvlc: libvlccore
- cd lib && $(MAKE) $(AM_MAKEFLAGS) libvlc.la
-
- core: libvlc vlc$(EXEEXT)
-- cd bin && $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT) vlc-static$(EXEEXT)
-+ cd bin && $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT)
-
- doc:
- cd doc && $(MAKE) $(AM_MAKEFLAGS) doc
diff --git a/package/vlc/patches/patch-bin_Makefile_am b/package/vlc/patches/patch-bin_Makefile_am
deleted file mode 100644
index 5a3ea1bb2..000000000
--- a/package/vlc/patches/patch-bin_Makefile_am
+++ /dev/null
@@ -1,11 +0,0 @@
---- vlc-2.2.4.orig/bin/Makefile.am 2015-02-02 20:42:28.000000000 +0100
-+++ vlc-2.2.4/bin/Makefile.am 2016-09-24 20:37:45.251479394 +0200
-@@ -1,7 +1,7 @@
- # Building vlc
- #
- bin_PROGRAMS = vlc
--noinst_PROGRAMS = vlc-static
-+noinst_PROGRAMS =
- noinst_DATA =
- vlclib_PROGRAMS = vlc-cache-gen
- EXTRA_PROGRAMS = vlc-wrapper
diff --git a/package/vlc/patches/patch-configure_ac b/package/vlc/patches/patch-configure_ac
index ff67e1512..ead8c4c7e 100644
--- a/package/vlc/patches/patch-configure_ac
+++ b/package/vlc/patches/patch-configure_ac
@@ -1,122 +1,11 @@
---- vlc-2.2.6.orig/configure.ac 2017-05-24 12:40:16.000000000 +0200
-+++ vlc-2.2.6/configure.ac 2017-06-06 22:52:45.841013479 +0200
-@@ -24,7 +24,7 @@ AC_CANONICAL_BUILD
- AC_CANONICAL_HOST
- AC_PRESERVE_HELP_ORDER
-
--AM_INIT_AUTOMAKE(tar-ustar color-tests foreign)
-+AM_INIT_AUTOMAKE(tar-ustar color-tests foreign subdir-objects)
- AC_CONFIG_HEADERS([config.h])
-
- # Disable with "./configure --disable-silent-rules" or "make V=1"
-@@ -121,6 +121,7 @@ case "${host_os}" in
- ;;
- linux*)
- SYS=linux
-+ AC_CHECK_LIB([rt], [posix_spawnp], [VLC_ADD_LIBS([libvlccore],[-lrt])], [], [])
- ;;
- bsdi*)
- SYS=bsdi
-@@ -537,7 +538,7 @@ need_libc=false
+--- vlc-3.0.20.orig/configure.ac 2023-10-30 08:25:45.000000000 +0100
++++ vlc-3.0.20/configure.ac 2024-03-03 07:55:57.955760063 +0100
+@@ -631,7 +631,7 @@ dnl Check for system libs needed
+ need_libc=false
dnl Check for usual libc functions
- AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
--AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale])
-+AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale strerror_l stricmp strnicmp strptime uselocale])
- AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid gmtime_r lldiv localtime_r nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
- AC_CHECK_FUNCS(fdatasync,,
- [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
-@@ -867,7 +868,7 @@ dnl
- dnl Compiler warnings
- dnl
-
--RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast write-strings missing-prototypes volatile-register-var error-implicit-function-declaration])
-+RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast write-strings missing-prototypes volatile-register-var])
- RDC_PROG_CC_FLAGS([-pipe])
- AC_LANG_PUSH([C++])
- RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
-@@ -2318,7 +2319,7 @@ AC_ARG_ENABLE(avcodec,
- AS_IF([test "${enable_avcodec}" != "no"], [
- PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 53.34.0 libavutil >= 51.22.0], [
- PKG_CHECK_EXISTS([libavutil < 55],, [
-- AC_MSG_ERROR([libavutil versions 55 and later are not supported.])
-+ AC_MSG_WARN([libavutil versions 55 and later are not supported.])
- ])
- VLC_SAVE_FLAGS
- CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
-@@ -2328,7 +2329,7 @@ AS_IF([test "${enable_avcodec}" != "no"]
- VLC_RESTORE_FLAGS
- have_avcodec="yes"
- ],[
-- AC_MSG_ERROR([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
-+ AC_MSG_WARN([${AVCODEC_PKG_ERRORS}. Pass --disable-avcodec to ignore this error.])
- ])
- ], [
- have_avcodec="no"
-@@ -2377,7 +2378,7 @@ AS_IF([test "${have_vaapi}" = "yes" -a "
- case "${avfork}" in
- ffmpeg)
- PKG_CHECK_EXISTS([libavcodec >= 57.10.100], [
-- AC_MSG_ERROR([VA API requires FFmpeg libavcodec < 57.10 or libav.])
-+ AC_MSG_WARN([VA API requires FFmpeg libavcodec < 57.10 or libav.])
- ])
- ;;
- esac
-@@ -2411,7 +2412,7 @@ AS_IF([test "${enable_dxva2}" != "no"],
- case "${avfork}" in
- ffmpeg)
- PKG_CHECK_EXISTS([libavcodec >= 57.10.100], [
-- AC_MSG_ERROR([DXVA2 requires FFmpeg libavcodec < 57.10 or libav.])
-+ AC_MSG_WARN([DXVA2 requires FFmpeg libavcodec < 57.10 or libav.])
- ])
- ;;
- esac
-@@ -2503,7 +2504,7 @@ AS_IF([test "${enable_avformat}" != "no"
- ])
- VLC_RESTORE_FLAGS
- ],[
-- AC_MSG_ERROR([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
-+ AC_MSG_WARN([${AVFORMAT_PKG_ERRORS}. Pass --disable-avformat to ignore this error.])
- ])
- ])
- AM_CONDITIONAL([HAVE_AVFORMAT], [test "${enable_avformat}" != "no"])
-@@ -2532,7 +2533,7 @@ then
- ])
- VLC_RESTORE_FLAGS
- ],[
-- AC_MSG_ERROR([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
-+ AC_MSG_WARN([${SWSCALE_PKG_ERRORS}. Pass --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
- ])
- fi
-
-@@ -3175,7 +3176,7 @@ AS_IF([test "${have_vdpau}" = "yes" -a "
- libav) av_vdpau_ver="55.26.0" ;;
- ffmpeg) av_vdpau_ver="55.42.100"
- PKG_CHECK_EXISTS([libavcodec >= 57.10.100], [
-- AC_MSG_ERROR([VDPAU requires FFmpeg libavcodec < 57.10 or libav.])
-+ AC_MSG_WARN([VDPAU requires FFmpeg libavcodec < 57.10 or libav.])
- ])
- ;;
- esac
-@@ -4056,16 +4057,17 @@ dnl
- AC_ARG_ENABLE(libgcrypt,
- [ --disable-libgcrypt gcrypt support (default enabled)])
- AS_IF([test "${enable_libgcrypt}" != "no"], [
-+ AC_PATH_PROG([GCRYPT_CONFIG],[libgcrypt-config],[libgcrypt-config])
- AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
-- libgcrypt-config --version >/dev/null || \
-+ ${GCRYPT_CONFIG} --version >/dev/null || \
- AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
- AC_CHECK_LIB(gcrypt, gcry_control, [
- have_libgcrypt="yes"
-- GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
-- GCRYPT_LIBS="`libgcrypt-config --libs`"
-+ GCRYPT_CFLAGS="`${GCRYPT_CONFIG} --cflags`"
-+ GCRYPT_LIBS="`${GCRYPT_CONFIG} --libs`"
- ], [
- AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.])
-- ], [`libgcrypt-config --libs`])
-+ ], [`${GCRYPT_CONFIG} --libs`])
- ], [
- AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
- ], [#include <gcrypt.h>]
+-AC_CHECK_FUNCS([accept4 daemon fcntl flock fstatvfs fork getenv getmntent_r getpwuid_r isatty lstat memalign mkostemp mmap newlocale open_memstream openat pipe2 pread posix_fadvise posix_madvise posix_memalign setlocale stricmp strnicmp strptime uselocale])
++AC_CHECK_FUNCS([accept4 daemon fcntl flock fstatvfs fork getenv getmntent_r getpwuid_r isatty lstat memalign mkostemp mmap newlocale open_memstream openat pipe2 pread posix_fadvise posix_madvise posix_memalign setlocale strerror_l stricmp strnicmp strptime uselocale])
+ AC_REPLACE_FUNCS([aligned_alloc atof atoll dirfd fdopendir ffsll flockfile fsync getdelim getpid lfind lldiv memrchr nrand48 poll recvmsg rewind sendmsg setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strnstr strsep strtof strtok_r strtoll swab tdestroy tfind timegm timespec_get strverscmp pathconf])
+ AC_REPLACE_FUNCS([gettimeofday])
+ AC_CHECK_FUNC(fdatasync,,
diff --git a/package/vlc/patches/patch-include_vlc_fixups_h b/package/vlc/patches/patch-include_vlc_fixups_h
deleted file mode 100644
index 968f8d8eb..000000000
--- a/package/vlc/patches/patch-include_vlc_fixups_h
+++ /dev/null
@@ -1,15 +0,0 @@
---- vlc-2.2.6.orig/include/vlc_fixups.h 2015-04-13 21:54:35.000000000 +0200
-+++ vlc-2.2.6/include/vlc_fixups.h 2017-06-06 22:56:59.837313883 +0200
-@@ -239,8 +239,10 @@ static inline locale_t newlocale(int mas
- }
- #endif
-
--#if !defined (HAVE_STATIC_ASSERT)
--# define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); }))
-+#if !defined (HAVE_STATIC_ASSERT) && !defined(__cpp_static_assert)
-+# define STATIC_ASSERT_CONCAT_(a, b) a##b
-+# define STATIC_ASSERT_CONCAT(a, b) STATIC_ASSERT_CONCAT_(a, b)
-+# define _Static_assert(x, s) extern char STATIC_ASSERT_CONCAT(static_assert_, __LINE__)[sizeof(struct { unsigned:-!(x); })]
- # define static_assert _Static_assert
- #endif
-
diff --git a/package/vlc/patches/patch-modules_codec_avcodec_audio_c b/package/vlc/patches/patch-modules_codec_avcodec_audio_c
deleted file mode 100644
index 9dfaff716..000000000
--- a/package/vlc/patches/patch-modules_codec_avcodec_audio_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- vlc-2.2.4.orig/modules/codec/avcodec/audio.c 2016-01-18 21:49:57.000000000 +0100
-+++ vlc-2.2.4/modules/codec/avcodec/audio.c 2016-09-24 20:35:02.681191261 +0200
-@@ -39,7 +39,7 @@
- #include <libavcodec/avcodec.h>
- #include <libavutil/mem.h>
-
--#include <libavutil/audioconvert.h>
-+#include <libavutil/channel_layout.h>
-
- #include "avcodec.h"
-
diff --git a/package/vlc/patches/patch-modules_codec_avcodec_encoder_c b/package/vlc/patches/patch-modules_codec_avcodec_encoder_c
deleted file mode 100644
index 3766addf8..000000000
--- a/package/vlc/patches/patch-modules_codec_avcodec_encoder_c
+++ /dev/null
@@ -1,92 +0,0 @@
---- vlc-2.2.4.orig/modules/codec/avcodec/encoder.c 2015-10-21 19:48:45.000000000 +0200
-+++ vlc-2.2.4/modules/codec/avcodec/encoder.c 2016-09-24 20:35:02.681191261 +0200
-@@ -41,7 +41,7 @@
- #include <vlc_cpu.h>
-
- #include <libavcodec/avcodec.h>
--#include <libavutil/audioconvert.h>
-+#include <libavutil/channel_layout.h>
-
- #include "avcodec.h"
- #include "avcommon.h"
-@@ -311,7 +311,7 @@ int OpenEncoder( vlc_object_t *p_this )
- else if( !GetFfmpegCodec( p_enc->fmt_out.i_codec, &i_cat, &i_codec_id,
- &psz_namecodec ) )
- {
-- if( FindFfmpegChroma( p_enc->fmt_out.i_codec ) == PIX_FMT_NONE )
-+ if( FindFfmpegChroma( p_enc->fmt_out.i_codec ) == AV_PIX_FMT_NONE )
- return VLC_EGENERIC; /* handed chroma output */
-
- i_cat = VIDEO_ES;
-@@ -555,7 +555,7 @@ int OpenEncoder( vlc_object_t *p_this )
-
- if( p_codec->pix_fmts )
- {
-- const enum PixelFormat *p = p_codec->pix_fmts;
-+ const enum AVPixelFormat *p = p_codec->pix_fmts;
- for( ; *p != -1; p++ )
- {
- if( *p == p_context->pix_fmt ) break;
-@@ -1017,7 +1017,7 @@ errmsg:
- }
- }
-
-- p_sys->frame = avcodec_alloc_frame();
-+ p_sys->frame = av_frame_alloc();
- if( !p_sys->frame )
- {
- goto error;
-@@ -1048,7 +1048,7 @@ static void vlc_av_packet_Release(block_
- {
- vlc_av_packet_t *b = (void *) block;
-
-- av_free_packet(&b->packet);
-+ av_packet_unref(&b->packet);
- free(b);
- }
-
-@@ -1088,7 +1088,7 @@ static block_t *EncodeVideo( encoder_t *
- AVFrame *frame = NULL;
- if( likely(p_pict) ) {
- frame = p_sys->frame;
-- avcodec_get_frame_defaults( frame );
-+ av_frame_unref( frame );
- for( i_plane = 0; i_plane < p_pict->i_planes; i_plane++ )
- {
- p_sys->frame->data[i_plane] = p_pict->p[i_plane].p_pixels;
-@@ -1188,7 +1188,7 @@ static block_t *EncodeVideo( encoder_t *
- av_pkt.duration / p_sys->p_context->time_base.den, p_sys->p_context );
- if( unlikely(p_block == NULL) )
- {
-- av_free_packet( &av_pkt );
-+ av_packet_unref( &av_pkt );
- return NULL;
- }
-
-@@ -1329,7 +1329,7 @@ static block_t *handle_delay_buffer( enc
- //How much we need to copy from new packet
- const int leftover = leftover_samples * p_sys->p_context->channels * p_sys->i_sample_bytes;
-
-- avcodec_get_frame_defaults( p_sys->frame );
-+ av_frame_unref( p_sys->frame );
- p_sys->frame->format = p_sys->p_context->sample_fmt;
- p_sys->frame->nb_samples = leftover_samples + p_sys->i_samples_delay;
-
-@@ -1451,7 +1451,7 @@ static block_t *EncodeAudio( encoder_t *
- while( ( p_aout_buf->i_nb_samples >= p_sys->i_frame_size ) ||
- ( p_sys->b_variable && p_aout_buf->i_nb_samples ) )
- {
-- avcodec_get_frame_defaults( p_sys->frame );
-+ av_frame_unref( p_sys->frame );
- if( p_sys->b_variable )
- p_sys->frame->nb_samples = p_aout_buf->i_nb_samples;
- else
-@@ -1514,7 +1514,7 @@ void CloseEncoder( vlc_object_t *p_this
- encoder_t *p_enc = (encoder_t *)p_this;
- encoder_sys_t *p_sys = p_enc->p_sys;
-
-- /*FIXME: we should use avcodec_free_frame, but we don't require so new avcodec that has it*/
-+ /*FIXME: we should use av_frame_free, but we don't require so new avcodec that has it*/
- av_freep( &p_sys->frame );
-
- vlc_avcodec_lock();
diff --git a/package/vlc/patches/patch-modules_codec_avcodec_vaapi_c b/package/vlc/patches/patch-modules_codec_avcodec_vaapi_c
deleted file mode 100644
index 1fdad6258..000000000
--- a/package/vlc/patches/patch-modules_codec_avcodec_vaapi_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- vlc-2.2.4.orig/modules/codec/avcodec/vaapi.c 2015-02-02 20:42:29.000000000 +0100
-+++ vlc-2.2.4/modules/codec/avcodec/vaapi.c 2016-09-24 20:35:02.681191261 +0200
-@@ -595,7 +595,7 @@ static int Create( vlc_va_t *p_va, AVCod
- return err;
-
- /* Only VLD supported */
-- p_va->pix_fmt = PIX_FMT_VAAPI_VLD;
-+ p_va->pix_fmt = AV_PIX_FMT_VAAPI_VLD;
- p_va->setup = Setup;
- p_va->get = Get;
- p_va->release = Release;
diff --git a/package/vlc/patches/patch-modules_codec_avcodec_video_c b/package/vlc/patches/patch-modules_codec_avcodec_video_c
deleted file mode 100644
index c9d3fb226..000000000
--- a/package/vlc/patches/patch-modules_codec_avcodec_video_c
+++ /dev/null
@@ -1,51 +0,0 @@
---- vlc-2.2.6.orig/modules/codec/avcodec/video.c 2016-09-27 09:56:26.000000000 +0200
-+++ vlc-2.2.6/modules/codec/avcodec/video.c 2017-06-06 22:52:46.745071498 +0200
-@@ -108,8 +108,8 @@ static int lavc_GetFrame(struct AVCodecC
- static int ffmpeg_GetFrameBuf ( struct AVCodecContext *, AVFrame * );
- static void ffmpeg_ReleaseFrameBuf( struct AVCodecContext *, AVFrame * );
- #endif
--static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *,
-- const enum PixelFormat * );
-+static enum AVPixelFormat ffmpeg_GetFormat( AVCodecContext *,
-+ const enum AVPixelFormat * );
-
- static uint32_t ffmpeg_CodecTag( vlc_fourcc_t fcc )
- {
-@@ -234,7 +234,7 @@ int InitVideoDec( decoder_t *p_dec, AVCo
- p_sys->p_codec = p_codec;
- p_sys->i_codec_id = i_codec_id;
- p_sys->psz_namecodec = psz_namecodec;
-- p_sys->p_ff_pic = avcodec_alloc_frame();
-+ p_sys->p_ff_pic = av_frame_alloc();
- p_sys->b_delayed_open = true;
- p_sys->p_va = NULL;
- vlc_sem_init( &p_sys->sem_mt, 0 );
-@@ -446,7 +446,7 @@ int InitVideoDec( decoder_t *p_dec, AVCo
- if( ffmpeg_OpenCodec( p_dec ) < 0 )
- {
- msg_Err( p_dec, "cannot open codec (%s)", p_sys->psz_namecodec );
-- avcodec_free_frame( &p_sys->p_ff_pic );
-+ av_frame_free( &p_sys->p_ff_pic );
- vlc_sem_destroy( &p_sys->sem_mt );
- free( p_sys );
- return VLC_EGENERIC;
-@@ -847,7 +847,7 @@ void EndVideoDec( decoder_t *p_dec )
- wait_mt( p_sys );
-
- if( p_sys->p_ff_pic )
-- avcodec_free_frame( &p_sys->p_ff_pic );
-+ av_frame_free( &p_sys->p_ff_pic );
-
- if( p_sys->p_va )
- vlc_va_Delete( p_sys->p_va );
-@@ -1334,8 +1334,8 @@ static void ffmpeg_ReleaseFrameBuf( stru
- }
- #endif
-
--static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context,
-- const enum PixelFormat *pi_fmt )
-+static enum AVPixelFormat ffmpeg_GetFormat( AVCodecContext *p_context,
-+ const enum AVPixelFormat *pi_fmt )
- {
- decoder_t *p_dec = p_context->opaque;
- decoder_sys_t *p_sys = p_dec->p_sys;
diff --git a/package/vlc/patches/patch-modules_demux_avformat_demux_c b/package/vlc/patches/patch-modules_demux_avformat_demux_c
deleted file mode 100644
index ca710b26b..000000000
--- a/package/vlc/patches/patch-modules_demux_avformat_demux_c
+++ /dev/null
@@ -1,46 +0,0 @@
---- vlc-2.2.4.orig/modules/demux/avformat/demux.c 2016-01-18 21:49:57.000000000 +0100
-+++ vlc-2.2.4/modules/demux/avformat/demux.c 2016-09-24 20:35:02.681191261 +0200
-@@ -734,14 +734,14 @@ static int Demux( demux_t *p_demux )
- }
- if( pkt.stream_index < 0 || pkt.stream_index >= p_sys->i_tk )
- {
-- av_free_packet( &pkt );
-+ av_packet_unref( &pkt );
- return 1;
- }
- const AVStream *p_stream = p_sys->ic->streams[pkt.stream_index];
- if( p_stream->time_base.den <= 0 )
- {
- msg_Warn( p_demux, "Invalid time base for the stream %d", pkt.stream_index );
-- av_free_packet( &pkt );
-+ av_packet_unref( &pkt );
- return 1;
- }
- if( p_stream->codec->codec_id == AV_CODEC_ID_SSA )
-@@ -749,7 +749,7 @@ static int Demux( demux_t *p_demux )
- p_frame = BuildSsaFrame( &pkt, p_sys->i_ssa_order++ );
- if( !p_frame )
- {
-- av_free_packet( &pkt );
-+ av_packet_unref( &pkt );
- return 1;
- }
- }
-@@ -757,7 +757,7 @@ static int Demux( demux_t *p_demux )
- {
- if( ( p_frame = block_Alloc( pkt.size ) ) == NULL )
- {
-- av_free_packet( &pkt );
-+ av_packet_unref( &pkt );
- return 0;
- }
- memcpy( p_frame->p_buffer, pkt.data, pkt.size );
-@@ -838,7 +838,7 @@ static int Demux( demux_t *p_demux )
- else
- block_Release( p_frame );
-
-- av_free_packet( &pkt );
-+ av_packet_unref( &pkt );
- return 1;
- }
-
diff --git a/package/vlc/patches/patch-src_posix_error_c b/package/vlc/patches/patch-src_posix_error_c
index ef51c996e..413f97f7d 100644
--- a/package/vlc/patches/patch-src_posix_error_c
+++ b/package/vlc/patches/patch-src_posix_error_c
@@ -1,5 +1,5 @@
---- vlc-2.2.4.orig/src/posix/error.c 2015-02-02 20:42:32.000000000 +0100
-+++ vlc-2.2.4/src/posix/error.c 2016-09-24 20:34:45.824539253 +0200
+--- vlc-3.0.20.orig/src/posix/error.c 2017-11-24 16:29:18.000000000 +0100
++++ vlc-3.0.20/src/posix/error.c 2024-03-03 07:55:57.955760063 +0100
@@ -31,6 +31,7 @@
static const char *vlc_strerror_l(int errnum, const char *lname)
@@ -8,15 +8,8 @@
int saved_errno = errno;
locale_t loc = newlocale(LC_MESSAGES_MASK, lname, (locale_t)0);
-@@ -48,9 +49,16 @@ static const char *vlc_strerror_l(int er
- errno = saved_errno;
- }
-
-+#if defined(__UCLIBC__)
-+ const char *buf = strerror_r(errnum, loc, 100);
-+#else
+@@ -51,6 +52,9 @@ static const char *vlc_strerror_l(int er
const char *buf = strerror_l(errnum, loc);
-+#endif
freelocale(loc);
+#else
diff --git a/package/vlc/patches/patch-src_posix_thread_c b/package/vlc/patches/patch-src_posix_thread_c
deleted file mode 100644
index 5c636c164..000000000
--- a/package/vlc/patches/patch-src_posix_thread_c
+++ /dev/null
@@ -1,11 +0,0 @@
---- vlc-2.2.4.orig/src/posix/thread.c 2015-02-02 20:42:32.000000000 +0100
-+++ vlc-2.2.4/src/posix/thread.c 2016-09-24 20:34:51.776769484 +0200
-@@ -85,7 +85,7 @@ static clockid_t vlc_clock_id;
-
- static void vlc_clock_setup_once (void)
- {
--# if (_POSIX_MONOTONIC_CLOCK == 0)
-+# if (_POSIX_MONOTONIC_CLOCK == 0) && (_POSIX_CLOCK_SELECTION > 0)
- long val = sysconf (_SC_MONOTONIC_CLOCK);
- assert (val != 0);
- vlc_clock_id = (val < 0) ? CLOCK_REALTIME : CLOCK_MONOTONIC;
diff --git a/package/vnstat/Makefile b/package/vnstat/Makefile
index cec293741..0ff859b02 100644
--- a/package/vnstat/Makefile
+++ b/package/vnstat/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= vnstat
-PKG_VERSION:= 1.14
+PKG_VERSION:= 2.12
PKG_RELEASE:= 1
-PKG_HASH:= f8462a47d85d0890493dc9eaeafbc725ae631aa5b103fb7f8af4ddb2314e8386
+PKG_HASH:= b7386b12fc1fc6f47fab31f208b12eda61862e63e229e84e95a6fa80406d2852
PKG_DESCR:= console-based network traffic monitor
PKG_SECTION:= net/perf
PKG_SITES:= http://humdi.net/vnstat/
@@ -17,12 +17,10 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,VNSTAT,vnstat,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-CONFIG_STYLE:= manual
-INSTALL_STYLE:= manual
ALL_TARGET:= vnstat
-do-install:
+vnstat-install:
${INSTALL_DIR} ${IDIR_VNSTAT}/usr/bin
- ${INSTALL_BIN} ${WRKBUILD}/src/vnstat ${IDIR_VNSTAT}/usr/bin/
+ ${INSTALL_BIN} ${WRKINST}/usr/bin/vnstat ${IDIR_VNSTAT}/usr/bin/
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/vtun/Makefile b/package/vtun/Makefile
index a071c6df8..2bc582e42 100644
--- a/package/vtun/Makefile
+++ b/package/vtun/Makefile
@@ -4,9 +4,9 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= vtun
-PKG_VERSION:= 3.0.1
+PKG_VERSION:= 3.0.4
PKG_RELEASE:= 1
-PKG_HASH:= 22507499a8f650ef97157977e62fa632d5b0034070629a2d0fd0512e304eaeeb
+PKG_HASH:= abf8df6b15e3febeaaeae2ce24ead7105eb1537ad4ec0d830c83cbb684fd98b9
PKG_DESCR:= vpn tunnel daemon
PKG_SECTION:= net/security
PKG_DEPENDS:= zlib liblzo libressl
diff --git a/package/vtun/patches/patch-cfg_file_y b/package/vtun/patches/patch-cfg_file_y
new file mode 100644
index 000000000..cc36bf9b0
--- /dev/null
+++ b/package/vtun/patches/patch-cfg_file_y
@@ -0,0 +1,11 @@
+--- vtun-3.0.4.orig/cfg_file.y 2016-10-01 23:27:51.000000000 +0200
++++ vtun-3.0.4/cfg_file.y 2019-10-08 12:07:01.383933126 +0200
+@@ -610,7 +610,7 @@ int clear_nat_hack_client(void *d, void
+ }
+
+ /* Clear the VTUN_NAT_HACK flag which are not relevant to the current operation mode */
+-inline void clear_nat_hack_flags(int svr)
++extern inline void clear_nat_hack_flags(int svr)
+ {
+ if (svr)
+ llist_trav(&host_list,clear_nat_hack_server,NULL);
diff --git a/package/vtun/patches/patch-configure b/package/vtun/patches/patch-configure
index 476d5dc80..f30b34bf1 100644
--- a/package/vtun/patches/patch-configure
+++ b/package/vtun/patches/patch-configure
@@ -1,7 +1,7 @@
$Id: update-patches 24 2008-08-31 14:56:13Z wbx $
---- vtun-3.0.1.orig/configure 2006-12-11 08:55:06.000000000 +0100
-+++ vtun-3.0.1/configure 2009-05-12 00:38:14.000000000 +0200
-@@ -5661,140 +5661,6 @@ echo "$as_me: error: SSL headers not fou
+--- vtun-3.0.4.orig/configure 2009-03-29 12:08:48.000000000 +0200
++++ vtun-3.0.4/configure 2019-10-08 11:46:57.270777719 +0200
+@@ -5671,140 +5671,6 @@ echo "$as_me: error: SSL headers not fou
fi
diff --git a/package/w3m/Makefile b/package/w3m/Makefile
index bc97defc8..8b553b01b 100644
--- a/package/w3m/Makefile
+++ b/package/w3m/Makefile
@@ -14,6 +14,8 @@ PKG_BUILDDEP:= libgc-host libgc ncurses
PKG_URL:= http://w3m.sourceforge.net/
PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=w3m/}
+PKG_NOPARALLEL:= 1
+
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
include $(ADK_TOPDIR)/mk/package.mk
diff --git a/package/wayland-protocols/Makefile b/package/wayland-protocols/Makefile
new file mode 100644
index 000000000..9c1f8ad1d
--- /dev/null
+++ b/package/wayland-protocols/Makefile
@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= wayland-protocols
+PKG_VERSION:= 1.31
+PKG_RELEASE:= 1
+PKG_HASH:= a07fa722ed87676ec020d867714bc9a2f24c464da73912f39706eeef5219e238
+PKG_DESCR:= wayland protocols
+PKG_SECTION:= x11/libs
+PKG_BUILDDEP:= meson-host wayland-host
+PKG_SITES:= https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/$(PKG_VERSION)/downloads/
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,WAYLAND_PROTOCOLS,wayland-protocols,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+MESON_FLAGS+= -Dtests=false
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+wayland-protocols-install:
+ $(INSTALL_DIR) $(IDIR_WAYLAND_PROTOCOLS)/usr/share/wayland-protocols
+ $(CP) $(WRKINST)/usr/share/wayland-protocols/* \
+ $(IDIR_WAYLAND_PROTOCOLS)/usr/share/wayland-protocols/
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/wayland-protocols/patches/patch-meson_build b/package/wayland-protocols/patches/patch-meson_build
new file mode 100644
index 000000000..ad075be1c
--- /dev/null
+++ b/package/wayland-protocols/patches/patch-meson_build
@@ -0,0 +1,11 @@
+--- wayland-protocols-1.23.orig/meson.build 2021-09-15 14:52:03.136998200 +0200
++++ wayland-protocols-1.23/meson.build 2021-11-14 04:45:19.472983046 +0100
+@@ -93,7 +93,7 @@ pkgconfig_configuration.set('abs_top_src
+ pkgconfig_configuration.set('PACKAGE', 'wayland-protocols')
+ pkgconfig_configuration.set('WAYLAND_PROTOCOLS_VERSION', wayland_protocols_version)
+
+-pkg_install_dir = join_paths(get_option('datadir'), 'pkgconfig')
++pkg_install_dir = join_paths(get_option('libdir'), 'pkgconfig')
+ configure_file(
+ input: 'wayland-protocols.pc.in',
+ output: 'wayland-protocols.pc',
diff --git a/package/wayland-protocols/patches/patch-wayland-protocols_pc_in b/package/wayland-protocols/patches/patch-wayland-protocols_pc_in
new file mode 100644
index 000000000..ce3da7fb2
--- /dev/null
+++ b/package/wayland-protocols/patches/patch-wayland-protocols_pc_in
@@ -0,0 +1,10 @@
+--- wayland-protocols-1.23.orig/wayland-protocols.pc.in 2021-09-15 14:52:03.145998200 +0200
++++ wayland-protocols-1.23/wayland-protocols.pc.in 2021-11-14 04:59:17.121707638 +0100
+@@ -1,6 +1,6 @@
+ prefix=@prefix@
+ datarootdir=@datarootdir@
+-pkgdatadir=${pc_sysrootdir}${datarootdir}/@PACKAGE@
++pkgdatadir=${datarootdir}/@PACKAGE@
+
+ Name: Wayland Protocols
+ Description: Wayland protocol files
diff --git a/package/wayland/Makefile b/package/wayland/Makefile
new file mode 100644
index 000000000..796af73f6
--- /dev/null
+++ b/package/wayland/Makefile
@@ -0,0 +1,53 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= wayland
+PKG_VERSION:= 1.22.0
+PKG_RELEASE:= 1
+PKG_HASH:= 1540af1ea698a471c2d8e9d288332c7e0fd360c8f1d12936ebb7e7cbc2425842
+PKG_DESCR:= wayland
+PKG_SECTION:= x11/libs
+PKG_BUILDDEP:= wayland-host
+HOST_BUILDDEP:= meson-host expat-host libxml2-host libffi-host
+PKG_SITES:= https://gitlab.freedesktop.org/wayland/wayland/-/releases/$(PKG_VERSION)/downloads/
+PKG_OPTS:= dev
+
+include $(ADK_TOPDIR)/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,WAYLAND,wayland,$(PKG_VERSION)-${PKG_RELEASE}))
+$(eval $(call PKG_template,WAYLAND,wayland,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+HOST_MESON_FLAGS+= -Ddocumentation=false \
+ -Dtests=false \
+ -Dscanner=true
+MESON_FLAGS+= -Ddocumentation=false \
+ -Dtests=false \
+ -Dlibraries=true \
+ -Dscanner=false
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+HOST_STYLE:= meson
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+hostpost-install:
+ $(INSTALL_DIR) $(STAGING_HOST_DIR)/usr/bin
+ $(INSTALL_BIN) $(WRKBUILD)/src/wayland-scanner \
+ $(STAGING_HOST_DIR)/usr/bin
+ $(INSTALL_DIR) $(STAGING_HOST_DIR)/usr/lib/pkgconfig
+ $(CP) $(WRKBUILD)/meson-private/wayland-scanner.pc \
+ $(STAGING_HOST_DIR)/usr/lib/pkgconfig
+
+
+wayland-install:
+ $(INSTALL_DIR) $(IDIR_WAYLAND)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libwayland*.so* \
+ $(IDIR_WAYLAND)/usr/lib
+
+include ${ADK_TOPDIR}/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/webkitgtk/Makefile b/package/webkitgtk/Makefile
index 4009987c2..b6ad084a5 100644
--- a/package/webkitgtk/Makefile
+++ b/package/webkitgtk/Makefile
@@ -4,18 +4,18 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= webkitgtk
-PKG_VERSION:= 2.18.0
+PKG_VERSION:= 2.34.6
PKG_RELEASE:= 1
-PKG_HASH:= b583e46a3de36a3e80ba33b084ead60512a2046aca01ff61e50e519436e5038d
+PKG_HASH:= 6bc8fd034aad0432a2459ce4fc7ee25ad65a4924c618bf8d93b52b0c1a84c1f6
PKG_DESCR:= web browser engine
PKG_SECTION:= libs/misc
PKG_DEPENDS:= glib icu4c zlib libwebp libgtk3 libsoup
PKG_DEPENDS+= libsecret libxt harfbuzz cairo libgcrypt
-PKG_DEPENDS+= gst-plugins-base gstreamer libnotify
+PKG_DEPENDS+= gstreamer libnotify libwebp gst-plugins-base
PKG_BUILDDEP:= glib icu4c zlib libwebp libgtk3 cmake-host
PKG_BUILDDEP+= libsoup libsecret libXt harfbuzz libnotify
-PKG_BUILDDEP+= gst-plugins-base gstreamer cairo enchant
-PKG_BUILDDEP+= gnutls libgcrypt
+PKG_BUILDDEP+= gstreamer cairo enchant libwebp gst-plugins-base
+PKG_BUILDDEP+= gnutls libgcrypt ruby-host
PKG_URL:= http://www.webkitgtk.org/
PKG_SITES:= http://webkitgtk.org/releases/
PKG_OPTS:= dev
@@ -41,6 +41,14 @@ CMAKE_FLAGS+= -DPORT=GTK \
-DUSE_LIBNOTIFY=OFF \
-DENABLE_JIT=OFF \
-DUSE_LIBHYPHEN=OFF \
+ -DUSE_SOUP2=ON \
+ -DUSE_WPE_RENDERER=OFF \
+ -DENABLE_GAMEPAD=OFF \
+ -DUSE_OPENJPEG=OFF \
+ -DUSE_WOFF2=OFF \
+ -DUSE_SYSTEMD=OFF \
+ -DUSE_LCMS=OFF \
+ -DENABLE_BUBBLEWRAP_SANDBOX=OFF \
-DENABLE_INTROSPECTION=OFF
webkitgtk-install:
diff --git a/package/webkitgtk/patches/patch-Source_PlatformGTK_cmake b/package/webkitgtk/patches/patch-Source_PlatformGTK_cmake
deleted file mode 100644
index 863e86475..000000000
--- a/package/webkitgtk/patches/patch-Source_PlatformGTK_cmake
+++ /dev/null
@@ -1,7 +0,0 @@
---- webkitgtk-2.12.0.orig/Source/PlatformGTK.cmake 2016-03-17 08:51:05.000000000 +0100
-+++ webkitgtk-2.12.0/Source/PlatformGTK.cmake 2016-04-03 10:54:31.244767406 +0200
-@@ -1,4 +1,3 @@
--add_subdirectory(${WEBCORE_DIR}/platform/gtk/po)
-
- # This allows exposing a 'gir' target which builds all GObject introspection files.
- if (ENABLE_INTROSPECTION)
diff --git a/package/weechat/Makefile b/package/weechat/Makefile
index 5b63816e2..ec397bd73 100644
--- a/package/weechat/Makefile
+++ b/package/weechat/Makefile
@@ -4,26 +4,29 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= weechat
-PKG_VERSION:= 1.1.1
+PKG_VERSION:= 4.2.1
PKG_RELEASE:= 1
-PKG_HASH:= a32f7e57d5e834195bacaffa874419b4a9d17cd42883c80d7ecb9fadbf601349
+PKG_HASH:= 253ddf086f6c845031a2dd294b1552851d6b04cc08a2f9da4aedfb3e2f91bdcd
PKG_DESCR:= lightweight irc client
PKG_SECTION:= app/chat
-PKG_DEPENDS:= libncurses zlib libcurl libgcrypt
-PKG_BUILDDEP:= cmake-host ncurses zlib curl libgcrypt
+PKG_DEPENDS:= libncurses zlib libcurl libgcrypt libgnutls
+PKG_BUILDDEP:= cmake-host ncurses zlib curl libgcrypt gnutls
PKG_URL:= http://www.weechat.org/
-PKG_SITES:= http://www.weechat.org/files/src/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+PKG_SITES:= https://weechat.org/files/src/
include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,WEECHAT,weechat,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
CONFIG_STYLE:= cmake
-CMAKE_FLAGS+= -DENABLE_GNUTLS=OFF \
- -DENABLE_PERL=OFF \
+CMAKE_FLAGS+= -DENABLE_PERL=OFF \
-DENABLE_PYTHON=OFF \
+ -DENABLE_LUA=OFF \
+ -DENABLE_RUBY=OFF \
+ -DENABLE_PHP=OFF \
+ -DENABLE_TCL=OFF \
+ -DENABLE_GUILE=OFF \
+ -DENABLE_SPELL=OFF \
-DENABLE_NLS=OFF \
-DGCRYPT_LDFLAGS="-L$(STAGING_TARGET_DIR)/usr/lib -ltinfo -lgcrypt" \
-DGCRYPT_CFLAGS="-I$(STAGING_TARGET_DIR)/usr/include" \
diff --git a/package/weston/Makefile b/package/weston/Makefile
new file mode 100644
index 000000000..a3d374355
--- /dev/null
+++ b/package/weston/Makefile
@@ -0,0 +1,60 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= weston
+PKG_VERSION:= 11.0.0
+PKG_RELEASE:= 1
+PKG_HASH:= 5816a9e7bd67d03f268553a7af2f0c3430b409f7606244dada65188478f90800
+PKG_DESCR:= wayland compositor
+PKG_SECTION:= x11/drivers
+PKG_DEPENDS:= wayland libxkbcommon libinput libpng libjpeg-turbo libseat
+PKG_DEPENDS+= libwebp pam libxcursor libudev xkeyboard-config cairo libffi
+PKG_BUILDDEP:= wayland libxkbcommon libinput libpng libjpeg-turbo
+PKG_BUILDDEP+= libwebp pam libXcursor eudev cairo libseat libffi
+PKG_SITES:= https://github.com/wayland-project/weston/archive/refs/tags/
+
+PKG_CFLINE_WESTON:= select ADK_PACKAGE_CAIRO_WITH_PNG@
+
+DISTFILES:= $(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,WESTON,weston,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+MESON_FLAGS+= -Dlauncher-logind=false \
+ -Dlauncher-libseat=true \
+ -Dsystemd=false \
+ -Dbackend-drm-screencast-vaapi=false \
+ -Dbackend-rdp=false \
+ -Dcolor-management-lcms=false \
+ -Dremoting=false \
+ -Dpipewire=false \
+ -Ddemo-clients=false
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+weston-install:
+ $(INSTALL_DIR) $(IDIR_WESTON)/usr/share
+ $(CP) $(WRKINST)/usr/share/* \
+ $(IDIR_WESTON)/usr/share/
+ $(INSTALL_DIR) $(IDIR_WESTON)/usr/libexec
+ $(CP) $(WRKINST)/usr/libexec/* \
+ $(IDIR_WESTON)/usr/libexec/
+ $(INSTALL_DIR) $(IDIR_WESTON)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/weston \
+ $(IDIR_WESTON)/usr/lib/
+ $(CP) $(WRKINST)/usr/lib/libweston-11 \
+ $(IDIR_WESTON)/usr/lib/
+ $(CP) $(WRKINST)/usr/lib/libweston*so* \
+ $(IDIR_WESTON)/usr/lib/
+ $(INSTALL_DIR) $(IDIR_WESTON)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/weston \
+ $(IDIR_WESTON)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/wifidog/Makefile b/package/wifidog/Makefile
index 41e73b45b..a3e6e7430 100644
--- a/package/wifidog/Makefile
+++ b/package/wifidog/Makefile
@@ -19,6 +19,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,WIFIDOG,wifidog,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CFLAGS+= -fcommon
CONFIGURE_ENV+= ac_cv_func_memcmp_working=yes \
ac_cv_lib_nsl_main=no \
ac_cv_func_setvbuf_reversed=no
diff --git a/package/wolfssl/Makefile b/package/wolfssl/Makefile
index 4a390a114..bc91eddcc 100644
--- a/package/wolfssl/Makefile
+++ b/package/wolfssl/Makefile
@@ -4,21 +4,23 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= wolfssl
-PKG_VERSION:= 3.13.0
+PKG_VERSION:= 5.7.0
PKG_RELEASE:= 1
-PKG_HASH:= 196a3256a9044ecb89504ce77850342c82e676e7f2cad77f5584be3516b6060e
+PKG_HASH:= 2de93e8af588ee856fe67a6d7fce23fc1b226b74d710b0e3946bc8061f6aa18f
PKG_DESCR:= portable embedded ssl library
PKG_SECTION:= libs/crypto
PKG_URL:= http://www.wolfssl.com
-PKG_SITES:= http://distfiles.openadk.org/
+PKG_SITES:= https://github.com/wolfSSL/wolfssl/archive/refs/tags/
PKG_OPTS:= dev
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).zip
+DISTFILES:= v$(PKG_VERSION)-stable.tar.gz
+WRKDIST= ${WRKDIR}/${PKG_NAME}-${PKG_VERSION}-stable
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,WOLFSSL,wolfssl,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+AUTOTOOL_STYLE:= autogen
CONFIGURE_ARGS+= --disable-examples
CONFIGURE_ENV+= C_EXTRA_FLAGS='$(TARGET_CFLAGS)'
diff --git a/package/wpa_supplicant/Makefile b/package/wpa_supplicant/Makefile
index 1cfafb014..873b6f2d3 100644
--- a/package/wpa_supplicant/Makefile
+++ b/package/wpa_supplicant/Makefile
@@ -4,16 +4,16 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= wpa_supplicant
-PKG_VERSION:= 2.5
-PKG_RELEASE:= 1
-PKG_HASH:= cce55bae483b364eae55c35ba567c279be442ed8bab5b80a3c7fb0d057b9b316
+PKG_VERSION:= 2.10
+PKG_RELEASE:= 2
+PKG_HASH:= 20df7ae5154b3830355f8ab4269123a87affdea59fe74fe9292a91d0d7e17b2f
PKG_DESCR:= wpa supplicant
PKG_SECTION:= net/wifi
PKG_DEPENDS:= libnl
PKG_BUILDDEP:= libnl
PKG_NEEDS:= threads
PKG_URL:= http://hostap.epitest.fi/wpa_supplicant/
-PKG_SITES:= http://hostap.epitest.fi/releases/
+PKG_SITES:= http://w1.fi/releases/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
@@ -21,7 +21,7 @@ PKG_DFLT_WPA_SUPPLICANT:= y if ADK_TARGET_WITH_WIFI
WRKSRC= ${WRKDIST}/${PKG_NAME}
-PKG_CHOICES_WPA_SUPPLICANT:= WITH_LIBRESSL WITH_INTERNAL WITH_GNUTLS
+PKG_CHOICES_WPA_SUPPLICANT:= WITH_INTERNAL WITH_LIBRESSL WITH_GNUTLS
PKGCD_WITH_LIBRESSL:= use libressl for crypto
PKGCS_WITH_LIBRESSL:= libressl
PKGCB_WITH_LIBRESSL:= libressl
diff --git a/package/wput/Makefile b/package/wput/Makefile
index 12f87d61f..3448d6521 100644
--- a/package/wput/Makefile
+++ b/package/wput/Makefile
@@ -17,6 +17,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,WPUT,wput,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CFLAGS+= -fcommon
CONFIGURE_ARGS+= --disable-g-switch \
--without-ssl
diff --git a/package/x11vnc/Makefile b/package/x11vnc/Makefile
index 9fad7e631..7105c928e 100644
--- a/package/x11vnc/Makefile
+++ b/package/x11vnc/Makefile
@@ -4,28 +4,33 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= x11vnc
-PKG_VERSION:= 0.9.13
+PKG_VERSION:= 0.9.16
PKG_RELEASE:= 1
-PKG_HASH:= f6829f2e629667a5284de62b080b13126a0736499fe47cdb447aedb07a59f13b
+PKG_HASH:= 885e5b5f5f25eec6f9e4a1e8be3d0ac71a686331ee1cfb442dba391111bd32bd
PKG_DESCR:= vnc server for x11 displays
PKG_SECTION:= x11/apps
-PKG_BUILDDEP:= libX11 libXtst libjpeg-turbo
+PKG_DEPENDS:= libvncserver libpng libjpeg-turbo zlib liblzo
+PKG_DEPENDS+= libgnutls libxi libxdamage libxtst cairo
+PKG_DEPENDS+= libxfixes libxrandr
+PKG_BUILDDEP:= libX11 libXtst libjpeg-turbo libvncserver
PKG_URL:= http://www.karlrunge.com/x11vnc/
-PKG_SITES:= http://sourceforge.net/projects/libvncserver/files/x11vnc/0.9.13/
-
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+PKG_SITES:= https://github.com/LibVNC/x11vnc/archive/refs/tags/
+DISTFILES:= ${PKG_VERSION}.tar.gz
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,X11VNC,x11vnc,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_LDFLAGS+= -lssl -lcrypto
ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
MAKE_FLAGS+= CFLAGS="${TARGET_CFLAGS} -static" \
LIBS="-lxcb -lXau -lXdmcp -ldl -pthread -ljpeg -lz"
endif
-CONFIGURE_ARGS+= --without-ssl
+AUTOTOOL_STYLE:= autoreconf
+CONFIGURE_ARGS+= --without-ssl \
+ --without-crypto
x11vnc-install:
$(INSTALL_DIR) $(IDIR_X11VNC)/usr/bin
diff --git a/package/x11vnc/patches/patch-src_util_c b/package/x11vnc/patches/patch-src_util_c
new file mode 100644
index 000000000..c16d39ae6
--- /dev/null
+++ b/package/x11vnc/patches/patch-src_util_c
@@ -0,0 +1,12 @@
+--- x11vnc-0.9.16.orig/src/util.c 2019-01-05 14:22:11.000000000 +0100
++++ x11vnc-0.9.16/src/util.c 2022-12-30 16:45:15.602697333 +0100
+@@ -47,6 +47,9 @@ int hxl = 0;
+ #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD
+ MUTEX(x11Mutex);
+ MUTEX(scrollMutex);
++MUTEX(clientMutex);
++MUTEX(inputMutex);
++MUTEX(pointerMutex);
+ #endif
+
+ int nfix(int i, int n);
diff --git a/package/x11vnc/patches/patch-src_util_h b/package/x11vnc/patches/patch-src_util_h
new file mode 100644
index 000000000..147534eb2
--- /dev/null
+++ b/package/x11vnc/patches/patch-src_util_h
@@ -0,0 +1,15 @@
+--- x11vnc-0.9.16.orig/src/util.h 2019-01-05 14:22:11.000000000 +0100
++++ x11vnc-0.9.16/src/util.h 2022-12-30 16:45:15.598697256 +0100
+@@ -102,9 +102,9 @@ extern struct timeval _mysleep;
+ #ifdef LIBVNCSERVER_HAVE_LIBPTHREAD
+ extern MUTEX(x11Mutex);
+ extern MUTEX(scrollMutex);
+-MUTEX(clientMutex);
+-MUTEX(inputMutex);
+-MUTEX(pointerMutex);
++extern MUTEX(clientMutex);
++extern MUTEX(inputMutex);
++extern MUTEX(pointerMutex);
+ #endif
+
+ #define X_INIT INIT_MUTEX(x11Mutex)
diff --git a/package/xawtv/Makefile b/package/xawtv/Makefile
index 4c3ba6d31..e459a6f09 100644
--- a/package/xawtv/Makefile
+++ b/package/xawtv/Makefile
@@ -4,19 +4,17 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= xawtv
-PKG_VERSION:= 3.103
+PKG_VERSION:= 47a81c3ca7ac9b4f0989cccb7961dc4bff52364a
PKG_RELEASE:= 1
-PKG_HASH:= 2cf3a91b5d59a094bd86e101684a65c0e3d09225c11a787e060fa01bfbc8dd52
+PKG_GIT:= hash
PKG_DESCR:= video & webcam application
PKG_BUILDDEP:= libXinerama v4l-utils
PKG_DEPENDS:= libxinerama libv4l
PKG_SECTION:= x11/apps
-PKG_SITES:= http://linuxtv.org/downloads/xawtv/
+PKG_SITES:= http://git.linuxtv.org/xawtv3.git
PKG_ARCH_DEPENDS:= x86 x86_64
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
-
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,XAWTV,xawtv,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
diff --git a/package/xcb-proto/Makefile b/package/xcb-proto/Makefile
index 67947e882..d5639997b 100644
--- a/package/xcb-proto/Makefile
+++ b/package/xcb-proto/Makefile
@@ -4,50 +4,41 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= xcb-proto
-PKG_VERSION:= 1.12
+PKG_VERSION:= 1.16.0
PKG_RELEASE:= 1
-PKG_HASH:= cfa49e65dd390233d560ce4476575e4b76e505a0e0bacdfb5ba6f8d0af53fd59
+PKG_HASH:= a75a1848ad2a89a82d841a51be56ce988ff3c63a8d6bf4383ae3219d8d915119
PKG_DESCR:= xml-xcb protocol descriptions
PKG_SECTION:= dev/header
-HOST_BUILDDEP:= python2-host
-PKG_SITES:= http://xcb.freedesktop.org/dist/
+HOST_BUILDDEP:= python3-host
+PKG_SITES:= https://xorg.freedesktop.org/archive/individual/proto/
PKG_OPTS:= dev devonly
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
-PKG_SUBPKGS:= XCB_PROTO XCB_PYTHON
-PKGSC_XCB_PYTHON:= x11/misc
-
include $(ADK_TOPDIR)/mk/host.mk
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call HOST_template,XCB_PROTO,xcb-proto,$(PKG_VERSION)-${PKG_RELEASE}))
$(eval $(call PKG_template,XCB_PROTO,xcb-proto,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
-$(eval $(call PKG_template,XCB_PYTHON,xcb-python,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKGSC_XCB_PYTHON}))
-include $(ADK_TOPDIR)/mk/python.mk
+include $(ADK_TOPDIR)/mk/python3.mk
HOST_STYLE:= auto
CONFIGURE_ENV+= PYTHON=$(PYTHON)
-# pkg-config variables are not fixed up with sysroot
hostpost-install:
- $(SED) 's|^\(xcbincludedir=\)|\1$(STAGING_HOST_DIR)|' \
- $(STAGING_HOST_DIR)/usr/lib/pkgconfig/xcb-proto.pc
+ ${INSTALL_DIR} ${STAGING_HOST_DIR}/usr/share/xcb
+ ${CP} ${WRKBUILD}/src/*.xml ${STAGING_HOST_DIR}/usr/share/xcb
post-build:
${INSTALL_DIR} ${STAGING_TARGET_DIR}/usr/share/xcb
${CP} ${WRKBUILD}/src/*.xml ${STAGING_TARGET_DIR}/usr/share/xcb
- $(SED) 's|^\(xcbincludedir=\)|\1$(STAGING_TARGET_DIR)|' \
- $(WRKBUILD)/xcb-proto.pc
-xcb-python-install:
+xcb-proto-install:
$(INSTALL_DIR) ${STAGING_TARGET_DIR}/usr/lib/python${PYTHON_VERSION}/site-packages/xcbgen
${CP} ${WRKINST}/usr/lib/python${PYTHON_VERSION}/site-packages/xcbgen/*.py \
${STAGING_TARGET_DIR}/usr/lib/python${PYTHON_VERSION}/site-packages/xcbgen
- ${INSTALL_DIR} ${IDIR_XCB_PYTHON}/usr/lib/python${PYTHON_VERSION}/site-packages/xcbgen
+ ${INSTALL_DIR} ${IDIR_XCB_PROTO}/usr/lib/python${PYTHON_VERSION}/site-packages/xcbgen
${CP} ${WRKINST}/usr/lib/python${PYTHON_VERSION}/site-packages/xcbgen/*.py \
- ${IDIR_XCB_PYTHON}/usr/lib/python${PYTHON_VERSION}/site-packages/xcbgen
+ ${IDIR_XCB_PROTO}/usr/lib/python${PYTHON_VERSION}/site-packages/xcbgen
include ${ADK_TOPDIR}/mk/host-bottom.mk
include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/xcb-proto/patches/patch-xcb-proto_pc_in b/package/xcb-proto/patches/patch-xcb-proto_pc_in
new file mode 100644
index 000000000..3732f4310
--- /dev/null
+++ b/package/xcb-proto/patches/patch-xcb-proto_pc_in
@@ -0,0 +1,14 @@
+--- xcb-proto-1.16.0.orig/xcb-proto.pc.in 2023-08-16 22:10:21.000000000 +0200
++++ xcb-proto-1.16.0/xcb-proto.pc.in 2024-01-21 13:00:16.488006595 +0100
+@@ -2,9 +2,9 @@ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ datarootdir=@datarootdir@
+ datadir=@datadir@
+-xcbincludedir=${pc_sysrootdir}@xcbincludedir@
++xcbincludedir=@xcbincludedir@
+ PYTHON_PREFIX=@PYTHON_PREFIX@
+-pythondir=${pc_sysrootdir}@pythondir@
++pythondir=@pythondir@
+
+ Name: XCB Proto
+ Description: X protocol descriptions for XCB
diff --git a/package/xdm/Makefile b/package/xdm/Makefile
index b3e6b53c8..70b0fb235 100644
--- a/package/xdm/Makefile
+++ b/package/xdm/Makefile
@@ -4,13 +4,13 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= xdm
-PKG_VERSION:= 1.1.11
+PKG_VERSION:= 1.1.14
PKG_RELEASE:= 1
-PKG_HASH:= 38c544a986143b1f24566c1a0111486b339b92224b927be78714eeeedca12a14
+PKG_HASH:= bcc543c3c120094d58d9cc9837958d4303693c2116ba342ba3dd9440137b4026
PKG_DESCR:= display manager
PKG_SECTION:= x11/apps
-PKG_BUILDDEP:= pam
-PKG_DEPENDS:= xconsole pam xsm
+PKG_BUILDDEP:= pam libXaw
+PKG_DEPENDS:= xconsole pam xsm libxaw
PKG_URL:= http://xorg.freedesktop.org/
PKG_SITES:= http://www.x.org/releases/individual/app/
@@ -21,6 +21,7 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,XDM,xdm,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
CONFIGURE_ARGS+= --with-random-device=/dev/urandom \
+ --with-appdefaultdir=/usr/share/X11/app-defaults \
--with-utmp-file=/dev/null \
--with-wtmp-file=/dev/null
diff --git a/package/xenomai/Makefile b/package/xenomai/Makefile
deleted file mode 100644
index 5d9b7dfdf..000000000
--- a/package/xenomai/Makefile
+++ /dev/null
@@ -1,49 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= xenomai
-PKG_VERSION:= 3.0.6
-PKG_RELEASE:= 1
-PKG_HASH:= 2c0dd3f0e36e4a10f97e0028989bb873e80f4d1ce212ac55fd3b28857c464f94
-PKG_DESCR:= realtime extension
-PKG_SECTION:= sys/misc
-PKG_URL:= https://xenomai.org/
-PKG_SITES:= https://xenomai.org/downloads/xenomai/stable/
-
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2
-
-PKG_CHOICES_XENOMAI:= WITH_MERCURY
-#PKG_CHOICES_XENOMAI:= WITH_MERCURY WITH_COBALT
-PKGCD_WITH_MERCURY:= use mercury
-#PKGCD_WITH_COBALT:= use cobalt
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,XENOMAI,xenomai,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-
-XAKE_FLAGS+= SUDO="echo"
-CONFIGURE_ARGS+= --includedir=/usr/include/xenomai/ --disable-doc-install
-
-ifeq (${ADK_PACKAGE_XENOMAI_WITH_MERCURY},y)
-CONFIGURE_ARGS+= --with-core=mercury
-endif
-
-ifeq (${ADK_PACKAGE_XENOMAI_WITH_COBALT},y)
-CONFIGURE_ARGS+= --with-core=cobalt
-endif
-
-xenomai-install:
- $(INSTALL_DIR) $(IDIR_XENOMAI)/usr/bin
- $(INSTALL_DIR) $(IDIR_XENOMAI)/usr/sbin
- $(INSTALL_DIR) $(IDIR_XENOMAI)/usr/lib
- $(CP) $(WRKINST)/usr/bin/* \
- $(IDIR_XENOMAI)/usr/bin
- $(CP) $(WRKINST)/usr/sbin/* \
- $(IDIR_XENOMAI)/usr/sbin
- $(CP) $(WRKINST)/usr/lib/* \
- $(IDIR_XENOMAI)/usr/lib
-
-
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/xf86-input-evdev/Makefile b/package/xf86-input-evdev/Makefile
index 5931ff84b..bebc4aac4 100644
--- a/package/xf86-input-evdev/Makefile
+++ b/package/xf86-input-evdev/Makefile
@@ -9,8 +9,8 @@ PKG_RELEASE:= 1
PKG_HASH:= 1a1b69daf41eac965f1cf0be721ebc340b2860c066147cb483f0e8f0ab7dd6a2
PKG_DESCR:= x11 driver for evdev
PKG_SECTION:= x11/drivers
-PKG_DEPENDS:= xorg-server libudev
-PKG_BUILDDEP:= xorg-server eudev
+PKG_DEPENDS:= xorg-server libudev libevdev mtdev
+PKG_BUILDDEP:= xorg-server eudev libevdev mtdev
PKG_SITES:= http://www.x.org/releases/individual/driver/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
diff --git a/package/xf86-input-mouse/Makefile b/package/xf86-input-mouse/Makefile
index 6bef7daef..3198dbc53 100644
--- a/package/xf86-input-mouse/Makefile
+++ b/package/xf86-input-mouse/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= xf86-input-mouse
-PKG_VERSION:= 1.9.2
+PKG_VERSION:= 1.9.3
PKG_RELEASE:= 1
-PKG_HASH:= 82bb4b01b26853b180e87ab97510316c741af2bded359c994c0d689386947095
+PKG_HASH:= 71f3aa0a18dfe1ca5cb235ec9210f33571cf5fbbd90ac5b55306a954f67aa5c6
PKG_DESCR:= x11 driver for mouse
PKG_SECTION:= x11/drivers
PKG_DEPENDS:= xorg-server
diff --git a/package/xf86-video-modesetting/Makefile b/package/xf86-video-modesetting/Makefile
deleted file mode 100644
index 4cd733739..000000000
--- a/package/xf86-video-modesetting/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= xf86-video-modesetting
-PKG_VERSION:= 0.8.1
-PKG_RELEASE:= 1
-PKG_HASH:= 7cb67bc95e83f195bc5f50b6af0b4ff66b5b9ccd16848613d55d732bc1e5fdb6
-PKG_DESCR:= x11 driver for kms
-PKG_SECTION:= x11/drivers
-PKG_DEPENDS:= xorg-server libudev
-PKG_BUILDDEP:= xorg-server eudev
-PKG_NEEDS:= c++
-PKG_SITES:= http://www.x.org/releases/individual/driver/
-
-PKG_SYSTEM_DEPENDS:= qemu-x86 qemu-x86_64
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,XF86_VIDEO_MODESETTING,xf86-video-modesetting,$(PKG_VERSION)-$(PKG_RELEASE),${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-xf86-video-modesetting-install:
- ${INSTALL_DIR} ${IDIR_XF86_VIDEO_MODESETTING}/usr/lib/xorg/modules/drivers
- ${CP} ${WRKINST}/usr/lib/xorg/modules/drivers/modesetting_*.so \
- ${IDIR_XF86_VIDEO_MODESETTING}/usr/lib/xorg/modules/drivers/
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/xfsprogs/Makefile b/package/xfsprogs/Makefile
index d66c24402..e21801f9f 100644
--- a/package/xfsprogs/Makefile
+++ b/package/xfsprogs/Makefile
@@ -4,13 +4,13 @@
include ${ADK_TOPDIR}/rules.mk
PKG_NAME:= xfsprogs
-PKG_VERSION:= 4.13.1
+PKG_VERSION:= 6.6.0
PKG_RELEASE:= 1
-PKG_HASH:= 8c64d349d191e24c84eeb1611be767e4a11b81016bd5b73f3a20a0bf39dd3536
+PKG_HASH:= 50ca2f4676df8fab4cb4c3ef3dd512d5551e6844d40a65a31d5b8e03593d22df
PKG_DESCR:= utilities for xfs filesystems
PKG_SECTION:= sys/fs
-PKG_DEPENDS:= libuuid libblkid libncurses
-PKG_BUILDDEP:= e2fsprogs ncurses
+PKG_DEPENDS:= libuuid libblkid libncurses libinih liburcu
+PKG_BUILDDEP:= e2fsprogs ncurses libinih liburcu
PKG_NEEDS:= threads
PKG_URL:= http://oss.sgi.com/projects/xfs
PKG_SITES:= https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/
@@ -21,7 +21,7 @@ include ${ADK_TOPDIR}/mk/package.mk
$(eval $(call PKG_template,XFSPROGS,xfsprogs,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-TARGET_LDFLAGS+= -lblkid
+TARGET_LDFLAGS+= -lblkid -luuid
INSTALL_STYLE:= manual
CONFIGURE_ARGS+= --enable-gettext=no \
--enable-blkid=yes \
diff --git a/package/xfsprogs/patches/patch-io_Makefile b/package/xfsprogs/patches/patch-io_Makefile
deleted file mode 100644
index e740615b1..000000000
--- a/package/xfsprogs/patches/patch-io_Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
---- xfsprogs-4.11.0.orig/io/Makefile 2017-05-05 20:47:11.000000000 +0200
-+++ xfsprogs-4.11.0/io/Makefile 2017-06-03 20:54:04.368047450 +0200
-@@ -13,8 +13,8 @@ CFILES = init.c \
- getrusage.c imap.c link.c mmap.c open.c parent.c pread.c prealloc.c \
- pwrite.c reflink.c seek.c shutdown.c stat.c sync.c truncate.c utimes.c
-
--LLDLIBS = $(LIBXCMD) $(LIBHANDLE) $(LIBPTHREAD)
--LTDEPENDENCIES = $(LIBXCMD) $(LIBHANDLE)
-+LLDLIBS = $(LIBXFS) $(LIBXCMD) $(LIBHANDLE) $(LIBPTHREAD)
-+LTDEPENDENCIES = $(LIBXFS) $(LIBXCMD) $(LIBHANDLE)
- LLDFLAGS = -static-libtool-libs
-
- ifeq ($(HAVE_FADVISE),yes)
diff --git a/package/xfsprogs/patches/patch-libxfs_Makefile b/package/xfsprogs/patches/patch-libxfs_Makefile
deleted file mode 100644
index 2f38b240f..000000000
--- a/package/xfsprogs/patches/patch-libxfs_Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
---- xfsprogs-4.13.1.orig/libxfs/Makefile 2017-09-09 02:35:35.000000000 +0200
-+++ xfsprogs-4.13.1/libxfs/Makefile 2017-11-25 17:47:45.180739534 +0100
-@@ -118,9 +118,9 @@ LTLIBS = $(LIBPTHREAD) $(LIBRT)
- # don't try linking xfs_repair with a debug libxfs.
- DEBUG = -DNDEBUG
-
--LDIRT = gen_crc32table crc32table.h crc32selftest
-+LDIRT = gen_crc32table crc32table.h
-
--default: crc32selftest ltdepend $(LTLIBRARY)
-+default: ltdepend $(LTLIBRARY)
-
- crc32table.h: gen_crc32table.c crc32defs.h
- @echo " [CC] gen_crc32table"
diff --git a/package/xfsprogs/patches/patch-quota_Makefile b/package/xfsprogs/patches/patch-quota_Makefile
deleted file mode 100644
index 00bc37ef5..000000000
--- a/package/xfsprogs/patches/patch-quota_Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
---- xfsprogs-4.11.0.orig/quota/Makefile 2017-05-05 20:47:11.000000000 +0200
-+++ xfsprogs-4.11.0/quota/Makefile 2017-06-03 20:57:53.306759013 +0200
-@@ -14,8 +14,8 @@ CFILES += $(PKG_PLATFORM).c
- PCFILES = darwin.c freebsd.c irix.c linux.c
- LSRCFILES = $(shell echo $(PCFILES) | sed -e "s/$(PKG_PLATFORM).c//g")
-
--LLDLIBS = $(LIBXCMD)
--LTDEPENDENCIES = $(LIBXCMD)
-+LLDLIBS = $(LIBXFS) $(LIBXCMD)
-+LTDEPENDENCIES = $(LIBXFS) $(LIBXCMD)
- LLDFLAGS = -static
-
- ifeq ($(ENABLE_READLINE),yes)
diff --git a/package/xfsprogs/patches/patch-spaceman_Makefile b/package/xfsprogs/patches/patch-spaceman_Makefile
deleted file mode 100644
index 1bd7da4a7..000000000
--- a/package/xfsprogs/patches/patch-spaceman_Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
---- xfsprogs-4.13.1.orig/spaceman/Makefile 2017-09-09 02:35:35.000000000 +0200
-+++ xfsprogs-4.13.1/spaceman/Makefile 2017-11-25 17:55:33.271558933 +0100
-@@ -9,8 +9,8 @@ LTCOMMAND = xfs_spaceman
- HFILES = init.h space.h
- CFILES = init.c file.c prealloc.c trim.c
-
--LLDLIBS = $(LIBXCMD)
--LTDEPENDENCIES = $(LIBXCMD)
-+LLDLIBS = $(LIBXFS) $(LIBXCMD)
-+LTDEPENDENCIES = $(LIBXFS) $(LIBXCMD)
- LLDFLAGS = -static
-
- ifeq ($(ENABLE_READLINE),yes)
diff --git a/package/xkeyboard-config/Makefile b/package/xkeyboard-config/Makefile
index b6ba0d40f..182812e57 100644
--- a/package/xkeyboard-config/Makefile
+++ b/package/xkeyboard-config/Makefile
@@ -4,21 +4,23 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= xkeyboard-config
-PKG_VERSION:= 2.11
+PKG_VERSION:= 2.37
PKG_RELEASE:= 1
-PKG_HASH:= e7125460892c2b5c3a8d843cb18c24b60c46051e925c2888a61fa672a2f76d76
+PKG_HASH:= eb1383a5ac4b6210d7c7302b9d6fab052abdf51c5d2c9b55f1f779997ba68c6c
PKG_DESCR:= keyboard config
PKG_SECTION:= x11/misc
-PKG_BUILDDEP:= util-macros-host xkbcomp
+PKG_BUILDDEP:= util-macros-host xkbcomp meson-host
PKG_SITES:= http://www.x.org/releases/individual/data/xkeyboard-config/
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
-
include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,XKEYBOARD_CONFIG,xkeyboard-config,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-AUTOTOOL_STYLE:= autoreconf
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
xkeyboard-config-install:
${INSTALL_DIR} ${IDIR_XKEYBOARD_CONFIG}/usr/share/X11/xkb
diff --git a/package/xkeyboard-config/patches/patch-Makefile_am b/package/xkeyboard-config/patches/patch-Makefile_am
deleted file mode 100644
index 91f90f91b..000000000
--- a/package/xkeyboard-config/patches/patch-Makefile_am
+++ /dev/null
@@ -1,10 +0,0 @@
---- xkeyboard-config-2.11.orig/Makefile.am 2013-10-19 18:02:53.000000000 +0200
-+++ xkeyboard-config-2.11/Makefile.am 2014-03-04 14:43:40.000000000 +0100
-@@ -1,6 +1,6 @@
- AUTOMAKE_OPTIONS = foreign
-
--SUBDIRS = compat geometry keycodes po rules symbols types docs man
-+SUBDIRS = compat geometry keycodes rules symbols types
-
- pkgconfigdir = $(datadir)/pkgconfig
- pkgconfig_DATA = xkeyboard-config.pc
diff --git a/package/xkeyboard-config/patches/patch-configure_ac b/package/xkeyboard-config/patches/patch-configure_ac
deleted file mode 100644
index 2cb7cc7db..000000000
--- a/package/xkeyboard-config/patches/patch-configure_ac
+++ /dev/null
@@ -1,13 +0,0 @@
---- xkeyboard-config-2.11.orig/configure.ac 2014-01-29 21:08:27.000000000 +0100
-+++ xkeyboard-config-2.11/configure.ac 2014-03-04 14:43:26.000000000 +0100
-@@ -63,10 +63,6 @@ AM_CONDITIONAL(USE_COMPAT_RULES, test "x
- # ****
- # i18n
- # ****
--AC_PROG_INTLTOOL(0.30)
--
--AM_GNU_GETTEXT_VERSION([0.18.1])
--AM_GNU_GETTEXT([external])
-
- GETTEXT_PACKAGE=xkeyboard-config
- AC_SUBST(GETTEXT_PACKAGE)
diff --git a/package/xkeyboard-config/patches/patch-rules_Makefile_am b/package/xkeyboard-config/patches/patch-rules_Makefile_am
deleted file mode 100644
index ac07e510b..000000000
--- a/package/xkeyboard-config/patches/patch-rules_Makefile_am
+++ /dev/null
@@ -1,10 +0,0 @@
---- xkeyboard-config-2.11.orig/rules/Makefile.am 2013-12-17 23:59:06.000000000 +0100
-+++ xkeyboard-config-2.11/rules/Makefile.am 2014-03-04 14:30:44.000000000 +0100
-@@ -244,4 +244,6 @@ MAINTAINERCLEANFILES = $(srcdir)/evdev.x
- rulesdir = $(xkb_base)/rules
- xmldir = $(rulesdir)
-
--@INTLTOOL_XML_NOMERGE_RULE@
-+# remove intltool-merge dependency
-+%.xml: %.xml.in
-+ cp $< $@
diff --git a/package/xkeyboard-config/patches/patch-rules_base_extras_xml_in b/package/xkeyboard-config/patches/patch-rules_base_extras_xml_in
deleted file mode 100644
index beb2b7a9d..000000000
--- a/package/xkeyboard-config/patches/patch-rules_base_extras_xml_in
+++ /dev/null
@@ -1,855 +0,0 @@
---- xkeyboard-config-2.11.orig/rules/base.extras.xml.in 2013-12-24 00:48:45.000000000 +0100
-+++ xkeyboard-config-2.11/rules/base.extras.xml.in 2014-03-04 14:31:19.000000000 +0100
-@@ -1,4 +1,4 @@
--<?xml version="1.0" encoding="utf-8"?>
-+<?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
- <xkbConfigRegistry>
- <modelList/>
-@@ -6,8 +6,8 @@
- <layout>
- <configItem>
- <name>apl</name>
-- <_shortDescription>apl</_shortDescription>
-- <_description>APL keyboard symbols</_description>
-+ <shortDescription>apl</shortDescription>
-+ <description>APL keyboard symbols</description>
- <languageList><iso639Id>eng</iso639Id></languageList>
- </configItem>
- <variantList>
-@@ -58,29 +58,29 @@
- <layout>
- <configItem>
- <name>ca</name>
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Canada)</_description>
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Canada)</description>
- <languageList><iso639Id>fra</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>kut</name>
-- <_shortDescription>kut</_shortDescription>
-- <_description>Kutenai</_description>
-+ <shortDescription>kut</shortDescription>
-+ <description>Kutenai</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>shs</name>
-- <_shortDescription>shs</_shortDescription>
-- <_description>Secwepemctsin</_description>
-+ <shortDescription>shs</shortDescription>
-+ <description>Secwepemctsin</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Multilingual (Canada, Sun Type 6/7)</_description>
-+ <description>Multilingual (Canada, Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -88,8 +88,8 @@
- <layout>
- <configItem>
- <name>de</name>
-- <_shortDescription>de</_shortDescription>
-- <_description>German</_description>
-+ <shortDescription>de</shortDescription>
-+ <description>German</description>
- <languageList>
- <iso639Id>ger</iso639Id>
- </languageList>
-@@ -98,7 +98,7 @@
- <variant>
- <configItem>
- <name>us</name>
-- <_description>German (US keyboard with German letters)</_description>
-+ <description>German (US keyboard with German letters)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -107,7 +107,7 @@
- <variant>
- <configItem>
- <name>hu</name>
-- <_description>German (with Hungarian letters and no dead keys)</_description>
-+ <description>German (with Hungarian letters and no dead keys)</description>
- <languageList>
- <iso639Id>ger</iso639Id>
- <iso639Id>hun</iso639Id>
-@@ -117,7 +117,7 @@
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>German (Sun Type 6/7)</_description>
-+ <description>German (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -125,15 +125,15 @@
- <layout>
- <configItem>
- <name>ir</name>
-- <_shortDescription>fa</_shortDescription>
-- <_description>Persian</_description>
-+ <shortDescription>fa</shortDescription>
-+ <description>Persian</description>
- <languageList><iso639Id>per</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>ave</name>
-- <_description>Avestan</_description>
-+ <description>Avestan</description>
- <languageList><iso639Id>ave</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -142,21 +142,21 @@
- <layout>
- <configItem>
- <name>lt</name>
-- <_shortDescription>lt</_shortDescription>
-- <_description>Lithuanian</_description>
-+ <shortDescription>lt</shortDescription>
-+ <description>Lithuanian</description>
- <languageList><iso639Id>lit</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>us_dvorak</name>
-- <_description>Lithuanian (US Dvorak with Lithuanian letters)</_description>
-+ <description>Lithuanian (US Dvorak with Lithuanian letters)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Lithuanian (Sun Type 6/7)</_description>
-+ <description>Lithuanian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -164,8 +164,8 @@
- <layout>
- <configItem>
- <name>lv</name>
-- <_shortDescription>lv</_shortDescription>
-- <_description>Latvian</_description>
-+ <shortDescription>lv</shortDescription>
-+ <description>Latvian</description>
- <languageList>
- <iso639Id>lav</iso639Id>
- </languageList>
-@@ -174,55 +174,55 @@
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Latvian (US Dvorak)</_description>
-+ <description>Latvian (US Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ykeydvorak</name>
-- <_description>Latvian (US Dvorak, Y variant)</_description>
-+ <description>Latvian (US Dvorak, Y variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>minuskeydvorak</name>
-- <_description>Latvian (US Dvorak, minus variant)</_description>
-+ <description>Latvian (US Dvorak, minus variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorakprogr</name>
-- <_description>Latvian (programmer US Dvorak)</_description>
-+ <description>Latvian (programmer US Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ykeydvorakprogr</name>
-- <_description>Latvian (programmer US Dvorak, Y variant)</_description>
-+ <description>Latvian (programmer US Dvorak, Y variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>minuskeydvorakprogr</name>
-- <_description>Latvian (programmer US Dvorak, minus variant)</_description>
-+ <description>Latvian (programmer US Dvorak, minus variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>Latvian (US Colemak)</_description>
-+ <description>Latvian (US Colemak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>apostrophecolemak</name>
-- <_description>Latvian (US Colemak, apostrophe variant)</_description>
-+ <description>Latvian (US Colemak, apostrophe variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Latvian (Sun Type 6/7)</_description>
-+ <description>Latvian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -230,34 +230,34 @@
- <layout>
- <configItem>
- <name>us</name>
-- <_shortDescription>en</_shortDescription>
-- <_description>English (US)</_description>
-+ <shortDescription>en</shortDescription>
-+ <description>English (US)</description>
- <languageList><iso639Id>eng</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>intl-unicode</name>
-- <_description>English (US, international AltGr Unicode combining)</_description>
-+ <description>English (US, international AltGr Unicode combining)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>alt-intl-unicode</name>
-- <_description>English (US, international AltGr Unicode combining, alternative)</_description>
-+ <description>English (US, international AltGr Unicode combining, alternative)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ats</name>
-- <_description>Atsina</_description>
-- <!-- No ISO code in ISO639-2, only draft ISO693-3 -->
-+ <description>Atsina</description>
-+
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>crd</name>
-- <_description>Coeur d'Alene Salish</_description>
-+ <description>Coeur d'Alene Salish</description>
- <languageList><iso639Id>crd</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -274,13 +274,13 @@
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>English (US, Sun Type 6/7)</_description>
-+ <description>English (US, Sun Type 6/7)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>norman</name>
-- <_description>English (Norman)</_description>
-+ <description>English (Norman)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -288,27 +288,27 @@
- <layout>
- <configItem>
- <name>pl</name>
-- <_shortDescription>pl</_shortDescription>
-- <_description>Polish</_description>
-+ <shortDescription>pl</shortDescription>
-+ <description>Polish</description>
- <languageList><iso639Id>pol</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>intl</name>
-- <_description>Polish (international with dead keys)</_description>
-+ <description>Polish (international with dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>Polish (Colemak)</_description>
-+ <description>Polish (Colemak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Polish (Sun Type 6/7)</_description>
-+ <description>Polish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -316,16 +316,16 @@
- <layout>
- <configItem>
- <name>ro</name>
-- <_shortDescription>ro</_shortDescription>
-- <_description>Romanian</_description>
-+ <shortDescription>ro</shortDescription>
-+ <description>Romanian</description>
- <languageList><iso639Id>rum</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>crh_dobruja</name>
-- <_shortDescription>crh</_shortDescription>
-- <_description>Crimean Tatar (Dobruja Q)</_description>
-+ <shortDescription>crh</shortDescription>
-+ <description>Crimean Tatar (Dobruja Q)</description>
- <languageList>
- <iso639Id>crh</iso639Id>
- </languageList>
-@@ -334,13 +334,13 @@
- <variant>
- <configItem>
- <name>ergonomic</name>
-- <_description>Romanian (ergonomic Touchtype)</_description>
-+ <description>Romanian (ergonomic Touchtype)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Romanian (Sun Type 6/7)</_description>
-+ <description>Romanian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -348,15 +348,15 @@
- <layout>
- <configItem>
- <name>rs</name>
-- <_shortDescription>sr</_shortDescription>
-- <_description>Serbian</_description>
-+ <shortDescription>sr</shortDescription>
-+ <description>Serbian</description>
- <languageList><iso639Id>srp</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>combiningkeys</name>
-- <_description>Serbian (combining accents instead of dead keys)</_description>
-+ <description>Serbian (combining accents instead of dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -364,8 +364,8 @@
- <layout>
- <configItem>
- <name>ru</name>
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian</_description>
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian</description>
- </configItem>
- <variantList>
- <variant>
-@@ -378,8 +378,8 @@
- <variant>
- <configItem>
- <name>ruu</name>
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (with Ukrainian-Belorussian layout)</_description>
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (with Ukrainian-Belorussian layout)</description>
- <languageList><iso639Id>rus</iso639Id>
- <iso639Id>ukr</iso639Id>
- <iso639Id>bel</iso639Id></languageList>
-@@ -388,7 +388,7 @@
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Russian (Sun Type 6/7)</_description>
-+ <description>Russian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -396,8 +396,8 @@
- <layout>
- <configItem>
- <name>am</name>
-- <_shortDescription>hy</_shortDescription>
-- <_description>Armenian</_description>
-+ <shortDescription>hy</shortDescription>
-+ <description>Armenian</description>
- <languageList>
- <iso639Id>hye</iso639Id>
- </languageList>
-@@ -406,7 +406,7 @@
- <variant>
- <configItem>
- <name>olpc-phonetic</name>
-- <_description>Armenian (OLPC phonetic)</_description>
-+ <description>Armenian (OLPC phonetic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -414,15 +414,15 @@
- <layout>
- <configItem>
- <name>il</name>
-- <_shortDescription>he</_shortDescription>
-- <_description>Hebrew</_description>
-+ <shortDescription>he</shortDescription>
-+ <description>Hebrew</description>
- <languageList><iso639Id>heb</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>biblicalSIL</name>
-- <_description>Hebrew (Biblical, SIL phonetic)</_description>
-+ <description>Hebrew (Biblical, SIL phonetic)</description>
- <languageList><iso639Id>heb</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -431,14 +431,14 @@
- <layout>
- <configItem>
- <name>ara</name>
-- <_shortDescription>ar</_shortDescription>
-- <_description>Arabic</_description>
-+ <shortDescription>ar</shortDescription>
-+ <description>Arabic</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Arabic (Sun Type 6/7)</_description>
-+ <description>Arabic (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -446,14 +446,14 @@
- <layout>
- <configItem>
- <name>be</name>
-- <_shortDescription>be</_shortDescription>
-- <_description>Belgian</_description>
-+ <shortDescription>be</shortDescription>
-+ <description>Belgian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Belgian (Sun Type 6/7)</_description>
-+ <description>Belgian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -461,14 +461,14 @@
- <layout>
- <configItem>
- <name>br</name>
-- <_shortDescription>pt</_shortDescription>
-- <_description>Portuguese (Brazil)</_description>
-+ <shortDescription>pt</shortDescription>
-+ <description>Portuguese (Brazil)</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Portuguese (Brazil, Sun Type 6/7)</_description>
-+ <description>Portuguese (Brazil, Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -476,14 +476,14 @@
- <layout>
- <configItem>
- <name>cz</name>
-- <_shortDescription>cs</_shortDescription>
-- <_description>Czech</_description>
-+ <shortDescription>cs</shortDescription>
-+ <description>Czech</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Czech (Sun Type 6/7)</_description>
-+ <description>Czech (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -491,14 +491,14 @@
- <layout>
- <configItem>
- <name>dk</name>
-- <_shortDescription>da</_shortDescription>
-- <_description>Danish</_description>
-+ <shortDescription>da</shortDescription>
-+ <description>Danish</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Danish (Sun Type 6/7)</_description>
-+ <description>Danish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -506,14 +506,14 @@
- <layout>
- <configItem>
- <name>nl</name>
-- <_shortDescription>nl</_shortDescription>
-- <_description>Dutch</_description>
-+ <shortDescription>nl</shortDescription>
-+ <description>Dutch</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Dutch (Sun Type 6/7)</_description>
-+ <description>Dutch (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -521,14 +521,14 @@
- <layout>
- <configItem>
- <name>ee</name>
-- <_shortDescription>et</_shortDescription>
-- <_description>Estonian</_description>
-+ <shortDescription>et</shortDescription>
-+ <description>Estonian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Estonian (Sun Type 6/7)</_description>
-+ <description>Estonian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -536,14 +536,14 @@
- <layout>
- <configItem>
- <name>fi</name>
-- <_shortDescription>fi</_shortDescription>
-- <_description>Finnish</_description>
-+ <shortDescription>fi</shortDescription>
-+ <description>Finnish</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Finnish (Sun Type 6/7)</_description>
-+ <description>Finnish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -551,14 +551,14 @@
- <layout>
- <configItem>
- <name>fr</name>
-- <_shortDescription>fr</_shortDescription>
-- <_description>French</_description>
-+ <shortDescription>fr</shortDescription>
-+ <description>French</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>French (Sun Type 6/7)</_description>
-+ <description>French (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -566,14 +566,14 @@
- <layout>
- <configItem>
- <name>gr</name>
-- <_shortDescription>gr</_shortDescription>
-- <_description>Greek</_description>
-+ <shortDescription>gr</shortDescription>
-+ <description>Greek</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Greek (Sun Type 6/7)</_description>
-+ <description>Greek (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -581,14 +581,14 @@
- <layout>
- <configItem>
- <name>it</name>
-- <_shortDescription>it</_shortDescription>
-- <_description>Italian</_description>
-+ <shortDescription>it</shortDescription>
-+ <description>Italian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Italian (Sun Type 6/7)</_description>
-+ <description>Italian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -596,26 +596,26 @@
- <layout>
- <configItem>
- <name>jp</name>
-- <_shortDescription>ja</_shortDescription>
-- <_description>Japanese</_description>
-+ <shortDescription>ja</shortDescription>
-+ <description>Japanese</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Japanese (Sun Type 6)</_description>
-+ <description>Japanese (Sun Type 6)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type7</name>
-- <_description>Japanese (Sun Type 7 - pc compatible)</_description>
-+ <description>Japanese (Sun Type 7 - pc compatible)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type7_suncompat</name>
-- <_description>Japanese (Sun Type 7 - sun compatible)</_description>
-+ <description>Japanese (Sun Type 7 - sun compatible)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -623,14 +623,14 @@
- <layout>
- <configItem>
- <name>no</name>
-- <_shortDescription>no</_shortDescription>
-- <_description>Norwegian</_description>
-+ <shortDescription>no</shortDescription>
-+ <description>Norwegian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Norwegian (Sun Type 6/7)</_description>
-+ <description>Norwegian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -638,14 +638,14 @@
- <layout>
- <configItem>
- <name>pt</name>
-- <_shortDescription>pt</_shortDescription>
-- <_description>Portuguese</_description>
-+ <shortDescription>pt</shortDescription>
-+ <description>Portuguese</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Portuguese (Sun Type 6/7)</_description>
-+ <description>Portuguese (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -653,14 +653,14 @@
- <layout>
- <configItem>
- <name>sk</name>
-- <_shortDescription>sk</_shortDescription>
-- <_description>Slovak</_description>
-+ <shortDescription>sk</shortDescription>
-+ <description>Slovak</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Slovak (Sun Type 6/7)</_description>
-+ <description>Slovak (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -668,14 +668,14 @@
- <layout>
- <configItem>
- <name>es</name>
-- <_shortDescription>es</_shortDescription>
-- <_description>Spanish</_description>
-+ <shortDescription>es</shortDescription>
-+ <description>Spanish</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Spanish (Sun Type 6/7)</_description>
-+ <description>Spanish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -683,14 +683,14 @@
- <layout>
- <configItem>
- <name>se</name>
-- <_shortDescription>sv</_shortDescription>
-- <_description>Swedish</_description>
-+ <shortDescription>sv</shortDescription>
-+ <description>Swedish</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Swedish (Sun Type 6/7)</_description>
-+ <description>Swedish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -698,20 +698,20 @@
- <layout>
- <configItem>
- <name>ch</name>
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Switzerland)</_description>
-+ <shortDescription>de</shortDescription>
-+ <description>German (Switzerland)</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6_de</name>
-- <_description>German (Switzerland, Sun Type 6/7)</_description>
-+ <description>German (Switzerland, Sun Type 6/7)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6_fr</name>
-- <_description>French (Switzerland, Sun Type 6/7)</_description>
-+ <description>French (Switzerland, Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -719,14 +719,14 @@
- <layout>
- <configItem>
- <name>tr</name>
-- <_shortDescription>tr</_shortDescription>
-- <_description>Turkish</_description>
-+ <shortDescription>tr</shortDescription>
-+ <description>Turkish</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Turkish (Sun Type 6/7)</_description>
-+ <description>Turkish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -734,14 +734,14 @@
- <layout>
- <configItem>
- <name>ua</name>
-- <_shortDescription>uk</_shortDescription>
-- <_description>Ukrainian</_description>
-+ <shortDescription>uk</shortDescription>
-+ <description>Ukrainian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Ukrainian (Sun Type 6/7)</_description>
-+ <description>Ukrainian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -749,14 +749,14 @@
- <layout>
- <configItem>
- <name>gb</name>
-- <_shortDescription>en</_shortDescription>
-- <_description>English (UK)</_description>
-+ <shortDescription>en</shortDescription>
-+ <description>English (UK)</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>English (UK, Sun Type 6/7)</_description>
-+ <description>English (UK, Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -764,18 +764,18 @@
- <layout>
- <configItem>
- <name>kr</name>
-- <_shortDescription>ko</_shortDescription>
-- <_description>Korean</_description>
-+ <shortDescription>ko</shortDescription>
-+ <description>Korean</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Korean (Sun Type 6/7)</_description>
-+ <description>Korean (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
- </layout>
- </layoutList>
- <optionList/>
--</xkbConfigRegistry>
-+</xkbConfigRegistry>
-\ No newline at end of file
diff --git a/package/xkeyboard-config/patches/patch-rules_base_xml_in b/package/xkeyboard-config/patches/patch-rules_base_xml_in
deleted file mode 100644
index 5249ade99..000000000
--- a/package/xkeyboard-config/patches/patch-rules_base_xml_in
+++ /dev/null
@@ -1,7654 +0,0 @@
---- xkeyboard-config-2.11.orig/rules/base.xml.in 2014-01-15 02:02:39.000000000 +0100
-+++ xkeyboard-config-2.11/rules/base.xml.in 2014-03-04 14:31:12.000000000 +0100
-@@ -5,627 +5,627 @@
- <model>
- <configItem>
- <name>pc101</name>
-- <_description>Generic 101-key PC</_description>
-+ <description>Generic 101-key PC</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>pc102</name>
-- <_description>Generic 102-key (Intl) PC</_description>
-+ <description>Generic 102-key (Intl) PC</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>pc104</name>
-- <_description>Generic 104-key PC</_description>
-+ <description>Generic 104-key PC</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>pc105</name>
-- <_description>Generic 105-key (Intl) PC</_description>
-+ <description>Generic 105-key (Intl) PC</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dell101</name>
-- <_description>Dell 101-key PC</_description>
-+ <description>Dell 101-key PC</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>latitude</name>
-- <_description>Dell Latitude series laptop</_description>
-+ <description>Dell Latitude series laptop</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dellm65</name>
-- <_description>Dell Precision M65</_description>
-+ <description>Dell Precision M65</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>everex</name>
-- <_description>Everex STEPnote</_description>
-+ <description>Everex STEPnote</description>
- <vendor>Everex</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>flexpro</name>
-- <_description>Keytronic FlexPro</_description>
-+ <description>Keytronic FlexPro</description>
- <vendor>Keytronic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoft</name>
-- <_description>Microsoft Natural</_description>
-+ <description>Microsoft Natural</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>omnikey101</name>
-- <_description>Northgate OmniKey 101</_description>
-+ <description>Northgate OmniKey 101</description>
- <vendor>Northgate</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>winbook</name>
-- <_description>Winbook Model XP5</_description>
-+ <description>Winbook Model XP5</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>pc98</name>
-- <_description>PC-98xx Series</_description>
-+ <description>PC-98xx Series</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>a4techKB21</name>
-- <_description>A4Tech KB-21</_description>
-+ <description>A4Tech KB-21</description>
- <vendor>A4Tech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>a4techKBS8</name>
-- <_description>A4Tech KBS-8</_description>
-+ <description>A4Tech KBS-8</description>
- <vendor>A4Tech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>a4_rfkb23</name>
-- <_description>A4Tech Wireless Desktop RFKB-23</_description>
-+ <description>A4Tech Wireless Desktop RFKB-23</description>
- <vendor>A4Tech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>airkey</name>
-- <_description>Acer AirKey V</_description>
-+ <description>Acer AirKey V</description>
- <vendor>Acer</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>azonaRF2300</name>
-- <_description>Azona RF2300 wireless Internet Keyboard</_description>
-+ <description>Azona RF2300 wireless Internet Keyboard</description>
- <vendor>Azona</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>scorpius</name>
-- <_description>Advance Scorpius KI</_description>
-+ <description>Advance Scorpius KI</description>
- <vendor>Scorpius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>brother</name>
-- <_description>Brother Internet Keyboard</_description>
-+ <description>Brother Internet Keyboard</description>
- <vendor>Brother</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc5113rf</name>
-- <_description>BTC 5113RF Multimedia</_description>
-+ <description>BTC 5113RF Multimedia</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc5126t</name>
-- <_description>BTC 5126T</_description>
-+ <description>BTC 5126T</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc6301urf</name>
-- <_description>BTC 6301URF</_description>
-+ <description>BTC 6301URF</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc9000</name>
-- <_description>BTC 9000</_description>
-+ <description>BTC 9000</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc9000a</name>
-- <_description>BTC 9000A</_description>
-+ <description>BTC 9000A</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc9001ah</name>
-- <_description>BTC 9001AH</_description>
-+ <description>BTC 9001AH</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc5090</name>
-- <_description>BTC 5090</_description>
-+ <description>BTC 5090</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc9019u</name>
-- <_description>BTC 9019U</_description>
-+ <description>BTC 9019U</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc9116u</name>
-- <_description>BTC 9116U Mini Wireless Internet and Gaming</_description>
-+ <description>BTC 9116U Mini Wireless Internet and Gaming</description>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherryblue</name>
-- <_description>Cherry Blue Line CyBo@rd</_description>
-+ <description>Cherry Blue Line CyBo@rd</description>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherryblueb</name>
-- <_description>Cherry CyMotion Master XPress</_description>
-+ <description>Cherry CyMotion Master XPress</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherrybluea</name>
-- <_description>Cherry Blue Line CyBo@rd (alternate option)</_description>
-+ <description>Cherry Blue Line CyBo@rd (alternate option)</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherrycyboard</name>
-- <_description>Cherry CyBo@rd USB-Hub</_description>
-+ <description>Cherry CyBo@rd USB-Hub</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherrycmexpert</name>
-- <_description>Cherry CyMotion Expert</_description>
-+ <description>Cherry CyMotion Expert</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherrybunlim</name>
-- <_description>Cherry B.UNLIMITED</_description>
-+ <description>Cherry B.UNLIMITED</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>chicony</name>
-- <_description>Chicony Internet Keyboard</_description>
-+ <description>Chicony Internet Keyboard</description>
- <vendor>Chicony</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>chicony0108</name>
-- <_description>Chicony KU-0108</_description>
-+ <description>Chicony KU-0108</description>
- <vendor>Chicony</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>chicony0420</name>
-- <_description>Chicony KU-0420</_description>
-+ <description>Chicony KU-0420</description>
- <vendor>Chicony</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>chicony9885</name>
-- <_description>Chicony KB-9885</_description>
-+ <description>Chicony KB-9885</description>
- <vendor>Chicony</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>compaqeak8</name>
-- <_description>Compaq Easy Access Keyboard</_description>
-+ <description>Compaq Easy Access Keyboard</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>compaqik7</name>
-- <_description>Compaq Internet Keyboard (7 keys)</_description>
-+ <description>Compaq Internet Keyboard (7 keys)</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>compaqik13</name>
-- <_description>Compaq Internet Keyboard (13 keys)</_description>
-+ <description>Compaq Internet Keyboard (13 keys)</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>compaqik18</name>
-- <_description>Compaq Internet Keyboard (18 keys)</_description>
-+ <description>Compaq Internet Keyboard (18 keys)</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cymotionlinux</name>
-- <_description>Cherry CyMotion Master Linux</_description>
-+ <description>Cherry CyMotion Master Linux</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>armada</name>
-- <_description>Laptop/notebook Compaq (eg. Armada) Laptop Keyboard</_description>
-+ <description>Laptop/notebook Compaq (eg. Armada) Laptop Keyboard</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>presario</name>
-- <_description>Laptop/notebook Compaq (eg. Presario) Internet Keyboard</_description>
-+ <description>Laptop/notebook Compaq (eg. Presario) Internet Keyboard</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>ipaq</name>
-- <_description>Compaq iPaq Keyboard</_description>
-+ <description>Compaq iPaq Keyboard</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dell</name>
-- <_description>Dell</_description>
-+ <description>Dell</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dellsk8125</name>
-- <_description>Dell SK-8125</_description>
-+ <description>Dell SK-8125</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dellsk8135</name>
-- <_description>Dell SK-8135</_description>
-+ <description>Dell SK-8135</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dellusbmm</name>
-- <_description>Dell USB Multimedia Keyboard</_description>
-+ <description>Dell USB Multimedia Keyboard</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>inspiron</name>
-- <_description>Dell Laptop/notebook Inspiron 6xxx/8xxx</_description>
-+ <description>Dell Laptop/notebook Inspiron 6xxx/8xxx</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>precision_m</name>
-- <_description>Dell Laptop/notebook Precision M series</_description>
-+ <description>Dell Laptop/notebook Precision M series</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dexxa</name>
-- <_description>Dexxa Wireless Desktop Keyboard</_description>
-+ <description>Dexxa Wireless Desktop Keyboard</description>
- <vendor>Dexxa</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>diamond</name>
-- <_description>Diamond 9801 / 9802 series</_description>
-+ <description>Diamond 9801 / 9802 series</description>
- <vendor>Diamond</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dtk2000</name>
-- <_description>DTK2000</_description>
-+ <description>DTK2000</description>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>ennyah_dkb1008</name>
-- <_description>Ennyah DKB-1008</_description>
-+ <description>Ennyah DKB-1008</description>
- <vendor>Ennyah</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>fscaa1667g</name>
-- <_description>Fujitsu-Siemens Computers AMILO laptop</_description>
-+ <description>Fujitsu-Siemens Computers AMILO laptop</description>
- <vendor>Fujitsu-Siemens</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>genius</name>
-- <_description>Genius Comfy KB-16M / Genius MM Keyboard KWD-910</_description>
-+ <description>Genius Comfy KB-16M / Genius MM Keyboard KWD-910</description>
- <vendor>Genius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>geniuscomfy</name>
-- <_description>Genius Comfy KB-12e</_description>
-+ <description>Genius Comfy KB-12e</description>
- <vendor>Genius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>geniuscomfy2</name>
-- <_description>Genius Comfy KB-21e-Scroll</_description>
-+ <description>Genius Comfy KB-21e-Scroll</description>
- <vendor>Genius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>geniuskb19e</name>
-- <_description>Genius KB-19e NB</_description>
-+ <description>Genius KB-19e NB</description>
- <vendor>Genius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>geniuskkb2050hs</name>
-- <_description>Genius KKB-2050HS</_description>
-+ <description>Genius KKB-2050HS</description>
- <vendor>Genius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>gyration</name>
-- <_description>Gyration</_description>
-+ <description>Gyration</description>
- <vendor>Gyration</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>htcdream</name>
-- <_description>HTC Dream</_description>
-+ <description>HTC Dream</description>
- <vendor>HTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>kinesis</name>
-- <_description>Kinesis</_description>
-+ <description>Kinesis</description>
- <vendor>Kinesis</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logitech_base</name>
-- <_description>Logitech Generic Keyboard</_description>
-+ <description>Logitech Generic Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logitech_g15</name>
-- <_description>Logitech G15 extra keys via G15daemon</_description>
-+ <description>Logitech G15 extra keys via G15daemon</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpi6</name>
-- <_description>Hewlett-Packard Internet Keyboard</_description>
-+ <description>Hewlett-Packard Internet Keyboard</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hp250x</name>
-- <_description>Hewlett-Packard SK-250x Multimedia Keyboard</_description>
-+ <description>Hewlett-Packard SK-250x Multimedia Keyboard</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpxe3gc</name>
-- <_description>Hewlett-Packard Omnibook XE3 GC</_description>
-+ <description>Hewlett-Packard Omnibook XE3 GC</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpxe3gf</name>
-- <_description>Hewlett-Packard Omnibook XE3 GF</_description>
-+ <description>Hewlett-Packard Omnibook XE3 GF</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpxt1000</name>
-- <_description>Hewlett-Packard Omnibook XT1000</_description>
-+ <description>Hewlett-Packard Omnibook XT1000</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpdv5</name>
-- <_description>Hewlett-Packard Pavilion dv5</_description>
-+ <description>Hewlett-Packard Pavilion dv5</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpzt11xx</name>
-- <_description>Hewlett-Packard Pavilion ZT11xx</_description>
-+ <description>Hewlett-Packard Pavilion ZT11xx</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hp500fa</name>
-- <_description>Hewlett-Packard Omnibook 500 FA</_description>
-+ <description>Hewlett-Packard Omnibook 500 FA</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hp5xx</name>
-- <_description>Hewlett-Packard Omnibook 5xx</_description>
-+ <description>Hewlett-Packard Omnibook 5xx</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpnx9020</name>
-- <_description>Hewlett-Packard nx9020</_description>
-+ <description>Hewlett-Packard nx9020</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hp6000</name>
-- <_description>Hewlett-Packard Omnibook 6000/6100</_description>
-+ <description>Hewlett-Packard Omnibook 6000/6100</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>honeywell_euroboard</name>
-- <_description>Honeywell Euroboard</_description>
-+ <description>Honeywell Euroboard</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpmini110</name>
-- <_description>Hewlett-Packard Mini 110 Notebook</_description>
-+ <description>Hewlett-Packard Mini 110 Notebook</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>rapidaccess</name>
-- <_description>IBM Rapid Access</_description>
-+ <description>IBM Rapid Access</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>rapidaccess2</name>
-- <_description>IBM Rapid Access II</_description>
-+ <description>IBM Rapid Access II</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>thinkpad</name>
-- <_description>IBM ThinkPad 560Z/600/600E/A22E</_description>
-+ <description>IBM ThinkPad 560Z/600/600E/A22E</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>thinkpad60</name>
-- <_description>IBM ThinkPad R60/T60/R61/T61</_description>
-+ <description>IBM ThinkPad R60/T60/R61/T61</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>thinkpadz60</name>
-- <_description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</_description>
-+ <description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>ibm_spacesaver</name>
-- <_description>IBM Space Saver</_description>
-+ <description>IBM Space Saver</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiaccess</name>
-- <_description>Logitech Access Keyboard</_description>
-+ <description>Logitech Access Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiclx300</name>
-- <_description>Logitech Cordless Desktop LX-300</_description>
-+ <description>Logitech Cordless Desktop LX-300</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logii350</name>
-- <_description>Logitech Internet 350 Keyboard</_description>
-+ <description>Logitech Internet 350 Keyboard</description>
- <vendor>Logitech</vendor>
- <hwList> <hwId>046d:c313</hwId></hwList>
- </configItem>
-@@ -633,665 +633,665 @@
- <model>
- <configItem>
- <name>logimel</name>
-- <_description>Logitech Media Elite Keyboard</_description>
-+ <description>Logitech Media Elite Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicd</name>
-- <_description>Logitech Cordless Desktop</_description>
-+ <description>Logitech Cordless Desktop</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicd_it</name>
-- <_description>Logitech Cordless Desktop iTouch</_description>
-+ <description>Logitech Cordless Desktop iTouch</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicd_nav</name>
-- <_description>Logitech Cordless Desktop Navigator</_description>
-+ <description>Logitech Cordless Desktop Navigator</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicd_opt</name>
-- <_description>Logitech Cordless Desktop Optical</_description>
-+ <description>Logitech Cordless Desktop Optical</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicda</name>
-- <_description>Logitech Cordless Desktop (alternate option)</_description>
-+ <description>Logitech Cordless Desktop (alternate option)</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicdpa2</name>
-- <_description>Logitech Cordless Desktop Pro (alternate option 2)</_description>
-+ <description>Logitech Cordless Desktop Pro (alternate option 2)</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicfn</name>
-- <_description>Logitech Cordless Freedom/Desktop Navigator</_description>
-+ <description>Logitech Cordless Freedom/Desktop Navigator</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicdn</name>
-- <_description>Logitech Cordless Desktop Navigator</_description>
-+ <description>Logitech Cordless Desktop Navigator</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiitc</name>
-- <_description>Logitech iTouch Cordless Keyboard (model Y-RB6)</_description>
-+ <description>Logitech iTouch Cordless Keyboard (model Y-RB6)</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiik</name>
-- <_description>Logitech Internet Keyboard</_description>
-+ <description>Logitech Internet Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>itouch</name>
-- <_description>Logitech iTouch</_description>
-+ <description>Logitech iTouch</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicink</name>
-- <_description>Logitech Internet Navigator Keyboard</_description>
-+ <description>Logitech Internet Navigator Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiex110</name>
-- <_description>Logitech Cordless Desktop EX110</_description>
-+ <description>Logitech Cordless Desktop EX110</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiinkse</name>
-- <_description>Logitech iTouch Internet Navigator Keyboard SE</_description>
-+ <description>Logitech iTouch Internet Navigator Keyboard SE</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiinkseusb</name>
-- <_description>Logitech iTouch Internet Navigator Keyboard SE (USB)</_description>
-+ <description>Logitech iTouch Internet Navigator Keyboard SE (USB)</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiultrax</name>
-- <_description>Logitech Ultra-X Keyboard</_description>
-+ <description>Logitech Ultra-X Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiultraxc</name>
-- <_description>Logitech Ultra-X Cordless Media Desktop Keyboard</_description>
-+ <description>Logitech Ultra-X Cordless Media Desktop Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logidinovo</name>
-- <_description>Logitech diNovo Keyboard</_description>
-+ <description>Logitech diNovo Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logidinovoedge</name>
-- <_description>Logitech diNovo Edge Keyboard</_description>
-+ <description>Logitech diNovo Edge Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>mx1998</name>
-- <_description>Memorex MX1998</_description>
-+ <description>Memorex MX1998</description>
- <vendor>Memorex</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>mx2500</name>
-- <_description>Memorex MX2500 EZ-Access Keyboard</_description>
-+ <description>Memorex MX2500 EZ-Access Keyboard</description>
- <vendor>Memorex</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>mx2750</name>
-- <_description>Memorex MX2750</_description>
-+ <description>Memorex MX2750</description>
- <vendor>Memorex</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoft4000</name>
-- <_description>Microsoft Natural Wireless Ergonomic Keyboard 4000</_description>
-+ <description>Microsoft Natural Wireless Ergonomic Keyboard 4000</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoft7000</name>
-- <_description>Microsoft Natural Wireless Ergonomic Keyboard 7000</_description>
-+ <description>Microsoft Natural Wireless Ergonomic Keyboard 7000</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftinet</name>
-- <_description>Microsoft Internet Keyboard</_description>
-+ <description>Microsoft Internet Keyboard</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftpro</name>
-- <_description>Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro</_description>
-+ <description>Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftprousb</name>
-- <_description>Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro</_description>
-+ <description>Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftprooem</name>
-- <_description>Microsoft Natural Keyboard Pro OEM</_description>
-+ <description>Microsoft Natural Keyboard Pro OEM</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>vsonku306</name>
-- <_description>ViewSonic KU-306 Internet Keyboard</_description>
-+ <description>ViewSonic KU-306 Internet Keyboard</description>
- <vendor>ViewSonic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftprose</name>
-- <_description>Microsoft Internet Keyboard Pro, Swedish</_description>
-+ <description>Microsoft Internet Keyboard Pro, Swedish</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftoffice</name>
-- <_description>Microsoft Office Keyboard</_description>
-+ <description>Microsoft Office Keyboard</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftmult</name>
-- <_description>Microsoft Wireless Multimedia Keyboard 1.0A</_description>
-+ <description>Microsoft Wireless Multimedia Keyboard 1.0A</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftelite</name>
-- <_description>Microsoft Natural Keyboard Elite</_description>
-+ <description>Microsoft Natural Keyboard Elite</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftccurve2k</name>
-- <_description>Microsoft Comfort Curve Keyboard 2000</_description>
-+ <description>Microsoft Comfort Curve Keyboard 2000</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>oretec</name>
-- <_description>Ortek MCK-800 MM/Internet keyboard</_description>
-+ <description>Ortek MCK-800 MM/Internet keyboard</description>
- <vendor>Ortek</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>propeller</name>
-- <_description>Propeller Voyager (KTEZ-1000)</_description>
-+ <description>Propeller Voyager (KTEZ-1000)</description>
- <vendor>KeyTronic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>qtronix</name>
-- <_description>QTronix Scorpius 98N+</_description>
-+ <description>QTronix Scorpius 98N+</description>
- <vendor>QTronix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>samsung4500</name>
-- <_description>Samsung SDM 4500P</_description>
-+ <description>Samsung SDM 4500P</description>
- <vendor>Samsung</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>samsung4510</name>
-- <_description>Samsung SDM 4510P</_description>
-+ <description>Samsung SDM 4510P</description>
- <vendor>Samsung</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sanwaskbkg3</name>
-- <_description>Sanwa Supply SKB-KG3</_description>
-+ <description>Sanwa Supply SKB-KG3</description>
- <vendor>Sanwa Supply Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sk1300</name>
-- <_description>SK-1300</_description>
-+ <description>SK-1300</description>
- <vendor>NEC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sk2500</name>
-- <_description>SK-2500</_description>
-+ <description>SK-2500</description>
- <vendor>NEC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sk6200</name>
-- <_description>SK-6200</_description>
-+ <description>SK-6200</description>
- <vendor>NEC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sk7100</name>
-- <_description>SK-7100</_description>
-+ <description>SK-7100</description>
- <vendor>NEC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sp_inet</name>
-- <_description>Super Power Multimedia Keyboard</_description>
-+ <description>Super Power Multimedia Keyboard</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sven</name>
-- <_description>SVEN Ergonomic 2500</_description>
-+ <description>SVEN Ergonomic 2500</description>
- <vendor>SVEN</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sven303</name>
-- <_description>SVEN Slim 303</_description>
-+ <description>SVEN Slim 303</description>
- <vendor>SVEN</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>symplon</name>
-- <_description>Symplon PaceBook (tablet PC)</_description>
-+ <description>Symplon PaceBook (tablet PC)</description>
- <vendor>Symplon</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>toshiba_s3000</name>
-- <_description>Toshiba Satellite S3000</_description>
-+ <description>Toshiba Satellite S3000</description>
- <vendor>Toshiba</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>trust</name>
-- <_description>Trust Wireless Keyboard Classic</_description>
-+ <description>Trust Wireless Keyboard Classic</description>
- <vendor>Trust</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>trustda</name>
-- <_description>Trust Direct Access Keyboard</_description>
-+ <description>Trust Direct Access Keyboard</description>
- <vendor>Trust</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>trust_slimline</name>
-- <_description>Trust Slimline</_description>
-+ <description>Trust Slimline</description>
- <vendor>Trust</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>tm2020</name>
-- <_description>TypeMatrix EZ-Reach 2020</_description>
-+ <description>TypeMatrix EZ-Reach 2020</description>
- <vendor>TypeMatrix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>tm2030PS2</name>
-- <_description>TypeMatrix EZ-Reach 2030 PS2</_description>
-+ <description>TypeMatrix EZ-Reach 2030 PS2</description>
- <vendor>TypeMatrix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>tm2030USB</name>
-- <_description>TypeMatrix EZ-Reach 2030 USB</_description>
-+ <description>TypeMatrix EZ-Reach 2030 USB</description>
- <vendor>TypeMatrix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>tm2030USB-102</name>
-- <_description>TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)</_description>
-+ <description>TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)</description>
- <vendor>TypeMatrix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>tm2030USB-106</name>
-- <_description>TypeMatrix EZ-Reach 2030 USB (106:JP mode)</_description>
-+ <description>TypeMatrix EZ-Reach 2030 USB (106:JP mode)</description>
- <vendor>TypeMatrix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>yahoo</name>
-- <_description>Yahoo! Internet Keyboard</_description>
-+ <description>Yahoo! Internet Keyboard</description>
- <vendor>Yahoo!</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>macbook78</name>
-- <_description>MacBook/MacBook Pro</_description>
-+ <description>MacBook/MacBook Pro</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>macbook79</name>
-- <_description>MacBook/MacBook Pro (Intl)</_description>
-+ <description>MacBook/MacBook Pro (Intl)</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>macintosh</name>
-- <_description>Macintosh</_description>
-+ <description>Macintosh</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>macintosh_old</name>
-- <_description>Macintosh Old</_description>
-+ <description>Macintosh Old</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>macintosh_hhk</name>
-- <_description>Happy Hacking Keyboard for Mac</_description>
-+ <description>Happy Hacking Keyboard for Mac</description>
- <vendor>Fujitsu</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>acer_c300</name>
-- <_description>Acer C300</_description>
-+ <description>Acer C300</description>
- <vendor>Acer</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>acer_ferrari4k</name>
-- <_description>Acer Ferrari 4000</_description>
-+ <description>Acer Ferrari 4000</description>
- <vendor>Acer</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>acer_laptop</name>
-- <_description>Acer Laptop</_description>
-+ <description>Acer Laptop</description>
- <vendor>Acer</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>asus_laptop</name>
-- <_description>Asus Laptop</_description>
-+ <description>Asus Laptop</description>
- <vendor>Asus</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>apple</name>
-- <_description>Apple</_description>
-+ <description>Apple</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>apple_laptop</name>
-- <_description>Apple Laptop</_description>
-+ <description>Apple Laptop</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>applealu_ansi</name>
-- <_description>Apple Aluminium Keyboard (ANSI)</_description>
-+ <description>Apple Aluminium Keyboard (ANSI)</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>applealu_iso</name>
-- <_description>Apple Aluminium Keyboard (ISO)</_description>
-+ <description>Apple Aluminium Keyboard (ISO)</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>applealu_jis</name>
-- <_description>Apple Aluminium Keyboard (JIS)</_description>
-+ <description>Apple Aluminium Keyboard (JIS)</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>silvercrest</name>
-- <_description>SILVERCREST Multimedia Wireless Keyboard</_description>
-+ <description>SILVERCREST Multimedia Wireless Keyboard</description>
- <vendor>Silvercrest</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>emachines</name>
-- <_description>Laptop/notebook eMachines m68xx</_description>
-+ <description>Laptop/notebook eMachines m68xx</description>
- <vendor>eMachines</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>benqx</name>
-- <_description>BenQ X-Touch</_description>
-+ <description>BenQ X-Touch</description>
- <vendor>BenQ</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>benqx730</name>
-- <_description>BenQ X-Touch 730</_description>
-+ <description>BenQ X-Touch 730</description>
- <vendor>BenQ</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>benqx800</name>
-- <_description>BenQ X-Touch 800</_description>
-+ <description>BenQ X-Touch 800</description>
- <vendor>BenQ</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hhk</name>
-- <_description>Happy Hacking Keyboard</_description>
-+ <description>Happy Hacking Keyboard</description>
- <vendor>Fujitsu</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>classmate</name>
-- <_description>Classmate PC</_description>
-+ <description>Classmate PC</description>
- <vendor>Intel</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>olpc</name>
-- <_description>OLPC</_description>
-+ <description>OLPC</description>
- <vendor>OLPC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type7_usb</name>
-- <_description>Sun Type 7 USB</_description>
-+ <description>Sun Type 7 USB</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type7_euro_usb</name>
-- <_description>Sun Type 7 USB (European layout)</_description>
-+ <description>Sun Type 7 USB (European layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type7_unix_usb</name>
-- <_description>Sun Type 7 USB (Unix layout)</_description>
-+ <description>Sun Type 7 USB (Unix layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type7_jp_usb</name>
-- <_description>Sun Type 7 USB (Japanese layout) / Japanese 106-key</_description>
-+ <description>Sun Type 7 USB (Japanese layout) / Japanese 106-key</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type6_usb</name>
-- <_description>Sun Type 6/7 USB</_description>
-+ <description>Sun Type 6/7 USB</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type6_euro_usb</name>
-- <_description>Sun Type 6/7 USB (European layout)</_description>
-+ <description>Sun Type 6/7 USB (European layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type6_unix_usb</name>
-- <_description>Sun Type 6 USB (Unix layout)</_description>
-+ <description>Sun Type 6 USB (Unix layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type6_jp_usb</name>
-- <_description>Sun Type 6 USB (Japanese layout)</_description>
-+ <description>Sun Type 6 USB (Japanese layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type6_jp</name>
-- <_description>Sun Type 6 (Japanese layout)</_description>
-+ <description>Sun Type 6 (Japanese layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>targa_v811</name>
-- <_description>Targa Visionary 811</_description>
-+ <description>Targa Visionary 811</description>
- <vendor>Targa</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>unitekkb1925</name>
-- <_description>Unitek KB-1925</_description>
-+ <description>Unitek KB-1925</description>
- <vendor>Unitek Group</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>compalfl90</name>
-- <_description>FL90</_description>
-+ <description>FL90</description>
- <vendor>Compal Electronics Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>creativedw7000</name>
-- <_description>Creative Desktop Wireless 7000</_description>
-+ <description>Creative Desktop Wireless 7000</description>
- <vendor>Creative</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>htcdream</name>
-- <_description>Htc Dream phone</_description>
-+ <description>Htc Dream phone</description>
- <vendor>htc</vendor>
- </configItem>
- </model>
-@@ -1300,9 +1300,9 @@
- <layout>
- <configItem>
- <name>us</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (US)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (US)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -1311,9 +1311,9 @@
- <variant>
- <configItem>
- <name>chr</name>
-- <!-- Keyboard indicator for Cherokee layouts -->
-- <_shortDescription>chr</_shortDescription>
-- <_description>Cherokee</_description>
-+
-+ <shortDescription>chr</shortDescription>
-+ <description>Cherokee</description>
- <languageList>
- <iso639Id>chr</iso639Id>
- </languageList>
-@@ -1322,75 +1322,75 @@
- <variant>
- <configItem>
- <name>euro</name>
-- <_description>English (US, with euro on 5)</_description>
-+ <description>English (US, with euro on 5)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>intl</name>
-- <_description>English (US, international with dead keys)</_description>
-+ <description>English (US, international with dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>alt-intl</name>
-- <_description>English (US, alternative international)</_description>
-+ <description>English (US, alternative international)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>English (Colemak)</_description>
-+ <description>English (Colemak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>English (Dvorak)</_description>
-+ <description>English (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-intl</name>
-- <_description>English (Dvorak, international with dead keys)</_description>
-+ <description>English (Dvorak, international with dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-alt-intl</name>
-- <_description>English (Dvorak alternative international no dead keys)</_description>
-+ <description>English (Dvorak alternative international no dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-l</name>
-- <_description>English (left handed Dvorak)</_description>
-+ <description>English (left handed Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-r</name>
-- <_description>English (right handed Dvorak)</_description>
-+ <description>English (right handed Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-classic</name>
-- <_description>English (classic Dvorak)</_description>
-+ <description>English (classic Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvp</name>
-- <_description>English (programmer Dvorak)</_description>
-+ <description>English (programmer Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>rus</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (US, phonetic)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (US, phonetic)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -1399,13 +1399,13 @@
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>English (Macintosh)</_description>
-+ <description>English (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>altgr-intl</name>
-- <_description>English (international AltGr dead keys)</_description>
-+ <description>English (international AltGr dead keys)</description>
- <languageList><iso639Id>eng</iso639Id>
- <iso639Id>fra</iso639Id>
- <iso639Id>ger</iso639Id></languageList>
-@@ -1414,13 +1414,13 @@
- <variant>
- <configItem>
- <name>olpc2</name>
-- <_description>English (the divide/multiply keys toggle the layout)</_description>
-+ <description>English (the divide/multiply keys toggle the layout)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>hbs</name>
-- <_description>Serbo-Croatian (US)</_description>
-+ <description>Serbo-Croatian (US)</description>
- <languageList><iso639Id>eng</iso639Id>
- <iso639Id>bos</iso639Id>
- <iso639Id>hbs</iso639Id>
-@@ -1431,13 +1431,13 @@
- <variant>
- <configItem>
- <name>workman</name>
-- <_description>English (Workman)</_description>
-+ <description>English (Workman)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>workman-intl</name>
-- <_description>English (Workman, international with dead keys)</_description>
-+ <description>English (Workman, international with dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1445,17 +1445,17 @@
- <layout>
- <configItem>
- <name>af</name>
-- <!-- Keyboard indicator for Afghani layouts -->
-- <_shortDescription>fa</_shortDescription>
-- <_description>Afghani</_description>
-+
-+ <shortDescription>fa</shortDescription>
-+ <description>Afghani</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>ps</name>
-- <!-- Keyboard indicator for Pashto layouts -->
-- <_shortDescription>ps</_shortDescription>
-- <_description>Pashto</_description>
-+
-+ <shortDescription>ps</shortDescription>
-+ <description>Pashto</description>
- <languageList>
- <iso639Id>pus</iso639Id>
- </languageList>
-@@ -1464,9 +1464,9 @@
- <variant>
- <configItem>
- <name>uz</name>
-- <!-- Keyboard indicator for Uzbek layouts -->
-- <_shortDescription>uz</_shortDescription>
-- <_description>Uzbek (Afghanistan)</_description>
-+
-+ <shortDescription>uz</shortDescription>
-+ <description>Uzbek (Afghanistan)</description>
- <languageList>
- <iso639Id>uzb</iso639Id>
- </languageList>
-@@ -1475,9 +1475,9 @@
- <variant>
- <configItem>
- <name>olpc-ps</name>
-- <!-- Keyboard indicator for Pashto layouts -->
-- <_shortDescription>ps</_shortDescription>
-- <_description>Pashto (Afghanistan, OLPC)</_description>
-+
-+ <shortDescription>ps</shortDescription>
-+ <description>Pashto (Afghanistan, OLPC)</description>
- <languageList>
- <iso639Id>pus</iso639Id>
- </languageList>
-@@ -1486,17 +1486,17 @@
- <variant>
- <configItem>
- <name>fa-olpc</name>
-- <!-- Keyboard indicator for Persian layouts -->
-- <_shortDescription>fa</_shortDescription>
-- <_description>Persian (Afghanistan, Dari OLPC)</_description>
-+
-+ <shortDescription>fa</shortDescription>
-+ <description>Persian (Afghanistan, Dari OLPC)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>uz-olpc</name>
-- <!-- Keyboard indicator for Uzbek layouts -->
-- <_shortDescription>uz</_shortDescription>
-- <_description>Uzbek (Afghanistan, OLPC)</_description>
-+
-+ <shortDescription>uz</shortDescription>
-+ <description>Uzbek (Afghanistan, OLPC)</description>
- <languageList>
- <iso639Id>uzb</iso639Id>
- </languageList>
-@@ -1507,9 +1507,9 @@
- <layout>
- <configItem>
- <name>ara</name>
-- <!-- Keyboard indicator for Arabic layouts -->
-- <_shortDescription>ar</_shortDescription>
-- <_description>Arabic</_description>
-+
-+ <shortDescription>ar</shortDescription>
-+ <description>Arabic</description>
- <countryList>
- <iso3166Id>AE</iso3166Id>
- <iso3166Id>BH</iso3166Id>
-@@ -1539,37 +1539,37 @@
- <variant>
- <configItem>
- <name>azerty</name>
-- <_description>Arabic (azerty)</_description>
-+ <description>Arabic (azerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>azerty_digits</name>
-- <_description>Arabic (azerty/digits)</_description>
-+ <description>Arabic (azerty/digits)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>digits</name>
-- <_description>Arabic (digits)</_description>
-+ <description>Arabic (digits)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>Arabic (qwerty)</_description>
-+ <description>Arabic (qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty_digits</name>
-- <_description>Arabic (qwerty/digits)</_description>
-+ <description>Arabic (qwerty/digits)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>buckwalter</name>
-- <_description>Arabic (Buckwalter)</_description>
-+ <description>Arabic (Buckwalter)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1577,9 +1577,9 @@
- <layout>
- <configItem>
- <name>al</name>
-- <!-- Keyboard indicator for Albanian layouts -->
-- <_shortDescription>sq</_shortDescription>
-- <_description>Albanian</_description>
-+
-+ <shortDescription>sq</shortDescription>
-+ <description>Albanian</description>
- <languageList>
- <iso639Id>alb</iso639Id>
- </languageList>
-@@ -1589,9 +1589,9 @@
- <layout>
- <configItem>
- <name>am</name>
-- <!-- Keyboard indicator for Armenian layouts -->
-- <_shortDescription>hy</_shortDescription>
-- <_description>Armenian</_description>
-+
-+ <shortDescription>hy</shortDescription>
-+ <description>Armenian</description>
- <languageList>
- <iso639Id>hye</iso639Id>
- </languageList>
-@@ -1600,31 +1600,31 @@
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Armenian (phonetic)</_description>
-+ <description>Armenian (phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>phonetic-alt</name>
-- <_description>Armenian (alternative phonetic)</_description>
-+ <description>Armenian (alternative phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>eastern</name>
-- <_description>Armenian (eastern)</_description>
-+ <description>Armenian (eastern)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>western</name>
-- <_description>Armenian (western)</_description>
-+ <description>Armenian (western)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>eastern-alt</name>
-- <_description>Armenian (alternative eastern)</_description>
-+ <description>Armenian (alternative eastern)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1632,9 +1632,9 @@
- <layout>
- <configItem>
- <name>at</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Austria)</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German (Austria)</description>
- <languageList>
- <iso639Id>ger</iso639Id>
- </languageList>
-@@ -1643,19 +1643,19 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>German (Austria, eliminate dead keys)</_description>
-+ <description>German (Austria, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>German (Austria, Sun dead keys)</_description>
-+ <description>German (Austria, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>German (Austria, Macintosh)</_description>
-+ <description>German (Austria, Macintosh)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1663,9 +1663,9 @@
- <layout>
- <configItem>
- <name>az</name>
-- <!-- Keyboard indicator for Azerbaijani layouts -->
-- <_shortDescription>az</_shortDescription>
-- <_description>Azerbaijani</_description>
-+
-+ <shortDescription>az</shortDescription>
-+ <description>Azerbaijani</description>
- <languageList>
- <iso639Id>aze</iso639Id>
- </languageList>
-@@ -1674,7 +1674,7 @@
- <variant>
- <configItem>
- <name>cyrillic</name>
-- <_description>Azerbaijani (Cyrillic)</_description>
-+ <description>Azerbaijani (Cyrillic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1682,9 +1682,9 @@
- <layout>
- <configItem>
- <name>by</name>
-- <!-- Keyboard indicator for Belarusian layouts -->
-- <_shortDescription>by</_shortDescription>
-- <_description>Belarusian</_description>
-+
-+ <shortDescription>by</shortDescription>
-+ <description>Belarusian</description>
- <languageList>
- <iso639Id>bel</iso639Id>
- </languageList>
-@@ -1693,13 +1693,13 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Belarusian (legacy)</_description>
-+ <description>Belarusian (legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latin</name>
-- <_description>Belarusian (Latin)</_description>
-+ <description>Belarusian (Latin)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1707,9 +1707,9 @@
- <layout>
- <configItem>
- <name>be</name>
-- <!-- Keyboard indicator for Belgian layouts -->
-- <_shortDescription>be</_shortDescription>
-- <_description>Belgian</_description>
-+
-+ <shortDescription>be</shortDescription>
-+ <description>Belgian</description>
- <languageList><iso639Id>ger</iso639Id>
- <iso639Id>nld</iso639Id>
- <iso639Id>fra</iso639Id></languageList>
-@@ -1718,43 +1718,43 @@
- <variant>
- <configItem>
- <name>oss</name>
-- <_description>Belgian (alternative)</_description>
-+ <description>Belgian (alternative)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss_latin9</name>
-- <_description>Belgian (alternative, Latin-9 only)</_description>
-+ <description>Belgian (alternative, Latin-9 only)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss_sundeadkeys</name>
-- <_description>Belgian (alternative, Sun dead keys)</_description>
-+ <description>Belgian (alternative, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>iso-alternate</name>
-- <_description>Belgian (ISO alternate)</_description>
-+ <description>Belgian (ISO alternate)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Belgian (eliminate dead keys)</_description>
-+ <description>Belgian (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Belgian (Sun dead keys)</_description>
-+ <description>Belgian (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>wang</name>
-- <_description>Belgian (Wang model 724 azerty)</_description>
-+ <description>Belgian (Wang model 724 azerty)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1762,9 +1762,9 @@
- <layout>
- <configItem>
- <name>bd</name>
-- <!-- Keyboard indicator for Bangla layouts -->
-- <_shortDescription>bn</_shortDescription>
-- <_description>Bangla</_description>
-+
-+ <shortDescription>bn</shortDescription>
-+ <description>Bangla</description>
- <languageList>
- <iso639Id>ben</iso639Id>
- </languageList>
-@@ -1773,7 +1773,7 @@
- <variant>
- <configItem>
- <name>probhat</name>
-- <_description>Bangla (Probhat)</_description>
-+ <description>Bangla (Probhat)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1781,17 +1781,17 @@
- <layout>
- <configItem>
- <name>in</name>
-- <!-- Keyboard indicator for Indian layouts -->
-- <_shortDescription>in</_shortDescription>
-- <_description>Indian</_description>
-+
-+ <shortDescription>in</shortDescription>
-+ <description>Indian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>ben</name>
-- <!-- Keyboard indicator for Bangla layouts -->
-- <_shortDescription>bn</_shortDescription>
-- <_description>Bangla (India)</_description>
-+
-+ <shortDescription>bn</shortDescription>
-+ <description>Bangla (India)</description>
- <languageList>
- <iso639Id>ben</iso639Id>
- </languageList>
-@@ -1800,9 +1800,9 @@
- <variant>
- <configItem>
- <name>ben_probhat</name>
-- <!-- Keyboard indicator for Bangla layouts -->
-- <_shortDescription>bn</_shortDescription>
-- <_description>Bangla (India, Probhat)</_description>
-+
-+ <shortDescription>bn</shortDescription>
-+ <description>Bangla (India, Probhat)</description>
- <languageList>
- <iso639Id>ben</iso639Id>
- </languageList>
-@@ -1811,28 +1811,28 @@
- <variant>
- <configItem>
- <name>ben_baishakhi</name>
-- <_description>Bangla (India, Baishakhi)</_description>
-+ <description>Bangla (India, Baishakhi)</description>
- <languageList><iso639Id>ben</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ben_bornona</name>
-- <_description>Bangla (India, Bornona)</_description>
-+ <description>Bangla (India, Bornona)</description>
- <languageList><iso639Id>ben</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ben_gitanjali</name>
-- <_description>Bangla (India, Uni Gitanjali)</_description>
-+ <description>Bangla (India, Uni Gitanjali)</description>
- <languageList><iso639Id>ben</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ben_inscript</name>
-- <_description>Bangla (India, Baishakhi Inscript)</_description>
-+ <description>Bangla (India, Baishakhi Inscript)</description>
- <languageList><iso639Id>ben</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -1846,9 +1846,9 @@
- <variant>
- <configItem>
- <name>guj</name>
-- <!-- Keyboard indicator for Gujarati layouts -->
-- <_shortDescription>gu</_shortDescription>
-- <_description>Gujarati</_description>
-+
-+ <shortDescription>gu</shortDescription>
-+ <description>Gujarati</description>
- <languageList>
- <iso639Id>guj</iso639Id>
- </languageList>
-@@ -1857,9 +1857,9 @@
- <variant>
- <configItem>
- <name>guru</name>
-- <!-- Keyboard indicator for Punjabi layouts -->
-- <_shortDescription>pa</_shortDescription>
-- <_description>Punjabi (Gurmukhi)</_description>
-+
-+ <shortDescription>pa</shortDescription>
-+ <description>Punjabi (Gurmukhi)</description>
- <languageList>
- <iso639Id>pan</iso639Id>
- </languageList>
-@@ -1868,9 +1868,9 @@
- <variant>
- <configItem>
- <name>jhelum</name>
-- <!-- Keyboard indicator for Punjabi layouts -->
-- <_shortDescription>pa</_shortDescription>
-- <_description>Punjabi (Gurmukhi Jhelum)</_description>
-+
-+ <shortDescription>pa</shortDescription>
-+ <description>Punjabi (Gurmukhi Jhelum)</description>
- <languageList>
- <iso639Id>pan</iso639Id>
- </languageList>
-@@ -1879,9 +1879,9 @@
- <variant>
- <configItem>
- <name>kan</name>
-- <!-- Keyboard indicator for Kannada layouts -->
-- <_shortDescription>kn</_shortDescription>
-- <_description>Kannada</_description>
-+
-+ <shortDescription>kn</shortDescription>
-+ <description>Kannada</description>
- <languageList>
- <iso639Id>kan</iso639Id>
- </languageList>
-@@ -1890,9 +1890,9 @@
- <variant>
- <configItem>
- <name>kan-kagapa</name>
-- <!-- Keyboard indicator for Kannada layouts -->
-- <_shortDescription>kn</_shortDescription>
-- <_description>Kannada (KaGaPa phonetic)</_description>
-+
-+ <shortDescription>kn</shortDescription>
-+ <description>Kannada (KaGaPa phonetic)</description>
- <languageList>
- <iso639Id>kan</iso639Id>
- </languageList>
-@@ -1901,9 +1901,9 @@
- <variant>
- <configItem>
- <name>mal</name>
-- <!-- Keyboard indicator for Malayalam layouts -->
-- <_shortDescription>ml</_shortDescription>
-- <_description>Malayalam</_description>
-+
-+ <shortDescription>ml</shortDescription>
-+ <description>Malayalam</description>
- <languageList>
- <iso639Id>mal</iso639Id>
- </languageList>
-@@ -1912,9 +1912,9 @@
- <variant>
- <configItem>
- <name>mal_lalitha</name>
-- <!-- Keyboard indicator for Malayalam layouts -->
-- <_shortDescription>ml</_shortDescription>
-- <_description>Malayalam (Lalitha)</_description>
-+
-+ <shortDescription>ml</shortDescription>
-+ <description>Malayalam (Lalitha)</description>
- <languageList>
- <iso639Id>mal</iso639Id>
- </languageList>
-@@ -1923,18 +1923,18 @@
- <variant>
- <configItem>
- <name>mal_enhanced</name>
-- <!-- Keyboard indicator for Malayalam layouts -->
-- <_shortDescription>ml</_shortDescription>
-- <_description>Malayalam (enhanced Inscript with Rupee Sign)</_description>
-+
-+ <shortDescription>ml</shortDescription>
-+ <description>Malayalam (enhanced Inscript with Rupee Sign)</description>
- <languageList><iso639Id>mal</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ori</name>
-- <!-- Keyboard indicator for Oriya layouts -->
-- <_shortDescription>or</_shortDescription>
-- <_description>Oriya</_description>
-+
-+ <shortDescription>or</shortDescription>
-+ <description>Oriya</description>
- <languageList>
- <iso639Id>ori</iso639Id>
- </languageList>
-@@ -1943,9 +1943,9 @@
- <variant>
- <configItem>
- <name>tam_unicode</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil (Unicode)</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil (Unicode)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -1954,9 +1954,9 @@
- <variant>
- <configItem>
- <name>tam_keyboard_with_numerals</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil (keyboard with numerals)</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil (keyboard with numerals)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -1965,9 +1965,9 @@
- <variant>
- <configItem>
- <name>tam_TAB</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil (TAB typewriter)</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil (TAB typewriter)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -1976,9 +1976,9 @@
- <variant>
- <configItem>
- <name>tam_TSCII</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil (TSCII typewriter)</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil (TSCII typewriter)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -1987,9 +1987,9 @@
- <variant>
- <configItem>
- <name>tam</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -1998,9 +1998,9 @@
- <variant>
- <configItem>
- <name>tel</name>
-- <!-- Keyboard indicator for Telugu layouts -->
-- <_shortDescription>te</_shortDescription>
-- <_description>Telugu</_description>
-+
-+ <shortDescription>te</shortDescription>
-+ <description>Telugu</description>
- <languageList>
- <iso639Id>tel</iso639Id>
- </languageList>
-@@ -2009,9 +2009,9 @@
- <variant>
- <configItem>
- <name>tel-kagapa</name>
-- <!-- Keyboard indicator for Telugu layouts -->
-- <_shortDescription>te</_shortDescription>
-- <_description>Telugu (KaGaPa phonetic)</_description>
-+
-+ <shortDescription>te</shortDescription>
-+ <description>Telugu (KaGaPa phonetic)</description>
- <languageList>
- <iso639Id>tel</iso639Id>
- </languageList>
-@@ -2020,9 +2020,9 @@
- <variant>
- <configItem>
- <name>urd-phonetic</name>
-- <!-- Keyboard indicator for Urdu layouts -->
-- <_shortDescription>ur</_shortDescription>
-- <_description>Urdu (phonetic)</_description>
-+
-+ <shortDescription>ur</shortDescription>
-+ <description>Urdu (phonetic)</description>
- <languageList>
- <iso639Id>urd</iso639Id>
- </languageList>
-@@ -2031,9 +2031,9 @@
- <variant>
- <configItem>
- <name>urd-phonetic3</name>
-- <!-- Keyboard indicator for Urdu layouts -->
-- <_shortDescription>ur</_shortDescription>
-- <_description>Urdu (alternative phonetic)</_description>
-+
-+ <shortDescription>ur</shortDescription>
-+ <description>Urdu (alternative phonetic)</description>
- <languageList>
- <iso639Id>urd</iso639Id>
- </languageList>
-@@ -2042,9 +2042,9 @@
- <variant>
- <configItem>
- <name>urd-winkeys</name>
-- <!-- Keyboard indicator for Urdu layouts -->
-- <_shortDescription>ur</_shortDescription>
-- <_description>Urdu (WinKeys)</_description>
-+
-+ <shortDescription>ur</shortDescription>
-+ <description>Urdu (WinKeys)</description>
- <languageList>
- <iso639Id>urd</iso639Id>
- </languageList>
-@@ -2053,9 +2053,9 @@
- <variant>
- <configItem>
- <name>bolnagri</name>
-- <!-- Keyboard indicator for Hindi layouts -->
-- <_shortDescription>hi</_shortDescription>
-- <_description>Hindi (Bolnagri)</_description>
-+
-+ <shortDescription>hi</shortDescription>
-+ <description>Hindi (Bolnagri)</description>
- <languageList>
- <iso639Id>hin</iso639Id>
- </languageList>
-@@ -2064,9 +2064,9 @@
- <variant>
- <configItem>
- <name>hin-wx</name>
-- <!-- Keyboard indicator for Hindi layouts -->
-- <_shortDescription>hi</_shortDescription>
-- <_description>Hindi (Wx)</_description>
-+
-+ <shortDescription>hi</shortDescription>
-+ <description>Hindi (Wx)</description>
- <languageList>
- <iso639Id>hin</iso639Id>
- </languageList>
-@@ -2075,9 +2075,9 @@
- <variant>
- <configItem>
- <name>hin-kagapa</name>
-- <!-- Keyboard indicator for Hindi layouts -->
-- <_shortDescription>hi</_shortDescription>
-- <_description>Hindi (KaGaPa phonetic)</_description>
-+
-+ <shortDescription>hi</shortDescription>
-+ <description>Hindi (KaGaPa phonetic)</description>
- <languageList>
- <iso639Id>hin</iso639Id>
- </languageList>
-@@ -2086,9 +2086,9 @@
- <variant>
- <configItem>
- <name>san-kagapa</name>
-- <!-- Keyboard indicator for Sanskrit layouts -->
-- <_shortDescription>sa</_shortDescription>
-- <_description>Sanskrit (KaGaPa phonetic)</_description>
-+
-+ <shortDescription>sa</shortDescription>
-+ <description>Sanskrit (KaGaPa phonetic)</description>
- <languageList>
- <iso639Id>san</iso639Id>
- </languageList>
-@@ -2097,9 +2097,9 @@
- <variant>
- <configItem>
- <name>mar-kagapa</name>
-- <!-- Keyboard indicator for Marathi layouts -->
-- <_shortDescription>mr</_shortDescription>
-- <_description>Marathi (KaGaPa phonetic)</_description>
-+
-+ <shortDescription>mr</shortDescription>
-+ <description>Marathi (KaGaPa phonetic)</description>
- <languageList>
- <iso639Id>mar</iso639Id>
- </languageList>
-@@ -2108,9 +2108,9 @@
- <variant>
- <configItem>
- <name>eng</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (India, with RupeeSign)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (India, with RupeeSign)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -2121,9 +2121,9 @@
- <layout>
- <configItem>
- <name>ba</name>
-- <!-- Keyboard indicator for Bosnian layouts -->
-- <_shortDescription>bs</_shortDescription>
-- <_description>Bosnian</_description>
-+
-+ <shortDescription>bs</shortDescription>
-+ <description>Bosnian</description>
- <languageList>
- <iso639Id>bos</iso639Id>
- </languageList>
-@@ -2132,25 +2132,25 @@
- <variant>
- <configItem>
- <name>alternatequotes</name>
-- <_description>Bosnian (use guillemets for quotes)</_description>
-+ <description>Bosnian (use guillemets for quotes)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>unicode</name>
-- <_description>Bosnian (use Bosnian digraphs)</_description>
-+ <description>Bosnian (use Bosnian digraphs)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>unicodeus</name>
-- <_description>Bosnian (US keyboard with Bosnian digraphs)</_description>
-+ <description>Bosnian (US keyboard with Bosnian digraphs)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Bosnian (US keyboard with Bosnian letters)</_description>
-+ <description>Bosnian (US keyboard with Bosnian letters)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2158,9 +2158,9 @@
- <layout>
- <configItem>
- <name>br</name>
-- <!-- Keyboard indicator for Portuguese layouts -->
-- <_shortDescription>pt</_shortDescription>
-- <_description>Portuguese (Brazil)</_description>
-+
-+ <shortDescription>pt</shortDescription>
-+ <description>Portuguese (Brazil)</description>
- <languageList>
- <iso639Id>por</iso639Id>
- </languageList>
-@@ -2169,31 +2169,31 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Portuguese (Brazil, eliminate dead keys)</_description>
-+ <description>Portuguese (Brazil, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Portuguese (Brazil, Dvorak)</_description>
-+ <description>Portuguese (Brazil, Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo</name>
-- <_description>Portuguese (Brazil, Nativo)</_description>
-+ <description>Portuguese (Brazil, Nativo)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo-us</name>
-- <_description>Portuguese (Brazil, Nativo for US keyboards)</_description>
-+ <description>Portuguese (Brazil, Nativo for US keyboards)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo-epo</name>
-- <_description>Esperanto (Brazil, Nativo)</_description>
-+ <description>Esperanto (Brazil, Nativo)</description>
- <languageList>
- <iso639Id>epo</iso639Id>
- </languageList>
-@@ -2204,9 +2204,9 @@
- <layout>
- <configItem>
- <name>bg</name>
-- <!-- Keyboard indicator for Bulgarian layouts -->
-- <_shortDescription>bg</_shortDescription>
-- <_description>Bulgarian</_description>
-+
-+ <shortDescription>bg</shortDescription>
-+ <description>Bulgarian</description>
- <languageList>
- <iso639Id>bul</iso639Id>
- </languageList>
-@@ -2215,13 +2215,13 @@
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Bulgarian (traditional phonetic)</_description>
-+ <description>Bulgarian (traditional phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>bas_phonetic</name>
-- <_description>Bulgarian (new phonetic)</_description>
-+ <description>Bulgarian (new phonetic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2229,17 +2229,17 @@
- <layout>
- <configItem>
- <name>ma</name>
-- <!-- Keyboard indicator for Arabic layouts -->
-- <_shortDescription>ar</_shortDescription>
-- <_description>Arabic (Morocco)</_description>
-+
-+ <shortDescription>ar</shortDescription>
-+ <description>Arabic (Morocco)</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>french</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Morocco)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Morocco)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -2248,9 +2248,9 @@
- <variant>
- <configItem>
- <name>tifinagh</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2259,9 +2259,9 @@
- <variant>
- <configItem>
- <name>tifinagh-alt</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh alternative)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh alternative)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2270,9 +2270,9 @@
- <variant>
- <configItem>
- <name>tifinagh-alt-phonetic</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh alternative phonetic)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh alternative phonetic)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2281,9 +2281,9 @@
- <variant>
- <configItem>
- <name>tifinagh-extended</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh extended)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh extended)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2292,9 +2292,9 @@
- <variant>
- <configItem>
- <name>tifinagh-phonetic</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh phonetic)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh phonetic)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2303,9 +2303,9 @@
- <variant>
- <configItem>
- <name>tifinagh-extended-phonetic</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh extended phonetic)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh extended phonetic)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2316,23 +2316,23 @@
- <layout>
- <configItem>
- <name>cm</name>
-- <!-- Keyboard indicator for Cameroon layouts -->
-- <_shortDescription>cm</_shortDescription>
-- <_description>English (Cameroon)</_description>
-+
-+ <shortDescription>cm</shortDescription>
-+ <description>English (Cameroon)</description>
- <languageList><iso639Id>eng</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>french</name>
-- <_description>French (Cameroon)</_description>
-+ <description>French (Cameroon)</description>
- <languageList><iso639Id>fra</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>Cameroon Multilingual (qwerty)</_description>
-+ <description>Cameroon Multilingual (qwerty)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- <iso639Id>bas</iso639Id>
-@@ -2369,7 +2369,7 @@
- <variant>
- <configItem>
- <name>azerty</name>
-- <_description>Cameroon Multilingual (azerty)</_description>
-+ <description>Cameroon Multilingual (azerty)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- <iso639Id>bas</iso639Id>
-@@ -2406,7 +2406,7 @@
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Cameroon Multilingual (Dvorak)</_description>
-+ <description>Cameroon Multilingual (Dvorak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2414,9 +2414,9 @@
- <layout>
- <configItem>
- <name>mm</name>
-- <!-- Keyboard indicator for Burmese layouts -->
-- <_shortDescription>my</_shortDescription>
-- <_description>Burmese</_description>
-+
-+ <shortDescription>my</shortDescription>
-+ <description>Burmese</description>
- <languageList>
- <iso639Id>mya</iso639Id>
- </languageList>
-@@ -2426,9 +2426,9 @@
- <layout>
- <configItem>
- <name>ca</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Canada)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Canada)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -2437,43 +2437,43 @@
- <variant>
- <configItem>
- <name>fr-dvorak</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Canada, Dvorak)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Canada, Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>fr-legacy</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Canada, legacy)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Canada, legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>multix</name>
-- <_description>Canadian Multilingual</_description>
-+ <description>Canadian Multilingual</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>multi</name>
-- <_description>Canadian Multilingual (first part)</_description>
-+ <description>Canadian Multilingual (first part)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>multi-2gr</name>
-- <_description>Canadian Multilingual (second part)</_description>
-+ <description>Canadian Multilingual (second part)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ike</name>
-- <!-- Keyboard indicator for Inuktikut layouts -->
-- <_shortDescription>ike</_shortDescription>
-- <_description>Inuktitut</_description>
-+
-+ <shortDescription>ike</shortDescription>
-+ <description>Inuktitut</description>
- <languageList>
- <iso639Id>iku</iso639Id>
- </languageList>
-@@ -2482,9 +2482,9 @@
- <variant>
- <configItem>
- <name>eng</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (Canada)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (Canada)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -2495,9 +2495,9 @@
- <layout>
- <configItem>
- <name>cd</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Democratic Republic of the Congo)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Democratic Republic of the Congo)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -2507,9 +2507,9 @@
- <layout>
- <configItem>
- <name>cn</name>
-- <!-- Keyboard indicator for Chinese layouts -->
-- <_shortDescription>zh</_shortDescription>
-- <_description>Chinese</_description>
-+
-+ <shortDescription>zh</shortDescription>
-+ <description>Chinese</description>
- <languageList>
- <iso639Id>chi</iso639Id>
- </languageList>
-@@ -2518,7 +2518,7 @@
- <variant>
- <configItem>
- <name>tib</name>
-- <_description>Tibetan</_description>
-+ <description>Tibetan</description>
- <languageList>
- <iso639Id>tib</iso639Id>
- </languageList>
-@@ -2527,7 +2527,7 @@
- <variant>
- <configItem>
- <name>tib_asciinum</name>
-- <_description>Tibetan (with ASCII numerals)</_description>
-+ <description>Tibetan (with ASCII numerals)</description>
- <languageList>
- <iso639Id>tib</iso639Id>
- </languageList>
-@@ -2536,8 +2536,8 @@
- <variant>
- <configItem>
- <name>ug</name>
-- <_shortDescription>ug</_shortDescription>
-- <_description>Uyghur</_description>
-+ <shortDescription>ug</shortDescription>
-+ <description>Uyghur</description>
- <languageList>
- <iso639Id>ug</iso639Id>
- </languageList>
-@@ -2548,9 +2548,9 @@
- <layout>
- <configItem>
- <name>hr</name>
-- <!-- Keyboard indicator for Croatian layouts -->
-- <_shortDescription>hr</_shortDescription>
-- <_description>Croatian</_description>
-+
-+ <shortDescription>hr</shortDescription>
-+ <description>Croatian</description>
- <languageList>
- <iso639Id>hrv</iso639Id>
- </languageList>
-@@ -2559,25 +2559,25 @@
- <variant>
- <configItem>
- <name>alternatequotes</name>
-- <_description>Croatian (use guillemets for quotes)</_description>
-+ <description>Croatian (use guillemets for quotes)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>unicode</name>
-- <_description>Croatian (use Croatian digraphs)</_description>
-+ <description>Croatian (use Croatian digraphs)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>unicodeus</name>
-- <_description>Croatian (US keyboard with Croatian digraphs)</_description>
-+ <description>Croatian (US keyboard with Croatian digraphs)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Croatian (US keyboard with Croatian letters)</_description>
-+ <description>Croatian (US keyboard with Croatian letters)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2585,9 +2585,9 @@
- <layout>
- <configItem>
- <name>cz</name>
-- <!-- Keyboard indicator for Chech layouts -->
-- <_shortDescription>cs</_shortDescription>
-- <_description>Czech</_description>
-+
-+ <shortDescription>cs</shortDescription>
-+ <description>Czech</description>
- <languageList>
- <iso639Id>cze</iso639Id>
- </languageList>
-@@ -2596,31 +2596,31 @@
- <variant>
- <configItem>
- <name>bksl</name>
-- <_description>Czech (with &lt;\|&gt; key)</_description>
-+ <description>Czech (with &lt;\|&gt; key)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>Czech (qwerty)</_description>
-+ <description>Czech (qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty_bksl</name>
-- <_description>Czech (qwerty, extended Backslash)</_description>
-+ <description>Czech (qwerty, extended Backslash)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ucw</name>
-- <_description>Czech (UCW layout, accented letters only)</_description>
-+ <description>Czech (UCW layout, accented letters only)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-ucw</name>
-- <_description>Czech (US Dvorak with CZ UCW support)</_description>
-+ <description>Czech (US Dvorak with CZ UCW support)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2628,9 +2628,9 @@
- <layout>
- <configItem>
- <name>dk</name>
-- <!-- Keyboard indicator for Danish layouts -->
-- <_shortDescription>da</_shortDescription>
-- <_description>Danish</_description>
-+
-+ <shortDescription>da</shortDescription>
-+ <description>Danish</description>
- <languageList>
- <iso639Id>dan</iso639Id>
- </languageList>
-@@ -2639,25 +2639,25 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Danish (eliminate dead keys)</_description>
-+ <description>Danish (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Danish (Macintosh)</_description>
-+ <description>Danish (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_nodeadkeys</name>
-- <_description>Danish (Macintosh, eliminate dead keys)</_description>
-+ <description>Danish (Macintosh, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Danish (Dvorak)</_description>
-+ <description>Danish (Dvorak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2665,9 +2665,9 @@
- <layout>
- <configItem>
- <name>nl</name>
-- <!-- Keyboard indicator for Dutch layouts -->
-- <_shortDescription>nl</_shortDescription>
-- <_description>Dutch</_description>
-+
-+ <shortDescription>nl</shortDescription>
-+ <description>Dutch</description>
- <languageList>
- <iso639Id>nld</iso639Id>
- </languageList>
-@@ -2676,19 +2676,19 @@
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Dutch (Sun dead keys)</_description>
-+ <description>Dutch (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Dutch (Macintosh)</_description>
-+ <description>Dutch (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>std</name>
-- <_description>Dutch (standard)</_description>
-+ <description>Dutch (standard)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2696,9 +2696,9 @@
- <layout>
- <configItem>
- <name>bt</name>
-- <!-- Keyboard indicator for Dzongkha layouts -->
-- <_shortDescription>dz</_shortDescription>
-- <_description>Dzongkha</_description>
-+
-+ <shortDescription>dz</shortDescription>
-+ <description>Dzongkha</description>
- <languageList>
- <iso639Id>dzo</iso639Id>
- </languageList>
-@@ -2707,9 +2707,9 @@
- <layout>
- <configItem>
- <name>ee</name>
-- <!-- Keyboard indicator for Estonian layouts -->
-- <_shortDescription>et</_shortDescription>
-- <_description>Estonian</_description>
-+
-+ <shortDescription>et</shortDescription>
-+ <description>Estonian</description>
- <languageList>
- <iso639Id>est</iso639Id>
- </languageList>
-@@ -2718,19 +2718,19 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Estonian (eliminate dead keys)</_description>
-+ <description>Estonian (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Estonian (Dvorak)</_description>
-+ <description>Estonian (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Estonian (US keyboard with Estonian letters)</_description>
-+ <description>Estonian (US keyboard with Estonian letters)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2738,9 +2738,9 @@
- <layout>
- <configItem>
- <name>ir</name>
-- <!-- Keyboard indicator for Persian layouts -->
-- <_shortDescription>fa</_shortDescription>
-- <_description>Persian</_description>
-+
-+ <shortDescription>fa</shortDescription>
-+ <description>Persian</description>
- <languageList>
- <iso639Id>per</iso639Id>
- </languageList>
-@@ -2749,15 +2749,15 @@
- <variant>
- <configItem>
- <name>pes_keypad</name>
-- <_description>Persian (with Persian Keypad)</_description>
-+ <description>Persian (with Persian Keypad)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ku</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iran, Latin Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iran, Latin Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2766,9 +2766,9 @@
- <variant>
- <configItem>
- <name>ku_f</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iran, F)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iran, F)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2777,9 +2777,9 @@
- <variant>
- <configItem>
- <name>ku_alt</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iran, Latin Alt-Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iran, Latin Alt-Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2788,9 +2788,9 @@
- <variant>
- <configItem>
- <name>ku_ara</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iran, Arabic-Latin)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iran, Arabic-Latin)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2801,9 +2801,9 @@
- <layout>
- <configItem>
- <name>iq</name>
-- <!-- Keyboard indicator for Iraqi layouts -->
-- <_shortDescription>ar</_shortDescription>
-- <_description>Iraqi</_description>
-+
-+ <shortDescription>ar</shortDescription>
-+ <description>Iraqi</description>
- <languageList><iso639Id>ara</iso639Id>
- <iso639Id>kur</iso639Id></languageList>
- </configItem>
-@@ -2811,9 +2811,9 @@
- <variant>
- <configItem>
- <name>ku</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iraq, Latin Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iraq, Latin Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2822,9 +2822,9 @@
- <variant>
- <configItem>
- <name>ku_f</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iraq, F)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iraq, F)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2833,9 +2833,9 @@
- <variant>
- <configItem>
- <name>ku_alt</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iraq, Latin Alt-Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iraq, Latin Alt-Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2844,9 +2844,9 @@
- <variant>
- <configItem>
- <name>ku_ara</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iraq, Arabic-Latin)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iraq, Arabic-Latin)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2857,9 +2857,9 @@
- <layout>
- <configItem>
- <name>fo</name>
-- <!-- Keyboard indicator for Faroese layouts -->
-- <_shortDescription>fo</_shortDescription>
-- <_description>Faroese</_description>
-+
-+ <shortDescription>fo</shortDescription>
-+ <description>Faroese</description>
- <languageList>
- <iso639Id>fao</iso639Id>
- </languageList>
-@@ -2868,7 +2868,7 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Faroese (eliminate dead keys)</_description>
-+ <description>Faroese (eliminate dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2876,9 +2876,9 @@
- <layout>
- <configItem>
- <name>fi</name>
-- <!-- Keyboard indicator for Finnish layouts -->
-- <_shortDescription>fi</_shortDescription>
-- <_description>Finnish</_description>
-+
-+ <shortDescription>fi</shortDescription>
-+ <description>Finnish</description>
- <languageList>
- <iso639Id>fin</iso639Id>
- </languageList>
-@@ -2887,26 +2887,26 @@
- <variant>
- <configItem>
- <name>classic</name>
-- <_description>Finnish (classic)</_description>
-+ <description>Finnish (classic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Finnish (classic, eliminate dead keys)</_description>
-+ <description>Finnish (classic, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>smi</name>
-- <_description>Northern Saami (Finland)</_description>
-+ <description>Northern Saami (Finland)</description>
- <languageList><iso639Id>sme</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Finnish (Macintosh)</_description>
-+ <description>Finnish (Macintosh)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2914,9 +2914,9 @@
- <layout>
- <configItem>
- <name>fr</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -2925,91 +2925,91 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>French (eliminate dead keys)</_description>
-+ <description>French (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>French (Sun dead keys)</_description>
-+ <description>French (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss</name>
-- <_description>French (alternative)</_description>
-+ <description>French (alternative)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss_latin9</name>
-- <_description>French (alternative, Latin-9 only)</_description>
-+ <description>French (alternative, Latin-9 only)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss_nodeadkeys</name>
-- <_description>French (alternative, eliminate dead keys)</_description>
-+ <description>French (alternative, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss_sundeadkeys</name>
-- <_description>French (alternative, Sun dead keys)</_description>
-+ <description>French (alternative, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latin9</name>
-- <_description>French (legacy, alternative)</_description>
-+ <description>French (legacy, alternative)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latin9_nodeadkeys</name>
-- <_description>French (legacy, alternative, eliminate dead keys)</_description>
-+ <description>French (legacy, alternative, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latin9_sundeadkeys</name>
-- <_description>French (legacy, alternative, Sun dead keys)</_description>
-+ <description>French (legacy, alternative, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>bepo</name>
-- <_description>French (Bepo, ergonomic, Dvorak way)</_description>
-+ <description>French (Bepo, ergonomic, Dvorak way)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>bepo_latin9</name>
-- <_description>French (Bepo, ergonomic, Dvorak way, Latin-9 only)</_description>
-+ <description>French (Bepo, ergonomic, Dvorak way, Latin-9 only)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>French (Dvorak)</_description>
-+ <description>French (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>French (Macintosh)</_description>
-+ <description>French (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>bre</name>
-- <_description>French (Breton)</_description>
-+ <description>French (Breton)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oci</name>
-- <_description>Occitan</_description>
-+ <description>Occitan</description>
- <languageList>
- <iso639Id>oci</iso639Id>
- </languageList>
-@@ -3018,7 +3018,7 @@
- <variant>
- <configItem>
- <name>geo</name>
-- <_description>Georgian (France, AZERTY Tskapo)</_description>
-+ <description>Georgian (France, AZERTY Tskapo)</description>
- <languageList>
- <iso639Id>geo</iso639Id>
- </languageList>
-@@ -3029,9 +3029,9 @@
- <layout>
- <configItem>
- <name>gh</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (Ghana)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (Ghana)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -3040,15 +3040,15 @@
- <variant>
- <configItem>
- <name>generic</name>
-- <_description>English (Ghana, multilingual)</_description>
-+ <description>English (Ghana, multilingual)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>akan</name>
-- <!-- Keyboard indicator for Akan layouts -->
-- <_shortDescription>ak</_shortDescription>
-- <_description>Akan</_description>
-+
-+ <shortDescription>ak</shortDescription>
-+ <description>Akan</description>
- <languageList>
- <iso639Id>aka</iso639Id>
- </languageList>
-@@ -3057,9 +3057,9 @@
- <variant>
- <configItem>
- <name>ewe</name>
-- <!-- Keyboard indicator for Ewe layouts -->
-- <_shortDescription>ee</_shortDescription>
-- <_description>Ewe</_description>
-+
-+ <shortDescription>ee</shortDescription>
-+ <description>Ewe</description>
- <languageList>
- <iso639Id>ewe</iso639Id>
- </languageList>
-@@ -3068,9 +3068,9 @@
- <variant>
- <configItem>
- <name>fula</name>
-- <!-- Keyboard indicator for Fula layouts -->
-- <_shortDescription>ff</_shortDescription>
-- <_description>Fula</_description>
-+
-+ <shortDescription>ff</shortDescription>
-+ <description>Fula</description>
- <languageList>
- <iso639Id>ful</iso639Id>
- </languageList>
-@@ -3079,9 +3079,9 @@
- <variant>
- <configItem>
- <name>ga</name>
-- <!-- Keyboard indicator for Ga layouts -->
-- <_shortDescription>gaa</_shortDescription>
-- <_description>Ga</_description>
-+
-+ <shortDescription>gaa</shortDescription>
-+ <description>Ga</description>
- <languageList>
- <iso639Id>gaa</iso639Id>
- </languageList>
-@@ -3090,9 +3090,9 @@
- <variant>
- <configItem>
- <name>hausa</name>
-- <!-- Keyboard indicator for Hausa layouts -->
-- <_shortDescription>ha</_shortDescription>
-- <_description>Hausa</_description>
-+
-+ <shortDescription>ha</shortDescription>
-+ <description>Hausa</description>
- <languageList>
- <iso639Id>hau</iso639Id>
- </languageList>
-@@ -3101,9 +3101,9 @@
- <variant>
- <configItem>
- <name>avn</name>
-- <!-- Keyboard indicator for Avatime layouts -->
-- <_shortDescription>avn</_shortDescription>
-- <_description>Avatime</_description>
-+
-+ <shortDescription>avn</shortDescription>
-+ <description>Avatime</description>
- <languageList>
- <iso639Id>avn</iso639Id>
- </languageList>
-@@ -3112,7 +3112,7 @@
- <variant>
- <configItem>
- <name>gillbt</name>
-- <_description>English (Ghana, GILLBT)</_description>
-+ <description>English (Ghana, GILLBT)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3120,9 +3120,9 @@
- <layout>
- <configItem>
- <name>gn</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Guinea)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Guinea)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -3132,9 +3132,9 @@
- <layout>
- <configItem>
- <name>ge</name>
-- <!-- Keyboard indicator for Georgian layouts -->
-- <_shortDescription>ka</_shortDescription>
-- <_description>Georgian</_description>
-+
-+ <shortDescription>ka</shortDescription>
-+ <description>Georgian</description>
- <languageList>
- <iso639Id>geo</iso639Id>
- </languageList>
-@@ -3143,21 +3143,21 @@
- <variant>
- <configItem>
- <name>ergonomic</name>
-- <_description>Georgian (ergonomic)</_description>
-+ <description>Georgian (ergonomic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mess</name>
-- <_description>Georgian (MESS)</_description>
-+ <description>Georgian (MESS)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ru</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Georgia)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Georgia)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -3166,7 +3166,7 @@
- <variant>
- <configItem>
- <name>os</name>
-- <_description>Ossetian (Georgia)</_description>
-+ <description>Ossetian (Georgia)</description>
- <languageList>
- <iso639Id>oss</iso639Id>
- </languageList>
-@@ -3177,9 +3177,9 @@
- <layout>
- <configItem>
- <name>de</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German</description>
- <languageList>
- <iso639Id>ger</iso639Id>
- </languageList>
-@@ -3188,75 +3188,75 @@
- <variant>
- <configItem>
- <name>deadacute</name>
-- <_description>German (dead acute)</_description>
-+ <description>German (dead acute)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>deadgraveacute</name>
-- <_description>German (dead grave acute)</_description>
-+ <description>German (dead grave acute)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>German (eliminate dead keys)</_description>
-+ <description>German (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>T3</name>
-- <_description>German (T3)</_description>
-+ <description>German (T3)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ro</name>
-- <_description>Romanian (Germany)</_description>
-+ <description>Romanian (Germany)</description>
- <languageList><iso639Id>rum</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ro_nodeadkeys</name>
-- <_description>Romanian (Germany, eliminate dead keys)</_description>
-+ <description>Romanian (Germany, eliminate dead keys)</description>
- <languageList><iso639Id>rum</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>German (Dvorak)</_description>
-+ <description>German (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>German (Sun dead keys)</_description>
-+ <description>German (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>neo</name>
-- <_description>German (Neo 2)</_description>
-+ <description>German (Neo 2)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>German (Macintosh)</_description>
-+ <description>German (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_nodeadkeys</name>
-- <_description>German (Macintosh, eliminate dead keys)</_description>
-+ <description>German (Macintosh, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dsb</name>
-- <_description>Lower Sorbian</_description>
-+ <description>Lower Sorbian</description>
- <languageList>
- <iso639Id>dsb</iso639Id>
- </languageList>
-@@ -3265,7 +3265,7 @@
- <variant>
- <configItem>
- <name>dsb_qwertz</name>
-- <_description>Lower Sorbian (qwertz)</_description>
-+ <description>Lower Sorbian (qwertz)</description>
- <languageList>
- <iso639Id>dsb</iso639Id>
- </languageList>
-@@ -3274,15 +3274,15 @@
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>German (qwerty)</_description>
-+ <description>German (qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ru</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Germany, phonetic)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Germany, phonetic)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -3291,7 +3291,7 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>German (legacy)</_description>
-+ <description>German (legacy)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3299,9 +3299,9 @@
- <layout>
- <configItem>
- <name>gr</name>
-- <!-- Keyboard indicator for Greek layouts -->
-- <_shortDescription>gr</_shortDescription>
-- <_description>Greek</_description>
-+
-+ <shortDescription>gr</shortDescription>
-+ <description>Greek</description>
- <languageList>
- <iso639Id>gre</iso639Id>
- </languageList>
-@@ -3310,25 +3310,25 @@
- <variant>
- <configItem>
- <name>simple</name>
-- <_description>Greek (simple)</_description>
-+ <description>Greek (simple)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>extended</name>
-- <_description>Greek (extended)</_description>
-+ <description>Greek (extended)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Greek (eliminate dead keys)</_description>
-+ <description>Greek (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>polytonic</name>
-- <_description>Greek (polytonic)</_description>
-+ <description>Greek (polytonic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3336,9 +3336,9 @@
- <layout>
- <configItem>
- <name>hu</name>
-- <!-- Keyboard indicator for Hungarian layouts -->
-- <_shortDescription>hu</_shortDescription>
-- <_description>Hungarian</_description>
-+
-+ <shortDescription>hu</shortDescription>
-+ <description>Hungarian</description>
- <languageList>
- <iso639Id>hun</iso639Id>
- </languageList>
-@@ -3347,115 +3347,115 @@
- <variant>
- <configItem>
- <name>standard</name>
-- <_description>Hungarian (standard)</_description>
-+ <description>Hungarian (standard)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Hungarian (eliminate dead keys)</_description>
-+ <description>Hungarian (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>Hungarian (qwerty)</_description>
-+ <description>Hungarian (qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwertz_comma_dead</name>
-- <_description>Hungarian (101/qwertz/comma/dead keys)</_description>
-+ <description>Hungarian (101/qwertz/comma/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwertz_comma_nodead</name>
-- <_description>Hungarian (101/qwertz/comma/eliminate dead keys)</_description>
-+ <description>Hungarian (101/qwertz/comma/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwertz_dot_dead</name>
-- <_description>Hungarian (101/qwertz/dot/dead keys)</_description>
-+ <description>Hungarian (101/qwertz/dot/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwertz_dot_nodead</name>
-- <_description>Hungarian (101/qwertz/dot/eliminate dead keys)</_description>
-+ <description>Hungarian (101/qwertz/dot/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwerty_comma_dead</name>
-- <_description>Hungarian (101/qwerty/comma/dead keys)</_description>
-+ <description>Hungarian (101/qwerty/comma/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwerty_comma_nodead</name>
-- <_description>Hungarian (101/qwerty/comma/eliminate dead keys)</_description>
-+ <description>Hungarian (101/qwerty/comma/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwerty_dot_dead</name>
-- <_description>Hungarian (101/qwerty/dot/dead keys)</_description>
-+ <description>Hungarian (101/qwerty/dot/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwerty_dot_nodead</name>
-- <_description>Hungarian (101/qwerty/dot/eliminate dead keys)</_description>
-+ <description>Hungarian (101/qwerty/dot/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwertz_comma_dead</name>
-- <_description>Hungarian (102/qwertz/comma/dead keys)</_description>
-+ <description>Hungarian (102/qwertz/comma/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwertz_comma_nodead</name>
-- <_description>Hungarian (102/qwertz/comma/eliminate dead keys)</_description>
-+ <description>Hungarian (102/qwertz/comma/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwertz_dot_dead</name>
-- <_description>Hungarian (102/qwertz/dot/dead keys)</_description>
-+ <description>Hungarian (102/qwertz/dot/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwertz_dot_nodead</name>
-- <_description>Hungarian (102/qwertz/dot/eliminate dead keys)</_description>
-+ <description>Hungarian (102/qwertz/dot/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwerty_comma_dead</name>
-- <_description>Hungarian (102/qwerty/comma/dead keys)</_description>
-+ <description>Hungarian (102/qwerty/comma/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwerty_comma_nodead</name>
-- <_description>Hungarian (102/qwerty/comma/eliminate dead keys)</_description>
-+ <description>Hungarian (102/qwerty/comma/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwerty_dot_dead</name>
-- <_description>Hungarian (102/qwerty/dot/dead keys)</_description>
-+ <description>Hungarian (102/qwerty/dot/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwerty_dot_nodead</name>
-- <_description>Hungarian (102/qwerty/dot/eliminate dead keys)</_description>
-+ <description>Hungarian (102/qwerty/dot/eliminate dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3463,9 +3463,9 @@
- <layout>
- <configItem>
- <name>is</name>
-- <!-- Keyboard indicator for Icelandic layouts -->
-- <_shortDescription>is</_shortDescription>
-- <_description>Icelandic</_description>
-+
-+ <shortDescription>is</shortDescription>
-+ <description>Icelandic</description>
- <languageList>
- <iso639Id>ice</iso639Id>
- </languageList>
-@@ -3474,25 +3474,25 @@
- <variant>
- <configItem>
- <name>Sundeadkeys</name>
-- <_description>Icelandic (Sun dead keys)</_description>
-+ <description>Icelandic (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Icelandic (eliminate dead keys)</_description>
-+ <description>Icelandic (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Icelandic (Macintosh)</_description>
-+ <description>Icelandic (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Icelandic (Dvorak)</_description>
-+ <description>Icelandic (Dvorak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3500,9 +3500,9 @@
- <layout>
- <configItem>
- <name>il</name>
-- <!-- Keyboard indicator for Hebrew layouts -->
-- <_shortDescription>he</_shortDescription>
-- <_description>Hebrew</_description>
-+
-+ <shortDescription>he</shortDescription>
-+ <description>Hebrew</description>
- <languageList>
- <iso639Id>heb</iso639Id>
- </languageList>
-@@ -3511,19 +3511,19 @@
- <variant>
- <configItem>
- <name>lyx</name>
-- <_description>Hebrew (lyx)</_description>
-+ <description>Hebrew (lyx)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Hebrew (phonetic)</_description>
-+ <description>Hebrew (phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>biblical</name>
-- <_description>Hebrew (Biblical, Tiro)</_description>
-+ <description>Hebrew (Biblical, Tiro)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3531,9 +3531,9 @@
- <layout>
- <configItem>
- <name>it</name>
-- <!-- Keyboard indicator for Italian layouts -->
-- <_shortDescription>it</_shortDescription>
-- <_description>Italian</_description>
-+
-+ <shortDescription>it</shortDescription>
-+ <description>Italian</description>
- <languageList>
- <iso639Id>ita</iso639Id>
- </languageList>
-@@ -3542,25 +3542,25 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Italian (eliminate dead keys)</_description>
-+ <description>Italian (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Italian (Macintosh)</_description>
-+ <description>Italian (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Italian (US keyboard with Italian letters)</_description>
-+ <description>Italian (US keyboard with Italian letters)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>geo</name>
-- <_description>Georgian (Italy)</_description>
-+ <description>Georgian (Italy)</description>
- <languageList>
- <iso639Id>geo</iso639Id>
- </languageList>
-@@ -3569,7 +3569,7 @@
- <variant>
- <configItem>
- <name>ibm</name>
-- <_description>Italian (IBM 142)</_description>
-+ <description>Italian (IBM 142)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3577,9 +3577,9 @@
- <layout>
- <configItem>
- <name>jp</name>
-- <!-- Keyboard indicator for Japanese layouts -->
-- <_shortDescription>ja</_shortDescription>
-- <_description>Japanese</_description>
-+
-+ <shortDescription>ja</shortDescription>
-+ <description>Japanese</description>
- <languageList>
- <iso639Id>jpn</iso639Id>
- </languageList>
-@@ -3588,31 +3588,31 @@
- <variant>
- <configItem>
- <name>kana</name>
-- <_description>Japanese (Kana)</_description>
-+ <description>Japanese (Kana)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>kana86</name>
-- <_description>Japanese (Kana 86)</_description>
-+ <description>Japanese (Kana 86)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>OADG109A</name>
-- <_description>Japanese (OADG 109A)</_description>
-+ <description>Japanese (OADG 109A)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Japanese (Macintosh)</_description>
-+ <description>Japanese (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Japanese (Dvorak)</_description>
-+ <description>Japanese (Dvorak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3620,9 +3620,9 @@
- <layout>
- <configItem>
- <name>kg</name>
-- <!-- Keyboard indicator for Kyrgyz layouts -->
-- <_shortDescription>ki</_shortDescription>
-- <_description>Kyrgyz</_description>
-+
-+ <shortDescription>ki</shortDescription>
-+ <description>Kyrgyz</description>
- <languageList>
- <iso639Id>kir</iso639Id>
- </languageList>
-@@ -3631,7 +3631,7 @@
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Kyrgyz (phonetic)</_description>
-+ <description>Kyrgyz (phonetic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3639,9 +3639,9 @@
- <layout>
- <configItem>
- <name>kh</name>
-- <!-- Keyboard indicator for Khmer layouts -->
-- <_shortDescription>km</_shortDescription>
-- <_description>Khmer (Cambodia)</_description>
-+
-+ <shortDescription>km</shortDescription>
-+ <description>Khmer (Cambodia)</description>
- <languageList>
- <iso639Id>khm</iso639Id>
- </languageList>
-@@ -3651,9 +3651,9 @@
- <layout>
- <configItem>
- <name>kz</name>
-- <!-- Keyboard indicator for Kazakh layouts -->
-- <_shortDescription>kk</_shortDescription>
-- <_description>Kazakh</_description>
-+
-+ <shortDescription>kk</shortDescription>
-+ <description>Kazakh</description>
- <languageList>
- <iso639Id>kaz</iso639Id>
- </languageList>
-@@ -3662,9 +3662,9 @@
- <variant>
- <configItem>
- <name>ruskaz</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Kazakhstan, with Kazakh)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Kazakhstan, with Kazakh)</description>
- <languageList><iso639Id>kaz</iso639Id>
- <iso639Id>rus</iso639Id></languageList>
- </configItem>
-@@ -3672,7 +3672,7 @@
- <variant>
- <configItem>
- <name>kazrus</name>
-- <_description>Kazakh (with Russian)</_description>
-+ <description>Kazakh (with Russian)</description>
- <languageList><iso639Id>kaz</iso639Id>
- <iso639Id>rus</iso639Id></languageList>
- </configItem>
-@@ -3682,9 +3682,9 @@
- <layout>
- <configItem>
- <name>la</name>
-- <!-- Keyboard indicator for Lao layouts -->
-- <_shortDescription>lo</_shortDescription>
-- <_description>Lao</_description>
-+
-+ <shortDescription>lo</shortDescription>
-+ <description>Lao</description>
- <languageList>
- <iso639Id>lao</iso639Id>
- </languageList>
-@@ -3693,7 +3693,7 @@
- <variant>
- <configItem>
- <name>stea</name>
-- <_description>Lao (STEA proposed standard layout)</_description>
-+ <description>Lao (STEA proposed standard layout)</description>
- <languageList><iso639Id>lao</iso639Id>
- </languageList>
- </configItem>
-@@ -3703,9 +3703,9 @@
- <layout>
- <configItem>
- <name>latam</name>
-- <!-- Keyboard indicator for Spanish layouts -->
-- <_shortDescription>es</_shortDescription>
-- <_description>Spanish (Latin American)</_description>
-+
-+ <shortDescription>es</shortDescription>
-+ <description>Spanish (Latin American)</description>
- <countryList>
- <iso3166Id>AR</iso3166Id>
- <iso3166Id>BO</iso3166Id>
-@@ -3737,19 +3737,19 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Spanish (Latin American, eliminate dead keys)</_description>
-+ <description>Spanish (Latin American, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>deadtilde</name>
-- <_description>Spanish (Latin American, include dead tilde)</_description>
-+ <description>Spanish (Latin American, include dead tilde)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Spanish (Latin American, Sun dead keys)</_description>
-+ <description>Spanish (Latin American, Sun dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3757,9 +3757,9 @@
- <layout>
- <configItem>
- <name>lt</name>
-- <!-- Keyboard indicator for Lithuanian layouts -->
-- <_shortDescription>lt</_shortDescription>
-- <_description>Lithuanian</_description>
-+
-+ <shortDescription>lt</shortDescription>
-+ <description>Lithuanian</description>
- <languageList>
- <iso639Id>lit</iso639Id>
- </languageList>
-@@ -3768,31 +3768,31 @@
- <variant>
- <configItem>
- <name>std</name>
-- <_description>Lithuanian (standard)</_description>
-+ <description>Lithuanian (standard)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Lithuanian (US keyboard with Lithuanian letters)</_description>
-+ <description>Lithuanian (US keyboard with Lithuanian letters)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ibm</name>
-- <_description>Lithuanian (IBM LST 1205-92)</_description>
-+ <description>Lithuanian (IBM LST 1205-92)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>lekp</name>
-- <_description>Lithuanian (LEKP)</_description>
-+ <description>Lithuanian (LEKP)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>lekpa</name>
-- <_description>Lithuanian (LEKPa)</_description>
-+ <description>Lithuanian (LEKPa)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3800,9 +3800,9 @@
- <layout>
- <configItem>
- <name>lv</name>
-- <!-- Keyboard indicator for Latvian layouts -->
-- <_shortDescription>lv</_shortDescription>
-- <_description>Latvian</_description>
-+
-+ <shortDescription>lv</shortDescription>
-+ <description>Latvian</description>
- <languageList>
- <iso639Id>lav</iso639Id>
- </languageList>
-@@ -3811,37 +3811,37 @@
- <variant>
- <configItem>
- <name>apostrophe</name>
-- <_description>Latvian (apostrophe variant)</_description>
-+ <description>Latvian (apostrophe variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>tilde</name>
-- <_description>Latvian (tilde variant)</_description>
-+ <description>Latvian (tilde variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>fkey</name>
-- <_description>Latvian (F variant)</_description>
-+ <description>Latvian (F variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>modern</name>
-- <_description>Latvian (modern)</_description>
-+ <description>Latvian (modern)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ergonomic</name>
-- <_description>Latvian (ergonomic, ŪGJRMV)</_description>
-+ <description>Latvian (ergonomic, ŪGJRMV)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>adapted</name>
-- <_description>Latvian (adapted)</_description>
-+ <description>Latvian (adapted)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3849,9 +3849,9 @@
- <layout>
- <configItem>
- <name>mao</name>
-- <!-- Keyboard indicator for Maori layouts -->
-- <_shortDescription>mi</_shortDescription>
-- <_description>Maori</_description>
-+
-+ <shortDescription>mi</shortDescription>
-+ <description>Maori</description>
- <languageList>
- <iso639Id>mao</iso639Id>
- </languageList>
-@@ -3861,9 +3861,9 @@
- <layout>
- <configItem>
- <name>me</name>
-- <!-- Keyboard indicator for Montenegrin layouts -->
-- <_shortDescription>sr</_shortDescription>
-- <_description>Montenegrin</_description>
-+
-+ <shortDescription>sr</shortDescription>
-+ <description>Montenegrin</description>
- <languageList>
- <iso639Id>srp</iso639Id>
- </languageList>
-@@ -3872,43 +3872,43 @@
- <variant>
- <configItem>
- <name>cyrillic</name>
-- <_description>Montenegrin (Cyrillic)</_description>
-+ <description>Montenegrin (Cyrillic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>cyrillicyz</name>
-- <_description>Montenegrin (Cyrillic, Z and ZHE swapped)</_description>
-+ <description>Montenegrin (Cyrillic, Z and ZHE swapped)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinunicode</name>
-- <_description>Montenegrin (Latin Unicode)</_description>
-+ <description>Montenegrin (Latin Unicode)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinyz</name>
-- <_description>Montenegrin (Latin qwerty)</_description>
-+ <description>Montenegrin (Latin qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinunicodeyz</name>
-- <_description>Montenegrin (Latin Unicode qwerty)</_description>
-+ <description>Montenegrin (Latin Unicode qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>cyrillicalternatequotes</name>
-- <_description>Montenegrin (Cyrillic with guillemets)</_description>
-+ <description>Montenegrin (Cyrillic with guillemets)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinalternatequotes</name>
-- <_description>Montenegrin (Latin with guillemets)</_description>
-+ <description>Montenegrin (Latin with guillemets)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3916,9 +3916,9 @@
- <layout>
- <configItem>
- <name>mk</name>
-- <!-- Keyboard indicator for Macedonian layouts -->
-- <_shortDescription>mk</_shortDescription>
-- <_description>Macedonian</_description>
-+
-+ <shortDescription>mk</shortDescription>
-+ <description>Macedonian</description>
- <languageList>
- <iso639Id>mkd</iso639Id>
- </languageList>
-@@ -3927,7 +3927,7 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Macedonian (eliminate dead keys)</_description>
-+ <description>Macedonian (eliminate dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3935,9 +3935,9 @@
- <layout>
- <configItem>
- <name>mt</name>
-- <!-- Keyboard indicator for Maltese layouts -->
-- <_shortDescription>mt</_shortDescription>
-- <_description>Maltese</_description>
-+
-+ <shortDescription>mt</shortDescription>
-+ <description>Maltese</description>
- <languageList>
- <iso639Id>mlt</iso639Id>
- </languageList>
-@@ -3946,7 +3946,7 @@
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Maltese (with US layout)</_description>
-+ <description>Maltese (with US layout)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3954,9 +3954,9 @@
- <layout>
- <configItem>
- <name>mn</name>
-- <!-- Keyboard indicator for Mongolian layouts -->
-- <_shortDescription>mn</_shortDescription>
-- <_description>Mongolian</_description>
-+
-+ <shortDescription>mn</shortDescription>
-+ <description>Mongolian</description>
- <languageList>
- <iso639Id>mon</iso639Id>
- </languageList>
-@@ -3966,9 +3966,9 @@
- <layout>
- <configItem>
- <name>no</name>
-- <!-- Keyboard indicator for Norwegian layouts -->
-- <_shortDescription>no</_shortDescription>
-- <_description>Norwegian</_description>
-+
-+ <shortDescription>no</shortDescription>
-+ <description>Norwegian</description>
- <languageList>
- <iso639Id>nor</iso639Id>
- <iso639Id>nob</iso639Id>
-@@ -3979,19 +3979,19 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Norwegian (eliminate dead keys)</_description>
-+ <description>Norwegian (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Norwegian (Dvorak)</_description>
-+ <description>Norwegian (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>smi</name>
-- <_description>Northern Saami (Norway)</_description>
-+ <description>Northern Saami (Norway)</description>
- <languageList>
- <iso639Id>sme</iso639Id>
- </languageList>
-@@ -4000,7 +4000,7 @@
- <variant>
- <configItem>
- <name>smi_nodeadkeys</name>
-- <_description>Northern Saami (Norway, eliminate dead keys)</_description>
-+ <description>Northern Saami (Norway, eliminate dead keys)</description>
- <languageList>
- <iso639Id>sme</iso639Id>
- </languageList>
-@@ -4009,19 +4009,19 @@
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Norwegian (Macintosh)</_description>
-+ <description>Norwegian (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_nodeadkeys</name>
-- <_description>Norwegian (Macintosh, eliminate dead keys)</_description>
-+ <description>Norwegian (Macintosh, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>Norwegian (Colemak)</_description>
-+ <description>Norwegian (Colemak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4029,9 +4029,9 @@
- <layout>
- <configItem>
- <name>pl</name>
-- <!-- Keyboard indicator for Polish layouts -->
-- <_shortDescription>pl</_shortDescription>
-- <_description>Polish</_description>
-+
-+ <shortDescription>pl</shortDescription>
-+ <description>Polish</description>
- <languageList>
- <iso639Id>pol</iso639Id>
- </languageList>
-@@ -4040,37 +4040,37 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Polish (legacy)</_description>
-+ <description>Polish (legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwertz</name>
-- <_description>Polish (qwertz)</_description>
-+ <description>Polish (qwertz)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Polish (Dvorak)</_description>
-+ <description>Polish (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak_quotes</name>
-- <_description>Polish (Dvorak, Polish quotes on quotemark key)</_description>
-+ <description>Polish (Dvorak, Polish quotes on quotemark key)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak_altquotes</name>
-- <_description>Polish (Dvorak, Polish quotes on key 1)</_description>
-+ <description>Polish (Dvorak, Polish quotes on key 1)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>csb</name>
-- <_description>Kashubian</_description>
-+ <description>Kashubian</description>
- <languageList>
- <iso639Id>csb</iso639Id>
- </languageList>
-@@ -4086,9 +4086,9 @@
- <variant>
- <configItem>
- <name>ru_phonetic_dvorak</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Poland, phonetic Dvorak)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Poland, phonetic Dvorak)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -4097,7 +4097,7 @@
- <variant>
- <configItem>
- <name>dvp</name>
-- <_description>Polish (programmer Dvorak)</_description>
-+ <description>Polish (programmer Dvorak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4105,9 +4105,9 @@
- <layout>
- <configItem>
- <name>pt</name>
-- <!-- Keyboard indicator for Portuguese layouts -->
-- <_shortDescription>pt</_shortDescription>
-- <_description>Portuguese</_description>
-+
-+ <shortDescription>pt</shortDescription>
-+ <description>Portuguese</description>
- <languageList>
- <iso639Id>por</iso639Id>
- </languageList>
-@@ -4116,49 +4116,49 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Portuguese (eliminate dead keys)</_description>
-+ <description>Portuguese (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Portuguese (Sun dead keys)</_description>
-+ <description>Portuguese (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Portuguese (Macintosh)</_description>
-+ <description>Portuguese (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_nodeadkeys</name>
-- <_description>Portuguese (Macintosh, eliminate dead keys)</_description>
-+ <description>Portuguese (Macintosh, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_sundeadkeys</name>
-- <_description>Portuguese (Macintosh, Sun dead keys)</_description>
-+ <description>Portuguese (Macintosh, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo</name>
-- <_description>Portuguese (Nativo)</_description>
-+ <description>Portuguese (Nativo)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo-us</name>
-- <_description>Portuguese (Nativo for US keyboards)</_description>
-+ <description>Portuguese (Nativo for US keyboards)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo-epo</name>
-- <_description>Esperanto (Portugal, Nativo)</_description>
-+ <description>Esperanto (Portugal, Nativo)</description>
- <languageList>
- <iso639Id>epo</iso639Id>
- </languageList>
-@@ -4169,9 +4169,9 @@
- <layout>
- <configItem>
- <name>ro</name>
-- <!-- Keyboard indicator for Romanian layouts -->
-- <_shortDescription>ro</_shortDescription>
-- <_description>Romanian</_description>
-+
-+ <shortDescription>ro</shortDescription>
-+ <description>Romanian</description>
- <languageList>
- <iso639Id>rum</iso639Id>
- </languageList>
-@@ -4180,25 +4180,25 @@
- <variant>
- <configItem>
- <name>cedilla</name>
-- <_description>Romanian (cedilla)</_description>
-+ <description>Romanian (cedilla)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>std</name>
-- <_description>Romanian (standard)</_description>
-+ <description>Romanian (standard)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>std_cedilla</name>
-- <_description>Romanian (standard cedilla)</_description>
-+ <description>Romanian (standard cedilla)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>winkeys</name>
-- <_description>Romanian (WinKeys)</_description>
-+ <description>Romanian (WinKeys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4206,9 +4206,9 @@
- <layout>
- <configItem>
- <name>ru</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -4217,37 +4217,37 @@
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Russian (phonetic)</_description>
-+ <description>Russian (phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>phonetic_winkeys</name>
-- <_description>Russian (phonetic WinKeys)</_description>
-+ <description>Russian (phonetic WinKeys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>typewriter</name>
-- <_description>Russian (typewriter)</_description>
-+ <description>Russian (typewriter)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Russian (legacy)</_description>
-+ <description>Russian (legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>typewriter-legacy</name>
-- <_description>Russian (typewriter, legacy)</_description>
-+ <description>Russian (typewriter, legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>tt</name>
-- <_description>Tatar</_description>
-+ <description>Tatar</description>
- <languageList>
- <iso639Id>tat</iso639Id>
- </languageList>
-@@ -4256,7 +4256,7 @@
- <variant>
- <configItem>
- <name>os_legacy</name>
-- <_description>Ossetian (legacy)</_description>
-+ <description>Ossetian (legacy)</description>
- <languageList>
- <iso639Id>oss</iso639Id>
- </languageList>
-@@ -4265,7 +4265,7 @@
- <variant>
- <configItem>
- <name>os_winkeys</name>
-- <_description>Ossetian (WinKeys)</_description>
-+ <description>Ossetian (WinKeys)</description>
- <languageList>
- <iso639Id>oss</iso639Id>
- </languageList>
-@@ -4274,7 +4274,7 @@
- <variant>
- <configItem>
- <name>cv</name>
-- <_description>Chuvash</_description>
-+ <description>Chuvash</description>
- <languageList>
- <iso639Id>chv</iso639Id>
- </languageList>
-@@ -4283,7 +4283,7 @@
- <variant>
- <configItem>
- <name>cv_latin</name>
-- <_description>Chuvash (Latin)</_description>
-+ <description>Chuvash (Latin)</description>
- <languageList>
- <iso639Id>chv</iso639Id>
- </languageList>
-@@ -4292,7 +4292,7 @@
- <variant>
- <configItem>
- <name>udm</name>
-- <_description>Udmurt</_description>
-+ <description>Udmurt</description>
- <languageList>
- <iso639Id>udm</iso639Id>
- </languageList>
-@@ -4301,7 +4301,7 @@
- <variant>
- <configItem>
- <name>kom</name>
-- <_description>Komi</_description>
-+ <description>Komi</description>
- <languageList>
- <iso639Id>kom</iso639Id>
- </languageList>
-@@ -4310,7 +4310,7 @@
- <variant>
- <configItem>
- <name>sah</name>
-- <_description>Yakut</_description>
-+ <description>Yakut</description>
- <languageList>
- <iso639Id>sah</iso639Id>
- </languageList>
-@@ -4319,7 +4319,7 @@
- <variant>
- <configItem>
- <name>xal</name>
-- <_description>Kalmyk</_description>
-+ <description>Kalmyk</description>
- <languageList>
- <iso639Id>xal</iso639Id>
- </languageList>
-@@ -4328,19 +4328,19 @@
- <variant>
- <configItem>
- <name>dos</name>
-- <_description>Russian (DOS)</_description>
-+ <description>Russian (DOS)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Russian (Macintosh)</_description>
-+ <description>Russian (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>srp</name>
-- <_description>Serbian (Russia)</_description>
-+ <description>Serbian (Russia)</description>
- <languageList><iso639Id>rus</iso639Id>
- <iso639Id>srp</iso639Id></languageList>
- </configItem>
-@@ -4348,7 +4348,7 @@
- <variant>
- <configItem>
- <name>bak</name>
-- <_description>Bashkirian</_description>
-+ <description>Bashkirian</description>
- <languageList>
- <iso639Id>bak</iso639Id>
- </languageList>
-@@ -4357,7 +4357,7 @@
- <variant>
- <configItem>
- <name>chm</name>
-- <_description>Mari</_description>
-+ <description>Mari</description>
- <languageList>
- <iso639Id>chm</iso639Id>
- </languageList>
-@@ -4368,9 +4368,9 @@
- <layout>
- <configItem>
- <name>rs</name>
-- <!-- Keyboard indicator for Serbian layouts -->
-- <_shortDescription>sr</_shortDescription>
-- <_description>Serbian</_description>
-+
-+ <shortDescription>sr</shortDescription>
-+ <description>Serbian</description>
- <languageList>
- <iso639Id>srp</iso639Id>
- </languageList>
-@@ -4379,49 +4379,49 @@
- <variant>
- <configItem>
- <name>yz</name>
-- <_description>Serbian (Cyrillic, Z and ZHE swapped)</_description>
-+ <description>Serbian (Cyrillic, Z and ZHE swapped)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latin</name>
-- <_description>Serbian (Latin)</_description>
-+ <description>Serbian (Latin)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinunicode</name>
-- <_description>Serbian (Latin Unicode)</_description>
-+ <description>Serbian (Latin Unicode)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinyz</name>
-- <_description>Serbian (Latin qwerty)</_description>
-+ <description>Serbian (Latin qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinunicodeyz</name>
-- <_description>Serbian (Latin Unicode qwerty)</_description>
-+ <description>Serbian (Latin Unicode qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>alternatequotes</name>
-- <_description>Serbian (Cyrillic with guillemets)</_description>
-+ <description>Serbian (Cyrillic with guillemets)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinalternatequotes</name>
-- <_description>Serbian (Latin with guillemets)</_description>
-+ <description>Serbian (Latin with guillemets)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>rue</name>
-- <_description>Pannonian Rusyn</_description>
-+ <description>Pannonian Rusyn</description>
- <languageList>
- <iso639Id>rue</iso639Id>
- </languageList>
-@@ -4432,9 +4432,9 @@
- <layout>
- <configItem>
- <name>si</name>
-- <!-- Keyboard indicator for Slovenian layouts -->
-- <_shortDescription>sl</_shortDescription>
-- <_description>Slovenian</_description>
-+
-+ <shortDescription>sl</shortDescription>
-+ <description>Slovenian</description>
- <languageList>
- <iso639Id>slv</iso639Id>
- </languageList>
-@@ -4443,13 +4443,13 @@
- <variant>
- <configItem>
- <name>alternatequotes</name>
-- <_description>Slovenian (use guillemets for quotes)</_description>
-+ <description>Slovenian (use guillemets for quotes)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Slovenian (US keyboard with Slovenian letters)</_description>
-+ <description>Slovenian (US keyboard with Slovenian letters)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4457,9 +4457,9 @@
- <layout>
- <configItem>
- <name>sk</name>
-- <!-- Keyboard indicator for Slovak layouts -->
-- <_shortDescription>sk</_shortDescription>
-- <_description>Slovak</_description>
-+
-+ <shortDescription>sk</shortDescription>
-+ <description>Slovak</description>
- <languageList>
- <iso639Id>slo</iso639Id>
- </languageList>
-@@ -4468,19 +4468,19 @@
- <variant>
- <configItem>
- <name>bksl</name>
-- <_description>Slovak (extended Backslash)</_description>
-+ <description>Slovak (extended Backslash)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>Slovak (qwerty)</_description>
-+ <description>Slovak (qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty_bksl</name>
-- <_description>Slovak (qwerty, extended Backslash)</_description>
-+ <description>Slovak (qwerty, extended Backslash)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4488,9 +4488,9 @@
- <layout>
- <configItem>
- <name>es</name>
-- <!-- Keyboard indicator for Spanish layouts -->
-- <_shortDescription>es</_shortDescription>
-- <_description>Spanish</_description>
-+
-+ <shortDescription>es</shortDescription>
-+ <description>Spanish</description>
- <languageList>
- <iso639Id>spa</iso639Id>
- </languageList>
-@@ -4499,31 +4499,31 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Spanish (eliminate dead keys)</_description>
-+ <description>Spanish (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>deadtilde</name>
-- <_description>Spanish (include dead tilde)</_description>
-+ <description>Spanish (include dead tilde)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Spanish (Sun dead keys)</_description>
-+ <description>Spanish (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Spanish (Dvorak)</_description>
-+ <description>Spanish (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ast</name>
-- <_description>Asturian (Spain, with bottom-dot H and bottom-dot L)</_description>
-+ <description>Asturian (Spain, with bottom-dot H and bottom-dot L)</description>
- <languageList>
- <iso639Id>ast</iso639Id>
- </languageList>
-@@ -4532,7 +4532,7 @@
- <variant>
- <configItem>
- <name>cat</name>
-- <_description>Catalan (Spain, with middle-dot L)</_description>
-+ <description>Catalan (Spain, with middle-dot L)</description>
- <languageList>
- <iso639Id>cat</iso639Id>
- </languageList>
-@@ -4541,7 +4541,7 @@
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Spanish (Macintosh)</_description>
-+ <description>Spanish (Macintosh)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4549,9 +4549,9 @@
- <layout>
- <configItem>
- <name>se</name>
-- <!-- Keyboard indicator for Swedish layouts -->
-- <_shortDescription>sv</_shortDescription>
-- <_description>Swedish</_description>
-+
-+ <shortDescription>sv</shortDescription>
-+ <description>Swedish</description>
- <languageList>
- <iso639Id>swe</iso639Id>
- </languageList>
-@@ -4560,21 +4560,21 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Swedish (eliminate dead keys)</_description>
-+ <description>Swedish (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Swedish (Dvorak)</_description>
-+ <description>Swedish (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>rus</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Sweden, phonetic)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Sweden, phonetic)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -4583,9 +4583,9 @@
- <variant>
- <configItem>
- <name>rus_nodeadkeys</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Sweden, phonetic, eliminate dead keys)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Sweden, phonetic, eliminate dead keys)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -4594,7 +4594,7 @@
- <variant>
- <configItem>
- <name>smi</name>
-- <_description>Northern Saami (Sweden)</_description>
-+ <description>Northern Saami (Sweden)</description>
- <languageList>
- <iso639Id>sme</iso639Id>
- </languageList>
-@@ -4603,19 +4603,19 @@
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Swedish (Macintosh)</_description>
-+ <description>Swedish (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>svdvorak</name>
-- <_description>Swedish (Svdvorak)</_description>
-+ <description>Swedish (Svdvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>swl</name>
-- <_description>Swedish Sign Language</_description>
-+ <description>Swedish Sign Language</description>
- <languageList><iso639Id>swl</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -4624,9 +4624,9 @@
- <layout>
- <configItem>
- <name>ch</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Switzerland)</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German (Switzerland)</description>
- <languageList><iso639Id>ger</iso639Id>
- <iso639Id>gsw</iso639Id></languageList>
- </configItem>
-@@ -4634,31 +4634,31 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>German (Switzerland, legacy)</_description>
-+ <description>German (Switzerland, legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>de_nodeadkeys</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Switzerland, eliminate dead keys)</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German (Switzerland, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>de_sundeadkeys</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Switzerland, Sun dead keys)</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German (Switzerland, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>fr</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Switzerland)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Switzerland)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -4667,9 +4667,9 @@
- <variant>
- <configItem>
- <name>fr_nodeadkeys</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Switzerland, eliminate dead keys)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Switzerland, eliminate dead keys)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -4678,9 +4678,9 @@
- <variant>
- <configItem>
- <name>fr_sundeadkeys</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Switzerland, Sun dead keys)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Switzerland, Sun dead keys)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -4689,9 +4689,9 @@
- <variant>
- <configItem>
- <name>fr_mac</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Switzerland, Macintosh)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Switzerland, Macintosh)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -4700,9 +4700,9 @@
- <variant>
- <configItem>
- <name>de_mac</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Switzerland, Macintosh)</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German (Switzerland, Macintosh)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4710,9 +4710,9 @@
- <layout>
- <configItem>
- <name>sy</name>
-- <!-- Keyboard indicator for Arabic layouts -->
-- <_shortDescription>ar</_shortDescription>
-- <_description>Arabic (Syria)</_description>
-+
-+ <shortDescription>ar</shortDescription>
-+ <description>Arabic (Syria)</description>
- <languageList>
- <iso639Id>syr</iso639Id>
- </languageList>
-@@ -4721,25 +4721,25 @@
- <variant>
- <configItem>
- <name>syc</name>
-- <!-- Keyboard indicator for Syriac layouts -->
-- <_shortDescription>syc</_shortDescription>
-- <_description>Syriac</_description>
-+
-+ <shortDescription>syc</shortDescription>
-+ <description>Syriac</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>syc_phonetic</name>
-- <!-- Keyboard indicator for Syriac layouts -->
-- <_shortDescription>syc</_shortDescription>
-- <_description>Syriac (phonetic)</_description>
-+
-+ <shortDescription>syc</shortDescription>
-+ <description>Syriac (phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ku</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Syria, Latin Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Syria, Latin Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4748,9 +4748,9 @@
- <variant>
- <configItem>
- <name>ku_f</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Syria, F)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Syria, F)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4759,9 +4759,9 @@
- <variant>
- <configItem>
- <name>ku_alt</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Syria, Latin Alt-Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Syria, Latin Alt-Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4772,9 +4772,9 @@
- <layout>
- <configItem>
- <name>tj</name>
-- <!-- Keyboard indicator for Tajik layouts -->
-- <_shortDescription>tg</_shortDescription>
-- <_description>Tajik</_description>
-+
-+ <shortDescription>tg</shortDescription>
-+ <description>Tajik</description>
- <languageList>
- <iso639Id>tgk</iso639Id>
- </languageList>
-@@ -4783,7 +4783,7 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Tajik (legacy)</_description>
-+ <description>Tajik (legacy)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4791,9 +4791,9 @@
- <layout>
- <configItem>
- <name>lk</name>
-- <!-- Keyboard indicator for Sinhala layouts -->
-- <_shortDescription>si</_shortDescription>
-- <_description>Sinhala (phonetic)</_description>
-+
-+ <shortDescription>si</shortDescription>
-+ <description>Sinhala (phonetic)</description>
- <languageList>
- <iso639Id>sin</iso639Id>
- </languageList>
-@@ -4802,9 +4802,9 @@
- <variant>
- <configItem>
- <name>tam_unicode</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil (Sri Lanka, Unicode)</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil (Sri Lanka, Unicode)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -4813,7 +4813,7 @@
- <variant>
- <configItem>
- <name>tam_TAB</name>
-- <_description>Tamil (Sri Lanka, TAB Typewriter)</_description>
-+ <description>Tamil (Sri Lanka, TAB Typewriter)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -4824,9 +4824,9 @@
- <layout>
- <configItem>
- <name>th</name>
-- <!-- Keyboard indicator for Thai layouts -->
-- <_shortDescription>th</_shortDescription>
-- <_description>Thai</_description>
-+
-+ <shortDescription>th</shortDescription>
-+ <description>Thai</description>
- <languageList>
- <iso639Id>tha</iso639Id>
- </languageList>
-@@ -4835,13 +4835,13 @@
- <variant>
- <configItem>
- <name>tis</name>
-- <_description>Thai (TIS-820.2538)</_description>
-+ <description>Thai (TIS-820.2538)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>pat</name>
-- <_description>Thai (Pattachote)</_description>
-+ <description>Thai (Pattachote)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4849,9 +4849,9 @@
- <layout>
- <configItem>
- <name>tr</name>
-- <!-- Keyboard indicator for Turkish layouts -->
-- <_shortDescription>tr</_shortDescription>
-- <_description>Turkish</_description>
-+
-+ <shortDescription>tr</shortDescription>
-+ <description>Turkish</description>
- <languageList>
- <iso639Id>tur</iso639Id>
- </languageList>
-@@ -4860,27 +4860,27 @@
- <variant>
- <configItem>
- <name>f</name>
-- <_description>Turkish (F)</_description>
-+ <description>Turkish (F)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>alt</name>
-- <_description>Turkish (Alt-Q)</_description>
-+ <description>Turkish (Alt-Q)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Turkish (Sun dead keys)</_description>
-+ <description>Turkish (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ku</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Turkey, Latin Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Turkey, Latin Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4889,9 +4889,9 @@
- <variant>
- <configItem>
- <name>ku_f</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Turkey, F)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Turkey, F)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4900,9 +4900,9 @@
- <variant>
- <configItem>
- <name>ku_alt</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Turkey, Latin Alt-Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Turkey, Latin Alt-Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4911,15 +4911,15 @@
- <variant>
- <configItem>
- <name>intl</name>
-- <_description>Turkish (international with dead keys)</_description>
-+ <description>Turkish (international with dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>crh</name>
-- <!-- Keyboard indicator for Crimean Tatar layouts -->
-- <_shortDescription>crh</_shortDescription>
-- <_description>Crimean Tatar (Turkish Q)</_description>
-+
-+ <shortDescription>crh</shortDescription>
-+ <description>Crimean Tatar (Turkish Q)</description>
- <languageList>
- <iso639Id>crh</iso639Id>
- </languageList>
-@@ -4928,9 +4928,9 @@
- <variant>
- <configItem>
- <name>crh_f</name>
-- <!-- Keyboard indicator for Crimean Tatar layouts -->
-- <_shortDescription>crh</_shortDescription>
-- <_description>Crimean Tatar (Turkish F)</_description>
-+
-+ <shortDescription>crh</shortDescription>
-+ <description>Crimean Tatar (Turkish F)</description>
- <languageList>
- <iso639Id>crh</iso639Id>
- </languageList>
-@@ -4939,9 +4939,9 @@
- <variant>
- <configItem>
- <name>crh_alt</name>
-- <!-- Keyboard indicator for Crimean Tatar layouts -->
-- <_shortDescription>crh</_shortDescription>
-- <_description>Crimean Tatar (Turkish Alt-Q)</_description>
-+
-+ <shortDescription>crh</shortDescription>
-+ <description>Crimean Tatar (Turkish Alt-Q)</description>
- <languageList>
- <iso639Id>crh</iso639Id>
- </languageList>
-@@ -4952,9 +4952,9 @@
- <layout>
- <configItem>
- <name>tw</name>
-- <!-- Keyboard indicator for Taiwanese layouts -->
-- <_shortDescription>zh</_shortDescription>
-- <_description>Taiwanese</_description>
-+
-+ <shortDescription>zh</shortDescription>
-+ <description>Taiwanese</description>
- <languageList>
- <iso639Id>fox</iso639Id>
- </languageList>
-@@ -4963,7 +4963,7 @@
- <variant>
- <configItem>
- <name>indigenous</name>
-- <_description>Taiwanese (indigenous)</_description>
-+ <description>Taiwanese (indigenous)</description>
- <languageList>
- <iso639Id>ami</iso639Id>
- <iso639Id>tay</iso639Id>
-@@ -4987,9 +4987,9 @@
- <variant>
- <configItem>
- <name>saisiyat</name>
-- <!-- Keyboard indicator for Saisiyat layouts -->
-- <_shortDescription>xsy</_shortDescription>
-- <_description>Saisiyat (Taiwan)</_description>
-+
-+ <shortDescription>xsy</shortDescription>
-+ <description>Saisiyat (Taiwan)</description>
- <languageList>
- <iso639Id>xsy</iso639Id>
- </languageList>
-@@ -5000,9 +5000,9 @@
- <layout>
- <configItem>
- <name>ua</name>
-- <!-- Keyboard indicator for Ukranian layouts -->
-- <_shortDescription>uk</_shortDescription>
-- <_description>Ukrainian</_description>
-+
-+ <shortDescription>uk</shortDescription>
-+ <description>Ukrainian</description>
- <languageList>
- <iso639Id>ukr</iso639Id>
- </languageList>
-@@ -5011,43 +5011,43 @@
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Ukrainian (phonetic)</_description>
-+ <description>Ukrainian (phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>typewriter</name>
-- <_description>Ukrainian (typewriter)</_description>
-+ <description>Ukrainian (typewriter)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>winkeys</name>
-- <_description>Ukrainian (WinKeys)</_description>
-+ <description>Ukrainian (WinKeys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Ukrainian (legacy)</_description>
-+ <description>Ukrainian (legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>rstu</name>
-- <_description>Ukrainian (standard RSTU)</_description>
-+ <description>Ukrainian (standard RSTU)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>rstu_ru</name>
-- <_description>Russian (Ukraine, standard RSTU)</_description>
-+ <description>Russian (Ukraine, standard RSTU)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>homophonic</name>
-- <_description>Ukrainian (homophonic)</_description>
-+ <description>Ukrainian (homophonic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5055,9 +5055,9 @@
- <layout>
- <configItem>
- <name>gb</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (UK)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (UK)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5066,43 +5066,43 @@
- <variant>
- <configItem>
- <name>extd</name>
-- <_description>English (UK, extended WinKeys)</_description>
-+ <description>English (UK, extended WinKeys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>intl</name>
-- <_description>English (UK, international with dead keys)</_description>
-+ <description>English (UK, international with dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>English (UK, Dvorak)</_description>
-+ <description>English (UK, Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorakukp</name>
-- <_description>English (UK, Dvorak with UK punctuation)</_description>
-+ <description>English (UK, Dvorak with UK punctuation)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>English (UK, Macintosh)</_description>
-+ <description>English (UK, Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_intl</name>
-- <_description>English (UK, Macintosh international)</_description>
-+ <description>English (UK, Macintosh international)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>English (UK, Colemak)</_description>
-+ <description>English (UK, Colemak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5110,9 +5110,9 @@
- <layout>
- <configItem>
- <name>uz</name>
-- <!-- Keyboard indicator for Uzbek layouts -->
-- <_shortDescription>uz</_shortDescription>
-- <_description>Uzbek</_description>
-+
-+ <shortDescription>uz</shortDescription>
-+ <description>Uzbek</description>
- <languageList>
- <iso639Id>uzb</iso639Id>
- </languageList>
-@@ -5121,7 +5121,7 @@
- <variant>
- <configItem>
- <name>latin</name>
-- <_description>Uzbek (Latin)</_description>
-+ <description>Uzbek (Latin)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5129,9 +5129,9 @@
- <layout>
- <configItem>
- <name>vn</name>
-- <!-- Keyboard indicator for Vietnamese layouts -->
-- <_shortDescription>vi</_shortDescription>
-- <_description>Vietnamese</_description>
-+
-+ <shortDescription>vi</shortDescription>
-+ <description>Vietnamese</description>
- <languageList>
- <iso639Id>vie</iso639Id>
- </languageList>
-@@ -5141,9 +5141,9 @@
- <layout>
- <configItem>
- <name>kr</name>
-- <!-- Keyboard indicator for Korean layouts -->
-- <_shortDescription>ko</_shortDescription>
-- <_description>Korean</_description>
-+
-+ <shortDescription>ko</shortDescription>
-+ <description>Korean</description>
- <languageList>
- <iso639Id>kor</iso639Id>
- </languageList>
-@@ -5152,7 +5152,7 @@
- <variant>
- <configItem>
- <name>kr104</name>
-- <_description>Korean (101/104 key compatible)</_description>
-+ <description>Korean (101/104 key compatible)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5160,9 +5160,9 @@
- <layout>
- <configItem>
- <name>nec_vndr/jp</name>
-- <!-- Keyboard indicator for Japanese layouts -->
-- <_shortDescription>ja</_shortDescription>
-- <_description>Japanese (PC-98xx Series)</_description>
-+
-+ <shortDescription>ja</shortDescription>
-+ <description>Japanese (PC-98xx Series)</description>
- <countryList>
- <iso3166Id>JP</iso3166Id>
- </countryList>
-@@ -5175,9 +5175,9 @@
- <layout>
- <configItem>
- <name>ie</name>
-- <!-- Keyboard indicator for Irish layouts -->
-- <_shortDescription>ie</_shortDescription>
-- <_description>Irish</_description>
-+
-+ <shortDescription>ie</shortDescription>
-+ <description>Irish</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5186,7 +5186,7 @@
- <variant>
- <configItem>
- <name>CloGaelach</name>
-- <_description>CloGaelach</_description>
-+ <description>CloGaelach</description>
- <languageList>
- <iso639Id>gle</iso639Id>
- </languageList>
-@@ -5195,13 +5195,13 @@
- <variant>
- <configItem>
- <name>UnicodeExpert</name>
-- <_description>Irish (UnicodeExpert)</_description>
-+ <description>Irish (UnicodeExpert)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ogam</name>
-- <_description>Ogham</_description>
-+ <description>Ogham</description>
- <languageList>
- <iso639Id>sga</iso639Id>
- </languageList>
-@@ -5210,7 +5210,7 @@
- <variant>
- <configItem>
- <name>ogam_is434</name>
-- <_description>Ogham (IS434)</_description>
-+ <description>Ogham (IS434)</description>
- <languageList>
- <iso639Id>sga</iso639Id>
- </languageList>
-@@ -5221,9 +5221,9 @@
- <layout>
- <configItem>
- <name>pk</name>
-- <!-- Keyboard indicator for Urdu layouts -->
-- <_shortDescription>ur</_shortDescription>
-- <_description>Urdu (Pakistan)</_description>
-+
-+ <shortDescription>ur</shortDescription>
-+ <description>Urdu (Pakistan)</description>
- <languageList>
- <iso639Id>urd</iso639Id>
- </languageList>
-@@ -5232,20 +5232,20 @@
- <variant>
- <configItem>
- <name>urd-crulp</name>
-- <_description>Urdu (Pakistan, CRULP)</_description>
-+ <description>Urdu (Pakistan, CRULP)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>urd-nla</name>
-- <_description>Urdu (Pakistan, NLA)</_description>
-+ <description>Urdu (Pakistan, NLA)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ara</name>
-- <_shortDescription>ar</_shortDescription>
-- <_description>Arabic (Pakistan)</_description>
-+ <shortDescription>ar</shortDescription>
-+ <description>Arabic (Pakistan)</description>
- <languageList>
- <iso639Id>ara</iso639Id>
- </languageList>
-@@ -5254,9 +5254,9 @@
- <variant>
- <configItem>
- <name>snd</name>
-- <!-- Keyboard indicator for Sindhi layouts -->
-- <_shortDescription>sd</_shortDescription>
-- <_description>Sindhi</_description>
-+
-+ <shortDescription>sd</shortDescription>
-+ <description>Sindhi</description>
- <languageList>
- <iso639Id>snd</iso639Id>
- </languageList>
-@@ -5267,9 +5267,9 @@
- <layout>
- <configItem>
- <name>mv</name>
-- <!-- Keyboard indicator for Dhivehi layouts -->
-- <_shortDescription>dv</_shortDescription>
-- <_description>Dhivehi</_description>
-+
-+ <shortDescription>dv</shortDescription>
-+ <description>Dhivehi</description>
- <languageList>
- <iso639Id>div</iso639Id>
- </languageList>
-@@ -5279,9 +5279,9 @@
- <layout>
- <configItem>
- <name>za</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (South Africa)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (South Africa)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5290,9 +5290,9 @@
- <layout>
- <configItem>
- <name>epo</name>
-- <!-- Keyboard indicator for Esperanto layouts -->
-- <_shortDescription>eo</_shortDescription>
-- <_description>Esperanto</_description>
-+
-+ <shortDescription>eo</shortDescription>
-+ <description>Esperanto</description>
- <languageList>
- <iso639Id>epo</iso639Id>
- </languageList>
-@@ -5301,7 +5301,7 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Esperanto (displaced semicolon and quote, obsolete)</_description>
-+ <description>Esperanto (displaced semicolon and quote, obsolete)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5309,9 +5309,9 @@
- <layout>
- <configItem>
- <name>np</name>
-- <!-- Keyboard indicator for Nepali layouts -->
-- <_shortDescription>ne</_shortDescription>
-- <_description>Nepali</_description>
-+
-+ <shortDescription>ne</shortDescription>
-+ <description>Nepali</description>
- <languageList>
- <iso639Id>nep</iso639Id>
- </languageList>
-@@ -5320,9 +5320,9 @@
- <layout>
- <configItem>
- <name>ng</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (Nigeria)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (Nigeria)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5331,9 +5331,9 @@
- <variant>
- <configItem>
- <name>igbo</name>
-- <!-- Keyboard indicator for Igbo layouts -->
-- <_shortDescription>ig</_shortDescription>
-- <_description>Igbo</_description>
-+
-+ <shortDescription>ig</shortDescription>
-+ <description>Igbo</description>
- <languageList>
- <iso639Id>ibo</iso639Id>
- </languageList>
-@@ -5342,9 +5342,9 @@
- <variant>
- <configItem>
- <name>yoruba</name>
-- <!-- Keyboard indicator for Yoruba layouts -->
-- <_shortDescription>yo</_shortDescription>
-- <_description>Yoruba</_description>
-+
-+ <shortDescription>yo</shortDescription>
-+ <description>Yoruba</description>
- <languageList>
- <iso639Id>yor</iso639Id>
- </languageList>
-@@ -5353,9 +5353,9 @@
- <variant>
- <configItem>
- <name>hausa</name>
-- <!-- Keyboard indicator for Hausa layouts -->
-- <_shortDescription>ha</_shortDescription>
-- <_description>Hausa</_description>
-+
-+ <shortDescription>ha</shortDescription>
-+ <description>Hausa</description>
- <languageList>
- <iso639Id>hau</iso639Id>
- </languageList>
-@@ -5366,9 +5366,9 @@
- <layout>
- <configItem>
- <name>et</name>
-- <!-- Keyboard indicator for Amharic layouts -->
-- <_shortDescription>am</_shortDescription>
-- <_description>Amharic</_description>
-+
-+ <shortDescription>am</shortDescription>
-+ <description>Amharic</description>
- <languageList>
- <iso639Id>amh</iso639Id>
- </languageList>
-@@ -5378,9 +5378,9 @@
- <layout>
- <configItem>
- <name>sn</name>
-- <!-- Keyboard indicator for Wolof layouts -->
-- <_shortDescription>wo</_shortDescription>
-- <_description>Wolof</_description>
-+
-+ <shortDescription>wo</shortDescription>
-+ <description>Wolof</description>
- <languageList>
- <iso639Id>wol</iso639Id>
- </languageList>
-@@ -5390,21 +5390,21 @@
- <layout>
- <configItem>
- <name>brai</name>
-- <!-- Keyboard indicator for Braille layouts -->
-- <_shortDescription>brl</_shortDescription>
-- <_description>Braille</_description>
-+
-+ <shortDescription>brl</shortDescription>
-+ <description>Braille</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>left_hand</name>
-- <_description>Braille (left hand)</_description>
-+ <description>Braille (left hand)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>right_hand</name>
-- <_description>Braille (right hand)</_description>
-+ <description>Braille (right hand)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5412,9 +5412,9 @@
- <layout>
- <configItem>
- <name>tm</name>
-- <!-- Keyboard indicator for Turkmen layouts -->
-- <_shortDescription>tk</_shortDescription>
-- <_description>Turkmen</_description>
-+
-+ <shortDescription>tk</shortDescription>
-+ <description>Turkmen</description>
- <languageList>
- <iso639Id>tuk</iso639Id>
- </languageList>
-@@ -5423,7 +5423,7 @@
- <variant>
- <configItem>
- <name>alt</name>
-- <_description>Turkmen (Alt-Q)</_description>
-+ <description>Turkmen (Alt-Q)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5431,9 +5431,9 @@
- <layout>
- <configItem>
- <name>ml</name>
-- <!-- Keyboard indicator for Bambara layouts -->
-- <_shortDescription>bm</_shortDescription>
-- <_description>Bambara</_description>
-+
-+ <shortDescription>bm</shortDescription>
-+ <description>Bambara</description>
- <languageList>
- <iso639Id>bam</iso639Id>
- </languageList>
-@@ -5442,9 +5442,9 @@
- <variant>
- <configItem>
- <name>fr-oss</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Mali, alternative)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Mali, alternative)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -5453,9 +5453,9 @@
- <variant>
- <configItem>
- <name>us-mac</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (Mali, US Macintosh)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (Mali, US Macintosh)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5464,9 +5464,9 @@
- <variant>
- <configItem>
- <name>us-intl</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (Mali, US international)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (Mali, US international)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5477,9 +5477,9 @@
- <layout>
- <configItem>
- <name>tz</name>
-- <!-- Keyboard indicator for Swahili layouts -->
-- <_shortDescription>sw</_shortDescription>
-- <_description>Swahili (Tanzania)</_description>
-+
-+ <shortDescription>sw</shortDescription>
-+ <description>Swahili (Tanzania)</description>
- <languageList>
- <iso639Id>swa</iso639Id>
- </languageList>
-@@ -5488,9 +5488,9 @@
- <layout>
- <configItem>
- <name>ke</name>
-- <!-- Keyboard indicator for Swahili layouts -->
-- <_shortDescription>sw</_shortDescription>
-- <_description>Swahili (Kenya)</_description>
-+
-+ <shortDescription>sw</shortDescription>
-+ <description>Swahili (Kenya)</description>
- <languageList>
- <iso639Id>swa</iso639Id>
- </languageList>
-@@ -5499,9 +5499,9 @@
- <variant>
- <configItem>
- <name>kik</name>
-- <!-- Keyboard indicator for Kikuyu layouts -->
-- <_shortDescription>ki</_shortDescription>
-- <_description>Kikuyu</_description>
-+
-+ <shortDescription>ki</shortDescription>
-+ <description>Kikuyu</description>
- <languageList>
- <iso639Id>kik</iso639Id>
- </languageList>
-@@ -5512,9 +5512,9 @@
- <layout>
- <configItem>
- <name>bw</name>
-- <!-- Keyboard indicator for Tswana layouts -->
-- <_shortDescription>tn</_shortDescription>
-- <_description>Tswana</_description>
-+
-+ <shortDescription>tn</shortDescription>
-+ <description>Tswana</description>
- <languageList>
- <iso639Id>tsn</iso639Id>
- </languageList>
-@@ -5523,9 +5523,9 @@
- <layout>
- <configItem>
- <name>ph</name>
-- <!-- Keyboard indicator for Filipino layouts -->
-- <_shortDescription>ph</_shortDescription>
-- <_description>Filipino</_description>
-+
-+ <shortDescription>ph</shortDescription>
-+ <description>Filipino</description>
- <languageList><iso639Id>eng</iso639Id>
- <iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
-@@ -5542,7 +5542,7 @@
- <variant>
- <configItem>
- <name>qwerty-bay</name>
-- <_description>Filipino (QWERTY Baybayin)</_description>
-+ <description>Filipino (QWERTY Baybayin)</description>
- <languageList><iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
- <iso639Id>fil</iso639Id>
-@@ -5558,13 +5558,13 @@
- <variant>
- <configItem>
- <name>capewell-dvorak</name>
-- <_description>Filipino (Capewell-Dvorak Latin)</_description>
-+ <description>Filipino (Capewell-Dvorak Latin)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>capewell-dvorak-bay</name>
-- <_description>Filipino (Capewell-Dvorak Baybayin)</_description>
-+ <description>Filipino (Capewell-Dvorak Baybayin)</description>
- <languageList><iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
- <iso639Id>fil</iso639Id>
-@@ -5580,13 +5580,13 @@
- <variant>
- <configItem>
- <name>capewell-qwerf2k6</name>
-- <_description>Filipino (Capewell-QWERF 2006 Latin)</_description>
-+ <description>Filipino (Capewell-QWERF 2006 Latin)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>capewell-qwerf2k6-bay</name>
-- <_description>Filipino (Capewell-QWERF 2006 Baybayin)</_description>
-+ <description>Filipino (Capewell-QWERF 2006 Baybayin)</description>
- <languageList><iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
- <iso639Id>fil</iso639Id>
-@@ -5602,13 +5602,13 @@
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>Filipino (Colemak Latin)</_description>
-+ <description>Filipino (Colemak Latin)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak-bay</name>
-- <_description>Filipino (Colemak Baybayin)</_description>
-+ <description>Filipino (Colemak Baybayin)</description>
- <languageList><iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
- <iso639Id>fil</iso639Id>
-@@ -5624,13 +5624,13 @@
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Filipino (Dvorak Latin)</_description>
-+ <description>Filipino (Dvorak Latin)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-bay</name>
-- <_description>Filipino (Dvorak Baybayin)</_description>
-+ <description>Filipino (Dvorak Baybayin)</description>
- <languageList><iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
- <iso639Id>fil</iso639Id>
-@@ -5648,16 +5648,16 @@
- <layout>
- <configItem>
- <name>md</name>
-- <_shortDescription>md</_shortDescription>
-- <_description>Moldavian</_description>
-+ <shortDescription>md</shortDescription>
-+ <description>Moldavian</description>
- <languageList><iso639Id>rum</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>gag</name>
-- <_shortDescription>gag</_shortDescription>
-- <_description>Moldavian (Gagauz)</_description>
-+ <shortDescription>gag</shortDescription>
-+ <description>Moldavian (Gagauz)</description>
- <languageList><iso639Id>gag</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -5666,1183 +5666,1142 @@
- </layoutList>
- <optionList>
- <group allowMultipleSelection="true">
-- <!-- The key combination used to switch between groups -->
-+
- <configItem>
- <name>grp</name>
-- <_description>Switching to another layout</_description>
-+ <description>Switching to another layout</description>
- </configItem>
- <option>
- <configItem>
- <name>grp:switch</name>
-- <_description>Right Alt (while pressed)</_description>
-+ <description>Right Alt (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lswitch</name>
-- <_description>Left Alt (while pressed)</_description>
-+ <description>Left Alt (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lwin_switch</name>
-- <_description>Left Win (while pressed)</_description>
-+ <description>Left Win (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rwin_switch</name>
-- <_description>Right Win (while pressed)</_description>
-+ <description>Right Win (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:win_switch</name>
-- <_description>Any Win key (while pressed)</_description>
-+ <description>Any Win key (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:caps_switch</name>
-- <_description>Caps Lock (while pressed), Alt+Caps Lock does the original capslock action</_description>
-+ <description>Caps Lock (while pressed), Alt+Caps Lock does the original capslock action</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rctrl_switch</name>
-- <_description>Right Ctrl (while pressed)</_description>
-+ <description>Right Ctrl (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:toggle</name>
-- <_description>Right Alt</_description>
-+ <description>Right Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lalt_toggle</name>
-- <_description>Left Alt</_description>
-+ <description>Left Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:caps_toggle</name>
-- <_description>Caps Lock</_description>
-+ <description>Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:shift_caps_toggle</name>
-- <_description>Shift+Caps Lock</_description>
-+ <description>Shift+Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:shift_caps_switch</name>
-- <_description>Caps Lock (to first layout), Shift+Caps Lock (to last layout)</_description>
-+ <description>Caps Lock (to first layout), Shift+Caps Lock (to last layout)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:win_menu_switch</name>
-- <_description>Left Win (to first layout), Right Win/Menu (to last layout)</_description>
-+ <description>Left Win (to first layout), Right Win/Menu (to last layout)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lctrl_rctrl_switch</name>
-- <_description>Left Ctrl (to first layout), Right Ctrl (to last layout)</_description>
-+ <description>Left Ctrl (to first layout), Right Ctrl (to last layout)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:alt_caps_toggle</name>
-- <_description>Alt+Caps Lock</_description>
-+ <description>Alt+Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:shifts_toggle</name>
-- <_description>Both Shift keys together</_description>
-+ <description>Both Shift keys together</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:alts_toggle</name>
-- <_description>Both Alt keys together</_description>
-+ <description>Both Alt keys together</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:ctrls_toggle</name>
-- <_description>Both Ctrl keys together</_description>
-+ <description>Both Ctrl keys together</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:ctrl_shift_toggle</name>
-- <_description>Ctrl+Shift</_description>
-+ <description>Ctrl+Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lctrl_lshift_toggle</name>
-- <_description>Left Ctrl+Left Shift</_description>
-+ <description>Left Ctrl+Left Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rctrl_rshift_toggle</name>
-- <_description>Right Ctrl+Right Shift</_description>
-+ <description>Right Ctrl+Right Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:ctrl_alt_toggle</name>
-- <_description>Alt+Ctrl</_description>
-+ <description>Alt+Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:alt_shift_toggle</name>
-- <_description>Alt+Shift</_description>
-+ <description>Alt+Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lalt_lshift_toggle</name>
-- <_description>Left Alt+Left Shift</_description>
-+ <description>Left Alt+Left Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:alt_space_toggle</name>
-- <_description>Alt+Space</_description>
-+ <description>Alt+Space</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:menu_toggle</name>
-- <_description>Menu</_description>
-+ <description>Menu</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lwin_toggle</name>
-- <_description>Left Win</_description>
-+ <description>Left Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rwin_toggle</name>
-- <_description>Right Win</_description>
-+ <description>Right Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lshift_toggle</name>
-- <_description>Left Shift</_description>
-+ <description>Left Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rshift_toggle</name>
-- <_description>Right Shift</_description>
-+ <description>Right Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lctrl_toggle</name>
-- <_description>Left Ctrl</_description>
-+ <description>Left Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rctrl_toggle</name>
-- <_description>Right Ctrl</_description>
-+ <description>Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:sclk_toggle</name>
-- <_description>Scroll Lock</_description>
-+ <description>Scroll Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lctrl_lwin_rctrl_menu</name>
-- <_description>LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)</_description>
-+ <description>LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
-- <!-- The key combination used to choose the 3rd (and 4th, together with Shift)
-- level of symbols -->
-+
- <configItem>
- <name>lv3</name>
-- <_description>Key to choose 3rd level</_description>
-+ <description>Key to choose 3rd level</description>
- </configItem>
- <option>
- <configItem>
- <name>lv3:switch</name>
-- <_description>Right Ctrl</_description>
-+ <description>Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:menu_switch</name>
-- <_description>Menu</_description>
-+ <description>Menu</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:win_switch</name>
-- <_description>Any Win key</_description>
-+ <description>Any Win key</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:lwin_switch</name>
-- <_description>Left Win</_description>
-+ <description>Left Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:rwin_switch</name>
-- <_description>Right Win</_description>
-+ <description>Right Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:alt_switch</name>
-- <_description>Any Alt key</_description>
-+ <description>Any Alt key</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:lalt_switch</name>
-- <_description>Left Alt</_description>
-+ <description>Left Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:ralt_switch</name>
-- <_description>Right Alt</_description>
-+ <description>Right Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:ralt_switch_multikey</name>
-- <_description>Right Alt, Shift+Right Alt key is Compose</_description>
-+ <description>Right Alt, Shift+Right Alt key is Compose</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:ralt_alt</name>
-- <_description>Right Alt key never chooses 3rd level</_description>
-+ <description>Right Alt key never chooses 3rd level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:enter_switch</name>
-- <_description>Enter on keypad</_description>
-+ <description>Enter on keypad</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:caps_switch</name>
-- <_description>Caps Lock</_description>
-+ <description>Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:bksl_switch</name>
-- <_description>Backslash</_description>
-+ <description>Backslash</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:lsgt_switch</name>
-- <_description>&lt;Less/Greater&gt;</_description>
-+ <description>&lt;Less/Greater&gt;</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:caps_switch_latch</name>
-- <_description>Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
-+ <description>Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:bksl_switch_latch</name>
-- <_description>Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
-+ <description>Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:lsgt_switch_latch</name>
-- <_description>&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
-+ <description>&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
-- <!-- Tweaking the position of the "Ctrl" key -->
-+
- <configItem>
- <name>ctrl</name>
-- <_description>Ctrl key position</_description>
-+ <description>Ctrl key position</description>
- </configItem>
- <option>
- <configItem>
- <name>ctrl:nocaps</name>
-- <_description>Caps Lock as Ctrl</_description>
-+ <description>Caps Lock as Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:lctrl_meta</name>
-- <_description>Left Ctrl as Meta</_description>
-+ <description>Left Ctrl as Meta</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:swapcaps</name>
-- <_description>Swap Ctrl and Caps Lock</_description>
-+ <description>Swap Ctrl and Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:ac_ctrl</name>
-- <_description>At left of 'A'</_description>
-+ <description>At left of 'A'</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:aa_ctrl</name>
-- <_description>At bottom left</_description>
-+ <description>At bottom left</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:rctrl_ralt</name>
-- <_description>Right Ctrl as Right Alt</_description>
-+ <description>Right Ctrl as Right Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:menu_rctrl</name>
-- <_description>Menu as Right Ctrl</_description>
-+ <description>Menu as Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:ctrl_ralt</name>
-- <_description>Right Alt as Right Ctrl</_description>
-+ <description>Right Alt as Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:swap_lalt_lctl</name>
-- <_description>Swap Left Alt key with Left Ctrl key</_description>
-+ <description>Swap Left Alt key with Left Ctrl key</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:swap_lwin_lctl</name>
-- <_description>Swap Left Win key with Left Ctrl key</_description>
-+ <description>Swap Left Win key with Left Ctrl key</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:swap_lalt_lctl_lwin</name>
-- <_description>Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt</_description>
-+ <description>Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
-- <!-- Using startard LEDs to indicate the alternative (not first) group(s) -->
-+
- <configItem>
- <name>grp_led</name>
-- <_description>Use keyboard LED to show alternative layout</_description>
-+ <description>Use keyboard LED to show alternative layout</description>
- </configItem>
- <option>
- <configItem>
- <name>grp_led:num</name>
-- <_description>Num Lock</_description>
-+ <description>Num Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp_led:caps</name>
-- <_description>Caps Lock</_description>
-+ <description>Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp_led:scroll</name>
-- <_description>Scroll Lock</_description>
-+ <description>Scroll Lock</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="false">
-- <!-- Select a keypad type -->
-+
- <configItem>
- <name>keypad</name>
-- <_description>Layout of numeric keypad</_description>
-+ <description>Layout of numeric keypad</description>
- </configItem>
- <option>
- <configItem>
- <name>keypad:legacy</name>
-- <_description>Legacy</_description>
-+ <description>Legacy</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:oss</name>
-- <_description>Unicode additions (arrows and math operators)</_description>
-+ <description>Unicode additions (arrows and math operators)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:future</name>
-- <_description>Unicode additions (arrows and math operators; math operators on default level)</_description>
-+ <description>Unicode additions (arrows and math operators; math operators on default level)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:legacy_wang</name>
-- <_description>Legacy Wang 724</_description>
-+ <description>Legacy Wang 724</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:oss_wang</name>
-- <_description>Wang 724 keypad with Unicode additions (arrows and math operators)</_description>
-+ <description>Wang 724 keypad with Unicode additions (arrows and math operators)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:future_wang</name>
-- <_description>Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)</_description>
-+ <description>Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:hex</name>
-- <_description>Hexadecimal</_description>
-+ <description>Hexadecimal</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:atm</name>
-- <_description>ATM/phone-style</_description>
-+ <description>ATM/phone-style</description>
- </configItem>
- </option>
- </group>
-- <!-- This option should override the KPDL key defined in keypad; I hope it's declared in the right place -->
-+
- <group allowMultipleSelection="false">
-- <!-- Select a keypad KPDL variant -->
-+
- <configItem>
- <name>kpdl</name>
-- <_description>Numeric keypad delete key behaviour</_description>
-+ <description>Numeric keypad delete key behaviour</description>
- </configItem>
- <option>
- <configItem>
-- <!-- Actually, with KP_DECIMAL, as the old keypad(dot) -->
-+
- <name>kpdl:dot</name>
-- <_description>Legacy key with dot</_description>
-+ <description>Legacy key with dot</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:comma</name>
-- <!-- Actually, with KP_SEPARATOR, as the old keypad(comma) -->
-- <_description>Legacy key with comma</_description>
-+
-+ <description>Legacy key with comma</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:dotoss</name>
-- <_description>Four-level key with dot</_description>
-+ <description>Four-level key with dot</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:dotoss_latin9</name>
-- <_description>Four-level key with dot, Latin-9 only</_description>
-+ <description>Four-level key with dot, Latin-9 only</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:commaoss</name>
-- <_description>Four-level key with comma</_description>
-+ <description>Four-level key with comma</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:momayyezoss</name>
-- <_description>Four-level key with momayyez</_description>
-+ <description>Four-level key with momayyez</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:kposs</name>
-- <!-- This assumes the KP_ abstract symbols are actually useful for some apps
-- The description needs to be rewritten -->
-- <_description>Four-level key with abstract separators</_description>
-+
-+ <description>Four-level key with abstract separators</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:semi</name>
-- <_description>Semicolon on third level</_description>
-+ <description>Semicolon on third level</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="false">
-- <!-- Caps Lock tweaks.
-- "Internal" capitalization means capitalization using some internal tables.
-- Otherwise "as Shift" - means using next group. -->
-+
- <configItem>
- <name>caps</name>
-- <_description>Caps Lock key behavior</_description>
-+ <description>Caps Lock key behavior</description>
- </configItem>
- <option>
- <configItem>
- <name>caps:internal</name>
-- <_description>Caps Lock uses internal capitalization; Shift "pauses" Caps Lock</_description>
-+ <description>Caps Lock uses internal capitalization; Shift "pauses" Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:internal_nocancel</name>
-- <_description>Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock</_description>
-+ <description>Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:shift</name>
-- <_description>Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock</_description>
-+ <description>Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:shift_nocancel</name>
-- <_description>Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock</_description>
-+ <description>Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:capslock</name>
-- <_description>Caps Lock toggles normal capitalization of alphabetic characters</_description>
-+ <description>Caps Lock toggles normal capitalization of alphabetic characters</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:numlock</name>
-- <_description>Make Caps Lock an additional Num Lock</_description>
-+ <description>Make Caps Lock an additional Num Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:swapescape</name>
-- <_description>Swap ESC and Caps Lock</_description>
-+ <description>Swap ESC and Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:escape</name>
-- <_description>Make Caps Lock an additional ESC</_description>
-+ <description>Make Caps Lock an additional ESC</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:backspace</name>
-- <_description>Make Caps Lock an additional Backspace</_description>
-+ <description>Make Caps Lock an additional Backspace</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:super</name>
-- <_description>Make Caps Lock an additional Super</_description>
-+ <description>Make Caps Lock an additional Super</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:hyper</name>
-- <_description>Make Caps Lock an additional Hyper</_description>
-+ <description>Make Caps Lock an additional Hyper</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:shiftlock</name>
-- <_description>Caps Lock toggles ShiftLock (affects all keys)</_description>
-+ <description>Caps Lock toggles ShiftLock (affects all keys)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:none</name>
-- <_description>Caps Lock is disabled</_description>
-+ <description>Caps Lock is disabled</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:ctrl_modifier</name>
-- <_description>Make Caps Lock an additional Ctrl</_description>
-+ <description>Make Caps Lock an additional Ctrl</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="false">
-- <!-- Using special PC keys (Win, Menu) to work as standard X keys (Super, Hyper, etc.) -->
-+
- <configItem>
- <name>altwin</name>
-- <_description>Alt/Win key behavior</_description>
-+ <description>Alt/Win key behavior</description>
- </configItem>
- <option>
- <configItem>
- <name>altwin:menu</name>
-- <_description>Add the standard behavior to Menu key</_description>
-+ <description>Add the standard behavior to Menu key</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:meta_alt</name>
-- <_description>Alt and Meta are on Alt keys</_description>
-+ <description>Alt and Meta are on Alt keys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:alt_win</name>
-- <_description>Alt is mapped to Win keys (and the usual Alt keys)</_description>
-+ <description>Alt is mapped to Win keys (and the usual Alt keys)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:ctrl_win</name>
-- <_description>Ctrl is mapped to Win keys (and the usual Ctrl keys)</_description>
-+ <description>Ctrl is mapped to Win keys (and the usual Ctrl keys)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:ctrl_alt_win</name>
-- <_description>Ctrl is mapped to Alt keys, Alt is mapped to Win keys</_description>
-+ <description>Ctrl is mapped to Alt keys, Alt is mapped to Win keys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:meta_win</name>
-- <_description>Meta is mapped to Win keys</_description>
-+ <description>Meta is mapped to Win keys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:left_meta_win</name>
-- <_description>Meta is mapped to Left Win</_description>
-+ <description>Meta is mapped to Left Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:hyper_win</name>
-- <_description>Hyper is mapped to Win-keys</_description>
-+ <description>Hyper is mapped to Win-keys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:alt_super_win</name>
-- <_description>Alt is mapped to Right Win, Super to Menu</_description>
-+ <description>Alt is mapped to Right Win, Super to Menu</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:swap_alt_win</name>
-- <_description>Alt is swapped with Win</_description>
-+ <description>Alt is swapped with Win</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
-- <!-- Tweaking the position of the "Compose" key: mapping to existing PC keys -->
-+
- <configItem>
- <name>Compose key</name>
-- <_description>Position of Compose key</_description>
-+ <description>Position of Compose key</description>
- </configItem>
- <option>
- <configItem>
- <name>compose:ralt</name>
-- <_description>Right Alt</_description>
-+ <description>Right Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:lwin</name>
-- <_description>Left Win</_description>
-+ <description>Left Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:lwin-altgr</name>
-- <_description>3rd level of Left Win</_description>
-+ <description>3rd level of Left Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:rwin</name>
-- <_description>Right Win</_description>
-+ <description>Right Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:rwin-altgr</name>
-- <_description>3rd level of Right Win</_description>
-+ <description>3rd level of Right Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:menu</name>
-- <_description>Menu</_description>
-+ <description>Menu</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:menu-altgr</name>
-- <_description>3rd level of Menu</_description>
-+ <description>3rd level of Menu</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:lctrl</name>
-- <_description>Left Ctrl</_description>
-+ <description>Left Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:lctrl-altgr</name>
-- <_description>3rd level of Left Ctrl</_description>
-+ <description>3rd level of Left Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:rctrl</name>
-- <_description>Right Ctrl</_description>
-+ <description>Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:rctrl-altgr</name>
-- <_description>3rd level of Right Ctrl</_description>
-+ <description>3rd level of Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:caps</name>
-- <_description>Caps Lock</_description>
-+ <description>Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:caps-altgr</name>
-- <_description>3rd level of Caps Lock</_description>
-+ <description>3rd level of Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:102</name>
-- <_description>&lt;Less/Greater&gt;</_description>
-+ <description>&lt;Less/Greater&gt;</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:102-altgr</name>
-- <_description>3rd level of &lt;Less/Greater&gt;</_description>
-+ <description>3rd level of &lt;Less/Greater&gt;</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:paus</name>
-- <_description>Pause</_description>
-+ <description>Pause</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:prsc</name>
-- <_description>PrtSc</_description>
-+ <description>PrtSc</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:sclk</name>
-- <_description>Scroll Lock</_description>
-+ <description>Scroll Lock</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
- <configItem>
- <name>compat</name>
-- <_description>Miscellaneous compatibility options</_description>
-+ <description>Miscellaneous compatibility options</description>
- </configItem>
- <option>
- <configItem>
- <name>numpad:pc</name>
-- <_description>Default numeric keypad keys</_description>
-+ <description>Default numeric keypad keys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>numpad:mac</name>
-- <_description>Numeric keypad keys always enter digits (as in Mac OS)</_description>
-+ <description>Numeric keypad keys always enter digits (as in Mac OS)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>numpad:microsoft</name>
-- <_description>Shift with numeric keypad keys works as in MS Windows</_description>
-+ <description>Shift with numeric keypad keys works as in MS Windows</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>numpad:shift3</name>
-- <_description>Shift does not cancel Num Lock, chooses 3rd level instead</_description>
-+ <description>Shift does not cancel Num Lock, chooses 3rd level instead</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>srvrkeys:none</name>
-- <_description>Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server</_description>
-+ <description>Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>apple:alupckeys</name>
-- <_description>Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)</_description>
-+ <description>Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>shift:breaks_caps</name>
-- <_description>Shift cancels Caps Lock</_description>
-+ <description>Shift cancels Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>misc:typo</name>
-- <_description>Enable extra typographic characters</_description>
-+ <description>Enable extra typographic characters</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>shift:both_capslock</name>
-- <_description>Both Shift keys together toggle Caps Lock</_description>
-+ <description>Both Shift keys together toggle Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>shift:both_capslock_cancel</name>
-- <_description>Both Shift keys together activate Caps Lock, one Shift key deactivates</_description>
-+ <description>Both Shift keys together activate Caps Lock, one Shift key deactivates</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>shift:both_shiftlock</name>
-- <_description>Both Shift keys together toggle ShiftLock</_description>
-+ <description>Both Shift keys together toggle ShiftLock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:pointerkeys</name>
-- <_description>Shift + NumLock toggles PointerKeys</_description>
-+ <description>Shift + NumLock toggles PointerKeys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grab:break_actions</name>
-- <_description>Allow breaking grabs with keyboard actions (warning: security risk)</_description>
-+ <description>Allow breaking grabs with keyboard actions (warning: security risk)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grab:debug_actions</name>
-- <_description>Allow grab and window tree logging</_description>
-+ <description>Allow grab and window tree logging</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
-- <!-- Special shortcuts for the Euro character -->
-+
- <configItem>
- <name>currencysign</name>
-- <_description>Adding currency signs to certain keys</_description>
-+ <description>Adding currency signs to certain keys</description>
- </configItem>
- <option>
- <configItem>
- <name>eurosign:e</name>
-- <_description>Euro on E</_description>
-+ <description>Euro on E</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>eurosign:2</name>
-- <_description>Euro on 2</_description>
-+ <description>Euro on 2</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>eurosign:4</name>
-- <_description>Euro on 4</_description>
-+ <description>Euro on 4</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>eurosign:5</name>
-- <_description>Euro on 5</_description>
-+ <description>Euro on 5</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>rupeesign:4</name>
-- <_description>Rupee on 4</_description>
-+ <description>Rupee on 4</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
- <configItem>
- <name>lv5</name>
-- <_description>Key to choose 5th level</_description>
-+ <description>Key to choose 5th level</description>
- </configItem>
- <option>
- <configItem>
- <name>lv5:lsgt_switch_lock</name>
-- <_description>&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
-+ <description>&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv5:ralt_switch_lock</name>
-- <_description>Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
-+ <description>Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv5:lwin_switch_lock</name>
-- <_description>Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
-+ <description>Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv5:rwin_switch_lock</name>
-- <_description>Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
--<!--
-- <option>
-- <configItem>
-- <name>lv5:lsgt_switch_lock_cancel</name>
-- <_description>&lt;Less/Greater&gt; chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
-- <option>
-- <configItem>
-- <name>lv5:ralt_switch_lock_cancel</name>
-- <_description>Right Alt chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
-- <option>
-- <configItem>
-- <name>lv5:lwin_switch_lock_cancel</name>
-- <_description>Left Win chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
-- <option>
-- <configItem>
-- <name>lv5:rwin_switch_lock_cancel</name>
-- <_description>Right Win chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
-- <option>
-- <configItem>
-- <name>lv5:lsgt_switch_lock_cancel</name>
-- <_description>&lt;Less/Greater&gt; chooses 5th level, acts as onetime lock lock when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
-- <option>
-- <configItem>
-- <name>lv5:ralt_switch_lock_cancel</name>
-- <_description>Right Alt chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
-+ <description>Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
- </configItem>
- </option>
---->
-+
- </group>
- <group allowMultipleSelection="false">
-- <!-- Let space output NBSP, NNBSP, ZWNJ, and ZWJ for the desired level -->
-+
- <configItem>
- <name>nbsp</name>
-- <_description>Using space key to input non-breakable space character</_description>
-+ <description>Using space key to input non-breakable space character</description>
- </configItem>
- <option>
- <configItem>
- <name>nbsp:none</name>
-- <_description>Usual space at any level</_description>
-+ <description>Usual space at any level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level2</name>
-- <_description>Non-breakable space character at second level</_description>
-+ <description>Non-breakable space character at second level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level3</name>
-- <_description>Non-breakable space character at third level</_description>
-+ <description>Non-breakable space character at third level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level3s</name>
-- <_description>Non-breakable space character at third level, nothing at fourth level</_description>
-+ <description>Non-breakable space character at third level, nothing at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level3n</name>
-- <_description>Non-breakable space character at third level, thin non-breakable space character at fourth level</_description>
-+ <description>Non-breakable space character at third level, thin non-breakable space character at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level4</name>
-- <_description>Non-breakable space character at fourth level</_description>
-+ <description>Non-breakable space character at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level4n</name>
-- <_description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level</_description>
-+ <description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level4nl</name>
-- <_description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)</_description>
-+ <description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2</name>
-- <_description>Zero-width non-joiner character at second level</_description>
-+ <description>Zero-width non-joiner character at second level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2zwj3</name>
-- <_description>Zero-width non-joiner character at second level, zero-width joiner character at third level</_description>
-+ <description>Zero-width non-joiner character at second level, zero-width joiner character at third level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2zwj3nb4</name>
-- <_description>Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level</_description>
-+ <description>Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2nb3</name>
-- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level</_description>
-+ <description>Zero-width non-joiner character at second level, non-breakable space character at third level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2nb3s</name>
-- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level</_description>
-+ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2nb3zwj4</name>
-- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level</_description>
-+ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2nb3nnb4</name>
-- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level</_description>
-+ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj3zwj4</name>
-- <_description>Zero-width non-joiner character at third level, zero-width joiner at fourth level</_description>
-+ <description>Zero-width non-joiner character at third level, zero-width joiner at fourth level</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
- <configItem>
- <name>japan</name>
-- <_description>Japanese keyboard options</_description>
-+ <description>Japanese keyboard options</description>
- </configItem>
- <option>
- <configItem>
- <name>japan:kana_lock</name>
-- <_description>Kana Lock key is locking</_description>
-+ <description>Kana Lock key is locking</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>japan:nicola_f_bs</name>
-- <_description>NICOLA-F style Backspace</_description>
-+ <description>NICOLA-F style Backspace</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>japan:hztg_escape</name>
-- <_description>Make Zenkaku Hankaku an additional ESC</_description>
-+ <description>Make Zenkaku Hankaku an additional ESC</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="false">
- <configItem>
- <name>esperanto</name>
-- <_description>Adding Esperanto supersigned letters</_description>
-+ <description>Adding Esperanto supersigned letters</description>
- </configItem>
- <option>
- <configItem>
- <name>esperanto:qwerty</name>
-- <_description>To the corresponding key in a Qwerty layout</_description>
-+ <description>To the corresponding key in a Qwerty layout</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>esperanto:dvorak</name>
-- <_description>To the corresponding key in a Dvorak layout</_description>
-+ <description>To the corresponding key in a Dvorak layout</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>esperanto:colemak</name>
-- <_description>To the corresponding key in a Colemak layout</_description>
-+ <description>To the corresponding key in a Colemak layout</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
- <configItem>
- <name>solaris</name>
-- <_description>Maintain key compatibility with old Solaris keycodes</_description>
-+ <description>Maintain key compatibility with old Solaris keycodes</description>
- </configItem>
- <option>
- <configItem>
- <name>solaris:sun_compat</name>
-- <_description>Sun Key compatibility</_description>
-+ <description>Sun Key compatibility</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
- <configItem>
- <name>terminate</name>
-- <_description>Key sequence to kill the X server</_description>
-+ <description>Key sequence to kill the X server</description>
- </configItem>
- <option>
- <configItem>
- <name>terminate:ctrl_alt_bksp</name>
-- <_description>Ctrl + Alt + Backspace</_description>
-+ <description>Ctrl + Alt + Backspace</description>
- </configItem>
- </option>
- </group>
- </optionList>
--</xkbConfigRegistry>
-+</xkbConfigRegistry>
-\ No newline at end of file
diff --git a/package/xkeyboard-config/patches/patch-rules_evdev_extras_xml_in b/package/xkeyboard-config/patches/patch-rules_evdev_extras_xml_in
deleted file mode 100644
index 185ded7f8..000000000
--- a/package/xkeyboard-config/patches/patch-rules_evdev_extras_xml_in
+++ /dev/null
@@ -1,855 +0,0 @@
---- xkeyboard-config-2.11.orig/rules/evdev.extras.xml.in 2013-12-24 00:49:09.000000000 +0100
-+++ xkeyboard-config-2.11/rules/evdev.extras.xml.in 2014-03-04 14:31:30.000000000 +0100
-@@ -1,4 +1,4 @@
--<?xml version="1.0" encoding="utf-8"?>
-+<?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
- <xkbConfigRegistry>
- <modelList/>
-@@ -6,8 +6,8 @@
- <layout>
- <configItem>
- <name>apl</name>
-- <_shortDescription>apl</_shortDescription>
-- <_description>APL keyboard symbols</_description>
-+ <shortDescription>apl</shortDescription>
-+ <description>APL keyboard symbols</description>
- <languageList><iso639Id>eng</iso639Id></languageList>
- </configItem>
- <variantList>
-@@ -58,29 +58,29 @@
- <layout>
- <configItem>
- <name>ca</name>
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Canada)</_description>
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Canada)</description>
- <languageList><iso639Id>fra</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>kut</name>
-- <_shortDescription>kut</_shortDescription>
-- <_description>Kutenai</_description>
-+ <shortDescription>kut</shortDescription>
-+ <description>Kutenai</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>shs</name>
-- <_shortDescription>shs</_shortDescription>
-- <_description>Secwepemctsin</_description>
-+ <shortDescription>shs</shortDescription>
-+ <description>Secwepemctsin</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Multilingual (Canada, Sun Type 6/7)</_description>
-+ <description>Multilingual (Canada, Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -88,8 +88,8 @@
- <layout>
- <configItem>
- <name>de</name>
-- <_shortDescription>de</_shortDescription>
-- <_description>German</_description>
-+ <shortDescription>de</shortDescription>
-+ <description>German</description>
- <languageList>
- <iso639Id>ger</iso639Id>
- </languageList>
-@@ -98,7 +98,7 @@
- <variant>
- <configItem>
- <name>us</name>
-- <_description>German (US keyboard with German letters)</_description>
-+ <description>German (US keyboard with German letters)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -107,7 +107,7 @@
- <variant>
- <configItem>
- <name>hu</name>
-- <_description>German (with Hungarian letters and no dead keys)</_description>
-+ <description>German (with Hungarian letters and no dead keys)</description>
- <languageList>
- <iso639Id>ger</iso639Id>
- <iso639Id>hun</iso639Id>
-@@ -117,7 +117,7 @@
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>German (Sun Type 6/7)</_description>
-+ <description>German (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -125,15 +125,15 @@
- <layout>
- <configItem>
- <name>ir</name>
-- <_shortDescription>fa</_shortDescription>
-- <_description>Persian</_description>
-+ <shortDescription>fa</shortDescription>
-+ <description>Persian</description>
- <languageList><iso639Id>per</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>ave</name>
-- <_description>Avestan</_description>
-+ <description>Avestan</description>
- <languageList><iso639Id>ave</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -142,21 +142,21 @@
- <layout>
- <configItem>
- <name>lt</name>
-- <_shortDescription>lt</_shortDescription>
-- <_description>Lithuanian</_description>
-+ <shortDescription>lt</shortDescription>
-+ <description>Lithuanian</description>
- <languageList><iso639Id>lit</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>us_dvorak</name>
-- <_description>Lithuanian (US Dvorak with Lithuanian letters)</_description>
-+ <description>Lithuanian (US Dvorak with Lithuanian letters)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Lithuanian (Sun Type 6/7)</_description>
-+ <description>Lithuanian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -164,8 +164,8 @@
- <layout>
- <configItem>
- <name>lv</name>
-- <_shortDescription>lv</_shortDescription>
-- <_description>Latvian</_description>
-+ <shortDescription>lv</shortDescription>
-+ <description>Latvian</description>
- <languageList>
- <iso639Id>lav</iso639Id>
- </languageList>
-@@ -174,55 +174,55 @@
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Latvian (US Dvorak)</_description>
-+ <description>Latvian (US Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ykeydvorak</name>
-- <_description>Latvian (US Dvorak, Y variant)</_description>
-+ <description>Latvian (US Dvorak, Y variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>minuskeydvorak</name>
-- <_description>Latvian (US Dvorak, minus variant)</_description>
-+ <description>Latvian (US Dvorak, minus variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorakprogr</name>
-- <_description>Latvian (programmer US Dvorak)</_description>
-+ <description>Latvian (programmer US Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ykeydvorakprogr</name>
-- <_description>Latvian (programmer US Dvorak, Y variant)</_description>
-+ <description>Latvian (programmer US Dvorak, Y variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>minuskeydvorakprogr</name>
-- <_description>Latvian (programmer US Dvorak, minus variant)</_description>
-+ <description>Latvian (programmer US Dvorak, minus variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>Latvian (US Colemak)</_description>
-+ <description>Latvian (US Colemak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>apostrophecolemak</name>
-- <_description>Latvian (US Colemak, apostrophe variant)</_description>
-+ <description>Latvian (US Colemak, apostrophe variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Latvian (Sun Type 6/7)</_description>
-+ <description>Latvian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -230,34 +230,34 @@
- <layout>
- <configItem>
- <name>us</name>
-- <_shortDescription>en</_shortDescription>
-- <_description>English (US)</_description>
-+ <shortDescription>en</shortDescription>
-+ <description>English (US)</description>
- <languageList><iso639Id>eng</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>intl-unicode</name>
-- <_description>English (US, international AltGr Unicode combining)</_description>
-+ <description>English (US, international AltGr Unicode combining)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>alt-intl-unicode</name>
-- <_description>English (US, international AltGr Unicode combining, alternative)</_description>
-+ <description>English (US, international AltGr Unicode combining, alternative)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ats</name>
-- <_description>Atsina</_description>
-- <!-- No ISO code in ISO639-2, only draft ISO693-3 -->
-+ <description>Atsina</description>
-+
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>crd</name>
-- <_description>Coeur d'Alene Salish</_description>
-+ <description>Coeur d'Alene Salish</description>
- <languageList><iso639Id>crd</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -274,13 +274,13 @@
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>English (US, Sun Type 6/7)</_description>
-+ <description>English (US, Sun Type 6/7)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>norman</name>
-- <_description>English (Norman)</_description>
-+ <description>English (Norman)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -288,27 +288,27 @@
- <layout>
- <configItem>
- <name>pl</name>
-- <_shortDescription>pl</_shortDescription>
-- <_description>Polish</_description>
-+ <shortDescription>pl</shortDescription>
-+ <description>Polish</description>
- <languageList><iso639Id>pol</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>intl</name>
-- <_description>Polish (international with dead keys)</_description>
-+ <description>Polish (international with dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>Polish (Colemak)</_description>
-+ <description>Polish (Colemak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Polish (Sun Type 6/7)</_description>
-+ <description>Polish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -316,16 +316,16 @@
- <layout>
- <configItem>
- <name>ro</name>
-- <_shortDescription>ro</_shortDescription>
-- <_description>Romanian</_description>
-+ <shortDescription>ro</shortDescription>
-+ <description>Romanian</description>
- <languageList><iso639Id>rum</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>crh_dobruja</name>
-- <_shortDescription>crh</_shortDescription>
-- <_description>Crimean Tatar (Dobruja Q)</_description>
-+ <shortDescription>crh</shortDescription>
-+ <description>Crimean Tatar (Dobruja Q)</description>
- <languageList>
- <iso639Id>crh</iso639Id>
- </languageList>
-@@ -334,13 +334,13 @@
- <variant>
- <configItem>
- <name>ergonomic</name>
-- <_description>Romanian (ergonomic Touchtype)</_description>
-+ <description>Romanian (ergonomic Touchtype)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Romanian (Sun Type 6/7)</_description>
-+ <description>Romanian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -348,15 +348,15 @@
- <layout>
- <configItem>
- <name>rs</name>
-- <_shortDescription>sr</_shortDescription>
-- <_description>Serbian</_description>
-+ <shortDescription>sr</shortDescription>
-+ <description>Serbian</description>
- <languageList><iso639Id>srp</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>combiningkeys</name>
-- <_description>Serbian (combining accents instead of dead keys)</_description>
-+ <description>Serbian (combining accents instead of dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -364,8 +364,8 @@
- <layout>
- <configItem>
- <name>ru</name>
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian</_description>
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian</description>
- </configItem>
- <variantList>
- <variant>
-@@ -378,8 +378,8 @@
- <variant>
- <configItem>
- <name>ruu</name>
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (with Ukrainian-Belorussian layout)</_description>
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (with Ukrainian-Belorussian layout)</description>
- <languageList><iso639Id>rus</iso639Id>
- <iso639Id>ukr</iso639Id>
- <iso639Id>bel</iso639Id></languageList>
-@@ -388,7 +388,7 @@
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Russian (Sun Type 6/7)</_description>
-+ <description>Russian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -396,8 +396,8 @@
- <layout>
- <configItem>
- <name>am</name>
-- <_shortDescription>hy</_shortDescription>
-- <_description>Armenian</_description>
-+ <shortDescription>hy</shortDescription>
-+ <description>Armenian</description>
- <languageList>
- <iso639Id>hye</iso639Id>
- </languageList>
-@@ -406,7 +406,7 @@
- <variant>
- <configItem>
- <name>olpc-phonetic</name>
-- <_description>Armenian (OLPC phonetic)</_description>
-+ <description>Armenian (OLPC phonetic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -414,15 +414,15 @@
- <layout>
- <configItem>
- <name>il</name>
-- <_shortDescription>he</_shortDescription>
-- <_description>Hebrew</_description>
-+ <shortDescription>he</shortDescription>
-+ <description>Hebrew</description>
- <languageList><iso639Id>heb</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>biblicalSIL</name>
-- <_description>Hebrew (Biblical, SIL phonetic)</_description>
-+ <description>Hebrew (Biblical, SIL phonetic)</description>
- <languageList><iso639Id>heb</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -431,14 +431,14 @@
- <layout>
- <configItem>
- <name>ara</name>
-- <_shortDescription>ar</_shortDescription>
-- <_description>Arabic</_description>
-+ <shortDescription>ar</shortDescription>
-+ <description>Arabic</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Arabic (Sun Type 6/7)</_description>
-+ <description>Arabic (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -446,14 +446,14 @@
- <layout>
- <configItem>
- <name>be</name>
-- <_shortDescription>be</_shortDescription>
-- <_description>Belgian</_description>
-+ <shortDescription>be</shortDescription>
-+ <description>Belgian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Belgian (Sun Type 6/7)</_description>
-+ <description>Belgian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -461,14 +461,14 @@
- <layout>
- <configItem>
- <name>br</name>
-- <_shortDescription>pt</_shortDescription>
-- <_description>Portuguese (Brazil)</_description>
-+ <shortDescription>pt</shortDescription>
-+ <description>Portuguese (Brazil)</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Portuguese (Brazil, Sun Type 6/7)</_description>
-+ <description>Portuguese (Brazil, Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -476,14 +476,14 @@
- <layout>
- <configItem>
- <name>cz</name>
-- <_shortDescription>cs</_shortDescription>
-- <_description>Czech</_description>
-+ <shortDescription>cs</shortDescription>
-+ <description>Czech</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Czech (Sun Type 6/7)</_description>
-+ <description>Czech (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -491,14 +491,14 @@
- <layout>
- <configItem>
- <name>dk</name>
-- <_shortDescription>da</_shortDescription>
-- <_description>Danish</_description>
-+ <shortDescription>da</shortDescription>
-+ <description>Danish</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Danish (Sun Type 6/7)</_description>
-+ <description>Danish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -506,14 +506,14 @@
- <layout>
- <configItem>
- <name>nl</name>
-- <_shortDescription>nl</_shortDescription>
-- <_description>Dutch</_description>
-+ <shortDescription>nl</shortDescription>
-+ <description>Dutch</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Dutch (Sun Type 6/7)</_description>
-+ <description>Dutch (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -521,14 +521,14 @@
- <layout>
- <configItem>
- <name>ee</name>
-- <_shortDescription>et</_shortDescription>
-- <_description>Estonian</_description>
-+ <shortDescription>et</shortDescription>
-+ <description>Estonian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Estonian (Sun Type 6/7)</_description>
-+ <description>Estonian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -536,14 +536,14 @@
- <layout>
- <configItem>
- <name>fi</name>
-- <_shortDescription>fi</_shortDescription>
-- <_description>Finnish</_description>
-+ <shortDescription>fi</shortDescription>
-+ <description>Finnish</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Finnish (Sun Type 6/7)</_description>
-+ <description>Finnish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -551,14 +551,14 @@
- <layout>
- <configItem>
- <name>fr</name>
-- <_shortDescription>fr</_shortDescription>
-- <_description>French</_description>
-+ <shortDescription>fr</shortDescription>
-+ <description>French</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>French (Sun Type 6/7)</_description>
-+ <description>French (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -566,14 +566,14 @@
- <layout>
- <configItem>
- <name>gr</name>
-- <_shortDescription>gr</_shortDescription>
-- <_description>Greek</_description>
-+ <shortDescription>gr</shortDescription>
-+ <description>Greek</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Greek (Sun Type 6/7)</_description>
-+ <description>Greek (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -581,14 +581,14 @@
- <layout>
- <configItem>
- <name>it</name>
-- <_shortDescription>it</_shortDescription>
-- <_description>Italian</_description>
-+ <shortDescription>it</shortDescription>
-+ <description>Italian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Italian (Sun Type 6/7)</_description>
-+ <description>Italian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -596,26 +596,26 @@
- <layout>
- <configItem>
- <name>jp</name>
-- <_shortDescription>ja</_shortDescription>
-- <_description>Japanese</_description>
-+ <shortDescription>ja</shortDescription>
-+ <description>Japanese</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Japanese (Sun Type 6)</_description>
-+ <description>Japanese (Sun Type 6)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type7</name>
-- <_description>Japanese (Sun Type 7 - pc compatible)</_description>
-+ <description>Japanese (Sun Type 7 - pc compatible)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type7_suncompat</name>
-- <_description>Japanese (Sun Type 7 - sun compatible)</_description>
-+ <description>Japanese (Sun Type 7 - sun compatible)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -623,14 +623,14 @@
- <layout>
- <configItem>
- <name>no</name>
-- <_shortDescription>no</_shortDescription>
-- <_description>Norwegian</_description>
-+ <shortDescription>no</shortDescription>
-+ <description>Norwegian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Norwegian (Sun Type 6/7)</_description>
-+ <description>Norwegian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -638,14 +638,14 @@
- <layout>
- <configItem>
- <name>pt</name>
-- <_shortDescription>pt</_shortDescription>
-- <_description>Portuguese</_description>
-+ <shortDescription>pt</shortDescription>
-+ <description>Portuguese</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Portuguese (Sun Type 6/7)</_description>
-+ <description>Portuguese (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -653,14 +653,14 @@
- <layout>
- <configItem>
- <name>sk</name>
-- <_shortDescription>sk</_shortDescription>
-- <_description>Slovak</_description>
-+ <shortDescription>sk</shortDescription>
-+ <description>Slovak</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Slovak (Sun Type 6/7)</_description>
-+ <description>Slovak (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -668,14 +668,14 @@
- <layout>
- <configItem>
- <name>es</name>
-- <_shortDescription>es</_shortDescription>
-- <_description>Spanish</_description>
-+ <shortDescription>es</shortDescription>
-+ <description>Spanish</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Spanish (Sun Type 6/7)</_description>
-+ <description>Spanish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -683,14 +683,14 @@
- <layout>
- <configItem>
- <name>se</name>
-- <_shortDescription>sv</_shortDescription>
-- <_description>Swedish</_description>
-+ <shortDescription>sv</shortDescription>
-+ <description>Swedish</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Swedish (Sun Type 6/7)</_description>
-+ <description>Swedish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -698,20 +698,20 @@
- <layout>
- <configItem>
- <name>ch</name>
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Switzerland)</_description>
-+ <shortDescription>de</shortDescription>
-+ <description>German (Switzerland)</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6_de</name>
-- <_description>German (Switzerland, Sun Type 6/7)</_description>
-+ <description>German (Switzerland, Sun Type 6/7)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sun_type6_fr</name>
-- <_description>French (Switzerland, Sun Type 6/7)</_description>
-+ <description>French (Switzerland, Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -719,14 +719,14 @@
- <layout>
- <configItem>
- <name>tr</name>
-- <_shortDescription>tr</_shortDescription>
-- <_description>Turkish</_description>
-+ <shortDescription>tr</shortDescription>
-+ <description>Turkish</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Turkish (Sun Type 6/7)</_description>
-+ <description>Turkish (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -734,14 +734,14 @@
- <layout>
- <configItem>
- <name>ua</name>
-- <_shortDescription>uk</_shortDescription>
-- <_description>Ukrainian</_description>
-+ <shortDescription>uk</shortDescription>
-+ <description>Ukrainian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Ukrainian (Sun Type 6/7)</_description>
-+ <description>Ukrainian (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -749,14 +749,14 @@
- <layout>
- <configItem>
- <name>gb</name>
-- <_shortDescription>en</_shortDescription>
-- <_description>English (UK)</_description>
-+ <shortDescription>en</shortDescription>
-+ <description>English (UK)</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>English (UK, Sun Type 6/7)</_description>
-+ <description>English (UK, Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -764,18 +764,18 @@
- <layout>
- <configItem>
- <name>kr</name>
-- <_shortDescription>ko</_shortDescription>
-- <_description>Korean</_description>
-+ <shortDescription>ko</shortDescription>
-+ <description>Korean</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>sun_type6</name>
-- <_description>Korean (Sun Type 6/7)</_description>
-+ <description>Korean (Sun Type 6/7)</description>
- </configItem>
- </variant>
- </variantList>
- </layout>
- </layoutList>
- <optionList/>
--</xkbConfigRegistry>
-+</xkbConfigRegistry>
-\ No newline at end of file
diff --git a/package/xkeyboard-config/patches/patch-rules_evdev_xml_in b/package/xkeyboard-config/patches/patch-rules_evdev_xml_in
deleted file mode 100644
index 57eb6df34..000000000
--- a/package/xkeyboard-config/patches/patch-rules_evdev_xml_in
+++ /dev/null
@@ -1,7654 +0,0 @@
---- xkeyboard-config-2.11.orig/rules/evdev.xml.in 2014-01-15 02:05:04.000000000 +0100
-+++ xkeyboard-config-2.11/rules/evdev.xml.in 2014-03-04 14:30:54.000000000 +0100
-@@ -5,627 +5,627 @@
- <model>
- <configItem>
- <name>pc101</name>
-- <_description>Generic 101-key PC</_description>
-+ <description>Generic 101-key PC</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>pc102</name>
-- <_description>Generic 102-key (Intl) PC</_description>
-+ <description>Generic 102-key (Intl) PC</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>pc104</name>
-- <_description>Generic 104-key PC</_description>
-+ <description>Generic 104-key PC</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>pc105</name>
-- <_description>Generic 105-key (Intl) PC</_description>
-+ <description>Generic 105-key (Intl) PC</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dell101</name>
-- <_description>Dell 101-key PC</_description>
-+ <description>Dell 101-key PC</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>latitude</name>
-- <_description>Dell Latitude series laptop</_description>
-+ <description>Dell Latitude series laptop</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dellm65</name>
-- <_description>Dell Precision M65</_description>
-+ <description>Dell Precision M65</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>everex</name>
-- <_description>Everex STEPnote</_description>
-+ <description>Everex STEPnote</description>
- <vendor>Everex</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>flexpro</name>
-- <_description>Keytronic FlexPro</_description>
-+ <description>Keytronic FlexPro</description>
- <vendor>Keytronic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoft</name>
-- <_description>Microsoft Natural</_description>
-+ <description>Microsoft Natural</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>omnikey101</name>
-- <_description>Northgate OmniKey 101</_description>
-+ <description>Northgate OmniKey 101</description>
- <vendor>Northgate</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>winbook</name>
-- <_description>Winbook Model XP5</_description>
-+ <description>Winbook Model XP5</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>pc98</name>
-- <_description>PC-98xx Series</_description>
-+ <description>PC-98xx Series</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>a4techKB21</name>
-- <_description>A4Tech KB-21</_description>
-+ <description>A4Tech KB-21</description>
- <vendor>A4Tech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>a4techKBS8</name>
-- <_description>A4Tech KBS-8</_description>
-+ <description>A4Tech KBS-8</description>
- <vendor>A4Tech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>a4_rfkb23</name>
-- <_description>A4Tech Wireless Desktop RFKB-23</_description>
-+ <description>A4Tech Wireless Desktop RFKB-23</description>
- <vendor>A4Tech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>airkey</name>
-- <_description>Acer AirKey V</_description>
-+ <description>Acer AirKey V</description>
- <vendor>Acer</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>azonaRF2300</name>
-- <_description>Azona RF2300 wireless Internet Keyboard</_description>
-+ <description>Azona RF2300 wireless Internet Keyboard</description>
- <vendor>Azona</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>scorpius</name>
-- <_description>Advance Scorpius KI</_description>
-+ <description>Advance Scorpius KI</description>
- <vendor>Scorpius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>brother</name>
-- <_description>Brother Internet Keyboard</_description>
-+ <description>Brother Internet Keyboard</description>
- <vendor>Brother</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc5113rf</name>
-- <_description>BTC 5113RF Multimedia</_description>
-+ <description>BTC 5113RF Multimedia</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc5126t</name>
-- <_description>BTC 5126T</_description>
-+ <description>BTC 5126T</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc6301urf</name>
-- <_description>BTC 6301URF</_description>
-+ <description>BTC 6301URF</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc9000</name>
-- <_description>BTC 9000</_description>
-+ <description>BTC 9000</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc9000a</name>
-- <_description>BTC 9000A</_description>
-+ <description>BTC 9000A</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc9001ah</name>
-- <_description>BTC 9001AH</_description>
-+ <description>BTC 9001AH</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc5090</name>
-- <_description>BTC 5090</_description>
-+ <description>BTC 5090</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc9019u</name>
-- <_description>BTC 9019U</_description>
-+ <description>BTC 9019U</description>
- <vendor>BTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>btc9116u</name>
-- <_description>BTC 9116U Mini Wireless Internet and Gaming</_description>
-+ <description>BTC 9116U Mini Wireless Internet and Gaming</description>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherryblue</name>
-- <_description>Cherry Blue Line CyBo@rd</_description>
-+ <description>Cherry Blue Line CyBo@rd</description>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherryblueb</name>
-- <_description>Cherry CyMotion Master XPress</_description>
-+ <description>Cherry CyMotion Master XPress</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherrybluea</name>
-- <_description>Cherry Blue Line CyBo@rd (alternate option)</_description>
-+ <description>Cherry Blue Line CyBo@rd (alternate option)</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherrycyboard</name>
-- <_description>Cherry CyBo@rd USB-Hub</_description>
-+ <description>Cherry CyBo@rd USB-Hub</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherrycmexpert</name>
-- <_description>Cherry CyMotion Expert</_description>
-+ <description>Cherry CyMotion Expert</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cherrybunlim</name>
-- <_description>Cherry B.UNLIMITED</_description>
-+ <description>Cherry B.UNLIMITED</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>chicony</name>
-- <_description>Chicony Internet Keyboard</_description>
-+ <description>Chicony Internet Keyboard</description>
- <vendor>Chicony</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>chicony0108</name>
-- <_description>Chicony KU-0108</_description>
-+ <description>Chicony KU-0108</description>
- <vendor>Chicony</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>chicony0420</name>
-- <_description>Chicony KU-0420</_description>
-+ <description>Chicony KU-0420</description>
- <vendor>Chicony</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>chicony9885</name>
-- <_description>Chicony KB-9885</_description>
-+ <description>Chicony KB-9885</description>
- <vendor>Chicony</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>compaqeak8</name>
-- <_description>Compaq Easy Access Keyboard</_description>
-+ <description>Compaq Easy Access Keyboard</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>compaqik7</name>
-- <_description>Compaq Internet Keyboard (7 keys)</_description>
-+ <description>Compaq Internet Keyboard (7 keys)</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>compaqik13</name>
-- <_description>Compaq Internet Keyboard (13 keys)</_description>
-+ <description>Compaq Internet Keyboard (13 keys)</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>compaqik18</name>
-- <_description>Compaq Internet Keyboard (18 keys)</_description>
-+ <description>Compaq Internet Keyboard (18 keys)</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>cymotionlinux</name>
-- <_description>Cherry CyMotion Master Linux</_description>
-+ <description>Cherry CyMotion Master Linux</description>
- <vendor>Cherry</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>armada</name>
-- <_description>Laptop/notebook Compaq (eg. Armada) Laptop Keyboard</_description>
-+ <description>Laptop/notebook Compaq (eg. Armada) Laptop Keyboard</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>presario</name>
-- <_description>Laptop/notebook Compaq (eg. Presario) Internet Keyboard</_description>
-+ <description>Laptop/notebook Compaq (eg. Presario) Internet Keyboard</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>ipaq</name>
-- <_description>Compaq iPaq Keyboard</_description>
-+ <description>Compaq iPaq Keyboard</description>
- <vendor>Compaq</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dell</name>
-- <_description>Dell</_description>
-+ <description>Dell</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dellsk8125</name>
-- <_description>Dell SK-8125</_description>
-+ <description>Dell SK-8125</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dellsk8135</name>
-- <_description>Dell SK-8135</_description>
-+ <description>Dell SK-8135</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dellusbmm</name>
-- <_description>Dell USB Multimedia Keyboard</_description>
-+ <description>Dell USB Multimedia Keyboard</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>inspiron</name>
-- <_description>Dell Laptop/notebook Inspiron 6xxx/8xxx</_description>
-+ <description>Dell Laptop/notebook Inspiron 6xxx/8xxx</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>precision_m</name>
-- <_description>Dell Laptop/notebook Precision M series</_description>
-+ <description>Dell Laptop/notebook Precision M series</description>
- <vendor>Dell</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dexxa</name>
-- <_description>Dexxa Wireless Desktop Keyboard</_description>
-+ <description>Dexxa Wireless Desktop Keyboard</description>
- <vendor>Dexxa</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>diamond</name>
-- <_description>Diamond 9801 / 9802 series</_description>
-+ <description>Diamond 9801 / 9802 series</description>
- <vendor>Diamond</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>dtk2000</name>
-- <_description>DTK2000</_description>
-+ <description>DTK2000</description>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>ennyah_dkb1008</name>
-- <_description>Ennyah DKB-1008</_description>
-+ <description>Ennyah DKB-1008</description>
- <vendor>Ennyah</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>fscaa1667g</name>
-- <_description>Fujitsu-Siemens Computers AMILO laptop</_description>
-+ <description>Fujitsu-Siemens Computers AMILO laptop</description>
- <vendor>Fujitsu-Siemens</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>genius</name>
-- <_description>Genius Comfy KB-16M / Genius MM Keyboard KWD-910</_description>
-+ <description>Genius Comfy KB-16M / Genius MM Keyboard KWD-910</description>
- <vendor>Genius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>geniuscomfy</name>
-- <_description>Genius Comfy KB-12e</_description>
-+ <description>Genius Comfy KB-12e</description>
- <vendor>Genius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>geniuscomfy2</name>
-- <_description>Genius Comfy KB-21e-Scroll</_description>
-+ <description>Genius Comfy KB-21e-Scroll</description>
- <vendor>Genius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>geniuskb19e</name>
-- <_description>Genius KB-19e NB</_description>
-+ <description>Genius KB-19e NB</description>
- <vendor>Genius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>geniuskkb2050hs</name>
-- <_description>Genius KKB-2050HS</_description>
-+ <description>Genius KKB-2050HS</description>
- <vendor>Genius</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>gyration</name>
-- <_description>Gyration</_description>
-+ <description>Gyration</description>
- <vendor>Gyration</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>htcdream</name>
-- <_description>HTC Dream</_description>
-+ <description>HTC Dream</description>
- <vendor>HTC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>kinesis</name>
-- <_description>Kinesis</_description>
-+ <description>Kinesis</description>
- <vendor>Kinesis</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logitech_base</name>
-- <_description>Logitech Generic Keyboard</_description>
-+ <description>Logitech Generic Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logitech_g15</name>
-- <_description>Logitech G15 extra keys via G15daemon</_description>
-+ <description>Logitech G15 extra keys via G15daemon</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpi6</name>
-- <_description>Hewlett-Packard Internet Keyboard</_description>
-+ <description>Hewlett-Packard Internet Keyboard</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hp250x</name>
-- <_description>Hewlett-Packard SK-250x Multimedia Keyboard</_description>
-+ <description>Hewlett-Packard SK-250x Multimedia Keyboard</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpxe3gc</name>
-- <_description>Hewlett-Packard Omnibook XE3 GC</_description>
-+ <description>Hewlett-Packard Omnibook XE3 GC</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpxe3gf</name>
-- <_description>Hewlett-Packard Omnibook XE3 GF</_description>
-+ <description>Hewlett-Packard Omnibook XE3 GF</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpxt1000</name>
-- <_description>Hewlett-Packard Omnibook XT1000</_description>
-+ <description>Hewlett-Packard Omnibook XT1000</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpdv5</name>
-- <_description>Hewlett-Packard Pavilion dv5</_description>
-+ <description>Hewlett-Packard Pavilion dv5</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpzt11xx</name>
-- <_description>Hewlett-Packard Pavilion ZT11xx</_description>
-+ <description>Hewlett-Packard Pavilion ZT11xx</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hp500fa</name>
-- <_description>Hewlett-Packard Omnibook 500 FA</_description>
-+ <description>Hewlett-Packard Omnibook 500 FA</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hp5xx</name>
-- <_description>Hewlett-Packard Omnibook 5xx</_description>
-+ <description>Hewlett-Packard Omnibook 5xx</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpnx9020</name>
-- <_description>Hewlett-Packard nx9020</_description>
-+ <description>Hewlett-Packard nx9020</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hp6000</name>
-- <_description>Hewlett-Packard Omnibook 6000/6100</_description>
-+ <description>Hewlett-Packard Omnibook 6000/6100</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>honeywell_euroboard</name>
-- <_description>Honeywell Euroboard</_description>
-+ <description>Honeywell Euroboard</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hpmini110</name>
-- <_description>Hewlett-Packard Mini 110 Notebook</_description>
-+ <description>Hewlett-Packard Mini 110 Notebook</description>
- <vendor>Hewlett-Packard</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>rapidaccess</name>
-- <_description>IBM Rapid Access</_description>
-+ <description>IBM Rapid Access</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>rapidaccess2</name>
-- <_description>IBM Rapid Access II</_description>
-+ <description>IBM Rapid Access II</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>thinkpad</name>
-- <_description>IBM ThinkPad 560Z/600/600E/A22E</_description>
-+ <description>IBM ThinkPad 560Z/600/600E/A22E</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>thinkpad60</name>
-- <_description>IBM ThinkPad R60/T60/R61/T61</_description>
-+ <description>IBM ThinkPad R60/T60/R61/T61</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>thinkpadz60</name>
-- <_description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</_description>
-+ <description>IBM ThinkPad Z60m/Z60t/Z61m/Z61t</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>ibm_spacesaver</name>
-- <_description>IBM Space Saver</_description>
-+ <description>IBM Space Saver</description>
- <vendor>Lenovo (previously IBM)</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiaccess</name>
-- <_description>Logitech Access Keyboard</_description>
-+ <description>Logitech Access Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiclx300</name>
-- <_description>Logitech Cordless Desktop LX-300</_description>
-+ <description>Logitech Cordless Desktop LX-300</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logii350</name>
-- <_description>Logitech Internet 350 Keyboard</_description>
-+ <description>Logitech Internet 350 Keyboard</description>
- <vendor>Logitech</vendor>
- <hwList> <hwId>046d:c313</hwId></hwList>
- </configItem>
-@@ -633,665 +633,665 @@
- <model>
- <configItem>
- <name>logimel</name>
-- <_description>Logitech Media Elite Keyboard</_description>
-+ <description>Logitech Media Elite Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicd</name>
-- <_description>Logitech Cordless Desktop</_description>
-+ <description>Logitech Cordless Desktop</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicd_it</name>
-- <_description>Logitech Cordless Desktop iTouch</_description>
-+ <description>Logitech Cordless Desktop iTouch</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicd_nav</name>
-- <_description>Logitech Cordless Desktop Navigator</_description>
-+ <description>Logitech Cordless Desktop Navigator</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicd_opt</name>
-- <_description>Logitech Cordless Desktop Optical</_description>
-+ <description>Logitech Cordless Desktop Optical</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicda</name>
-- <_description>Logitech Cordless Desktop (alternate option)</_description>
-+ <description>Logitech Cordless Desktop (alternate option)</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicdpa2</name>
-- <_description>Logitech Cordless Desktop Pro (alternate option 2)</_description>
-+ <description>Logitech Cordless Desktop Pro (alternate option 2)</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicfn</name>
-- <_description>Logitech Cordless Freedom/Desktop Navigator</_description>
-+ <description>Logitech Cordless Freedom/Desktop Navigator</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicdn</name>
-- <_description>Logitech Cordless Desktop Navigator</_description>
-+ <description>Logitech Cordless Desktop Navigator</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiitc</name>
-- <_description>Logitech iTouch Cordless Keyboard (model Y-RB6)</_description>
-+ <description>Logitech iTouch Cordless Keyboard (model Y-RB6)</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiik</name>
-- <_description>Logitech Internet Keyboard</_description>
-+ <description>Logitech Internet Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>itouch</name>
-- <_description>Logitech iTouch</_description>
-+ <description>Logitech iTouch</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logicink</name>
-- <_description>Logitech Internet Navigator Keyboard</_description>
-+ <description>Logitech Internet Navigator Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiex110</name>
-- <_description>Logitech Cordless Desktop EX110</_description>
-+ <description>Logitech Cordless Desktop EX110</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiinkse</name>
-- <_description>Logitech iTouch Internet Navigator Keyboard SE</_description>
-+ <description>Logitech iTouch Internet Navigator Keyboard SE</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiinkseusb</name>
-- <_description>Logitech iTouch Internet Navigator Keyboard SE (USB)</_description>
-+ <description>Logitech iTouch Internet Navigator Keyboard SE (USB)</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiultrax</name>
-- <_description>Logitech Ultra-X Keyboard</_description>
-+ <description>Logitech Ultra-X Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logiultraxc</name>
-- <_description>Logitech Ultra-X Cordless Media Desktop Keyboard</_description>
-+ <description>Logitech Ultra-X Cordless Media Desktop Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logidinovo</name>
-- <_description>Logitech diNovo Keyboard</_description>
-+ <description>Logitech diNovo Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>logidinovoedge</name>
-- <_description>Logitech diNovo Edge Keyboard</_description>
-+ <description>Logitech diNovo Edge Keyboard</description>
- <vendor>Logitech</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>mx1998</name>
-- <_description>Memorex MX1998</_description>
-+ <description>Memorex MX1998</description>
- <vendor>Memorex</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>mx2500</name>
-- <_description>Memorex MX2500 EZ-Access Keyboard</_description>
-+ <description>Memorex MX2500 EZ-Access Keyboard</description>
- <vendor>Memorex</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>mx2750</name>
-- <_description>Memorex MX2750</_description>
-+ <description>Memorex MX2750</description>
- <vendor>Memorex</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoft4000</name>
-- <_description>Microsoft Natural Wireless Ergonomic Keyboard 4000</_description>
-+ <description>Microsoft Natural Wireless Ergonomic Keyboard 4000</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoft7000</name>
-- <_description>Microsoft Natural Wireless Ergonomic Keyboard 7000</_description>
-+ <description>Microsoft Natural Wireless Ergonomic Keyboard 7000</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftinet</name>
-- <_description>Microsoft Internet Keyboard</_description>
-+ <description>Microsoft Internet Keyboard</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftpro</name>
-- <_description>Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro</_description>
-+ <description>Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftprousb</name>
-- <_description>Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro</_description>
-+ <description>Microsoft Natural Keyboard Pro USB / Microsoft Internet Keyboard Pro</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftprooem</name>
-- <_description>Microsoft Natural Keyboard Pro OEM</_description>
-+ <description>Microsoft Natural Keyboard Pro OEM</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>vsonku306</name>
-- <_description>ViewSonic KU-306 Internet Keyboard</_description>
-+ <description>ViewSonic KU-306 Internet Keyboard</description>
- <vendor>ViewSonic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftprose</name>
-- <_description>Microsoft Internet Keyboard Pro, Swedish</_description>
-+ <description>Microsoft Internet Keyboard Pro, Swedish</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftoffice</name>
-- <_description>Microsoft Office Keyboard</_description>
-+ <description>Microsoft Office Keyboard</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftmult</name>
-- <_description>Microsoft Wireless Multimedia Keyboard 1.0A</_description>
-+ <description>Microsoft Wireless Multimedia Keyboard 1.0A</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftelite</name>
-- <_description>Microsoft Natural Keyboard Elite</_description>
-+ <description>Microsoft Natural Keyboard Elite</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>microsoftccurve2k</name>
-- <_description>Microsoft Comfort Curve Keyboard 2000</_description>
-+ <description>Microsoft Comfort Curve Keyboard 2000</description>
- <vendor>Microsoft Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>oretec</name>
-- <_description>Ortek MCK-800 MM/Internet keyboard</_description>
-+ <description>Ortek MCK-800 MM/Internet keyboard</description>
- <vendor>Ortek</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>propeller</name>
-- <_description>Propeller Voyager (KTEZ-1000)</_description>
-+ <description>Propeller Voyager (KTEZ-1000)</description>
- <vendor>KeyTronic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>qtronix</name>
-- <_description>QTronix Scorpius 98N+</_description>
-+ <description>QTronix Scorpius 98N+</description>
- <vendor>QTronix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>samsung4500</name>
-- <_description>Samsung SDM 4500P</_description>
-+ <description>Samsung SDM 4500P</description>
- <vendor>Samsung</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>samsung4510</name>
-- <_description>Samsung SDM 4510P</_description>
-+ <description>Samsung SDM 4510P</description>
- <vendor>Samsung</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sanwaskbkg3</name>
-- <_description>Sanwa Supply SKB-KG3</_description>
-+ <description>Sanwa Supply SKB-KG3</description>
- <vendor>Sanwa Supply Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sk1300</name>
-- <_description>SK-1300</_description>
-+ <description>SK-1300</description>
- <vendor>NEC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sk2500</name>
-- <_description>SK-2500</_description>
-+ <description>SK-2500</description>
- <vendor>NEC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sk6200</name>
-- <_description>SK-6200</_description>
-+ <description>SK-6200</description>
- <vendor>NEC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sk7100</name>
-- <_description>SK-7100</_description>
-+ <description>SK-7100</description>
- <vendor>NEC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sp_inet</name>
-- <_description>Super Power Multimedia Keyboard</_description>
-+ <description>Super Power Multimedia Keyboard</description>
- <vendor>Generic</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sven</name>
-- <_description>SVEN Ergonomic 2500</_description>
-+ <description>SVEN Ergonomic 2500</description>
- <vendor>SVEN</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sven303</name>
-- <_description>SVEN Slim 303</_description>
-+ <description>SVEN Slim 303</description>
- <vendor>SVEN</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>symplon</name>
-- <_description>Symplon PaceBook (tablet PC)</_description>
-+ <description>Symplon PaceBook (tablet PC)</description>
- <vendor>Symplon</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>toshiba_s3000</name>
-- <_description>Toshiba Satellite S3000</_description>
-+ <description>Toshiba Satellite S3000</description>
- <vendor>Toshiba</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>trust</name>
-- <_description>Trust Wireless Keyboard Classic</_description>
-+ <description>Trust Wireless Keyboard Classic</description>
- <vendor>Trust</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>trustda</name>
-- <_description>Trust Direct Access Keyboard</_description>
-+ <description>Trust Direct Access Keyboard</description>
- <vendor>Trust</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>trust_slimline</name>
-- <_description>Trust Slimline</_description>
-+ <description>Trust Slimline</description>
- <vendor>Trust</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>tm2020</name>
-- <_description>TypeMatrix EZ-Reach 2020</_description>
-+ <description>TypeMatrix EZ-Reach 2020</description>
- <vendor>TypeMatrix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>tm2030PS2</name>
-- <_description>TypeMatrix EZ-Reach 2030 PS2</_description>
-+ <description>TypeMatrix EZ-Reach 2030 PS2</description>
- <vendor>TypeMatrix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>tm2030USB</name>
-- <_description>TypeMatrix EZ-Reach 2030 USB</_description>
-+ <description>TypeMatrix EZ-Reach 2030 USB</description>
- <vendor>TypeMatrix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>tm2030USB-102</name>
-- <_description>TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)</_description>
-+ <description>TypeMatrix EZ-Reach 2030 USB (102/105:EU mode)</description>
- <vendor>TypeMatrix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>tm2030USB-106</name>
-- <_description>TypeMatrix EZ-Reach 2030 USB (106:JP mode)</_description>
-+ <description>TypeMatrix EZ-Reach 2030 USB (106:JP mode)</description>
- <vendor>TypeMatrix</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>yahoo</name>
-- <_description>Yahoo! Internet Keyboard</_description>
-+ <description>Yahoo! Internet Keyboard</description>
- <vendor>Yahoo!</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>macbook78</name>
-- <_description>MacBook/MacBook Pro</_description>
-+ <description>MacBook/MacBook Pro</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>macbook79</name>
-- <_description>MacBook/MacBook Pro (Intl)</_description>
-+ <description>MacBook/MacBook Pro (Intl)</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>macintosh</name>
-- <_description>Macintosh</_description>
-+ <description>Macintosh</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>macintosh_old</name>
-- <_description>Macintosh Old</_description>
-+ <description>Macintosh Old</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>macintosh_hhk</name>
-- <_description>Happy Hacking Keyboard for Mac</_description>
-+ <description>Happy Hacking Keyboard for Mac</description>
- <vendor>Fujitsu</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>acer_c300</name>
-- <_description>Acer C300</_description>
-+ <description>Acer C300</description>
- <vendor>Acer</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>acer_ferrari4k</name>
-- <_description>Acer Ferrari 4000</_description>
-+ <description>Acer Ferrari 4000</description>
- <vendor>Acer</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>acer_laptop</name>
-- <_description>Acer Laptop</_description>
-+ <description>Acer Laptop</description>
- <vendor>Acer</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>asus_laptop</name>
-- <_description>Asus Laptop</_description>
-+ <description>Asus Laptop</description>
- <vendor>Asus</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>apple</name>
-- <_description>Apple</_description>
-+ <description>Apple</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>apple_laptop</name>
-- <_description>Apple Laptop</_description>
-+ <description>Apple Laptop</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>applealu_ansi</name>
-- <_description>Apple Aluminium Keyboard (ANSI)</_description>
-+ <description>Apple Aluminium Keyboard (ANSI)</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>applealu_iso</name>
-- <_description>Apple Aluminium Keyboard (ISO)</_description>
-+ <description>Apple Aluminium Keyboard (ISO)</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>applealu_jis</name>
-- <_description>Apple Aluminium Keyboard (JIS)</_description>
-+ <description>Apple Aluminium Keyboard (JIS)</description>
- <vendor>Apple</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>silvercrest</name>
-- <_description>SILVERCREST Multimedia Wireless Keyboard</_description>
-+ <description>SILVERCREST Multimedia Wireless Keyboard</description>
- <vendor>Silvercrest</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>emachines</name>
-- <_description>Laptop/notebook eMachines m68xx</_description>
-+ <description>Laptop/notebook eMachines m68xx</description>
- <vendor>eMachines</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>benqx</name>
-- <_description>BenQ X-Touch</_description>
-+ <description>BenQ X-Touch</description>
- <vendor>BenQ</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>benqx730</name>
-- <_description>BenQ X-Touch 730</_description>
-+ <description>BenQ X-Touch 730</description>
- <vendor>BenQ</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>benqx800</name>
-- <_description>BenQ X-Touch 800</_description>
-+ <description>BenQ X-Touch 800</description>
- <vendor>BenQ</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>hhk</name>
-- <_description>Happy Hacking Keyboard</_description>
-+ <description>Happy Hacking Keyboard</description>
- <vendor>Fujitsu</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>classmate</name>
-- <_description>Classmate PC</_description>
-+ <description>Classmate PC</description>
- <vendor>Intel</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>olpc</name>
-- <_description>OLPC</_description>
-+ <description>OLPC</description>
- <vendor>OLPC</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type7_usb</name>
-- <_description>Sun Type 7 USB</_description>
-+ <description>Sun Type 7 USB</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type7_euro_usb</name>
-- <_description>Sun Type 7 USB (European layout)</_description>
-+ <description>Sun Type 7 USB (European layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type7_unix_usb</name>
-- <_description>Sun Type 7 USB (Unix layout)</_description>
-+ <description>Sun Type 7 USB (Unix layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type7_jp_usb</name>
-- <_description>Sun Type 7 USB (Japanese layout) / Japanese 106-key</_description>
-+ <description>Sun Type 7 USB (Japanese layout) / Japanese 106-key</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type6_usb</name>
-- <_description>Sun Type 6/7 USB</_description>
-+ <description>Sun Type 6/7 USB</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type6_euro_usb</name>
-- <_description>Sun Type 6/7 USB (European layout)</_description>
-+ <description>Sun Type 6/7 USB (European layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type6_unix_usb</name>
-- <_description>Sun Type 6 USB (Unix layout)</_description>
-+ <description>Sun Type 6 USB (Unix layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type6_jp_usb</name>
-- <_description>Sun Type 6 USB (Japanese layout)</_description>
-+ <description>Sun Type 6 USB (Japanese layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>sun_type6_jp</name>
-- <_description>Sun Type 6 (Japanese layout)</_description>
-+ <description>Sun Type 6 (Japanese layout)</description>
- <vendor>Sun Microsystems</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>targa_v811</name>
-- <_description>Targa Visionary 811</_description>
-+ <description>Targa Visionary 811</description>
- <vendor>Targa</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>unitekkb1925</name>
-- <_description>Unitek KB-1925</_description>
-+ <description>Unitek KB-1925</description>
- <vendor>Unitek Group</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>compalfl90</name>
-- <_description>FL90</_description>
-+ <description>FL90</description>
- <vendor>Compal Electronics Inc.</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>creativedw7000</name>
-- <_description>Creative Desktop Wireless 7000</_description>
-+ <description>Creative Desktop Wireless 7000</description>
- <vendor>Creative</vendor>
- </configItem>
- </model>
- <model>
- <configItem>
- <name>htcdream</name>
-- <_description>Htc Dream phone</_description>
-+ <description>Htc Dream phone</description>
- <vendor>htc</vendor>
- </configItem>
- </model>
-@@ -1300,9 +1300,9 @@
- <layout>
- <configItem>
- <name>us</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (US)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (US)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -1311,9 +1311,9 @@
- <variant>
- <configItem>
- <name>chr</name>
-- <!-- Keyboard indicator for Cherokee layouts -->
-- <_shortDescription>chr</_shortDescription>
-- <_description>Cherokee</_description>
-+
-+ <shortDescription>chr</shortDescription>
-+ <description>Cherokee</description>
- <languageList>
- <iso639Id>chr</iso639Id>
- </languageList>
-@@ -1322,75 +1322,75 @@
- <variant>
- <configItem>
- <name>euro</name>
-- <_description>English (US, with euro on 5)</_description>
-+ <description>English (US, with euro on 5)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>intl</name>
-- <_description>English (US, international with dead keys)</_description>
-+ <description>English (US, international with dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>alt-intl</name>
-- <_description>English (US, alternative international)</_description>
-+ <description>English (US, alternative international)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>English (Colemak)</_description>
-+ <description>English (Colemak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>English (Dvorak)</_description>
-+ <description>English (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-intl</name>
-- <_description>English (Dvorak, international with dead keys)</_description>
-+ <description>English (Dvorak, international with dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-alt-intl</name>
-- <_description>English (Dvorak alternative international no dead keys)</_description>
-+ <description>English (Dvorak alternative international no dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-l</name>
-- <_description>English (left handed Dvorak)</_description>
-+ <description>English (left handed Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-r</name>
-- <_description>English (right handed Dvorak)</_description>
-+ <description>English (right handed Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-classic</name>
-- <_description>English (classic Dvorak)</_description>
-+ <description>English (classic Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvp</name>
-- <_description>English (programmer Dvorak)</_description>
-+ <description>English (programmer Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>rus</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (US, phonetic)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (US, phonetic)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -1399,13 +1399,13 @@
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>English (Macintosh)</_description>
-+ <description>English (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>altgr-intl</name>
-- <_description>English (international AltGr dead keys)</_description>
-+ <description>English (international AltGr dead keys)</description>
- <languageList><iso639Id>eng</iso639Id>
- <iso639Id>fra</iso639Id>
- <iso639Id>ger</iso639Id></languageList>
-@@ -1414,13 +1414,13 @@
- <variant>
- <configItem>
- <name>olpc2</name>
-- <_description>English (the divide/multiply keys toggle the layout)</_description>
-+ <description>English (the divide/multiply keys toggle the layout)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>hbs</name>
-- <_description>Serbo-Croatian (US)</_description>
-+ <description>Serbo-Croatian (US)</description>
- <languageList><iso639Id>eng</iso639Id>
- <iso639Id>bos</iso639Id>
- <iso639Id>hbs</iso639Id>
-@@ -1431,13 +1431,13 @@
- <variant>
- <configItem>
- <name>workman</name>
-- <_description>English (Workman)</_description>
-+ <description>English (Workman)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>workman-intl</name>
-- <_description>English (Workman, international with dead keys)</_description>
-+ <description>English (Workman, international with dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1445,17 +1445,17 @@
- <layout>
- <configItem>
- <name>af</name>
-- <!-- Keyboard indicator for Afghani layouts -->
-- <_shortDescription>fa</_shortDescription>
-- <_description>Afghani</_description>
-+
-+ <shortDescription>fa</shortDescription>
-+ <description>Afghani</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>ps</name>
-- <!-- Keyboard indicator for Pashto layouts -->
-- <_shortDescription>ps</_shortDescription>
-- <_description>Pashto</_description>
-+
-+ <shortDescription>ps</shortDescription>
-+ <description>Pashto</description>
- <languageList>
- <iso639Id>pus</iso639Id>
- </languageList>
-@@ -1464,9 +1464,9 @@
- <variant>
- <configItem>
- <name>uz</name>
-- <!-- Keyboard indicator for Uzbek layouts -->
-- <_shortDescription>uz</_shortDescription>
-- <_description>Uzbek (Afghanistan)</_description>
-+
-+ <shortDescription>uz</shortDescription>
-+ <description>Uzbek (Afghanistan)</description>
- <languageList>
- <iso639Id>uzb</iso639Id>
- </languageList>
-@@ -1475,9 +1475,9 @@
- <variant>
- <configItem>
- <name>olpc-ps</name>
-- <!-- Keyboard indicator for Pashto layouts -->
-- <_shortDescription>ps</_shortDescription>
-- <_description>Pashto (Afghanistan, OLPC)</_description>
-+
-+ <shortDescription>ps</shortDescription>
-+ <description>Pashto (Afghanistan, OLPC)</description>
- <languageList>
- <iso639Id>pus</iso639Id>
- </languageList>
-@@ -1486,17 +1486,17 @@
- <variant>
- <configItem>
- <name>fa-olpc</name>
-- <!-- Keyboard indicator for Persian layouts -->
-- <_shortDescription>fa</_shortDescription>
-- <_description>Persian (Afghanistan, Dari OLPC)</_description>
-+
-+ <shortDescription>fa</shortDescription>
-+ <description>Persian (Afghanistan, Dari OLPC)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>uz-olpc</name>
-- <!-- Keyboard indicator for Uzbek layouts -->
-- <_shortDescription>uz</_shortDescription>
-- <_description>Uzbek (Afghanistan, OLPC)</_description>
-+
-+ <shortDescription>uz</shortDescription>
-+ <description>Uzbek (Afghanistan, OLPC)</description>
- <languageList>
- <iso639Id>uzb</iso639Id>
- </languageList>
-@@ -1507,9 +1507,9 @@
- <layout>
- <configItem>
- <name>ara</name>
-- <!-- Keyboard indicator for Arabic layouts -->
-- <_shortDescription>ar</_shortDescription>
-- <_description>Arabic</_description>
-+
-+ <shortDescription>ar</shortDescription>
-+ <description>Arabic</description>
- <countryList>
- <iso3166Id>AE</iso3166Id>
- <iso3166Id>BH</iso3166Id>
-@@ -1539,37 +1539,37 @@
- <variant>
- <configItem>
- <name>azerty</name>
-- <_description>Arabic (azerty)</_description>
-+ <description>Arabic (azerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>azerty_digits</name>
-- <_description>Arabic (azerty/digits)</_description>
-+ <description>Arabic (azerty/digits)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>digits</name>
-- <_description>Arabic (digits)</_description>
-+ <description>Arabic (digits)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>Arabic (qwerty)</_description>
-+ <description>Arabic (qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty_digits</name>
-- <_description>Arabic (qwerty/digits)</_description>
-+ <description>Arabic (qwerty/digits)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>buckwalter</name>
-- <_description>Arabic (Buckwalter)</_description>
-+ <description>Arabic (Buckwalter)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1577,9 +1577,9 @@
- <layout>
- <configItem>
- <name>al</name>
-- <!-- Keyboard indicator for Albanian layouts -->
-- <_shortDescription>sq</_shortDescription>
-- <_description>Albanian</_description>
-+
-+ <shortDescription>sq</shortDescription>
-+ <description>Albanian</description>
- <languageList>
- <iso639Id>alb</iso639Id>
- </languageList>
-@@ -1589,9 +1589,9 @@
- <layout>
- <configItem>
- <name>am</name>
-- <!-- Keyboard indicator for Armenian layouts -->
-- <_shortDescription>hy</_shortDescription>
-- <_description>Armenian</_description>
-+
-+ <shortDescription>hy</shortDescription>
-+ <description>Armenian</description>
- <languageList>
- <iso639Id>hye</iso639Id>
- </languageList>
-@@ -1600,31 +1600,31 @@
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Armenian (phonetic)</_description>
-+ <description>Armenian (phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>phonetic-alt</name>
-- <_description>Armenian (alternative phonetic)</_description>
-+ <description>Armenian (alternative phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>eastern</name>
-- <_description>Armenian (eastern)</_description>
-+ <description>Armenian (eastern)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>western</name>
-- <_description>Armenian (western)</_description>
-+ <description>Armenian (western)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>eastern-alt</name>
-- <_description>Armenian (alternative eastern)</_description>
-+ <description>Armenian (alternative eastern)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1632,9 +1632,9 @@
- <layout>
- <configItem>
- <name>at</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Austria)</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German (Austria)</description>
- <languageList>
- <iso639Id>ger</iso639Id>
- </languageList>
-@@ -1643,19 +1643,19 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>German (Austria, eliminate dead keys)</_description>
-+ <description>German (Austria, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>German (Austria, Sun dead keys)</_description>
-+ <description>German (Austria, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>German (Austria, Macintosh)</_description>
-+ <description>German (Austria, Macintosh)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1663,9 +1663,9 @@
- <layout>
- <configItem>
- <name>az</name>
-- <!-- Keyboard indicator for Azerbaijani layouts -->
-- <_shortDescription>az</_shortDescription>
-- <_description>Azerbaijani</_description>
-+
-+ <shortDescription>az</shortDescription>
-+ <description>Azerbaijani</description>
- <languageList>
- <iso639Id>aze</iso639Id>
- </languageList>
-@@ -1674,7 +1674,7 @@
- <variant>
- <configItem>
- <name>cyrillic</name>
-- <_description>Azerbaijani (Cyrillic)</_description>
-+ <description>Azerbaijani (Cyrillic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1682,9 +1682,9 @@
- <layout>
- <configItem>
- <name>by</name>
-- <!-- Keyboard indicator for Belarusian layouts -->
-- <_shortDescription>by</_shortDescription>
-- <_description>Belarusian</_description>
-+
-+ <shortDescription>by</shortDescription>
-+ <description>Belarusian</description>
- <languageList>
- <iso639Id>bel</iso639Id>
- </languageList>
-@@ -1693,13 +1693,13 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Belarusian (legacy)</_description>
-+ <description>Belarusian (legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latin</name>
-- <_description>Belarusian (Latin)</_description>
-+ <description>Belarusian (Latin)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1707,9 +1707,9 @@
- <layout>
- <configItem>
- <name>be</name>
-- <!-- Keyboard indicator for Belgian layouts -->
-- <_shortDescription>be</_shortDescription>
-- <_description>Belgian</_description>
-+
-+ <shortDescription>be</shortDescription>
-+ <description>Belgian</description>
- <languageList><iso639Id>ger</iso639Id>
- <iso639Id>nld</iso639Id>
- <iso639Id>fra</iso639Id></languageList>
-@@ -1718,43 +1718,43 @@
- <variant>
- <configItem>
- <name>oss</name>
-- <_description>Belgian (alternative)</_description>
-+ <description>Belgian (alternative)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss_latin9</name>
-- <_description>Belgian (alternative, Latin-9 only)</_description>
-+ <description>Belgian (alternative, Latin-9 only)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss_sundeadkeys</name>
-- <_description>Belgian (alternative, Sun dead keys)</_description>
-+ <description>Belgian (alternative, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>iso-alternate</name>
-- <_description>Belgian (ISO alternate)</_description>
-+ <description>Belgian (ISO alternate)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Belgian (eliminate dead keys)</_description>
-+ <description>Belgian (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Belgian (Sun dead keys)</_description>
-+ <description>Belgian (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>wang</name>
-- <_description>Belgian (Wang model 724 azerty)</_description>
-+ <description>Belgian (Wang model 724 azerty)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1762,9 +1762,9 @@
- <layout>
- <configItem>
- <name>bd</name>
-- <!-- Keyboard indicator for Bangla layouts -->
-- <_shortDescription>bn</_shortDescription>
-- <_description>Bangla</_description>
-+
-+ <shortDescription>bn</shortDescription>
-+ <description>Bangla</description>
- <languageList>
- <iso639Id>ben</iso639Id>
- </languageList>
-@@ -1773,7 +1773,7 @@
- <variant>
- <configItem>
- <name>probhat</name>
-- <_description>Bangla (Probhat)</_description>
-+ <description>Bangla (Probhat)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -1781,17 +1781,17 @@
- <layout>
- <configItem>
- <name>in</name>
-- <!-- Keyboard indicator for Indian layouts -->
-- <_shortDescription>in</_shortDescription>
-- <_description>Indian</_description>
-+
-+ <shortDescription>in</shortDescription>
-+ <description>Indian</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>ben</name>
-- <!-- Keyboard indicator for Bangla layouts -->
-- <_shortDescription>bn</_shortDescription>
-- <_description>Bangla (India)</_description>
-+
-+ <shortDescription>bn</shortDescription>
-+ <description>Bangla (India)</description>
- <languageList>
- <iso639Id>ben</iso639Id>
- </languageList>
-@@ -1800,9 +1800,9 @@
- <variant>
- <configItem>
- <name>ben_probhat</name>
-- <!-- Keyboard indicator for Bangla layouts -->
-- <_shortDescription>bn</_shortDescription>
-- <_description>Bangla (India, Probhat)</_description>
-+
-+ <shortDescription>bn</shortDescription>
-+ <description>Bangla (India, Probhat)</description>
- <languageList>
- <iso639Id>ben</iso639Id>
- </languageList>
-@@ -1811,28 +1811,28 @@
- <variant>
- <configItem>
- <name>ben_baishakhi</name>
-- <_description>Bangla (India, Baishakhi)</_description>
-+ <description>Bangla (India, Baishakhi)</description>
- <languageList><iso639Id>ben</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ben_bornona</name>
-- <_description>Bangla (India, Bornona)</_description>
-+ <description>Bangla (India, Bornona)</description>
- <languageList><iso639Id>ben</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ben_gitanjali</name>
-- <_description>Bangla (India, Uni Gitanjali)</_description>
-+ <description>Bangla (India, Uni Gitanjali)</description>
- <languageList><iso639Id>ben</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ben_inscript</name>
-- <_description>Bangla (India, Baishakhi Inscript)</_description>
-+ <description>Bangla (India, Baishakhi Inscript)</description>
- <languageList><iso639Id>ben</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -1846,9 +1846,9 @@
- <variant>
- <configItem>
- <name>guj</name>
-- <!-- Keyboard indicator for Gujarati layouts -->
-- <_shortDescription>gu</_shortDescription>
-- <_description>Gujarati</_description>
-+
-+ <shortDescription>gu</shortDescription>
-+ <description>Gujarati</description>
- <languageList>
- <iso639Id>guj</iso639Id>
- </languageList>
-@@ -1857,9 +1857,9 @@
- <variant>
- <configItem>
- <name>guru</name>
-- <!-- Keyboard indicator for Punjabi layouts -->
-- <_shortDescription>pa</_shortDescription>
-- <_description>Punjabi (Gurmukhi)</_description>
-+
-+ <shortDescription>pa</shortDescription>
-+ <description>Punjabi (Gurmukhi)</description>
- <languageList>
- <iso639Id>pan</iso639Id>
- </languageList>
-@@ -1868,9 +1868,9 @@
- <variant>
- <configItem>
- <name>jhelum</name>
-- <!-- Keyboard indicator for Punjabi layouts -->
-- <_shortDescription>pa</_shortDescription>
-- <_description>Punjabi (Gurmukhi Jhelum)</_description>
-+
-+ <shortDescription>pa</shortDescription>
-+ <description>Punjabi (Gurmukhi Jhelum)</description>
- <languageList>
- <iso639Id>pan</iso639Id>
- </languageList>
-@@ -1879,9 +1879,9 @@
- <variant>
- <configItem>
- <name>kan</name>
-- <!-- Keyboard indicator for Kannada layouts -->
-- <_shortDescription>kn</_shortDescription>
-- <_description>Kannada</_description>
-+
-+ <shortDescription>kn</shortDescription>
-+ <description>Kannada</description>
- <languageList>
- <iso639Id>kan</iso639Id>
- </languageList>
-@@ -1890,9 +1890,9 @@
- <variant>
- <configItem>
- <name>kan-kagapa</name>
-- <!-- Keyboard indicator for Kannada layouts -->
-- <_shortDescription>kn</_shortDescription>
-- <_description>Kannada (KaGaPa phonetic)</_description>
-+
-+ <shortDescription>kn</shortDescription>
-+ <description>Kannada (KaGaPa phonetic)</description>
- <languageList>
- <iso639Id>kan</iso639Id>
- </languageList>
-@@ -1901,9 +1901,9 @@
- <variant>
- <configItem>
- <name>mal</name>
-- <!-- Keyboard indicator for Malayalam layouts -->
-- <_shortDescription>ml</_shortDescription>
-- <_description>Malayalam</_description>
-+
-+ <shortDescription>ml</shortDescription>
-+ <description>Malayalam</description>
- <languageList>
- <iso639Id>mal</iso639Id>
- </languageList>
-@@ -1912,9 +1912,9 @@
- <variant>
- <configItem>
- <name>mal_lalitha</name>
-- <!-- Keyboard indicator for Malayalam layouts -->
-- <_shortDescription>ml</_shortDescription>
-- <_description>Malayalam (Lalitha)</_description>
-+
-+ <shortDescription>ml</shortDescription>
-+ <description>Malayalam (Lalitha)</description>
- <languageList>
- <iso639Id>mal</iso639Id>
- </languageList>
-@@ -1923,18 +1923,18 @@
- <variant>
- <configItem>
- <name>mal_enhanced</name>
-- <!-- Keyboard indicator for Malayalam layouts -->
-- <_shortDescription>ml</_shortDescription>
-- <_description>Malayalam (enhanced Inscript with Rupee Sign)</_description>
-+
-+ <shortDescription>ml</shortDescription>
-+ <description>Malayalam (enhanced Inscript with Rupee Sign)</description>
- <languageList><iso639Id>mal</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ori</name>
-- <!-- Keyboard indicator for Oriya layouts -->
-- <_shortDescription>or</_shortDescription>
-- <_description>Oriya</_description>
-+
-+ <shortDescription>or</shortDescription>
-+ <description>Oriya</description>
- <languageList>
- <iso639Id>ori</iso639Id>
- </languageList>
-@@ -1943,9 +1943,9 @@
- <variant>
- <configItem>
- <name>tam_unicode</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil (Unicode)</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil (Unicode)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -1954,9 +1954,9 @@
- <variant>
- <configItem>
- <name>tam_keyboard_with_numerals</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil (keyboard with numerals)</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil (keyboard with numerals)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -1965,9 +1965,9 @@
- <variant>
- <configItem>
- <name>tam_TAB</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil (TAB typewriter)</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil (TAB typewriter)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -1976,9 +1976,9 @@
- <variant>
- <configItem>
- <name>tam_TSCII</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil (TSCII typewriter)</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil (TSCII typewriter)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -1987,9 +1987,9 @@
- <variant>
- <configItem>
- <name>tam</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -1998,9 +1998,9 @@
- <variant>
- <configItem>
- <name>tel</name>
-- <!-- Keyboard indicator for Telugu layouts -->
-- <_shortDescription>te</_shortDescription>
-- <_description>Telugu</_description>
-+
-+ <shortDescription>te</shortDescription>
-+ <description>Telugu</description>
- <languageList>
- <iso639Id>tel</iso639Id>
- </languageList>
-@@ -2009,9 +2009,9 @@
- <variant>
- <configItem>
- <name>tel-kagapa</name>
-- <!-- Keyboard indicator for Telugu layouts -->
-- <_shortDescription>te</_shortDescription>
-- <_description>Telugu (KaGaPa phonetic)</_description>
-+
-+ <shortDescription>te</shortDescription>
-+ <description>Telugu (KaGaPa phonetic)</description>
- <languageList>
- <iso639Id>tel</iso639Id>
- </languageList>
-@@ -2020,9 +2020,9 @@
- <variant>
- <configItem>
- <name>urd-phonetic</name>
-- <!-- Keyboard indicator for Urdu layouts -->
-- <_shortDescription>ur</_shortDescription>
-- <_description>Urdu (phonetic)</_description>
-+
-+ <shortDescription>ur</shortDescription>
-+ <description>Urdu (phonetic)</description>
- <languageList>
- <iso639Id>urd</iso639Id>
- </languageList>
-@@ -2031,9 +2031,9 @@
- <variant>
- <configItem>
- <name>urd-phonetic3</name>
-- <!-- Keyboard indicator for Urdu layouts -->
-- <_shortDescription>ur</_shortDescription>
-- <_description>Urdu (alternative phonetic)</_description>
-+
-+ <shortDescription>ur</shortDescription>
-+ <description>Urdu (alternative phonetic)</description>
- <languageList>
- <iso639Id>urd</iso639Id>
- </languageList>
-@@ -2042,9 +2042,9 @@
- <variant>
- <configItem>
- <name>urd-winkeys</name>
-- <!-- Keyboard indicator for Urdu layouts -->
-- <_shortDescription>ur</_shortDescription>
-- <_description>Urdu (WinKeys)</_description>
-+
-+ <shortDescription>ur</shortDescription>
-+ <description>Urdu (WinKeys)</description>
- <languageList>
- <iso639Id>urd</iso639Id>
- </languageList>
-@@ -2053,9 +2053,9 @@
- <variant>
- <configItem>
- <name>bolnagri</name>
-- <!-- Keyboard indicator for Hindi layouts -->
-- <_shortDescription>hi</_shortDescription>
-- <_description>Hindi (Bolnagri)</_description>
-+
-+ <shortDescription>hi</shortDescription>
-+ <description>Hindi (Bolnagri)</description>
- <languageList>
- <iso639Id>hin</iso639Id>
- </languageList>
-@@ -2064,9 +2064,9 @@
- <variant>
- <configItem>
- <name>hin-wx</name>
-- <!-- Keyboard indicator for Hindi layouts -->
-- <_shortDescription>hi</_shortDescription>
-- <_description>Hindi (Wx)</_description>
-+
-+ <shortDescription>hi</shortDescription>
-+ <description>Hindi (Wx)</description>
- <languageList>
- <iso639Id>hin</iso639Id>
- </languageList>
-@@ -2075,9 +2075,9 @@
- <variant>
- <configItem>
- <name>hin-kagapa</name>
-- <!-- Keyboard indicator for Hindi layouts -->
-- <_shortDescription>hi</_shortDescription>
-- <_description>Hindi (KaGaPa phonetic)</_description>
-+
-+ <shortDescription>hi</shortDescription>
-+ <description>Hindi (KaGaPa phonetic)</description>
- <languageList>
- <iso639Id>hin</iso639Id>
- </languageList>
-@@ -2086,9 +2086,9 @@
- <variant>
- <configItem>
- <name>san-kagapa</name>
-- <!-- Keyboard indicator for Sanskrit layouts -->
-- <_shortDescription>sa</_shortDescription>
-- <_description>Sanskrit (KaGaPa phonetic)</_description>
-+
-+ <shortDescription>sa</shortDescription>
-+ <description>Sanskrit (KaGaPa phonetic)</description>
- <languageList>
- <iso639Id>san</iso639Id>
- </languageList>
-@@ -2097,9 +2097,9 @@
- <variant>
- <configItem>
- <name>mar-kagapa</name>
-- <!-- Keyboard indicator for Marathi layouts -->
-- <_shortDescription>mr</_shortDescription>
-- <_description>Marathi (KaGaPa phonetic)</_description>
-+
-+ <shortDescription>mr</shortDescription>
-+ <description>Marathi (KaGaPa phonetic)</description>
- <languageList>
- <iso639Id>mar</iso639Id>
- </languageList>
-@@ -2108,9 +2108,9 @@
- <variant>
- <configItem>
- <name>eng</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (India, with RupeeSign)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (India, with RupeeSign)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -2121,9 +2121,9 @@
- <layout>
- <configItem>
- <name>ba</name>
-- <!-- Keyboard indicator for Bosnian layouts -->
-- <_shortDescription>bs</_shortDescription>
-- <_description>Bosnian</_description>
-+
-+ <shortDescription>bs</shortDescription>
-+ <description>Bosnian</description>
- <languageList>
- <iso639Id>bos</iso639Id>
- </languageList>
-@@ -2132,25 +2132,25 @@
- <variant>
- <configItem>
- <name>alternatequotes</name>
-- <_description>Bosnian (use guillemets for quotes)</_description>
-+ <description>Bosnian (use guillemets for quotes)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>unicode</name>
-- <_description>Bosnian (use Bosnian digraphs)</_description>
-+ <description>Bosnian (use Bosnian digraphs)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>unicodeus</name>
-- <_description>Bosnian (US keyboard with Bosnian digraphs)</_description>
-+ <description>Bosnian (US keyboard with Bosnian digraphs)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Bosnian (US keyboard with Bosnian letters)</_description>
-+ <description>Bosnian (US keyboard with Bosnian letters)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2158,9 +2158,9 @@
- <layout>
- <configItem>
- <name>br</name>
-- <!-- Keyboard indicator for Portuguese layouts -->
-- <_shortDescription>pt</_shortDescription>
-- <_description>Portuguese (Brazil)</_description>
-+
-+ <shortDescription>pt</shortDescription>
-+ <description>Portuguese (Brazil)</description>
- <languageList>
- <iso639Id>por</iso639Id>
- </languageList>
-@@ -2169,31 +2169,31 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Portuguese (Brazil, eliminate dead keys)</_description>
-+ <description>Portuguese (Brazil, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Portuguese (Brazil, Dvorak)</_description>
-+ <description>Portuguese (Brazil, Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo</name>
-- <_description>Portuguese (Brazil, Nativo)</_description>
-+ <description>Portuguese (Brazil, Nativo)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo-us</name>
-- <_description>Portuguese (Brazil, Nativo for US keyboards)</_description>
-+ <description>Portuguese (Brazil, Nativo for US keyboards)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo-epo</name>
-- <_description>Esperanto (Brazil, Nativo)</_description>
-+ <description>Esperanto (Brazil, Nativo)</description>
- <languageList>
- <iso639Id>epo</iso639Id>
- </languageList>
-@@ -2204,9 +2204,9 @@
- <layout>
- <configItem>
- <name>bg</name>
-- <!-- Keyboard indicator for Bulgarian layouts -->
-- <_shortDescription>bg</_shortDescription>
-- <_description>Bulgarian</_description>
-+
-+ <shortDescription>bg</shortDescription>
-+ <description>Bulgarian</description>
- <languageList>
- <iso639Id>bul</iso639Id>
- </languageList>
-@@ -2215,13 +2215,13 @@
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Bulgarian (traditional phonetic)</_description>
-+ <description>Bulgarian (traditional phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>bas_phonetic</name>
-- <_description>Bulgarian (new phonetic)</_description>
-+ <description>Bulgarian (new phonetic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2229,17 +2229,17 @@
- <layout>
- <configItem>
- <name>ma</name>
-- <!-- Keyboard indicator for Arabic layouts -->
-- <_shortDescription>ar</_shortDescription>
-- <_description>Arabic (Morocco)</_description>
-+
-+ <shortDescription>ar</shortDescription>
-+ <description>Arabic (Morocco)</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>french</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Morocco)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Morocco)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -2248,9 +2248,9 @@
- <variant>
- <configItem>
- <name>tifinagh</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2259,9 +2259,9 @@
- <variant>
- <configItem>
- <name>tifinagh-alt</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh alternative)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh alternative)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2270,9 +2270,9 @@
- <variant>
- <configItem>
- <name>tifinagh-alt-phonetic</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh alternative phonetic)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh alternative phonetic)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2281,9 +2281,9 @@
- <variant>
- <configItem>
- <name>tifinagh-extended</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh extended)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh extended)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2292,9 +2292,9 @@
- <variant>
- <configItem>
- <name>tifinagh-phonetic</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh phonetic)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh phonetic)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2303,9 +2303,9 @@
- <variant>
- <configItem>
- <name>tifinagh-extended-phonetic</name>
-- <!-- Keyboard indicator for Berber layouts -->
-- <_shortDescription>ber</_shortDescription>
-- <_description>Berber (Morocco, Tifinagh extended phonetic)</_description>
-+
-+ <shortDescription>ber</shortDescription>
-+ <description>Berber (Morocco, Tifinagh extended phonetic)</description>
- <languageList>
- <iso639Id>ber</iso639Id>
- </languageList>
-@@ -2316,23 +2316,23 @@
- <layout>
- <configItem>
- <name>cm</name>
-- <!-- Keyboard indicator for Cameroon layouts -->
-- <_shortDescription>cm</_shortDescription>
-- <_description>English (Cameroon)</_description>
-+
-+ <shortDescription>cm</shortDescription>
-+ <description>English (Cameroon)</description>
- <languageList><iso639Id>eng</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>french</name>
-- <_description>French (Cameroon)</_description>
-+ <description>French (Cameroon)</description>
- <languageList><iso639Id>fra</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>Cameroon Multilingual (qwerty)</_description>
-+ <description>Cameroon Multilingual (qwerty)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- <iso639Id>bas</iso639Id>
-@@ -2369,7 +2369,7 @@
- <variant>
- <configItem>
- <name>azerty</name>
-- <_description>Cameroon Multilingual (azerty)</_description>
-+ <description>Cameroon Multilingual (azerty)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- <iso639Id>bas</iso639Id>
-@@ -2406,7 +2406,7 @@
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Cameroon Multilingual (Dvorak)</_description>
-+ <description>Cameroon Multilingual (Dvorak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2414,9 +2414,9 @@
- <layout>
- <configItem>
- <name>mm</name>
-- <!-- Keyboard indicator for Burmese layouts -->
-- <_shortDescription>my</_shortDescription>
-- <_description>Burmese</_description>
-+
-+ <shortDescription>my</shortDescription>
-+ <description>Burmese</description>
- <languageList>
- <iso639Id>mya</iso639Id>
- </languageList>
-@@ -2426,9 +2426,9 @@
- <layout>
- <configItem>
- <name>ca</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Canada)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Canada)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -2437,43 +2437,43 @@
- <variant>
- <configItem>
- <name>fr-dvorak</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Canada, Dvorak)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Canada, Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>fr-legacy</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Canada, legacy)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Canada, legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>multix</name>
-- <_description>Canadian Multilingual</_description>
-+ <description>Canadian Multilingual</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>multi</name>
-- <_description>Canadian Multilingual (first part)</_description>
-+ <description>Canadian Multilingual (first part)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>multi-2gr</name>
-- <_description>Canadian Multilingual (second part)</_description>
-+ <description>Canadian Multilingual (second part)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ike</name>
-- <!-- Keyboard indicator for Inuktikut layouts -->
-- <_shortDescription>ike</_shortDescription>
-- <_description>Inuktitut</_description>
-+
-+ <shortDescription>ike</shortDescription>
-+ <description>Inuktitut</description>
- <languageList>
- <iso639Id>iku</iso639Id>
- </languageList>
-@@ -2482,9 +2482,9 @@
- <variant>
- <configItem>
- <name>eng</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (Canada)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (Canada)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -2495,9 +2495,9 @@
- <layout>
- <configItem>
- <name>cd</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Democratic Republic of the Congo)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Democratic Republic of the Congo)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -2507,9 +2507,9 @@
- <layout>
- <configItem>
- <name>cn</name>
-- <!-- Keyboard indicator for Chinese layouts -->
-- <_shortDescription>zh</_shortDescription>
-- <_description>Chinese</_description>
-+
-+ <shortDescription>zh</shortDescription>
-+ <description>Chinese</description>
- <languageList>
- <iso639Id>chi</iso639Id>
- </languageList>
-@@ -2518,7 +2518,7 @@
- <variant>
- <configItem>
- <name>tib</name>
-- <_description>Tibetan</_description>
-+ <description>Tibetan</description>
- <languageList>
- <iso639Id>tib</iso639Id>
- </languageList>
-@@ -2527,7 +2527,7 @@
- <variant>
- <configItem>
- <name>tib_asciinum</name>
-- <_description>Tibetan (with ASCII numerals)</_description>
-+ <description>Tibetan (with ASCII numerals)</description>
- <languageList>
- <iso639Id>tib</iso639Id>
- </languageList>
-@@ -2536,8 +2536,8 @@
- <variant>
- <configItem>
- <name>ug</name>
-- <_shortDescription>ug</_shortDescription>
-- <_description>Uyghur</_description>
-+ <shortDescription>ug</shortDescription>
-+ <description>Uyghur</description>
- <languageList>
- <iso639Id>ug</iso639Id>
- </languageList>
-@@ -2548,9 +2548,9 @@
- <layout>
- <configItem>
- <name>hr</name>
-- <!-- Keyboard indicator for Croatian layouts -->
-- <_shortDescription>hr</_shortDescription>
-- <_description>Croatian</_description>
-+
-+ <shortDescription>hr</shortDescription>
-+ <description>Croatian</description>
- <languageList>
- <iso639Id>hrv</iso639Id>
- </languageList>
-@@ -2559,25 +2559,25 @@
- <variant>
- <configItem>
- <name>alternatequotes</name>
-- <_description>Croatian (use guillemets for quotes)</_description>
-+ <description>Croatian (use guillemets for quotes)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>unicode</name>
-- <_description>Croatian (use Croatian digraphs)</_description>
-+ <description>Croatian (use Croatian digraphs)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>unicodeus</name>
-- <_description>Croatian (US keyboard with Croatian digraphs)</_description>
-+ <description>Croatian (US keyboard with Croatian digraphs)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Croatian (US keyboard with Croatian letters)</_description>
-+ <description>Croatian (US keyboard with Croatian letters)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2585,9 +2585,9 @@
- <layout>
- <configItem>
- <name>cz</name>
-- <!-- Keyboard indicator for Chech layouts -->
-- <_shortDescription>cs</_shortDescription>
-- <_description>Czech</_description>
-+
-+ <shortDescription>cs</shortDescription>
-+ <description>Czech</description>
- <languageList>
- <iso639Id>cze</iso639Id>
- </languageList>
-@@ -2596,31 +2596,31 @@
- <variant>
- <configItem>
- <name>bksl</name>
-- <_description>Czech (with &lt;\|&gt; key)</_description>
-+ <description>Czech (with &lt;\|&gt; key)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>Czech (qwerty)</_description>
-+ <description>Czech (qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty_bksl</name>
-- <_description>Czech (qwerty, extended Backslash)</_description>
-+ <description>Czech (qwerty, extended Backslash)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ucw</name>
-- <_description>Czech (UCW layout, accented letters only)</_description>
-+ <description>Czech (UCW layout, accented letters only)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-ucw</name>
-- <_description>Czech (US Dvorak with CZ UCW support)</_description>
-+ <description>Czech (US Dvorak with CZ UCW support)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2628,9 +2628,9 @@
- <layout>
- <configItem>
- <name>dk</name>
-- <!-- Keyboard indicator for Danish layouts -->
-- <_shortDescription>da</_shortDescription>
-- <_description>Danish</_description>
-+
-+ <shortDescription>da</shortDescription>
-+ <description>Danish</description>
- <languageList>
- <iso639Id>dan</iso639Id>
- </languageList>
-@@ -2639,25 +2639,25 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Danish (eliminate dead keys)</_description>
-+ <description>Danish (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Danish (Macintosh)</_description>
-+ <description>Danish (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_nodeadkeys</name>
-- <_description>Danish (Macintosh, eliminate dead keys)</_description>
-+ <description>Danish (Macintosh, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Danish (Dvorak)</_description>
-+ <description>Danish (Dvorak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2665,9 +2665,9 @@
- <layout>
- <configItem>
- <name>nl</name>
-- <!-- Keyboard indicator for Dutch layouts -->
-- <_shortDescription>nl</_shortDescription>
-- <_description>Dutch</_description>
-+
-+ <shortDescription>nl</shortDescription>
-+ <description>Dutch</description>
- <languageList>
- <iso639Id>nld</iso639Id>
- </languageList>
-@@ -2676,19 +2676,19 @@
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Dutch (Sun dead keys)</_description>
-+ <description>Dutch (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Dutch (Macintosh)</_description>
-+ <description>Dutch (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>std</name>
-- <_description>Dutch (standard)</_description>
-+ <description>Dutch (standard)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2696,9 +2696,9 @@
- <layout>
- <configItem>
- <name>bt</name>
-- <!-- Keyboard indicator for Dzongkha layouts -->
-- <_shortDescription>dz</_shortDescription>
-- <_description>Dzongkha</_description>
-+
-+ <shortDescription>dz</shortDescription>
-+ <description>Dzongkha</description>
- <languageList>
- <iso639Id>dzo</iso639Id>
- </languageList>
-@@ -2707,9 +2707,9 @@
- <layout>
- <configItem>
- <name>ee</name>
-- <!-- Keyboard indicator for Estonian layouts -->
-- <_shortDescription>et</_shortDescription>
-- <_description>Estonian</_description>
-+
-+ <shortDescription>et</shortDescription>
-+ <description>Estonian</description>
- <languageList>
- <iso639Id>est</iso639Id>
- </languageList>
-@@ -2718,19 +2718,19 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Estonian (eliminate dead keys)</_description>
-+ <description>Estonian (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Estonian (Dvorak)</_description>
-+ <description>Estonian (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Estonian (US keyboard with Estonian letters)</_description>
-+ <description>Estonian (US keyboard with Estonian letters)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2738,9 +2738,9 @@
- <layout>
- <configItem>
- <name>ir</name>
-- <!-- Keyboard indicator for Persian layouts -->
-- <_shortDescription>fa</_shortDescription>
-- <_description>Persian</_description>
-+
-+ <shortDescription>fa</shortDescription>
-+ <description>Persian</description>
- <languageList>
- <iso639Id>per</iso639Id>
- </languageList>
-@@ -2749,15 +2749,15 @@
- <variant>
- <configItem>
- <name>pes_keypad</name>
-- <_description>Persian (with Persian Keypad)</_description>
-+ <description>Persian (with Persian Keypad)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ku</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iran, Latin Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iran, Latin Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2766,9 +2766,9 @@
- <variant>
- <configItem>
- <name>ku_f</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iran, F)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iran, F)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2777,9 +2777,9 @@
- <variant>
- <configItem>
- <name>ku_alt</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iran, Latin Alt-Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iran, Latin Alt-Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2788,9 +2788,9 @@
- <variant>
- <configItem>
- <name>ku_ara</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iran, Arabic-Latin)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iran, Arabic-Latin)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2801,9 +2801,9 @@
- <layout>
- <configItem>
- <name>iq</name>
-- <!-- Keyboard indicator for Iraqi layouts -->
-- <_shortDescription>ar</_shortDescription>
-- <_description>Iraqi</_description>
-+
-+ <shortDescription>ar</shortDescription>
-+ <description>Iraqi</description>
- <languageList><iso639Id>ara</iso639Id>
- <iso639Id>kur</iso639Id></languageList>
- </configItem>
-@@ -2811,9 +2811,9 @@
- <variant>
- <configItem>
- <name>ku</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iraq, Latin Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iraq, Latin Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2822,9 +2822,9 @@
- <variant>
- <configItem>
- <name>ku_f</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iraq, F)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iraq, F)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2833,9 +2833,9 @@
- <variant>
- <configItem>
- <name>ku_alt</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iraq, Latin Alt-Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iraq, Latin Alt-Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2844,9 +2844,9 @@
- <variant>
- <configItem>
- <name>ku_ara</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Iraq, Arabic-Latin)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Iraq, Arabic-Latin)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -2857,9 +2857,9 @@
- <layout>
- <configItem>
- <name>fo</name>
-- <!-- Keyboard indicator for Faroese layouts -->
-- <_shortDescription>fo</_shortDescription>
-- <_description>Faroese</_description>
-+
-+ <shortDescription>fo</shortDescription>
-+ <description>Faroese</description>
- <languageList>
- <iso639Id>fao</iso639Id>
- </languageList>
-@@ -2868,7 +2868,7 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Faroese (eliminate dead keys)</_description>
-+ <description>Faroese (eliminate dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2876,9 +2876,9 @@
- <layout>
- <configItem>
- <name>fi</name>
-- <!-- Keyboard indicator for Finnish layouts -->
-- <_shortDescription>fi</_shortDescription>
-- <_description>Finnish</_description>
-+
-+ <shortDescription>fi</shortDescription>
-+ <description>Finnish</description>
- <languageList>
- <iso639Id>fin</iso639Id>
- </languageList>
-@@ -2887,26 +2887,26 @@
- <variant>
- <configItem>
- <name>classic</name>
-- <_description>Finnish (classic)</_description>
-+ <description>Finnish (classic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Finnish (classic, eliminate dead keys)</_description>
-+ <description>Finnish (classic, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>smi</name>
-- <_description>Northern Saami (Finland)</_description>
-+ <description>Northern Saami (Finland)</description>
- <languageList><iso639Id>sme</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Finnish (Macintosh)</_description>
-+ <description>Finnish (Macintosh)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -2914,9 +2914,9 @@
- <layout>
- <configItem>
- <name>fr</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -2925,91 +2925,91 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>French (eliminate dead keys)</_description>
-+ <description>French (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>French (Sun dead keys)</_description>
-+ <description>French (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss</name>
-- <_description>French (alternative)</_description>
-+ <description>French (alternative)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss_latin9</name>
-- <_description>French (alternative, Latin-9 only)</_description>
-+ <description>French (alternative, Latin-9 only)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss_nodeadkeys</name>
-- <_description>French (alternative, eliminate dead keys)</_description>
-+ <description>French (alternative, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oss_sundeadkeys</name>
-- <_description>French (alternative, Sun dead keys)</_description>
-+ <description>French (alternative, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latin9</name>
-- <_description>French (legacy, alternative)</_description>
-+ <description>French (legacy, alternative)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latin9_nodeadkeys</name>
-- <_description>French (legacy, alternative, eliminate dead keys)</_description>
-+ <description>French (legacy, alternative, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latin9_sundeadkeys</name>
-- <_description>French (legacy, alternative, Sun dead keys)</_description>
-+ <description>French (legacy, alternative, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>bepo</name>
-- <_description>French (Bepo, ergonomic, Dvorak way)</_description>
-+ <description>French (Bepo, ergonomic, Dvorak way)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>bepo_latin9</name>
-- <_description>French (Bepo, ergonomic, Dvorak way, Latin-9 only)</_description>
-+ <description>French (Bepo, ergonomic, Dvorak way, Latin-9 only)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>French (Dvorak)</_description>
-+ <description>French (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>French (Macintosh)</_description>
-+ <description>French (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>bre</name>
-- <_description>French (Breton)</_description>
-+ <description>French (Breton)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>oci</name>
-- <_description>Occitan</_description>
-+ <description>Occitan</description>
- <languageList>
- <iso639Id>oci</iso639Id>
- </languageList>
-@@ -3018,7 +3018,7 @@
- <variant>
- <configItem>
- <name>geo</name>
-- <_description>Georgian (France, AZERTY Tskapo)</_description>
-+ <description>Georgian (France, AZERTY Tskapo)</description>
- <languageList>
- <iso639Id>geo</iso639Id>
- </languageList>
-@@ -3029,9 +3029,9 @@
- <layout>
- <configItem>
- <name>gh</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (Ghana)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (Ghana)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -3040,15 +3040,15 @@
- <variant>
- <configItem>
- <name>generic</name>
-- <_description>English (Ghana, multilingual)</_description>
-+ <description>English (Ghana, multilingual)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>akan</name>
-- <!-- Keyboard indicator for Akan layouts -->
-- <_shortDescription>ak</_shortDescription>
-- <_description>Akan</_description>
-+
-+ <shortDescription>ak</shortDescription>
-+ <description>Akan</description>
- <languageList>
- <iso639Id>aka</iso639Id>
- </languageList>
-@@ -3057,9 +3057,9 @@
- <variant>
- <configItem>
- <name>ewe</name>
-- <!-- Keyboard indicator for Ewe layouts -->
-- <_shortDescription>ee</_shortDescription>
-- <_description>Ewe</_description>
-+
-+ <shortDescription>ee</shortDescription>
-+ <description>Ewe</description>
- <languageList>
- <iso639Id>ewe</iso639Id>
- </languageList>
-@@ -3068,9 +3068,9 @@
- <variant>
- <configItem>
- <name>fula</name>
-- <!-- Keyboard indicator for Fula layouts -->
-- <_shortDescription>ff</_shortDescription>
-- <_description>Fula</_description>
-+
-+ <shortDescription>ff</shortDescription>
-+ <description>Fula</description>
- <languageList>
- <iso639Id>ful</iso639Id>
- </languageList>
-@@ -3079,9 +3079,9 @@
- <variant>
- <configItem>
- <name>ga</name>
-- <!-- Keyboard indicator for Ga layouts -->
-- <_shortDescription>gaa</_shortDescription>
-- <_description>Ga</_description>
-+
-+ <shortDescription>gaa</shortDescription>
-+ <description>Ga</description>
- <languageList>
- <iso639Id>gaa</iso639Id>
- </languageList>
-@@ -3090,9 +3090,9 @@
- <variant>
- <configItem>
- <name>hausa</name>
-- <!-- Keyboard indicator for Hausa layouts -->
-- <_shortDescription>ha</_shortDescription>
-- <_description>Hausa</_description>
-+
-+ <shortDescription>ha</shortDescription>
-+ <description>Hausa</description>
- <languageList>
- <iso639Id>hau</iso639Id>
- </languageList>
-@@ -3101,9 +3101,9 @@
- <variant>
- <configItem>
- <name>avn</name>
-- <!-- Keyboard indicator for Avatime layouts -->
-- <_shortDescription>avn</_shortDescription>
-- <_description>Avatime</_description>
-+
-+ <shortDescription>avn</shortDescription>
-+ <description>Avatime</description>
- <languageList>
- <iso639Id>avn</iso639Id>
- </languageList>
-@@ -3112,7 +3112,7 @@
- <variant>
- <configItem>
- <name>gillbt</name>
-- <_description>English (Ghana, GILLBT)</_description>
-+ <description>English (Ghana, GILLBT)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3120,9 +3120,9 @@
- <layout>
- <configItem>
- <name>gn</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Guinea)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Guinea)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -3132,9 +3132,9 @@
- <layout>
- <configItem>
- <name>ge</name>
-- <!-- Keyboard indicator for Georgian layouts -->
-- <_shortDescription>ka</_shortDescription>
-- <_description>Georgian</_description>
-+
-+ <shortDescription>ka</shortDescription>
-+ <description>Georgian</description>
- <languageList>
- <iso639Id>geo</iso639Id>
- </languageList>
-@@ -3143,21 +3143,21 @@
- <variant>
- <configItem>
- <name>ergonomic</name>
-- <_description>Georgian (ergonomic)</_description>
-+ <description>Georgian (ergonomic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mess</name>
-- <_description>Georgian (MESS)</_description>
-+ <description>Georgian (MESS)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ru</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Georgia)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Georgia)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -3166,7 +3166,7 @@
- <variant>
- <configItem>
- <name>os</name>
-- <_description>Ossetian (Georgia)</_description>
-+ <description>Ossetian (Georgia)</description>
- <languageList>
- <iso639Id>oss</iso639Id>
- </languageList>
-@@ -3177,9 +3177,9 @@
- <layout>
- <configItem>
- <name>de</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German</description>
- <languageList>
- <iso639Id>ger</iso639Id>
- </languageList>
-@@ -3188,75 +3188,75 @@
- <variant>
- <configItem>
- <name>deadacute</name>
-- <_description>German (dead acute)</_description>
-+ <description>German (dead acute)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>deadgraveacute</name>
-- <_description>German (dead grave acute)</_description>
-+ <description>German (dead grave acute)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>German (eliminate dead keys)</_description>
-+ <description>German (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>T3</name>
-- <_description>German (T3)</_description>
-+ <description>German (T3)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ro</name>
-- <_description>Romanian (Germany)</_description>
-+ <description>Romanian (Germany)</description>
- <languageList><iso639Id>rum</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ro_nodeadkeys</name>
-- <_description>Romanian (Germany, eliminate dead keys)</_description>
-+ <description>Romanian (Germany, eliminate dead keys)</description>
- <languageList><iso639Id>rum</iso639Id></languageList>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>German (Dvorak)</_description>
-+ <description>German (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>German (Sun dead keys)</_description>
-+ <description>German (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>neo</name>
-- <_description>German (Neo 2)</_description>
-+ <description>German (Neo 2)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>German (Macintosh)</_description>
-+ <description>German (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_nodeadkeys</name>
-- <_description>German (Macintosh, eliminate dead keys)</_description>
-+ <description>German (Macintosh, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dsb</name>
-- <_description>Lower Sorbian</_description>
-+ <description>Lower Sorbian</description>
- <languageList>
- <iso639Id>dsb</iso639Id>
- </languageList>
-@@ -3265,7 +3265,7 @@
- <variant>
- <configItem>
- <name>dsb_qwertz</name>
-- <_description>Lower Sorbian (qwertz)</_description>
-+ <description>Lower Sorbian (qwertz)</description>
- <languageList>
- <iso639Id>dsb</iso639Id>
- </languageList>
-@@ -3274,15 +3274,15 @@
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>German (qwerty)</_description>
-+ <description>German (qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ru</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Germany, phonetic)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Germany, phonetic)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -3291,7 +3291,7 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>German (legacy)</_description>
-+ <description>German (legacy)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3299,9 +3299,9 @@
- <layout>
- <configItem>
- <name>gr</name>
-- <!-- Keyboard indicator for Greek layouts -->
-- <_shortDescription>gr</_shortDescription>
-- <_description>Greek</_description>
-+
-+ <shortDescription>gr</shortDescription>
-+ <description>Greek</description>
- <languageList>
- <iso639Id>gre</iso639Id>
- </languageList>
-@@ -3310,25 +3310,25 @@
- <variant>
- <configItem>
- <name>simple</name>
-- <_description>Greek (simple)</_description>
-+ <description>Greek (simple)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>extended</name>
-- <_description>Greek (extended)</_description>
-+ <description>Greek (extended)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Greek (eliminate dead keys)</_description>
-+ <description>Greek (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>polytonic</name>
-- <_description>Greek (polytonic)</_description>
-+ <description>Greek (polytonic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3336,9 +3336,9 @@
- <layout>
- <configItem>
- <name>hu</name>
-- <!-- Keyboard indicator for Hungarian layouts -->
-- <_shortDescription>hu</_shortDescription>
-- <_description>Hungarian</_description>
-+
-+ <shortDescription>hu</shortDescription>
-+ <description>Hungarian</description>
- <languageList>
- <iso639Id>hun</iso639Id>
- </languageList>
-@@ -3347,115 +3347,115 @@
- <variant>
- <configItem>
- <name>standard</name>
-- <_description>Hungarian (standard)</_description>
-+ <description>Hungarian (standard)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Hungarian (eliminate dead keys)</_description>
-+ <description>Hungarian (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>Hungarian (qwerty)</_description>
-+ <description>Hungarian (qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwertz_comma_dead</name>
-- <_description>Hungarian (101/qwertz/comma/dead keys)</_description>
-+ <description>Hungarian (101/qwertz/comma/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwertz_comma_nodead</name>
-- <_description>Hungarian (101/qwertz/comma/eliminate dead keys)</_description>
-+ <description>Hungarian (101/qwertz/comma/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwertz_dot_dead</name>
-- <_description>Hungarian (101/qwertz/dot/dead keys)</_description>
-+ <description>Hungarian (101/qwertz/dot/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwertz_dot_nodead</name>
-- <_description>Hungarian (101/qwertz/dot/eliminate dead keys)</_description>
-+ <description>Hungarian (101/qwertz/dot/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwerty_comma_dead</name>
-- <_description>Hungarian (101/qwerty/comma/dead keys)</_description>
-+ <description>Hungarian (101/qwerty/comma/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwerty_comma_nodead</name>
-- <_description>Hungarian (101/qwerty/comma/eliminate dead keys)</_description>
-+ <description>Hungarian (101/qwerty/comma/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwerty_dot_dead</name>
-- <_description>Hungarian (101/qwerty/dot/dead keys)</_description>
-+ <description>Hungarian (101/qwerty/dot/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>101_qwerty_dot_nodead</name>
-- <_description>Hungarian (101/qwerty/dot/eliminate dead keys)</_description>
-+ <description>Hungarian (101/qwerty/dot/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwertz_comma_dead</name>
-- <_description>Hungarian (102/qwertz/comma/dead keys)</_description>
-+ <description>Hungarian (102/qwertz/comma/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwertz_comma_nodead</name>
-- <_description>Hungarian (102/qwertz/comma/eliminate dead keys)</_description>
-+ <description>Hungarian (102/qwertz/comma/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwertz_dot_dead</name>
-- <_description>Hungarian (102/qwertz/dot/dead keys)</_description>
-+ <description>Hungarian (102/qwertz/dot/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwertz_dot_nodead</name>
-- <_description>Hungarian (102/qwertz/dot/eliminate dead keys)</_description>
-+ <description>Hungarian (102/qwertz/dot/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwerty_comma_dead</name>
-- <_description>Hungarian (102/qwerty/comma/dead keys)</_description>
-+ <description>Hungarian (102/qwerty/comma/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwerty_comma_nodead</name>
-- <_description>Hungarian (102/qwerty/comma/eliminate dead keys)</_description>
-+ <description>Hungarian (102/qwerty/comma/eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwerty_dot_dead</name>
-- <_description>Hungarian (102/qwerty/dot/dead keys)</_description>
-+ <description>Hungarian (102/qwerty/dot/dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>102_qwerty_dot_nodead</name>
-- <_description>Hungarian (102/qwerty/dot/eliminate dead keys)</_description>
-+ <description>Hungarian (102/qwerty/dot/eliminate dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3463,9 +3463,9 @@
- <layout>
- <configItem>
- <name>is</name>
-- <!-- Keyboard indicator for Icelandic layouts -->
-- <_shortDescription>is</_shortDescription>
-- <_description>Icelandic</_description>
-+
-+ <shortDescription>is</shortDescription>
-+ <description>Icelandic</description>
- <languageList>
- <iso639Id>ice</iso639Id>
- </languageList>
-@@ -3474,25 +3474,25 @@
- <variant>
- <configItem>
- <name>Sundeadkeys</name>
-- <_description>Icelandic (Sun dead keys)</_description>
-+ <description>Icelandic (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Icelandic (eliminate dead keys)</_description>
-+ <description>Icelandic (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Icelandic (Macintosh)</_description>
-+ <description>Icelandic (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Icelandic (Dvorak)</_description>
-+ <description>Icelandic (Dvorak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3500,9 +3500,9 @@
- <layout>
- <configItem>
- <name>il</name>
-- <!-- Keyboard indicator for Hebrew layouts -->
-- <_shortDescription>he</_shortDescription>
-- <_description>Hebrew</_description>
-+
-+ <shortDescription>he</shortDescription>
-+ <description>Hebrew</description>
- <languageList>
- <iso639Id>heb</iso639Id>
- </languageList>
-@@ -3511,19 +3511,19 @@
- <variant>
- <configItem>
- <name>lyx</name>
-- <_description>Hebrew (lyx)</_description>
-+ <description>Hebrew (lyx)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Hebrew (phonetic)</_description>
-+ <description>Hebrew (phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>biblical</name>
-- <_description>Hebrew (Biblical, Tiro)</_description>
-+ <description>Hebrew (Biblical, Tiro)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3531,9 +3531,9 @@
- <layout>
- <configItem>
- <name>it</name>
-- <!-- Keyboard indicator for Italian layouts -->
-- <_shortDescription>it</_shortDescription>
-- <_description>Italian</_description>
-+
-+ <shortDescription>it</shortDescription>
-+ <description>Italian</description>
- <languageList>
- <iso639Id>ita</iso639Id>
- </languageList>
-@@ -3542,25 +3542,25 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Italian (eliminate dead keys)</_description>
-+ <description>Italian (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Italian (Macintosh)</_description>
-+ <description>Italian (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Italian (US keyboard with Italian letters)</_description>
-+ <description>Italian (US keyboard with Italian letters)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>geo</name>
-- <_description>Georgian (Italy)</_description>
-+ <description>Georgian (Italy)</description>
- <languageList>
- <iso639Id>geo</iso639Id>
- </languageList>
-@@ -3569,7 +3569,7 @@
- <variant>
- <configItem>
- <name>ibm</name>
-- <_description>Italian (IBM 142)</_description>
-+ <description>Italian (IBM 142)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3577,9 +3577,9 @@
- <layout>
- <configItem>
- <name>jp</name>
-- <!-- Keyboard indicator for Japanese layouts -->
-- <_shortDescription>ja</_shortDescription>
-- <_description>Japanese</_description>
-+
-+ <shortDescription>ja</shortDescription>
-+ <description>Japanese</description>
- <languageList>
- <iso639Id>jpn</iso639Id>
- </languageList>
-@@ -3588,31 +3588,31 @@
- <variant>
- <configItem>
- <name>kana</name>
-- <_description>Japanese (Kana)</_description>
-+ <description>Japanese (Kana)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>kana86</name>
-- <_description>Japanese (Kana 86)</_description>
-+ <description>Japanese (Kana 86)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>OADG109A</name>
-- <_description>Japanese (OADG 109A)</_description>
-+ <description>Japanese (OADG 109A)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Japanese (Macintosh)</_description>
-+ <description>Japanese (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Japanese (Dvorak)</_description>
-+ <description>Japanese (Dvorak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3620,9 +3620,9 @@
- <layout>
- <configItem>
- <name>kg</name>
-- <!-- Keyboard indicator for Kyrgyz layouts -->
-- <_shortDescription>ki</_shortDescription>
-- <_description>Kyrgyz</_description>
-+
-+ <shortDescription>ki</shortDescription>
-+ <description>Kyrgyz</description>
- <languageList>
- <iso639Id>kir</iso639Id>
- </languageList>
-@@ -3631,7 +3631,7 @@
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Kyrgyz (phonetic)</_description>
-+ <description>Kyrgyz (phonetic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3639,9 +3639,9 @@
- <layout>
- <configItem>
- <name>kh</name>
-- <!-- Keyboard indicator for Khmer layouts -->
-- <_shortDescription>km</_shortDescription>
-- <_description>Khmer (Cambodia)</_description>
-+
-+ <shortDescription>km</shortDescription>
-+ <description>Khmer (Cambodia)</description>
- <languageList>
- <iso639Id>khm</iso639Id>
- </languageList>
-@@ -3651,9 +3651,9 @@
- <layout>
- <configItem>
- <name>kz</name>
-- <!-- Keyboard indicator for Kazakh layouts -->
-- <_shortDescription>kk</_shortDescription>
-- <_description>Kazakh</_description>
-+
-+ <shortDescription>kk</shortDescription>
-+ <description>Kazakh</description>
- <languageList>
- <iso639Id>kaz</iso639Id>
- </languageList>
-@@ -3662,9 +3662,9 @@
- <variant>
- <configItem>
- <name>ruskaz</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Kazakhstan, with Kazakh)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Kazakhstan, with Kazakh)</description>
- <languageList><iso639Id>kaz</iso639Id>
- <iso639Id>rus</iso639Id></languageList>
- </configItem>
-@@ -3672,7 +3672,7 @@
- <variant>
- <configItem>
- <name>kazrus</name>
-- <_description>Kazakh (with Russian)</_description>
-+ <description>Kazakh (with Russian)</description>
- <languageList><iso639Id>kaz</iso639Id>
- <iso639Id>rus</iso639Id></languageList>
- </configItem>
-@@ -3682,9 +3682,9 @@
- <layout>
- <configItem>
- <name>la</name>
-- <!-- Keyboard indicator for Lao layouts -->
-- <_shortDescription>lo</_shortDescription>
-- <_description>Lao</_description>
-+
-+ <shortDescription>lo</shortDescription>
-+ <description>Lao</description>
- <languageList>
- <iso639Id>lao</iso639Id>
- </languageList>
-@@ -3693,7 +3693,7 @@
- <variant>
- <configItem>
- <name>stea</name>
-- <_description>Lao (STEA proposed standard layout)</_description>
-+ <description>Lao (STEA proposed standard layout)</description>
- <languageList><iso639Id>lao</iso639Id>
- </languageList>
- </configItem>
-@@ -3703,9 +3703,9 @@
- <layout>
- <configItem>
- <name>latam</name>
-- <!-- Keyboard indicator for Spanish layouts -->
-- <_shortDescription>es</_shortDescription>
-- <_description>Spanish (Latin American)</_description>
-+
-+ <shortDescription>es</shortDescription>
-+ <description>Spanish (Latin American)</description>
- <countryList>
- <iso3166Id>AR</iso3166Id>
- <iso3166Id>BO</iso3166Id>
-@@ -3737,19 +3737,19 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Spanish (Latin American, eliminate dead keys)</_description>
-+ <description>Spanish (Latin American, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>deadtilde</name>
-- <_description>Spanish (Latin American, include dead tilde)</_description>
-+ <description>Spanish (Latin American, include dead tilde)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Spanish (Latin American, Sun dead keys)</_description>
-+ <description>Spanish (Latin American, Sun dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3757,9 +3757,9 @@
- <layout>
- <configItem>
- <name>lt</name>
-- <!-- Keyboard indicator for Lithuanian layouts -->
-- <_shortDescription>lt</_shortDescription>
-- <_description>Lithuanian</_description>
-+
-+ <shortDescription>lt</shortDescription>
-+ <description>Lithuanian</description>
- <languageList>
- <iso639Id>lit</iso639Id>
- </languageList>
-@@ -3768,31 +3768,31 @@
- <variant>
- <configItem>
- <name>std</name>
-- <_description>Lithuanian (standard)</_description>
-+ <description>Lithuanian (standard)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Lithuanian (US keyboard with Lithuanian letters)</_description>
-+ <description>Lithuanian (US keyboard with Lithuanian letters)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ibm</name>
-- <_description>Lithuanian (IBM LST 1205-92)</_description>
-+ <description>Lithuanian (IBM LST 1205-92)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>lekp</name>
-- <_description>Lithuanian (LEKP)</_description>
-+ <description>Lithuanian (LEKP)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>lekpa</name>
-- <_description>Lithuanian (LEKPa)</_description>
-+ <description>Lithuanian (LEKPa)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3800,9 +3800,9 @@
- <layout>
- <configItem>
- <name>lv</name>
-- <!-- Keyboard indicator for Latvian layouts -->
-- <_shortDescription>lv</_shortDescription>
-- <_description>Latvian</_description>
-+
-+ <shortDescription>lv</shortDescription>
-+ <description>Latvian</description>
- <languageList>
- <iso639Id>lav</iso639Id>
- </languageList>
-@@ -3811,37 +3811,37 @@
- <variant>
- <configItem>
- <name>apostrophe</name>
-- <_description>Latvian (apostrophe variant)</_description>
-+ <description>Latvian (apostrophe variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>tilde</name>
-- <_description>Latvian (tilde variant)</_description>
-+ <description>Latvian (tilde variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>fkey</name>
-- <_description>Latvian (F variant)</_description>
-+ <description>Latvian (F variant)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>modern</name>
-- <_description>Latvian (modern)</_description>
-+ <description>Latvian (modern)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ergonomic</name>
-- <_description>Latvian (ergonomic, ŪGJRMV)</_description>
-+ <description>Latvian (ergonomic, ŪGJRMV)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>adapted</name>
-- <_description>Latvian (adapted)</_description>
-+ <description>Latvian (adapted)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3849,9 +3849,9 @@
- <layout>
- <configItem>
- <name>mao</name>
-- <!-- Keyboard indicator for Maori layouts -->
-- <_shortDescription>mi</_shortDescription>
-- <_description>Maori</_description>
-+
-+ <shortDescription>mi</shortDescription>
-+ <description>Maori</description>
- <languageList>
- <iso639Id>mao</iso639Id>
- </languageList>
-@@ -3861,9 +3861,9 @@
- <layout>
- <configItem>
- <name>me</name>
-- <!-- Keyboard indicator for Montenegrin layouts -->
-- <_shortDescription>sr</_shortDescription>
-- <_description>Montenegrin</_description>
-+
-+ <shortDescription>sr</shortDescription>
-+ <description>Montenegrin</description>
- <languageList>
- <iso639Id>srp</iso639Id>
- </languageList>
-@@ -3872,43 +3872,43 @@
- <variant>
- <configItem>
- <name>cyrillic</name>
-- <_description>Montenegrin (Cyrillic)</_description>
-+ <description>Montenegrin (Cyrillic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>cyrillicyz</name>
-- <_description>Montenegrin (Cyrillic, Z and ZHE swapped)</_description>
-+ <description>Montenegrin (Cyrillic, Z and ZHE swapped)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinunicode</name>
-- <_description>Montenegrin (Latin Unicode)</_description>
-+ <description>Montenegrin (Latin Unicode)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinyz</name>
-- <_description>Montenegrin (Latin qwerty)</_description>
-+ <description>Montenegrin (Latin qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinunicodeyz</name>
-- <_description>Montenegrin (Latin Unicode qwerty)</_description>
-+ <description>Montenegrin (Latin Unicode qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>cyrillicalternatequotes</name>
-- <_description>Montenegrin (Cyrillic with guillemets)</_description>
-+ <description>Montenegrin (Cyrillic with guillemets)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinalternatequotes</name>
-- <_description>Montenegrin (Latin with guillemets)</_description>
-+ <description>Montenegrin (Latin with guillemets)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3916,9 +3916,9 @@
- <layout>
- <configItem>
- <name>mk</name>
-- <!-- Keyboard indicator for Macedonian layouts -->
-- <_shortDescription>mk</_shortDescription>
-- <_description>Macedonian</_description>
-+
-+ <shortDescription>mk</shortDescription>
-+ <description>Macedonian</description>
- <languageList>
- <iso639Id>mkd</iso639Id>
- </languageList>
-@@ -3927,7 +3927,7 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Macedonian (eliminate dead keys)</_description>
-+ <description>Macedonian (eliminate dead keys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3935,9 +3935,9 @@
- <layout>
- <configItem>
- <name>mt</name>
-- <!-- Keyboard indicator for Maltese layouts -->
-- <_shortDescription>mt</_shortDescription>
-- <_description>Maltese</_description>
-+
-+ <shortDescription>mt</shortDescription>
-+ <description>Maltese</description>
- <languageList>
- <iso639Id>mlt</iso639Id>
- </languageList>
-@@ -3946,7 +3946,7 @@
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Maltese (with US layout)</_description>
-+ <description>Maltese (with US layout)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -3954,9 +3954,9 @@
- <layout>
- <configItem>
- <name>mn</name>
-- <!-- Keyboard indicator for Mongolian layouts -->
-- <_shortDescription>mn</_shortDescription>
-- <_description>Mongolian</_description>
-+
-+ <shortDescription>mn</shortDescription>
-+ <description>Mongolian</description>
- <languageList>
- <iso639Id>mon</iso639Id>
- </languageList>
-@@ -3966,9 +3966,9 @@
- <layout>
- <configItem>
- <name>no</name>
-- <!-- Keyboard indicator for Norwegian layouts -->
-- <_shortDescription>no</_shortDescription>
-- <_description>Norwegian</_description>
-+
-+ <shortDescription>no</shortDescription>
-+ <description>Norwegian</description>
- <languageList>
- <iso639Id>nor</iso639Id>
- <iso639Id>nob</iso639Id>
-@@ -3979,19 +3979,19 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Norwegian (eliminate dead keys)</_description>
-+ <description>Norwegian (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Norwegian (Dvorak)</_description>
-+ <description>Norwegian (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>smi</name>
-- <_description>Northern Saami (Norway)</_description>
-+ <description>Northern Saami (Norway)</description>
- <languageList>
- <iso639Id>sme</iso639Id>
- </languageList>
-@@ -4000,7 +4000,7 @@
- <variant>
- <configItem>
- <name>smi_nodeadkeys</name>
-- <_description>Northern Saami (Norway, eliminate dead keys)</_description>
-+ <description>Northern Saami (Norway, eliminate dead keys)</description>
- <languageList>
- <iso639Id>sme</iso639Id>
- </languageList>
-@@ -4009,19 +4009,19 @@
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Norwegian (Macintosh)</_description>
-+ <description>Norwegian (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_nodeadkeys</name>
-- <_description>Norwegian (Macintosh, eliminate dead keys)</_description>
-+ <description>Norwegian (Macintosh, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>Norwegian (Colemak)</_description>
-+ <description>Norwegian (Colemak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4029,9 +4029,9 @@
- <layout>
- <configItem>
- <name>pl</name>
-- <!-- Keyboard indicator for Polish layouts -->
-- <_shortDescription>pl</_shortDescription>
-- <_description>Polish</_description>
-+
-+ <shortDescription>pl</shortDescription>
-+ <description>Polish</description>
- <languageList>
- <iso639Id>pol</iso639Id>
- </languageList>
-@@ -4040,37 +4040,37 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Polish (legacy)</_description>
-+ <description>Polish (legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwertz</name>
-- <_description>Polish (qwertz)</_description>
-+ <description>Polish (qwertz)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Polish (Dvorak)</_description>
-+ <description>Polish (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak_quotes</name>
-- <_description>Polish (Dvorak, Polish quotes on quotemark key)</_description>
-+ <description>Polish (Dvorak, Polish quotes on quotemark key)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak_altquotes</name>
-- <_description>Polish (Dvorak, Polish quotes on key 1)</_description>
-+ <description>Polish (Dvorak, Polish quotes on key 1)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>csb</name>
-- <_description>Kashubian</_description>
-+ <description>Kashubian</description>
- <languageList>
- <iso639Id>csb</iso639Id>
- </languageList>
-@@ -4086,9 +4086,9 @@
- <variant>
- <configItem>
- <name>ru_phonetic_dvorak</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Poland, phonetic Dvorak)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Poland, phonetic Dvorak)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -4097,7 +4097,7 @@
- <variant>
- <configItem>
- <name>dvp</name>
-- <_description>Polish (programmer Dvorak)</_description>
-+ <description>Polish (programmer Dvorak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4105,9 +4105,9 @@
- <layout>
- <configItem>
- <name>pt</name>
-- <!-- Keyboard indicator for Portuguese layouts -->
-- <_shortDescription>pt</_shortDescription>
-- <_description>Portuguese</_description>
-+
-+ <shortDescription>pt</shortDescription>
-+ <description>Portuguese</description>
- <languageList>
- <iso639Id>por</iso639Id>
- </languageList>
-@@ -4116,49 +4116,49 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Portuguese (eliminate dead keys)</_description>
-+ <description>Portuguese (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Portuguese (Sun dead keys)</_description>
-+ <description>Portuguese (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Portuguese (Macintosh)</_description>
-+ <description>Portuguese (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_nodeadkeys</name>
-- <_description>Portuguese (Macintosh, eliminate dead keys)</_description>
-+ <description>Portuguese (Macintosh, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_sundeadkeys</name>
-- <_description>Portuguese (Macintosh, Sun dead keys)</_description>
-+ <description>Portuguese (Macintosh, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo</name>
-- <_description>Portuguese (Nativo)</_description>
-+ <description>Portuguese (Nativo)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo-us</name>
-- <_description>Portuguese (Nativo for US keyboards)</_description>
-+ <description>Portuguese (Nativo for US keyboards)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>nativo-epo</name>
-- <_description>Esperanto (Portugal, Nativo)</_description>
-+ <description>Esperanto (Portugal, Nativo)</description>
- <languageList>
- <iso639Id>epo</iso639Id>
- </languageList>
-@@ -4169,9 +4169,9 @@
- <layout>
- <configItem>
- <name>ro</name>
-- <!-- Keyboard indicator for Romanian layouts -->
-- <_shortDescription>ro</_shortDescription>
-- <_description>Romanian</_description>
-+
-+ <shortDescription>ro</shortDescription>
-+ <description>Romanian</description>
- <languageList>
- <iso639Id>rum</iso639Id>
- </languageList>
-@@ -4180,25 +4180,25 @@
- <variant>
- <configItem>
- <name>cedilla</name>
-- <_description>Romanian (cedilla)</_description>
-+ <description>Romanian (cedilla)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>std</name>
-- <_description>Romanian (standard)</_description>
-+ <description>Romanian (standard)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>std_cedilla</name>
-- <_description>Romanian (standard cedilla)</_description>
-+ <description>Romanian (standard cedilla)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>winkeys</name>
-- <_description>Romanian (WinKeys)</_description>
-+ <description>Romanian (WinKeys)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4206,9 +4206,9 @@
- <layout>
- <configItem>
- <name>ru</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -4217,37 +4217,37 @@
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Russian (phonetic)</_description>
-+ <description>Russian (phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>phonetic_winkeys</name>
-- <_description>Russian (phonetic WinKeys)</_description>
-+ <description>Russian (phonetic WinKeys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>typewriter</name>
-- <_description>Russian (typewriter)</_description>
-+ <description>Russian (typewriter)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Russian (legacy)</_description>
-+ <description>Russian (legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>typewriter-legacy</name>
-- <_description>Russian (typewriter, legacy)</_description>
-+ <description>Russian (typewriter, legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>tt</name>
-- <_description>Tatar</_description>
-+ <description>Tatar</description>
- <languageList>
- <iso639Id>tat</iso639Id>
- </languageList>
-@@ -4256,7 +4256,7 @@
- <variant>
- <configItem>
- <name>os_legacy</name>
-- <_description>Ossetian (legacy)</_description>
-+ <description>Ossetian (legacy)</description>
- <languageList>
- <iso639Id>oss</iso639Id>
- </languageList>
-@@ -4265,7 +4265,7 @@
- <variant>
- <configItem>
- <name>os_winkeys</name>
-- <_description>Ossetian (WinKeys)</_description>
-+ <description>Ossetian (WinKeys)</description>
- <languageList>
- <iso639Id>oss</iso639Id>
- </languageList>
-@@ -4274,7 +4274,7 @@
- <variant>
- <configItem>
- <name>cv</name>
-- <_description>Chuvash</_description>
-+ <description>Chuvash</description>
- <languageList>
- <iso639Id>chv</iso639Id>
- </languageList>
-@@ -4283,7 +4283,7 @@
- <variant>
- <configItem>
- <name>cv_latin</name>
-- <_description>Chuvash (Latin)</_description>
-+ <description>Chuvash (Latin)</description>
- <languageList>
- <iso639Id>chv</iso639Id>
- </languageList>
-@@ -4292,7 +4292,7 @@
- <variant>
- <configItem>
- <name>udm</name>
-- <_description>Udmurt</_description>
-+ <description>Udmurt</description>
- <languageList>
- <iso639Id>udm</iso639Id>
- </languageList>
-@@ -4301,7 +4301,7 @@
- <variant>
- <configItem>
- <name>kom</name>
-- <_description>Komi</_description>
-+ <description>Komi</description>
- <languageList>
- <iso639Id>kom</iso639Id>
- </languageList>
-@@ -4310,7 +4310,7 @@
- <variant>
- <configItem>
- <name>sah</name>
-- <_description>Yakut</_description>
-+ <description>Yakut</description>
- <languageList>
- <iso639Id>sah</iso639Id>
- </languageList>
-@@ -4319,7 +4319,7 @@
- <variant>
- <configItem>
- <name>xal</name>
-- <_description>Kalmyk</_description>
-+ <description>Kalmyk</description>
- <languageList>
- <iso639Id>xal</iso639Id>
- </languageList>
-@@ -4328,19 +4328,19 @@
- <variant>
- <configItem>
- <name>dos</name>
-- <_description>Russian (DOS)</_description>
-+ <description>Russian (DOS)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Russian (Macintosh)</_description>
-+ <description>Russian (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>srp</name>
-- <_description>Serbian (Russia)</_description>
-+ <description>Serbian (Russia)</description>
- <languageList><iso639Id>rus</iso639Id>
- <iso639Id>srp</iso639Id></languageList>
- </configItem>
-@@ -4348,7 +4348,7 @@
- <variant>
- <configItem>
- <name>bak</name>
-- <_description>Bashkirian</_description>
-+ <description>Bashkirian</description>
- <languageList>
- <iso639Id>bak</iso639Id>
- </languageList>
-@@ -4357,7 +4357,7 @@
- <variant>
- <configItem>
- <name>chm</name>
-- <_description>Mari</_description>
-+ <description>Mari</description>
- <languageList>
- <iso639Id>chm</iso639Id>
- </languageList>
-@@ -4368,9 +4368,9 @@
- <layout>
- <configItem>
- <name>rs</name>
-- <!-- Keyboard indicator for Serbian layouts -->
-- <_shortDescription>sr</_shortDescription>
-- <_description>Serbian</_description>
-+
-+ <shortDescription>sr</shortDescription>
-+ <description>Serbian</description>
- <languageList>
- <iso639Id>srp</iso639Id>
- </languageList>
-@@ -4379,49 +4379,49 @@
- <variant>
- <configItem>
- <name>yz</name>
-- <_description>Serbian (Cyrillic, Z and ZHE swapped)</_description>
-+ <description>Serbian (Cyrillic, Z and ZHE swapped)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latin</name>
-- <_description>Serbian (Latin)</_description>
-+ <description>Serbian (Latin)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinunicode</name>
-- <_description>Serbian (Latin Unicode)</_description>
-+ <description>Serbian (Latin Unicode)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinyz</name>
-- <_description>Serbian (Latin qwerty)</_description>
-+ <description>Serbian (Latin qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinunicodeyz</name>
-- <_description>Serbian (Latin Unicode qwerty)</_description>
-+ <description>Serbian (Latin Unicode qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>alternatequotes</name>
-- <_description>Serbian (Cyrillic with guillemets)</_description>
-+ <description>Serbian (Cyrillic with guillemets)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>latinalternatequotes</name>
-- <_description>Serbian (Latin with guillemets)</_description>
-+ <description>Serbian (Latin with guillemets)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>rue</name>
-- <_description>Pannonian Rusyn</_description>
-+ <description>Pannonian Rusyn</description>
- <languageList>
- <iso639Id>rue</iso639Id>
- </languageList>
-@@ -4432,9 +4432,9 @@
- <layout>
- <configItem>
- <name>si</name>
-- <!-- Keyboard indicator for Slovenian layouts -->
-- <_shortDescription>sl</_shortDescription>
-- <_description>Slovenian</_description>
-+
-+ <shortDescription>sl</shortDescription>
-+ <description>Slovenian</description>
- <languageList>
- <iso639Id>slv</iso639Id>
- </languageList>
-@@ -4443,13 +4443,13 @@
- <variant>
- <configItem>
- <name>alternatequotes</name>
-- <_description>Slovenian (use guillemets for quotes)</_description>
-+ <description>Slovenian (use guillemets for quotes)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>us</name>
-- <_description>Slovenian (US keyboard with Slovenian letters)</_description>
-+ <description>Slovenian (US keyboard with Slovenian letters)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4457,9 +4457,9 @@
- <layout>
- <configItem>
- <name>sk</name>
-- <!-- Keyboard indicator for Slovak layouts -->
-- <_shortDescription>sk</_shortDescription>
-- <_description>Slovak</_description>
-+
-+ <shortDescription>sk</shortDescription>
-+ <description>Slovak</description>
- <languageList>
- <iso639Id>slo</iso639Id>
- </languageList>
-@@ -4468,19 +4468,19 @@
- <variant>
- <configItem>
- <name>bksl</name>
-- <_description>Slovak (extended Backslash)</_description>
-+ <description>Slovak (extended Backslash)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty</name>
-- <_description>Slovak (qwerty)</_description>
-+ <description>Slovak (qwerty)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>qwerty_bksl</name>
-- <_description>Slovak (qwerty, extended Backslash)</_description>
-+ <description>Slovak (qwerty, extended Backslash)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4488,9 +4488,9 @@
- <layout>
- <configItem>
- <name>es</name>
-- <!-- Keyboard indicator for Spanish layouts -->
-- <_shortDescription>es</_shortDescription>
-- <_description>Spanish</_description>
-+
-+ <shortDescription>es</shortDescription>
-+ <description>Spanish</description>
- <languageList>
- <iso639Id>spa</iso639Id>
- </languageList>
-@@ -4499,31 +4499,31 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Spanish (eliminate dead keys)</_description>
-+ <description>Spanish (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>deadtilde</name>
-- <_description>Spanish (include dead tilde)</_description>
-+ <description>Spanish (include dead tilde)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Spanish (Sun dead keys)</_description>
-+ <description>Spanish (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Spanish (Dvorak)</_description>
-+ <description>Spanish (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ast</name>
-- <_description>Asturian (Spain, with bottom-dot H and bottom-dot L)</_description>
-+ <description>Asturian (Spain, with bottom-dot H and bottom-dot L)</description>
- <languageList>
- <iso639Id>ast</iso639Id>
- </languageList>
-@@ -4532,7 +4532,7 @@
- <variant>
- <configItem>
- <name>cat</name>
-- <_description>Catalan (Spain, with middle-dot L)</_description>
-+ <description>Catalan (Spain, with middle-dot L)</description>
- <languageList>
- <iso639Id>cat</iso639Id>
- </languageList>
-@@ -4541,7 +4541,7 @@
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Spanish (Macintosh)</_description>
-+ <description>Spanish (Macintosh)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4549,9 +4549,9 @@
- <layout>
- <configItem>
- <name>se</name>
-- <!-- Keyboard indicator for Swedish layouts -->
-- <_shortDescription>sv</_shortDescription>
-- <_description>Swedish</_description>
-+
-+ <shortDescription>sv</shortDescription>
-+ <description>Swedish</description>
- <languageList>
- <iso639Id>swe</iso639Id>
- </languageList>
-@@ -4560,21 +4560,21 @@
- <variant>
- <configItem>
- <name>nodeadkeys</name>
-- <_description>Swedish (eliminate dead keys)</_description>
-+ <description>Swedish (eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Swedish (Dvorak)</_description>
-+ <description>Swedish (Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>rus</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Sweden, phonetic)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Sweden, phonetic)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -4583,9 +4583,9 @@
- <variant>
- <configItem>
- <name>rus_nodeadkeys</name>
-- <!-- Keyboard indicator for Russian layouts -->
-- <_shortDescription>ru</_shortDescription>
-- <_description>Russian (Sweden, phonetic, eliminate dead keys)</_description>
-+
-+ <shortDescription>ru</shortDescription>
-+ <description>Russian (Sweden, phonetic, eliminate dead keys)</description>
- <languageList>
- <iso639Id>rus</iso639Id>
- </languageList>
-@@ -4594,7 +4594,7 @@
- <variant>
- <configItem>
- <name>smi</name>
-- <_description>Northern Saami (Sweden)</_description>
-+ <description>Northern Saami (Sweden)</description>
- <languageList>
- <iso639Id>sme</iso639Id>
- </languageList>
-@@ -4603,19 +4603,19 @@
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>Swedish (Macintosh)</_description>
-+ <description>Swedish (Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>svdvorak</name>
-- <_description>Swedish (Svdvorak)</_description>
-+ <description>Swedish (Svdvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>swl</name>
-- <_description>Swedish Sign Language</_description>
-+ <description>Swedish Sign Language</description>
- <languageList><iso639Id>swl</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -4624,9 +4624,9 @@
- <layout>
- <configItem>
- <name>ch</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Switzerland)</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German (Switzerland)</description>
- <languageList><iso639Id>ger</iso639Id>
- <iso639Id>gsw</iso639Id></languageList>
- </configItem>
-@@ -4634,31 +4634,31 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>German (Switzerland, legacy)</_description>
-+ <description>German (Switzerland, legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>de_nodeadkeys</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Switzerland, eliminate dead keys)</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German (Switzerland, eliminate dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>de_sundeadkeys</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Switzerland, Sun dead keys)</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German (Switzerland, Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>fr</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Switzerland)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Switzerland)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -4667,9 +4667,9 @@
- <variant>
- <configItem>
- <name>fr_nodeadkeys</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Switzerland, eliminate dead keys)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Switzerland, eliminate dead keys)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -4678,9 +4678,9 @@
- <variant>
- <configItem>
- <name>fr_sundeadkeys</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Switzerland, Sun dead keys)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Switzerland, Sun dead keys)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -4689,9 +4689,9 @@
- <variant>
- <configItem>
- <name>fr_mac</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Switzerland, Macintosh)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Switzerland, Macintosh)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -4700,9 +4700,9 @@
- <variant>
- <configItem>
- <name>de_mac</name>
-- <!-- Keyboard indicator for German layouts -->
-- <_shortDescription>de</_shortDescription>
-- <_description>German (Switzerland, Macintosh)</_description>
-+
-+ <shortDescription>de</shortDescription>
-+ <description>German (Switzerland, Macintosh)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4710,9 +4710,9 @@
- <layout>
- <configItem>
- <name>sy</name>
-- <!-- Keyboard indicator for Arabic layouts -->
-- <_shortDescription>ar</_shortDescription>
-- <_description>Arabic (Syria)</_description>
-+
-+ <shortDescription>ar</shortDescription>
-+ <description>Arabic (Syria)</description>
- <languageList>
- <iso639Id>syr</iso639Id>
- </languageList>
-@@ -4721,25 +4721,25 @@
- <variant>
- <configItem>
- <name>syc</name>
-- <!-- Keyboard indicator for Syriac layouts -->
-- <_shortDescription>syc</_shortDescription>
-- <_description>Syriac</_description>
-+
-+ <shortDescription>syc</shortDescription>
-+ <description>Syriac</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>syc_phonetic</name>
-- <!-- Keyboard indicator for Syriac layouts -->
-- <_shortDescription>syc</_shortDescription>
-- <_description>Syriac (phonetic)</_description>
-+
-+ <shortDescription>syc</shortDescription>
-+ <description>Syriac (phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ku</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Syria, Latin Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Syria, Latin Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4748,9 +4748,9 @@
- <variant>
- <configItem>
- <name>ku_f</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Syria, F)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Syria, F)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4759,9 +4759,9 @@
- <variant>
- <configItem>
- <name>ku_alt</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Syria, Latin Alt-Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Syria, Latin Alt-Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4772,9 +4772,9 @@
- <layout>
- <configItem>
- <name>tj</name>
-- <!-- Keyboard indicator for Tajik layouts -->
-- <_shortDescription>tg</_shortDescription>
-- <_description>Tajik</_description>
-+
-+ <shortDescription>tg</shortDescription>
-+ <description>Tajik</description>
- <languageList>
- <iso639Id>tgk</iso639Id>
- </languageList>
-@@ -4783,7 +4783,7 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Tajik (legacy)</_description>
-+ <description>Tajik (legacy)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4791,9 +4791,9 @@
- <layout>
- <configItem>
- <name>lk</name>
-- <!-- Keyboard indicator for Sinhala layouts -->
-- <_shortDescription>si</_shortDescription>
-- <_description>Sinhala (phonetic)</_description>
-+
-+ <shortDescription>si</shortDescription>
-+ <description>Sinhala (phonetic)</description>
- <languageList>
- <iso639Id>sin</iso639Id>
- </languageList>
-@@ -4802,9 +4802,9 @@
- <variant>
- <configItem>
- <name>tam_unicode</name>
-- <!-- Keyboard indicator for Tamil layouts -->
-- <_shortDescription>ta</_shortDescription>
-- <_description>Tamil (Sri Lanka, Unicode)</_description>
-+
-+ <shortDescription>ta</shortDescription>
-+ <description>Tamil (Sri Lanka, Unicode)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -4813,7 +4813,7 @@
- <variant>
- <configItem>
- <name>tam_TAB</name>
-- <_description>Tamil (Sri Lanka, TAB Typewriter)</_description>
-+ <description>Tamil (Sri Lanka, TAB Typewriter)</description>
- <languageList>
- <iso639Id>tam</iso639Id>
- </languageList>
-@@ -4824,9 +4824,9 @@
- <layout>
- <configItem>
- <name>th</name>
-- <!-- Keyboard indicator for Thai layouts -->
-- <_shortDescription>th</_shortDescription>
-- <_description>Thai</_description>
-+
-+ <shortDescription>th</shortDescription>
-+ <description>Thai</description>
- <languageList>
- <iso639Id>tha</iso639Id>
- </languageList>
-@@ -4835,13 +4835,13 @@
- <variant>
- <configItem>
- <name>tis</name>
-- <_description>Thai (TIS-820.2538)</_description>
-+ <description>Thai (TIS-820.2538)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>pat</name>
-- <_description>Thai (Pattachote)</_description>
-+ <description>Thai (Pattachote)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -4849,9 +4849,9 @@
- <layout>
- <configItem>
- <name>tr</name>
-- <!-- Keyboard indicator for Turkish layouts -->
-- <_shortDescription>tr</_shortDescription>
-- <_description>Turkish</_description>
-+
-+ <shortDescription>tr</shortDescription>
-+ <description>Turkish</description>
- <languageList>
- <iso639Id>tur</iso639Id>
- </languageList>
-@@ -4860,27 +4860,27 @@
- <variant>
- <configItem>
- <name>f</name>
-- <_description>Turkish (F)</_description>
-+ <description>Turkish (F)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>alt</name>
-- <_description>Turkish (Alt-Q)</_description>
-+ <description>Turkish (Alt-Q)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>sundeadkeys</name>
-- <_description>Turkish (Sun dead keys)</_description>
-+ <description>Turkish (Sun dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ku</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Turkey, Latin Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Turkey, Latin Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4889,9 +4889,9 @@
- <variant>
- <configItem>
- <name>ku_f</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Turkey, F)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Turkey, F)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4900,9 +4900,9 @@
- <variant>
- <configItem>
- <name>ku_alt</name>
-- <!-- Keyboard indicator for Kurdish layouts -->
-- <_shortDescription>ku</_shortDescription>
-- <_description>Kurdish (Turkey, Latin Alt-Q)</_description>
-+
-+ <shortDescription>ku</shortDescription>
-+ <description>Kurdish (Turkey, Latin Alt-Q)</description>
- <languageList>
- <iso639Id>kur</iso639Id>
- </languageList>
-@@ -4911,15 +4911,15 @@
- <variant>
- <configItem>
- <name>intl</name>
-- <_description>Turkish (international with dead keys)</_description>
-+ <description>Turkish (international with dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>crh</name>
-- <!-- Keyboard indicator for Crimean Tatar layouts -->
-- <_shortDescription>crh</_shortDescription>
-- <_description>Crimean Tatar (Turkish Q)</_description>
-+
-+ <shortDescription>crh</shortDescription>
-+ <description>Crimean Tatar (Turkish Q)</description>
- <languageList>
- <iso639Id>crh</iso639Id>
- </languageList>
-@@ -4928,9 +4928,9 @@
- <variant>
- <configItem>
- <name>crh_f</name>
-- <!-- Keyboard indicator for Crimean Tatar layouts -->
-- <_shortDescription>crh</_shortDescription>
-- <_description>Crimean Tatar (Turkish F)</_description>
-+
-+ <shortDescription>crh</shortDescription>
-+ <description>Crimean Tatar (Turkish F)</description>
- <languageList>
- <iso639Id>crh</iso639Id>
- </languageList>
-@@ -4939,9 +4939,9 @@
- <variant>
- <configItem>
- <name>crh_alt</name>
-- <!-- Keyboard indicator for Crimean Tatar layouts -->
-- <_shortDescription>crh</_shortDescription>
-- <_description>Crimean Tatar (Turkish Alt-Q)</_description>
-+
-+ <shortDescription>crh</shortDescription>
-+ <description>Crimean Tatar (Turkish Alt-Q)</description>
- <languageList>
- <iso639Id>crh</iso639Id>
- </languageList>
-@@ -4952,9 +4952,9 @@
- <layout>
- <configItem>
- <name>tw</name>
-- <!-- Keyboard indicator for Taiwanese layouts -->
-- <_shortDescription>zh</_shortDescription>
-- <_description>Taiwanese</_description>
-+
-+ <shortDescription>zh</shortDescription>
-+ <description>Taiwanese</description>
- <languageList>
- <iso639Id>fox</iso639Id>
- </languageList>
-@@ -4963,7 +4963,7 @@
- <variant>
- <configItem>
- <name>indigenous</name>
-- <_description>Taiwanese (indigenous)</_description>
-+ <description>Taiwanese (indigenous)</description>
- <languageList>
- <iso639Id>ami</iso639Id>
- <iso639Id>tay</iso639Id>
-@@ -4987,9 +4987,9 @@
- <variant>
- <configItem>
- <name>saisiyat</name>
-- <!-- Keyboard indicator for Saisiyat layouts -->
-- <_shortDescription>xsy</_shortDescription>
-- <_description>Saisiyat (Taiwan)</_description>
-+
-+ <shortDescription>xsy</shortDescription>
-+ <description>Saisiyat (Taiwan)</description>
- <languageList>
- <iso639Id>xsy</iso639Id>
- </languageList>
-@@ -5000,9 +5000,9 @@
- <layout>
- <configItem>
- <name>ua</name>
-- <!-- Keyboard indicator for Ukranian layouts -->
-- <_shortDescription>uk</_shortDescription>
-- <_description>Ukrainian</_description>
-+
-+ <shortDescription>uk</shortDescription>
-+ <description>Ukrainian</description>
- <languageList>
- <iso639Id>ukr</iso639Id>
- </languageList>
-@@ -5011,43 +5011,43 @@
- <variant>
- <configItem>
- <name>phonetic</name>
-- <_description>Ukrainian (phonetic)</_description>
-+ <description>Ukrainian (phonetic)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>typewriter</name>
-- <_description>Ukrainian (typewriter)</_description>
-+ <description>Ukrainian (typewriter)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>winkeys</name>
-- <_description>Ukrainian (WinKeys)</_description>
-+ <description>Ukrainian (WinKeys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Ukrainian (legacy)</_description>
-+ <description>Ukrainian (legacy)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>rstu</name>
-- <_description>Ukrainian (standard RSTU)</_description>
-+ <description>Ukrainian (standard RSTU)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>rstu_ru</name>
-- <_description>Russian (Ukraine, standard RSTU)</_description>
-+ <description>Russian (Ukraine, standard RSTU)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>homophonic</name>
-- <_description>Ukrainian (homophonic)</_description>
-+ <description>Ukrainian (homophonic)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5055,9 +5055,9 @@
- <layout>
- <configItem>
- <name>gb</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (UK)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (UK)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5066,43 +5066,43 @@
- <variant>
- <configItem>
- <name>extd</name>
-- <_description>English (UK, extended WinKeys)</_description>
-+ <description>English (UK, extended WinKeys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>intl</name>
-- <_description>English (UK, international with dead keys)</_description>
-+ <description>English (UK, international with dead keys)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>English (UK, Dvorak)</_description>
-+ <description>English (UK, Dvorak)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorakukp</name>
-- <_description>English (UK, Dvorak with UK punctuation)</_description>
-+ <description>English (UK, Dvorak with UK punctuation)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac</name>
-- <_description>English (UK, Macintosh)</_description>
-+ <description>English (UK, Macintosh)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>mac_intl</name>
-- <_description>English (UK, Macintosh international)</_description>
-+ <description>English (UK, Macintosh international)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>English (UK, Colemak)</_description>
-+ <description>English (UK, Colemak)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5110,9 +5110,9 @@
- <layout>
- <configItem>
- <name>uz</name>
-- <!-- Keyboard indicator for Uzbek layouts -->
-- <_shortDescription>uz</_shortDescription>
-- <_description>Uzbek</_description>
-+
-+ <shortDescription>uz</shortDescription>
-+ <description>Uzbek</description>
- <languageList>
- <iso639Id>uzb</iso639Id>
- </languageList>
-@@ -5121,7 +5121,7 @@
- <variant>
- <configItem>
- <name>latin</name>
-- <_description>Uzbek (Latin)</_description>
-+ <description>Uzbek (Latin)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5129,9 +5129,9 @@
- <layout>
- <configItem>
- <name>vn</name>
-- <!-- Keyboard indicator for Vietnamese layouts -->
-- <_shortDescription>vi</_shortDescription>
-- <_description>Vietnamese</_description>
-+
-+ <shortDescription>vi</shortDescription>
-+ <description>Vietnamese</description>
- <languageList>
- <iso639Id>vie</iso639Id>
- </languageList>
-@@ -5141,9 +5141,9 @@
- <layout>
- <configItem>
- <name>kr</name>
-- <!-- Keyboard indicator for Korean layouts -->
-- <_shortDescription>ko</_shortDescription>
-- <_description>Korean</_description>
-+
-+ <shortDescription>ko</shortDescription>
-+ <description>Korean</description>
- <languageList>
- <iso639Id>kor</iso639Id>
- </languageList>
-@@ -5152,7 +5152,7 @@
- <variant>
- <configItem>
- <name>kr104</name>
-- <_description>Korean (101/104 key compatible)</_description>
-+ <description>Korean (101/104 key compatible)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5160,9 +5160,9 @@
- <layout>
- <configItem>
- <name>nec_vndr/jp</name>
-- <!-- Keyboard indicator for Japanese layouts -->
-- <_shortDescription>ja</_shortDescription>
-- <_description>Japanese (PC-98xx Series)</_description>
-+
-+ <shortDescription>ja</shortDescription>
-+ <description>Japanese (PC-98xx Series)</description>
- <countryList>
- <iso3166Id>JP</iso3166Id>
- </countryList>
-@@ -5175,9 +5175,9 @@
- <layout>
- <configItem>
- <name>ie</name>
-- <!-- Keyboard indicator for Irish layouts -->
-- <_shortDescription>ie</_shortDescription>
-- <_description>Irish</_description>
-+
-+ <shortDescription>ie</shortDescription>
-+ <description>Irish</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5186,7 +5186,7 @@
- <variant>
- <configItem>
- <name>CloGaelach</name>
-- <_description>CloGaelach</_description>
-+ <description>CloGaelach</description>
- <languageList>
- <iso639Id>gle</iso639Id>
- </languageList>
-@@ -5195,13 +5195,13 @@
- <variant>
- <configItem>
- <name>UnicodeExpert</name>
-- <_description>Irish (UnicodeExpert)</_description>
-+ <description>Irish (UnicodeExpert)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ogam</name>
-- <_description>Ogham</_description>
-+ <description>Ogham</description>
- <languageList>
- <iso639Id>sga</iso639Id>
- </languageList>
-@@ -5210,7 +5210,7 @@
- <variant>
- <configItem>
- <name>ogam_is434</name>
-- <_description>Ogham (IS434)</_description>
-+ <description>Ogham (IS434)</description>
- <languageList>
- <iso639Id>sga</iso639Id>
- </languageList>
-@@ -5221,9 +5221,9 @@
- <layout>
- <configItem>
- <name>pk</name>
-- <!-- Keyboard indicator for Urdu layouts -->
-- <_shortDescription>ur</_shortDescription>
-- <_description>Urdu (Pakistan)</_description>
-+
-+ <shortDescription>ur</shortDescription>
-+ <description>Urdu (Pakistan)</description>
- <languageList>
- <iso639Id>urd</iso639Id>
- </languageList>
-@@ -5232,20 +5232,20 @@
- <variant>
- <configItem>
- <name>urd-crulp</name>
-- <_description>Urdu (Pakistan, CRULP)</_description>
-+ <description>Urdu (Pakistan, CRULP)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>urd-nla</name>
-- <_description>Urdu (Pakistan, NLA)</_description>
-+ <description>Urdu (Pakistan, NLA)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>ara</name>
-- <_shortDescription>ar</_shortDescription>
-- <_description>Arabic (Pakistan)</_description>
-+ <shortDescription>ar</shortDescription>
-+ <description>Arabic (Pakistan)</description>
- <languageList>
- <iso639Id>ara</iso639Id>
- </languageList>
-@@ -5254,9 +5254,9 @@
- <variant>
- <configItem>
- <name>snd</name>
-- <!-- Keyboard indicator for Sindhi layouts -->
-- <_shortDescription>sd</_shortDescription>
-- <_description>Sindhi</_description>
-+
-+ <shortDescription>sd</shortDescription>
-+ <description>Sindhi</description>
- <languageList>
- <iso639Id>snd</iso639Id>
- </languageList>
-@@ -5267,9 +5267,9 @@
- <layout>
- <configItem>
- <name>mv</name>
-- <!-- Keyboard indicator for Dhivehi layouts -->
-- <_shortDescription>dv</_shortDescription>
-- <_description>Dhivehi</_description>
-+
-+ <shortDescription>dv</shortDescription>
-+ <description>Dhivehi</description>
- <languageList>
- <iso639Id>div</iso639Id>
- </languageList>
-@@ -5279,9 +5279,9 @@
- <layout>
- <configItem>
- <name>za</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (South Africa)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (South Africa)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5290,9 +5290,9 @@
- <layout>
- <configItem>
- <name>epo</name>
-- <!-- Keyboard indicator for Esperanto layouts -->
-- <_shortDescription>eo</_shortDescription>
-- <_description>Esperanto</_description>
-+
-+ <shortDescription>eo</shortDescription>
-+ <description>Esperanto</description>
- <languageList>
- <iso639Id>epo</iso639Id>
- </languageList>
-@@ -5301,7 +5301,7 @@
- <variant>
- <configItem>
- <name>legacy</name>
-- <_description>Esperanto (displaced semicolon and quote, obsolete)</_description>
-+ <description>Esperanto (displaced semicolon and quote, obsolete)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5309,9 +5309,9 @@
- <layout>
- <configItem>
- <name>np</name>
-- <!-- Keyboard indicator for Nepali layouts -->
-- <_shortDescription>ne</_shortDescription>
-- <_description>Nepali</_description>
-+
-+ <shortDescription>ne</shortDescription>
-+ <description>Nepali</description>
- <languageList>
- <iso639Id>nep</iso639Id>
- </languageList>
-@@ -5320,9 +5320,9 @@
- <layout>
- <configItem>
- <name>ng</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (Nigeria)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (Nigeria)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5331,9 +5331,9 @@
- <variant>
- <configItem>
- <name>igbo</name>
-- <!-- Keyboard indicator for Igbo layouts -->
-- <_shortDescription>ig</_shortDescription>
-- <_description>Igbo</_description>
-+
-+ <shortDescription>ig</shortDescription>
-+ <description>Igbo</description>
- <languageList>
- <iso639Id>ibo</iso639Id>
- </languageList>
-@@ -5342,9 +5342,9 @@
- <variant>
- <configItem>
- <name>yoruba</name>
-- <!-- Keyboard indicator for Yoruba layouts -->
-- <_shortDescription>yo</_shortDescription>
-- <_description>Yoruba</_description>
-+
-+ <shortDescription>yo</shortDescription>
-+ <description>Yoruba</description>
- <languageList>
- <iso639Id>yor</iso639Id>
- </languageList>
-@@ -5353,9 +5353,9 @@
- <variant>
- <configItem>
- <name>hausa</name>
-- <!-- Keyboard indicator for Hausa layouts -->
-- <_shortDescription>ha</_shortDescription>
-- <_description>Hausa</_description>
-+
-+ <shortDescription>ha</shortDescription>
-+ <description>Hausa</description>
- <languageList>
- <iso639Id>hau</iso639Id>
- </languageList>
-@@ -5366,9 +5366,9 @@
- <layout>
- <configItem>
- <name>et</name>
-- <!-- Keyboard indicator for Amharic layouts -->
-- <_shortDescription>am</_shortDescription>
-- <_description>Amharic</_description>
-+
-+ <shortDescription>am</shortDescription>
-+ <description>Amharic</description>
- <languageList>
- <iso639Id>amh</iso639Id>
- </languageList>
-@@ -5378,9 +5378,9 @@
- <layout>
- <configItem>
- <name>sn</name>
-- <!-- Keyboard indicator for Wolof layouts -->
-- <_shortDescription>wo</_shortDescription>
-- <_description>Wolof</_description>
-+
-+ <shortDescription>wo</shortDescription>
-+ <description>Wolof</description>
- <languageList>
- <iso639Id>wol</iso639Id>
- </languageList>
-@@ -5390,21 +5390,21 @@
- <layout>
- <configItem>
- <name>brai</name>
-- <!-- Keyboard indicator for Braille layouts -->
-- <_shortDescription>brl</_shortDescription>
-- <_description>Braille</_description>
-+
-+ <shortDescription>brl</shortDescription>
-+ <description>Braille</description>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>left_hand</name>
-- <_description>Braille (left hand)</_description>
-+ <description>Braille (left hand)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>right_hand</name>
-- <_description>Braille (right hand)</_description>
-+ <description>Braille (right hand)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5412,9 +5412,9 @@
- <layout>
- <configItem>
- <name>tm</name>
-- <!-- Keyboard indicator for Turkmen layouts -->
-- <_shortDescription>tk</_shortDescription>
-- <_description>Turkmen</_description>
-+
-+ <shortDescription>tk</shortDescription>
-+ <description>Turkmen</description>
- <languageList>
- <iso639Id>tuk</iso639Id>
- </languageList>
-@@ -5423,7 +5423,7 @@
- <variant>
- <configItem>
- <name>alt</name>
-- <_description>Turkmen (Alt-Q)</_description>
-+ <description>Turkmen (Alt-Q)</description>
- </configItem>
- </variant>
- </variantList>
-@@ -5431,9 +5431,9 @@
- <layout>
- <configItem>
- <name>ml</name>
-- <!-- Keyboard indicator for Bambara layouts -->
-- <_shortDescription>bm</_shortDescription>
-- <_description>Bambara</_description>
-+
-+ <shortDescription>bm</shortDescription>
-+ <description>Bambara</description>
- <languageList>
- <iso639Id>bam</iso639Id>
- </languageList>
-@@ -5442,9 +5442,9 @@
- <variant>
- <configItem>
- <name>fr-oss</name>
-- <!-- Keyboard indicator for French layouts -->
-- <_shortDescription>fr</_shortDescription>
-- <_description>French (Mali, alternative)</_description>
-+
-+ <shortDescription>fr</shortDescription>
-+ <description>French (Mali, alternative)</description>
- <languageList>
- <iso639Id>fra</iso639Id>
- </languageList>
-@@ -5453,9 +5453,9 @@
- <variant>
- <configItem>
- <name>us-mac</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (Mali, US Macintosh)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (Mali, US Macintosh)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5464,9 +5464,9 @@
- <variant>
- <configItem>
- <name>us-intl</name>
-- <!-- Keyboard indicator for English layouts -->
-- <_shortDescription>en</_shortDescription>
-- <_description>English (Mali, US international)</_description>
-+
-+ <shortDescription>en</shortDescription>
-+ <description>English (Mali, US international)</description>
- <languageList>
- <iso639Id>eng</iso639Id>
- </languageList>
-@@ -5477,9 +5477,9 @@
- <layout>
- <configItem>
- <name>tz</name>
-- <!-- Keyboard indicator for Swahili layouts -->
-- <_shortDescription>sw</_shortDescription>
-- <_description>Swahili (Tanzania)</_description>
-+
-+ <shortDescription>sw</shortDescription>
-+ <description>Swahili (Tanzania)</description>
- <languageList>
- <iso639Id>swa</iso639Id>
- </languageList>
-@@ -5488,9 +5488,9 @@
- <layout>
- <configItem>
- <name>ke</name>
-- <!-- Keyboard indicator for Swahili layouts -->
-- <_shortDescription>sw</_shortDescription>
-- <_description>Swahili (Kenya)</_description>
-+
-+ <shortDescription>sw</shortDescription>
-+ <description>Swahili (Kenya)</description>
- <languageList>
- <iso639Id>swa</iso639Id>
- </languageList>
-@@ -5499,9 +5499,9 @@
- <variant>
- <configItem>
- <name>kik</name>
-- <!-- Keyboard indicator for Kikuyu layouts -->
-- <_shortDescription>ki</_shortDescription>
-- <_description>Kikuyu</_description>
-+
-+ <shortDescription>ki</shortDescription>
-+ <description>Kikuyu</description>
- <languageList>
- <iso639Id>kik</iso639Id>
- </languageList>
-@@ -5512,9 +5512,9 @@
- <layout>
- <configItem>
- <name>bw</name>
-- <!-- Keyboard indicator for Tswana layouts -->
-- <_shortDescription>tn</_shortDescription>
-- <_description>Tswana</_description>
-+
-+ <shortDescription>tn</shortDescription>
-+ <description>Tswana</description>
- <languageList>
- <iso639Id>tsn</iso639Id>
- </languageList>
-@@ -5523,9 +5523,9 @@
- <layout>
- <configItem>
- <name>ph</name>
-- <!-- Keyboard indicator for Filipino layouts -->
-- <_shortDescription>ph</_shortDescription>
-- <_description>Filipino</_description>
-+
-+ <shortDescription>ph</shortDescription>
-+ <description>Filipino</description>
- <languageList><iso639Id>eng</iso639Id>
- <iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
-@@ -5542,7 +5542,7 @@
- <variant>
- <configItem>
- <name>qwerty-bay</name>
-- <_description>Filipino (QWERTY Baybayin)</_description>
-+ <description>Filipino (QWERTY Baybayin)</description>
- <languageList><iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
- <iso639Id>fil</iso639Id>
-@@ -5558,13 +5558,13 @@
- <variant>
- <configItem>
- <name>capewell-dvorak</name>
-- <_description>Filipino (Capewell-Dvorak Latin)</_description>
-+ <description>Filipino (Capewell-Dvorak Latin)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>capewell-dvorak-bay</name>
-- <_description>Filipino (Capewell-Dvorak Baybayin)</_description>
-+ <description>Filipino (Capewell-Dvorak Baybayin)</description>
- <languageList><iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
- <iso639Id>fil</iso639Id>
-@@ -5580,13 +5580,13 @@
- <variant>
- <configItem>
- <name>capewell-qwerf2k6</name>
-- <_description>Filipino (Capewell-QWERF 2006 Latin)</_description>
-+ <description>Filipino (Capewell-QWERF 2006 Latin)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>capewell-qwerf2k6-bay</name>
-- <_description>Filipino (Capewell-QWERF 2006 Baybayin)</_description>
-+ <description>Filipino (Capewell-QWERF 2006 Baybayin)</description>
- <languageList><iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
- <iso639Id>fil</iso639Id>
-@@ -5602,13 +5602,13 @@
- <variant>
- <configItem>
- <name>colemak</name>
-- <_description>Filipino (Colemak Latin)</_description>
-+ <description>Filipino (Colemak Latin)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>colemak-bay</name>
-- <_description>Filipino (Colemak Baybayin)</_description>
-+ <description>Filipino (Colemak Baybayin)</description>
- <languageList><iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
- <iso639Id>fil</iso639Id>
-@@ -5624,13 +5624,13 @@
- <variant>
- <configItem>
- <name>dvorak</name>
-- <_description>Filipino (Dvorak Latin)</_description>
-+ <description>Filipino (Dvorak Latin)</description>
- </configItem>
- </variant>
- <variant>
- <configItem>
- <name>dvorak-bay</name>
-- <_description>Filipino (Dvorak Baybayin)</_description>
-+ <description>Filipino (Dvorak Baybayin)</description>
- <languageList><iso639Id>bik</iso639Id>
- <iso639Id>ceb</iso639Id>
- <iso639Id>fil</iso639Id>
-@@ -5648,16 +5648,16 @@
- <layout>
- <configItem>
- <name>md</name>
-- <_shortDescription>md</_shortDescription>
-- <_description>Moldavian</_description>
-+ <shortDescription>md</shortDescription>
-+ <description>Moldavian</description>
- <languageList><iso639Id>rum</iso639Id></languageList>
- </configItem>
- <variantList>
- <variant>
- <configItem>
- <name>gag</name>
-- <_shortDescription>gag</_shortDescription>
-- <_description>Moldavian (Gagauz)</_description>
-+ <shortDescription>gag</shortDescription>
-+ <description>Moldavian (Gagauz)</description>
- <languageList><iso639Id>gag</iso639Id></languageList>
- </configItem>
- </variant>
-@@ -5666,1183 +5666,1142 @@
- </layoutList>
- <optionList>
- <group allowMultipleSelection="true">
-- <!-- The key combination used to switch between groups -->
-+
- <configItem>
- <name>grp</name>
-- <_description>Switching to another layout</_description>
-+ <description>Switching to another layout</description>
- </configItem>
- <option>
- <configItem>
- <name>grp:switch</name>
-- <_description>Right Alt (while pressed)</_description>
-+ <description>Right Alt (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lswitch</name>
-- <_description>Left Alt (while pressed)</_description>
-+ <description>Left Alt (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lwin_switch</name>
-- <_description>Left Win (while pressed)</_description>
-+ <description>Left Win (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rwin_switch</name>
-- <_description>Right Win (while pressed)</_description>
-+ <description>Right Win (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:win_switch</name>
-- <_description>Any Win key (while pressed)</_description>
-+ <description>Any Win key (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:caps_switch</name>
-- <_description>Caps Lock (while pressed), Alt+Caps Lock does the original capslock action</_description>
-+ <description>Caps Lock (while pressed), Alt+Caps Lock does the original capslock action</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rctrl_switch</name>
-- <_description>Right Ctrl (while pressed)</_description>
-+ <description>Right Ctrl (while pressed)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:toggle</name>
-- <_description>Right Alt</_description>
-+ <description>Right Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lalt_toggle</name>
-- <_description>Left Alt</_description>
-+ <description>Left Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:caps_toggle</name>
-- <_description>Caps Lock</_description>
-+ <description>Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:shift_caps_toggle</name>
-- <_description>Shift+Caps Lock</_description>
-+ <description>Shift+Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:shift_caps_switch</name>
-- <_description>Caps Lock (to first layout), Shift+Caps Lock (to last layout)</_description>
-+ <description>Caps Lock (to first layout), Shift+Caps Lock (to last layout)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:win_menu_switch</name>
-- <_description>Left Win (to first layout), Right Win/Menu (to last layout)</_description>
-+ <description>Left Win (to first layout), Right Win/Menu (to last layout)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lctrl_rctrl_switch</name>
-- <_description>Left Ctrl (to first layout), Right Ctrl (to last layout)</_description>
-+ <description>Left Ctrl (to first layout), Right Ctrl (to last layout)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:alt_caps_toggle</name>
-- <_description>Alt+Caps Lock</_description>
-+ <description>Alt+Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:shifts_toggle</name>
-- <_description>Both Shift keys together</_description>
-+ <description>Both Shift keys together</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:alts_toggle</name>
-- <_description>Both Alt keys together</_description>
-+ <description>Both Alt keys together</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:ctrls_toggle</name>
-- <_description>Both Ctrl keys together</_description>
-+ <description>Both Ctrl keys together</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:ctrl_shift_toggle</name>
-- <_description>Ctrl+Shift</_description>
-+ <description>Ctrl+Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lctrl_lshift_toggle</name>
-- <_description>Left Ctrl+Left Shift</_description>
-+ <description>Left Ctrl+Left Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rctrl_rshift_toggle</name>
-- <_description>Right Ctrl+Right Shift</_description>
-+ <description>Right Ctrl+Right Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:ctrl_alt_toggle</name>
-- <_description>Alt+Ctrl</_description>
-+ <description>Alt+Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:alt_shift_toggle</name>
-- <_description>Alt+Shift</_description>
-+ <description>Alt+Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lalt_lshift_toggle</name>
-- <_description>Left Alt+Left Shift</_description>
-+ <description>Left Alt+Left Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:alt_space_toggle</name>
-- <_description>Alt+Space</_description>
-+ <description>Alt+Space</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:menu_toggle</name>
-- <_description>Menu</_description>
-+ <description>Menu</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lwin_toggle</name>
-- <_description>Left Win</_description>
-+ <description>Left Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rwin_toggle</name>
-- <_description>Right Win</_description>
-+ <description>Right Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lshift_toggle</name>
-- <_description>Left Shift</_description>
-+ <description>Left Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rshift_toggle</name>
-- <_description>Right Shift</_description>
-+ <description>Right Shift</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lctrl_toggle</name>
-- <_description>Left Ctrl</_description>
-+ <description>Left Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:rctrl_toggle</name>
-- <_description>Right Ctrl</_description>
-+ <description>Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:sclk_toggle</name>
-- <_description>Scroll Lock</_description>
-+ <description>Scroll Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp:lctrl_lwin_rctrl_menu</name>
-- <_description>LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)</_description>
-+ <description>LeftCtrl+LeftWin (to first layout), RightCtrl+Menu (to second layout)</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
-- <!-- The key combination used to choose the 3rd (and 4th, together with Shift)
-- level of symbols -->
-+
- <configItem>
- <name>lv3</name>
-- <_description>Key to choose 3rd level</_description>
-+ <description>Key to choose 3rd level</description>
- </configItem>
- <option>
- <configItem>
- <name>lv3:switch</name>
-- <_description>Right Ctrl</_description>
-+ <description>Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:menu_switch</name>
-- <_description>Menu</_description>
-+ <description>Menu</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:win_switch</name>
-- <_description>Any Win key</_description>
-+ <description>Any Win key</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:lwin_switch</name>
-- <_description>Left Win</_description>
-+ <description>Left Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:rwin_switch</name>
-- <_description>Right Win</_description>
-+ <description>Right Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:alt_switch</name>
-- <_description>Any Alt key</_description>
-+ <description>Any Alt key</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:lalt_switch</name>
-- <_description>Left Alt</_description>
-+ <description>Left Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:ralt_switch</name>
-- <_description>Right Alt</_description>
-+ <description>Right Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:ralt_switch_multikey</name>
-- <_description>Right Alt, Shift+Right Alt key is Compose</_description>
-+ <description>Right Alt, Shift+Right Alt key is Compose</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:ralt_alt</name>
-- <_description>Right Alt key never chooses 3rd level</_description>
-+ <description>Right Alt key never chooses 3rd level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:enter_switch</name>
-- <_description>Enter on keypad</_description>
-+ <description>Enter on keypad</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:caps_switch</name>
-- <_description>Caps Lock</_description>
-+ <description>Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:bksl_switch</name>
-- <_description>Backslash</_description>
-+ <description>Backslash</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:lsgt_switch</name>
-- <_description>&lt;Less/Greater&gt;</_description>
-+ <description>&lt;Less/Greater&gt;</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:caps_switch_latch</name>
-- <_description>Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
-+ <description>Caps Lock chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:bksl_switch_latch</name>
-- <_description>Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
-+ <description>Backslash chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv3:lsgt_switch_latch</name>
-- <_description>&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</_description>
-+ <description>&lt;Less/Greater&gt; chooses 3rd level, acts as onetime lock when pressed together with another 3rd-level-chooser</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
-- <!-- Tweaking the position of the "Ctrl" key -->
-+
- <configItem>
- <name>ctrl</name>
-- <_description>Ctrl key position</_description>
-+ <description>Ctrl key position</description>
- </configItem>
- <option>
- <configItem>
- <name>ctrl:nocaps</name>
-- <_description>Caps Lock as Ctrl</_description>
-+ <description>Caps Lock as Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:lctrl_meta</name>
-- <_description>Left Ctrl as Meta</_description>
-+ <description>Left Ctrl as Meta</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:swapcaps</name>
-- <_description>Swap Ctrl and Caps Lock</_description>
-+ <description>Swap Ctrl and Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:ac_ctrl</name>
-- <_description>At left of 'A'</_description>
-+ <description>At left of 'A'</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:aa_ctrl</name>
-- <_description>At bottom left</_description>
-+ <description>At bottom left</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:rctrl_ralt</name>
-- <_description>Right Ctrl as Right Alt</_description>
-+ <description>Right Ctrl as Right Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:menu_rctrl</name>
-- <_description>Menu as Right Ctrl</_description>
-+ <description>Menu as Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:ctrl_ralt</name>
-- <_description>Right Alt as Right Ctrl</_description>
-+ <description>Right Alt as Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:swap_lalt_lctl</name>
-- <_description>Swap Left Alt key with Left Ctrl key</_description>
-+ <description>Swap Left Alt key with Left Ctrl key</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:swap_lwin_lctl</name>
-- <_description>Swap Left Win key with Left Ctrl key</_description>
-+ <description>Swap Left Win key with Left Ctrl key</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>ctrl:swap_lalt_lctl_lwin</name>
-- <_description>Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt</_description>
-+ <description>Left Alt as Ctrl, Left Ctrl as Win, Left Win as Alt</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
-- <!-- Using startard LEDs to indicate the alternative (not first) group(s) -->
-+
- <configItem>
- <name>grp_led</name>
-- <_description>Use keyboard LED to show alternative layout</_description>
-+ <description>Use keyboard LED to show alternative layout</description>
- </configItem>
- <option>
- <configItem>
- <name>grp_led:num</name>
-- <_description>Num Lock</_description>
-+ <description>Num Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp_led:caps</name>
-- <_description>Caps Lock</_description>
-+ <description>Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grp_led:scroll</name>
-- <_description>Scroll Lock</_description>
-+ <description>Scroll Lock</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="false">
-- <!-- Select a keypad type -->
-+
- <configItem>
- <name>keypad</name>
-- <_description>Layout of numeric keypad</_description>
-+ <description>Layout of numeric keypad</description>
- </configItem>
- <option>
- <configItem>
- <name>keypad:legacy</name>
-- <_description>Legacy</_description>
-+ <description>Legacy</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:oss</name>
-- <_description>Unicode additions (arrows and math operators)</_description>
-+ <description>Unicode additions (arrows and math operators)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:future</name>
-- <_description>Unicode additions (arrows and math operators; math operators on default level)</_description>
-+ <description>Unicode additions (arrows and math operators; math operators on default level)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:legacy_wang</name>
-- <_description>Legacy Wang 724</_description>
-+ <description>Legacy Wang 724</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:oss_wang</name>
-- <_description>Wang 724 keypad with Unicode additions (arrows and math operators)</_description>
-+ <description>Wang 724 keypad with Unicode additions (arrows and math operators)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:future_wang</name>
-- <_description>Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)</_description>
-+ <description>Wang 724 keypad with Unicode additions (arrows and math operators; math operators on default level)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:hex</name>
-- <_description>Hexadecimal</_description>
-+ <description>Hexadecimal</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:atm</name>
-- <_description>ATM/phone-style</_description>
-+ <description>ATM/phone-style</description>
- </configItem>
- </option>
- </group>
-- <!-- This option should override the KPDL key defined in keypad; I hope it's declared in the right place -->
-+
- <group allowMultipleSelection="false">
-- <!-- Select a keypad KPDL variant -->
-+
- <configItem>
- <name>kpdl</name>
-- <_description>Numeric keypad delete key behaviour</_description>
-+ <description>Numeric keypad delete key behaviour</description>
- </configItem>
- <option>
- <configItem>
-- <!-- Actually, with KP_DECIMAL, as the old keypad(dot) -->
-+
- <name>kpdl:dot</name>
-- <_description>Legacy key with dot</_description>
-+ <description>Legacy key with dot</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:comma</name>
-- <!-- Actually, with KP_SEPARATOR, as the old keypad(comma) -->
-- <_description>Legacy key with comma</_description>
-+
-+ <description>Legacy key with comma</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:dotoss</name>
-- <_description>Four-level key with dot</_description>
-+ <description>Four-level key with dot</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:dotoss_latin9</name>
-- <_description>Four-level key with dot, Latin-9 only</_description>
-+ <description>Four-level key with dot, Latin-9 only</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:commaoss</name>
-- <_description>Four-level key with comma</_description>
-+ <description>Four-level key with comma</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:momayyezoss</name>
-- <_description>Four-level key with momayyez</_description>
-+ <description>Four-level key with momayyez</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:kposs</name>
-- <!-- This assumes the KP_ abstract symbols are actually useful for some apps
-- The description needs to be rewritten -->
-- <_description>Four-level key with abstract separators</_description>
-+
-+ <description>Four-level key with abstract separators</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>kpdl:semi</name>
-- <_description>Semicolon on third level</_description>
-+ <description>Semicolon on third level</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="false">
-- <!-- Caps Lock tweaks.
-- "Internal" capitalization means capitalization using some internal tables.
-- Otherwise "as Shift" - means using next group. -->
-+
- <configItem>
- <name>caps</name>
-- <_description>Caps Lock key behavior</_description>
-+ <description>Caps Lock key behavior</description>
- </configItem>
- <option>
- <configItem>
- <name>caps:internal</name>
-- <_description>Caps Lock uses internal capitalization; Shift "pauses" Caps Lock</_description>
-+ <description>Caps Lock uses internal capitalization; Shift "pauses" Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:internal_nocancel</name>
-- <_description>Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock</_description>
-+ <description>Caps Lock uses internal capitalization; Shift doesn't affect Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:shift</name>
-- <_description>Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock</_description>
-+ <description>Caps Lock acts as Shift with locking; Shift "pauses" Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:shift_nocancel</name>
-- <_description>Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock</_description>
-+ <description>Caps Lock acts as Shift with locking; Shift doesn't affect Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:capslock</name>
-- <_description>Caps Lock toggles normal capitalization of alphabetic characters</_description>
-+ <description>Caps Lock toggles normal capitalization of alphabetic characters</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:numlock</name>
-- <_description>Make Caps Lock an additional Num Lock</_description>
-+ <description>Make Caps Lock an additional Num Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:swapescape</name>
-- <_description>Swap ESC and Caps Lock</_description>
-+ <description>Swap ESC and Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:escape</name>
-- <_description>Make Caps Lock an additional ESC</_description>
-+ <description>Make Caps Lock an additional ESC</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:backspace</name>
-- <_description>Make Caps Lock an additional Backspace</_description>
-+ <description>Make Caps Lock an additional Backspace</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:super</name>
-- <_description>Make Caps Lock an additional Super</_description>
-+ <description>Make Caps Lock an additional Super</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:hyper</name>
-- <_description>Make Caps Lock an additional Hyper</_description>
-+ <description>Make Caps Lock an additional Hyper</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:shiftlock</name>
-- <_description>Caps Lock toggles ShiftLock (affects all keys)</_description>
-+ <description>Caps Lock toggles ShiftLock (affects all keys)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:none</name>
-- <_description>Caps Lock is disabled</_description>
-+ <description>Caps Lock is disabled</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>caps:ctrl_modifier</name>
-- <_description>Make Caps Lock an additional Ctrl</_description>
-+ <description>Make Caps Lock an additional Ctrl</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="false">
-- <!-- Using special PC keys (Win, Menu) to work as standard X keys (Super, Hyper, etc.) -->
-+
- <configItem>
- <name>altwin</name>
-- <_description>Alt/Win key behavior</_description>
-+ <description>Alt/Win key behavior</description>
- </configItem>
- <option>
- <configItem>
- <name>altwin:menu</name>
-- <_description>Add the standard behavior to Menu key</_description>
-+ <description>Add the standard behavior to Menu key</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:meta_alt</name>
-- <_description>Alt and Meta are on Alt keys</_description>
-+ <description>Alt and Meta are on Alt keys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:alt_win</name>
-- <_description>Alt is mapped to Win keys (and the usual Alt keys)</_description>
-+ <description>Alt is mapped to Win keys (and the usual Alt keys)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:ctrl_win</name>
-- <_description>Ctrl is mapped to Win keys (and the usual Ctrl keys)</_description>
-+ <description>Ctrl is mapped to Win keys (and the usual Ctrl keys)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:ctrl_alt_win</name>
-- <_description>Ctrl is mapped to Alt keys, Alt is mapped to Win keys</_description>
-+ <description>Ctrl is mapped to Alt keys, Alt is mapped to Win keys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:meta_win</name>
-- <_description>Meta is mapped to Win keys</_description>
-+ <description>Meta is mapped to Win keys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:left_meta_win</name>
-- <_description>Meta is mapped to Left Win</_description>
-+ <description>Meta is mapped to Left Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:hyper_win</name>
-- <_description>Hyper is mapped to Win-keys</_description>
-+ <description>Hyper is mapped to Win-keys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:alt_super_win</name>
-- <_description>Alt is mapped to Right Win, Super to Menu</_description>
-+ <description>Alt is mapped to Right Win, Super to Menu</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>altwin:swap_alt_win</name>
-- <_description>Alt is swapped with Win</_description>
-+ <description>Alt is swapped with Win</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
-- <!-- Tweaking the position of the "Compose" key: mapping to existing PC keys -->
-+
- <configItem>
- <name>Compose key</name>
-- <_description>Position of Compose key</_description>
-+ <description>Position of Compose key</description>
- </configItem>
- <option>
- <configItem>
- <name>compose:ralt</name>
-- <_description>Right Alt</_description>
-+ <description>Right Alt</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:lwin</name>
-- <_description>Left Win</_description>
-+ <description>Left Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:lwin-altgr</name>
-- <_description>3rd level of Left Win</_description>
-+ <description>3rd level of Left Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:rwin</name>
-- <_description>Right Win</_description>
-+ <description>Right Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:rwin-altgr</name>
-- <_description>3rd level of Right Win</_description>
-+ <description>3rd level of Right Win</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:menu</name>
-- <_description>Menu</_description>
-+ <description>Menu</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:menu-altgr</name>
-- <_description>3rd level of Menu</_description>
-+ <description>3rd level of Menu</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:lctrl</name>
-- <_description>Left Ctrl</_description>
-+ <description>Left Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:lctrl-altgr</name>
-- <_description>3rd level of Left Ctrl</_description>
-+ <description>3rd level of Left Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:rctrl</name>
-- <_description>Right Ctrl</_description>
-+ <description>Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:rctrl-altgr</name>
-- <_description>3rd level of Right Ctrl</_description>
-+ <description>3rd level of Right Ctrl</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:caps</name>
-- <_description>Caps Lock</_description>
-+ <description>Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:caps-altgr</name>
-- <_description>3rd level of Caps Lock</_description>
-+ <description>3rd level of Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:102</name>
-- <_description>&lt;Less/Greater&gt;</_description>
-+ <description>&lt;Less/Greater&gt;</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:102-altgr</name>
-- <_description>3rd level of &lt;Less/Greater&gt;</_description>
-+ <description>3rd level of &lt;Less/Greater&gt;</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:paus</name>
-- <_description>Pause</_description>
-+ <description>Pause</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:prsc</name>
-- <_description>PrtSc</_description>
-+ <description>PrtSc</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>compose:sclk</name>
-- <_description>Scroll Lock</_description>
-+ <description>Scroll Lock</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
- <configItem>
- <name>compat</name>
-- <_description>Miscellaneous compatibility options</_description>
-+ <description>Miscellaneous compatibility options</description>
- </configItem>
- <option>
- <configItem>
- <name>numpad:pc</name>
-- <_description>Default numeric keypad keys</_description>
-+ <description>Default numeric keypad keys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>numpad:mac</name>
-- <_description>Numeric keypad keys always enter digits (as in Mac OS)</_description>
-+ <description>Numeric keypad keys always enter digits (as in Mac OS)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>numpad:microsoft</name>
-- <_description>Shift with numeric keypad keys works as in MS Windows</_description>
-+ <description>Shift with numeric keypad keys works as in MS Windows</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>numpad:shift3</name>
-- <_description>Shift does not cancel Num Lock, chooses 3rd level instead</_description>
-+ <description>Shift does not cancel Num Lock, chooses 3rd level instead</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>srvrkeys:none</name>
-- <_description>Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server</_description>
-+ <description>Special keys (Ctrl+Alt+&lt;key&gt;) handled in a server</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>apple:alupckeys</name>
-- <_description>Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)</_description>
-+ <description>Apple Aluminium Keyboard: emulate PC keys (Print, Scroll Lock, Pause, Num Lock)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>shift:breaks_caps</name>
-- <_description>Shift cancels Caps Lock</_description>
-+ <description>Shift cancels Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>misc:typo</name>
-- <_description>Enable extra typographic characters</_description>
-+ <description>Enable extra typographic characters</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>shift:both_capslock</name>
-- <_description>Both Shift keys together toggle Caps Lock</_description>
-+ <description>Both Shift keys together toggle Caps Lock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>shift:both_capslock_cancel</name>
-- <_description>Both Shift keys together activate Caps Lock, one Shift key deactivates</_description>
-+ <description>Both Shift keys together activate Caps Lock, one Shift key deactivates</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>shift:both_shiftlock</name>
-- <_description>Both Shift keys together toggle ShiftLock</_description>
-+ <description>Both Shift keys together toggle ShiftLock</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>keypad:pointerkeys</name>
-- <_description>Shift + NumLock toggles PointerKeys</_description>
-+ <description>Shift + NumLock toggles PointerKeys</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grab:break_actions</name>
-- <_description>Allow breaking grabs with keyboard actions (warning: security risk)</_description>
-+ <description>Allow breaking grabs with keyboard actions (warning: security risk)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>grab:debug_actions</name>
-- <_description>Allow grab and window tree logging</_description>
-+ <description>Allow grab and window tree logging</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
-- <!-- Special shortcuts for the Euro character -->
-+
- <configItem>
- <name>currencysign</name>
-- <_description>Adding currency signs to certain keys</_description>
-+ <description>Adding currency signs to certain keys</description>
- </configItem>
- <option>
- <configItem>
- <name>eurosign:e</name>
-- <_description>Euro on E</_description>
-+ <description>Euro on E</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>eurosign:2</name>
-- <_description>Euro on 2</_description>
-+ <description>Euro on 2</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>eurosign:4</name>
-- <_description>Euro on 4</_description>
-+ <description>Euro on 4</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>eurosign:5</name>
-- <_description>Euro on 5</_description>
-+ <description>Euro on 5</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>rupeesign:4</name>
-- <_description>Rupee on 4</_description>
-+ <description>Rupee on 4</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
- <configItem>
- <name>lv5</name>
-- <_description>Key to choose 5th level</_description>
-+ <description>Key to choose 5th level</description>
- </configItem>
- <option>
- <configItem>
- <name>lv5:lsgt_switch_lock</name>
-- <_description>&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
-+ <description>&lt;Less/Greater&gt; chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv5:ralt_switch_lock</name>
-- <_description>Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
-+ <description>Right Alt chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv5:lwin_switch_lock</name>
-- <_description>Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
-+ <description>Left Win chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>lv5:rwin_switch_lock</name>
-- <_description>Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
--<!--
-- <option>
-- <configItem>
-- <name>lv5:lsgt_switch_lock_cancel</name>
-- <_description>&lt;Less/Greater&gt; chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
-- <option>
-- <configItem>
-- <name>lv5:ralt_switch_lock_cancel</name>
-- <_description>Right Alt chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
-- <option>
-- <configItem>
-- <name>lv5:lwin_switch_lock_cancel</name>
-- <_description>Left Win chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
-- <option>
-- <configItem>
-- <name>lv5:rwin_switch_lock_cancel</name>
-- <_description>Right Win chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
-- <option>
-- <configItem>
-- <name>lv5:lsgt_switch_lock_cancel</name>
-- <_description>&lt;Less/Greater&gt; chooses 5th level, acts as onetime lock lock when pressed together with another 5th-level-chooser</_description>
-- </configItem>
-- </option>
-- <option>
-- <configItem>
-- <name>lv5:ralt_switch_lock_cancel</name>
-- <_description>Right Alt chooses 5th level, acts as onetime lock when pressed together with another 5th-level-chooser</_description>
-+ <description>Right Win chooses 5th level, locks when pressed together with another 5th-level-chooser</description>
- </configItem>
- </option>
---->
-+
- </group>
- <group allowMultipleSelection="false">
-- <!-- Let space output NBSP, NNBSP, ZWNJ, and ZWJ for the desired level -->
-+
- <configItem>
- <name>nbsp</name>
-- <_description>Using space key to input non-breakable space character</_description>
-+ <description>Using space key to input non-breakable space character</description>
- </configItem>
- <option>
- <configItem>
- <name>nbsp:none</name>
-- <_description>Usual space at any level</_description>
-+ <description>Usual space at any level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level2</name>
-- <_description>Non-breakable space character at second level</_description>
-+ <description>Non-breakable space character at second level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level3</name>
-- <_description>Non-breakable space character at third level</_description>
-+ <description>Non-breakable space character at third level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level3s</name>
-- <_description>Non-breakable space character at third level, nothing at fourth level</_description>
-+ <description>Non-breakable space character at third level, nothing at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level3n</name>
-- <_description>Non-breakable space character at third level, thin non-breakable space character at fourth level</_description>
-+ <description>Non-breakable space character at third level, thin non-breakable space character at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level4</name>
-- <_description>Non-breakable space character at fourth level</_description>
-+ <description>Non-breakable space character at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level4n</name>
-- <_description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level</_description>
-+ <description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:level4nl</name>
-- <_description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)</_description>
-+ <description>Non-breakable space character at fourth level, thin non-breakable space character at sixth level (via Ctrl+Shift)</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2</name>
-- <_description>Zero-width non-joiner character at second level</_description>
-+ <description>Zero-width non-joiner character at second level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2zwj3</name>
-- <_description>Zero-width non-joiner character at second level, zero-width joiner character at third level</_description>
-+ <description>Zero-width non-joiner character at second level, zero-width joiner character at third level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2zwj3nb4</name>
-- <_description>Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level</_description>
-+ <description>Zero-width non-joiner character at second level, zero-width joiner character at third level, non-breakable space character at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2nb3</name>
-- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level</_description>
-+ <description>Zero-width non-joiner character at second level, non-breakable space character at third level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2nb3s</name>
-- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level</_description>
-+ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, nothing at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2nb3zwj4</name>
-- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level</_description>
-+ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, zero-width joiner at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj2nb3nnb4</name>
-- <_description>Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level</_description>
-+ <description>Zero-width non-joiner character at second level, non-breakable space character at third level, thin non-breakable space at fourth level</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>nbsp:zwnj3zwj4</name>
-- <_description>Zero-width non-joiner character at third level, zero-width joiner at fourth level</_description>
-+ <description>Zero-width non-joiner character at third level, zero-width joiner at fourth level</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
- <configItem>
- <name>japan</name>
-- <_description>Japanese keyboard options</_description>
-+ <description>Japanese keyboard options</description>
- </configItem>
- <option>
- <configItem>
- <name>japan:kana_lock</name>
-- <_description>Kana Lock key is locking</_description>
-+ <description>Kana Lock key is locking</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>japan:nicola_f_bs</name>
-- <_description>NICOLA-F style Backspace</_description>
-+ <description>NICOLA-F style Backspace</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>japan:hztg_escape</name>
-- <_description>Make Zenkaku Hankaku an additional ESC</_description>
-+ <description>Make Zenkaku Hankaku an additional ESC</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="false">
- <configItem>
- <name>esperanto</name>
-- <_description>Adding Esperanto supersigned letters</_description>
-+ <description>Adding Esperanto supersigned letters</description>
- </configItem>
- <option>
- <configItem>
- <name>esperanto:qwerty</name>
-- <_description>To the corresponding key in a Qwerty layout</_description>
-+ <description>To the corresponding key in a Qwerty layout</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>esperanto:dvorak</name>
-- <_description>To the corresponding key in a Dvorak layout</_description>
-+ <description>To the corresponding key in a Dvorak layout</description>
- </configItem>
- </option>
- <option>
- <configItem>
- <name>esperanto:colemak</name>
-- <_description>To the corresponding key in a Colemak layout</_description>
-+ <description>To the corresponding key in a Colemak layout</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
- <configItem>
- <name>solaris</name>
-- <_description>Maintain key compatibility with old Solaris keycodes</_description>
-+ <description>Maintain key compatibility with old Solaris keycodes</description>
- </configItem>
- <option>
- <configItem>
- <name>solaris:sun_compat</name>
-- <_description>Sun Key compatibility</_description>
-+ <description>Sun Key compatibility</description>
- </configItem>
- </option>
- </group>
- <group allowMultipleSelection="true">
- <configItem>
- <name>terminate</name>
-- <_description>Key sequence to kill the X server</_description>
-+ <description>Key sequence to kill the X server</description>
- </configItem>
- <option>
- <configItem>
- <name>terminate:ctrl_alt_bksp</name>
-- <_description>Ctrl + Alt + Backspace</_description>
-+ <description>Ctrl + Alt + Backspace</description>
- </configItem>
- </option>
- </group>
- </optionList>
--</xkbConfigRegistry>
-+</xkbConfigRegistry>
-\ No newline at end of file
diff --git a/package/xorg-server/Makefile b/package/xorg-server/Makefile
index 6c96e5107..9c6c12ffc 100644
--- a/package/xorg-server/Makefile
+++ b/package/xorg-server/Makefile
@@ -4,28 +4,28 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= xorg-server
-PKG_VERSION:= 1.19.0
+PKG_VERSION:= 21.1.6
PKG_RELEASE:= 1
-PKG_HASH:= c3e8660a74e2902e6ecaa66aa774e15d1ab66c2c19a023bd9e74e651ef005a43
+PKG_HASH:= 1eb86ed674d042b6c8b1f9135e59395cbbca35ed551b122f73a7d8bb3bb22484
PKG_DESCR:= xorg server
PKG_SECTION:= x11/drivers
-PKG_DEPENDS:= libxfont2 pixman libpciaccess libxkbfile
+PKG_DEPENDS:= libxfont2 pixman libpciaccess libxkbfile libxcvt
PKG_DEPENDS+= libfontenc xkeyboard-config xkbcomp libxau libxaw
PKG_DEPENDS+= libxmu libxpm libxrender libxt libxxf86dga libxext
-PKG_DEPENDS+= libxdmcp libxv libsm libice libx11 libxcb
+PKG_DEPENDS+= libxdmcp libxv libsm libice libx11 libxcb libdrm
PKG_DEPENDS+= libxshmfence libfreetype libfontenc libpciaccess
+PKG_DEPENDS+= libepoxy
PKG_BUILDDEP:= libX11 randrproto renderproto fixesproto damageproto
PKG_BUILDDEP+= scrnsaverproto resourceproto fontsproto videoproto
PKG_BUILDDEP+= compositeproto evieext libxkbfile libXfont2 pixman
-PKG_BUILDDEP+= libpciaccess xf86dgaproto recordproto
+PKG_BUILDDEP+= libpciaccess xf86dgaproto recordproto dri3proto
PKG_BUILDDEP+= xineramaproto presentproto xf86driproto glproto mesa
+PKG_BUILDDEP+= xorgproto libxcvt libdrm libepoxy
PKG_NEEDS:= threads c++
PKG_URL:= http://www.x.org/
PKG_SITES:= http://www.x.org/releases/individual/xserver/
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-
PKG_CFLINE_XORG_SERVER:=depends on ADK_TARGET_WITH_VGA || ADK_TARGET_QEMU_WITH_GRAPHIC
PKG_FLAVOURS_XORG_SERVER:= WITH_KDRIVE
@@ -68,7 +68,6 @@ CONFIGURE_ARGS+= --enable-dga \
--disable-xephyr \
--disable-xf86bigfont \
--disable-xf86vidmode \
- --disable-xfake \
--disable-xnest \
--disable-xselinux \
--disable-xcsecurity \
@@ -80,15 +79,15 @@ CONFIGURE_ARGS+= --enable-dga \
--enable-dri2 \
--enable-dri3 \
--enable-glx \
- --enable-aiglx \
+ --enable-glamor \
--with-xkb-output=/tmp \
- --with-os-vendor="$(ADK_VENDOR)" \
+ --with-fontrootdir=/usr/share/fonts/X11/ \
--with-vendor-web="$(ADK_VENDOR_URL)"
ifeq (${ADK_PACKAGE_XORG_SERVER_WITH_KDRIVE},y)
-CONFIGURE_ARGS+= --enable-kdrive --enable-xfbdev --enable-kdrive-kbd --enable-kdrive-mouse --enable-kdrive-evdev
+CONFIGURE_ARGS+= --enable-kdrive --enable-kdrive-kbd --enable-kdrive-mouse --enable-kdrive-evdev
else
-CONFIGURE_ARGS+= --disable-kdrive --disable-xfbdev
+CONFIGURE_ARGS+= --disable-kdrive
endif
ifeq (${ADK_TARGET_SYSTEM_LEMOTE_YEELONG},y)
@@ -99,6 +98,7 @@ xorg-server-install:
$(INSTALL_DIR) $(IDIR_XORG_SERVER)/etc/X11
$(INSTALL_DIR) $(IDIR_XORG_SERVER)/usr/bin
$(INSTALL_DIR) $(IDIR_XORG_SERVER)/usr/lib/xorg/modules/extensions
+ $(INSTALL_DIR) $(IDIR_XORG_SERVER)/usr/lib/xorg/modules/drivers
$(INSTALL_DIR) $(IDIR_XORG_SERVER)/usr/lib/xorg/modules/fonts
$(INSTALL_DIR) $(IDIR_XORG_SERVER)/usr/lib/xorg/modules/multimedia
${CP} ${WRKINST}/usr/lib/xorg/protocol.txt \
@@ -106,10 +106,10 @@ xorg-server-install:
${CP} ${WRKINST}/usr/bin/* $(IDIR_XORG_SERVER)/usr/bin
${CP} ${WRKINST}/usr/lib/xorg/modules/*.so \
$(IDIR_XORG_SERVER)/usr/lib/xorg/modules
-ifeq (${ADK_PACKAGE_XORG_SERVER_WITH_DRI},y)
+ ${CP} ${WRKINST}/usr/lib/xorg/modules/drivers/*.so \
+ $(IDIR_XORG_SERVER)/usr/lib/xorg/modules/drivers
${CP} ${WRKINST}/usr/lib/xorg/modules/extensions/*.so \
$(IDIR_XORG_SERVER)/usr/lib/xorg/modules/extensions
-endif
ifeq (${ADK_TARGET_SYSTEM_LEMOTE_YEELONG},y)
${CP} ./files/xorg.conf.lemote-yeelong \
$(IDIR_XORG_SERVER)/etc/X11/xorg.conf
diff --git a/package/xorg-server/patches/patch-configure b/package/xorg-server/patches/patch-configure
new file mode 100644
index 000000000..378c27c1c
--- /dev/null
+++ b/package/xorg-server/patches/patch-configure
@@ -0,0 +1,11 @@
+--- xorg-server-21.1.5.orig/configure 2022-12-14 03:25:26.000000000 +0100
++++ xorg-server-21.1.5/configure 2022-12-31 10:38:30.017910171 +0100
+@@ -29281,7 +29281,7 @@ printf "%s\n" "#define BASE_FONT_PATH \"
+ test "$prefix_NONE" && prefix=NONE
+ test "$exec_prefix_NONE" && exec_prefix=NONE
+
+-dridriverdir=`$PKG_CONFIG --variable=dridriverdir dri`
++dridriverdir=/usr/lib/dri
+
+ prefix_NONE=
+ exec_prefix_NONE=
diff --git a/package/xorg-server/patches/patch-hw_xfree86_common_compiler_h b/package/xorg-server/patches/patch-hw_xfree86_common_compiler_h
deleted file mode 100644
index 824744f53..000000000
--- a/package/xorg-server/patches/patch-hw_xfree86_common_compiler_h
+++ /dev/null
@@ -1,69 +0,0 @@
-from alpinelinux
-
---- xorg-server-1.18.0.orig/hw/xfree86/common/compiler.h 2015-10-28 19:15:36.000000000 +0100
-+++ xorg-server-1.18.0/hw/xfree86/common/compiler.h 2016-01-08 01:41:49.582326445 +0100
-@@ -525,26 +525,26 @@ xf86WriteMmio32Le(__volatile__ void *bas
- #define PORT_SIZE short
- #endif
-
--_X_EXPORT unsigned int IOPortBase; /* Memory mapped I/O port area */
-+_X_EXPORT volatile unsigned char *ioBase; /* Memory mapped I/O port area */
-
- static __inline__ void
- outb(unsigned PORT_SIZE port, unsigned char val)
- {
-- *(volatile unsigned char *) (((unsigned PORT_SIZE) (port)) + IOPortBase) =
-+ *(volatile unsigned char *) (((unsigned PORT_SIZE) (port)) + ioBase) =
- val;
- }
-
- static __inline__ void
- outw(unsigned PORT_SIZE port, unsigned short val)
- {
-- *(volatile unsigned short *) (((unsigned PORT_SIZE) (port)) + IOPortBase) =
-+ *(volatile unsigned short *) (((unsigned PORT_SIZE) (port)) + ioBase) =
- val;
- }
-
- static __inline__ void
- outl(unsigned PORT_SIZE port, unsigned int val)
- {
-- *(volatile unsigned int *) (((unsigned PORT_SIZE) (port)) + IOPortBase) =
-+ *(volatile unsigned int *) (((unsigned PORT_SIZE) (port)) + ioBase) =
- val;
- }
-
-@@ -552,21 +552,21 @@ static __inline__ unsigned int
- inb(unsigned PORT_SIZE port)
- {
- return *(volatile unsigned char *) (((unsigned PORT_SIZE) (port)) +
-- IOPortBase);
-+ ioBase);
- }
-
- static __inline__ unsigned int
- inw(unsigned PORT_SIZE port)
- {
- return *(volatile unsigned short *) (((unsigned PORT_SIZE) (port)) +
-- IOPortBase);
-+ ioBase);
- }
-
- static __inline__ unsigned int
- inl(unsigned PORT_SIZE port)
- {
- return *(volatile unsigned int *) (((unsigned PORT_SIZE) (port)) +
-- IOPortBase);
-+ ioBase);
- }
-
- #if defined(__mips__)
-@@ -758,7 +758,7 @@ inl(unsigned short port)
- return xf86ReadMmio32Le((void *) ioBase, port);
- }
-
--#elif defined(__arm__) && defined(__linux__)
-+#elif defined(__arm__) && defined(__GLIBC__)
-
- /* for Linux on ARM, we use the LIBC inx/outx routines */
- /* note that the appropriate setup via "ioperm" needs to be done */
diff --git a/package/xorg-server/patches/patch-include_misc_h b/package/xorg-server/patches/patch-include_misc_h
new file mode 100644
index 000000000..30cc9a44d
--- /dev/null
+++ b/package/xorg-server/patches/patch-include_misc_h
@@ -0,0 +1,13 @@
+--- xorg-server-21.1.5.orig/include/misc.h 2022-12-14 03:25:18.000000000 +0100
++++ xorg-server-21.1.5/include/misc.h 2023-01-01 08:13:51.736653806 +0100
+@@ -187,6 +187,10 @@ typedef struct _xReq *xReqPtr;
+ #endif
+ #endif
+
++#undef bswap_16
++#undef bswap_32
++#undef bswap_64
++
+ /**
+ * Calculate the number of bytes needed to hold bits.
+ * @param bits The minimum number of bits needed.
diff --git a/package/xorgproto/Makefile b/package/xorgproto/Makefile
new file mode 100644
index 000000000..264ee8da6
--- /dev/null
+++ b/package/xorgproto/Makefile
@@ -0,0 +1,30 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= xorgproto
+PKG_VERSION:= 2021.5
+PKG_RELEASE:= 1
+PKG_DESCR:= xorg extension headers
+PKG_SECTION:= dev/header
+PKG_HASH:= be6ddd6590881452fdfa170c1c9ff87209a98d36155332cbf2ccbc431add86ff
+PKG_SITES:= http://www.x.org/releases/individual/proto/
+PKG_OPTS:= dev devonly
+
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,XORGPROTO,xorgproto,$(PKG_VERSION)-$(PKG_RELEASE)))
+$(eval $(call PKG_template,XORGPROTO,xorgproto,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+HOST_STYLE:= auto
+
+post-install:
+ $(CP) ${WRKINST}/usr/share/pkgconfig/*.pc \
+ ${STAGING_TARGET_DIR}/usr/lib/pkgconfig/
+
+include $(ADK_TOPDIR)/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/xsm/Makefile b/package/xsm/Makefile
index 177e1e4ff..43b8223ff 100644
--- a/package/xsm/Makefile
+++ b/package/xsm/Makefile
@@ -20,6 +20,8 @@ include $(ADK_TOPDIR)/mk/package.mk
$(eval $(call PKG_template,XSM,xsm,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+CONFIGURE_ARGS+= --with-appdefaultdir=/usr/share/X11/app-defaults
+
xsm-install:
$(INSTALL_DIR) $(IDIR_XSM)/usr/share/X11
$(CP) $(WRKINST)/usr/share/X11/* \
diff --git a/package/xterm/Makefile b/package/xterm/Makefile
index d6cfcd674..4bc96d25d 100644
--- a/package/xterm/Makefile
+++ b/package/xterm/Makefile
@@ -4,17 +4,18 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= xterm
-PKG_VERSION:= 325
+PKG_VERSION:= 377
PKG_RELEASE:= 1
-PKG_HASH:= 3b31b07a0c40427e9330ec3be9d1a748c72808f945953cea9e526e48be315f1b
+PKG_HASH:= db108fe7a45d8ed97e604721b58443b473649e61e263631bf8759f8618a990b2
PKG_DESCR:= terminal emulator
PKG_SECTION:= x11/apps
PKG_DEPENDS:= libxaw libxt libncurses libxft fontconfig libuuid
+PKG_DEPENDS+= libxpm libxrender
PKG_BUILDDEP:= ncurses libXt libXmu libXaw libXft util-linux libSM
PKG_URL:= http://invisible-island.net/xterm/xterm.html
-PKG_SITES:= ftp://invisible-island.net/xterm/
+PKG_SITES:= http://invisible-mirror.net/archives/xterm/
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tgz
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tgz
include $(ADK_TOPDIR)/mk/package.mk
@@ -26,6 +27,7 @@ CONFIGURE_ARGS+= --with-app-defaults=/usr/lib/X11/app-defaults \
--x-libraries="$(STAGING_TARGET_DIR)/usr/lib" \
--with-freetype-cflags="-I$(STAGING_TARGET_DIR)/usr/include/freetype2" \
--disable-regex \
+ --disable-wide-chars \
--disable-pty-handshake
xterm-install:
diff --git a/package/xterm/patches/patch-xterm_io_h b/package/xterm/patches/patch-xterm_io_h
deleted file mode 100644
index 286388b66..000000000
--- a/package/xterm/patches/patch-xterm_io_h
+++ /dev/null
@@ -1,11 +0,0 @@
---- xterm-325.orig/xterm_io.h 2014-07-25 10:26:56.000000000 +0200
-+++ xterm-325/xterm_io.h 2016-09-09 22:25:42.000000000 +0200
-@@ -71,7 +71,7 @@
- #endif
-
- #ifdef linux
--#define USE_TERMIOS
-+#define USE_POSIX_TERMIOS
- #endif
-
- #ifdef __SCO__
diff --git a/package/xwayland/Makefile b/package/xwayland/Makefile
new file mode 100644
index 000000000..2e0848cdd
--- /dev/null
+++ b/package/xwayland/Makefile
@@ -0,0 +1,39 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= xwayland
+PKG_VERSION:= 21.1.3
+PKG_RELEASE:= 1
+PKG_HASH:= ebc2757f39fd4c7db1654fd86591589c211aa20172d43a54f77ae567cedbf8a2
+PKG_DESCR:= wayland server
+PKG_SECTION:= x11/drivers
+PKG_DEPENDS:= wayland wayland-protocols libepoxy libtirpc
+PKG_DEPENDS+= pixman libxkbfile libxfont2 font-util libressl
+PKG_DEPENDS+= libxdmcp libxshmfence libx11 libxcb libxext
+PKG_DEPENDS+= libxau libfreetype libfontenc
+PKG_BUILDDEP:= wayland wayland-protocols libepoxy libtirpc
+PKG_BUILDDEP+= pixman xorgproto libxkbfile libXfont2 font-util
+PKG_BUILDDEP+= libressl libXdmcp libxshmfence libX11 libxcb
+PKG_BUILDDEP+= libXext libXau freetype libfontenc
+PKG_URL:= https://xorg.freedesktop.org/
+PKG_SITES:= https://www.x.org/releases/individual/xserver/
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,XWAYLAND,xwayland,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+WRKBUILD= $(WRKDIR)/$(PKG_NAME)-obj
+
+CONFIG_STYLE:= meson
+BUILD_STYLE:= meson
+INSTALL_STYLE:= meson
+
+
+xwayland-install:
+ $(INSTALL_DIR) $(IDIR_XWAYLAND)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/Xwayland \
+ $(IDIR_XWAYLAND)/usr/bin
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/xwayland/patches/patch-hw_xwayland_xwayland-glx_c b/package/xwayland/patches/patch-hw_xwayland_xwayland-glx_c
new file mode 100644
index 000000000..57cca337d
--- /dev/null
+++ b/package/xwayland/patches/patch-hw_xwayland_xwayland-glx_c
@@ -0,0 +1,12 @@
+--- xwayland-21.1.3.orig/hw/xwayland/xwayland-glx.c 2021-11-08 11:37:14.863922600 +0100
++++ xwayland-21.1.3/hw/xwayland/xwayland-glx.c 2021-11-14 05:31:50.673075155 +0100
+@@ -45,6 +45,9 @@
+
+ #include "xwayland-screen.h"
+
++#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT 0x333B
++#define EGL_COLOR_COMPONENT_TYPE_EXT 0x3339
++
+ /* Can't get these from <GL/glx.h> since it pulls in client headers */
+ #define GLX_RGBA_BIT 0x00000001
+ #define GLX_WINDOW_BIT 0x00000001
diff --git a/package/xwayland/patches/patch-include_misc_h b/package/xwayland/patches/patch-include_misc_h
new file mode 100644
index 000000000..6707a70ed
--- /dev/null
+++ b/package/xwayland/patches/patch-include_misc_h
@@ -0,0 +1,51 @@
+--- xwayland-21.1.3.orig/include/misc.h 2021-11-08 11:37:14.869922600 +0100
++++ xwayland-21.1.3/include/misc.h 2021-11-14 05:17:02.367154956 +0100
+@@ -298,34 +298,12 @@ __builtin_constant_p(int x)
+ }
+ #endif
+
+-static inline uint64_t
+-bswap_64(uint64_t x)
+-{
+- return (((x & 0xFF00000000000000ull) >> 56) |
+- ((x & 0x00FF000000000000ull) >> 40) |
+- ((x & 0x0000FF0000000000ull) >> 24) |
+- ((x & 0x000000FF00000000ull) >> 8) |
+- ((x & 0x00000000FF000000ull) << 8) |
+- ((x & 0x0000000000FF0000ull) << 24) |
+- ((x & 0x000000000000FF00ull) << 40) |
+- ((x & 0x00000000000000FFull) << 56));
+-}
+-
+ #define swapll(x) do { \
+ if (sizeof(*(x)) != 8) \
+ wrong_size(); \
+ *(x) = bswap_64(*(x)); \
+ } while (0)
+
+-static inline uint32_t
+-bswap_32(uint32_t x)
+-{
+- return (((x & 0xFF000000) >> 24) |
+- ((x & 0x00FF0000) >> 8) |
+- ((x & 0x0000FF00) << 8) |
+- ((x & 0x000000FF) << 24));
+-}
+-
+ static inline Bool
+ checked_int64_add(int64_t *out, int64_t a, int64_t b)
+ {
+@@ -361,13 +339,6 @@ checked_int64_subtract(int64_t *out, int
+ *(x) = bswap_32(*(x)); \
+ } while (0)
+
+-static inline uint16_t
+-bswap_16(uint16_t x)
+-{
+- return (((x & 0xFF00) >> 8) |
+- ((x & 0x00FF) << 8));
+-}
+-
+ #define swaps(x) do { \
+ if (sizeof(*(x)) != 2) \
+ wrong_size(); \
diff --git a/package/xz/Makefile b/package/xz/Makefile
deleted file mode 100644
index 85bd17bb2..000000000
--- a/package/xz/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= xz
-PKG_VERSION:= 5.2.4
-PKG_RELEASE:= 1
-PKG_HASH:= b512f3b726d3b37b6dc4c8570e137b9311e7552e8ccbab4d39d47ce5f4177145
-PKG_DESCR:= compression utility
-PKG_SECTION:= app/archive
-PKG_DEPENDS:= libxz
-PKG_URL:= http://tukaani.org/xz/
-PKG_SITES:= http://tukaani.org/xz/
-PKG_LIBNAME:= libxz
-PKG_OPTS:= dev
-
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
-
-PKG_SUBPKGS:= XZ LIBXZ
-PKGSD_LIBXZ:= xz compression library
-PKGSC_LIBXZ:= libs/comp
-
-include $(ADK_TOPDIR)/mk/host.mk
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call HOST_template,XZ,xz,$(PKG_VERSION)-$(PKG_RELEASE)))
-$(eval $(call PKG_template,XZ,xz,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
-$(eval $(call PKG_template,LIBXZ,libxz,$(PKG_VERSION)-$(PKG_RELEASE),$(PKGSS_LIBXZ),$(PKGSD_LIBXZ),$(PKGSC_LIBXZ),$(PKG_OPTS)))
-
-HOST_CONFIGURE_ARGS+= --disable-shared
-
-xz-install:
- $(INSTALL_DIR) $(IDIR_XZ)/usr/bin
- $(CP) $(WRKINST)/usr/bin/* $(IDIR_XZ)/usr/bin
-
-libxz-install:
- $(INSTALL_DIR) $(IDIR_LIBXZ)/usr/lib
- $(CP) $(WRKINST)/usr/lib/liblzma.so* $(IDIR_LIBXZ)/usr/lib
-
-include $(ADK_TOPDIR)/mk/host-bottom.mk
-include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/xz/patches/patch-src_liblzma_liblzma_pc_in b/package/xz/patches/patch-src_liblzma_liblzma_pc_in
deleted file mode 100644
index 9481466af..000000000
--- a/package/xz/patches/patch-src_liblzma_liblzma_pc_in
+++ /dev/null
@@ -1,15 +0,0 @@
---- xz-5.2.2.orig/src/liblzma/liblzma.pc.in 2015-09-29 12:57:36.000000000 +0200
-+++ xz-5.2.2/src/liblzma/liblzma.pc.in 2016-11-23 16:04:15.407184892 +0100
-@@ -6,9 +6,9 @@
- #
-
- prefix=@prefix@
--exec_prefix=@exec_prefix@
--libdir=@libdir@
--includedir=@includedir@
-+exec_prefix=${prefix}
-+libdir=${prefix}/lib
-+includedir=${prefix}/include
-
- Name: liblzma
- Description: General purpose data compression library
diff --git a/package/yajl/Makefile b/package/yajl/Makefile
index f81ccf66b..321d24971 100644
--- a/package/yajl/Makefile
+++ b/package/yajl/Makefile
@@ -6,16 +6,15 @@ include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= yajl
PKG_VERSION:= 2.1.0
PKG_RELEASE:= 1
-PKG_HASH:= 510a13e0be57cd4ba99e60ac806a3635854af51316d3131d3742a90298ccde38
+PKG_HASH:= 3fb73364a5a30efe615046d07e6db9d09fd2b41c763c5f7d3bfb121cd5c5ac5a
PKG_DESCR:= small event-driven json parser
PKG_SECTION:= libs/data
PKG_BUILDDEP:= cmake-host ruby-host
PKG_URL:= http://lloyd.github.com/yajl/
-PKG_SITES:= http://github.com/lloyd/yajl/tarball/$(PKG_VERSION)/
+PKG_SITES:= https://github.com/lloyd/yajl/archive/refs/tags/
PKG_OPTS:= dev
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
-WRKDIST= $(WRKDIR)/lloyd-yajl-66cb08c/
+DISTFILES:= ${PKG_VERSION}.tar.gz
include $(ADK_TOPDIR)/mk/package.mk
diff --git a/package/ympd/Makefile b/package/ympd/Makefile
deleted file mode 100644
index 785e26b12..000000000
--- a/package/ympd/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-PKG_NAME:= ympd
-PKG_VERSION:= ec008a4995666d673bd4cb3926fae7f4b6aa3239
-PKG_GIT:= hash
-PKG_RELEASE:= 4
-PKG_DESCR:= standalone music player daemon web gui
-PKG_SECTION:= net/http
-PKG_DEPENDS:= libmpdclient libressl
-PKG_BUILDDEP:= cmake-host libmpdclient libressl
-PKG_URL:= http://www.ympd.org/
-PKG_SITES:= https://github.com/notandy/ympd.git
-
-include $(ADK_TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,YMPD,ympd,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-CONFIG_STYLE:= cmake
-TARGET_CFLAGS+= -std=c99
-
-ympd-install:
- $(INSTALL_DIR) $(IDIR_YMPD)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/ympd \
- $(IDIR_YMPD)/usr/bin
-
-include ${ADK_TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/ympd/files/ympd.init b/package/ympd/files/ympd.init
deleted file mode 100644
index 6dd7af28c..000000000
--- a/package/ympd/files/ympd.init
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-#PKG ympd
-#INIT 90
-
-. /etc/rc.conf
-
-case $1 in
-autostop) ;;
-autostart)
- test x"${ympd:-NO}" = x"NO" && exit 0
- test x"$ympd" = x"DAEMON" && test -x /bin/mksh && exec mksh -T- $0 start
- exec sh $0 start
- ;;
-start)
- ympd -w 80 &
- ;;
-stop)
- kill $(pgrep -f ympd)
- ;;
-restart)
- sh $0 stop
- sh $0 start
- ;;
-*)
- echo "Usage: $0 {start | stop | restart}"
- exit 1
- ;;
-esac
-exit $?
diff --git a/package/ympd/files/ympd.postinst b/package/ympd/files/ympd.postinst
deleted file mode 100644
index abc75c6f7..000000000
--- a/package/ympd/files/ympd.postinst
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-. $IPKG_INSTROOT/etc/functions.sh
-add_rcconf ympd NO
diff --git a/package/zile/Makefile b/package/zile/Makefile
index 78e08f8c6..c4744e7a5 100644
--- a/package/zile/Makefile
+++ b/package/zile/Makefile
@@ -4,13 +4,14 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= zile
-PKG_VERSION:= 2.4.11
+PKG_VERSION:= 2.6.2
PKG_RELEASE:= 1
-PKG_HASH:= 1fd27bbddc61491b1fbb29a345d0d344734aa9e80cfa07b02892eedf831fa9cc
+PKG_HASH:= 77eb7daff3c98bdc88daa1ac040dccca72b81dc32fc3166e079dd7a63e42c741
PKG_DESCR:= tiny emacs clone
PKG_SECTION:= app/editor
-PKG_DEPENDS:= libgc
-PKG_BUILDDEP:= libgc
+PKG_DEPENDS:= libgc glib libgee libmount libblkid
+PKG_BUILDDEP:= libgc glib libgee
+PKG_LIBC_DEPENDS:= glibc
PKG_URL:= http://www.gnu.org/software/zile/
PKG_SITES:= ${MASTER_SITE_GNU:=zile/}
diff --git a/package/zlib-ng/Makefile b/package/zlib-ng/Makefile
new file mode 100644
index 000000000..32fa46452
--- /dev/null
+++ b/package/zlib-ng/Makefile
@@ -0,0 +1,29 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= zlib-ng
+PKG_VERSION:= 2.1.6
+PKG_RELEASE:= 1
+PKG_HASH:= a5d504c0d52e2e2721e7e7d86988dec2e290d723ced2307145dedd06aeb6fef2
+PKG_DESCR:= implementation of the deflate compression method
+PKG_SECTION:= libs/comp
+PKG_SITES:= https://github.com/zlib-ng/zlib-ng/archive/refs/tags/
+PKG_NEEDS:= c++
+PKG_OPTS:= dev
+
+DISTFILES:= $(PKG_VERSION).tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,ZLIB_NG,zlib-ng,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+CONFIG_STYLE:= cmake
+
+zlib-ng-install:
+ $(INSTALL_DIR) $(IDIR_ZLIB_NG)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libz-ng*.so* \
+ $(IDIR_ZLIB_NG)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/zlib/Makefile b/package/zlib/Makefile
index 10ba76375..9d7cea2ae 100644
--- a/package/zlib/Makefile
+++ b/package/zlib/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= zlib
-PKG_VERSION:= 1.2.11
-PKG_RELEASE:= 2
-PKG_HASH:= 4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066
+PKG_VERSION:= 1.3.1
+PKG_RELEASE:= 1
+PKG_HASH:= 38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32
PKG_DESCR:= implementation of the deflate compression method
PKG_SECTION:= libs/comp
PKG_URL:= http://www.zlib.net/
diff --git a/package/zsh/Makefile b/package/zsh/Makefile
index e96ce77a3..076e0f871 100644
--- a/package/zsh/Makefile
+++ b/package/zsh/Makefile
@@ -4,9 +4,9 @@
include $(ADK_TOPDIR)/rules.mk
PKG_NAME:= zsh
-PKG_VERSION:= 5.5.1
+PKG_VERSION:= 5.9
PKG_RELEASE:= 1
-PKG_HASH:= e1c38808fcbe0cc1344d55c9a758349f7ba1e317325b154621ac37eddac4aa80
+PKG_HASH:= 9b8d1ecedd5b5e81fbf1918e876752a7dd948e05c1a0dba10ab863842d45acd5
PKG_DESCR:= z shell
PKG_SECTION:= base/shells
PKG_DEPENDS:= libncurses
diff --git a/package/zstd/Makefile b/package/zstd/Makefile
new file mode 100644
index 000000000..79ac805b5
--- /dev/null
+++ b/package/zstd/Makefile
@@ -0,0 +1,38 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:= zstd
+PKG_VERSION:= 1.5.5
+PKG_RELEASE:= 1
+PKG_HASH:= 98e9c3d949d1b924e28e01eccb7deed865eefebf25c2f21c702e5cd5b63b85e1
+PKG_DESCR:= zstandard compression application
+PKG_SECTION:= app/archive
+PKG_SITES:= https://github.com/facebook/zstd/archive/refs/tags/
+PKG_OPTS:= dev
+
+DISTFILES:= v$(PKG_VERSION).tar.gz
+
+include ${ADK_TOPDIR}/mk/host.mk
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call HOST_template,ZSTD,zstd,${PKG_VERSION}-${PKG_RELEASE}))
+$(eval $(call PKG_template,ZSTD,zstd,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION),$(PKG_OPTS)))
+
+HOST_CONFIG_STYLE:= manual
+HOST_INSTALL_STYLE:= auto
+CONFIG_STYLE:= manual
+ALL_TARGET:= default
+HOST_ALL_TARGET:= default
+
+zstd-install:
+ $(INSTALL_DIR) $(IDIR_ZSTD)/usr/lib
+ $(CP) $(WRKINST)/usr/lib/libzstd*.so* \
+ $(IDIR_ZSTD)/usr/lib
+ $(INSTALL_DIR) $(IDIR_ZSTD)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/zstd \
+ $(IDIR_ZSTD)/usr/bin
+
+include ${ADK_TOPDIR}/mk/host-bottom.mk
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/zstd/patches/patch-lib_Makefile b/package/zstd/patches/patch-lib_Makefile
new file mode 100644
index 000000000..22128cbda
--- /dev/null
+++ b/package/zstd/patches/patch-lib_Makefile
@@ -0,0 +1,11 @@
+--- zstd-1.5.5.orig/lib/Makefile 2023-04-04 22:13:52.000000000 +0200
++++ zstd-1.5.5/lib/Makefile 2024-01-17 18:12:48.257111944 +0100
+@@ -259,7 +259,7 @@ DESTDIR ?=
+ # directory variables : GNU conventions prefer lowercase
+ # see https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html
+ # support both lower and uppercase (BSD), use uppercase in script
+-prefix ?= /usr/local
++prefix ?= /usr
+ PREFIX ?= $(prefix)
+ exec_prefix ?= $(PREFIX)
+ EXEC_PREFIX ?= $(exec_prefix)
diff --git a/package/zstd/patches/patch-programs_Makefile b/package/zstd/patches/patch-programs_Makefile
new file mode 100644
index 000000000..b8f880ca0
--- /dev/null
+++ b/package/zstd/patches/patch-programs_Makefile
@@ -0,0 +1,11 @@
+--- zstd-1.5.5.orig/programs/Makefile 2023-04-04 22:13:52.000000000 +0200
++++ zstd-1.5.5/programs/Makefile 2024-01-17 18:13:11.620566871 +0100
+@@ -380,7 +380,7 @@ DESTDIR ?=
+ # directory variables : GNU conventions prefer lowercase
+ # see https://www.gnu.org/prep/standards/html_node/Makefile-Conventions.html
+ # support both lower and uppercase (BSD), use uppercase in script
+-prefix ?= /usr/local
++prefix ?= /usr
+ PREFIX ?= $(prefix)
+ exec_prefix ?= $(PREFIX)
+ bindir ?= $(exec_prefix)/bin
diff --git a/rules.mk b/rules.mk
index de53ce105..234f5e345 100644
--- a/rules.mk
+++ b/rules.mk
@@ -75,11 +75,8 @@ ADK_TARGET_LINUX_KERNEL_GIT:= $(strip $(subst ",, $(ADK_TARGET_LINUX_KERNEL_GIT
ADK_TARGET_LINUX_KERNEL_GIT_VER:= $(strip $(subst ",, $(ADK_TARGET_LINUX_KERNEL_GIT_VER)))
ADK_TARGET_LINUX_KERNEL_GIT_TYPE:= $(strip $(subst ",, $(ADK_TARGET_LINUX_KERNEL_GIT_TYPE)))
ADK_TARGET_LINUX_KERNEL_DEFCONFIG:= $(strip $(subst ",, $(ADK_TARGET_LINUX_KERNEL_DEFCONFIG)))
-ADK_TARGET_WALDUX_KERNEL_GIT:= $(strip $(subst ",, $(ADK_TARGET_WALDUX_KERNEL_GIT)))
-ADK_TARGET_WALDUX_KERNEL_GIT_VER:= $(strip $(subst ",, $(ADK_TARGET_WALDUX_KERNEL_GIT_VER)))
-ADK_TARGET_WALDUX_KERNEL_GIT_TYPE:= $(strip $(subst ",, $(ADK_TARGET_WALDUX_KERNEL_GIT_TYPE)))
-ADK_TARGET_WALDUX_KERNEL_DEFCONFIG:= $(strip $(subst ",, $(ADK_TARGET_WALDUX_KERNEL_DEFCONFIG)))
ADK_TARGET_GENIMAGE_FILENAME:= $(strip $(subst ",, $(ADK_TARGET_GENIMAGE_FILENAME)))
+ADK_TARGET_EXTLINUX_FILENAME:= $(strip $(subst ",, $(ADK_TARGET_EXTLINUX_FILENAME)))
ADK_TARGET_ROOTDEV:= $(strip $(subst ",, $(ADK_TARGET_ROOTDEV)))
ADK_TARGET_KARCH:=$(ADK_TARGET_ARCH)
diff --git a/scripts/config.guess b/scripts/config.guess
index fba6e87a0..f6d217a49 100755
--- a/scripts/config.guess
+++ b/scripts/config.guess
@@ -1,12 +1,14 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2015 Free Software Foundation, Inc.
+# Copyright 1992-2024 Free Software Foundation, Inc.
-timestamp='2015-11-19'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2024-01-01'
# This file 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 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -15,7 +17,7 @@ timestamp='2015-11-19'
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -27,19 +29,27 @@ timestamp='2015-11-19'
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
#
# Please send patches to <config-patches@gnu.org>.
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
-Output the configuration name of the system \`$me' is run on.
+Output the configuration name of the system '$me' is run on.
-Operation modes:
+Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
@@ -50,13 +60,13 @@ version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
@@ -84,78 +94,109 @@ if test $# != 0; then
exit 1
fi
-trap 'exit 1' 1 2 15
+# Just in case it came from the environment.
+GUESS=
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
+# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still
+# use 'HOST_CC' if defined, but it is deprecated.
# Portable tmp directory creation inspired by the Autoconf team.
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,) echo "int x;" > $dummy.c ;
- for c in cc gcc c89 c99 ; do
- if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$c"; break ;
- fi ;
- done ;
- if test x"$CC_FOR_BUILD" = x ; then
- CC_FOR_BUILD=no_compiler_found ;
- fi
- ;;
- ,,*) CC_FOR_BUILD=$CC ;;
- ,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
+
+set_cc_for_build() {
+ # prevent multiple calls if $tmp is already set
+ test "$tmp" && return 0
+ : "${TMPDIR=/tmp}"
+ # shellcheck disable=SC2039,SC3028
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+ dummy=$tmp/dummy
+ case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,) echo "int x;" > "$dummy.c"
+ for driver in cc gcc c89 c99 ; do
+ if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+ CC_FOR_BUILD=$driver
+ break
+ fi
+ done
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+ esac
+}
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+if test -f /.attbin/uname ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "${UNAME_SYSTEM}" in
+case $UNAME_SYSTEM in
Linux|GNU|GNU/*)
- # If the system lacks a compiler, then just pick glibc.
- # We could probably try harder.
- LIBC=gnu
+ LIBC=unknown
- eval $set_cc_for_build
- cat <<-EOF > $dummy.c
+ set_cc_for_build
+ cat <<-EOF > "$dummy.c"
+ #if defined(__ANDROID__)
+ LIBC=android
+ #else
#include <features.h>
#if defined(__UCLIBC__)
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
- #else
+ #elif defined(__GLIBC__)
LIBC=gnu
+ #elif defined(__LLVM_LIBC__)
+ LIBC=llvm
+ #else
+ #include <stdarg.h>
+ /* First heuristic to detect musl libc. */
+ #ifdef __DEFINED_va_list
+ LIBC=musl
+ #endif
+ #endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "$cc_set_libc"
+
+ # Second heuristic to detect musl libc.
+ if [ "$LIBC" = unknown ] &&
+ command -v ldd >/dev/null &&
+ ldd --version 2>&1 | grep -q ^musl; then
+ LIBC=musl
+ fi
+
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ if [ "$LIBC" = unknown ]; then
+ LIBC=gnu
+ fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -167,29 +208,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- /sbin/$sysctl 2>/dev/null || \
- /usr/sbin/$sysctl 2>/dev/null || \
+ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
echo unknown)`
- case "${UNAME_MACHINE_ARCH}" in
+ case $UNAME_MACHINE_ARCH in
+ aarch64eb) machine=aarch64_be-unknown ;;
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
sh5el) machine=sh5le-unknown ;;
earmv*)
- arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
- endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
+ arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
machine=${arch}${endian}-unknown
;;
- *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ *) machine=$UNAME_MACHINE_ARCH-unknown ;;
esac
# The Operating System including object format, if it has switched
- # to ELF recently, or will in the future.
- case "${UNAME_MACHINE_ARCH}" in
- arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax)
- eval $set_cc_for_build
+ # to ELF recently (or will in the future) and ABI.
+ case $UNAME_MACHINE_ARCH in
+ earm*)
+ os=netbsdelf
+ ;;
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ELF__
then
@@ -205,10 +249,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
;;
esac
# Determine ABI tags.
- case "${UNAME_MACHINE_ARCH}" in
+ case $UNAME_MACHINE_ARCH in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
- abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
;;
esac
# The OS release
@@ -216,43 +260,68 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case "${UNAME_VERSION}" in
+ case $UNAME_VERSION in
Debian*)
release='-gnu'
;;
*)
- release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
;;
esac
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "${machine}-${os}${release}${abi}"
- exit ;;
+ GUESS=$machine-${os}${release}${abi-}
+ ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
+ ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
+ ;;
+ *:SecBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
+ ;;
+ *:LibertyBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
+ ;;
+ *:MidnightBSD:*:*)
+ GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
+ ;;
*:ekkoBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
+ ;;
*:SolidBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
+ ;;
+ *:OS108:*:*)
+ GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
+ ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
+ ;;
*:MirBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
+ ;;
*:Sortix:*:*)
- echo ${UNAME_MACHINE}-unknown-sortix
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-sortix
+ ;;
+ *:Twizzler:*:*)
+ GUESS=$UNAME_MACHINE-unknown-twizzler
+ ;;
+ *:Redox:*:*)
+ GUESS=$UNAME_MACHINE-unknown-redox
+ ;;
+ mips:OSF1:*.*)
+ GUESS=mips-dec-osf1
+ ;;
alpha:OSF1:*:*)
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ trap '' 0
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -266,163 +335,158 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
+ case $ALPHA_CPU_TYPE in
"EV4 (21064)")
- UNAME_MACHINE="alpha" ;;
+ UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
- UNAME_MACHINE="alpha" ;;
+ UNAME_MACHINE=alpha ;;
"LCA4 (21066/21068)")
- UNAME_MACHINE="alpha" ;;
+ UNAME_MACHINE=alpha ;;
"EV5 (21164)")
- UNAME_MACHINE="alphaev5" ;;
+ UNAME_MACHINE=alphaev5 ;;
"EV5.6 (21164A)")
- UNAME_MACHINE="alphaev56" ;;
+ UNAME_MACHINE=alphaev56 ;;
"EV5.6 (21164PC)")
- UNAME_MACHINE="alphapca56" ;;
+ UNAME_MACHINE=alphapca56 ;;
"EV5.7 (21164PC)")
- UNAME_MACHINE="alphapca57" ;;
+ UNAME_MACHINE=alphapca57 ;;
"EV6 (21264)")
- UNAME_MACHINE="alphaev6" ;;
+ UNAME_MACHINE=alphaev6 ;;
"EV6.7 (21264A)")
- UNAME_MACHINE="alphaev67" ;;
+ UNAME_MACHINE=alphaev67 ;;
"EV6.8CB (21264C)")
- UNAME_MACHINE="alphaev68" ;;
+ UNAME_MACHINE=alphaev68 ;;
"EV6.8AL (21264B)")
- UNAME_MACHINE="alphaev68" ;;
+ UNAME_MACHINE=alphaev68 ;;
"EV6.8CX (21264D)")
- UNAME_MACHINE="alphaev68" ;;
+ UNAME_MACHINE=alphaev68 ;;
"EV6.9A (21264/EV69A)")
- UNAME_MACHINE="alphaev69" ;;
+ UNAME_MACHINE=alphaev69 ;;
"EV7 (21364)")
- UNAME_MACHINE="alphaev7" ;;
+ UNAME_MACHINE=alphaev7 ;;
"EV7.9 (21364A)")
- UNAME_MACHINE="alphaev79" ;;
+ UNAME_MACHINE=alphaev79 ;;
esac
# A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- exitcode=$?
- trap '' 0
- exit $exitcode ;;
- Alpha\ *:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # Should we change UNAME_MACHINE based on the output of uname instead
- # of the specific Alpha model?
- echo alpha-pc-interix
- exit ;;
- 21064:Windows_NT:50:3)
- echo alpha-dec-winnt3.5
- exit ;;
+ OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
+ ;;
Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
+ GUESS=m68k-unknown-sysv4
+ ;;
*:[Aa]miga[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-amigaos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-amigaos
+ ;;
*:[Mm]orph[Oo][Ss]:*:*)
- echo ${UNAME_MACHINE}-unknown-morphos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-morphos
+ ;;
*:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
+ GUESS=i370-ibm-openedition
+ ;;
*:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
+ GUESS=s390-ibm-zvmoe
+ ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
+ GUESS=powerpc-ibm-os400
+ ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix${UNAME_RELEASE}
- exit ;;
+ GUESS=arm-acorn-riscix$UNAME_RELEASE
+ ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
+ GUESS=arm-unknown-riscos
+ ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
+ GUESS=hppa1.1-hitachi-hiuxmpp
+ ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
+ case `(/bin/universe) 2>/dev/null` in
+ att) GUESS=pyramid-pyramid-sysv3 ;;
+ *) GUESS=pyramid-pyramid-bsd ;;
+ esac
+ ;;
NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
+ GUESS=pyramid-pyramid-svr4
+ ;;
DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
+ GUESS=sparc-icl-nx6
+ ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
+ sparc) GUESS=sparc-icl-nx7 ;;
+ esac
+ ;;
s390x:SunOS:*:*)
- echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
+ ;;
sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-hal-solaris2$SUN_REL
+ ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris2$SUN_REL
+ ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux${UNAME_RELEASE}
- exit ;;
+ GUESS=i386-pc-auroraux$UNAME_RELEASE
+ ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
- eval $set_cc_for_build
- SUN_ARCH="i386"
+ set_cc_for_build
+ SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
then
- SUN_ARCH="x86_64"
+ SUN_ARCH=x86_64
fi
fi
- echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
+ ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris3$SUN_REL
+ ;;
sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
+ case `/usr/bin/arch -k` in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
- # Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit ;;
+ # Japanese Language versions have a version number like '4.1.3-JL'.
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
+ GUESS=sparc-sun-sunos$SUN_REL
+ ;;
sun3*:SunOS:*:*)
- echo m68k-sun-sunos${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
+ ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
- test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
- case "`/bin/arch`" in
+ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
+ case `/bin/arch` in
sun3)
- echo m68k-sun-sunos${UNAME_RELEASE}
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
;;
sun4)
- echo sparc-sun-sunos${UNAME_RELEASE}
+ GUESS=sparc-sun-sunos$UNAME_RELEASE
;;
esac
- exit ;;
+ ;;
aushp:SunOS:*:*)
- echo sparc-auspex-sunos${UNAME_RELEASE}
- exit ;;
+ GUESS=sparc-auspex-sunos$UNAME_RELEASE
+ ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
@@ -432,44 +496,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-milan-mint$UNAME_RELEASE
+ ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-hades-mint$UNAME_RELEASE
+ ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-unknown-mint$UNAME_RELEASE
+ ;;
m68k:machten:*:*)
- echo m68k-apple-machten${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-apple-machten$UNAME_RELEASE
+ ;;
powerpc:machten:*:*)
- echo powerpc-apple-machten${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-apple-machten$UNAME_RELEASE
+ ;;
RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
+ GUESS=mips-dec-mach_bsd4.3
+ ;;
RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-dec-ultrix$UNAME_RELEASE
+ ;;
VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix${UNAME_RELEASE}
- exit ;;
+ GUESS=vax-dec-ultrix$UNAME_RELEASE
+ ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix${UNAME_RELEASE}
- exit ;;
+ GUESS=clipper-intergraph-clix$UNAME_RELEASE
+ ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
@@ -478,95 +542,96 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
- printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
- printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
- printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c &&
- dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
- SYSTEM_NAME=`$dummy $dummyarg` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+ dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-mips-riscos$UNAME_RELEASE
+ ;;
Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
+ GUESS=powerpc-motorola-powermax
+ ;;
Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
+ GUESS=powerpc-harris-powerunix
+ ;;
m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
+ GUESS=m88k-harris-cxux7
+ ;;
m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
+ GUESS=m88k-motorola-sysv4
+ ;;
m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
then
- if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
- [ ${TARGET_BINARY_INTERFACE}x = x ]
+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+ test "$TARGET_BINARY_INTERFACE"x = x
then
- echo m88k-dg-dgux${UNAME_RELEASE}
+ GUESS=m88k-dg-dgux$UNAME_RELEASE
else
- echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
fi
else
- echo i586-dg-dgux${UNAME_RELEASE}
+ GUESS=i586-dg-dgux$UNAME_RELEASE
fi
- exit ;;
+ ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
+ GUESS=m88k-dolphin-sysv3
+ ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
+ GUESS=m88k-tektronix-sysv3
+ ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
+ GUESS=m68k-tektronix-bsd
+ ;;
*:IRIX*:*:*)
- echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit ;;
+ IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
+ GUESS=mips-sgi-irix$IRIX_REL
+ ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
+ GUESS=i386-ibm-aix
+ ;;
ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
+ if test -x /usr/bin/oslevel ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
+ ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#include <sys/systemcfg.h>
main()
@@ -577,77 +642,77 @@ EOF
exit(0);
}
EOF
- if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
- echo "$SYSTEM_NAME"
+ GUESS=$SYSTEM_NAME
else
- echo rs6000-ibm-aix3.2.5
+ GUESS=rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
+ GUESS=rs6000-ibm-aix3.2.4
else
- echo rs6000-ibm-aix3.2
+ GUESS=rs6000-ibm-aix3.2
fi
- exit ;;
+ ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
- if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
- if [ -x /usr/bin/lslpp ] ; then
- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+ if test -x /usr/bin/lslpp ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit ;;
+ GUESS=$IBM_ARCH-ibm-aix$IBM_REV
+ ;;
*:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
- ibmrt:4.4BSD:*|romp-ibm:BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
+ GUESS=rs6000-ibm-aix
+ ;;
+ ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
+ GUESS=romp-ibm-bsd4.4
+ ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
+ GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
+ ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
+ GUESS=rs6000-bull-bosx
+ ;;
DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
+ GUESS=m68k-bull-sysv3
+ ;;
9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
+ GUESS=m68k-hp-bsd
+ ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
+ GUESS=m68k-hp-bsd4.4
+ ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- case "${UNAME_MACHINE}" in
- 9000/31? ) HP_ARCH=m68000 ;;
- 9000/[34]?? ) HP_ARCH=m68k ;;
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ case $UNAME_MACHINE in
+ 9000/31?) HP_ARCH=m68000 ;;
+ 9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
+ if test -x /usr/bin/getconf; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "${sc_cpu_version}" in
- 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
- 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ case $sc_cpu_version in
+ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
- case "${sc_kernel_bits}" in
- 32) HP_ARCH="hppa2.0n" ;;
- 64) HP_ARCH="hppa2.0w" ;;
- '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ case $sc_kernel_bits in
+ 32) HP_ARCH=hppa2.0n ;;
+ 64) HP_ARCH=hppa2.0w ;;
+ '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if [ "${HP_ARCH}" = "" ]; then
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ if test "$HP_ARCH" = ""; then
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#define _HPUX_SOURCE
#include <stdlib.h>
@@ -680,13 +745,13 @@ EOF
exit (0);
}
EOF
- (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if [ ${HP_ARCH} = "hppa2.0w" ]
+ if test "$HP_ARCH" = hppa2.0w
then
- eval $set_cc_for_build
+ set_cc_for_build
# hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
# 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
@@ -697,23 +762,23 @@ EOF
# $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
# => hppa64-hp-hpux11.23
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
grep -q __LP64__
then
- HP_ARCH="hppa2.0w"
+ HP_ARCH=hppa2.0w
else
- HP_ARCH="hppa64"
+ HP_ARCH=hppa64
fi
fi
- echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit ;;
+ GUESS=$HP_ARCH-hp-hpux$HPUX_REV
+ ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux${HPUX_REV}
- exit ;;
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ GUESS=ia64-hp-hpux$HPUX_REV
+ ;;
3050*:HI-UX:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
#include <unistd.h>
int
main ()
@@ -738,38 +803,38 @@ EOF
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
- 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
- echo hppa1.1-hp-bsd
- exit ;;
+ GUESS=unknown-hitachi-hiuxwe2
+ ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
+ GUESS=hppa1.1-hp-bsd
+ ;;
9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
+ GUESS=hppa1.0-hp-bsd
+ ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
- hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
- echo hppa1.1-hp-osf
- exit ;;
+ GUESS=hppa1.0-hp-mpeix
+ ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
+ GUESS=hppa1.1-hp-osf
+ ;;
hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
+ GUESS=hppa1.0-hp-osf
+ ;;
i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo ${UNAME_MACHINE}-unknown-osf1mk
+ if test -x /usr/sbin/sysversion ; then
+ GUESS=$UNAME_MACHINE-unknown-osf1mk
else
- echo ${UNAME_MACHINE}-unknown-osf1
+ GUESS=$UNAME_MACHINE-unknown-osf1
fi
- exit ;;
+ ;;
parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
+ GUESS=hppa1.1-hp-lites
+ ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
+ GUESS=c1-convex-bsd
+ ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
@@ -777,139 +842,174 @@ EOF
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
+ GUESS=c34-convex-bsd
+ ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
+ GUESS=c38-convex-bsd
+ ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
+ GUESS=c4-convex-bsd
+ ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=ymp-cray-unicos$CRAY_REL
+ ;;
CRAY*[A-Z]90:*:*:*)
- echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=t90-cray-unicos$CRAY_REL
+ ;;
CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=alphaev5-cray-unicosmk$CRAY_REL
+ ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=sv1-cray-unicos$CRAY_REL
+ ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=craynv-cray-unicosmp$CRAY_REL
+ ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
- FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
+ GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+ GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
+ ;;
sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit ;;
+ GUESS=sparc-unknown-bsdi$UNAME_RELEASE
+ ;;
*:BSD/OS:*:*)
- echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
+ ;;
+ arm:FreeBSD:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ set_cc_for_build
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
+ else
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
+ fi
+ ;;
*:FreeBSD:*:*)
- UNAME_PROCESSOR=`/usr/bin/uname -p`
- case ${UNAME_PROCESSOR} in
+ UNAME_PROCESSOR=`uname -p`
+ case $UNAME_PROCESSOR in
amd64)
- echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
- *)
- echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ UNAME_PROCESSOR=x86_64 ;;
+ i386)
+ UNAME_PROCESSOR=i586 ;;
esac
- exit ;;
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
+ ;;
i*:CYGWIN*:*)
- echo ${UNAME_MACHINE}-pc-cygwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-cygwin
+ ;;
*:MINGW64*:*)
- echo ${UNAME_MACHINE}-pc-mingw64
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw64
+ ;;
*:MINGW*:*)
- echo ${UNAME_MACHINE}-pc-mingw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw32
+ ;;
*:MSYS*:*)
- echo ${UNAME_MACHINE}-pc-msys
- exit ;;
- i*:windows32*:*)
- # uname -m includes "-pc" on this system.
- echo ${UNAME_MACHINE}-mingw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-msys
+ ;;
i*:PW*:*)
- echo ${UNAME_MACHINE}-pc-pw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-pw32
+ ;;
+ *:SerenityOS:*:*)
+ GUESS=$UNAME_MACHINE-pc-serenity
+ ;;
*:Interix*:*)
- case ${UNAME_MACHINE} in
+ case $UNAME_MACHINE in
x86)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
+ GUESS=i586-pc-interix$UNAME_RELEASE
+ ;;
authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
+ GUESS=x86_64-unknown-interix$UNAME_RELEASE
+ ;;
IA64)
- echo ia64-unknown-interix${UNAME_RELEASE}
- exit ;;
+ GUESS=ia64-unknown-interix$UNAME_RELEASE
+ ;;
esac ;;
- [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
- echo i${UNAME_MACHINE}-pc-mks
- exit ;;
- 8664:Windows_NT:*)
- echo x86_64-pc-mks
- exit ;;
- i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
- # How do we know it's Interix rather than the generic POSIX subsystem?
- # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
- # UNAME_MACHINE based on the output of uname instead of i386?
- echo i586-pc-interix
- exit ;;
i*:UWIN*:*)
- echo ${UNAME_MACHINE}-pc-uwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-uwin
+ ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-unknown-cygwin
- exit ;;
- p*:CYGWIN*:*)
- echo powerpcle-unknown-cygwin
- exit ;;
+ GUESS=x86_64-pc-cygwin
+ ;;
prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=powerpcle-unknown-solaris2$SUN_REL
+ ;;
*:GNU:*:*)
# the GNU system
- echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit ;;
+ GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
+ GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
+ ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
- echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
- exit ;;
- i*86:Minix:*:*)
- echo ${UNAME_MACHINE}-pc-minix
- exit ;;
+ GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
+ ;;
+ x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
+ GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
+ ;;
+ *:[Mm]anagarm:*:*)
+ GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
+ ;;
+ *:Minix:*:*)
+ GUESS=$UNAME_MACHINE-unknown-minix
+ ;;
aarch64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ set_cc_for_build
+ CPU=$UNAME_MACHINE
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ ABI=64
+ sed 's/^ //' << EOF > "$dummy.c"
+ #ifdef __ARM_EABI__
+ #ifdef __ARM_PCS_VFP
+ ABI=eabihf
+ #else
+ ABI=eabi
+ #endif
+ #endif
+EOF
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+ eval "$cc_set_abi"
+ case $ABI in
+ eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;
+ esac
+ fi
+ GUESS=$CPU-unknown-linux-$LIBCABI
+ ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
alpha:Linux:*:*)
- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
@@ -919,178 +1019,246 @@ EOF
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
- if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
- arc:Linux:*:* | arceb:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
arm*:Linux:*:*)
- eval $set_cc_for_build
+ set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
else
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
fi
fi
- exit ;;
+ ;;
avr32*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
cris:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
crisv32:Linux:*:*)
- echo ${UNAME_MACHINE}-axis-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
e2k:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
frv:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
hexagon:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBC
+ ;;
ia64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
k1om:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ kvx:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ kvx:cos:*:*)
+ GUESS=$UNAME_MACHINE-unknown-cos
+ ;;
+ kvx:mbr:*:*)
+ GUESS=$UNAME_MACHINE-unknown-mbr
+ ;;
+ loongarch32:Linux:*:* | loongarch64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m32r*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m68*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
mips:Linux:*:* | mips64:Linux:*:*)
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
+ set_cc_for_build
+ IS_GLIBC=0
+ test x"${LIBC}" = xgnu && IS_GLIBC=1
+ sed 's/^ //' << EOF > "$dummy.c"
#undef CPU
- #undef ${UNAME_MACHINE}
- #undef ${UNAME_MACHINE}el
+ #undef mips
+ #undef mipsel
+ #undef mips64
+ #undef mips64el
+ #if ${IS_GLIBC} && defined(_ABI64)
+ LIBCABI=gnuabi64
+ #else
+ #if ${IS_GLIBC} && defined(_ABIN32)
+ LIBCABI=gnuabin32
+ #else
+ LIBCABI=${LIBC}
+ #endif
+ #endif
+
+ #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa64r6
+ #else
+ #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa32r6
+ #else
+ #if defined(__mips64)
+ CPU=mips64
+ #else
+ CPU=mips
+ #endif
+ #endif
+ #endif
+
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
- CPU=${UNAME_MACHINE}el
+ MIPS_ENDIAN=el
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
- CPU=${UNAME_MACHINE}
+ MIPS_ENDIAN=
#else
- CPU=
+ MIPS_ENDIAN=
#endif
#endif
EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
+ eval "$cc_set_vars"
+ test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
+ ;;
+ mips64el:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
;;
openrisc*:Linux:*:*)
- echo or1k-unknown-linux-${LIBC}
- exit ;;
+ GUESS=or1k-unknown-linux-$LIBC
+ ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-${LIBC}
- exit ;;
+ GUESS=sparc-unknown-linux-$LIBC
+ ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-${LIBC}
- exit ;;
+ GUESS=hppa64-unknown-linux-$LIBC
+ ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
- PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
- *) echo hppa-unknown-linux-${LIBC} ;;
+ PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
+ PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
+ *) GUESS=hppa-unknown-linux-$LIBC ;;
esac
- exit ;;
+ ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpc64-unknown-linux-$LIBC
+ ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpc-unknown-linux-$LIBC
+ ;;
ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpc64le-unknown-linux-$LIBC
+ ;;
ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-${LIBC}
- exit ;;
+ GUESS=powerpcle-unknown-linux-$LIBC
+ ;;
+ riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
+ ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sh*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
tile*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
vax:Linux:*:*)
- echo ${UNAME_MACHINE}-dec-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-dec-linux-$LIBC
+ ;;
x86_64:Linux:*:*)
- echo ${UNAME_MACHINE}-pc-linux-${LIBC}
- exit ;;
+ set_cc_for_build
+ CPU=$UNAME_MACHINE
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ ABI=64
+ sed 's/^ //' << EOF > "$dummy.c"
+ #ifdef __i386__
+ ABI=x86
+ #else
+ #ifdef __ILP32__
+ ABI=x32
+ #endif
+ #endif
+EOF
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+ eval "$cc_set_abi"
+ case $ABI in
+ x86) CPU=i686 ;;
+ x32) LIBCABI=${LIBC}x32 ;;
+ esac
+ fi
+ GUESS=$CPU-pc-linux-$LIBCABI
+ ;;
xtensa*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
+ GUESS=i386-sequent-sysv4
+ ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
+ ;;
i*86:OS/2:*:*)
- # If we were able to find `uname', then EMX Unix compatibility
+ # If we were able to find 'uname', then EMX Unix compatibility
# is probably installed.
- echo ${UNAME_MACHINE}-pc-os2-emx
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-os2-emx
+ ;;
i*86:XTS-300:*:STOP)
- echo ${UNAME_MACHINE}-unknown-stop
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-stop
+ ;;
i*86:atheos:*:*)
- echo ${UNAME_MACHINE}-unknown-atheos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-atheos
+ ;;
i*86:syllable:*:*)
- echo ${UNAME_MACHINE}-pc-syllable
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-syllable
+ ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=i386-unknown-lynxos$UNAME_RELEASE
+ ;;
i*86:*DOS:*:*)
- echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit ;;
- i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
- UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ GUESS=$UNAME_MACHINE-pc-msdosdjgpp
+ ;;
+ i*86:*:4.*:*)
+ UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
else
- echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
fi
- exit ;;
+ ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
@@ -1098,12 +1266,12 @@ EOF
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
- echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1113,11 +1281,11 @@ EOF
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
else
- echo ${UNAME_MACHINE}-pc-sysv32
+ GUESS=$UNAME_MACHINE-pc-sysv32
fi
- exit ;;
+ ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -1125,31 +1293,31 @@ EOF
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configure will decide that
# this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
+ GUESS=i586-pc-msdosdjgpp
+ ;;
Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
+ GUESS=i386-pc-mach3
+ ;;
paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
+ GUESS=i860-intel-osf1
+ ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
fi
- exit ;;
+ ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
- echo m68010-convergent-sysv
- exit ;;
+ GUESS=m68010-convergent-sysv
+ ;;
mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
+ GUESS=m68k-convergent-sysv
+ ;;
M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
+ GUESS=m68k-diab-dnix
+ ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
@@ -1157,9 +1325,9 @@ EOF
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& { echo i486-ncr-sysv4; exit; } ;;
@@ -1168,251 +1336,447 @@ EOF
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
- && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-unknown-lynxos$UNAME_RELEASE
+ ;;
mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
+ GUESS=m68k-atari-sysv4
+ ;;
TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=sparc-unknown-lynxos$UNAME_RELEASE
+ ;;
rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
+ ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
+ ;;
SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-dde-sysv$UNAME_RELEASE
+ ;;
RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo ${UNAME_MACHINE}-sni-sysv4
+ GUESS=$UNAME_MACHINE-sni-sysv4
else
- echo ns32k-sni-sysv
+ GUESS=ns32k-sni-sysv
fi
- exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ ;;
+ PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
+ GUESS=i586-unisys-sysv4
+ ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
+ GUESS=hppa1.1-stratus-sysv4
+ ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
+ GUESS=i860-stratus-sysv4
+ ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- echo ${UNAME_MACHINE}-stratus-vos
- exit ;;
+ GUESS=$UNAME_MACHINE-stratus-vos
+ ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
+ GUESS=hppa1.1-stratus-vos
+ ;;
mc68*:A/UX:*:*)
- echo m68k-apple-aux${UNAME_RELEASE}
- exit ;;
+ GUESS=m68k-apple-aux$UNAME_RELEASE
+ ;;
news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
+ GUESS=mips-sony-newsos6
+ ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv${UNAME_RELEASE}
+ if test -d /usr/nec; then
+ GUESS=mips-nec-sysv$UNAME_RELEASE
else
- echo mips-unknown-sysv${UNAME_RELEASE}
+ GUESS=mips-unknown-sysv$UNAME_RELEASE
fi
- exit ;;
+ ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
+ GUESS=powerpc-be-beos
+ ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
+ GUESS=powerpc-apple-beos
+ ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
+ GUESS=i586-pc-beos
+ ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
- x86_64:Haiku:*:*)
- echo x86_64-unknown-haiku
- exit ;;
+ GUESS=i586-pc-haiku
+ ;;
+ ppc:Haiku:*:*) # Haiku running on Apple PowerPC
+ GUESS=powerpc-apple-haiku
+ ;;
+ *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
+ GUESS=$UNAME_MACHINE-unknown-haiku
+ ;;
SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx4-nec-superux$UNAME_RELEASE
+ ;;
SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx5-nec-superux$UNAME_RELEASE
+ ;;
SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx6-nec-superux$UNAME_RELEASE
+ ;;
SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx7-nec-superux$UNAME_RELEASE
+ ;;
SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx8-nec-superux$UNAME_RELEASE
+ ;;
SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux${UNAME_RELEASE}
- exit ;;
+ GUESS=sx8r-nec-superux$UNAME_RELEASE
+ ;;
+ SX-ACE:SUPER-UX:*:*)
+ GUESS=sxace-nec-superux$UNAME_RELEASE
+ ;;
Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit ;;
+ GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
+ ;;
*:Rhapsody:*:*)
- echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
+ ;;
+ arm64:Darwin:*:*)
+ GUESS=aarch64-apple-darwin$UNAME_RELEASE
+ ;;
*:Darwin:*:*)
- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
- eval $set_cc_for_build
- if test "$UNAME_PROCESSOR" = unknown ; then
- UNAME_PROCESSOR=powerpc
+ UNAME_PROCESSOR=`uname -p`
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ if command -v xcode-select > /dev/null 2> /dev/null && \
+ ! xcode-select --print-path > /dev/null 2> /dev/null ; then
+ # Avoid executing cc if there is no toolchain installed as
+ # cc will be a stub that puts up a graphical alert
+ # prompting the user to install developer tools.
+ CC_FOR_BUILD=no_compiler_found
+ else
+ set_cc_for_build
fi
- if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
- if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
- (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
- grep IS_64BIT_ARCH >/dev/null
- then
- case $UNAME_PROCESSOR in
- i386) UNAME_PROCESSOR=x86_64 ;;
- powerpc) UNAME_PROCESSOR=powerpc64 ;;
- esac
- fi
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
fi
elif test "$UNAME_PROCESSOR" = i386 ; then
- # Avoid executing cc on OS X 10.9, as it ships with a stub
- # that puts up a graphical alert prompting to install
- # developer tools. Any system running Mac OS X 10.7 or
- # later (Darwin 11 and later) is required to have a 64-bit
- # processor. This is not true of the ARM version of Darwin
- # that Apple uses in portable devices.
- UNAME_PROCESSOR=x86_64
+ # uname -m returns i386 or x86_64
+ UNAME_PROCESSOR=$UNAME_MACHINE
fi
- echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
+ ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
- if test "$UNAME_PROCESSOR" = "x86"; then
+ if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
+ ;;
*:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
- NEO-?:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk${UNAME_RELEASE}
- exit ;;
+ GUESS=i386-pc-qnx
+ ;;
+ NEO-*:NONSTOP_KERNEL:*:*)
+ GUESS=neo-tandem-nsk$UNAME_RELEASE
+ ;;
NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk${UNAME_RELEASE}
- exit ;;
- NSR-?:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk${UNAME_RELEASE}
- exit ;;
+ GUESS=nse-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSR-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsr-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSV-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsv-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSX-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsx-tandem-nsk$UNAME_RELEASE
+ ;;
*:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
+ GUESS=mips-compaq-nonstopux
+ ;;
BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
+ GUESS=bs2000-siemens-sysv
+ ;;
DS/*:UNIX_System_V:*:*)
- echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit ;;
+ GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
+ ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
- if test "$cputype" = "386"; then
+ if test "${cputype-}" = 386; then
UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
+ elif test "x${cputype-}" != x; then
+ UNAME_MACHINE=$cputype
fi
- echo ${UNAME_MACHINE}-unknown-plan9
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-plan9
+ ;;
*:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
+ GUESS=pdp10-unknown-tops10
+ ;;
*:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
+ GUESS=pdp10-unknown-tenex
+ ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
+ GUESS=pdp10-dec-tops20
+ ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
+ GUESS=pdp10-xkl-tops20
+ ;;
*:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
+ GUESS=pdp10-unknown-tops20
+ ;;
*:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
+ GUESS=pdp10-unknown-its
+ ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit ;;
+ GUESS=mips-sei-seiux$UNAME_RELEASE
+ ;;
*:DragonFly:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
- exit ;;
+ DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
+ ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "${UNAME_MACHINE}" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
+ case $UNAME_MACHINE in
+ A*) GUESS=alpha-dec-vms ;;
+ I*) GUESS=ia64-dec-vms ;;
+ V*) GUESS=vax-dec-vms ;;
esac ;;
*:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
+ GUESS=i386-pc-xenix
+ ;;
i*86:skyos:*:*)
- echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
- exit ;;
+ SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
+ GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
+ ;;
i*86:rdos:*:*)
- echo ${UNAME_MACHINE}-pc-rdos
- exit ;;
- i*86:AROS:*:*)
- echo ${UNAME_MACHINE}-pc-aros
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-rdos
+ ;;
+ i*86:Fiwix:*:*)
+ GUESS=$UNAME_MACHINE-pc-fiwix
+ ;;
+ *:AROS:*:*)
+ GUESS=$UNAME_MACHINE-unknown-aros
+ ;;
x86_64:VMkernel:*:*)
- echo ${UNAME_MACHINE}-unknown-esx
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-esx
+ ;;
amd64:Isilon\ OneFS:*:*)
- echo x86_64-unknown-onefs
- exit ;;
+ GUESS=x86_64-unknown-onefs
+ ;;
+ *:Unleashed:*:*)
+ GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+ ;;
+ *:Ironclad:*:*)
+ GUESS=$UNAME_MACHINE-unknown-ironclad
+ ;;
+esac
+
+# Do we have a guess based on uname results?
+if test "x$GUESS" != x; then
+ echo "$GUESS"
+ exit
+fi
+
+# No uname command or uname output not recognized.
+set_cc_for_build
+cat > "$dummy.c" <<EOF
+#ifdef _SEQUENT_
+#include <sys/types.h>
+#include <sys/utsname.h>
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#endif
+#endif
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+#include <sys/param.h>
+#if defined (BSD)
+#if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+#else
+#if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#endif
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#else
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname un;
+ uname (&un);
+ printf ("vax-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname *un;
+ uname (&un);
+ printf ("mips-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("mips-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
+
+echo "$0: unable to guess system type" >&2
+
+case $UNAME_MACHINE:$UNAME_SYSTEM in
+ mips:Linux | mips64:Linux)
+ # If we got here on MIPS GNU/Linux, output extra information.
+ cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+ ;;
esac
cat >&2 <<EOF
-$0: unable to guess system type
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
and
- http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+EOF
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
+our_year=`echo $timestamp | sed 's,-.*,,'`
+thisyear=`date +%Y`
+# shellcheck disable=SC2003
+script_age=`expr "$thisyear" - "$our_year"`
+if test "$script_age" -lt 3 ; then
+ cat >&2 <<EOF
+
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
config.guess timestamp = $timestamp
@@ -1431,16 +1795,17 @@ hostinfo = `(hostinfo) 2>/dev/null`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
EOF
+fi
exit 1
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff --git a/scripts/config.sub b/scripts/config.sub
index 6c22a0f56..2c6a07ab3 100755
--- a/scripts/config.sub
+++ b/scripts/config.sub
@@ -1,12 +1,14 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2015 Free Software Foundation, Inc.
+# Copyright 1992-2024 Free Software Foundation, Inc.
-timestamp='2015-11-22'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2024-01-01'
# This file 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 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -15,7 +17,7 @@ timestamp='2015-11-22'
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
@@ -33,7 +35,7 @@ timestamp='2015-11-22'
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
@@ -50,6 +52,13 @@ timestamp='2015-11-22'
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
@@ -57,7 +66,7 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
Canonicalize a configuration name.
-Operation modes:
+Options:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
@@ -67,13 +76,13 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
-Try \`$me --help' for more information."
+Try '$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
@@ -89,12 +98,12 @@ while test $# -gt 0 ; do
- ) # Use stdin as input.
break ;;
-* )
- echo "$me: invalid option $1$help"
+ echo "$me: invalid option $1$help" >&2
exit 1 ;;
*local*)
# First pass through any local machine types.
- echo $1
+ echo "$1"
exit ;;
* )
@@ -110,1236 +119,1167 @@ case $# in
exit 1;;
esac
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
- linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
- knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
- kopensolaris*-gnu* | \
- storm-chaos* | os2-emx* | rtmk-nova*)
- os=-$maybe_os
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
- ;;
- android-linux)
- os=-linux-android
- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
- ;;
- *)
- basic_machine=`echo $1 | sed 's/-[^-]*$//'`
- if [ $basic_machine != $1 ]
- then os=`echo $1 | sed 's/.*-/-/'`
- else os=; fi
- ;;
-esac
+# Split fields of configuration type
+# shellcheck disable=SC2162
+saved_IFS=$IFS
+IFS="-" read field1 field2 field3 field4 <<EOF
+$1
+EOF
+IFS=$saved_IFS
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work. We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
- -sun*os*)
- # Prevent following clause from handling this invalid input.
- ;;
- -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
- -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
- -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
- -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
- -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis | -knuth | -cray | -microblaze*)
- os=
- basic_machine=$1
- ;;
- -bluegene*)
- os=-cnk
- ;;
- -sim | -cisco | -oki | -wec | -winbond)
- os=
- basic_machine=$1
- ;;
- -scout)
- ;;
- -wrs)
- os=-vxworks
- basic_machine=$1
- ;;
- -chorusos*)
- os=-chorusos
- basic_machine=$1
- ;;
- -chorusrdb)
- os=-chorusrdb
- basic_machine=$1
- ;;
- -hiux*)
- os=-hiuxwe2
- ;;
- -sco6)
- os=-sco5v6
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5)
- os=-sco3.2v5
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco4)
- os=-sco3.2v4
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2.[4-9]*)
- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco3.2v[4-9]*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco5v6*)
- # Don't forget version if it is 3.2v4 or newer.
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -sco*)
- os=-sco3.2v2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -udk*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -isc)
- os=-isc2.2
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -clix*)
- basic_machine=clipper-intergraph
- ;;
- -isc*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
- ;;
- -lynx*178)
- os=-lynxos178
- ;;
- -lynx*5)
- os=-lynxos5
- ;;
- -lynx*)
- os=-lynxos
+# Separate into logical components for further validation
+case $1 in
+ *-*-*-*-*)
+ echo "Invalid configuration '$1': more than four components" >&2
+ exit 1
;;
- -ptx*)
- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ *-*-*-*)
+ basic_machine=$field1-$field2
+ basic_os=$field3-$field4
;;
- -windowsnt*)
- os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ *-*-*)
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+ # parts
+ maybe_os=$field2-$field3
+ case $maybe_os in
+ nto-qnx* | linux-* | uclinux-uclibc* \
+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+ | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
+ | windows-* )
+ basic_machine=$field1
+ basic_os=$maybe_os
+ ;;
+ android-linux)
+ basic_machine=$field1-unknown
+ basic_os=linux-android
+ ;;
+ *)
+ basic_machine=$field1-$field2
+ basic_os=$field3
+ ;;
+ esac
;;
- -psos*)
- os=-psos
+ *-*)
+ # A lone config we happen to match not fitting any pattern
+ case $field1-$field2 in
+ decstation-3100)
+ basic_machine=mips-dec
+ basic_os=
+ ;;
+ *-*)
+ # Second component is usually, but not always the OS
+ case $field2 in
+ # Prevent following clause from handling this valid os
+ sun*os*)
+ basic_machine=$field1
+ basic_os=$field2
+ ;;
+ zephyr*)
+ basic_machine=$field1-unknown
+ basic_os=$field2
+ ;;
+ # Manufacturers
+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+ | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+ | convergent* | ncr* | news | 32* | 3600* | 3100* \
+ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+ | ultra | tti* | harris | dolphin | highlevel | gould \
+ | cbm | ns | masscomp | apple | axis | knuth | cray \
+ | microblaze* | sim | cisco \
+ | oki | wec | wrs | winbond)
+ basic_machine=$field1-$field2
+ basic_os=
+ ;;
+ *)
+ basic_machine=$field1
+ basic_os=$field2
+ ;;
+ esac
+ ;;
+ esac
;;
- -mint | -mint[0-9]*)
- basic_machine=m68k-atari
- os=-mint
+ *)
+ # Convert single-component short-hands not valid as part of
+ # multi-component configurations.
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+ basic_os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ basic_os=scout
+ ;;
+ alliant)
+ basic_machine=fx80-alliant
+ basic_os=
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ basic_os=
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ basic_os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ basic_os=sysv
+ ;;
+ amiga)
+ basic_machine=m68k-unknown
+ basic_os=
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ basic_os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ basic_os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ basic_os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ basic_os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ basic_os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ basic_os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ basic_os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ basic_os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ basic_os=cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ basic_os=bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ basic_os=bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ basic_os=bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ basic_os=bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ basic_os=bsd
+ ;;
+ cray)
+ basic_machine=j90-cray
+ basic_os=unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ basic_os=
+ ;;
+ da30)
+ basic_machine=m68k-da30
+ basic_os=
+ ;;
+ decstation | pmax | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ basic_os=
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ basic_os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ basic_os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ basic_os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ basic_os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ basic_os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ basic_os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ basic_os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ basic_os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ basic_os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ basic_os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ basic_os=sysv3
+ ;;
+ hp300 | hp300hpux)
+ basic_machine=m68k-hp
+ basic_os=hpux
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ basic_os=bsd
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ basic_os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ basic_os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ basic_os=mach
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ basic_os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ basic_os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ basic_os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ basic_os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ basic_os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ basic_os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ basic_os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ basic_os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ basic_os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ basic_os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ basic_os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+ basic_os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ basic_os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ basic_os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ basic_os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-pc
+ basic_os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ basic_os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ basic_os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ basic_os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ basic_os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ basic_os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ basic_os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ basic_os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ basic_os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ basic_os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ basic_os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ basic_os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ basic_os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ basic_os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ basic_os=linux
+ ;;
+ psp)
+ basic_machine=mipsallegrexel-sony
+ basic_os=psp
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ basic_os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ basic_os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ basic_os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ basic_os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+ basic_os=seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ basic_os=
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ basic_os=sysv2
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ basic_os=
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ basic_os=sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ basic_os=
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ basic_os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ basic_os=sunos4
+ ;;
+ sun3)
+ basic_machine=m68k-sun
+ basic_os=
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ basic_os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ basic_os=sunos4
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ basic_os=
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ basic_os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ basic_os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ basic_os=solaris2
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ basic_os=
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ basic_os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ basic_os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ basic_os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ basic_os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ basic_os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ basic_os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ basic_os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ basic_os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ basic_os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ basic_os=vms
+ ;;
+ vsta)
+ basic_machine=i386-pc
+ basic_os=vsta
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ basic_os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ basic_os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ basic_os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ basic_os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ basic_os=unicos
+ ;;
+ *)
+ basic_machine=$1
+ basic_os=
+ ;;
+ esac
;;
esac
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
case $basic_machine in
- # Recognize the basic CPU types without company name.
- # Some are omitted here because they have special meanings below.
- 1750a | 580 \
- | a29k \
- | aarch64 | aarch64_be \
- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
- | am33_2.0 \
- | arc | arceb \
- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
- | avr | avr32 \
- | ba \
- | be32 | be64 \
- | bfin \
- | c4x | c8051 | clipper \
- | csky \
- | d10v | d30v | dlx | dsp16xx \
- | e2k | epiphany \
- | fido | fr30 | frv | ft32 \
- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
- | hexagon \
- | i370 | i860 | i960 | ia64 \
- | ip2k | iq2000 \
- | k1om \
- | le32 | le64 \
- | lm32 \
- | m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
- | mips | mipsbe | mipseb | mipsel | mipsle \
- | mips16 \
- | mips64 | mips64el \
- | mips64octeon | mips64octeonel \
- | mips64orion | mips64orionel \
- | mips64r5900 | mips64r5900el \
- | mips64vr | mips64vrel \
- | mips64vr4100 | mips64vr4100el \
- | mips64vr4300 | mips64vr4300el \
- | mips64vr5000 | mips64vr5000el \
- | mips64vr5900 | mips64vr5900el \
- | mipsisa32 | mipsisa32el \
- | mipsisa32r2 | mipsisa32r2el \
- | mipsisa32r6 | mipsisa32r6el \
- | mipsisa64 | mipsisa64el \
- | mipsisa64r2 | mipsisa64r2el \
- | mipsisa64r6 | mipsisa64r6el \
- | mipsisa64sb1 | mipsisa64sb1el \
- | mipsisa64sr71k | mipsisa64sr71kel \
- | mipsr5900 | mipsr5900el \
- | mipstx39 | mipstx39el \
- | mn10200 | mn10300 \
- | moxie \
- | mt \
- | msp430 \
- | nds32 | nds32le | nds32be \
- | nios | nios2 | nios2eb | nios2el \
- | ns16k | ns32k \
- | open8 | or1k | or1knd | or32 \
- | pdp10 | pdp11 | pj | pjl \
- | powerpc | powerpc64 | powerpc64le | powerpcle \
- | pyramid \
- | riscv32 | riscv64 \
- | rl78 | rx \
- | score \
- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
- | sh64 | sh64le \
- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
- | spu \
- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
- | ubicom32 \
- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
- | visium \
- | we32k \
- | x86 | xc16x | xstormy16 | xtensa \
- | z8k | z80)
- basic_machine=$basic_machine-unknown
- ;;
- c54x)
- basic_machine=tic54x-unknown
- ;;
- c55x)
- basic_machine=tic55x-unknown
- ;;
- c6x)
- basic_machine=tic6x-unknown
- ;;
- leon|leon[3-9])
- basic_machine=sparc-$basic_machine
- ;;
- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
- basic_machine=$basic_machine-unknown
- os=-none
+ # Here we handle the default manufacturer of certain CPU types. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ cpu=hppa1.1
+ vendor=winbond
;;
- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ op50n)
+ cpu=hppa1.1
+ vendor=oki
;;
- ms1)
- basic_machine=mt-unknown
+ op60c)
+ cpu=hppa1.1
+ vendor=oki
;;
-
- strongarm | thumb | xscale)
- basic_machine=arm-unknown
+ ibm*)
+ cpu=i370
+ vendor=ibm
;;
- xgate)
- basic_machine=$basic_machine-unknown
- os=-none
+ orion105)
+ cpu=clipper
+ vendor=highlevel
;;
- xscaleeb)
- basic_machine=armeb-unknown
+ mac | mpw | mac-mpw)
+ cpu=m68k
+ vendor=apple
;;
-
- xscaleel)
- basic_machine=armel-unknown
+ pmac | pmac-mpw)
+ cpu=powerpc
+ vendor=apple
;;
- # We use `pc' rather than `unknown'
- # because (1) that's what they normally are, and
- # (2) the word "unknown" tends to confuse beginning users.
- i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
- # Object if more than one company name word.
- *-*-*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
- ;;
- # Recognize the basic CPU types with company name.
- 580-* \
- | a29k-* \
- | aarch64-* | aarch64_be-* \
- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
- | avr-* | avr32-* \
- | ba-* \
- | be32-* | be64-* \
- | bfin-* | bs2000-* \
- | c[123]* | c30-* | [cjt]90-* | c4x-* \
- | c8051-* | clipper-* | craynv-* | cydra-* \
- | csky-* \
- | d10v-* | d30v-* | dlx-* \
- | e2k-* | elxsi-* \
- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
- | h8300-* | h8500-* \
- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
- | hexagon-* \
- | i*86-* | i860-* | i960-* | ia64-* \
- | ip2k-* | iq2000-* \
- | k1om-* \
- | le32-* | le64-* \
- | lm32-* \
- | m32c-* | m32r-* | m32rle-* \
- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
- | microblaze-* | microblazeel-* \
- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
- | mips16-* \
- | mips64-* | mips64el-* \
- | mips64octeon-* | mips64octeonel-* \
- | mips64orion-* | mips64orionel-* \
- | mips64r5900-* | mips64r5900el-* \
- | mips64vr-* | mips64vrel-* \
- | mips64vr4100-* | mips64vr4100el-* \
- | mips64vr4300-* | mips64vr4300el-* \
- | mips64vr5000-* | mips64vr5000el-* \
- | mips64vr5900-* | mips64vr5900el-* \
- | mipsisa32-* | mipsisa32el-* \
- | mipsisa32r2-* | mipsisa32r2el-* \
- | mipsisa32r6-* | mipsisa32r6el-* \
- | mipsisa64-* | mipsisa64el-* \
- | mipsisa64r2-* | mipsisa64r2el-* \
- | mipsisa64r6-* | mipsisa64r6el-* \
- | mipsisa64sb1-* | mipsisa64sb1el-* \
- | mipsisa64sr71k-* | mipsisa64sr71kel-* \
- | mipsr5900-* | mipsr5900el-* \
- | mipstx39-* | mipstx39el-* \
- | mmix-* \
- | mt-* \
- | msp430-* \
- | nds32-* | nds32le-* | nds32be-* \
- | nios-* | nios2-* | nios2eb-* | nios2el-* \
- | none-* | np1-* | ns16k-* | ns32k-* \
- | open8-* \
- | or1k*-* \
- | orion-* \
- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
- | pyramid-* \
- | riscv32-* | riscv64-* \
- | rl78-* | romp-* | rs6000-* | rx-* \
- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[234]eb-* | sheb-* | shbe-* \
- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
- | sparclite-* \
- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
- | tahoe-* \
- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
- | tile*-* \
- | tron-* \
- | ubicom32-* \
- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
- | vax-* \
- | visium-* \
- | we32k-* \
- | x86-* | x86_64-* | xc16x-* | xps100-* \
- | xstormy16-* | xtensa*-* \
- | ymp-* \
- | z8k-* | z80-*)
- ;;
- # Recognize the basic CPU types without company name, with glob match.
- xtensa*)
- basic_machine=$basic_machine-unknown
- ;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
- 386bsd)
- basic_machine=i386-unknown
- os=-bsd
- ;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
- basic_machine=m68000-att
+ cpu=m68000
+ vendor=att
;;
3b*)
- basic_machine=we32k-att
- ;;
- a29khif)
- basic_machine=a29k-amd
- os=-udi
- ;;
- abacus)
- basic_machine=abacus-unknown
- ;;
- adobe68k)
- basic_machine=m68010-adobe
- os=-scout
- ;;
- alliant | fx80)
- basic_machine=fx80-alliant
- ;;
- altos | altos3068)
- basic_machine=m68k-altos
- ;;
- am29k)
- basic_machine=a29k-none
- os=-bsd
- ;;
- amd64)
- basic_machine=x86_64-pc
- ;;
- amd64-*)
- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- amdahl)
- basic_machine=580-amdahl
- os=-sysv
- ;;
- amiga | amiga-*)
- basic_machine=m68k-unknown
- ;;
- amigaos | amigados)
- basic_machine=m68k-unknown
- os=-amigaos
- ;;
- amigaunix | amix)
- basic_machine=m68k-unknown
- os=-sysv4
- ;;
- apollo68)
- basic_machine=m68k-apollo
- os=-sysv
- ;;
- apollo68bsd)
- basic_machine=m68k-apollo
- os=-bsd
- ;;
- aros)
- basic_machine=i386-pc
- os=-aros
- ;;
- asmjs)
- basic_machine=asmjs-unknown
- ;;
- aux)
- basic_machine=m68k-apple
- os=-aux
- ;;
- balance)
- basic_machine=ns32k-sequent
- os=-dynix
- ;;
- blackfin)
- basic_machine=bfin-unknown
- os=-linux
- ;;
- blackfin-*)
- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=we32k
+ vendor=att
;;
bluegene*)
- basic_machine=powerpc-ibm
- os=-cnk
- ;;
- c54x-*)
- basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c55x-*)
- basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c6x-*)
- basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- c90)
- basic_machine=c90-cray
- os=-unicos
- ;;
- cegcc)
- basic_machine=arm-unknown
- os=-cegcc
- ;;
- convex-c1)
- basic_machine=c1-convex
- os=-bsd
- ;;
- convex-c2)
- basic_machine=c2-convex
- os=-bsd
- ;;
- convex-c32)
- basic_machine=c32-convex
- os=-bsd
- ;;
- convex-c34)
- basic_machine=c34-convex
- os=-bsd
- ;;
- convex-c38)
- basic_machine=c38-convex
- os=-bsd
- ;;
- cray | j90)
- basic_machine=j90-cray
- os=-unicos
- ;;
- craynv)
- basic_machine=craynv-cray
- os=-unicosmp
- ;;
- cr16 | cr16-*)
- basic_machine=cr16-unknown
- os=-elf
- ;;
- crds | unos)
- basic_machine=m68k-crds
- ;;
- crisv32 | crisv32-* | etraxfs*)
- basic_machine=crisv32-axis
- ;;
- cris | cris-* | etrax*)
- basic_machine=cris-axis
- ;;
- crx)
- basic_machine=crx-unknown
- os=-elf
- ;;
- da30 | da30-*)
- basic_machine=m68k-da30
- ;;
- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
- basic_machine=mips-dec
+ cpu=powerpc
+ vendor=ibm
+ basic_os=cnk
;;
decsystem10* | dec10*)
- basic_machine=pdp10-dec
- os=-tops10
+ cpu=pdp10
+ vendor=dec
+ basic_os=tops10
;;
decsystem20* | dec20*)
- basic_machine=pdp10-dec
- os=-tops20
+ cpu=pdp10
+ vendor=dec
+ basic_os=tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
- basic_machine=m68k-motorola
+ cpu=m68k
+ vendor=motorola
;;
- delta88)
- basic_machine=m88k-motorola
- os=-sysv3
- ;;
- dicos)
- basic_machine=i686-pc
- os=-dicos
- ;;
- djgpp)
- basic_machine=i586-pc
- os=-msdosdjgpp
- ;;
- dpx20 | dpx20-*)
- basic_machine=rs6000-bull
- os=-bosx
- ;;
- dpx2* | dpx2*-bull)
- basic_machine=m68k-bull
- os=-sysv3
- ;;
- ebmon29k)
- basic_machine=a29k-amd
- os=-ebmon
- ;;
- elxsi)
- basic_machine=elxsi-elxsi
- os=-bsd
+ dpx2*)
+ cpu=m68k
+ vendor=bull
+ basic_os=sysv3
;;
encore | umax | mmax)
- basic_machine=ns32k-encore
+ cpu=ns32k
+ vendor=encore
;;
- es1800 | OSE68k | ose68k | ose | OSE)
- basic_machine=m68k-ericsson
- os=-ose
+ elxsi)
+ cpu=elxsi
+ vendor=elxsi
+ basic_os=${basic_os:-bsd}
;;
fx2800)
- basic_machine=i860-alliant
+ cpu=i860
+ vendor=alliant
;;
genix)
- basic_machine=ns32k-ns
- ;;
- gmicro)
- basic_machine=tron-gmicro
- os=-sysv
- ;;
- go32)
- basic_machine=i386-pc
- os=-go32
+ cpu=ns32k
+ vendor=ns
;;
h3050r* | hiux*)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- h8300hms)
- basic_machine=h8300-hitachi
- os=-hms
- ;;
- h8300xray)
- basic_machine=h8300-hitachi
- os=-xray
- ;;
- h8500hms)
- basic_machine=h8500-hitachi
- os=-hms
- ;;
- harris)
- basic_machine=m88k-harris
- os=-sysv3
- ;;
- hp300-*)
- basic_machine=m68k-hp
- ;;
- hp300bsd)
- basic_machine=m68k-hp
- os=-bsd
- ;;
- hp300hpux)
- basic_machine=m68k-hp
- os=-hpux
+ cpu=hppa1.1
+ vendor=hitachi
+ basic_os=hiuxwe2
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
- basic_machine=m68000-hp
+ cpu=m68000
+ vendor=hp
;;
hp9k3[2-9][0-9])
- basic_machine=m68k-hp
+ cpu=m68k
+ vendor=hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
- basic_machine=hppa1.0-hp
+ cpu=hppa1.0
+ vendor=hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
- basic_machine=hppa1.1-hp
+ cpu=hppa1.1
+ vendor=hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
- basic_machine=hppa1.0-hp
- ;;
- hppa-next)
- os=-nextstep3
- ;;
- hppaosf)
- basic_machine=hppa1.1-hp
- os=-osf
- ;;
- hppro)
- basic_machine=hppa1.1-hp
- os=-proelf
- ;;
- i370-ibm* | ibm*)
- basic_machine=i370-ibm
+ cpu=hppa1.0
+ vendor=hp
;;
i*86v32)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv32
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv32
;;
i*86v4*)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv4
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv4
;;
i*86v)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-sysv
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv
;;
i*86sol2)
- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
- os=-solaris2
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=solaris2
;;
- i386mach)
- basic_machine=i386-mach
- os=-mach
- ;;
- i386-vsta | vsta)
- basic_machine=i386-unknown
- os=-vsta
+ j90 | j90-cray)
+ cpu=j90
+ vendor=cray
+ basic_os=${basic_os:-unicos}
;;
iris | iris4d)
- basic_machine=mips-sgi
- case $os in
- -irix*)
+ cpu=mips
+ vendor=sgi
+ case $basic_os in
+ irix*)
;;
*)
- os=-irix4
+ basic_os=irix4
;;
esac
;;
- isi68 | isi)
- basic_machine=m68k-isi
- os=-sysv
- ;;
- leon-*|leon[3-9]-*)
- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
- ;;
- m68knommu)
- basic_machine=m68k-unknown
- os=-linux
- ;;
- m68knommu-*)
- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
- ;;
- m88k-omron*)
- basic_machine=m88k-omron
- ;;
- magnum | m3230)
- basic_machine=mips-mips
- os=-sysv
- ;;
- merlin)
- basic_machine=ns32k-utek
- os=-sysv
- ;;
- microblaze*)
- basic_machine=microblaze-xilinx
- ;;
- mingw64)
- basic_machine=x86_64-pc
- os=-mingw64
- ;;
- mingw32)
- basic_machine=i686-pc
- os=-mingw32
- ;;
- mingw32ce)
- basic_machine=arm-unknown
- os=-mingw32ce
- ;;
miniframe)
- basic_machine=m68000-convergent
- ;;
- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
- basic_machine=m68k-atari
- os=-mint
- ;;
- mips3*-*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
- ;;
- mips3*)
- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
- ;;
- monitor)
- basic_machine=m68k-rom68k
- os=-coff
- ;;
- morphos)
- basic_machine=powerpc-unknown
- os=-morphos
- ;;
- moxiebox)
- basic_machine=moxie-unknown
- os=-moxiebox
- ;;
- msdos)
- basic_machine=i386-pc
- os=-msdos
- ;;
- ms1-*)
- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ cpu=m68000
+ vendor=convergent
;;
- msys)
- basic_machine=i686-pc
- os=-msys
- ;;
- mvs)
- basic_machine=i370-ibm
- os=-mvs
- ;;
- nacl)
- basic_machine=le32-unknown
- os=-nacl
- ;;
- ncr3000)
- basic_machine=i486-ncr
- os=-sysv4
- ;;
- netbsd386)
- basic_machine=i386-unknown
- os=-netbsd
- ;;
- netwinder)
- basic_machine=armv4l-rebel
- os=-linux
- ;;
- news | news700 | news800 | news900)
- basic_machine=m68k-sony
- os=-newsos
- ;;
- news1000)
- basic_machine=m68030-sony
- os=-newsos
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ cpu=m68k
+ vendor=atari
+ basic_os=mint
;;
news-3600 | risc-news)
- basic_machine=mips-sony
- os=-newsos
- ;;
- necv70)
- basic_machine=v70-nec
- os=-sysv
- ;;
- next | m*-next )
- basic_machine=m68k-next
- case $os in
- -nextstep* )
+ cpu=mips
+ vendor=sony
+ basic_os=newsos
+ ;;
+ next | m*-next)
+ cpu=m68k
+ vendor=next
+ case $basic_os in
+ openstep*)
+ ;;
+ nextstep*)
;;
- -ns2*)
- os=-nextstep2
+ ns2*)
+ basic_os=nextstep2
;;
*)
- os=-nextstep3
+ basic_os=nextstep3
;;
esac
;;
- nh3000)
- basic_machine=m68k-harris
- os=-cxux
- ;;
- nh[45]000)
- basic_machine=m88k-harris
- os=-cxux
- ;;
- nindy960)
- basic_machine=i960-intel
- os=-nindy
- ;;
- mon960)
- basic_machine=i960-intel
- os=-mon960
- ;;
- nonstopux)
- basic_machine=mips-compaq
- os=-nonstopux
- ;;
np1)
- basic_machine=np1-gould
- ;;
- neo-tandem)
- basic_machine=neo-tandem
- ;;
- nse-tandem)
- basic_machine=nse-tandem
- ;;
- nsr-tandem)
- basic_machine=nsr-tandem
+ cpu=np1
+ vendor=gould
;;
op50n-* | op60c-*)
- basic_machine=hppa1.1-oki
- os=-proelf
- ;;
- openrisc | openrisc-*)
- basic_machine=or32-unknown
- ;;
- os400)
- basic_machine=powerpc-ibm
- os=-os400
- ;;
- OSE68000 | ose68000)
- basic_machine=m68000-ericsson
- os=-ose
- ;;
- os68k)
- basic_machine=m68k-none
- os=-os68k
+ cpu=hppa1.1
+ vendor=oki
+ basic_os=proelf
;;
pa-hitachi)
- basic_machine=hppa1.1-hitachi
- os=-hiuxwe2
- ;;
- paragon)
- basic_machine=i860-intel
- os=-osf
- ;;
- parisc)
- basic_machine=hppa-unknown
- os=-linux
- ;;
- parisc-*)
- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
- os=-linux
+ cpu=hppa1.1
+ vendor=hitachi
+ basic_os=hiuxwe2
;;
pbd)
- basic_machine=sparc-tti
+ cpu=sparc
+ vendor=tti
;;
pbb)
- basic_machine=m68k-tti
- ;;
- pc532 | pc532-*)
- basic_machine=ns32k-pc532
+ cpu=m68k
+ vendor=tti
;;
- pc98)
- basic_machine=i386-pc
- ;;
- pc98-*)
- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium | p5 | k5 | k6 | nexgen | viac3)
- basic_machine=i586-pc
- ;;
- pentiumpro | p6 | 6x86 | athlon | athlon_*)
- basic_machine=i686-pc
- ;;
- pentiumii | pentium2 | pentiumiii | pentium3)
- basic_machine=i686-pc
- ;;
- pentium4)
- basic_machine=i786-pc
- ;;
- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumpro-* | p6-* | 6x86-* | athlon-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- pentium4-*)
- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ pc532)
+ cpu=ns32k
+ vendor=pc532
;;
pn)
- basic_machine=pn-gould
- ;;
- power) basic_machine=power-ibm
- ;;
- ppc | ppcbe) basic_machine=powerpc-unknown
- ;;
- ppc-* | ppcbe-*)
- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppcle | powerpclittle | ppc-le | powerpc-little)
- basic_machine=powerpcle-unknown
- ;;
- ppcle-* | powerpclittle-*)
- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ cpu=pn
+ vendor=gould
;;
- ppc64) basic_machine=powerpc64-unknown
- ;;
- ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
- ;;
- ppc64le | powerpc64little | ppc64-le | powerpc64-little)
- basic_machine=powerpc64le-unknown
- ;;
- ppc64le-* | powerpc64little-*)
- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ power)
+ cpu=power
+ vendor=ibm
;;
ps2)
- basic_machine=i386-ibm
- ;;
- pw32)
- basic_machine=i586-unknown
- os=-pw32
- ;;
- rdos | rdos64)
- basic_machine=x86_64-pc
- os=-rdos
- ;;
- rdos32)
- basic_machine=i386-pc
- os=-rdos
- ;;
- rom68k)
- basic_machine=m68k-rom68k
- os=-coff
+ cpu=i386
+ vendor=ibm
;;
rm[46]00)
- basic_machine=mips-siemens
+ cpu=mips
+ vendor=siemens
;;
rtpc | rtpc-*)
- basic_machine=romp-ibm
+ cpu=romp
+ vendor=ibm
;;
- s390 | s390-*)
- basic_machine=s390-ibm
- ;;
- s390x | s390x-*)
- basic_machine=s390x-ibm
- ;;
- sa29200)
- basic_machine=a29k-amd
- os=-udi
- ;;
- sb1)
- basic_machine=mipsisa64sb1-unknown
+ sde)
+ cpu=mipsisa32
+ vendor=sde
+ basic_os=${basic_os:-elf}
;;
- sb1el)
- basic_machine=mipsisa64sb1el-unknown
+ simso-wrs)
+ cpu=sparclite
+ vendor=wrs
+ basic_os=vxworks
;;
- sde)
- basic_machine=mipsisa32-sde
- os=-elf
+ tower | tower-32)
+ cpu=m68k
+ vendor=ncr
;;
- sei)
- basic_machine=mips-sei
- os=-seiux
+ vpp*|vx|vx-*)
+ cpu=f301
+ vendor=fujitsu
;;
- sequent)
- basic_machine=i386-sequent
+ w65)
+ cpu=w65
+ vendor=wdc
;;
- sh)
- basic_machine=sh-hitachi
- os=-hms
+ w89k-*)
+ cpu=hppa1.1
+ vendor=winbond
+ basic_os=proelf
;;
- sh5el)
- basic_machine=sh5le-unknown
+ none)
+ cpu=none
+ vendor=none
;;
- sh64)
- basic_machine=sh64-unknown
+ leon|leon[3-9])
+ cpu=sparc
+ vendor=$basic_machine
;;
- sparclite-wrs | simso-wrs)
- basic_machine=sparclite-wrs
- os=-vxworks
+ leon-*|leon[3-9]-*)
+ cpu=sparc
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
;;
- sps7)
- basic_machine=m68k-bull
- os=-sysv2
+
+ *-*)
+ # shellcheck disable=SC2162
+ saved_IFS=$IFS
+ IFS="-" read cpu vendor <<EOF
+$basic_machine
+EOF
+ IFS=$saved_IFS
+ ;;
+ # We use 'pc' rather than 'unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ cpu=$basic_machine
+ vendor=pc
;;
- spur)
- basic_machine=spur-unknown
+ # These rules are duplicated from below for sake of the special case above;
+ # i.e. things that normalized to x86 arches should also default to "pc"
+ pc98)
+ cpu=i386
+ vendor=pc
;;
- st2000)
- basic_machine=m68k-tandem
+ x64 | amd64)
+ cpu=x86_64
+ vendor=pc
;;
- stratus)
- basic_machine=i860-stratus
- os=-sysv4
+ # Recognize the basic CPU types without company name.
+ *)
+ cpu=$basic_machine
+ vendor=unknown
;;
- strongarm-* | thumb-*)
- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ craynv-unknown)
+ vendor=cray
+ basic_os=${basic_os:-unicosmp}
;;
- sun2)
- basic_machine=m68000-sun
+ c90-unknown | c90-cray)
+ vendor=cray
+ basic_os=${Basic_os:-unicos}
;;
- sun2os3)
- basic_machine=m68000-sun
- os=-sunos3
+ fx80-unknown)
+ vendor=alliant
;;
- sun2os4)
- basic_machine=m68000-sun
- os=-sunos4
+ romp-unknown)
+ vendor=ibm
;;
- sun3os3)
- basic_machine=m68k-sun
- os=-sunos3
+ mmix-unknown)
+ vendor=knuth
;;
- sun3os4)
- basic_machine=m68k-sun
- os=-sunos4
+ microblaze-unknown | microblazeel-unknown)
+ vendor=xilinx
;;
- sun4os3)
- basic_machine=sparc-sun
- os=-sunos3
+ rs6000-unknown)
+ vendor=ibm
;;
- sun4os4)
- basic_machine=sparc-sun
- os=-sunos4
+ vax-unknown)
+ vendor=dec
;;
- sun4sol2)
- basic_machine=sparc-sun
- os=-solaris2
+ pdp11-unknown)
+ vendor=dec
;;
- sun3 | sun3-*)
- basic_machine=m68k-sun
+ we32k-unknown)
+ vendor=att
;;
- sun4)
- basic_machine=sparc-sun
+ cydra-unknown)
+ vendor=cydrome
;;
- sun386 | sun386i | roadrunner)
- basic_machine=i386-sun
+ i370-ibm*)
+ vendor=ibm
;;
- sv1)
- basic_machine=sv1-cray
- os=-unicos
+ orion-unknown)
+ vendor=highlevel
;;
- symmetry)
- basic_machine=i386-sequent
- os=-dynix
+ xps-unknown | xps100-unknown)
+ cpu=xps100
+ vendor=honeywell
;;
- t3e)
- basic_machine=alphaev5-cray
- os=-unicos
+
+ # Here we normalize CPU types with a missing or matching vendor
+ armh-unknown | armh-alt)
+ cpu=armv7l
+ vendor=alt
+ basic_os=${basic_os:-linux-gnueabihf}
;;
- t90)
- basic_machine=t90-cray
- os=-unicos
+ dpx20-unknown | dpx20-bull)
+ cpu=rs6000
+ vendor=bull
+ basic_os=${basic_os:-bosx}
;;
- tile*)
- basic_machine=$basic_machine-unknown
- os=-linux-gnu
+
+ # Here we normalize CPU types irrespective of the vendor
+ amd64-*)
+ cpu=x86_64
;;
- tx39)
- basic_machine=mipstx39-unknown
+ blackfin-*)
+ cpu=bfin
+ basic_os=linux
;;
- tx39el)
- basic_machine=mipstx39el-unknown
+ c54x-*)
+ cpu=tic54x
;;
- toad1)
- basic_machine=pdp10-xkl
- os=-tops20
+ c55x-*)
+ cpu=tic55x
;;
- tower | tower-32)
- basic_machine=m68k-ncr
+ c6x-*)
+ cpu=tic6x
;;
- tpf)
- basic_machine=s390x-ibm
- os=-tpf
+ e500v[12]-*)
+ cpu=powerpc
+ basic_os=${basic_os}"spe"
;;
- udi29k)
- basic_machine=a29k-amd
- os=-udi
+ mips3*-*)
+ cpu=mips64
;;
- ultra3)
- basic_machine=a29k-nyu
- os=-sym1
+ ms1-*)
+ cpu=mt
;;
- v810 | necv810)
- basic_machine=v810-nec
- os=-none
+ m68knommu-*)
+ cpu=m68k
+ basic_os=linux
;;
- vaxv)
- basic_machine=vax-dec
- os=-sysv
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
;;
- vms)
- basic_machine=vax-dec
- os=-vms
+ openrisc-*)
+ cpu=or32
;;
- vpp*|vx|vx-*)
- basic_machine=f301-fujitsu
+ parisc-*)
+ cpu=hppa
+ basic_os=linux
;;
- vxworks960)
- basic_machine=i960-wrs
- os=-vxworks
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
;;
- vxworks68)
- basic_machine=m68k-wrs
- os=-vxworks
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
+ cpu=i686
;;
- vxworks29k)
- basic_machine=a29k-wrs
- os=-vxworks
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ cpu=i686
;;
- w65*)
- basic_machine=w65-wdc
- os=-none
+ pentium4-*)
+ cpu=i786
;;
- w89k-*)
- basic_machine=hppa1.1-winbond
- os=-proelf
+ pc98-*)
+ cpu=i386
;;
- xbox)
- basic_machine=i686-pc
- os=-mingw32
+ ppc-* | ppcbe-*)
+ cpu=powerpc
;;
- xps | xps100)
- basic_machine=xps100-honeywell
+ ppcle-* | powerpclittle-*)
+ cpu=powerpcle
;;
- xscale-* | xscalee[bl]-*)
- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ppc64-*)
+ cpu=powerpc64
;;
- ymp)
- basic_machine=ymp-cray
- os=-unicos
+ ppc64le-* | powerpc64little-*)
+ cpu=powerpc64le
;;
- z8k-*-coff)
- basic_machine=z8k-unknown
- os=-sim
+ sb1-*)
+ cpu=mipsisa64sb1
;;
- z80-*-coff)
- basic_machine=z80-unknown
- os=-sim
+ sb1el-*)
+ cpu=mipsisa64sb1el
;;
- none)
- basic_machine=none-none
- os=-none
+ sh5e[lb]-*)
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
;;
-
-# Here we handle the default manufacturer of certain CPU types. It is in
-# some cases the only manufacturer, in others, it is the most popular.
- w89k)
- basic_machine=hppa1.1-winbond
+ spur-*)
+ cpu=spur
;;
- op50n)
- basic_machine=hppa1.1-oki
+ strongarm-* | thumb-*)
+ cpu=arm
;;
- op60c)
- basic_machine=hppa1.1-oki
+ tx39-*)
+ cpu=mipstx39
;;
- romp)
- basic_machine=romp-ibm
+ tx39el-*)
+ cpu=mipstx39el
;;
- mmix)
- basic_machine=mmix-knuth
+ x64-*)
+ cpu=x86_64
;;
- rs6000)
- basic_machine=rs6000-ibm
+ xscale-* | xscalee[bl]-*)
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
- vax)
- basic_machine=vax-dec
+ arm64-* | aarch64le-*)
+ cpu=aarch64
;;
- pdp10)
- # there are many clones, so DEC is not a safe bet
- basic_machine=pdp10-unknown
+
+ # Recognize the canonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+ basic_os=${basic_os:-elf}
;;
- pdp11)
- basic_machine=pdp11-dec
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+ vendor=axis
;;
- we32k)
- basic_machine=we32k-att
+ cris-* | etrax*-*)
+ cpu=cris
+ vendor=axis
;;
- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
- basic_machine=sh-unknown
+ crx-*)
+ basic_os=${basic_os:-elf}
;;
- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
- basic_machine=sparc-sun
+ neo-tandem)
+ cpu=neo
+ vendor=tandem
;;
- cydra)
- basic_machine=cydra-cydrome
+ nse-tandem)
+ cpu=nse
+ vendor=tandem
;;
- orion)
- basic_machine=orion-highlevel
+ nsr-tandem)
+ cpu=nsr
+ vendor=tandem
;;
- orion105)
- basic_machine=clipper-highlevel
+ nsv-tandem)
+ cpu=nsv
+ vendor=tandem
;;
- mac | mpw | mac-mpw)
- basic_machine=m68k-apple
+ nsx-tandem)
+ cpu=nsx
+ vendor=tandem
;;
- pmac | pmac-mpw)
- basic_machine=powerpc-apple
+ mipsallegrexel-sony)
+ cpu=mipsallegrexel
+ vendor=sony
;;
- *-unknown)
- # Make sure to match an already-canonicalized machine name.
+ tile*-*)
+ basic_os=${basic_os:-linux-gnu}
;;
+
*)
- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
- exit 1
+ # Recognize the canonical CPU types that are allowed with any
+ # company name.
+ case $cpu in
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be | aarch64c | arm64ec \
+ | abacus \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+ | alphapca5[67] | alpha64pca5[67] \
+ | am33_2.0 \
+ | amdgcn \
+ | arc | arceb | arc32 | arc64 \
+ | arm | arm[lb]e | arme[lb] | armv* \
+ | avr | avr32 \
+ | asmjs \
+ | ba \
+ | be32 | be64 \
+ | bfin | bpf | bs2000 \
+ | c[123]* | c30 | [cjt]90 | c4x \
+ | c8051 | clipper | craynv | csky | cydra \
+ | d10v | d30v | dlx | dsp16xx \
+ | e2k | elxsi | epiphany \
+ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+ | javascript \
+ | h8300 | h8500 \
+ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+ | ip2k | iq2000 \
+ | k1om \
+ | kvx \
+ | le32 | le64 \
+ | lm32 \
+ | loongarch32 | loongarch64 \
+ | m32c | m32r | m32rle \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
+ | m88110 | m88k | maxq | mb | mcore | mep | metag \
+ | microblaze | microblazeel \
+ | mips* \
+ | mmix \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nanomips* \
+ | nds32 | nds32le | nds32be \
+ | nfp \
+ | nios | nios2 | nios2eb | nios2el \
+ | none | np1 | ns16k | ns32k | nvptx \
+ | open8 \
+ | or1k* \
+ | or32 \
+ | orion \
+ | picochip \
+ | pdp10 | pdp11 | pj | pjl | pn | power \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+ | pru \
+ | pyramid \
+ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
+ | rl78 | romp | rs6000 | rx \
+ | s390 | s390x \
+ | score \
+ | sh | shl \
+ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+ | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+ | spu \
+ | tahoe \
+ | thumbv7* \
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+ | tron \
+ | ubicom32 \
+ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | vax \
+ | vc4 \
+ | visium \
+ | w65 \
+ | wasm32 | wasm64 \
+ | we32k \
+ | x86 | x86_64 | xc16x | xgate | xps100 \
+ | xstormy16 | xtensa* \
+ | ymp \
+ | z8k | z80)
+ ;;
+
+ *)
+ echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
+ exit 1
+ ;;
+ esac
;;
esac
# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
- *-digital*)
- basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+case $vendor in
+ digital*)
+ vendor=dec
;;
- *-commodore*)
- basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ commodore*)
+ vendor=cbm
;;
*)
;;
@@ -1347,201 +1287,226 @@ esac
# Decode manufacturer-specific aliases for certain operating systems.
-if [ x"$os" != x"" ]
+if test x"$basic_os" != x
then
+
+# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
+# set os.
+obj=
+case $basic_os in
+ gnu/linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
+ ;;
+ os2-emx)
+ kernel=os2
+ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
+ ;;
+ nto-qnx*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
+ ;;
+ *-*)
+ # shellcheck disable=SC2162
+ saved_IFS=$IFS
+ IFS="-" read kernel os <<EOF
+$basic_os
+EOF
+ IFS=$saved_IFS
+ ;;
+ # Default OS when just kernel was specified
+ nto*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
+ ;;
+ linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
+ ;;
+ managarm*)
+ kernel=managarm
+ os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
+ ;;
+ *)
+ kernel=
+ os=$basic_os
+ ;;
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
- # -solaris* is a basic system type, with this one exception.
- -auroraux)
- os=-auroraux
+ # First match some system type aliases that might get confused
+ # with valid system types.
+ # solaris* is a basic system type, with this one exception.
+ auroraux)
+ os=auroraux
;;
- -solaris1 | -solaris1.*)
- os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ bluegene*)
+ os=cnk
;;
- -solaris)
- os=-solaris2
+ solaris1 | solaris1.*)
+ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
;;
- -svr4*)
- os=-sysv4
+ solaris)
+ os=solaris2
;;
- -unixware*)
- os=-sysv4.2uw
+ unixware*)
+ os=sysv4.2uw
;;
- -gnu/linux*)
- os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
;;
- # First accept the basic system types.
- # The portable systems comes first.
- # Each alternative MUST END IN A *, to match a version number.
- # -sysv* is not here because it comes later, after sysvr4.
- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
- | -sym* | -kopensolaris* | -plan9* \
- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
- | -aos* | -aros* | -cloudabi* | -sortix* \
- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
- | -bitrig* | -openbsd* | -solidbsd* \
- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
- | -chorusos* | -chorusrdb* | -cegcc* \
- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
- | -linux-newlib* | -linux-musl* | -linux-uclibc* \
- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
- | -onefs* | -tirtos*)
- # Remember, each alternative MUST END IN *, to match a version number.
- ;;
- -qnx*)
- case $basic_machine in
- x86-* | i*86-*)
- ;;
- *)
- os=-nto$os
- ;;
- esac
+ # Some version numbers need modification
+ chorusos*)
+ os=chorusos
;;
- -nto-qnx*)
+ isc)
+ os=isc2.2
;;
- -nto*)
- os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ sco6)
+ os=sco5v6
;;
- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ sco5)
+ os=sco3.2v5
;;
- -mac*)
- os=`echo $os | sed -e 's|mac|macos|'`
+ sco4)
+ os=sco3.2v4
;;
- -linux-dietlibc)
- os=-linux-dietlibc
+ sco3.2.[4-9]*)
+ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
;;
- -linux*)
- os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ sco*v* | scout)
+ # Don't match below
;;
- -sunos5*)
- os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ sco*)
+ os=sco3.2v2
;;
- -sunos6*)
- os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ psos*)
+ os=psos
;;
- -opened*)
- os=-openedition
+ qnx*)
+ os=qnx
;;
- -os400*)
- os=-os400
+ hiux*)
+ os=hiuxwe2
;;
- -wince*)
- os=-wince
+ lynx*178)
+ os=lynxos178
;;
- -osfrose*)
- os=-osfrose
+ lynx*5)
+ os=lynxos5
;;
- -osf*)
- os=-osf
+ lynxos*)
+ # don't get caught up in next wildcard
;;
- -utek*)
- os=-bsd
+ lynx*)
+ os=lynxos
;;
- -dynix*)
- os=-bsd
+ mac[0-9]*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
;;
- -acis*)
- os=-aos
+ opened*)
+ os=openedition
;;
- -atheos*)
- os=-atheos
+ os400*)
+ os=os400
;;
- -syllable*)
- os=-syllable
+ sunos5*)
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
;;
- -386bsd)
- os=-bsd
+ sunos6*)
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
;;
- -ctix* | -uts*)
- os=-sysv
+ wince*)
+ os=wince
;;
- -nova*)
- os=-rtmk-nova
+ utek*)
+ os=bsd
;;
- -ns2 )
- os=-nextstep2
+ dynix*)
+ os=bsd
;;
- -nsk*)
- os=-nsk
+ acis*)
+ os=aos
;;
- # Preserve the version number of sinix5.
- -sinix5.*)
- os=`echo $os | sed -e 's|sinix|sysv|'`
+ atheos*)
+ os=atheos
;;
- -sinix*)
- os=-sysv4
+ syllable*)
+ os=syllable
;;
- -tpf*)
- os=-tpf
+ 386bsd)
+ os=bsd
+ ;;
+ ctix* | uts*)
+ os=sysv
;;
- -triton*)
- os=-sysv3
+ nova*)
+ os=rtmk-nova
;;
- -oss*)
- os=-sysv3
+ ns2)
+ os=nextstep2
;;
- -svr4)
- os=-sysv4
+ # Preserve the version number of sinix5.
+ sinix5.*)
+ os=`echo "$os" | sed -e 's|sinix|sysv|'`
;;
- -svr3)
- os=-sysv3
+ sinix*)
+ os=sysv4
;;
- -sysvr4)
- os=-sysv4
+ tpf*)
+ os=tpf
;;
- # This must come after -sysvr4.
- -sysv*)
+ triton*)
+ os=sysv3
;;
- -ose*)
- os=-ose
+ oss*)
+ os=sysv3
;;
- -es1800*)
- os=-ose
+ svr4*)
+ os=sysv4
;;
- -xenix)
- os=-xenix
+ svr3)
+ os=sysv3
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
- os=-mint
+ sysvr4)
+ os=sysv4
;;
- -aros*)
- os=-aros
+ ose*)
+ os=ose
;;
- -zvmoe)
- os=-zvmoe
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
;;
- -dicos*)
- os=-dicos
+ dicos*)
+ os=dicos
;;
- -nacl*)
+ pikeos*)
+ # Until real need of OS specific support for
+ # particular features comes up, bare metal
+ # configurations are quite functional.
+ case $cpu in
+ arm*)
+ os=eabi
+ ;;
+ *)
+ os=
+ obj=elf
+ ;;
+ esac
;;
- -none)
+ aout* | coff* | elf* | pe*)
+ # These are machine code file formats, not OSes
+ obj=$os
+ os=
;;
*)
- # Get rid of the `-' at the beginning of $os.
- os=`echo $os | sed 's/[^-]*-//'`
- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
- exit 1
+ # No normalization, but not necessarily accepted, that comes below.
;;
esac
+
else
# Here we handle the default operating systems that come with various machines.
@@ -1554,261 +1519,452 @@ else
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
-case $basic_machine in
+kernel=
+obj=
+case $cpu-$vendor in
score-*)
- os=-elf
+ os=
+ obj=elf
;;
spu-*)
- os=-elf
+ os=
+ obj=elf
;;
*-acorn)
- os=-riscix1.2
+ os=riscix1.2
;;
arm*-rebel)
- os=-linux
+ kernel=linux
+ os=gnu
;;
arm*-semi)
- os=-aout
+ os=
+ obj=aout
;;
c4x-* | tic4x-*)
- os=-coff
+ os=
+ obj=coff
;;
c8051-*)
- os=-elf
+ os=
+ obj=elf
+ ;;
+ clipper-intergraph)
+ os=clix
;;
hexagon-*)
- os=-elf
+ os=
+ obj=elf
;;
tic54x-*)
- os=-coff
+ os=
+ obj=coff
;;
tic55x-*)
- os=-coff
+ os=
+ obj=coff
;;
tic6x-*)
- os=-coff
+ os=
+ obj=coff
;;
# This must come before the *-dec entry.
pdp10-*)
- os=-tops20
+ os=tops20
;;
pdp11-*)
- os=-none
+ os=none
;;
*-dec | vax-*)
- os=-ultrix4.2
+ os=ultrix4.2
;;
m68*-apollo)
- os=-domain
+ os=domain
;;
i386-sun)
- os=-sunos4.0.2
+ os=sunos4.0.2
;;
m68000-sun)
- os=-sunos3
+ os=sunos3
;;
m68*-cisco)
- os=-aout
+ os=
+ obj=aout
;;
mep-*)
- os=-elf
+ os=
+ obj=elf
;;
mips*-cisco)
- os=-elf
+ os=
+ obj=elf
;;
- mips*-*)
- os=-elf
+ mips*-*|nanomips*-*)
+ os=
+ obj=elf
;;
or32-*)
- os=-coff
+ os=
+ obj=coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
- os=-sysv3
+ os=sysv3
;;
sparc-* | *-sun)
- os=-sunos4.1.1
+ os=sunos4.1.1
;;
- *-be)
- os=-beos
+ pru-*)
+ os=
+ obj=elf
;;
- *-haiku)
- os=-haiku
+ *-be)
+ os=beos
;;
*-ibm)
- os=-aix
+ os=aix
;;
*-knuth)
- os=-mmixware
+ os=mmixware
;;
*-wec)
- os=-proelf
+ os=proelf
;;
*-winbond)
- os=-proelf
+ os=proelf
;;
*-oki)
- os=-proelf
+ os=proelf
;;
*-hp)
- os=-hpux
+ os=hpux
;;
*-hitachi)
- os=-hiux
+ os=hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
- os=-sysv
+ os=sysv
;;
*-cbm)
- os=-amigaos
+ os=amigaos
;;
*-dg)
- os=-dgux
+ os=dgux
;;
*-dolphin)
- os=-sysv3
+ os=sysv3
;;
m68k-ccur)
- os=-rtu
+ os=rtu
;;
m88k-omron*)
- os=-luna
+ os=luna
;;
- *-next )
- os=-nextstep
+ *-next)
+ os=nextstep
;;
*-sequent)
- os=-ptx
+ os=ptx
;;
*-crds)
- os=-unos
+ os=unos
;;
*-ns)
- os=-genix
+ os=genix
;;
i370-*)
- os=-mvs
- ;;
- *-next)
- os=-nextstep3
+ os=mvs
;;
*-gould)
- os=-sysv
+ os=sysv
;;
*-highlevel)
- os=-bsd
+ os=bsd
;;
*-encore)
- os=-bsd
+ os=bsd
;;
*-sgi)
- os=-irix
+ os=irix
;;
*-siemens)
- os=-sysv4
+ os=sysv4
;;
*-masscomp)
- os=-rtu
+ os=rtu
;;
f30[01]-fujitsu | f700-fujitsu)
- os=-uxpv
+ os=uxpv
;;
*-rom68k)
- os=-coff
+ os=
+ obj=coff
;;
*-*bug)
- os=-coff
+ os=
+ obj=coff
;;
*-apple)
- os=-macos
+ os=macos
;;
*-atari*)
- os=-mint
+ os=mint
+ ;;
+ *-wrs)
+ os=vxworks
;;
*)
- os=-none
+ os=none
;;
esac
+
fi
+# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
+
+case $os in
+ # Sometimes we do "kernel-libc", so those need to count as OSes.
+ llvm* | musl* | newlib* | relibc* | uclibc*)
+ ;;
+ # Likewise for "kernel-abi"
+ eabi* | gnueabi*)
+ ;;
+ # VxWorks passes extra cpu info in the 4th filed.
+ simlinux | simwindows | spe)
+ ;;
+ # See `case $cpu-$os` validation below
+ ghcjs)
+ ;;
+ # Now accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST end in a * to match a version number.
+ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
+ | hiux* | abug | nacl* | netware* | windows* \
+ | os9* | macos* | osx* | ios* | tvos* | watchos* \
+ | mpw* | magic* | mmixware* | mon960* | lnews* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
+ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+ | bosx* | nextstep* | cxux* | oabi* \
+ | ptx* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* | serenity* \
+ | cygwin* | msys* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | mint* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
+ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
+ | fiwix* | mlibc* | cos* | mbr* | ironclad* )
+ ;;
+ # This one is extra strict with allowed versions
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ # This refers to builds using the UEFI calling convention
+ # (which depends on the architecture) and PE file format.
+ # Note that this is both a different calling convention and
+ # different file format than that of GNU-EFI
+ # (x86_64-w64-mingw32).
+ uefi)
+ ;;
+ none)
+ ;;
+ kernel* | msvc* )
+ # Restricted further below
+ ;;
+ '')
+ if test x"$obj" = x
+ then
+ echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
+ fi
+ ;;
+ *)
+ echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
+ exit 1
+ ;;
+esac
+
+case $obj in
+ aout* | coff* | elf* | pe*)
+ ;;
+ '')
+ # empty is fine
+ ;;
+ *)
+ echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we handle the constraint that a (synthetic) cpu and os are
+# valid only in combination with each other and nowhere else.
+case $cpu-$os in
+ # The "javascript-unknown-ghcjs" triple is used by GHC; we
+ # accept it here in order to tolerate that, but reject any
+ # variations.
+ javascript-ghcjs)
+ ;;
+ javascript-* | *-ghcjs)
+ echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
+ exit 1
+ ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os-$obj in
+ linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
+ | linux-mlibc*- | linux-musl*- | linux-newlib*- \
+ | linux-relibc*- | linux-uclibc*- )
+ ;;
+ uclinux-uclibc*- )
+ ;;
+ managarm-mlibc*- | managarm-kernel*- )
+ ;;
+ windows*-msvc*-)
+ ;;
+ -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
+ | -uclibc*- )
+ # These are just libc implementations, not actual OSes, and thus
+ # require a kernel.
+ echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ -kernel*- )
+ echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ *-kernel*- )
+ echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
+ exit 1
+ ;;
+ *-msvc*- )
+ echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
+ exit 1
+ ;;
+ kfreebsd*-gnu*- | kopensolaris*-gnu*-)
+ ;;
+ vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
+ ;;
+ nto-qnx*-)
+ ;;
+ os2-emx-)
+ ;;
+ *-eabi*- | *-gnueabi*-)
+ ;;
+ none--*)
+ # None (no kernel, i.e. freestanding / bare metal),
+ # can be paired with an machine code file format
+ ;;
+ -*-)
+ # Blank kernel with real OS is always fine.
+ ;;
+ --*)
+ # Blank kernel and OS with real machine code file format is always fine.
+ ;;
+ *-*-*)
+ echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
+ exit 1
+ ;;
+esac
+
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
- *-unknown)
- case $os in
- -riscix*)
+case $vendor in
+ unknown)
+ case $cpu-$os in
+ *-riscix*)
vendor=acorn
;;
- -sunos*)
+ *-sunos*)
vendor=sun
;;
- -cnk*|-aix*)
+ *-cnk* | *-aix*)
vendor=ibm
;;
- -beos*)
+ *-beos*)
vendor=be
;;
- -hpux*)
+ *-hpux*)
vendor=hp
;;
- -mpeix*)
+ *-mpeix*)
vendor=hp
;;
- -hiux*)
+ *-hiux*)
vendor=hitachi
;;
- -unos*)
+ *-unos*)
vendor=crds
;;
- -dgux*)
+ *-dgux*)
vendor=dg
;;
- -luna*)
+ *-luna*)
vendor=omron
;;
- -genix*)
+ *-genix*)
vendor=ns
;;
- -mvs* | -opened*)
+ *-clix*)
+ vendor=intergraph
+ ;;
+ *-mvs* | *-opened*)
+ vendor=ibm
+ ;;
+ *-os400*)
vendor=ibm
;;
- -os400*)
+ s390-* | s390x-*)
vendor=ibm
;;
- -ptx*)
+ *-ptx*)
vendor=sequent
;;
- -tpf*)
+ *-tpf*)
vendor=ibm
;;
- -vxsim* | -vxworks* | -windiss*)
+ *-vxsim* | *-vxworks* | *-windiss*)
vendor=wrs
;;
- -aux*)
+ *-aux*)
vendor=apple
;;
- -hms*)
+ *-hms*)
vendor=hitachi
;;
- -mpw* | -macos*)
+ *-mpw* | *-macos*)
vendor=apple
;;
- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
vendor=atari
;;
- -vos*)
+ *-vos*)
vendor=stratus
;;
esac
- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
-echo $basic_machine$os
+echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
exit
# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
diff --git a/scripts/create-menu b/scripts/create-menu
index f650c1d1a..1a2aab3d0 100755
--- a/scripts/create-menu
+++ b/scripts/create-menu
@@ -15,7 +15,7 @@ printf "source target/config/Config.in.system.choice\n" >> target/config/Config.
if [ -d "$topdir/tasks" -o -n "$ADK_CUSTOM_TASKS_DIR" ];then
printf "# autogenerated via scripts/create-menu\n" > $topdir/target/config/Config.in.tasks
printf "menu \"Tasks\"\n" >> $topdir/target/config/Config.in.tasks
- printf "\tvisible if (ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX) && !ADK_TARGET_CHOOSE_ARCH\n\n" >> $topdir/target/config/Config.in.tasks
+ printf "\tvisible if ADK_TARGET_OS_LINUX && !ADK_TARGET_CHOOSE_ARCH\n\n" >> $topdir/target/config/Config.in.tasks
if [ -d "$topdir/tasks" ];then
cat $topdir/tasks/* >> $topdir/target/config/Config.in.tasks 2>/dev/null
@@ -98,7 +98,7 @@ config ADK_TARGET_CHOOSE_ARCH
bool "choose architecture"
EOD
-for os in linux waldux frosted rtems zephyr baremetal; do
+for os in linux baremetal; do
for arch in $(cat $topdir/target/$os/arch.lst);do
OS=$(echo $os | tr '[:lower:]' '[:upper:]')
ARCH=$(echo $arch | tr '[:lower:]' '[:upper:]')
diff --git a/scripts/create.sh b/scripts/create.sh
index 1d0c467d0..cee6b5bcb 100755
--- a/scripts/create.sh
+++ b/scripts/create.sh
@@ -2,7 +2,7 @@
#-
# Copyright © 2010, 2011, 2012
# Thorsten Glaser <tg@mirbsd.org>
-# Copyright © 2010-2014
+# Copyright © 2010-2024
# Waldemar Brodkorb <wbx@openadk.org>
#
# Provided that these terms and disclaimer and all copyright notices
@@ -56,7 +56,7 @@ Syntax: $me [-c cfgfssize] [+g] [-i imagesize] [-p panictime]
Explanation/Defaults:
-c: minimum 0, maximum 5, default 1 (MiB)
-g: enable installing GNU GRUB 2
- -i: total image, default 512 (MiB; max. approx. 2 TiB)
+ -i: total image, default 2048 (MiB; max. approx. 2 TiB)
-p: default 10 (seconds; 0 disables; max. 300)
-s: default 115200 (bps, others: 9600 19200 38400 57600)
-t: enable serial console (+t disables it, default)
@@ -67,7 +67,7 @@ EOF
cfgfs=1
usegrub=0
-tgtmib=512
+tgtmib=2048
panicreboot=10
speed=115200
serial=0
@@ -238,7 +238,7 @@ print -n "$ostr" | \
print Extracting installation archive...
mkdir "$T/src"
-xz -dc "$src" | (cd "$T/src"; tar -xpf -)
+gunzip -dc "$src" | (cd "$T/src"; tar -xpf -)
cd "$T/src"
rnddev=/dev/urandom
[[ -c /dev/arandom ]] && rnddev=/dev/arandom
@@ -275,7 +275,7 @@ fi
print "Creating ext2fs filesystem image..."
cd "$T"
f=0
-genext2fs -U -N 32768 -b $((partfssz)) -d src fsimg || f=1
+genext2fs -U -N 65536 -b $((partfssz)) -d src fsimg || f=1
if (( !f )); then
# use bc(1): this may be over the shell’s 32-bit arithmetics
wantsz=$($bc <<<"$((partfssz))*1024")
diff --git a/scripts/flash-uboot.sh b/scripts/flash-uboot.sh
new file mode 100755
index 000000000..e519d6a58
--- /dev/null
+++ b/scripts/flash-uboot.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+OUTPUT_DIR=$1
+
+if ! test -d "${OUTPUT_DIR}" ; then
+ echo "ERROR: no output directory specified."
+ echo "Usage: $0 OUTPUT_DIR"
+ echo ""
+ echo "Arguments:"
+ echo " OUTPUT_DIR The OpenADK output directory."
+ exit 1
+fi
+
+./host_x86_64-linux-gnu/usr/bin/openocd \
+ -f interface/stlink.cfg -f board/stm32f7discovery.cfg \
+-c "init" \
+-c "reset init" \
+-c "flash probe 0" \
+-c "flash info 0" \
+-c "flash write_image erase ${OUTPUT_DIR}/u-boot-dtb.bin 0x08000000" \
+-c "reset run" \
+-c "shutdown"
diff --git a/scripts/flash.sh b/scripts/flash.sh
new file mode 100755
index 000000000..d5343a7fb
--- /dev/null
+++ b/scripts/flash.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+OUTPUT_DIR=$1
+BOARD_NAME=${2:-stm32f429disc1}
+
+if ! test -d "${OUTPUT_DIR}" ; then
+ echo "ERROR: no output directory specified."
+ echo "Usage: $0 OUTPUT_DIR BOARD_NAME"
+ echo ""
+ echo "Arguments:"
+ echo " OUTPUT_DIR The OpenADK output directory."
+ echo " BOARD_NAME One of the available boards among:"
+ echo " stm32f429discovery, stm32f429disc1"
+ exit 1
+fi
+
+./host_x86_64-linux-gnu/usr/bin/openocd -f board/${BOARD_NAME}.cfg \
+ -c "init" \
+ -c "reset init" \
+ -c "flash probe 0" \
+ -c "flash info 0" \
+ -c "flash write_image erase ${OUTPUT_DIR}/stm32f429i-disco.bin 0x08000000" \
+ -c "flash write_image erase ${OUTPUT_DIR}/stm32f429-disco.dtb 0x08004000" \
+ -c "flash write_image erase ${OUTPUT_DIR}/st-stm32f429-initramfspiggyback-kernel 0x08008000" \
+ -c "reset run" \
+ -c "shutdown"
diff --git a/scripts/gen_initramfs_list.sh b/scripts/gen_initramfs_list.sh
new file mode 100755
index 000000000..2bbac73e6
--- /dev/null
+++ b/scripts/gen_initramfs_list.sh
@@ -0,0 +1,328 @@
+#!/bin/sh
+# Copyright (C) Martin Schlemmer <azarah@nosferatu.za.org>
+# Copyright (C) 2006 Sam Ravnborg <sam@ravnborg.org>
+#
+# Released under the terms of the GNU GPL
+#
+# Generate a cpio packed initramfs. It uses gen_init_cpio to generate
+# the cpio archive, and then compresses it.
+# The script may also be used to generate the inputfile used for gen_init_cpio
+# This script assumes that gen_init_cpio is located in usr/ directory
+
+# error out on errors
+set -e
+
+usage() {
+cat << EOF
+Usage:
+$0 [-o <file>] [-u <uid>] [-g <gid>] {-d | <cpio_source>} ...
+ -o <file> Create compressed initramfs file named <file> using
+ gen_init_cpio and compressor depending on the extension
+ -u <uid> User ID to map to user ID 0 (root).
+ <uid> is only meaningful if <cpio_source> is a
+ directory. "squash" forces all files to uid 0.
+ -g <gid> Group ID to map to group ID 0 (root).
+ <gid> is only meaningful if <cpio_source> is a
+ directory. "squash" forces all files to gid 0.
+ <cpio_source> File list or directory for cpio archive.
+ If <cpio_source> is a .cpio file it will be used
+ as direct input to initramfs.
+ -d Output the default cpio list.
+
+All options except -o and -l may be repeated and are interpreted
+sequentially and immediately. -u and -g states are preserved across
+<cpio_source> options so an explicit "-u 0 -g 0" is required
+to reset the root/group mapping.
+EOF
+}
+
+# awk style field access
+# $1 - field number; rest is argument string
+field() {
+ shift $1 ; echo $1
+}
+
+list_default_initramfs() {
+ # echo usr/kinit/kinit
+ :
+}
+
+default_initramfs() {
+ cat <<-EOF >> ${output}
+ # This is a very simple, default initramfs
+
+ dir /dev 0755 0 0
+ nod /dev/console 0600 0 0 c 5 1
+ dir /root 0700 0 0
+ # file /kinit usr/kinit/kinit 0755 0 0
+ # slink /init kinit 0755 0 0
+ EOF
+}
+
+filetype() {
+ local argv1="$1"
+
+ # symlink test must come before file test
+ if [ -L "${argv1}" ]; then
+ echo "slink"
+ elif [ -f "${argv1}" ]; then
+ echo "file"
+ elif [ -d "${argv1}" ]; then
+ echo "dir"
+ elif [ -b "${argv1}" -o -c "${argv1}" ]; then
+ echo "nod"
+ elif [ -p "${argv1}" ]; then
+ echo "pipe"
+ elif [ -S "${argv1}" ]; then
+ echo "sock"
+ else
+ echo "invalid"
+ fi
+ return 0
+}
+
+list_print_mtime() {
+ :
+}
+
+print_mtime() {
+ local my_mtime="0"
+
+ if [ -e "$1" ]; then
+ my_mtime=$(find "$1" -printf "%T@\n" | sort -r | head -n 1)
+ fi
+
+ echo "# Last modified: ${my_mtime}" >> ${output}
+ echo "" >> ${output}
+}
+
+list_parse() {
+ if [ -L "$1" ]; then
+ return
+ fi
+ echo "$1" | sed 's/:/\\:/g; s/$/ \\/'
+}
+
+# for each file print a line in following format
+# <filetype> <name> <path to file> <octal mode> <uid> <gid>
+# for links, devices etc the format differs. See gen_init_cpio for details
+parse() {
+ local location="$1"
+ local name="/${location#${srcdir}}"
+ # change '//' into '/'
+ name=$(echo "$name" | sed -e 's://*:/:g')
+ local mode="$2"
+ local uid="$3"
+ local gid="$4"
+ local ftype=$(filetype "${location}")
+ # remap uid/gid to 0 if necessary
+ [ "$root_uid" = "squash" ] && uid=0 || [ "$uid" -eq "$root_uid" ] && uid=0
+ [ "$root_gid" = "squash" ] && gid=0 || [ "$gid" -eq "$root_gid" ] && gid=0
+ local str="${mode} ${uid} ${gid}"
+
+ [ "${ftype}" = "invalid" ] && return 0
+ [ "${location}" = "${srcdir}" ] && return 0
+
+ case "${ftype}" in
+ "file")
+ str="${ftype} ${name} ${location} ${str}"
+ ;;
+ "nod")
+ local dev="`LC_ALL=C ls -l "${location}"`"
+ local maj=`field 5 ${dev}`
+ local min=`field 6 ${dev}`
+ maj=${maj%,}
+
+ [ -b "${location}" ] && dev="b" || dev="c"
+
+ str="${ftype} ${name} ${str} ${dev} ${maj} ${min}"
+ ;;
+ "slink")
+ local target=`readlink "${location}"`
+ str="${ftype} ${name} ${target} ${str}"
+ ;;
+ *)
+ str="${ftype} ${name} ${str}"
+ ;;
+ esac
+
+ echo "${str}" >> ${output}
+
+ return 0
+}
+
+unknown_option() {
+ printf "ERROR: unknown option \"$arg\"\n" >&2
+ printf "If the filename validly begins with '-', " >&2
+ printf "then it must be prefixed\n" >&2
+ printf "by './' so that it won't be interpreted as an option." >&2
+ printf "\n" >&2
+ usage >&2
+ exit 1
+}
+
+list_header() {
+ :
+}
+
+header() {
+ printf "\n#####################\n# $1\n" >> ${output}
+}
+
+# process one directory (incl sub-directories)
+dir_filelist() {
+ ${dep_list}header "$1"
+
+ srcdir=$(echo "$1" | sed -e 's://*:/:g')
+ dirlist=$(find "${srcdir}" -printf "%p %m %U %G\n" | LANG=C sort)
+
+ # If $dirlist is only one line, then the directory is empty
+ if [ "$(echo "${dirlist}" | wc -l)" -gt 1 ]; then
+ ${dep_list}print_mtime "$1"
+
+ echo "${dirlist}" | \
+ while read x; do
+ ${dep_list}parse ${x}
+ done
+ fi
+}
+
+# if only one file is specified and it is .cpio file then use it direct as fs
+# if a directory is specified then add all files in given direcotry to fs
+# if a regular file is specified assume it is in gen_initramfs format
+input_file() {
+ source="$1"
+ if [ -f "$1" ]; then
+ ${dep_list}header "$1"
+ is_cpio="$(echo "$1" | sed 's/^.*\.cpio\(\..*\)\{0,1\}/cpio/')"
+ if [ $2 -eq 0 -a ${is_cpio} = "cpio" ]; then
+ cpio_file=$1
+ echo "$1" | grep -q '^.*\.cpio\..*' && is_cpio_compressed="compressed"
+ [ ! -z ${dep_list} ] && echo "$1"
+ return 0
+ fi
+ if [ -z ${dep_list} ]; then
+ print_mtime "$1" >> ${output}
+ cat "$1" >> ${output}
+ else
+ echo "$1 \\"
+ cat "$1" | while read type dir file perm ; do
+ if [ "$type" = "file" ]; then
+ echo "$file \\";
+ fi
+ done
+ fi
+ elif [ -d "$1" ]; then
+ dir_filelist "$1"
+ else
+ echo " ${prog}: Cannot open '$1'" >&2
+ exit 1
+ fi
+}
+
+prog=$0
+root_uid=0
+root_gid=0
+dep_list=
+cpio_file=
+cpio_list=
+output="/dev/stdout"
+output_file=""
+is_cpio_compressed=
+compr="gzip -n -9 -f"
+
+arg="$1"
+case "$arg" in
+ "-l") # files included in initramfs - used by kbuild
+ dep_list="list_"
+ echo "deps_initramfs := $0 \\"
+ shift
+ ;;
+ "-o") # generate compressed cpio image named $1
+ shift
+ output_file="$1"
+ cpio_list="$(mktemp ${TMPDIR:-/tmp}/cpiolist.XXXXXX)"
+ output=${cpio_list}
+ echo "$output_file" | grep -q "\.gz$" \
+ && [ -x "`which gzip 2> /dev/null`" ] \
+ && compr="gzip -n -9 -f"
+ echo "$output_file" | grep -q "\.bz2$" \
+ && [ -x "`which bzip2 2> /dev/null`" ] \
+ && compr="bzip2 -9 -f"
+ echo "$output_file" | grep -q "\.lzma$" \
+ && [ -x "`which lzma 2> /dev/null`" ] \
+ && compr="lzma -9 -f"
+ echo "$output_file" | grep -q "\.xz$" \
+ && [ -x "`which xz 2> /dev/null`" ] \
+ && compr="xz --check=crc32 --lzma2=dict=1MiB"
+ echo "$output_file" | grep -q "\.lzo$" \
+ && [ -x "`which lzop 2> /dev/null`" ] \
+ && compr="lzop -9 -f"
+ echo "$output_file" | grep -q "\.lz4$" \
+ && [ -x "`which lz4 2> /dev/null`" ] \
+ && compr="lz4 -l -9 -f"
+ echo "$output_file" | grep -q "\.cpio$" && compr="cat"
+ shift
+ ;;
+esac
+while [ $# -gt 0 ]; do
+ arg="$1"
+ shift
+ case "$arg" in
+ "-u") # map $1 to uid=0 (root)
+ root_uid="$1"
+ [ "$root_uid" = "-1" ] && root_uid=$(id -u || echo 0)
+ shift
+ ;;
+ "-g") # map $1 to gid=0 (root)
+ root_gid="$1"
+ [ "$root_gid" = "-1" ] && root_gid=$(id -g || echo 0)
+ shift
+ ;;
+ "-d") # display default initramfs list
+ default_list="$arg"
+ ${dep_list}default_initramfs
+ ;;
+ "-h")
+ usage
+ exit 0
+ ;;
+ *)
+ case "$arg" in
+ "-"*)
+ unknown_option
+ ;;
+ *) # input file/dir - process it
+ input_file "$arg" "$#"
+ ;;
+ esac
+ ;;
+ esac
+done
+
+# If output_file is set we will generate cpio archive and compress it
+# we are careful to delete tmp files
+if [ ! -z ${output_file} ]; then
+ if [ -z ${cpio_file} ]; then
+ timestamp=
+ if test -n "$KBUILD_BUILD_TIMESTAMP"; then
+ timestamp="$(date -d"$KBUILD_BUILD_TIMESTAMP" +%s || :)"
+ if test -n "$timestamp"; then
+ timestamp="-t $timestamp"
+ fi
+ fi
+ cpio_tfile="$(mktemp ${TMPDIR:-/tmp}/cpiofile.XXXXXX)"
+ usr/gen_init_cpio $timestamp ${cpio_list} > ${cpio_tfile}
+ else
+ cpio_tfile=${cpio_file}
+ fi
+ rm ${cpio_list}
+ if [ "${is_cpio_compressed}" = "compressed" ]; then
+ cat ${cpio_tfile} > ${output_file}
+ else
+ (cat ${cpio_tfile} | ${compr} - > ${output_file}) \
+ || (rm -f ${output_file} ; false)
+ fi
+ [ -z ${cpio_file} ] && rm ${cpio_tfile}
+fi
+exit 0
diff --git a/scripts/install.sh b/scripts/install.sh
index 5f929b26a..867a4154f 100755
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
#-
-# Copyright © 2010-2017
+# Copyright © 2010-2023
# Waldemar Brodkorb <wbx@openadk.org>
# Thorsten Glaser <tg@mirbsd.org>
#
@@ -155,7 +155,7 @@ tgt=$2
src=$3
case $target {
-(banana-pro|orange-pi0|pcengines-apu|phytec-wega|raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|raspberry-pi3p|raspberry-pi3p-64|solidrun-imx6|solidrun-clearfog|default) ;;
+(atmel-ngw100|banana-pro|banana-pro-zero|orange-pi0|pcengines-apu|phytec-imx6|phytec-wega|raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|raspberry-pi4|raspberry-pi4-64|raspberry-pi5|rockpi4-plus|solidrun-imx6|solidrun-clearfog|imgtec-ci20|default) ;;
(*)
print -u2 "Unknown target '$target', exiting"
exit 1 ;;
@@ -178,7 +178,7 @@ case $ostype {
basedev=$tgt
rootpart=${basedev}s1
datapart=${basedev}s2
- if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = raspberry-pi3p || $target = raspberry-pi3p-64 || $target = phytec-wega ]]; then
+ if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = raspberry-pi4 || $target = raspberry-pi4-64 || $target = raspberry-pi5 || $target = phytec-wega ]]; then
bootpart=${basedev}s1
rootpart=${basedev}s2
datapart=${basedev}s3
@@ -221,7 +221,13 @@ case $ostype {
;;
(Linux)
basedev=$tgt
- partitionsep=""
+
+ if [[ "$tgt" == *"nvme0n1"* ]] || [[ "$tgt" == *"mmcblk"* ]]; then
+ partitionsep="p"
+ else
+ partitionsep=""
+ fi
+
if [[ $basedev = /dev/loop* ]]; then
(( quiet )) || print "${tgt} is a loop device"
partitionsep=p
@@ -229,7 +235,7 @@ case $ostype {
rootpart=${basedev}${partitionsep}1
datapart=${basedev}${partitionsep}2
- if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = raspberry-pi3p || $target = raspberry-pi3p-64 ]]; then
+ if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = raspberry-pi4 || $target = raspberry-pi4-64 || $target = raspberry-pi5 ]]; then
bootpart=${basedev}${partitionsep}1
rootpart=${basedev}${partitionsep}2
datapart=${basedev}${partitionsep}3
@@ -294,7 +300,7 @@ syspartno=0
# data - flexible (parameter)
# system - everything else
-if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = raspberry-pi3p || $target = raspberry-pi3p-64 || $target = phytec-wega ]]; then
+if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = raspberry-pi4 || $target = raspberry-pi4-64 || $target = raspberry-pi5 || $target = phytec-wega ]]; then
syspartno=1
bootfssz=100
if (( grub )); then
@@ -351,7 +357,7 @@ fi
#(( partofs = ((coreendsec / secs) + 1) * secs ))
# we just use 2048 all the time, since some loaders are longer
partofs=2048
-if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = raspberry-pi3p || $target = raspberry-pi3p-64 || $target = phytec-wega ]]; then
+if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = raspberry-pi4 || $target = raspberry-pi4-64 || $target = raspberry-pi5 || $target = phytec-wega || $target = rockpi4-plus ]]; then
(( spartofs = partofs + (100 * 2048) ))
else
spartofs=$partofs
@@ -462,7 +468,7 @@ if (( datafssz )); then
dd of="$T/firsttrack" conv=notrunc bs=1 seek=$((0x1CE)) 2>/dev/null
fi
-if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = raspberry-pi3p || $target = raspberry-pi3p-64 || $target = phytec-wega ]]; then
+if [[ $target = raspberry-pi || $target = raspberry-pi0 || $target = raspberry-pi2 || $target = raspberry-pi3 || $target = raspberry-pi3-64 || $target = raspberry-pi4 || $target = raspberry-pi4-64 || $target = raspberry-pi5 || $target = phytec-wega ]]; then
# move system and data partition from #0/#1 to #1/#2
dd if="$T/firsttrack" bs=1 skip=$((0x1BE)) count=32 of="$T/x" 2>/dev/null
dd of="$T/firsttrack" conv=notrunc bs=1 seek=$((0x1CE)) if="$T/x" 2>/dev/null
@@ -545,17 +551,25 @@ fi
fwdir=$(dirname "$src")
case $target {
-(banana-pro|orange-pi0)
+(rockpi4-plus)
+ dd if="$fwdir/idbloader.img" of="$tgt" bs=512 seek=64 > /dev/null 2>&1
+ dd if="$fwdir/u-boot.itb" of="$tgt" bs=512 seek=16384 > /dev/null 2>&1
+ ;;
+(imgtec-ci20)
+ dd if="$fwdir/u-boot-spl.bin" of="$tgt" obs=512 seek=1 > /dev/null 2>&1
+ dd if="$fwdir/u-boot-dtb.img" of="$tgt" obs=1k seek=14 > /dev/null 2>&1
+ ;;
+(banana-pro|banana-pro-zero|orange-pi0)
dd if="$fwdir/u-boot-sunxi-with-spl.bin" of="$tgt" bs=1024 seek=8 > /dev/null 2>&1
;;
(solidrun-clearfog)
dd if="$fwdir/u-boot-spl.kwb" of="$tgt" bs=512 seek=1 > /dev/null 2>&1
;;
-(solidrun-imx6)
+(solidrun-imx6|phytec-imx6)
dd if="$fwdir/SPL" of="$tgt" bs=1024 seek=1 > /dev/null 2>&1
dd if="$fwdir/u-boot.img" of="$tgt" bs=1024 seek=69 > /dev/null 2>&1
;;
-(raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|raspberry-pi3p|raspberry-pi3p-64)
+(raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|raspberry-pi4|raspberry-pi4-64|raspberry-pi5)
(( noformat )) || create_fs "$bootpart" ADKBOOT vfat
;;
(phytec-wega)
@@ -563,8 +577,15 @@ case $target {
;;
}
-(( noformat )) || create_fs "$rootpart" ADKROOT ext4
-(( noformat )) || tune_fs "$rootpart"
+case $target {
+(atmel-ngw100)
+ (( noformat )) || create_fs "$rootpart" ADKROOT ext2
+ (( noformat )) || tune_fs "$rootpart"
+ ;;
+(*)
+ (( noformat )) || create_fs "$rootpart" ADKROOT ext4
+ (( noformat )) || tune_fs "$rootpart"
+}
(( quiet )) || print Extracting installation archive...
mount_fs "$rootpart" "$R" ext4
@@ -575,13 +596,13 @@ if (( datafssz )); then
((keep)) || create_fs "$datapart" ADKDATA ext4
((keep)) || tune_fs "$datapart"
case $target {
- (raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|raspberry-pi3p|raspberry-pi3p-64|phytec-wega)
+ (raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|raspberry-pi4|raspberry-pi4-64|raspberry-pi5|phytec-wega)
echo "/dev/mmcblk0p3 /data ext4 rw 0 0" >> "$R"/etc/fstab
;;
- (banana-pro|orange-pi0|solidrun-clearfog)
+ (banana-pro|orange-pi0|solidrun-clearfog|rockpi4-plus)
echo "/dev/mmcblk0p2 /data ext4 rw 0 0" >> "$R"/etc/fstab
;;
- (solidrun-imx6)
+ (solidrun-imx6|phytec-imx6)
echo "/dev/mmcblk1p2 /data ext4 rw 0 0" >> "$R"/etc/fstab
;;
}
@@ -597,7 +618,7 @@ fi
(( quiet )) || print Finishing up with bootloader and kernel ...
case $target {
-(raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|raspberry-pi3p|raspberry-pi3p-64)
+(raspberry-pi|raspberry-pi0|raspberry-pi2|raspberry-pi3|raspberry-pi3-64|raspberry-pi4|raspberry-pi4-64|raspberry-pi5)
mount_fs "$bootpart" "$B" vfat
for x in "$R"/boot/*; do
[[ -e "$x" ]] && mv -f "$R"/boot/* "$B/"
@@ -611,7 +632,11 @@ case $target {
mkdir "$B/"overlays
for x in "$fwdir"/overlays/*.dtbo; do
y=$(basename ${x} .dtbo)
- [[ -e "$x" ]] && cp "$fwdir"/overlays/${y}.dtbo "$B/"overlays/${y}.dtb
+ [[ -e "$x" ]] && cp "$fwdir"/overlays/${y}.dtbo "$B/"overlays/${y}.dtbo
+ done
+ for x in "$fwdir"/overlays/*.dtb; do
+ y=$(basename ${x} .dtb)
+ [[ -e "$x" ]] && cp "$fwdir"/overlays/${y}.dtb "$B/"overlays/${y}.dtb
done
umount_fs "$B"
;;
@@ -627,6 +652,15 @@ case $target {
done
umount_fs "$B"
;;
+(rockpi4-plus)
+ for x in "$fwdir"/*.dtb; do
+ [[ -e "$x" ]] && cp "$fwdir"/*.dtb "$R/boot/"
+ break
+ done
+ mkimage -A arm64 -O linux -T script -C none -a 0 -e 0 \
+ -n "RockPI4-Plus" \
+ -d $fwdir/boot.script.rockpi4 $R/boot/boot.scr.uimg
+ ;;
(solidrun-clearfog)
for x in "$fwdir"/*.dtb; do
[[ -e "$x" ]] && cp "$fwdir"/*.dtb "$R/boot/"
@@ -645,6 +679,15 @@ case $target {
-n "SolidrunImx6" \
-d $fwdir/boot.script.imx6 $R/boot/boot.scr.uimg
;;
+(phytec-imx6)
+ for x in "$fwdir"/*.dtb; do
+ [[ -e "$x" ]] && cp "$fwdir"/*.dtb "$R/boot/"
+ break
+ done
+ mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
+ -n "PhytecImx6" \
+ -d $fwdir/boot.script.phytec $R/boot/boot.scr.uimg
+ ;;
(orange-pi0)
for x in "$fwdir"/*.dtb; do
[[ -e "$x" ]] && cp "$fwdir"/*.dtb "$R/boot/"
@@ -663,6 +706,15 @@ case $target {
-n "BananaPro" \
-d $fwdir/boot.script.bpi $R/boot/boot.scr.uimg
;;
+(banana-pro-zero)
+ for x in "$fwdir"/*.dtb; do
+ [[ -e "$x" ]] && cp "$fwdir"/*.dtb "$R/boot/"
+ break
+ done
+ mkimage -A arm -O linux -T script -C none -a 0 -e 0 \
+ -n "BananaProZero" \
+ -d $fwdir/boot.script.bpizero $R/boot/boot.scr.uimg
+ ;;
}
cd "$R"
diff --git a/scripts/kflash.py b/scripts/kflash.py
new file mode 100755
index 000000000..b1fe4fcac
--- /dev/null
+++ b/scripts/kflash.py
@@ -0,0 +1,1566 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+from __future__ import (division, print_function)
+
+import sys
+import time
+import zlib
+import copy
+import struct
+import binascii
+import hashlib
+import argparse
+import math
+import zipfile, tempfile
+import json
+import re
+import os
+
+
+class KFlash:
+ print_callback = None
+
+ def __init__(self, print_callback = None):
+ self.killProcess = False
+ self.loader = None
+ KFlash.print_callback = print_callback
+
+ @staticmethod
+ def log(*args, **kwargs):
+ if KFlash.print_callback:
+ KFlash.print_callback(*args, **kwargs)
+ else:
+ print(*args, **kwargs)
+
+ def process(self, terminal=True, dev="", baudrate=1500000, board=None, sram = False, file="", callback=None, noansi=False, terminal_auto_size=False, terminal_size=(50, 1), slow_mode = False, addr=None, length=None):
+ self.killProcess = False
+ BASH_TIPS = dict(NORMAL='\033[0m',BOLD='\033[1m',DIM='\033[2m',UNDERLINE='\033[4m',
+ DEFAULT='\033[0m', RED='\033[31m', YELLOW='\033[33m', GREEN='\033[32m',
+ BG_DEFAULT='\033[49m', BG_WHITE='\033[107m')
+
+ ERROR_MSG = BASH_TIPS['RED']+BASH_TIPS['BOLD']+'[ERROR]'+BASH_TIPS['NORMAL']
+ WARN_MSG = BASH_TIPS['YELLOW']+BASH_TIPS['BOLD']+'[WARN]'+BASH_TIPS['NORMAL']
+ INFO_MSG = BASH_TIPS['GREEN']+BASH_TIPS['BOLD']+'[INFO]'+BASH_TIPS['NORMAL']
+
+ VID_LIST_FOR_AUTO_LOOKUP = "(1A86)|(0403)|(067B)|(10C4)|(C251)|(0403)"
+ # WCH FTDI PL CL DAP OPENEC
+ ISP_RECEIVE_TIMEOUT = 0.5
+
+ MAX_RETRY_TIMES = 10
+
+ ISP_FLASH_SECTOR_SIZE = 4096
+ ISP_FLASH_DATA_FRAME_SIZE = ISP_FLASH_SECTOR_SIZE * 16
+
+ def tuple2str(t):
+ ret = ""
+ for i in t:
+ ret += i+" "
+ return ret
+
+ def raise_exception(exception):
+ if self.loader:
+ try:
+ self.loader._port.close()
+ except Exception:
+ pass
+ raise exception
+
+ try:
+ from enum import Enum
+ except ImportError:
+ err = (ERROR_MSG,'enum34 must be installed, run '+BASH_TIPS['GREEN']+'`' + ('pip', 'pip3')[sys.version_info > (3, 0)] + ' install enum34`',BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise Exception(err)
+ try:
+ import serial
+ import serial.tools.list_ports
+ except ImportError:
+ err = (ERROR_MSG,'PySerial must be installed, run '+BASH_TIPS['GREEN']+'`' + ('pip', 'pip3')[sys.version_info > (3, 0)] + ' install pyserial`',BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise Exception(err)
+
+ class TimeoutError(Exception): pass
+
+ class ProgramFileFormat(Enum):
+ FMT_BINARY = 0
+ FMT_ELF = 1
+ FMT_KFPKG = 2
+
+ # AES is from: https://github.com/ricmoo/pyaes, Copyright by Richard Moore
+ class AES:
+ '''Encapsulates the AES block cipher.
+ You generally should not need this. Use the AESModeOfOperation classes
+ below instead.'''
+ @staticmethod
+ def _compact_word(word):
+ return (word[0] << 24) | (word[1] << 16) | (word[2] << 8) | word[3]
+
+ # Number of rounds by keysize
+ number_of_rounds = {16: 10, 24: 12, 32: 14}
+
+ # Round constant words
+ rcon = [ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91 ]
+
+ # S-box and Inverse S-box (S is for Substitution)
+ S = [ 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16 ]
+ Si =[ 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d ]
+
+ # Transformations for encryption
+ T1 = [ 0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a ]
+ T2 = [ 0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616 ]
+ T3 = [ 0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16 ]
+ T4 = [ 0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c ]
+
+ # Transformations for decryption
+ T5 = [ 0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742 ]
+ T6 = [ 0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857 ]
+ T7 = [ 0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8 ]
+ T8 = [ 0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0 ]
+
+ # Transformations for decryption key expansion
+ U1 = [ 0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3 ]
+ U2 = [ 0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697 ]
+ U3 = [ 0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46 ]
+ U4 = [ 0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d ]
+
+ def __init__(self, key):
+
+ if len(key) not in (16, 24, 32):
+ raise_exception( ValueError('Invalid key size') )
+
+ rounds = self.number_of_rounds[len(key)]
+
+ # Encryption round keys
+ self._Ke = [[0] * 4 for i in range(rounds + 1)]
+
+ # Decryption round keys
+ self._Kd = [[0] * 4 for i in range(rounds + 1)]
+
+ round_key_count = (rounds + 1) * 4
+ KC = len(key) // 4
+
+ # Convert the key into ints
+ tk = [ struct.unpack('>i', key[i:i + 4])[0] for i in range(0, len(key), 4) ]
+
+ # Copy values into round key arrays
+ for i in range(0, KC):
+ self._Ke[i // 4][i % 4] = tk[i]
+ self._Kd[rounds - (i // 4)][i % 4] = tk[i]
+
+ # Key expansion (fips-197 section 5.2)
+ rconpointer = 0
+ t = KC
+ while t < round_key_count:
+
+ tt = tk[KC - 1]
+ tk[0] ^= ((self.S[(tt >> 16) & 0xFF] << 24) ^
+ (self.S[(tt >> 8) & 0xFF] << 16) ^
+ (self.S[ tt & 0xFF] << 8) ^
+ self.S[(tt >> 24) & 0xFF] ^
+ (self.rcon[rconpointer] << 24))
+ rconpointer += 1
+
+ if KC != 8:
+ for i in range(1, KC):
+ tk[i] ^= tk[i - 1]
+
+ # Key expansion for 256-bit keys is "slightly different" (fips-197)
+ else:
+ for i in range(1, KC // 2):
+ tk[i] ^= tk[i - 1]
+ tt = tk[KC // 2 - 1]
+
+ tk[KC // 2] ^= (self.S[ tt & 0xFF] ^
+ (self.S[(tt >> 8) & 0xFF] << 8) ^
+ (self.S[(tt >> 16) & 0xFF] << 16) ^
+ (self.S[(tt >> 24) & 0xFF] << 24))
+
+ for i in range(KC // 2 + 1, KC):
+ tk[i] ^= tk[i - 1]
+
+ # Copy values into round key arrays
+ j = 0
+ while j < KC and t < round_key_count:
+ self._Ke[t // 4][t % 4] = tk[j]
+ self._Kd[rounds - (t // 4)][t % 4] = tk[j]
+ j += 1
+ t += 1
+
+ # Inverse-Cipher-ify the decryption round key (fips-197 section 5.3)
+ for r in range(1, rounds):
+ for j in range(0, 4):
+ tt = self._Kd[r][j]
+ self._Kd[r][j] = (self.U1[(tt >> 24) & 0xFF] ^
+ self.U2[(tt >> 16) & 0xFF] ^
+ self.U3[(tt >> 8) & 0xFF] ^
+ self.U4[ tt & 0xFF])
+
+ def encrypt(self, plaintext):
+ 'Encrypt a block of plain text using the AES block cipher.'
+
+ if len(plaintext) != 16:
+ raise_exception( ValueError('wrong block length') )
+
+ rounds = len(self._Ke) - 1
+ (s1, s2, s3) = [1, 2, 3]
+ a = [0, 0, 0, 0]
+
+ # Convert plaintext to (ints ^ key)
+ t = [(AES._compact_word(plaintext[4 * i:4 * i + 4]) ^ self._Ke[0][i]) for i in range(0, 4)]
+
+ # Apply round transforms
+ for r in range(1, rounds):
+ for i in range(0, 4):
+ a[i] = (self.T1[(t[ i ] >> 24) & 0xFF] ^
+ self.T2[(t[(i + s1) % 4] >> 16) & 0xFF] ^
+ self.T3[(t[(i + s2) % 4] >> 8) & 0xFF] ^
+ self.T4[ t[(i + s3) % 4] & 0xFF] ^
+ self._Ke[r][i])
+ t = copy.copy(a)
+
+ # The last round is special
+ result = [ ]
+ for i in range(0, 4):
+ tt = self._Ke[rounds][i]
+ result.append((self.S[(t[ i ] >> 24) & 0xFF] ^ (tt >> 24)) & 0xFF)
+ result.append((self.S[(t[(i + s1) % 4] >> 16) & 0xFF] ^ (tt >> 16)) & 0xFF)
+ result.append((self.S[(t[(i + s2) % 4] >> 8) & 0xFF] ^ (tt >> 8)) & 0xFF)
+ result.append((self.S[ t[(i + s3) % 4] & 0xFF] ^ tt ) & 0xFF)
+
+ return result
+
+ def decrypt(self, ciphertext):
+ 'Decrypt a block of cipher text using the AES block cipher.'
+
+ if len(ciphertext) != 16:
+ raise_exception( ValueError('wrong block length') )
+
+ rounds = len(self._Kd) - 1
+ (s1, s2, s3) = [3, 2, 1]
+ a = [0, 0, 0, 0]
+
+ # Convert ciphertext to (ints ^ key)
+ t = [(AES._compact_word(ciphertext[4 * i:4 * i + 4]) ^ self._Kd[0][i]) for i in range(0, 4)]
+
+ # Apply round transforms
+ for r in range(1, rounds):
+ for i in range(0, 4):
+ a[i] = (self.T5[(t[ i ] >> 24) & 0xFF] ^
+ self.T6[(t[(i + s1) % 4] >> 16) & 0xFF] ^
+ self.T7[(t[(i + s2) % 4] >> 8) & 0xFF] ^
+ self.T8[ t[(i + s3) % 4] & 0xFF] ^
+ self._Kd[r][i])
+ t = copy.copy(a)
+
+ # The last round is special
+ result = [ ]
+ for i in range(0, 4):
+ tt = self._Kd[rounds][i]
+ result.append((self.Si[(t[ i ] >> 24) & 0xFF] ^ (tt >> 24)) & 0xFF)
+ result.append((self.Si[(t[(i + s1) % 4] >> 16) & 0xFF] ^ (tt >> 16)) & 0xFF)
+ result.append((self.Si[(t[(i + s2) % 4] >> 8) & 0xFF] ^ (tt >> 8)) & 0xFF)
+ result.append((self.Si[ t[(i + s3) % 4] & 0xFF] ^ tt ) & 0xFF)
+
+ return result
+
+ class AES_128_CBC:
+
+ def __init__(self, key, iv = None):
+ self._aes = AES(key)
+ if iv is None:
+ self._last_cipherblock = [ 0 ] * 16
+ elif len(iv) != 16:
+ raise_exception( ValueError('initialization vector must be 16 bytes') )
+ else:
+ self._last_cipherblock = iv
+
+
+ def encrypt(self, plaintext):
+ if len(plaintext) != 16:
+ raise_exception( ValueError('plaintext block must be 16 bytes') )
+
+ precipherblock = [ (p ^ l) for (p, l) in zip(plaintext, self._last_cipherblock) ]
+ self._last_cipherblock = self._aes.encrypt(precipherblock)
+
+ return b''.join(map(lambda x: x.to_bytes(1, 'little'), self._last_cipherblock))
+
+ def decrypt(self, ciphertext):
+ if len(ciphertext) != 16:
+ raise_exception( ValueError('ciphertext block must be 16 bytes') )
+
+ cipherblock = ciphertext
+ plaintext = [ (p ^ l) for (p, l) in zip(self._aes.decrypt(cipherblock), self._last_cipherblock) ]
+ self._last_cipherblock = cipherblock
+
+ return b''.join(map(lambda x: x.to_bytes(1, 'little'), plaintext))
+
+ ISP_PROG = '789cedbd0d545357d63f7c6e929b1b10140d102cb14522a04ceb5851b1d53aa084285ac7fa01b6535be80511452b554b6dcb3421b9848816e905828253c40a96697dda418d152d5245ac9d765aa78afdd0a201828a1f5420a260fefbdc7b1320759e79def5bc6bfdd7bbde49d7cf7dcfd73efb9cb3f739fb9c7b2e1dbbefd6e71f5f22108186fe362c9a3469c3a2204014c614b30821363b7bc486ed8b27e9a288685d34315b379b98a39b43c4e86208b54e4dc4ea62098d4e43ccd5cd25e6e9e61171ba3862be6e3eb140b7807856f72cb150b790f8a3ee8f3b5ed9502e9ab4c167125a82d0ed7f02961040014b4440014bc440014b2440014b48a0802552a080251450c0121950c0120fa080259e40014b8601052cf1020a58e20d14b0643850c092114001661db44957ffa9e28a0cc9457ffb45fe9aa86f434854a79cf043b3885105af06f9241019d216cff6e11da36efb773d72f7d1be8ae6ca96eaf6fd1d7fbb7da8ebc8ddcffb665f8e6d8dbbbaf0c6e2cef8ee177a5feabf72b9adf5dad59b377eedece9bed7fba03f2c88f0091b37d2276cfc589fb0c79ff4090b8a1e1536eeb95161e39346853d9e312a2c48e71b36aec0376cfc6edfb0c73ff50d0baaf70f1bf79d7fd8f8cbfe618f77fa43f9d1507e34941f0de54743f940281f08e503a17c20941f03e5c740f931507e0c947f0cca3f06e51f83f28f6d08099a7227c4678a678eaf885e46a25b41b7ff34bafcd6a4f2e736f8f84da9489c9d742549f45ac56bb3375cd9204dae4c8e4d694b91be5ef97a6c665ba6e7aaea557169d7d23cdfac7e33eead6b6f0d4fdf9fbe70edcdb5c3ffbcffcf0bdfb9f90e056d3306e97ca8b1c448e358dd482a9818650cd68da25484dca8d2c9a97184af719cce970a21fc8c213a3f2a94f03786eafca93042610cd329a8f1448071bc2e809a408c364ed08da6c289478ce1ba47a8df1181c6dfe902a9c709a5f1719d927a8218637c4237869a483c6a9ca87b94fa3df198f1f7bac7e40411b401054de235367aa4b46543585427a3a1957644aacd106fd396c7dcc98c99b4012df2e9ae33fbe098e33f552412ea68225babd884909c54079833410f8c8d0ada54851462a4958bc5ffa0c56224d2676b719abe91f2676e61fe66843934f79929a4658d557f377da548c13c1afcb814404522a351401995d43e0ad701b5bc819078eedd916334331414c1d745c9cd10ab3f2d937bcf2da36704041011a9144184959c0834f6382e9c2035258dd545f498832278faeaef4b7421814612d15d8750a0518a74ea40064274ab88f5a344ba821d7f9958dcf940b58f42aa0f2844a8b3b52429d6743b0eff33ab4ebc8f924690871043aa10495cb6f0d20478f0d2307305793cf97899274853227349a3fa4041801cfe07255b97c82924aa252d51138d6e72a40fc8416a2616977c25279188b956105b92e097677db4e9a1926db260a9c46a1224dbf7cf94baad4b30c719b28351f4c60b28909261eeb9c07d553be2b94f2cdef197b59608d9212c276e4f3945f5d611237768c62398796219b5b44325e944c218755e81512693f811648db6fb657420e5ec5bdfe803ff5c0a28f9eafb25ba505c33bdf13cd40a6d8a0d6420b4ae15b1fe50eb7ba3ff72a82863480bb81e65ce21468a7bf4cbbacd19a11dfd09d5864deae0dbd22e956f275224834e484e7e648ee2f46d5f6bcb1835ff1cb4f719e129b14aa70e119eb51f7faa1e2be86b7364038ee79e83220bd41384e7c46945ea279c3a3d7587fa4967fe29bbd4539df9a7281339dd9b6eefa8e7b4708fd87e6d37af8f227bc739fe89b45fe3fba4ea5a19ed01bd77e12b55252572b611741bd252bdb8bc91f6365d2c1f13369f8835a9b9d849f636be97b53f55ac176dbc924ca8d5d0d31384f61c2f9e273ca11d3a2c29dff6f795e95ce9a7ec5770fd7b18aaf9435e2289fdca0f9a220b3132b8bd48136e98843c19861f4fe41c4ff477bd4687f098aa50179a9d8c47961829273b91b44390a54facee841ca409a76dce3069545e9da8348124f600651318c4daed2382c915dba45dc1b727b64c6e568dd9ede4fe73454af6caf1b28939056a417fbe266384b47b44887518f300b7946f273192055bc0bac67197b871ef50f939f96acff3bae9e4aa3dedd44acc2388fc9ff0883a3b9447d4c9c13cb4fdff131ee89ba13cd0f1c13c9074b0e5447de5b427217ccc9977454645f3c2aec5b7e33b5e687fa925a725b42fee6eb569e296c906d613f9c8872191f92dd094bcbf9ef0e8a84c94265fd9387b73c566d19b5756cf5e53b1865027010fd6de3b6286f15ed41123bda10555184b0d141a53166aa2379622b9074cb99661e82cb39009947aa06c33abf010e9d85ac3b8e85a8fa788593b2ff7adb08cc9587c57be532a8aef7ae1f62bedf217ae118a17c1debc16f47aac29585dd17ea67961df4b1d391d952de18689a6bf990ee5bdb23370586070e9962d63e9f73d505b622cac73d2b42b9b67bf59f1a6e8ad2b6b66a713ea102c1b8c6aa9c103e6d948829520519186be9929d68779a22be66ce3360ddfd312a1a70d48ae3070bdfd43becaaf1355e6c481f68c77f6f86ed62c01d943ca66eda835ed887adef2f1bf29df9fa092f25c8ad46beb58ea13f1ac93bc9d867d5248633b116ba84f4c9a5ab30d295e8750eca18ff02cde887ec8e7c3a11f934238f8942eacec0b5575fc88d09c338c53a6e3ff75d0027c87cd3a590a35cf3ac573d7543bb987550fe67ebe7228f7d82a2777cc9ba57c8255d53dc3d598a3d429a971ef769851f83553b3d70cebabbe6159c5aed85a851dd5161f42e7f2cdc04b7f2aa76286a2499053f9852a3c7ec46edce2e14325ab2a1fe0965ace73dbb4ebb7dc2a77f1dc785e2b473c696162611d47a968cfc548e3e11bfd09728a9aac6b9537d81dd95a7d2c890ee6ef8e0d3caf404c5e2d753baa37ffd3fcfe69bab0fe1e92ec9f7ab9eea98cb8db911e32147c37b42b421242541bc85816661a0ff5c20e69df1e8a40faa70c4898c7ff01fe864fb704cf3d2cf925515924f4f5eba514ac5e5f5122e58240a302652b746cc0dfbf31abb4552860417d6a3d4577db10f4e270e5b757d6cfde58b151b4f94a1aa11e8be7ae04abd9f6c037d9424950012537c6a04a33bdb30df9b62b5b2cb0327e5ea8fa4882ae5a94ed012d0d75d8827dbca51dc1ed78ed093708569b6c72e962d0aa6086f77d82b69592248210175fbe52989592ae24f2336a35031e7cecd8580fb5620eee3ff1197da31f123792a882fa21bfd468fb952da6c4f5eff969e8d4a6d98a04b03b4a73823587a223e6b239cf6754dcaeec38d39ed3f54dcbd9e6f8be17eebed4f5caed951dabdbd7b51c314f364d34541bb28de28622184f06911a3c4be91bf7a22f284c0fa22bd4973086f4463bda96c094974479e48dbc25efb68f1066641311529030b6b52c8ab585a1b2e3ba84a9fb94d1a6bcce9f76abe5a441686be265b16629d26b621011124cadc8d76b92317fa01b813fd611da50253225ec41bda872bd74635b726c5a659a74f5953767bf55f196e8ed2be9b3d756ac4d81bed06bbe47fa9893d0f2867c7d4c0bfa42826917ba22b9b85537eeb3047a5797b37f3f12ea36132159bd7b2d7a4d215893014ae27a3f40e2980320c30ff9af48566c25c631a911a985a85f91953fda969519f2bea5c701334e1b62120e5aa2d7ec5ea39b27f7baef60b7de77906b676d61e298b535990682b9556b9c124d5f4d153b474f5b4e848cae2f4a18532784f3f13ab5cc519f5a6b8a249e29b3b6eee8eb3c569359486cb37165af640e942d214236770a33d556bedceed4cb969acc18e2b21de7b65eaeea77e64e2c2042a2fb85b69af8dcb5a6678819866d28ad0e8f8135976ad1379e037d6940782c2aa81a9b86109f6945b33d6b52ef417c377ac53362f53d448497925b847e2b3ff5efc6ca5a56d5827b531f6340cc6a7e243e40fd8f289661af3b64173f26078431a9b12f257eb0d56c7e81a0b77bc876af899644afe1fbd1bc02e6936d4ffc854cb776cfbb589fdaaf68cdafb7d5524f47d397533d9e8835033f9609d9493a7d95a250a1ed415ba0bd8f92ede6db0e0758d5662284d1583dbb1fb045b0321544afac70e5d4becbf7fcb1b28c3a41be42e9c6caf5ff4ac3f8194a7fb2c65e487c769d93a53d9374ca92f29e5396c4ad5003577b5016c8124036f321edfaa1b28c1d24cb7166776a511dee0fdd7dccd9da5ad53921f626e36a9fd1c9b37c03d7be1f85f6ad19ca33942181abd03e6dadc74ca2565286361d13c358eb1b1b10376a8dadfca835760ba3365263dd693b9b3b4fe8c1da1d9f656ba347b2649464a41af650bc3f6b62c945123fc173d5e6b26490c4e9eb961b2b12597292e409d8a52922b85ecad99c81bdb6d08eb8764127eff379a3b6091c567a086d2b2fc84866494990732613eacb72b6bd3c1fa7e01c63639dbb44ed5b0a351e31324be0fe54a45486e4d21c914ecdeff05a9f11521e33a7726bf2337c89d6b714a932a48ab0cf147a7eaa4eed9424d10cabd74ac89d237d5a2185dcd2533b4dae5464e639a8df14fa69b22219ea94c444b292a07e451aa47998a679ad625a958b6efca25cd4ff139ed1b1efa092142033aef5036a9a2095f7e53a3dccd271cc2484bd8c3d12c2391f7ec0ad0338f7416ab230929ecfc2aab187da8df0aa46421f810fcdf77c0af8cf30f7c10ece8bd74f6b3fdef7c2decf8bf66915c9c94fbc05be7d72f2b87745228c10978fbe2fa73ef1b606b43e10d2efc9c96fbd1b2c9b33f0a849bbaa0d444c29ac67b4cd82f83d03f6a46b8c06246ea0d0c4165222c8d65b917219a4937684b74c6c16e2ecd929c129ce71c712f2758a7bb05c65d174602bd2d9184d59fdd87daa7212f526cc6260a7a9a18d36648aa5df6d02dfaadf52aa20092c636913156df5697d60d2d483cf71dc9bf6ef4625f5e0fb795db5b0d26fbdfb13ac23cff5e1984fbc53ea9e99136ea4334e88d84c3baab71ebbccbe2e753cb3e548b197d5cb164d59d7363d187905da213d11b5458acfc88a8b53b595484559d01ea905a9007b48a0803d12a0803d62a0803d22a0803d0450c01e0414007e6877f708b69841e7b6b1c524c1fd2b3ab7ed790b5b1c86f83a72b26ddad07bc5da7ac598fc59c5d68c137777599ecfa8eca8364c642a606f93d325e8d470b386f3cb967ddecc683e6f510654a4ccea3069667d7b746e781f494ebc1bdea55d556073cd61010b646013415c4f1fd28749863179ba5b7af059593b15b4c32627259e7ceaf16ff40a0921378789e96729e4910a3e6c4017c225366766297af355e3bb3c439949b20ae78c34ba7fe9c8cb1fc6fc773c83feb958bd40c63f6bf7e3d53994694bc66bb16073f66a269716e6cdce6a2343891bed8eb58e08a62a2acb0fcf31c1cd52f0fa550107916a7403ec5349a49a02184f7aaa66020d2245aa71a4686cac0e3c06c653f094ae98159cb7d9a5ece39f52ed339b85a7be992dfc93d181eece6cc7b28a9239ad57715a7fc4ecc7ad1cbebc54739ee1670bb247483f2a84bbf9b0b8810f335dcef242f88e907ec2d906613cfa67ced57d25d4c8db593fbf1bb7dd9dd9214b863dc9b8aec52c6558a29adeb518efef5493248b85b2b764abc8d8bdc22eaefca62cdd23f64b2174fc06a399793ac5a25cadb3e934d85af44d24313aa3e2ee99db67db73fa2abbbee938dff263f34b7dafdc5dd9b5faf6ba8edd7993b74c34849bce3596ad6d68c4a3a77fca13c9ed61881e45f9c088c6d15a2a8050ebe613f369346cbcc78d17723e54bf24f89d89b9b437194a92b59e9ba2e3b7d21bfe44bcb05596a84cf75d44775585c6c41c2ca3bf35845d62427384fcef29132bc0f5a9342b9b8598503a80f4a9ddb2338a54d33b3c114e15cef3c6655dd5477a1295a511c34aa36a0ce628d5f49de860df87e50379507b7fc293e79ed8a73fe281f4074ca8dea3ff42650ebda114fd983333d1eb0d5d687c4e1c936da6e3cb3d31afea9da6ad58ab54d3abd1e65e9da66d7decc6ca8dd2cd6d69b1ab2b574bd75c796bf6db156f8bb2aeac9dc578807e460e435a5d9c2e463e7fd8f115165c8bf818ae2526a6d268f5f07e2086fe9225b2af534174b6d4875ebb4b06cf73bf3c2359e4950e2baac87b5ba93709a33a065d33d79e2c14d3dd5d880ca995ec25e49954d48a1395b825bcb7f6a85feba71a55502fe22cc84649b0ddf5277c56876560e75f7710cfcae7df77782f302d9867f14a5f97132e9c5a1ecfc05254a4ca33ed16792a255305b4206587e4db9be65ac381686573ccc96bc66b067a433fba669425ceca39cfcc124a6a372f8fa9481df3fef2930189476044b8dede19e1bdcbd5db3af03443739c320665551b57747aa53b7b3f3198b776bb1dcb6ab228d3e9d62a0463ffd64511bd6117ba660885da04295f7b316686d11ca54c5c7e128ffe73f707463148fafc77132cd78cf49dbf123f1a6b1b9b44d361ecf0c8d5e6348944e66a83754e794feb417d2df47fad0911ea7a8fa2da52cf40945143cfff19e1917e891b67c839bffcc7ac63afe45c12ea8d5af362cc1543add118fde24965e2155c732d3eef08ed1b38ef88bbbbb02b7ccbfe2dac845c4cc490f3fbff64ea08667e7bd281cf39c49f81857c6840fd4fd1df7b2043e20f75fa040f827eeb3ed22b2610b4319338c32c66b277ce831d01acf3c32ed78dc9c8e9a868af6cc1e7178befe2d38d973a5e695fd9c21a37c1bad52ca2dfb48bd82eca61c167cf30efd15d66d1a71a653da17ed88946453a77a2214122ebcd037de126e74e8fa5d63f667e1e6610d3bcb174b359c2364d41ba30bc430d5428d0706aa119a5b252ca41fb7f8fd0aba6307ab851a24c0e48f75dd5595a612eb9e97bbd24559eaa4025b6a472795321ec606f8b89af0a3474ab4dc63625a352a351ecc68da41c596adae3000a48ce288d909aa3e8c50d9efd914c98f8808788f77699d1b4e8804f40727fac90e3e75332d6e68b942d35d24264867da6ea505300473f6ff26753fdd1d69b5baf95b5059b7dac4ead3bbe146667e2dcb1efb02ca894b2907b617d8f22691becb39b4e826436e92e0bc4f8f1315d10934915d4b1d2a8652cd54c595bdbbad8a67144a9b1917aa6ce379d9e2b45ca5585b7caaed5502d6882659a616a9d391e24f8f4900f473f3b341ce709362b53599b02296dbb80d7edc7c4874d88bed2e6efad27c202e3c3a2c8302616f7464df129ae476adaa48402977fe6bccc9796435ffb74f8b623abf6666013e49e1321b722b10578bc922aad793d15ed68eb2c958af1534158eba5ac8503bd1bad58687e3a7716239e924bd0a325a3c910f6f5a9285ad67a8fed8944f42ea912f36135771cbdf978afae9a6217e118a9984e869564b458099642880fe421f6cd930edab61345187746f56be8af6de1fc8a6bcc53a4e23d3ea5d5d2be747f42c4d63f11a1854f6fa177f504c8251251856b5e4accea4f08cfa3477407d11b19822e9d31d69c2e43ecd68eade22a2f34f67dce032db76da5fdd315ac6281987e8ff2d75b3c88f84279b22fd2daf87a8c7a3de40ea0e9d7ed08c7805f9dcda7a46643ec7abb928b9d69d72eab96c79b51412c7df994848d4f45a53939e2c01c7f14e8ef8f864b1716cb49a9c3e7153aa0414a6a4acf8746d5f83721aee7713f4c6afa55d6e1d38eaea29b1907bf8ba55b4fa152e921b21efc3fac2fa7101bdf081cdba45938c68f8fb143cceb54469d9c047d9182bea435dc65e3c388d29c53d4f3169fd5b4b401f9aeecdc695dd3f440b64e6df14df649efdc59935b1c45ffe95131afcdca55115421aa28de7e4b798dd3e65a1b4f6b6cd7585b00f2bae5755d69537de24f3c51437f25839c652bb16e95b52957e132236b271b461f8b56f8aee98fb4bedbd6ec7dac208cd78dd64bad35d5c68b75646a16f574617f66d6d6a283fa699eb032d0c53d9e5c1dc75269f9dbf7914e434bbd50bda606e6ba59a5644ac4962af44261965f4de60728c2f35e54c49bd5e8ac6b5c9b5f060ea3bb513043935ee0a97839828b88383c4a11644a74ad514384ef5424c0d806dbd7c9573fc2dbea81d48baa29f3096bce0c6b96865e97206634aa2930f3c17897a5769646c0fc4eb79a1168da699bc465bf01633eafa1f2a23f7b9fe3176e5f65aad35bf290dcb0e541740993579faf3a701fed8dad31e6a1425be1756ba6f167961946b8d6f8a39b6a614621847903fa99b3d2cf7bceea3ec71e757831eddbc0bdc1d16b4864dd66794092fd969ac6bd68575e04d5003b885d1afa6623aa36d2eb5b3df5a748c4500cb927bfe981f59aed01cca5af6f82b482338353d89e4cd46f615f373ae439d23efa76a3545f4322fddf18a4af2309711d43e83f2745e2cf1991b88614eb0f336298eb24aa4f3291f830e3501d4840aac3764275d446a83e6912ab0e348a55875345aaa30a31d89e447594726cb26c4fda4ded2655471b1f58af832c2db69e6c2d7d67afa426a701d1ef9c13b1ea1e874ed3afa0d96ed83b44187b90782e0596dc88c2cd2a4411172d11c66ea48f8538aa1b2457a1266455f4408b749a56e1a482795621e7bccb914278011f163f3226a3a23da763a261e8baf4376674476c725be2d0552744d8979d60abb74c6e71ee032b52f4d30c0e986145ac6913c10e9338e4bda71cf4bd48315ec9e4f73d1cfc6a962a06bfa6fc1e22e2f07ab69871e70dbbd261b09aadabeda313d2a6f2678fd4419f3535c6df1125a9b4ac07c937d91cb38a6429a469ec8d8cd21a8fab88f6e991c8c96122fad487921f4b6b4c69d1bc7e66d6b05747039d015eacc111cf046f617b47a39aab69846ae61487a08fb7f6d6d167d2889257cbd694dc525ebf64985a81ef37305be80269b07e8ac45163288d121f3120f99b671c713be91c2aa0c64343d0ca1e4f96823abfe9f52f5955962e979a1cf22d124279abe4ba9cd24ae89446192b5d2f3a6ba4fb4f21656259bb32b9ac03d665316d6d94444b58a344149058620d482eb105ac2ab95e634c26b0e4dccc1569afe4258f24ca9299bc9aaba984eac01422deb97f6bf9eea07255d96d657a59174db5213c47033fb1ba4eb91e9ec56577c59130164689a4a42fa3ae023c1061947e4aaba34fa579e3b672f2321202b719cb8fe566b1dccd8d9e726abd88ce6a44205f3bc8d721c752bf8aa586122265a2f2b23259d9aa5ca5bc5a925c9393169d154be6d518a710f4faf38fd4a45d4758d61a269960dbfc51616b496a3d19cff0de84d0e7ef385bd2dc84fbec622df4c0ed80f412684d0fd71aa8479c845bc348247c8bf4d0a2b2bee72cce9d66f937cf59e8a8d51e65e925ab9c6d71b5e166a3e4a16d58db887edb86b3a627ea1e567fe743eabf3c50ffa9cb9678e7891d1dbec52a22db701e39453a7a4b2f99e9121bd23fc538d8de2f1d6776acadc13272b2b5354a39d9de69940424065c0e480e68e564a31b45720afc678a247ce942ab6f6aa12d604dc9f50ac6d95789e9c4c18055015703d2036e70725230ea1429fa12cb4949c4ca4edf8d1016fb76d75baa8dc1c6b5754e599b6bd7d69d318da9a9b97a951b1ba76ff7f131bc0f0d374c64cc8ddc3953a5f3dcae39825f0f703c6ba4f696cd2938a13c5e91284ac6b71d70a989067d510801f9b959b9bc989e47a21757559b5f6c77e6c2bb812cfe9400f603372c78efc99f13c5b52f6c9176b176caa7da30d130d974c864fa0a7333c512b18286bf3db4b4de6f1c21da58b1fe9b9cb89c8ab4d969a10c3e5912ce87c821f2f0e5dfe84fc0fb203ab01bf567f60b5c9c9231c239c6dcf67e0b2e259c818d72f6c6df9869395c8ffc952a74f6080a1fdc233676688f1023f18cc31a53af87b6541b72e9e07629cca6a31b66ce33d984335742ac80d15550e27a96ed31a2cf6eb23d1461bab95753761cf66912bc4fcb5a86dfd05470ef680af298af1e4fd77dcd5231140d33bbf3ec062d50cd944870efa8c649106bb7f4e39628d361bfc6ed148d880fefe0ce5ee4140a827e1e4fe7da602fede4d1bc9e4bb32b10d9a85ca40a9520fc7e4cf9bd329d501f7370273e764a36f527e7be73afc59447680aac018b969fecac1ba233d554b6ebacb76f700f35ea86f6d0c0c9eec17a3cea83fb467b2b1ddfe4e17791dbfec5d9117f0ab0174bb7cbcae71992f2f164753a1276902662deb3e503ed2df79cb92adcb4a3d1eb8d50bcfb5f42a2ace705ee32884d77e68b9af6b01e6f9e827bfcf1b7755fbacedd232046cacb7efc172c8b2a00c64222f164f2b85336de263e703e3517f379d1254e469eeb9ff1f9681ce8f1ec347c46aa37f3d6213753e268169fa5622b019f03e1dea2df93fa90a9d843ff21bf44ad2ae946f4b3cde8f0f3745c33f83afc49ebecb40a8ed3f4e4ac26f187204f71a458552e41f48f52d9a255b8bd05793b1a953163de9d99bee3c4cce54093bdded0c5e23ee94fd0c783b58ce94665519b34748a5d16494505915444821d91794ffca33f9335dadf0948efce2f3553043e5b0d68c69a8175506e8e14d3cb29ec83fae2f205d6b9ed8fa7abcac711c7be73efcba020dc979f59bcde206219a859043587e7584775f794457df60bd4ccd8d0f31abad026c1e5c758589b94d3c0ac654fd6e93f6308eb168fdbe2cf48e49da7fa642a31c3e3a9689d66a4b5ecb9174f5a5704ddc23bff33390b73b851d694bbce4eb2eaaa77ccf0f830aab3ce794e1dd7eeae83518d58b38879074f70bac8eb4df2bfd045de12b306344cdb8273869bfe95de36eb07463eeae5a1233f30274e3448bb600f3f0fefdbbf0c11f42b19fbd364aa2195a5ecfd11066354674968e193da2cdfc912fae5161427ac4151b4bb1ee8d4aed3a40acca3d26c7da4bbaf86d44639e3b5e5306663ba45033913df1743cefed81aaa35cafacf9e7bd8b7667372fe52f80abff7f5db668e07abffafca8f922c98a76e2bdbe28b0c367302b679e3476573e2981920230eab3e32560bf6fd3ca92eb2d039e4a3f8ee4f684bb861bf41da21b42f5e7f107c951c8943784fe2cfda5b1d11393d2860a5783a4930a68c527acc69c911b3e9aad82271ec7877fbea23e6927501377daecb41a6923685063ca6594da384f7d485b083ecb0217e3eb6edda4a3bdf6f365f0d6666275f49c4f3abe28ec3012bc7a28036626ed165fd4189c33c17f2e7ae1ab1edddfde6adabe92d7e1efac339e0b3fb11aac387510dd986b6a630a6a2d623e680d5f41899d4ace6dedf79d10a8b54118bef3b9df7e2e893e7bd4a6e965c23e7f2d2614f5d69b5ca6577e5d4edc7e864bb44de1489f833034653636e443e29dfe57325a7f7484b29052a352bd0bb54b5b98496e7508eedc00bbc815b051672eec7753eeb7c6e055c5b61919f37a3911a3a09fc9ca654144819c5815285b02b0e2f66f95d71498394d10426844545986d4899b2221fbf25501db4a1ad37b75f2bbcea7bb3e1d87360eb8d501eef8ae5f81425b511c99b708c0d76c5727c8ac2c5d821261376c52cec8ae5f814e56ac35d795318114835f2bb62d8a504accc28b55eb73df0825d31ef23b8d6520b68c35e2ac8b95268ab8495c282b526ecb1a12bc5d48cd0d6fddc6a1e7c557a63b281fe19f65a4db0de954b119eb1995b2c85a2c6ec9b249be6dc7d8caa5869fd23d9f7abe6995432a537df2375473e6b81fdf41738a7b2594e92da09e5f02c513613ea6b8971c9d5c9de49fc6938b63e6917b63f53de4483e91f2cb59152362b3b188df25ba73d616b5a8a26c14c2c58704f454ab8c9f96e35ea04714358338336db3b4bf1bd053c67ada833db1ce08557bd7db403cf09b2665907cc4632ce1349557efb9e863981fd1ad71ce2417c89f3610e0a8e030e45a4f5c2f338a2a8ee373dfa11e5e9ecd1f2a2c13d4a79fed65fe34b72e5ca2999b3dc71e3e07246e9c3cb09e32771960a320d193ff1d052fc7fc34973136ebd6634d6e4ac5ff07c44a827eb457afcd62fb85d7d63a2817f6b55f59202f8c8a930c7d8f2024ab59f7a60bd617bc0bf4716f6fc7b85b7c8fceafe8187f0eeaabc4658690b1521dcfddce784b7560b781ab55478e3641066e17d42385b98177b14e71d0eb93474460543a8cd1a68e521ea1517e5f3740bbce6c952b3cde7eac25b9c5208fe4a96f39d6554a74283db51f59292eebc8fef2213eaef2cf824227aa4622af77ea8cce99f9687f331ada54278829cdcbe4478febd1c12cd919c3f597ac42caea190486f8e85bece697b5ea79966944b51d4d657e89d7b51b62249ad636b8c55a208d28ec0b30dbb2cb5b28d0f70ad7c8953f103250a6ee0fb4997636b8c4da223e65cabea008554872984df0c7125df6fecd369beae1b816e8f2034bf8f6cf522806756c211e37f45767be1d8fefbd95a56f62dc97f09b001e4c5be2f1ecfd096b8e60d13a23afb139c798f599defb7cabbc65c76cec2c8ee71c33523f70a3d775f1fa945a2edca94222bd85dab6a7a08a18b71dd62b163af187c8534de330e48eb5f6a1d15e6602865ebd5bafea55f5b8477669d43dfaa3577b96e40758c6e70bd259c8e6f460d7ed7a6efc4ab92b403af4b77c64539efcb743a4b1f6f1f903ee8fa80f4e8a630fbdc724a6fba85a5970c5e6778c9ae07a4d1452d084b7ccee22a7fcd1c032364f860665972bfc3d5daeb6b7b077601c4c8d016dcbb71cdd506dcbb427fb9dee4a25fc20d23afba3c5541bba2da94ab6845af4899dcaf50b6d0736f43ab25d07ac02409c2b28960073548becb2ecf5678171f74e56a1dbf564b3ba03f631096335cac96a091ad03d2952592926cf30d8b534a90711cfac45bb0d3a8f9223fa220822c12593423f0ac342e6259b7e84e18fa44976fbd51f580e7c3df39bd1316d54994c37fa0b7c4d7e6a697f1bc728eeea842dc9a555be59fad551cf4c0365e97ad7d6e19e4c277b4a7e7c8cc61dc3aff0e31529e7977c411b3be9142c1ed930de0950a3614f6ee1173688b1ef47cbf61e69fa7bf39e5f5c7d3c7af9af49ab423bb647c3b9642cec420be455953190ddd5b259293da7bb87da6afc40d249adc2237f9a16c73f0ca334c96efc8e3adddce95613233e0c161af72b2d0572d8aab75136e8cc9707fcf83dffdac6cc1f75575318a3898013ccff8f6bfa0980f4fc3feea7b70fe840534be992af710e1d3b150469a5699fcdbf73dbc74fa484fb4ad113c5d729958beb17b840a99903e721862bd462346b2e3443078c156ef8df7adc30cf7579afa47afb0e012f575210d7cbf5451253431f2d3547eec6699c5e38c0e7d58a3a3da20f2cd5610dbbdd52bb60af3eb448bfd9ea8d448c96a13ba4591ea11782e1b772511cf2635095da2d9c9114d55a21a7b95a804d6d7b2164177618498fae8911319b9542bd5e13b41cddc5da4ab1589b80578ade05bc2af33c21c3ecf3947265e186aa77413cca35c1e728533cff13e5e739c29adf1ce94a0fb4353d4cb5d6703bd4353f62e767df161e753c02f40de9a6d7974990de9f791486ebf4bd162bb6897869c4323bbc82587abb6a82e4183e79436cd25022f58a268a90cdffafd033ef50cbc701ac933a72372ee8c807614d8741765e50da7269b03c0679f65d66922865721f1c2e1a8f4d1a98824231ebd44d4d81a89c0e124b2ce19ee086c7a03f2cb8b02c4c3297a3e29a2478b45a6587ac405fc5e84b820626269ff0be0351a615f668c7eba587965ec3ee72eedeb3a5d58bfc52a153f38525c7645cea811b71a71d287a85d3dddeed6eebfd85049b49c9c84efc350f826a59c5c2f82b66bab5c6d576b5cfdd9e26c3b9912b85c4394266422c22f621349f4e7e19b9ef27316542a93218f06577f2cb723f91b7789e1b2c925e2a9b066dec5cfd5667a9858f44571ee2b81098d88891d9337c3dc86bfd4289e8622729b50447c03f735c669149823455675db03be3db38b65aff45a9c72354c77ca857ee2e5e266904355976045c44fc7aa7e06bdc32b2c3773343eee5c61c1f26f55214fd20201f059e6c0cc9437bab1640ea9de5c5a7202e68665834f3136c04a0133f22496d2caee583493eea44a26c929ad28826a1199ab38bfe8f2e7865966df574da7641b26b6641757a4dcc9944c32a5821de5dea9a2266df099874b8b6aa82e51a5b9648db7b52c75c73f223548345cf27421ff0ede39cf4ce4e619f060b9ba0666dcfd062c07fef609d7ef5ab1ee8c9228f6cab03d9c0f2e5226ed38214bc9360fadfd4e6acc247e5de5ad7545c626758eb3e7de067f41a2537b32bcc56af713b1f8e68a5c6c7d462e433ef284f828d63f14b17e61a80ced2cfebca86c36d8499f7c530f517ade48305b6a8b2b514d9b3f319652959febf3a40ad134b33e94ea2b6d32134c5eadb90a9dcb5705d9fbc850eb23d2fb5b8c842692fcdda2b1b15b97b0fe61a8ba58557e68f8d6396418f883e587bcac7e8d0f2a13f92f0b601725aa36d2ab4127a9db23b296d12b2da26c3f4518f79e604aafee485149b445da87fafd31c72db08fda945f7202cf4578fc58284ddfac920e78fd0b5b1637634e130de0d3aeb248604428621efd6eb7a8da10e9f9bb45ac071207921e8805f53a6b2e9b836ff2d33b8d8896152196d4524eaf869c601df354ffa033b66e9d66603f2e5a3d8b1bc17eeece1ad64bb9911259a4c82b989a66560551486e36a223c51ea9100a06af6c1c85f0be56acd1ecf3b35a48e42597fa4870dfec2fc6fb2032ccfa48e3035263c6fb466d5b255bdc842229e435cd6c9106011f6eaf2445b3b1a767aec47e60ec31b9344872c8ac8b557d02fcc1f36342eb29ebce530f7009965a249d665e3a4717bae38bfec8560783f5447ba74a3309f7998f846ead12e1afee4a1396a147a823e62d546418f2827df81c26168ff5b27cfc1dd9402f43896b5548e407b6e4b55937abc8abde99c6b59d0a92d4186d22ec1f28aab0cf9c5a536d7e0ff86eb56eb77179a6c8cd1a31bd88f27c2a43da876fe8c7dd5ed881cbde019bc3fd262f6c42d30a23a920146c8e99239e4021dd3879b14444bc27f70b050d2a9c4d4cd085fa9e009b946d88d44cdac0d9275f2f5f67d8477fe3ea2ca13d1a73532782d956a45880dfacc298e36e96ba7dde2455d03862e006ff4406dfe09f0863d9a9a1af540d17091a687b76b3eee9226534633a62ce364652318b947fea2dbdb8cdeba76c2d0ebdc88516b842a5457ea8bbb4dfe20c85a01ba50daed05474b1f4cb3a67488d8e957ee74a5b865797fe65aed4141cbebfcc95be0987edcfb9d2b92f866e3de74a2fc2e15f8a5ce97b71b8aec86291c62cfaf985acccd2a283d01efb3bbdf917b7fdfdc76c2d1f5f5ad480f0a9fc0d8b337c0e6dce6ca873865a5146e6d7aeb46e9494f99d2b8d24a2337f70a5f91144668a2b2d8488a4fa1c29aed4a910beeb4872a5ab217cdb91e44a5f06e166c75e577a0a848f3bf6bad2374158ebd8ed4a67208c1cbb5de94538fc20c495be1787fb42065a85c3cd63ebc02e44747b95c839be619183c717e72e8bc59cb2149827eeabada7b0a6737cdc52fe7eea22c7bf2cceadc4995e6e5494099ca634d50ba1c1ba814303ba814303ba814303ba8143437483e3baa0e9637ee487707d7108d71787707d7108571ce23566992b55a8c5952e68982b9dd7a8e7f83e8d77d3a8f3578ff1f16e1a153f44a3e2876854fc108d8a1fa251f143342ade4da3e25d1ae44ae73528c9952e68902b9dd7a0bdae745e4376bbd2790ddded4ae7352cc4952e68982bfd200edf1deb4a1734ccd57bbcfdee38e60cf3f6bbe360f44806fc34ec1f0bbeda6713d4c2db8409bc7fac533b3de43d16962a17d1d62a29becd1d4885382e6ae8669b089f33da506463180a5164e593d648cd0594953fc6ba236f97cdf9fddff1ef9cdf4bf35a84df24299bbeb6384314f1759deb5974d182e7f2ab1ada5615ea9afb86f3b6e19af9966c33616d6b2dfd3a5ff94f6c157cec2e13d633d69ed9d76a1988e1da6ffd81eb9fb2c55999bb4ca02b8f61adebcdff3abfecac60152f1f33d5632bf9455de70c633d85b2b7a1965fd2f8f22f1d33617d63b0be8de0ca5f8ab63853b0c6a941e35ab99863a6b297b02645529d8e6e7e345ee66e66dba9db6037bf0823fc128e8b1ec2f3e74b53b9349c1249118e9f393e598a734209185f025b39c35bffa57e6e6c67ce19e0fef8891b0771dea3b37fcbfde817bd0707733f3a7b30f7a3b1380ea7e11a48822b712ae398336d70cd1f9d7aee20aef96dcd40cde98d0c97b72ff6b735f79d2a3836b8e6bed8c135f7b971ef383586e33e73fea0767de5c14b12179d896331675c0327e5998bb59c3473bef0ab7fbdbea01b78a49ff8ba868fc3357da1a867f99198a919c8f37863562dd6b9020d3e1570ea5ceacd019dc31a26bc11f623d5fc934ae4a1be5807bb4c9190e21bd9b095809ddbbec1befcc216f0fdc96ecf90af4d1a1a757b717feb621e219c636851b5c9750bd951cd2c74de44cae1ce80f9b38e07d5aefbab8975d506e79778c7fbaa19671ea4174e0ebb8990a16f6a2cd056f1874664d06835f2cdbda8f4fb18c4767589490f4612b8f403f44c2e969a9460b90f5af8dc8de8a4e6f86f72c3dc2d01ab98ebad21d4a54d55c4b63c6b9eedaeb07679c04ea78172be7fbc2e9e20212473d15c270f5c13e6f34c2e1182799112c24208fdb8e70637b374543deeec79ea02dff378a6096ee6fbdf79023c78d73ea78f540f0e8baf7aa81b7829173179f4bb5428a1bedce4dc992b17619fb0b44981b6e5316111cbba1111b2d682c74ff0b3efe2d697bd7c2c6f5bf9406c790f1f5bdaa4411707e50eea76c65344efa0f8f23bcef846b4a26e50fe5fb9f825a54d916817d43f6359b768ea607eb79de9a9a86130bf9bce7833ba6c71be3d4cfcd1598b11e9ea3c9cdf64ff8063fbe6602d1fbdcf195bdec4c762499930fc06e8398b33adf91c4e3baae9e5467edf7cf9a6ee116448a9c20f61ad08049d8055894b095cc6a0af2dc27cde82e37e7e19ef57b28438ad958fc312b55a9cdf4538e328e23be11b436804964673d9196ee6c39dcef02f7c18f810a63a67db61cf9ea7fb07a12e6814daf43311c2f3be5ce7b4ba0657ee26b7dcc77fe0731f9df399e5b7b96d6eb99bcf3b73fb3d84b7dd2d37fade997bc2a0dccea70f6b06cd1c6707763e78479dad15ce10bfcd9d33cb48b672b3dae2d2a630a8a1e01f268d791aecbf2a7abee1e3f17b9ba3676573b2b5384f24e4d971621bf41a0e692074f51706461173d4db8c5f712794dc1904b51fef42b296bd381fe46e94cdc1239cadd5a79222eeab2c573ee35f8f98f1df7228d3e051657bec882e6813f1126a4e95cdd185991a9569b0db5f9b6d76aee6bbf2b8eff41e2893fa9b6429ad42ed552706b88655e2da5f9c0f73b7e8868308919d000bf693279c238473a20f749aa78be8a24614c850285beb9b74218eccdbf453e16c7ce390bf69f8b5852f81b9ab3ea28ef22599725e36e3d1a78b4ae61061f85d63ee1c22245bcb90e2c66e87783a89f4a17309b6472a6a7d4084a982da5109ecfab95efdb0ed70a76573465c7ba0c72107dead871b423bf04e7c9b86be5f8584f3be52e1fbc622a2bc48433fda83600637f78884facb8477cc2c510e337c690f1a1a1ff51e513ead65623394b966f3142984feb010ec2cf368b53ec63957965fca4e11f96ed2ce58765054b1b2b4700aaa581f18df80d8cc9e11818a5328b26704cac85784e26fff620b2617fa24cea05aa30213346841ac68a32e846d25650b4ebdf8059b691fa1fc221036f63591df229ca714aaacb1851172485105b57935e4ab42a54817f6e2a91763f1faa00bc35e208466c3938d92010f6abb58790aaf1ac2795781f08e9dc1279ad84f4c0991b608712f0792be8430fb726fbcf57fe2dfd6e0afdba1d557abb83372d5deaa0a46b387ea448a29dcdf34d92d8b72be99914575a6f0df58b20c1924d8938dd722cdfb035ad4a8c3baa9da4fc9f49a4eeeef1d308d0a124b98f29d20cd69fce6818f232f38dfc1eb4f09fafb41196dbacea7aabfe14b240a27d5d49e32baf39fceafd7457e2cd64d3f8ef79bb38a9449aafd1619f7372e14a408b78e99ab631525b0c797b53f49eff2a3d8229032807bbf9fb9bf445c2343faf173906e3cdb3e1ea982e5042bd38a6a7215e22f4a54874f23d5d10b308e10636c14054a0ea2234c84f42e929d0d66260bfd9af86bf04a58e1497c03803cc5c735ffcabff571dd2db8619a6bdde5777fa0ee7daf0ead3bc0bdee4fa0ee031760e65f9181bf43c15fa5e06f51f82f53f6e76d080f4259cfb3cfabc5f2e7bf446c6fef3b4478c4e60f11fb42b798d67a8858eaf63bf4b65ef0f6877b5c52e0f7c6ac69f47162be2e26641f4d7ac85c77bd338990528a71b01edf1e8f18dd8b6a4c1f465dada3290f29ab00be1eb7dff19e5f1f636da0fad8a6f9e2aca54f6a6134df89d8b891607fba2ffeac518eebd1dba4a466b8e425c5f35b59a3e238a161fd7f877e78b7c6d41bd5efff9926e2d49b04ddd624e5bf9b23d3b648f71797cdde0f5e826e1e39ff9805d7e2317f97c5fbb4ebbdd73a5eaa08df2ec452df1e37e56fb278fc9d559c44f43714fefee41d6f4d7d4c5a9d4e436a9eabc3610f4d86858f7fce22f73320fa0d934fff685dac7c2929aa596e12f527e8d8abf9baf722324da2534c04f4b148b12c9f7e9b22c2cd2c73d741a756217a1345b04cbb23dc1c4151d111cb8da2884ca3a8268712b30a4a34db48f735a16ab31c767ab0d341747713783eed0e8829244545f9cf6fad89bc8d56400ff4fe815e767bb83c7323f23ee1a1c1776268c9352f6f0d3dfc9a271de089e4995df8b45edc84464ae48a8d88bf2f7545d1afc882d21e5172aaf91d6f2dfdb21d5be5f07b3298e3a4f76434e929cb5aca421adbb214652dc3e3f0a42e69db5985dcb747bc625bf4b61dc73794fba2877f9bc4faf782a68c460dc7e273e20c2f1831673b9e3d45765f4663f5b777113164c54b39ad16b6c5808818dc97197564cc425f22d65bf365ddd80763250575137ebc5137f5019ffa715dca03a68ed4ecbacebebe11051b777d21b475d83519b4557c4d166ca4477b22f67568ad9a361c82de8a4149ac5ca340641ea9aea1baa358a9564c7fd123c36b09be91617abf26fe0384473d628a162ddbca421f6e3b61e2f992f72420ef887b22dc872cdf877adc87ac02c6fb0225c2b98818688d88bac9b68c439dc7828dd1f7e49401a559828dcf9fbd58b7f9de58f08a93a015de5a9dc63a9cba26b7fba2fa3aefe3421dc43d11d441dd437e31b4d4139131a3cb4362d63ef0d6627e3a4ddac190984df76e5870bfe03e2062eb63761d1b087d7cf0e1d67a07acb57fa91cacf5532d78d8efe8c2af6e659f074b1de1c169333d0c5beabb924b8a8b5be51ed84e8938bf7df5275db7419ee1ed410e565a5308bdc3dd5f3b7692359f4472ce46a3e3ac8d0fb7d1dd5f71366a78b88d9e318385aa234e6d26e4b90a44b79ef3e4ad3465f280951260a54c9d9cb3d2bd83ac34688abb95aefd8d9546c72571563a4fb0d234c14ae70deac3e8b88769332df1441b821ef917fa9c9540b0ec7989885d2611f56eddbc35822c14451872c05a0f896a9822110b765f51b4bf90ee36205223521c29ce5a4a6c8fb01b50d2369122dc2cf73523dd76ac652bd84385d1f99592889616c459e30b948c4df045642ed83275f70ff4a2db9e4e5bc65fbbd0f9d7a4a0dfa66b52bae4dfd83225136cd9bac8fe2b589c89d360dd3d09adf594f0b62c5ffd02f2b02ccc09e56d92b48fc2d66e1f055a3cca7e9788798ab3c959b9bbea9efd75ac6473dd73976ed46dfe95b7c0ef2c290fd6ba592027611e67817ace0277fcbf63811c5f86933f1f2cb0e4e1168873711628a3aec85787a39083ffc6022554b33cf311c102b93a749c051a390bcc196c81989f4ef3432d6f817c0f5cae19d0a24db577c2c0ca12e40960657af0a1de61a5cd7fb89a9f55409f6a43e4ad5dd7b1673fe62ac446d367da444c2c1176d65f4e4e9a732e7ff4ae40aae978c4b92a84cfc68810d33f18cd867205be43037be78b75f59a1b80ac65dddc5d36bcc7f5fe5aee4b8a88edaebf972286d19c637a5f4e4d9a3383b44745f87e80e4ddf677fa133ed5676d5dec17bdcd753b3c46a7b90856a01547247423eceb8db65e5674df9743ef8fc9af8138de9b211f54733bf419645514fe2b3df8ef733977e0aae1bc9fa52173692c914e3df8ae4ba282ff7edde6914bcf5c5b7022dbecbafb124a8ce4d3c23c83db15bed8bf93788ed98adf1f7a1b3e378c6c19b8cf91e5cb820358097e5cb6b9d5e22c5725759593e27271cdb8a42e6696892e3688842fe8257c8e16f198ad42dafb06c47316a561deac790a3a039c1949b6f9b26570e807ee56aeebfdbf6462c7e4f6692dd22ee1b6c029be064d5f095db172f64a7da4f1b12b29261b4b5141aa99f6474b34596afae556e77e00f1a59aff9eb50c9fb1603fd9fbb4dc2f12cd2a524d6ff011efa39e246367f8b7a18855e06d414835fd5c902996567c8ff4959a2797bdabaa6e9c542a55200f6a3855d878c4ccf34db9bfd5ca738e6a24d42bc0438befa8de22dc1fe8c5b3fe0bedce35e0a596895b04298e087f55e0b6fe330a91f3f5074c8fed6a962657260e9ddd847d56775292c2caf98ef5da98408f2ec7704968a1759e471fede189f49186201a5433eba924df6e4b598c6f727f246d0e13ab3e1847749f1757499e9ce1ff3b42ff5703ec4488308f5bd9c56531d692cc5ebdc5f49835c7dcf79c05dffff9a14e5f15f3a47eaac1a7335f17a6b3c533d9c597eb26c2bf5fd6f15a3ef0175e59d97631bee1156ea05f20d10c8936caf9cd0eaacf5a1a484a5cdf530c2ef32d89cbd02f9188df8d485b064a467d8feaf12d1f7cc3537a63bf21f8ea1666a024221f561bfa0ed716ca6c71bedbf6c5350fdce11c9df138cae91324bbd79f407b74a3c9eac065e7a24853db7a0fee1e4aabb36d424dcd0f6d57e2195c53303370fb717099db0f2d13d438b48cb09fffa184c6a5c3f5b372c75c77fed55ccc25d11b73012995ddcebf2077027fdd0dda9ae82caf3a5cf5bd783afecb98446c0429269c12f06567b356df943e2edf81aab3b399cb96a17222c9c3e42c3f3a54ceb224954f372a4b518d847fe7bd58fff33c15bebbffaccaaf1bfdfcacca1f9e33540af877b3f2ead1a49957cb56cc6c3d9aa2bc7174adb2fbe826657fb61671bfb39f381ca33e7538a20025806b80c97f7338e20e381c0b01670f3a1ca1404f591c0e11d0e8f4b4d47529c94129afbdf6ea6b633dd1829475a91b57b98268da94351048da90e2edc9f18f983c34ec968cfe14a39ebd4cb32248bd6e63ca6b41b1e9491b56053dfb6a720a4243d3b9149cf07450dabab48d419b925edb084f50e8b54deb373e345ffaabafae4742352879d3daf52fd3afbe96f2345ff3a675ab92d625a7434b063181df9f7f8fb40fa3df463e3cde49e7fe9bf4fd4ffff7e9a7a6f0b459a0f704ea3b95a71305ea358da7a102bd22d0f393ff7bfaca6b29496bd6bf0a8de5fb6365d2a6f48d412b5336d2ab0685d35f4d4a1e9cbe6123f418174e4b4f4f494d4a87dedab0f1b54df4c6b457d771f16bd33624092a31c06c683cc774507880e9ffe64771ffc24c32f4271d1c1089fed7d5b87eb2ff2799c5ffe39c95c2f8ec1368b9403f12e8f8089e6e14e81b825e9c15d2bd843042db11011001c48f2124f9c32788044801144006f00078028601bc208f3760386004c0076d178f043a0acacb81fa02f503f8c3b30210f0d876341af0082010a0048c013c0a780c1004180b0806a800e3002180504018603c6002201cf03bc0e38027001301bf074c023c09980c88004c014c054c034402a6039e023c0d980198097806300bf0074014c81a0d72ce063a07680c5035d05868ab063017300f1007980f58007816b010f2fc11b008f01c6031f4c312a04b216d19f0880724407839e079c00b10fe13e045c00ac04b10f732201190047805400392012990be12900a58054883b8d580358074c05ac03ac0ab80f5909e01780db001b011e236015e076402de8011de0c7813f016e06d4016e0cf3e3bd03b002d4007c806e8010628c300720046e0970b3001b600f2005b01db00ef02f201f8bf02c07b937620165008cf45806280195002d801bc76024a0165805d80bf00de07940376032a20df1ec00780bd804a4015c4ef037c08a806fc15f011e063c07ec07f013e817c9f02fe06a8011c001c84f843000be030e033c011402de028e018e073401de038a01ef005e004e024a001700ad008380df8127006f015e0ef80af01df00fe01f816f01de02ce09f80ef01e74086f38026c005c00fd0433f3eb603fd04cf3f032e022ec118fc02b419f25f065c0158012d8056401bc00668075c055c035c0774006e006e026e016e033a01bf02ee00ba00dd801e801d7017d00bb807b80fe803f4031e001c8f7113c062614a59c293718b84f052fccfb49f1c8e18c0624022601de06dc016c04e4035e008e00ce047c03580e867f00d0041808980998038c072c02ac01b805c4009601fe030e034e002a01d5001380af81ed001b807905d7438fc01e3009301b3018b002f01d2016f024a006d971c8e1ec03e78ce051c069c0634036e031e00bc20fd11c078c03440312016100f5809781d50093804c8019c029c078cfbc5e1781ab000f012e00d402ee02f80c38033809f01b7015eb00f08063c0d5808580d987d19ea00ac0468215c063800380d6801dc038c82b450c062c024c0f4cb7cb95840c51587e313c071c049c0af0019ec1b1601d603720141563ead1ce874e119a707b5381c53007301db018720eeef8076c08b104e07bcddc2e75d348827a69f437c07e091569011c2be2d03e97321aee40a8f9302701c4263053d0a16a88aa3c9491b935ece4c4b06df6fd6334153834243830645cd7c26683a9f1b16fbf5af80bf36f699a065d18b97bebc64e91f17bd3cf95fc43ff9f254e7ba383678debad7c163480e5a9ff45adac6cdc142bcff758763386094409fee18083f2200c7e170cfb501044378e94d1eab018b04ccbe3110c6cf8b84f48583907b0bfa811089c4f093083fd2ed27fd373fea7ff993fd5ffeed4b76fa198877aa08c1b722785f2748ec4ae77ecd697cb864354f17ad199afefff59ff3ffc3323ce2ebbf4e19b5b6ade3128986fd5f95e83fbffffcfef3fbcfef3fbfff3ffd64e9fcbaeaa4016e74bc1b9dee46e7bad1e56e74951b7dc38de6bad11237bacf8d1e76a3a7dde80537daee46efba51d9daa134c08d8e77a3d3dde85c37badc8dae72a36fb8d15c375ae246f7b9d1c36ef4b41bbde046dbdde85d372a5b379406b8d1f16e74ba1b9deb4697bbd1556ef40d379aeb464bdce83e377ad88d9e76a317dc68bb1bbdeb4665af0ea5016e74bc1b9dee46e7bad1e56e74951b7dc38de6bad11237bacf8d1e76a3a7dde80537daee46efba51d9faa134c08d8e77a3d3dde85c37badc8dae72a36fb8d15c375ae246f7b9d1c36ef4b41bbde046dbdde85d372acb184a03dce878373add8dce75a3cbdde82a37fa861bcd75a3256e749f1b3dec464fbbd10b6eb4dd8dde75a3b2d786d200373ade8d4e77a373dde87237baca8dbee14673dd68891bdde7460fbbd1d36ef4821b6d77a377dda86cc3501ae046c7bbd1e96e74ae1b5dee4657b9d137dc68ae1b2d71a3fbdce861377ada8d5e70a3ed6ef4ae1b75eecb1dc2cfb93d3f7ec9838b1ffcfbdfbc0df93f99c1f709'
+ ISP_PROG = binascii.unhexlify(ISP_PROG)
+ ISP_PROG = zlib.decompress(ISP_PROG)
+
+ def printProgressBar (iteration, total, prefix = '', suffix = '', filename = '', decimals = 1, length = 100, fill = '='):
+ """
+ Call in a loop to create terminal progress bar
+ @params:
+ iteration - Required : current iteration (Int)
+ total - Required : total iterations (Int)
+ prefix - Optional : prefix string (Str)
+ suffix - Optional : suffix string (Str)
+ decimals - Optional : positive number of decimals in percent complete (Int)
+ length - Optional : character length of bar (Int)
+ fill - Optional : bar fill character (Str)
+ """
+ percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
+ filledLength = int(length * iteration // total)
+ bar = fill * filledLength + '-' * (length - filledLength)
+ KFlash.log('\r%s |%s| %s%% %s' % (prefix, bar, percent, suffix), end = '\r')
+ # Print New Line on Complete
+ if iteration == total:
+ KFlash.log()
+ if callback:
+ fileTypeStr = filename
+ if prefix == "Downloading ISP:":
+ fileTypeStr = "ISP"
+ elif prefix == "Programming BIN:" and fileTypeStr == "":
+ fileTypeStr = "BIN"
+ callback(fileTypeStr, iteration, total, suffix)
+
+ def slip_reader(port):
+ partial_packet = None
+ in_escape = False
+
+ while True:
+ waiting = port.inWaiting()
+ read_bytes = port.read(1 if waiting == 0 else waiting)
+ if read_bytes == b'':
+ raise_exception( Exception("Timed out waiting for packet %s" % ("header" if partial_packet is None else "content")) )
+ for b in read_bytes:
+
+ if type(b) is int:
+ b = bytes([b]) # python 2/3 compat
+
+ if partial_packet is None: # waiting for packet header
+ if b == b'\xc0':
+ partial_packet = b""
+ else:
+ raise_exception( Exception('Invalid head of packet (%r)' % b) )
+ elif in_escape: # part-way through escape sequence
+ in_escape = False
+ if b == b'\xdc':
+ partial_packet += b'\xc0'
+ elif b == b'\xdd':
+ partial_packet += b'\xdb'
+ else:
+ raise_exception( Exception('Invalid SLIP escape (%r%r)' % (b'\xdb', b)) )
+ elif b == b'\xdb': # start of escape sequence
+ in_escape = True
+ elif b == b'\xc0': # end of packet
+ yield partial_packet
+ partial_packet = None
+ else: # normal byte in packet
+ partial_packet += b
+
+
+ class ISPResponse:
+ class ISPOperation(Enum):
+ ISP_ECHO = 0xC1
+ ISP_NOP = 0xC2
+ ISP_MEMORY_WRITE = 0xC3
+ ISP_MEMORY_READ = 0xC4
+ ISP_MEMORY_BOOT = 0xC5
+ ISP_DEBUG_INFO = 0xD1
+ ISP_CHANGE_BAUDRATE = 0xc6
+
+ class ErrorCode(Enum):
+ ISP_RET_DEFAULT = 0
+ ISP_RET_OK = 0xE0
+ ISP_RET_BAD_DATA_LEN = 0xE1
+ ISP_RET_BAD_DATA_CHECKSUM = 0xE2
+ ISP_RET_INVALID_COMMAND = 0xE3
+
+ @staticmethod
+ def parse(data):
+ # type: (bytes) -> (int, int, str)
+ op = 0
+ reason = 0
+ text = ''
+ if len(data) < 2:
+ return op, reason, "data null"
+
+ if (sys.version_info > (3, 0)):
+ op = int(data[0])
+ reason = int(data[1])
+ else:
+ op = ord(data[0])
+ reason = ord(data[1])
+
+ try:
+ if ISPResponse.ISPOperation(op) == ISPResponse.ISPOperation.ISP_DEBUG_INFO:
+ text = data[2:].decode()
+ except ValueError:
+ KFlash.log('Warning: recv unknown op', op)
+
+ return (op, reason, text)
+
+
+ class FlashModeResponse:
+ class Operation(Enum):
+ ISP_DEBUG_INFO = 0xD1
+ ISP_NOP = 0xD2
+ ISP_FLASH_ERASE = 0xD3
+ ISP_FLASH_WRITE = 0xD4
+ ISP_REBOOT = 0xD5
+ ISP_UARTHS_BAUDRATE_SET = 0xD6
+ FLASHMODE_FLASH_INIT = 0xD7
+
+ class ErrorCode(Enum):
+ ISP_RET_DEFAULT = 0
+ ISP_RET_OK = 0xE0
+ ISP_RET_BAD_DATA_LEN = 0xE1
+ ISP_RET_BAD_DATA_CHECKSUM = 0xE2
+ ISP_RET_INVALID_COMMAND = 0xE3
+ ISP_RET_BAD_INITIALIZATION = 0xE4
+ ISP_RET_BAD_EXEC = 0xE5
+
+ @staticmethod
+ def parse(data):
+ # type: (bytes) -> (int, int, str)
+ op = 0
+ reason = 0
+ text = ''
+
+ if (sys.version_info > (3, 0)):
+ op = int(data[0])
+ reason = int(data[1])
+ else:
+ op = ord(data[0])
+ reason = ord(data[1])
+
+ if FlashModeResponse.Operation(op) == FlashModeResponse.Operation.ISP_DEBUG_INFO:
+ text = data[2:].decode()
+ reason_enum = FlashModeResponse.ErrorCode(reason)
+ if (not text) or (text.strip() == ""):
+ if reason_enum == FlashModeResponse.ErrorCode.ISP_RET_OK:
+ text = None
+ elif reason_enum == FlashModeResponse.ErrorCode.ISP_RET_BAD_DATA_LEN:
+ text = "bad data len"
+ elif reason_enum == FlashModeResponse.ErrorCode.ISP_RET_BAD_DATA_CHECKSUM:
+ text = "bad data checksum"
+ elif reason_enum == FlashModeResponse.ErrorCode.ISP_RET_BAD_INITIALIZATION:
+ text = "bad initialization"
+ elif reason_enum == FlashModeResponse.ErrorCode.ISP_RET_INVALID_COMMAND:
+ text = "invalid command"
+ elif reason_enum == FlashModeResponse.ErrorCode.ISP_RET_BAD_EXEC:
+ text = "execute cmd error"
+ else:
+ text = "unknown error"
+ return (op, reason, text)
+
+
+ def chunks(l, n, address=None):
+ """Yield successive n-sized chunks from l."""
+ if address != None and (address % n != 0):
+ start_pos = n - (address - address // n * n)
+ if start_pos % ISP_FLASH_SECTOR_SIZE != 0:
+ raise_exception(Exception("data should 4KiB align"))
+ count_4k_blocks = start_pos // ISP_FLASH_SECTOR_SIZE
+ count = math.ceil((len(l) - start_pos)/n) + count_4k_blocks
+ for i in range(count):
+ if i < count_4k_blocks:
+ yield l[ISP_FLASH_SECTOR_SIZE*i:ISP_FLASH_SECTOR_SIZE*(i+1)]
+ if ISP_FLASH_SECTOR_SIZE*(i+1) > len(l):
+ break
+ else:
+ start = start_pos+(i-count_4k_blocks)*n
+ yield l[start:start+n]
+ if start+n > len(l):
+ break
+ else:
+ for i in range(0, len(l), n):
+ yield l[i:i + n]
+
+ class TerminalSize:
+ @staticmethod
+ def getTerminalSize():
+ import platform
+ current_os = platform.system()
+ tuple_xy=None
+ if current_os == 'Windows':
+ tuple_xy = TerminalSize._getTerminalSize_windows()
+ if tuple_xy is None:
+ tuple_xy = TerminalSize._getTerminalSize_tput()
+ # needed for window's python in cygwin's xterm!
+ if current_os == 'Linux' or current_os == 'Darwin' or current_os.startswith('CYGWIN'):
+ tuple_xy = TerminalSize._getTerminalSize_linux()
+ if tuple_xy is None:
+ # Use default value
+ tuple_xy = (80, 25) # default value
+ return tuple_xy
+
+ @staticmethod
+ def _getTerminalSize_windows():
+ res=None
+ try:
+ from ctypes import windll, create_string_buffer
+
+ # stdin handle is -10
+ # stdout handle is -11
+ # stderr handle is -12
+
+ h = windll.kernel32.GetStdHandle(-12)
+ csbi = create_string_buffer(22)
+ res = windll.kernel32.GetConsoleScreenBufferInfo(h, csbi)
+ except:
+ return None
+ if res:
+ import struct
+ (bufx, bufy, curx, cury, wattr,
+ left, top, right, bottom, maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw)
+ sizex = right - left + 1
+ sizey = bottom - top + 1
+ return sizex, sizey
+ else:
+ return None
+
+ @staticmethod
+ def _getTerminalSize_tput():
+ # get terminal width
+ # src: http://stackoverflow.com/questions/263890/how-do-i-find-the-width-height-of-a-terminal-window
+ try:
+ import subprocess
+ proc=subprocess.Popen(["tput", "cols"],stdin=subprocess.PIPE,stdout=subprocess.PIPE)
+ output=proc.communicate(input=None)
+ cols=int(output[0])
+ proc=subprocess.Popen(["tput", "lines"],stdin=subprocess.PIPE,stdout=subprocess.PIPE)
+ output=proc.communicate(input=None)
+ rows=int(output[0])
+ return (cols,rows)
+ except:
+ return None
+
+ @staticmethod
+ def _getTerminalSize_linux():
+ def ioctl_GWINSZ(fd):
+ try:
+ import fcntl, termios, struct, os
+ cr = struct.unpack('hh', fcntl.ioctl(fd, termios.TIOCGWINSZ,'1234'))
+ except:
+ return None
+ return cr
+ cr = ioctl_GWINSZ(0) or ioctl_GWINSZ(1) or ioctl_GWINSZ(2)
+ if not cr:
+ try:
+ fd = os.open(os.ctermid(), os.O_RDONLY)
+ cr = ioctl_GWINSZ(fd)
+ os.close(fd)
+ except:
+ pass
+ if not cr:
+ try:
+ cr = (os.env['LINES'], os.env['COLUMNS'])
+ except:
+ return None
+ return int(cr[1]), int(cr[0])
+
+ @staticmethod
+ def get_terminal_size(fallback=(100, 24), terminal = False):
+ try:
+ columns, rows = TerminalSize.getTerminalSize()
+ if not terminal:
+ if not terminal_auto_size:
+ columns, rows = terminal_size
+ except:
+ columns, rows = fallback
+
+ return columns, rows
+
+ class MAIXLoader:
+ def change_baudrate(self, baudrate):
+ KFlash.log(INFO_MSG,"Selected Baudrate: ", baudrate, BASH_TIPS['DEFAULT'])
+ out = struct.pack('III', 0, 4, baudrate)
+ crc32_checksum = struct.pack('I', binascii.crc32(out) & 0xFFFFFFFF)
+ out = struct.pack('HH', 0xd6, 0x00) + crc32_checksum + out
+ self.write(out)
+ time.sleep(0.05)
+ self._port.baudrate = baudrate
+ if args.Board == "goE":
+ if baudrate >= 4500000:
+ # OPENEC super baudrate
+ KFlash.log(INFO_MSG, "Enable OPENEC super baudrate!!!", BASH_TIPS['DEFAULT'])
+ if baudrate == 4500000:
+ self._port.baudrate = 300
+ if baudrate == 6000000:
+ self._port.baudrate = 250
+ if baudrate == 7500000:
+ self._port.baudrate = 350
+
+ def change_baudrate_stage0(self, baudrate):
+ # Dangerous, here are dinosaur infested!!!!!
+ # Don't touch this code unless you know what you are doing
+ # Stage0 baudrate is fixed
+ # Contributor: [@rgwan](https://github.com/rgwan)
+ # rgwan <dv.xw@qq.com>
+ baudrate = 1500000
+ if args.Board == "goE" or args.Board == "trainer":
+ KFlash.log(INFO_MSG,"Selected Stage0 Baudrate: ", baudrate, BASH_TIPS['DEFAULT'])
+ # This is for openec, contained ft2232, goE and trainer
+ KFlash.log(INFO_MSG,"FT2232 mode", BASH_TIPS['DEFAULT'])
+ baudrate_stage0 = int(baudrate * 38.6 / 38)
+ out = struct.pack('III', 0, 4, baudrate_stage0)
+ crc32_checksum = struct.pack('I', binascii.crc32(out) & 0xFFFFFFFF)
+ out = struct.pack('HH', 0xc6, 0x00) + crc32_checksum + out
+ self.write(out)
+ time.sleep(0.05)
+ self._port.baudrate = baudrate
+
+ retry_count = 0
+ while 1:
+ self.checkKillExit()
+ retry_count = retry_count + 1
+ if retry_count > 3:
+ err = (ERROR_MSG,'Fast mode failed, please use slow mode by add parameter ' + BASH_TIPS['GREEN'] + '--Slow', BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ try:
+ self.greeting()
+ break
+ except TimeoutError:
+ pass
+ elif args.Board == "dan" or args.Board == "bit" or args.Board == "kd233":
+ KFlash.log(INFO_MSG,"CH340 mode", BASH_TIPS['DEFAULT'])
+ # This is for CH340, contained dan, bit and kd233
+ baudrate_stage0 = int(baudrate * 38.4 / 38)
+ # CH340 can not use this method, test failed, take risks at your own risk
+ else:
+ # This is for unknown board
+ KFlash.log(WARN_MSG,"Unknown mode", BASH_TIPS['DEFAULT'])
+
+ def __init__(self, port='/dev/ttyUSB1', baudrate=115200):
+ # configure the serial connections (the parameters differs on the device you are connecting to)
+ self._port = serial.Serial(
+ port=port,
+ baudrate=baudrate,
+ parity=serial.PARITY_NONE,
+ stopbits=serial.STOPBITS_ONE,
+ bytesize=serial.EIGHTBITS,
+ timeout=0.1
+ )
+ KFlash.log(INFO_MSG, "Default baudrate is", baudrate, ", later it may be changed to the value you set.", BASH_TIPS['DEFAULT'])
+
+ self._port.isOpen()
+ self._slip_reader = slip_reader(self._port)
+ self._kill_process = False
+
+ """ Read a SLIP packet from the serial port """
+
+ def read(self):
+ return next(self._slip_reader)
+
+ """ Write bytes to the serial port while performing SLIP escaping """
+
+ def write(self, packet):
+ buf = b'\xc0' \
+ + (packet.replace(b'\xdb', b'\xdb\xdd').replace(b'\xc0', b'\xdb\xdc')) \
+ + b'\xc0'
+ #KFlash.log('[WRITE]', binascii.hexlify(buf))
+ return self._port.write(buf)
+
+ def read_loop(self):
+ #out = b''
+ # while self._port.inWaiting() > 0:
+ # out += self._port.read(1)
+
+ # KFlash.log(out)
+ while 1:
+ sys.stdout.write('[RECV] raw data: ')
+ sys.stdout.write(binascii.hexlify(self._port.read(1)).decode())
+ sys.stdout.flush()
+
+ def recv_one_return(self, timeout_s = None):
+ timeout_init = time.time()
+ data = b''
+ if timeout_s == None:
+ timeout_s = ISP_RECEIVE_TIMEOUT
+ # find start boarder
+ #sys.stdout.write('[RECV one return] raw data: ')
+ while 1:
+ if time.time() - timeout_init > timeout_s:
+ raise_exception( TimeoutError )
+ c = self._port.read(1)
+ #sys.stdout.write(binascii.hexlify(c).decode())
+ sys.stdout.flush()
+ if c == b'\xc0':
+ break
+
+ in_escape = False
+ while 1:
+ if time.time() - timeout_init > timeout_s:
+ raise_exception( TimeoutError )
+ c = self._port.read(1)
+ #sys.stdout.write(binascii.hexlify(c).decode())
+ sys.stdout.flush()
+ if c == b'\xc0':
+ break
+
+ elif in_escape: # part-way through escape sequence
+ in_escape = False
+ if c == b'\xdc':
+ data += b'\xc0'
+ elif c == b'\xdd':
+ data += b'\xdb'
+ else:
+ raise_exception( Exception('Invalid SLIP escape (%r%r)' % (b'\xdb', c)) )
+ elif c == b'\xdb': # start of escape sequence
+ in_escape = True
+
+ data += c
+
+ #sys.stdout.write('\n')
+ return data
+
+ # kd233 or open-ec or new cmsis-dap
+ def reset_to_isp_kd233(self):
+ self._port.setDTR (False)
+ self._port.setRTS (False)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to LOW, IO16 to HIGH --')
+ # Pull reset down and keep 10ms
+ self._port.setDTR (True)
+ self._port.setRTS (False)
+ time.sleep(0.1)
+ #KFlash.log('-- IO16 to LOW, RESET to HIGH --')
+ # Pull IO16 to low and release reset
+ self._port.setRTS (True)
+ self._port.setDTR (False)
+ time.sleep(0.1)
+ def reset_to_boot_kd233(self):
+ self._port.setDTR (False)
+ self._port.setRTS (False)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to LOW --')
+ # Pull reset down and keep 10ms
+ self._port.setDTR (True)
+ self._port.setRTS (False)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to HIGH, BOOT --')
+ # Pull IO16 to low and release reset
+ self._port.setRTS (False)
+ self._port.setDTR (False)
+ time.sleep(0.1)
+
+ #dan dock
+ def reset_to_isp_dan(self):
+ self._port.setDTR (False)
+ self._port.setRTS (False)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to LOW, IO16 to HIGH --')
+ # Pull reset down and keep 10ms
+ self._port.setDTR (False)
+ self._port.setRTS (True)
+ time.sleep(0.1)
+ #KFlash.log('-- IO16 to LOW, RESET to HIGH --')
+ # Pull IO16 to low and release reset
+ self._port.setRTS (False)
+ self._port.setDTR (True)
+ time.sleep(0.1)
+ def reset_to_boot_dan(self):
+ self._port.setDTR (False)
+ self._port.setRTS (False)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to LOW --')
+ # Pull reset down and keep 10ms
+ self._port.setDTR (False)
+ self._port.setRTS (True)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to HIGH, BOOT --')
+ # Pull IO16 to low and release reset
+ self._port.setRTS (False)
+ self._port.setDTR (False)
+ time.sleep(0.1)
+
+ # maix goD for old cmsis-dap firmware
+ def reset_to_isp_goD(self):
+ self._port.setDTR (True) ## output 0
+ self._port.setRTS (True)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to LOW --')
+ # Pull reset down and keep 10ms
+ self._port.setRTS (False)
+ self._port.setDTR (True)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to HIGH, BOOT --')
+ # Pull IO16 to low and release reset
+ self._port.setRTS (False)
+ self._port.setDTR (True)
+ time.sleep(0.1)
+ def reset_to_boot_goD(self):
+ self._port.setDTR (False)
+ self._port.setRTS (False)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to LOW --')
+ # Pull reset down and keep 10ms
+ self._port.setRTS (False)
+ self._port.setDTR (True)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to HIGH, BOOT --')
+ # Pull IO16 to low and release reset
+ self._port.setRTS (True)
+ self._port.setDTR (True)
+ time.sleep(0.1)
+
+ # maix goE for openec or new cmsis-dap firmware
+ def reset_to_boot_maixgo(self):
+ self._port.setDTR (False)
+ self._port.setRTS (False)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to LOW --')
+ # Pull reset down and keep 10ms
+ self._port.setRTS (False)
+ self._port.setDTR (True)
+ time.sleep(0.1)
+ #KFlash.log('-- RESET to HIGH, BOOT --')
+ # Pull IO16 to low and release reset
+ self._port.setRTS (False)
+ self._port.setDTR (False)
+ time.sleep(0.1)
+
+ def greeting(self):
+ self._port.write(b'\xc0\xc2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0')
+ op, reason, text = ISPResponse.parse(self.recv_one_return())
+
+ #KFlash.log('MAIX return op:', ISPResponse.ISPOperation(op).name, 'reason:', ISPResponse.ErrorCode(reason).name)
+
+
+ def flash_greeting(self):
+ retry_count = 0
+ while 1:
+ self.checkKillExit()
+ try:
+ self._port.write(b'\xc0\xd2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0')
+ except Exception:
+ raise_exception( Exception("Connection disconnected, try again or maybe need use Slow mode, or decrease baudrate") )
+ retry_count = retry_count + 1
+ try:
+ op, reason, text = FlashModeResponse.parse(self.recv_one_return())
+ except IndexError:
+ if retry_count > MAX_RETRY_TIMES:
+ err = (ERROR_MSG,"Failed to Connect to K210's Stub",BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ KFlash.log(WARN_MSG,"Index Error, retrying...",BASH_TIPS['DEFAULT'])
+ time.sleep(0.1)
+ continue
+ except TimeoutError:
+ if retry_count > MAX_RETRY_TIMES:
+ err = (ERROR_MSG,"Failed to Connect to K210's Stub",BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ KFlash.log(WARN_MSG,"Timeout Error, retrying...",BASH_TIPS['DEFAULT'])
+ time.sleep(0.1)
+ continue
+ except:
+ if retry_count > MAX_RETRY_TIMES:
+ err = (ERROR_MSG,"Failed to Connect to K210's Stub",BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ KFlash.log(WARN_MSG,"Unexcepted Error, retrying...",BASH_TIPS['DEFAULT'])
+ time.sleep(0.1)
+ continue
+ # KFlash.log('MAIX return op:', FlashModeResponse.Operation(op).name, 'reason:',
+ # FlashModeResponse.ErrorCode(reason).name)
+ if FlashModeResponse.Operation(op) == FlashModeResponse.Operation.ISP_NOP and FlashModeResponse.ErrorCode(reason) == FlashModeResponse.ErrorCode.ISP_RET_OK:
+ KFlash.log(INFO_MSG,"Boot to Flashmode Successfully",BASH_TIPS['DEFAULT'])
+ self._port.flushInput()
+ self._port.flushOutput()
+ break
+ else:
+ if retry_count > MAX_RETRY_TIMES:
+ err = (ERROR_MSG,"Failed to Connect to K210's Stub",BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ KFlash.log(WARN_MSG,"Unexcepted Return recevied, retrying...",BASH_TIPS['DEFAULT'])
+ time.sleep(0.1)
+ continue
+
+ def boot(self, address=0x80000000):
+ KFlash.log(INFO_MSG,"Booting From " + hex(address),BASH_TIPS['DEFAULT'])
+
+ out = struct.pack('II', address, 0)
+
+ crc32_checksum = struct.pack('I', binascii.crc32(out) & 0xFFFFFFFF)
+
+ out = struct.pack('HH', 0xc5, 0x00) + crc32_checksum + out # op: ISP_MEMORY_WRITE: 0xc3
+ self.write(out)
+
+ def recv_debug(self):
+ ret = self.recv_one_return()
+ if len(ret) < 2:
+ KFlash.log('-' * 30)
+ KFlash.log("receive data time out")
+ KFlash.log('-' * 30)
+ return False
+ op, reason, text = ISPResponse.parse(ret)
+ #KFlash.log('[RECV] op:', ISPResponse.ISPOperation(op).name, 'reason:', ISPResponse.ErrorCode(reason).name)
+ if text:
+ KFlash.log('-' * 30)
+ KFlash.log(text)
+ KFlash.log('-' * 30)
+ if ISPResponse.ErrorCode(reason) not in (ISPResponse.ErrorCode.ISP_RET_DEFAULT, ISPResponse.ErrorCode.ISP_RET_OK):
+ KFlash.log('Failed, retry, errcode=', hex(reason))
+ return False
+ return True
+
+ def flash_recv_debug(self):
+ op, reason, text = FlashModeResponse.parse(self.recv_one_return())
+ #KFlash.log('[Flash-RECV] op:', FlashModeResponse.Operation(op).name, 'reason:',
+ # FlashModeResponse.ErrorCode(reason).name)
+ if text:
+ KFlash.log('-' * 30)
+ KFlash.log(text)
+ KFlash.log('-' * 30)
+
+ if FlashModeResponse.ErrorCode(reason) not in (FlashModeResponse.ErrorCode.ISP_RET_OK, FlashModeResponse.ErrorCode.ISP_RET_OK):
+ KFlash.log('Failed, retry')
+ return False
+ return True
+
+ def init_flash(self, chip_type):
+ chip_type = int(chip_type)
+ KFlash.log(INFO_MSG,"Selected Flash: ",("In-Chip", "On-Board")[chip_type],BASH_TIPS['DEFAULT'])
+ out = struct.pack('II', chip_type, 0)
+ crc32_checksum = struct.pack('I', binascii.crc32(out) & 0xFFFFFFFF)
+ out = struct.pack('HH', 0xd7, 0x00) + crc32_checksum + out
+ '''Retry when it have error'''
+ retry_count = 0
+ while 1:
+ self.checkKillExit()
+ sent = self.write(out)
+ retry_count = retry_count + 1
+ try:
+ op, reason, text = FlashModeResponse.parse(self.recv_one_return())
+ except IndexError:
+ if retry_count > MAX_RETRY_TIMES:
+ err = (ERROR_MSG,"Failed to initialize flash",BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ KFlash.log(WARN_MSG,"Index Error, retrying...",BASH_TIPS['DEFAULT'])
+ time.sleep(0.1)
+ continue
+ except TimeoutError:
+ if retry_count > MAX_RETRY_TIMES:
+ err = (ERROR_MSG,"Failed to initialize flash",BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ KFlash.log(WARN_MSG,"Timeout Error, retrying...",BASH_TIPS['DEFAULT'])
+ time.sleep(0.1)
+ continue
+ except:
+ if retry_count > MAX_RETRY_TIMES:
+ err = (ERROR_MSG,"Failed to initialize flash",BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ KFlash.log(WARN_MSG,"Unexcepted Error, retrying...",BASH_TIPS['DEFAULT'])
+ time.sleep(0.1)
+ continue
+ # KFlash.log('MAIX return op:', FlashModeResponse.Operation(op).name, 'reason:',
+ # FlashModeResponse.ErrorCode(reason).name)
+ if FlashModeResponse.Operation(op) == FlashModeResponse.Operation.FLASHMODE_FLASH_INIT and FlashModeResponse.ErrorCode(reason) == FlashModeResponse.ErrorCode.ISP_RET_OK:
+ KFlash.log(INFO_MSG,"Initialization flash Successfully",BASH_TIPS['DEFAULT'])
+ break
+ else:
+ if retry_count > MAX_RETRY_TIMES:
+ err = (ERROR_MSG,"Failed to initialize flash",BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ KFlash.log(WARN_MSG,"Unexcepted Return recevied, retrying...",BASH_TIPS['DEFAULT'])
+ time.sleep(0.1)
+ continue
+
+ def flash_dataframe(self, data, address=0x80000000):
+ DATAFRAME_SIZE = 1024
+ data_chunks = chunks(data, DATAFRAME_SIZE)
+ #KFlash.log('[DEBUG] flash dataframe | data length:', len(data))
+ total_chunk = math.ceil(len(data)/DATAFRAME_SIZE)
+
+ time_start = time.time()
+ for n, chunk in enumerate(data_chunks):
+ self.checkKillExit()
+ while 1:
+ self.checkKillExit()
+ #KFlash.log('[INFO] sending chunk', i, '@address', hex(address), 'chunklen', len(chunk))
+ out = struct.pack('II', address, len(chunk))
+
+ crc32_checksum = struct.pack('I', binascii.crc32(out + chunk) & 0xFFFFFFFF)
+
+ out = struct.pack('HH', 0xc3, 0x00) + crc32_checksum + out + chunk # op: ISP_MEMORY_WRITE: 0xc3
+ sent = self.write(out)
+ #KFlash.log('[INFO]', 'sent', sent, 'bytes', 'checksum', binascii.hexlify(crc32_checksum).decode())
+
+ address += len(chunk)
+
+ if self.recv_debug():
+ break
+
+ columns, lines = TerminalSize.get_terminal_size((100, 24), terminal)
+ time_delta = time.time() - time_start
+ speed = ''
+ if (time_delta > 1):
+ speed = str(int((n + 1) * DATAFRAME_SIZE / 1024.0 / time_delta)) + 'kiB/s'
+ printProgressBar(n+1, total_chunk, prefix = 'Downloading ISP:', suffix = speed, length = columns - 35)
+
+ def dump_to_flash(self, data, address=0, size=None):
+ '''
+ typedef struct __attribute__((packed)) {
+ uint8_t op;
+ int32_t checksum; /* All the fields below are involved in the calculation of checksum */
+ uint32_t address;
+ uint32_t data_len;
+ uint8_t data_buf[1024];
+ } isp_request_t;
+ '''
+ if size == None:
+ DATAFRAME_SIZE = ISP_FLASH_DATA_FRAME_SIZE
+ size = DATAFRAME_SIZE
+ data_chunks = chunks(data, size)
+ #KFlash.log('[DEBUG] flash dataframe | data length:', len(data))
+
+
+
+ for n, chunk in enumerate(data_chunks):
+ #KFlash.log('[INFO] sending chunk', i, '@address', hex(address))
+ out = struct.pack('II', address, len(chunk))
+
+ crc32_checksum = struct.pack('I', binascii.crc32(out + chunk) & 0xFFFFFFFF)
+
+ out = struct.pack('HH', 0xd4, 0x00) + crc32_checksum + out + chunk
+ #KFlash.log("[$$$$]", binascii.hexlify(out[:32]).decode())
+ retry_count = 0
+ while True:
+ try:
+ sent = self.write(out)
+ #KFlash.log('[INFO]', 'sent', sent, 'bytes', 'checksum', crc32_checksum)
+ self.flash_recv_debug()
+ except:
+ retry_count = retry_count + 1
+ if retry_count > MAX_RETRY_TIMES:
+ err = (ERROR_MSG,"Error Count Exceeded, Stop Trying",BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ continue
+ break
+ address += len(chunk)
+
+
+
+ def flash_erase(self, erase_addr = 0, erase_len = 0):
+ #KFlash.log('[DEBUG] erasing spi flash.')
+ cmd0 = b'\xd3\x00\x00\x00'
+ cmd = struct.pack("I", erase_addr)
+ cmd += struct.pack("I", erase_len)
+ cmd = cmd0 + struct.pack('I', binascii.crc32(cmd) & 0xFFFFFFFF) + cmd
+ self.write(cmd)
+ t = time.time()
+ op, reason, text = FlashModeResponse.parse(self.recv_one_return(timeout_s=90))
+ if FlashModeResponse.ErrorCode(reason) != FlashModeResponse.ErrorCode.ISP_RET_OK:
+ err = (ERROR_MSG,"erase error, error code: 0x{:02X}: {}".format(reason, text))
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ else:
+ KFlash.log(INFO_MSG,"erase ok")
+ #KFlash.log('MAIX return op:', FlashModeResponse.Operation(op).name, 'reason:',
+ # FlashModeResponse.ErrorCode(reason).name)
+
+ def install_flash_bootloader(self, data):
+ # Download flash bootloader
+ self.flash_dataframe(data, address=0x80000000)
+
+ def load_elf_to_sram(self, f):
+ try:
+ from elftools.elf.elffile import ELFFile
+ from elftools.elf.descriptions import describe_p_type
+ except ImportError:
+ err = (ERROR_MSG,'pyelftools must be installed, run '+BASH_TIPS['GREEN']+'`' + ('pip', 'pip3')[sys.version_info > (3, 0)] + ' install pyelftools`',BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+
+ elffile = ELFFile(f)
+ if elffile['e_entry'] != 0x80000000:
+ KFlash.log(WARN_MSG,"ELF entry is 0x%x instead of 0x80000000" % (elffile['e_entry']), BASH_TIPS['DEFAULT'])
+
+ for segment in elffile.iter_segments():
+ t = describe_p_type(segment['p_type'])
+ KFlash.log(INFO_MSG, ("Program Header: Size: %d, Virtual Address: 0x%x, Type: %s" % (segment['p_filesz'], segment['p_vaddr'], t)), BASH_TIPS['DEFAULT'])
+ if not (segment['p_vaddr'] & 0x80000000):
+ continue
+ if segment['p_filesz']==0 or segment['p_vaddr']==0:
+ KFlash.log("Skipped")
+ continue
+ self.flash_dataframe(segment.data(), segment['p_vaddr'])
+
+ def flash_firmware(self, firmware_bin, aes_key = None, address_offset = 0, sha256Prefix = True, filename = ""):
+ # type: (bytes, bytes, int, bool) -> None
+ # Don't remove above code!
+
+ #KFlash.log('[DEBUG] flash_firmware DEBUG: aeskey=', aes_key)
+
+ if sha256Prefix == True:
+ # Add header to the firmware
+ # Format: SHA256(after)(32bytes) + AES_CIPHER_FLAG (1byte) + firmware_size(4bytes) + firmware_data
+ aes_cipher_flag = b'\x01' if aes_key else b'\x00'
+
+ # Encryption
+ if aes_key:
+ enc = AES_128_CBC(aes_key, iv=b'\x00'*16).encrypt
+ padded = firmware_bin + b'\x00'*15 # zero pad
+ firmware_bin = b''.join([enc(padded[i*16:i*16+16]) for i in range(len(padded)//16)])
+
+ firmware_len = len(firmware_bin)
+
+ data = aes_cipher_flag + struct.pack('I', firmware_len) + firmware_bin
+
+ sha256_hash = hashlib.sha256(data).digest()
+
+ firmware_with_header = data + sha256_hash
+
+ total_len = (len(firmware_with_header) + ISP_FLASH_SECTOR_SIZE - 1)//ISP_FLASH_SECTOR_SIZE * ISP_FLASH_SECTOR_SIZE
+ # Slice download firmware
+ data_chunks = chunks(firmware_with_header, ISP_FLASH_DATA_FRAME_SIZE) # 4kiB for a sector, 16kiB for dataframe
+ else:
+ total_len = (len(firmware_bin) + ISP_FLASH_SECTOR_SIZE - 1)//ISP_FLASH_SECTOR_SIZE * ISP_FLASH_SECTOR_SIZE
+ data_chunks = chunks(firmware_bin, ISP_FLASH_DATA_FRAME_SIZE, address = address_offset)
+
+ time_start = time.time()
+ write_len = 0
+ for n, chunk in enumerate(data_chunks):
+ self.checkKillExit()
+ # 4K align
+ aligned_chunk = len(chunk)
+ aligned_chunk = (ISP_FLASH_SECTOR_SIZE - (aligned_chunk % ISP_FLASH_SECTOR_SIZE))%ISP_FLASH_SECTOR_SIZE + aligned_chunk
+ chunk = chunk.ljust(aligned_chunk, b'\x00') # align by size of dataframe
+
+ # Download a dataframe
+ #KFlash.log('[INFO]', 'Write firmware data piece')
+ chunk_len = len(chunk)
+ self.dump_to_flash(chunk, address= write_len + address_offset, size=chunk_len)
+ write_len += chunk_len
+ columns, lines = TerminalSize.get_terminal_size((100, 24), terminal)
+ time_delta = time.time() - time_start
+ speed = ''
+ if (time_delta > 1):
+ speed = str(int(write_len / 1024.0 / time_delta)) + 'kiB/s'
+ printProgressBar(write_len, total_len, prefix = 'Programming BIN:', filename=filename, suffix = speed, length = columns - 35)
+
+ def kill(self):
+ self._kill_process = True
+
+ def checkKillExit(self):
+ if self._kill_process:
+ self._port.close()
+ self._kill_process = False
+ raise Exception("Cancel")
+
+ def open_terminal(reset):
+ control_signal = '0' if reset else '1'
+ control_signal_b = not reset
+ import serial.tools.miniterm
+ # For using the terminal with MaixPy the 'filter' option must be set to 'direct'
+ # because some control characters are emited
+ sys.argv = [sys.argv[0], _port, '115200', '--dtr='+control_signal, '--rts='+control_signal, '--filter=direct']
+ serial.tools.miniterm.main(default_port=_port, default_baudrate=115200, default_dtr=control_signal_b, default_rts=control_signal_b)
+ sys.exit(0)
+
+ boards_choices = ["kd233", "dan", "bit", "bit_mic", "goE", "goD", "maixduino", "trainer"]
+ if terminal:
+ parser = argparse.ArgumentParser()
+ parser.add_argument("-p", "--port", help="COM Port", default="DEFAULT")
+ parser.add_argument("-f", "--flash", help="SPI Flash type, 0 for SPI3, 1 for SPI0", default=1)
+ parser.add_argument("-b", "--baudrate", type=int, help="UART baudrate for uploading firmware", default=115200)
+ parser.add_argument("-l", "--bootloader", help="Bootloader bin path", required=False, default=None)
+ parser.add_argument("-k", "--key", help="AES key in hex, if you need encrypt your firmware.", required=False, default=None)
+ parser.add_argument("-v", "--version", help="Print version.", action='version', version='0.8.3')
+ parser.add_argument("--verbose", help="Increase output verbosity", default=False, action="store_true")
+ parser.add_argument("-t", "--terminal", help="Start a terminal after finish (Python miniterm)", default=False, action="store_true")
+ parser.add_argument("-n", "--noansi", help="Do not use ANSI colors, recommended in Windows CMD", default=False, action="store_true")
+ parser.add_argument("-s", "--sram", help="Download firmware to SRAM and boot", default=False, action="store_true")
+ parser.add_argument("-B", "--Board",required=False, type=str, help="Select dev board, e.g. kd233, dan, bit, goD, goE or trainer")
+ parser.add_argument("-S", "--Slow",required=False, help="Slow download mode", default=False)
+ parser.add_argument("-A", "--addr",required=False, help="flash addr", type=str, default="-1")
+ parser.add_argument("-L", "--length",required=False, help="flash addr", type=str, default="-1")
+ parser.add_argument("firmware", help="firmware bin path")
+ args = parser.parse_args()
+ else:
+ args = argparse.Namespace()
+ setattr(args, "port", "DEFAULT")
+ setattr(args, "flash", 1)
+ setattr(args, "baudrate", 115200)
+ setattr(args, "bootloader", None)
+ setattr(args, "key", None)
+ setattr(args, "verbose", False)
+ setattr(args, "terminal", False)
+ setattr(args, "noansi", False)
+ setattr(args, "sram", False)
+ setattr(args, "Board", None)
+ setattr(args, "Slow", False)
+ setattr(args, "addr", -1)
+ setattr(args, "length", -1)
+
+ # udpate args for none terminal call
+ if not terminal:
+ args.port = dev
+ args.baudrate = baudrate
+ args.noansi = noansi
+ args.sram = sram
+ args.Board = board
+ args.firmware = file
+ args.Slow = slow_mode
+ args.addr = addr
+ args.length = length
+
+ if args.Board == "maixduino" or args.Board == "bit_mic":
+ args.Board = "goE"
+
+ if (args.noansi == True):
+ BASH_TIPS = dict(NORMAL='',BOLD='',DIM='',UNDERLINE='',
+ DEFAULT='', RED='', YELLOW='', GREEN='',
+ BG_DEFAULT='', BG_WHITE='')
+ ERROR_MSG = BASH_TIPS['RED']+BASH_TIPS['BOLD']+'[ERROR]'+BASH_TIPS['NORMAL']
+ WARN_MSG = BASH_TIPS['YELLOW']+BASH_TIPS['BOLD']+'[WARN]'+BASH_TIPS['NORMAL']
+ INFO_MSG = BASH_TIPS['GREEN']+BASH_TIPS['BOLD']+'[INFO]'+BASH_TIPS['NORMAL']
+ KFlash.log(INFO_MSG,'ANSI colors not used',BASH_TIPS['DEFAULT'])
+
+ manually_set_the_board = False
+ if args.Board:
+ manually_set_the_board = True
+
+ if args.port == "DEFAULT":
+ if args.Board == "goE":
+ list_port_info = list(serial.tools.list_ports.grep("0403")) #Take the second one
+ if len(list_port_info) == 0:
+ err = (ERROR_MSG,"No vaild COM Port found in Auto Detect, Check Your Connection or Specify One by"+BASH_TIPS['GREEN']+'`--port/-p`',BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ list_port_info.sort()
+ if len(list_port_info) == 1:
+ _port = list_port_info[0].device
+ elif len(list_port_info) > 1:
+ _port = list_port_info[1].device
+ KFlash.log(INFO_MSG,"COM Port Auto Detected, Selected ", _port, BASH_TIPS['DEFAULT'])
+ elif args.Board == "trainer":
+ list_port_info = list(serial.tools.list_ports.grep("0403")) #Take the first one
+ if(len(list_port_info)==0):
+ err = (ERROR_MSG,"No vaild COM Port found in Auto Detect, Check Your Connection or Specify One by"+BASH_TIPS['GREEN']+'`--port/-p`',BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ list_port_info.sort()
+ _port = list_port_info[0].device
+ KFlash.log(INFO_MSG,"COM Port Auto Detected, Selected ", _port, BASH_TIPS['DEFAULT'])
+ else:
+ try:
+ list_port_info = next(serial.tools.list_ports.grep(VID_LIST_FOR_AUTO_LOOKUP)) #Take the first one within the list
+ _port = list_port_info.device
+ KFlash.log(INFO_MSG,"COM Port Auto Detected, Selected ", _port, BASH_TIPS['DEFAULT'])
+ except StopIteration:
+ err = (ERROR_MSG,"No vaild COM Port found in Auto Detect, Check Your Connection or Specify One by"+BASH_TIPS['GREEN']+'`--port/-p`',BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ else:
+ _port = args.port
+ KFlash.log(INFO_MSG,"COM Port Selected Manually: ", _port, BASH_TIPS['DEFAULT'])
+
+ self.loader = MAIXLoader(port=_port, baudrate=115200)
+ file_format = ProgramFileFormat.FMT_BINARY
+
+ # 0. Check firmware or cmd
+ cmds = ['erase']
+ if not args.firmware in cmds:
+ if not os.path.exists(args.firmware):
+ err = (ERROR_MSG,'Unable to find the firmware at ', args.firmware, BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+
+ with open(args.firmware, 'rb') as f:
+ file_header = f.read(4)
+ #if file_header.startswith(bytes([0x50, 0x4B])):
+ if file_header.startswith(b'\x50\x4B'):
+ if ".kfpkg" != os.path.splitext(args.firmware)[1]:
+ KFlash.log(INFO_MSG, 'Find a zip file, but not with ext .kfpkg:', args.firmware, BASH_TIPS['DEFAULT'])
+ else:
+ file_format = ProgramFileFormat.FMT_KFPKG
+
+ #if file_header.startswith(bytes([0x7F, 0x45, 0x4C, 0x46])):
+ if file_header.startswith(b'\x7f\x45\x4c\x46'):
+ file_format = ProgramFileFormat.FMT_ELF
+ if args.sram:
+ KFlash.log(INFO_MSG, 'Find an ELF file:', args.firmware, BASH_TIPS['DEFAULT'])
+ else:
+ err = (ERROR_MSG, 'This is an ELF file and cannot be programmed to flash directly:', args.firmware, BASH_TIPS['DEFAULT'] , '\r\nPlease retry:', args.firmware + '.bin', BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+
+ # 1. Greeting.
+ KFlash.log(INFO_MSG,"Trying to Enter the ISP Mode...",BASH_TIPS['DEFAULT'])
+
+ retry_count = 0
+
+ while 1:
+ self.checkKillExit()
+ if not self.loader._port.isOpen():
+ self.loader._port.open()
+ try:
+ retry_count = retry_count + 1
+ if retry_count > 15:
+ err = (ERROR_MSG,"No vaild Kendryte K210 found in Auto Detect, Check Your Connection or Specify One by"+BASH_TIPS['GREEN']+'`-p '+('/dev/ttyUSB0', 'COM3')[sys.platform == 'win32']+'`',BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ if args.Board == "dan" or args.Board == "bit" or args.Board == "trainer":
+ try:
+ KFlash.log('.', end='')
+ self.loader.reset_to_isp_dan()
+ self.loader.greeting()
+ break
+ except TimeoutError:
+ pass
+ elif args.Board == "kd233":
+ try:
+ KFlash.log('_', end='')
+ self.loader.reset_to_isp_kd233()
+ self.loader.greeting()
+ break
+ except TimeoutError:
+ pass
+ elif args.Board == "goE":
+ try:
+ KFlash.log('*', end='')
+ self.loader.reset_to_isp_kd233()
+ self.loader.greeting()
+ break
+ except TimeoutError:
+ pass
+ elif args.Board == "goD":
+ try:
+ KFlash.log('#', end='')
+ self.loader.reset_to_isp_goD()
+ self.loader.greeting()
+ break
+ except TimeoutError:
+ pass
+ else:
+ try:
+ KFlash.log('.', end='')
+ self.loader.reset_to_isp_dan()
+ self.loader.greeting()
+ args.Board = "dan"
+ KFlash.log()
+ KFlash.log(INFO_MSG,"Automatically detected dan/bit/trainer",BASH_TIPS['DEFAULT'])
+ break
+ except TimeoutError:
+ if not self.loader._port.isOpen():
+ self.loader._port.open()
+ pass
+ try:
+ KFlash.log('_', end='')
+ self.loader.reset_to_isp_kd233()
+ self.loader.greeting()
+ args.Board = "kd233"
+ KFlash.log()
+ KFlash.log(INFO_MSG,"Automatically detected goE/kd233",BASH_TIPS['DEFAULT'])
+ break
+ except TimeoutError:
+ if not self.loader._port.isOpen():
+ self.loader._port.open()
+ pass
+ try:
+ KFlash.log('.', end='')
+ self.loader.reset_to_isp_goD()
+ self.loader.greeting()
+ args.Board = "goD"
+ KFlash.log()
+ KFlash.log(INFO_MSG,"Automatically detected goD",BASH_TIPS['DEFAULT'])
+ break
+ except TimeoutError:
+ if not self.loader._port.isOpen():
+ self.loader._port.open()
+ pass
+ try:
+ # Magic, just repeat, don't remove, it may unstable, don't know why.
+ KFlash.log('_', end='')
+ self.loader.reset_to_isp_kd233()
+ self.loader.greeting()
+ args.Board = "kd233"
+ KFlash.log()
+ KFlash.log(INFO_MSG,"Automatically detected goE/kd233",BASH_TIPS['DEFAULT'])
+ break
+ except TimeoutError:
+ if not self.loader._port.isOpen():
+ self.loader._port.open()
+ pass
+ except Exception as e:
+ KFlash.log()
+ raise_exception( Exception("Greeting fail, check serial port ("+str(e)+")" ) )
+
+ # Don't remove this line
+ # Dangerous, here are dinosaur infested!!!!!
+ ISP_RECEIVE_TIMEOUT = 3
+
+ KFlash.log()
+ KFlash.log(INFO_MSG,"Greeting Message Detected, Start Downloading ISP",BASH_TIPS['DEFAULT'])
+
+ if manually_set_the_board and (not args.Slow):
+ if (args.baudrate >= 1500000) or args.sram:
+ self.loader.change_baudrate_stage0(args.baudrate)
+
+ # 2. download bootloader and firmware
+ if args.sram:
+ with open(args.firmware, 'rb') as firmware_bin:
+ if file_format == ProgramFileFormat.FMT_KFPKG:
+ err = (ERROR_MSG, "Unable to load kfpkg to SRAM")
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ elif file_format == ProgramFileFormat.FMT_ELF:
+ self.loader.load_elf_to_sram(firmware_bin)
+ else:
+ self.loader.install_flash_bootloader(firmware_bin.read())
+ else:
+ # install bootloader at 0x80000000
+ if args.bootloader:
+ with open(args.bootloader, 'rb') as f:
+ isp_loader = f.read()
+ else:
+ isp_loader = ISP_PROG
+ self.loader.install_flash_bootloader(isp_loader)
+
+ # Boot the code from SRAM
+ self.loader.boot()
+ if args.sram:
+ # Dangerous, here are dinosaur infested!!!!!
+ # Don't touch this code unless you know what you are doing
+ self.loader._port.baudrate = args.baudrate
+ KFlash.log(INFO_MSG,"Boot user code from SRAM", BASH_TIPS['DEFAULT'])
+ if(args.terminal == True):
+ try:
+ self.loader._port.close()
+ except Exception:
+ pass
+ open_terminal(False)
+ msg = "Burn SRAM OK"
+ raise_exception( Exception(msg) )
+
+ # Dangerous, here are dinosaur infested!!!!!
+ # Don't touch this code unless you know what you are doing
+ self.loader._port.baudrate = 115200
+
+ KFlash.log(INFO_MSG,"Wait For 0.1 second for ISP to Boot", BASH_TIPS['DEFAULT'])
+
+ time.sleep(0.1)
+
+ self.loader.flash_greeting()
+
+ if args.baudrate != 115200:
+ self.loader.change_baudrate(args.baudrate)
+ KFlash.log(INFO_MSG,"Baudrate changed, greeting with ISP again ... ", BASH_TIPS['DEFAULT'])
+ self.loader.flash_greeting()
+
+ self.loader.init_flash(args.flash)
+
+ if file_format == ProgramFileFormat.FMT_KFPKG:
+ KFlash.log(INFO_MSG,"Extracting KFPKG ... ", BASH_TIPS['DEFAULT'])
+ with tempfile.TemporaryDirectory() as tmpdir:
+ try:
+ with zipfile.ZipFile(args.firmware) as zf:
+ zf.extractall(tmpdir)
+ if not os.path.exists(os.path.join(tmpdir, "flash-list.json")):
+ err = (ERROR_MSG,'Can not find flash-list.json in kfpkg root dir',BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ except zipfile.BadZipFile:
+ err = (ERROR_MSG,'Unable to Decompress the kfpkg, your file might be corrupted.',BASH_TIPS['DEFAULT'])
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+
+ fFlashList = open(os.path.join(tmpdir, 'flash-list.json'), "r")
+ sFlashList = re.sub(r'"address": (.*),', r'"address": "\1",', fFlashList.read()) #Pack the Hex Number in json into str
+ fFlashList.close()
+ jsonFlashList = json.loads(sFlashList)
+ for lBinFiles in jsonFlashList['files']:
+ self.checkKillExit()
+ KFlash.log(INFO_MSG,"Writing",lBinFiles['bin'],"into","0x%08x"%int(lBinFiles['address'], 0),BASH_TIPS['DEFAULT'])
+ with open(os.path.join(tmpdir, lBinFiles["bin"]), "rb") as firmware_bin:
+ self.loader.flash_firmware(firmware_bin.read(), None, int(lBinFiles['address'], 0), lBinFiles['sha256Prefix'], filename=lBinFiles['bin'])
+ else:
+ if args.firmware == "erase":
+ if args.addr.lower().startswith("0x"):
+ addr = int(args.addr, base=16)
+ else:
+ addr = int(args.addr)
+ if args.length.lower() == "all":
+ addr = 0
+ length = 0xFFFFFFEE
+ KFlash.log(INFO_MSG,"erase all")
+ else:
+ if args.length.lower().startswith("0x"):
+ length = int(args.length, base=16)
+ else:
+ length = int(args.length)
+ KFlash.log(INFO_MSG,"erase '0x{:x}' - '0x{:x}' ({}B, {:.02}KiB, {:.02}MiB)".format(addr, addr+length, length, length/1024.0, length/1024.0/1024.0))
+ if ((addr % 4096) != 0) or ( length != 0xFFFFFFEE and (length % 4096) != 0) or addr < 0 or addr > 0x01000000 or length < 0 or ( length > 0x01000000 and length != 0xFFFFFFEE):
+ err = (ERROR_MSG,"erase flash addr or length error, addr should >= 0x00000000, and length should >= 4096 or 'all'")
+ err = tuple2str(err)
+ raise_exception( Exception(err) )
+ self.loader.flash_erase(addr, length)
+ else:
+ with open(args.firmware, 'rb') as firmware_bin:
+ if args.key:
+ aes_key = binascii.a2b_hex(args.key)
+ if len(aes_key) != 16:
+ raise_exception( ValueError('AES key must by 16 bytes') )
+
+ self.loader.flash_firmware(firmware_bin.read(), aes_key=aes_key)
+ else:
+ self.loader.flash_firmware(firmware_bin.read())
+
+ # 3. boot
+ if args.Board == "dan" or args.Board == "bit" or args.Board == "trainer":
+ self.loader.reset_to_boot_dan()
+ elif args.Board == "kd233":
+ self.loader.reset_to_boot_kd233()
+ elif args.Board == "goE":
+ self.loader.reset_to_boot_maixgo()
+ elif args.Board == "goD":
+ self.loader.reset_to_boot_goD()
+ else:
+ KFlash.log(WARN_MSG,"Board unknown !! please press reset to boot!!")
+
+ KFlash.log(INFO_MSG,"Rebooting...", BASH_TIPS['DEFAULT'])
+ try:
+ self.loader._port.close()
+ except Exception:
+ pass
+
+ if(args.terminal == True):
+ open_terminal(True)
+
+ def kill(self):
+ if self.loader:
+ self.loader.kill()
+ self.killProcess = True
+
+ def checkKillExit(self):
+ if self.killProcess:
+ if self.loader:
+ self.loader._port.close()
+ raise Exception("Cancel")
+
+
+def main():
+ kflash = KFlash()
+ try:
+ kflash.process()
+ except Exception as e:
+ if str(e) == "Burn SRAM OK":
+ sys.exit(0)
+ kflash.log(str(e))
+ sys.exit(1)
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/nsim.sh b/scripts/nsim.sh
index 04877b9e1..424862c1d 100755
--- a/scripts/nsim.sh
+++ b/scripts/nsim.sh
@@ -12,11 +12,18 @@ if [ "$arch" = "arcv1" ]; then
nsimdrv -prop=nsim_isa_family=a700 -prop=nsim_isa_atomic_option=1 -prop=nsim_mmu=3 -prop=icache=32768,64,2,0 -prop=dcache=32768,64,4,0 -prop=nsim_isa_dpfp=none -prop=nsim_isa_shift_option=2 -prop=nsim_isa_swap_option=1 -prop=nsim_isa_bitscan_option=1 -prop=nsim_isa_sat=1 -prop=nsim_isa_mpy32=1 -prop=nsim_isa_enable_timer_0=1 -prop=nsim_isa_enable_timer_1=1 -prop=nsim_mem-dev=uart0 $kernel
fi
if [ "$arch" = "arcv2" ]; then
- nsimdrv -prop=nsim_isa_family=av2hs -prop=nsim_isa_core=1 -prop=chipid=0xffff -prop=nsim_isa_atomic_option=1 -prop=nsim_isa_ll64_option=1 -prop=nsim_mmu=4 -prop=mmu_pagesize=8192 -prop=mmu_super_pagesize=2097152 -prop=mmu_stlb_entries=16 -prop=mmu_ntlb_ways=4 -prop=mmu_ntlb_sets=128 -prop=icache=32768,64,4,0 -prop=dcache=16384,64,2,0 -prop=nsim_isa_shift_option=2 -prop=nsim_isa_swap_option=1 -prop=nsim_isa_bitscan_option=1 -prop=nsim_isa_sat=1 -prop=nsim_isa_div_rem_option=1 -prop=nsim_isa_mpy_option=9 -prop=nsim_isa_enable_timer_0=1 -prop=nsim_isa_enable_timer_1=1 -prop=nsim_isa_number_of_interrupts=32 -prop=nsim_isa_number_of_external_interrupts=32 -prop=isa_counters=1 -prop=nsim_isa_pct_counters=8 -prop=nsim_isa_pct_size=48 -prop=nsim_isa_pct_interrupt=0 -prop=nsim_mem-dev=uart0,base=0xc0fc1000,irq=24 -prop=nsim_isa_aps_feature=1 -prop=nsim_isa_num_actionpoints=4 $kernel
+ nsimdrv -prop=nsim_isa_family=av2hs -prop=nsim_isa_core=1 -prop=chipid=0xffff -prop=nsim_isa_atomic_option=1 -prop=nsim_isa_ll64_option=1 -prop=nsim_mmu=4 -prop=mmu_pagesize=8192 -prop=mmu_super_pagesize=2097152 -prop=mmu_stlb_entries=16 -prop=mmu_ntlb_ways=4 -prop=mmu_ntlb_sets=128 -prop=icache=32768,64,4,0 -prop=dcache=16384,64,2,0 -prop=nsim_isa_shift_option=2 -prop=nsim_isa_swap_option=1 -prop=nsim_isa_bitscan_option=1 -prop=nsim_isa_sat=1 -prop=nsim_isa_div_rem_option=1 -prop=nsim_isa_mpy_option=9 -prop=nsim_isa_enable_timer_0=1 -prop=nsim_isa_enable_timer_1=1 -prop=nsim_isa_number_of_interrupts=32 -prop=nsim_isa_number_of_external_interrupts=32 -prop=isa_counters=1 -prop=nsim_isa_pct_counters=8 -prop=nsim_isa_pct_size=48 -prop=nsim_isa_pct_interrupt=0 -prop=nsim_mem-dev=uart0,kind=dwuart,base=0xf0000000,irq=24 -prop=nsim_isa_aps_feature=1 -prop=nsim_isa_num_actionpoints=4 $kernel
fi
if [ "$arch" = "arcv1-be" ]; then
nsimdrv -prop=nsim_isa_big_endian=1 -prop=nsim_isa_family=a700 -prop=nsim_isa_atomic_option=1 -prop=nsim_mmu=3 -prop=icache=32768,64,2,0 -prop=dcache=32768,64,4,0 -prop=nsim_isa_dpfp=none -prop=nsim_isa_shift_option=2 -prop=nsim_isa_swap_option=1 -prop=nsim_isa_bitscan_option=1 -prop=nsim_isa_sat=1 -prop=nsim_isa_mpy32=1 -prop=nsim_isa_enable_timer_0=1 -prop=nsim_isa_enable_timer_1=1 -prop=nsim_mem-dev=uart0 $kernel
fi
if [ "$arch" = "arcv2-be" ]; then
- nsimdrv -prop=nsim_isa_big_endian=1 -prop=nsim_isa_family=av2hs -prop=nsim_isa_core=1 -prop=chipid=0xffff -prop=nsim_isa_atomic_option=1 -prop=nsim_isa_ll64_option=1 -prop=nsim_mmu=4 -prop=mmu_pagesize=8192 -prop=mmu_super_pagesize=2097152 -prop=mmu_stlb_entries=16 -prop=mmu_ntlb_ways=4 -prop=mmu_ntlb_sets=128 -prop=icache=32768,64,4,0 -prop=dcache=16384,64,2,0 -prop=nsim_isa_shift_option=2 -prop=nsim_isa_swap_option=1 -prop=nsim_isa_bitscan_option=1 -prop=nsim_isa_sat=1 -prop=nsim_isa_div_rem_option=1 -prop=nsim_isa_mpy_option=9 -prop=nsim_isa_enable_timer_0=1 -prop=nsim_isa_enable_timer_1=1 -prop=nsim_isa_number_of_interrupts=32 -prop=nsim_isa_number_of_external_interrupts=32 -prop=isa_counters=1 -prop=nsim_isa_pct_counters=8 -prop=nsim_isa_pct_size=48 -prop=nsim_isa_pct_interrupt=0 -prop=nsim_mem-dev=uart0,base=0xc0fc1000,irq=24 -prop=nsim_isa_aps_feature=1 -prop=nsim_isa_num_actionpoints=4 $kernel
+ nsimdrv -prop=nsim_isa_big_endian=1 -prop=nsim_isa_family=av2hs -prop=nsim_isa_core=1 -prop=chipid=0xffff -prop=nsim_isa_atomic_option=1 -prop=nsim_isa_ll64_option=1 -prop=nsim_mmu=4 -prop=mmu_pagesize=8192 -prop=mmu_super_pagesize=2097152 -prop=mmu_stlb_entries=16 -prop=mmu_ntlb_ways=4 -prop=mmu_ntlb_sets=128 -prop=icache=32768,64,4,0 -prop=dcache=16384,64,2,0 -prop=nsim_isa_shift_option=2 -prop=nsim_isa_swap_option=1 -prop=nsim_isa_bitscan_option=1 -prop=nsim_isa_sat=1 -prop=nsim_isa_div_rem_option=1 -prop=nsim_isa_mpy_option=9 -prop=nsim_isa_enable_timer_0=1 -prop=nsim_isa_enable_timer_1=1 -prop=nsim_isa_number_of_interrupts=32 -prop=nsim_isa_number_of_external_interrupts=32 -prop=isa_counters=1 -prop=nsim_isa_pct_counters=8 -prop=nsim_isa_pct_size=48 -prop=nsim_isa_pct_interrupt=0 -prop=nsim_mem-dev=uart0,kind=dwuart,base=0xf0000000,irq=24 -prop=nsim_isa_aps_feature=1 -prop=nsim_isa_num_actionpoints=4 $kernel
fi
+if [ "$arch" = "arcv3-arc32" ]; then
+ nsimdrv -prop=nsim_isa_family=av3hs -prop=nsim_isa_dc_hw_prefetch=1 -prop=nsim_isa_dual_issue_option=1 -prop=nsim_isa_atomic_option=2 -prop=nsim_isa_m128_option=0 -prop=nsim_isa_ll64_option=1 -prop=nsim_isa_mpy_option=9 -prop=nsim_isa_div_rem_option=2 -prop=nsim_isa_enable_timer_0=1 -prop=nsim_isa_enable_timer_1=1 -prop=nsim_isa_rtc_option=1 -prop=icache=16384,64,4 -prop=dcache=16384,64,2 -prop=mmu_version=16 -prop=mmu_pagesize=4096 -prop=mmu_address_space=32 -prop=nsim_mem-dev=uart0,kind=dwuart,base=0xf0000000,irq=24 -prop=nsim_isa_number_of_interrupts=32 -prop=nsim_isa_number_of_external_interrupts=32 -prop=nsim_isa_has_fp=1 -prop=nsim_isa_fp_dds_option=1 -prop=nsim_isa_fp_div_option=1 -prop=nsim_isa_fp_dp_option=1 -prop=nsim_isa_fp_hp_option=1 -prop=nsim_isa_fp_vec_option=1 -prop=nsim_isa_fp_wide_option=1 -prop=nsim_isa_mpy64=1 -prop=nsim_isa_div64_option=1 -prop=nsim_isa_dsp_option=3 -prop=nsim_isa_dsp_wide_option=1 $kernel
+fi
+if [ "$arch" = "arcv3-arc64" ]; then
+ nsimdrv -prop=nsim_fast=0 -prop=nsim_isa_dual_issue_option=1 -prop=nsim_isa_has_hw_pf=1 -prop=nsim_isa_m128_option=1 -prop=nsim_isa_has_hw_pf=1 -prop=nsim_isa_vec64=1 -prop=nsim_isa_family=arc64 -prop=nsim_isa_enable_timer_0=1 -prop=nsim_isa_enable_timer_1=1 -prop=nsim_isa_rtc_option=1 -prop=nsim_isa_addr_size=64 -prop=nsim_isa_pc_size=64 -prop=icache=16384,64,4,o -prop=dcache=16384,64,4,o -prop=mmu_version=16 -prop=mmu_pagesize=4096 -prop=mmu_address_space=48 -prop=nsim_mem-dev=uart0,kind=dwuart,base=0xf0000000,irq=24 -prop=nsim_isa_mpy_option=9 -prop=nsim_isa_mpy64=1 -prop=nsim_isa_div64_option=1 -prop=nsim_isa_div_rem_option=2 -prop=nsim_isa_atomic_option=2 -prop=nsim_isa_has_fp=1 -prop=nsim_isa_fp_dds_option=1 -prop=nsim_isa_fp_div_option=1 -prop=nsim_isa_fp_dp_option=1 -prop=nsim_isa_fp_hp_option=1 -prop=nsim_isa_fp_vec_option=1 -prop=nsim_isa_fp_wide_option=1 $kernel
+fi
+
diff --git a/scripts/patch_git.sh b/scripts/patch_git.sh
index 36a2d6af8..40653a576 100644
--- a/scripts/patch_git.sh
+++ b/scripts/patch_git.sh
@@ -3,7 +3,7 @@
# Patch sources using git-am, aligning things to use git-format-patch for
# update-patches.
#
-# (c) 2016 Phil Sutter <phil@nwl.cc>
+# (c) 2021 Phil Sutter <phil@nwl.cc>
#
# Based on the classic patch.sh, written by:
#
@@ -36,14 +36,11 @@ if [ ! -d .git ]; then
find . -name .gitignore -delete
git init
git add .
- git commit -a --allow-empty \
- --author="OpenADK <wbx@openadk.org>" \
- -m "OpenADK patch marker: 0000"
+elif [ -e .git/rebase-apply ]; then
+ git am --abort
fi
-[ -e .git/rebase-apply ] && \
- git am --abort
-i=1
+i=0
patch_tmp=$(printf ".git/patch_tmp/%04d" $i)
while [ -d $patch_tmp ]; do
let "i++"
@@ -52,6 +49,10 @@ done
mkdir -p $patch_tmp
patch_series=$(printf "%04d" $i)
+git commit --allow-empty --no-signoff --no-gpg-sign \
+ --author="OpenADK <wbx@openadk.org>" \
+ -m "OpenADK patch marker: $patch_series"
+
cd $wd
cd $patchdir
for i in $(eval echo ${patchpattern}); do
@@ -74,12 +75,15 @@ for i in $(eval echo ${patchpattern}); do
esac
[ -d "${i}" ] && echo "Ignoring subdirectory ${i}" && continue
echo "$(basename $i)" >>${targetdir}/${patch_tmp}/__patchfiles__
- fake_hdr=""
patchname="$(basename -s .gz -s .bz -s .bz2 -s .zip -s .Z -s .patch $i)"
- if ! grep -q '^Subject: ' ${i}; then
- fake_hdr="From: OpenADK <wbx@openadk.org>\nSubject: [PATCH] ${patchname#[0-9]*-}\n\n"
- fi
- { echo -en $fake_hdr; ${uncomp} ${i}; } >${targetdir}/${patch_tmp}/${patchname}.patch
+ {
+ if ! grep -q '^Subject: ' ${i}; then
+ echo "From: OpenADK <wbx@openadk.org>"
+ echo "Subject: [PATCH] ${patchname#[0-9]*-}"
+ echo ""
+ fi
+ ${uncomp} ${i}
+ } >${targetdir}/${patch_tmp}/${patchname}.patch
cd $patchdir
done
@@ -93,6 +97,7 @@ done
# XXX: this is unsafe and should be dropped at some point
am_opts="-C1"
+cd ${wd}
realpath $patchdir >${targetdir}/${patch_tmp}/__patchdir__
cd ${targetdir}
git am $am_opts ${patch_tmp}/*.patch
@@ -100,6 +105,3 @@ if [ $? != 0 ] ; then
echo "git-am failed! Please fix patches!"
exit 1
fi
-git commit -a --allow-empty \
- --author="OpenADK <wbx@openadk.org>" \
- -m "OpenADK patch marker: $patch_series"
diff --git a/scripts/prereq.sh b/scripts/prereq.sh
index c2f3bb73e..717ddf15c 100755
--- a/scripts/prereq.sh
+++ b/scripts/prereq.sh
@@ -2,6 +2,8 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
+#set -x
+
# resolve prerequisites for OpenADK build
topdir=$(pwd)
@@ -52,7 +54,7 @@ for tool in $tools; do
FETCHCMD="$(which $tool) --progress-bar -L -k -f -o "
;;
wget)
- FETCHCMD="$(which $tool) --no-check-certificate -O "
+ FETCHCMD="$(which $tool) -t2 --no-check-certificate -O "
;;
esac
break
@@ -81,7 +83,7 @@ for tool in $tools; do
SHA256="$(which $tool) -q"
;;
cksum)
- if cksum -q >/dev/null 2>/dev/null; then
+ if cksum -t >/dev/null 2>/dev/null; then
SHA256="$(which $tool) -q -a sha256"
else
continue
@@ -230,8 +232,8 @@ done
printf " ---> checking if bash is installed.. "
if which bash >/dev/null; then
printf "found\n"
- printf " ---> checking if it is bash 4.x or 5.x"
- LC_ALL=C bash --version 2>/dev/null| grep -i "version \(4\|5\)" >/dev/null
+ printf " ---> checking if it is bash 4.x or 5.x.. "
+ LC_ALL=C bash --version 2>/dev/null| egrep -i 'version 4|5' >/dev/null
if [ $? -eq 0 ]; then
printf "yes\n"
else
@@ -302,6 +304,16 @@ if ! which git >/dev/null 2>&1; then
fi
printf "found\n"
+printf " ---> checking if ncurses is installed.. "
+check_lxdialog=${topdir}/adk/config/lxdialog/check-lxdialog.sh
+CURSES_CFLAGS=$(/bin/sh ${check_lxdialog} -ccflags | tr '\n' ' ')
+CURSES_LIBS=$(/bin/sh ${check_lxdialog} -ldflags ${CC})
+if [ $? -eq 0 ]; then
+ printf "found\n"
+else
+ printf "not found\n"
+ out=1
+fi
# creating prereq.mk
echo "ADK_TOPDIR:=$(readlink -nf . 2>/dev/null || pwd -P)" > $topdir/prereq.mk
@@ -325,6 +337,8 @@ echo "ARCH_FOR_BUILD:=$(${CC} -dumpmachine | sed \
-e 's/mipsel-.*/mipsel/' \
-e 's/i[3-9]86/x86/' \
)" >>prereq.mk
+echo "CURSES_LIBS:=${CURSES_LIBS}" >> $topdir/prereq.mk
+echo "CURSES_CFLAGS:=${CURSES_CFLAGS}" >> $topdir/prereq.mk
if [ "$CC" = "clang" ]; then
echo "HOST_CC:=${CC} -fbracket-depth=1024" >> $topdir/prereq.mk
@@ -337,8 +351,8 @@ else
echo "HOST_CXX:=${CXX}" >> $topdir/prereq.mk
fi
-echo "HOST_CFLAGS:=-O0 -g0" >> $topdir/prereq.mk
-echo "HOST_CXXFLAGS:=-O0 -g0" >> $topdir/prereq.mk
+echo "HOST_CFLAGS:=-O0 -g0 -fcommon" >> $topdir/prereq.mk
+echo "HOST_CXXFLAGS:=-O0 -g0 -fcommon" >> $topdir/prereq.mk
echo 'LANGUAGE:=C' >> $topdir/prereq.mk
echo 'LC_ALL:=C' >> $topdir/prereq.mk
echo "_PATH:=$PATH" >> $topdir/prereq.mk
@@ -409,7 +423,7 @@ EOF
$MAKE --no-print-directory LDADD=-lz ADK_TOPDIR=$topdir -f Makefile.tmp >/dev/null 2>&1
X=$(echo YES | gzip | ./test 2>/dev/null)
if [ X$X != XYES ]; then
- echo Cannot compile a libz test programm.
+ echo Cannot compile a libz test program.
echo You must install the zlib development package,
echo usually called libz-dev, and the run-time library.
echo
@@ -421,17 +435,6 @@ fi
rm test.c test 2>/dev/null
rm Makefile.tmp 2>/dev/null
-# for make kernelconfig pkg-config is required to find ncurses
-if [ $os = "Darwin" ]; then
- printf " ---> checking if pkg-config is installed.. "
- if ! which pkg-config >/dev/null 2>&1; then
- printf "not found\n"
- out=1
- else
- printf "found\n"
- fi
-fi
-
# error out on any required prerequisite
if [ $out -ne 0 ]; then
exit
@@ -519,6 +522,15 @@ else
printf "found\n"
fi
+printf " ---> checking if rsync is installed.. "
+host_build_rsync=0
+if ! which rsync >/dev/null 2>&1; then
+ printf "not found\n"
+ host_build_rsync=1
+else
+ printf "found\n"
+fi
+
host_build_tar=0
if which tar >/dev/null 2>&1; then
if ! tar --version 2>/dev/null|grep GNU >/dev/null;then
@@ -594,20 +606,16 @@ fi
printf " ---> checking if cpio is installed.. "
host_build_cpio=0
-if ! which cpio >/dev/null 2>&1; then
- printf "not found\n"
- host_build_cpio=1
+if which cpio >/dev/null 2>&1; then
+ if ! cpio --version 2>/dev/null|grep GNU >/dev/null;then
+ printf "found but not usable\n"
+ host_build_cpio=1
+ else
+ printf "found\n"
+ fi
else
- printf "found\n"
-fi
-
-printf " ---> checking if xz is installed.. "
-host_build_xz=0
-if ! which xz >/dev/null 2>&1; then
printf "not found\n"
- host_build_xz=1
-else
- printf "found\n"
+ host_build_cpio=1
fi
# optional
@@ -626,6 +634,11 @@ if ! which lzma >/dev/null 2>&1; then
host_build_lzma=1
fi
+host_build_zstd=0
+if ! which zstd >/dev/null 2>&1; then
+ host_build_zstd=1
+fi
+
host_build_lz4=0
if ! which lz4c >/dev/null 2>&1; then
host_build_lz4=1
@@ -685,6 +698,9 @@ fi
if [ $host_build_patch -eq 1 ]; then
printf "\t%s\n" "select ADK_HOST_BUILD_PATCH" >> $topdir/target/config/Config.in.prereq
fi
+if [ $host_build_rsync -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_RSYNC" >> $topdir/target/config/Config.in.prereq
+fi
if [ $host_build_findutils -eq 1 ]; then
printf "\t%s\n" "select ADK_HOST_BUILD_FINDUTILS" >> $topdir/target/config/Config.in.prereq
fi
@@ -700,9 +716,6 @@ fi
if [ $host_build_cpio -eq 1 ]; then
printf "\t%s\n" "select ADK_HOST_BUILD_CPIO" >> $topdir/target/config/Config.in.prereq
fi
-if [ $host_build_xz -eq 1 ]; then
- printf "\t%s\n" "select ADK_HOST_BUILD_XZ" >> $topdir/target/config/Config.in.prereq
-fi
# optional
if [ $host_build_cdrtools -eq 1 ]; then
printf "\t%s\n" "select ADK_HOST_BUILD_CDRTOOLS if ADK_HOST_NEED_CDRTOOLS" >> $topdir/target/config/Config.in.prereq
@@ -713,6 +726,9 @@ fi
if [ $host_build_lzma -eq 1 ]; then
printf "\t%s\n" "select ADK_HOST_BUILD_LZMA if ADK_HOST_NEED_LZMA" >> $topdir/target/config/Config.in.prereq
fi
+if [ $host_build_zstd -eq 1 ]; then
+ printf "\t%s\n" "select ADK_HOST_BUILD_ZSTD if ADK_HOST_NEED_ZSTD" >> $topdir/target/config/Config.in.prereq
+fi
if [ $host_build_lz4 -eq 1 ]; then
printf "\t%s\n" "select ADK_HOST_BUILD_LZ4 if ADK_HOST_NEED_LZ4" >> $topdir/target/config/Config.in.prereq
fi
@@ -774,6 +790,19 @@ if [ ! -f $topdir/.config ]; then
else
# scan host-tool prerequisites of certain packages before building.
. $topdir/.config
+
+ if [ -n "$ADK_PACKAGE_FIREFOX" ]; then
+ NEED_RUST="$NEED_RUST firefox"
+ fi
+ if [ -n "$ADK_PACKAGE_FIREFOX" ]; then
+ NEED_CARGO="$NEED_CARGO firefox"
+ fi
+ if [ -n "$ADK_PACKAGE_FIREFOX" ]; then
+ NEED_CLANG="$NEED_CLANG firefox"
+ fi
+ if [ -n "$ADK_PACKAGE_FIREFOX" ]; then
+ NEED_CBINDGEN="$NEED_CBINDGEN firefox"
+ fi
if [ -n "$ADK_PACKAGE_KODI" ]; then
NEED_JAVA="$NEED_JAVA kodi"
fi
@@ -870,6 +899,34 @@ else
fi
fi
+ if [ -n "$NEED_RUST" ]; then
+ if ! which rustc >/dev/null 2>&1; then
+ printf "You need rustc to build $NEED_RUST \n"
+ out=1
+ fi
+ fi
+
+ if [ -n "$NEED_CARGO" ]; then
+ if ! which cargo >/dev/null 2>&1; then
+ printf "You need cargo to build $NEED_CARGO \n"
+ out=1
+ fi
+ fi
+
+ if [ -n "$NEED_CLANG" ]; then
+ if ! which clang-13 >/dev/null 2>&1; then
+ printf "You need clang-13 to build $NEED_CLANG \n"
+ out=1
+ fi
+ fi
+
+ if [ -n "$NEED_CBINDGEN" ]; then
+ if ! which cbindgen >/dev/null 2>&1; then
+ printf "You need cbindgen to build $NEED_CBINDGEN \n"
+ out=1
+ fi
+ fi
+
if [ -n "$NEED_STATIC_LIBSTDCXX" ]; then
cat >test.c <<-'EOF'
#include <stdio.h>
diff --git a/scripts/tarpkg b/scripts/tarpkg
index 40ff94122..43a7ab4a1 100755
--- a/scripts/tarpkg
+++ b/scripts/tarpkg
@@ -16,14 +16,14 @@ if [ "$1" = "build" ];then
chmod +x ${2}/usr/lib/pkg/${pkgname}.$file )
done
rm -rf $2/CONTROL
- (cd $2 && tar -cf - .|xz -c > $3/${pkgname}_${version}_${arch}.tar.xz)
+ (cd $2 && tar -cf - .|gzip -c > $3/${pkgname}_${version}_${arch}.tar.gz)
elif [ "$1" = "install" ];then
pkg=$(echo $(basename $2)|sed -e "s#_.*##")
if [ -x ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.preinst ]; then
IPKG_INSTROOT="$PKG_INSTROOT" ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.preinst
rm ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.preinst
fi
- xz -d -c $2|tar -xpf - -C ${PKG_INSTROOT}
+ gzip -d -c $2|tar -xpf - -C ${PKG_INSTROOT}
if [ -x ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.postinst ]; then
IPKG_INSTROOT="$PKG_INSTROOT" ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.postinst
rm ${PKG_INSTROOT}/usr/lib/pkg/${pkg}.postinst
diff --git a/scripts/update-patches-git b/scripts/update-patches-git
index 8337fa847..6f0bbfedb 100644
--- a/scripts/update-patches-git
+++ b/scripts/update-patches-git
@@ -3,29 +3,20 @@
# Update patches using git-format-patch from a source tree prepared by
# patch_git.sh.
#
-# (c) 2016 Phil Sutter <phil@nwl.cc>
+# (c) 2021 Phil Sutter <phil@nwl.cc>
wrkdist=$1
wd=$(pwd)
cd "$wrkdist"
-top=""
-top_series=""
-git log --grep="^OpenADK patch marker:" --oneline | while read hash subject; do
- [ -n "$top" ] || {
- top=$hash
- top_series="${subject#OpenADK patch marker: }"
- continue
- }
- bottom=$hash
- bottom_series="${subject#OpenADK patch marker: }"
-
- patchdir=$(<.git/patch_tmp/${top_series}/__patchdir__)
+top="HEAD"
+git log --grep='^OpenADK patch marker:' --format='%H %s'$logopt | \
+ while read hash o p m series; do
+ patchdir=$(<.git/patch_tmp/${series}/__patchdir__)
while read patchfile; do
rm ${patchdir}/$patchfile
- done < .git/patch_tmp/${top_series}/__patchfiles__
- git format-patch -N -o "$patchdir" ${bottom}..${top}
-
- top=$bottom
- top_series=$bottom_series
+ done < .git/patch_tmp/${series}/__patchfiles__
+ git format-patch --no-numbered --no-signoff --no-cover-letter \
+ --no-signature -o "$patchdir" ${hash}..${top}
+ top=${hash}^
done
diff --git a/target/Makefile b/target/Makefile
index 128d272de..9c5c8616e 100644
--- a/target/Makefile
+++ b/target/Makefile
@@ -31,18 +31,14 @@ ADK_PACKAGE_CRYPTINIT_ROOT:=$(strip $(subst ",, $(ADK_PACKAGE_CRYPTINIT_ROOT)))
ADK_PACKAGE_CRYPTINIT_SWAP:=$(strip $(subst ",, $(ADK_PACKAGE_CRYPTINIT_SWAP)))
ADK_PACKAGE_CMDLINE:=root=$(ADK_PACKAGE_CRYPTINIT_ROOT) swap=$(ADK_PACKAGE_CRYPTINIT_SWAP) resume=/dev/mapper/swapcrypt
-ifeq ($(ADK_TARGET_OS_LINUX)$(ADK_TARGET_OS_WALDUX),y)
-ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_MINICONFIG)$(ADK_TARGET_WALDUX_KERNEL_USE_MINICONFIG),y)
+ifeq ($(ADK_TARGET_OS_LINUX),y)
+ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_MINICONFIG),y)
ifeq ($(ADK_TARGET_KERNEL_CUSTOMISING),y)
config-prepare: $(ADK_TOPDIR)/.config
ifeq ($(ADK_TARGET_OS_LINUX),y)
@PATH='$(HOST_PATH)' sed -n '/^ADK_LINUX_KERNEL/s//CONFIG/p' $(ADK_TOPDIR)/.config \
>$(BUILD_DIR)/.kernelconfig.kernel
endif
-ifeq ($(ADK_TARGET_OS_WALDUX),y)
- @PATH='$(HOST_PATH)' sed -n '/^ADK_WALDUX_KERNEL/s//CONFIG/p' $(ADK_TOPDIR)/.config \
- >$(BUILD_DIR)/.kernelconfig.kernel
-endif
@if [ -f $(ADK_TARGET_ARCH)/kernel/$(ADK_TARGET_SYSTEM) ];then \
cat $(ADK_TOPDIR)/target/$(ADK_TARGET_OS)/kernel.config \
$(ADK_TARGET_ARCH)/kernel/$(ADK_TARGET_SYSTEM) > $(BUILD_DIR)/.kernelconfig.board; \
@@ -75,7 +71,6 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_M68K_Q800)$(ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208),
@$(SED) 's#^\(CONFIG_.*BOOTPARAM_STRING="\)\(.*\)"#\1\2 ro $(FS_CMDLINE)"#' \
$(BUILD_DIR)/.kernelconfig.board
endif
-ifneq ($(ADK_RUNTIME_INIT_SYSTEMD),y)
ifeq ($(ADK_TARGET_ROOTFS_NFSROOT),)
@$(SED) 's#^\(CONFIG_.*CMDLINE="\)\(.*\)"#\1\2 ro"#' \
$(BUILD_DIR)/.kernelconfig.board
@@ -83,7 +78,6 @@ else
@$(SED) 's#^\(CONFIG_.*CMDLINE="\)\(.*\)"#\1\2 rw"#' \
$(BUILD_DIR)/.kernelconfig.board
endif
-endif
@$(SED) 's#^\(CONFIG_.*CMDLINE="\)\(.*\)"#\1\2 $(FS_CMDLINE)"#' \
$(BUILD_DIR)/.kernelconfig.board
ifneq ($(ADK_TARGET_CMDLINE),)
@@ -106,11 +100,11 @@ ifeq ($(ADK_RUNTIME_QUIET_KERNEL),y)
@$(SED) 's#^\(CONFIG_.*CMDLINE="\)\(.*\)"#\1\2 quiet loglevel=2 vt.global_cursor_default=0"#' \
$(BUILD_DIR)/.kernelconfig.board
endif
-ifeq ($(ADK_LINUX_KERNEL_DEBUG_WITH_KGDB)$(ADK_WALDUX_KERNEL_DEBUG_WITH_KGDB),y)
+ifeq ($(ADK_LINUX_KERNEL_DEBUG_WITH_KGDB),y)
@$(SED) 's#^\(CONFIG_.*CMDLINE="\)\(.*\)"#\1\2 kgdbwait kgdboc=ttyS0,115200"#' \
$(BUILD_DIR)/.kernelconfig.board
endif
-ifeq ($(ADK_LINUX_KERNEL_NETCONSOLE)$(ADK_WALDUX_KERNEL_NETCONSOLE),y)
+ifeq ($(ADK_LINUX_KERNEL_NETCONSOLE),y)
@$(SED) 's#^\(CONFIG_.*CMDLINE="\)\(.*\)"#\1\2 netconsole=@$(ADK_PARAMETER_NETCONSOLE_SRC_IP)/,@$(ADK_PARAMETER_NETCONSOLE_DST_IP)/"#' \
$(BUILD_DIR)/.kernelconfig.board
endif
@@ -138,36 +132,8 @@ config-prepare: $(ADK_TOPDIR)/.config
endif
endif
-ifeq ($(ADK_TARGET_OS_FROSTED),y)
-config-prepare: $(ADK_TOPDIR)/.config
- @PATH='$(HOST_PATH)' sed -n '/^ADK_FROSTED_/s///p' $(ADK_TOPDIR)/.config \
- >$(BUILD_DIR)/.frosted
- @PATH='$(HOST_PATH)' sed -n '/^ADK_PACKAGE_FROSTED_/s///p' $(ADK_TOPDIR)/.config \
- >$(BUILD_DIR)/.frostedapps
-endif
-ifeq ($(ADK_TARGET_OS_FROSTED),y)
-prepare: frosted-prepare
-compile: frosted-compile
-install: frosted-install
-targethelp: frosted-targethelp
-endif
-
-ifeq ($(ADK_TARGET_OS_RTEMS),y)
-prepare: rtems-prepare
-compile: rtems-compile
-install: rtems-install
-targethelp: rtems-targethelp
-endif
-
-ifeq ($(ADK_TARGET_OS_ZEPHYR),y)
-prepare: zephyr-prepare
-compile: zephyr-compile
-install: zephyr-install
-targethelp: zephyr-targethelp
-endif
-
-ifeq ($(ADK_TARGET_OS_LINUX)$(ADK_TARGET_OS_WALDUX),y)
+ifeq ($(ADK_TARGET_OS_LINUX),y)
prepare: $(ADK_TARGET_ARCH)-prepare
compile: $(ADK_TARGET_ARCH)-compile
image: $(ADK_TARGET_ARCH)-imageclean $(ADK_TARGET_ARCH)-imageinstall
diff --git a/target/aarch64/Makefile b/target/aarch64/Makefile
index c96264c39..a461cf4d3 100644
--- a/target/aarch64/Makefile
+++ b/target/aarch64/Makefile
@@ -24,6 +24,18 @@ ifeq ($(ADK_TARGET_BOARD_BCM28XX),y)
@echo "Use following command to install it on SD card:"
@echo "sudo ./scripts/install.sh $(ADK_TARGET_SYSTEM) /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
endif
+ifeq ($(ADK_TARGET_SYSTEM_ROCKPI4_PLUS)$(ADK_TARGET_SYSTEM_RASPBERRY_PI5),y)
+ifeq ($(ADK_RUNTIME_DATA_PARTITION),y)
+ @echo "Use following command to install with a writable data partition"
+ @echo "sudo ./scripts/install.sh -d 256 $(ADK_TARGET_SYSTEM) /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "If you want to update a card without loosing existing data on the writable partition use:"
+ @echo "sudo ./scripts/install.sh -k -d 256 $(ADK_TARGET_SYSTEM) /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "In both cases the cfgfs partition is _not_ removed!"
+else
+ @echo "Use following command to install it on SD card:"
+ @echo "sudo ./scripts/install.sh $(ADK_TARGET_SYSTEM) /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+endif
+endif
ifeq ($(ADK_TARGET_QEMU),y)
@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
@echo "Use following command to create a QEMU Image:"
@@ -54,6 +66,20 @@ ifeq ($(ADK_TARGET_QEMU),y)
@echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
endif
endif
+ifeq ($(ADK_TARGET_FS),nfsroot)
+targethelp:
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+endif
+ifeq ($(ADK_TARGET_FS),genimage)
+targethelp:
+ @echo "The disk image is: $(FW_DIR)/sdcard.img"
+ @echo "Use following command to install it on SD card:"
+ @echo 'sudo dd if=$(FW_DIR)/sdcard.img of=/dev/sdX bs=2048k'
+endif
+ifeq ($(ADK_TARGET_FS),nfsroot)
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
+endif
kernel-strip:
@cp $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
@@ -63,8 +89,7 @@ kernel-install: kernel-strip
dtb-install:
ifeq ($(ADK_TARGET_BOARD_BCM28XX),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- dtbs $(MAKE_TRACE)
+ ${KERNEL_MAKE} dtbs $(MAKE_TRACE)
mkdir -p $(FW_DIR)/overlays
for x in $(LINUX_DIR)/arch/arm64/boot/dts/overlays/*.dtbo; do \
[[ -e "$$x" ]] && cp $(LINUX_DIR)/arch/arm64/boot/dts/overlays/*.dtbo $(FW_DIR)/overlays; \
@@ -75,6 +100,13 @@ ifeq ($(ADK_TARGET_BOARD_BCM28XX),y)
break; \
done
endif
+ifeq ($(ADK_TARGET_SYSTEM_ROCKPI4_PLUS),y)
+ ${KERNEL_MAKE} rockchip/rk3399-rock-pi-4b-plus.dtb $(MAKE_TRACE)
+endif
+ for x in $(LINUX_DIR)/arch/arm64/boot/dts/*/*.dtb; do \
+ [[ -e "$$x" ]] && cp $(LINUX_DIR)/arch/arm64/boot/dts/*/*.dtb $(FW_DIR); \
+ break; \
+ done
# filesystem specific targets
ifeq ($(ADK_TARGET_FS),archive)
@@ -89,3 +121,6 @@ endif
ifeq ($(ADK_TARGET_FS),initramfspiggyback)
imageinstall: createinitramfs targethelp
endif
+ifeq ($(ADK_TARGET_FS),genimage)
+imageinstall: dtb-install $(FW_DIR)/$(GENIMAGE) targethelp
+endif
diff --git a/target/aarch64/kernel/raspberry-pi3p-64 b/target/aarch64/kernel/raspberry-pi3p-64
deleted file mode 100644
index 6d9ace351..000000000
--- a/target/aarch64/kernel/raspberry-pi3p-64
+++ /dev/null
@@ -1,10 +0,0 @@
-CONFIG_ARM64=y
-CONFIG_ARCH_BCM2835=y
-CONFIG_BRCM_CHAR_DRIVERS=y
-CONFIG_BCM2708_VCMEM=y
-CONFIG_BCM_VCIO=y
-CONFIG_BCMA=y
-CONFIG_MAILBOX=y
-CONFIG_BCM2835_MBOX=y
-CONFIG_RASPBERRYPI_POWER=y
-CONFIG_RASPBERRYPI_FIRMWARE=y
diff --git a/target/aarch64/kernel/raspberry-pi4-64 b/target/aarch64/kernel/raspberry-pi4-64
new file mode 100644
index 000000000..d818141cc
--- /dev/null
+++ b/target/aarch64/kernel/raspberry-pi4-64
@@ -0,0 +1,1874 @@
+CONFIG_ARM64=y
+CONFIG_ARCH_BCM=y
+CONFIG_ARCH_BCM2835=y
+CONFIG_BRCM_CHAR_DRIVERS=y
+CONFIG_BCM2708_VCMEM=y
+CONFIG_BCM_VCIO=y
+CONFIG_BCMA=y
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_CLK_RASPBERRYPI=y
+CONFIG_KUSER_HELPERS=y
+
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_ARM_RASPBERRYPI_CPUFREQ=y
+
+CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y
+CONFIG_KPROBES=y
+CONFIG_JUMP_LABEL=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_KRETPROBES=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_HAVE_NMI=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_KEEPINITRD=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_ARCH_WANTS_NO_INSTR=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_MMU_GATHER_TABLE_FREE=y
+CONFIG_MMU_GATHER_RCU_TABLE_FREE=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
+CONFIG_HAVE_CMPXCHG_LOCAL=y
+CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_HAVE_ARCH_SECCOMP=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_ARCH_STACKLEAK=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_ARCH_SUPPORTS_SHADOW_CALL_STACK=y
+CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
+CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
+CONFIG_LTO_NONE=y
+CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
+CONFIG_HAVE_CONTEXT_TRACKING_USER=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOVE_PUD=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_ARCH_MMAP_RND_BITS=18
+CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
+CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_COMPAT_OLD_SIGACTION=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_VMAP_STACK=y
+CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y
+CONFIG_RANDOMIZE_KSTACK_OFFSET=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+CONFIG_HAVE_ARCH_COMPILER_H=y
+CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
+CONFIG_ARCH_HAS_RELR=y
+CONFIG_HAVE_PREEMPT_DYNAMIC=y
+CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y
+CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
+CONFIG_ARCH_HAVE_TRACE_MMIO_ACCESS=y
+
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+
+CONFIG_HAVE_GCC_PLUGINS=y
+CONFIG_GCC_PLUGINS=y
+
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_ASM_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_COMPRESS_XZ=y
+CONFIG_MODPROBE_PATH="/sbin/modprobe"
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_BLOCK_LEGACY_AUTOLOAD=y
+CONFIG_BLK_CGROUP_RWSTAT=y
+CONFIG_BLK_DEV_BSG_COMMON=y
+CONFIG_BLK_DEV_BSGLIB=y
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_INTEGRITY_T10=y
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_BLK_DEBUG_FS=y
+
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
+
+CONFIG_BLOCK_COMPAT=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_PM=y
+CONFIG_BLOCK_HOLDER_DEPRECATED=y
+CONFIG_BLK_MQ_STACKING=y
+
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=y
+
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_ASN1=y
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_FREEZER=y
+
+CONFIG_BINFMT_ELF=y
+CONFIG_COMPAT_BINFMT_ELF=y
+CONFIG_ARCH_BINFMT_ELF_STATE=y
+CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y
+CONFIG_ARCH_HAVE_ELF_PROT=y
+CONFIG_ARCH_USE_GNU_PROPERTY=y
+CONFIG_ELFCORE=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_COREDUMP=y
+
+CONFIG_ZPOOL=y
+CONFIG_SWAP=y
+CONFIG_ZSWAP=y
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo"
+CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y
+CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud"
+CONFIG_ZBUD=y
+
+CONFIG_SLUB=y
+CONFIG_SLAB_MERGE_DEFAULT=y
+CONFIG_SLUB_CPU_PARTIAL=y
+
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_HAVE_FAST_GUP=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+CONFIG_MEMORY_ISOLATION=y
+CONFIG_EXCLUSIVE_SYSTEM_RAM=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_COMPACTION=y
+CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1
+CONFIG_MIGRATION=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_ARCH_WANTS_THP_SWAP=y
+CONFIG_FRONTSWAP=y
+CONFIG_CMA=y
+CONFIG_CMA_AREAS=7
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
+CONFIG_ARCH_HAS_PTE_DEVMAP=y
+CONFIG_ARCH_HAS_ZONE_DMA_SET=y
+CONFIG_ZONE_DMA=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
+
+
+CONFIG_NET=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_NET_INGRESS=y
+CONFIG_NET_EGRESS=y
+CONFIG_NET_REDIRECT=y
+CONFIG_SKB_EXTENSIONS=y
+
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
+CONFIG_XFRM=y
+CONFIG_XFRM_OFFLOAD=y
+CONFIG_XFRM_SUB_POLICY=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_IP_MROUTE_COMMON=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_TABLE_PERTURB_ORDER=16
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_IPV6_SIT_6RD=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_SUBTREES=y
+CONFIG_IPV6_MROUTE=y
+CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IPV6_PIMSM_V2=y
+CONFIG_NET_PTP_CLASSIFY=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+
+CONFIG_NETFILTER_INGRESS=y
+CONFIG_NETFILTER_EGRESS=y
+CONFIG_NETFILTER_SKIP_EGRESS=y
+CONFIG_NETFILTER_FAMILY_BRIDGE=y
+CONFIG_NETFILTER_FAMILY_ARP=y
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CONNTRACK_LABELS=y
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_GRE=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+CONFIG_NF_NAT_REDIRECT=y
+CONFIG_NF_NAT_MASQUERADE=y
+CONFIG_NF_TABLES_INET=y
+CONFIG_NF_TABLES_NETDEV=y
+CONFIG_NETFILTER_XTABLES_COMPAT=y
+
+
+
+
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_TAB_BITS=12
+
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+
+
+CONFIG_IP_VS_SH_TAB_BITS=8
+
+CONFIG_IP_VS_MH_TAB_INDEX=12
+
+CONFIG_IP_VS_NFCT=y
+
+CONFIG_NF_TABLES_IPV4=y
+CONFIG_NF_TABLES_ARP=y
+
+CONFIG_NF_TABLES_IPV6=y
+
+CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_MD5=y
+CONFIG_SCTP_COOKIE_HMAC_SHA1=y
+CONFIG_L2TP_V3=y
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_NET_SCHED=y
+
+
+CONFIG_NET_CLS=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_BPF=y
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_CLS_ACT=y
+CONFIG_GACT_PROB=y
+CONFIG_NET_SCH_FIFO=y
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV_BATMAN_V=y
+CONFIG_BATMAN_ADV_BLA=y
+CONFIG_BATMAN_ADV_DAT=y
+CONFIG_BATMAN_ADV_MCAST=y
+CONFIG_MPLS=y
+CONFIG_NET_L3_MASTER_DEV=y
+CONFIG_PCPU_DEV_REFCNT=y
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_XPS=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_CGROUP_NET_CLASSID=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+CONFIG_NET_FLOW_LIMIT=y
+
+
+CONFIG_HAMRADIO=y
+
+CONFIG_AX25_DAMA_SLAVE=y
+
+
+CONFIG_BT_BREDR=y
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_LE=y
+CONFIG_BT_DEBUGFS=y
+
+CONFIG_BT_HCIBTUSB_BCM=y
+CONFIG_BT_HCIBTUSB_RTL=y
+CONFIG_BT_HCIUART_SERDEV=y
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_3WIRE=y
+CONFIG_BT_HCIUART_BCM=y
+
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+
+
+CONFIG_LWTUNNEL=y
+CONFIG_LWTUNNEL_BPF=y
+CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
+CONFIG_NET_SELFTESTS=y
+CONFIG_NET_SOCK_MSG=y
+CONFIG_PAGE_POOL=y
+CONFIG_ETHTOOL_NETLINK=y
+
+CONFIG_ARM_AMBA=y
+CONFIG_HAVE_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCI_SYSCALL=y
+CONFIG_PCIEASPM=y
+CONFIG_PCIEASPM_DEFAULT=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_PCI_LABEL=y
+CONFIG_PCIE_BUS_DEFAULT=y
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+
+CONFIG_PCIE_BRCMSTB=y
+
+
+
+
+
+
+
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+
+CONFIG_FW_LOADER=y
+CONFIG_EXTRA_FIRMWARE=""
+
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_SOC_BUS=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+
+
+
+
+
+CONFIG_DMIID=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB=y
+CONFIG_EFI_ARMSTUB_DTB_LOADER=y
+CONFIG_EFI_EARLYCON=y
+
+CONFIG_ARM_PSCI_FW=y
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
+CONFIG_ARM_SMCCC_SOC_ID=y
+
+
+
+
+
+
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+
+
+
+
+
+CONFIG_MTD_NAND_ECC=y
+
+
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_LIMIT=20
+CONFIG_DTC=y
+CONFIG_OF=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_DYNAMIC=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OF_RESOLVE=y
+CONFIG_OF_OVERLAY=y
+CONFIG_OF_CONFIGFS=y
+CONFIG_BLK_DEV=y
+CONFIG_ZRAM_DEF_COMP_LZORLE=y
+CONFIG_ZRAM_DEF_COMP="lzo-rle"
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+
+CONFIG_NVME_CORE=y
+CONFIG_BLK_DEV_NVME=y
+
+
+
+
+
+
+CONFIG_SCSI_MOD=y
+CONFIG_SCSI_COMMON=y
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_BSG=y
+
+CONFIG_SCSI_ISCSI_ATTRS=y
+
+CONFIG_SCSI_LOWLEVEL=y
+
+CONFIG_SATA_HOST=y
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_FORCE=y
+CONFIG_SATA_PMP=y
+
+CONFIG_SATA_MOBILE_LPM_POLICY=0
+CONFIG_ATA_SFF=y
+
+CONFIG_ATA_BMDMA=y
+
+
+
+
+CONFIG_MD=y
+CONFIG_BLK_DEV_DM_BUILTIN=y
+CONFIG_DM_AUDIT=y
+
+
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+CONFIG_NET_CORE=y
+CONFIG_IPVLAN_L3S=y
+CONFIG_NETPOLL=y
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_ATM_DRIVERS=y
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_NET_VENDOR_ALACRITECH=y
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_NET_VENDOR_AMAZON=y
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_NET_VENDOR_AQUANTIA=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ASIX=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_BCMGENET=y
+CONFIG_NET_VENDOR_CADENCE=y
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_NET_VENDOR_CORTINA=y
+CONFIG_NET_VENDOR_DAVICOM=y
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_NET_VENDOR_ENGLEDER=y
+CONFIG_NET_VENDOR_EZCHIP=y
+CONFIG_NET_VENDOR_FUNGIBLE=y
+CONFIG_NET_VENDOR_GOOGLE=y
+CONFIG_NET_VENDOR_HISILICON=y
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_WANGXUN=y
+CONFIG_NET_VENDOR_ADI=y
+CONFIG_NET_VENDOR_LITEX=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MICROSOFT=y
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_NET_VENDOR_NI=y
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_NETERION=y
+CONFIG_NET_VENDOR_NETRONOME=y
+CONFIG_NET_VENDOR_8390=y
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_NET_VENDOR_SOLARFLARE=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_NET_VENDOR_SOCIONEXT=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_NET_VENDOR_SYNOPSYS=y
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_NET_VENDOR_TI=y
+CONFIG_NET_VENDOR_VERTEXCOM=y
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_WIZNET_BUS_ANY=y
+CONFIG_NET_VENDOR_XILINX=y
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+CONFIG_FIXED_PHY=y
+
+CONFIG_BROADCOM_PHY=y
+CONFIG_BCM7XXX_PHY=y
+CONFIG_BCM_NET_PHYLIB=y
+CONFIG_BCM_NET_PHYPTP=y
+CONFIG_MICREL_PHY=y
+CONFIG_MICROCHIP_PHY=y
+CONFIG_SMSC_PHY=y
+CONFIG_CAN_NETLINK=y
+CONFIG_CAN_CALC_BITTIMING=y
+CONFIG_CAN_RX_OFFLOAD=y
+
+
+
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+CONFIG_FWNODE_MDIO=y
+CONFIG_OF_MDIO=y
+CONFIG_MDIO_DEVRES=y
+CONFIG_MDIO_BCM_UNIMAC=y
+
+
+
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MULTILINK=y
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_USB_RTL8152=y
+CONFIG_USB_LAN78XX=y
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_SMSC95XX=y
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_KC2190=y
+CONFIG_WLAN=y
+CONFIG_WLAN_VENDOR_ADMTEK=y
+CONFIG_WLAN_VENDOR_ATH=y
+CONFIG_ATH9K_BTCOEX_SUPPORT=y
+CONFIG_ATH9K_PCI=y
+CONFIG_ATH9K_RFKILL=y
+CONFIG_ATH9K_PCOEM=y
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+CONFIG_WLAN_VENDOR_ATMEL=y
+CONFIG_WLAN_VENDOR_BROADCOM=y
+CONFIG_B43_BCMA=y
+CONFIG_B43_SSB=y
+CONFIG_B43_BUSES_BCMA_AND_SSB=y
+CONFIG_B43_PCI_AUTOSELECT=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_BCMA_PIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_G=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+CONFIG_B43LEGACY_DEBUG=y
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_SDIO=y
+CONFIG_BRCMFMAC_USB=y
+CONFIG_BRCMDBG=y
+CONFIG_WLAN_VENDOR_CISCO=y
+CONFIG_WLAN_VENDOR_INTEL=y
+CONFIG_WLAN_VENDOR_INTERSIL=y
+CONFIG_P54_LEDS=y
+CONFIG_WLAN_VENDOR_MARVELL=y
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+CONFIG_MT76_LEDS=y
+CONFIG_WLAN_VENDOR_MICROCHIP=y
+CONFIG_WLAN_VENDOR_PURELIFI=y
+CONFIG_WLAN_VENDOR_RALINK=y
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT3573=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_RT55XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+CONFIG_WLAN_VENDOR_REALTEK=y
+CONFIG_RTL8187_LEDS=y
+CONFIG_RTLWIFI_DEBUG=y
+CONFIG_WLAN_VENDOR_RSI=y
+CONFIG_WLAN_VENDOR_SILABS=y
+CONFIG_WLAN_VENDOR_ST=y
+CONFIG_WLAN_VENDOR_TI=y
+CONFIG_WLAN_VENDOR_ZYDAS=y
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+
+
+
+CONFIG_INPUT=y
+CONFIG_INPUT_LEDS=y
+
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_EVDEV=y
+
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_PSXPAD_SPI_FF=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+CONFIG_INPUT_MISC=y
+
+
+CONFIG_BRCM_CHAR_DRIVERS=y
+CONFIG_BCM2708_VCMEM=y
+CONFIG_BCM_VCIO=y
+CONFIG_BCM2835_DEVGPIOMEM=y
+CONFIG_TTY=y
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LDISC_AUTOLOAD=y
+
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_16550A_VARIANTS=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_EXAR=y
+CONFIG_SERIAL_8250_NR_UARTS=1
+CONFIG_SERIAL_8250_RUNTIME_UARTS=0
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_BCM2835AUX=y
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_8250_PERICOM=y
+CONFIG_SERIAL_OF_PLATFORM=y
+
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_CONSOLE_POLL=y
+CONFIG_SERIAL_SC16IS7XX_I2C=y
+CONFIG_SERIAL_SC16IS7XX_SPI=y
+
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+CONFIG_TTY_PRINTK=y
+CONFIG_TTY_PRINTK_LEVEL=6
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_BCM2835=y
+CONFIG_HW_RANDOM_IPROC_RNG200=y
+CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y
+CONFIG_HW_RANDOM_CN10K=y
+CONFIG_DEVMEM=y
+CONFIG_DEVPORT=y
+CONFIG_HW_RANDOM_TPM=y
+CONFIG_RANDOM_TRUST_CPU=y
+CONFIG_RANDOM_TRUST_BOOTLOADER=y
+
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+
+
+CONFIG_I2C_HELPER_AUTO=y
+
+
+CONFIG_I2C_BCM2708_BAUDRATE=100000
+
+
+
+
+
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+
+
+
+CONFIG_SPI_SLAVE=y
+CONFIG_SPI_DYNAMIC=y
+CONFIG_PPS=y
+
+
+
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+CONFIG_PTP_1588_CLOCK_KVM=y
+
+CONFIG_PINCTRL=y
+CONFIG_PINMUX=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_PINCTRL_BCM2835=y
+
+
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=y
+
+CONFIG_GPIO_RASPBERRYPI_EXP=y
+CONFIG_GPIO_BCM_VIRT=y
+
+CONFIG_GPIO_PCA953X_IRQ=y
+
+CONFIG_GPIO_STMPE=y
+
+
+
+
+
+CONFIG_W1_CON=y
+
+
+CONFIG_W1_SLAVE_DS2408_READBACK=y
+
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_POWER_SUPPLY_HWMON=y
+CONFIG_HWMON=y
+
+CONFIG_THERMAL=y
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_OF=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_STEP_WISE=y
+
+CONFIG_BCM2711_THERMAL=y
+CONFIG_BCM2835_THERMAL=y
+
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+
+
+CONFIG_BCM2835_WDT=y
+
+
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_DRIVER_PCI=y
+
+CONFIG_MFD_CORE=y
+CONFIG_MFD_STMPE=y
+
+CONFIG_STMPE_I2C=y
+CONFIG_STMPE_SPI=y
+
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_WM5102=y
+
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_RC_CORE=y
+CONFIG_BPF_LIRC_MODE2=y
+CONFIG_LIRC=y
+CONFIG_RC_MAP=y
+CONFIG_RC_DECODERS=y
+CONFIG_RC_DEVICES=y
+
+CONFIG_MEDIA_CEC_RC=y
+CONFIG_MEDIA_CEC_SUPPORT=y
+
+
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+CONFIG_MEDIA_ANALOG_TV_SUPPORT=y
+CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y
+CONFIG_MEDIA_RADIO_SUPPORT=y
+CONFIG_MEDIA_SDR_SUPPORT=y
+CONFIG_MEDIA_PLATFORM_SUPPORT=y
+CONFIG_MEDIA_TEST_SUPPORT=y
+
+CONFIG_MEDIA_CONTROLLER=y
+
+CONFIG_VIDEO_V4L2_I2C=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+
+CONFIG_MEDIA_CONTROLLER_DVB=y
+CONFIG_MEDIA_CONTROLLER_REQUEST_API=y
+
+CONFIG_DVB_NET=y
+CONFIG_DVB_MAX_ADAPTERS=16
+CONFIG_DVB_DYNAMIC_MINORS=y
+
+
+CONFIG_MEDIA_USB_SUPPORT=y
+
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+
+CONFIG_VIDEO_AU0828_V4L2=y
+CONFIG_VIDEO_AU0828_RC=y
+CONFIG_VIDEO_CX231XX_RC=y
+
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+
+
+CONFIG_MEDIA_PLATFORM_DRIVERS=y
+CONFIG_V4L_PLATFORM_DRIVERS=y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CONFIG_V4L_TEST_DRIVERS=y
+CONFIG_VIDEO_VIVID_MAX_DEVS=64
+CONFIG_MEDIA_COMMON_OPTIONS=y
+
+CONFIG_SMS_SIANO_RC=y
+
+CONFIG_MEDIA_ATTACH=y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CONFIG_APERTURE_HELPERS=y
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_DISPLAY_HDMI_HELPER=y
+
+
+
+CONFIG_DRM_PANEL=y
+
+
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+
+
+CONFIG_DRM_NOMODESET=y
+
+CONFIG_SOUND=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND_PCM_ELD=y
+CONFIG_SND_PCM_IEC958=y
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_PCM_TIMER=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_VERBOSE_PROCFS=y
+CONFIG_SND_CTL_FAST_LOOKUP=y
+CONFIG_SND_VMASTER=y
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_PCI=y
+
+
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO_USE_MEDIA_CONTROLLER=y
+CONFIG_SND_USB_CAIAQ_INPUT=y
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+CONFIG_SND_SOC_COMPRESS=y
+
+
+
+
+
+
+
+
+CONFIG_HID=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_HID_GENERIC=y
+
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIWHEELS_FF=y
+CONFIG_PLAYSTATION_FF=y
+CONFIG_SONY_FF=y
+
+CONFIG_USB_HID=y
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_PCI=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+CONFIG_USB_DEFAULT_PERSIST=y
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_XHCI_PLATFORM=y
+CONFIG_USB_DWCOTG=y
+
+
+
+CONFIG_USB_STORAGE=y
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_UAS=y
+
+CONFIG_USBIP_VHCI_HC_PORTS=8
+CONFIG_USBIP_VHCI_NR_HCS=1
+
+CONFIG_USB_DWC2_DUAL_ROLE=y
+
+CONFIG_USB_SERIAL_GENERIC=y
+
+
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=y
+
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+
+
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_G_MULTI_RNDIS=y
+
+CONFIG_MMC=y
+CONFIG_PWRSEQ_EMMC=y
+CONFIG_PWRSEQ_SIMPLE=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=32
+
+CONFIG_MMC_BCM2835_MMC=y
+CONFIG_MMC_BCM2835_DMA=y
+CONFIG_MMC_BCM2835_PIO_DMA_BARRIER=2
+CONFIG_MMC_BCM2835_SDHOST=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_IPROC=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PWM=y
+
+
+
+
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+
+CONFIG_LEDS_TRIGGER_INPUT=y
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_LEDS_TRIGGER_ACTPWR=y
+
+CONFIG_ACCESSIBILITY=y
+
+
+CONFIG_EDAC_SUPPORT=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+CONFIG_RTC_NVMEM=y
+
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+
+
+CONFIG_RTC_I2C_AND_SPI=y
+
+CONFIG_RTC_DRV_DS3232_HWMON=y
+CONFIG_RTC_DRV_RV3029_HWMON=y
+
+
+
+CONFIG_DMADEVICES=y
+
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DMA_OF=y
+CONFIG_DMA_BCM2835=y
+CONFIG_DMA_BCM2708=y
+
+
+CONFIG_SYNC_FILE=y
+CONFIG_DMABUF_HEAPS=y
+CONFIG_DMABUF_HEAPS_SYSTEM=y
+CONFIG_DMABUF_HEAPS_CMA=y
+
+CONFIG_AUXDISPLAY=y
+CONFIG_CHARLCD_BL_FLASH=y
+CONFIG_VIRTIO_MENU=y
+CONFIG_VHOST_MENU=y
+CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
+
+
+CONFIG_STAGING=y
+
+
+
+
+
+
+
+
+
+CONFIG_STAGING_MEDIA=y
+CONFIG_STAGING_MEDIA_DEPRECATED=y
+CONFIG_BCM_VIDEOCORE=y
+CONFIG_BCM2835_VCHIQ=y
+CONFIG_VCHIQ_CDEV=y
+CONFIG_SURFACE_PLATFORMS=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+
+CONFIG_CLK_BCM2711_DVP=y
+CONFIG_CLK_BCM2835=y
+CONFIG_CLK_RASPBERRYPI=y
+
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
+CONFIG_FSL_ERRATUM_A008585=y
+CONFIG_HISILICON_ERRATUM_161010101=y
+CONFIG_ARM64_ERRATUM_858921=y
+CONFIG_ARM_TIMER_SP804=y
+
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+
+
+
+
+
+
+CONFIG_BCM2835_POWER=y
+CONFIG_RASPBERRYPI_POWER=y
+
+
+
+
+
+
+
+
+CONFIG_EXTCON=y
+
+CONFIG_IIO_BUFFER=y
+CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+
+CONFIG_IRQCHIP=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_MAX_NR=1
+CONFIG_ARM_GIC_V2M=y
+CONFIG_ARM_GIC_V3=y
+CONFIG_ARM_GIC_V3_ITS=y
+CONFIG_ARM_GIC_V3_ITS_PCI=y
+CONFIG_BRCMSTB_L2_IRQ=y
+CONFIG_PARTITION_PERCPU=y
+
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_RASPBERRYPI=y
+CONFIG_RESET_SIMPLE=y
+
+CONFIG_GENERIC_PHY=y
+
+
+
+
+CONFIG_ARM_PMU=y
+
+
+CONFIG_ANDROID_BINDER_IPC=y
+CONFIG_ANDROID_BINDERFS=y
+CONFIG_ANDROID_BINDER_DEVICES="binder,hwbinder,vndbinder"
+
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+
+
+
+
+CONFIG_PM_OPP=y
+
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_FS_IOMAP=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT2=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_JBD2=y
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_SUPPORT_V4=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_RT=y
+CONFIG_OCFS2_FS_STATS=y
+CONFIG_OCFS2_DEBUG_MASKLOG=y
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS=y
+CONFIG_F2FS_STAT_FS=y
+CONFIG_F2FS_FS_XATTR=y
+CONFIG_F2FS_FS_POSIX_ACL=y
+CONFIG_F2FS_FS_SECURITY=y
+CONFIG_F2FS_IOSTAT=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FS_ENCRYPTION=y
+CONFIG_FS_ENCRYPTION_ALGS=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
+CONFIG_QUOTA=y
+CONFIG_PRINT_QUOTA_WARNING=y
+CONFIG_QUOTACTL=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_AUTOFS_FS=y
+CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y
+
+CONFIG_NETFS_SUPPORT=y
+CONFIG_NETFS_STATS=y
+CONFIG_FSCACHE=y
+CONFIG_FSCACHE_STATS=y
+CONFIG_CACHEFILES=y
+
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=y
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="ascii"
+CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
+CONFIG_NTFS_RW=y
+
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMPFS_XATTR=y
+CONFIG_ARCH_SUPPORTS_HUGETLBFS=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
+CONFIG_CONFIGFS_FS=y
+
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+CONFIG_JFFS2_SUMMARY=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_UBIFS_FS_ZSTD=y
+CONFIG_UBIFS_FS_XATTR=y
+CONFIG_UBIFS_FS_SECURITY=y
+CONFIG_SQUASHFS_FILE_CACHE=y
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_ZLIB=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+CONFIG_PSTORE=y
+CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240
+CONFIG_PSTORE_DEFLATE_COMPRESS=y
+CONFIG_PSTORE_COMPRESS=y
+CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT=y
+CONFIG_PSTORE_COMPRESS_DEFAULT="deflate"
+CONFIG_PSTORE_CONSOLE=y
+CONFIG_PSTORE_RAM=y
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_SWAP=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_PNFS_FILE_LAYOUT=y
+CONFIG_PNFS_FLEXFILE_LAYOUT=y
+CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
+CONFIG_NFS_V4_SECURITY_LABEL=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFS_FSCACHE=y
+CONFIG_NFS_USE_KERNEL_DNS=y
+CONFIG_NFS_DISABLE_UDP_SUPPORT=y
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_GRACE_PERIOD=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_NFS_V4_2_SSC_HELPER=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+CONFIG_SUNRPC_BACKCHANNEL=y
+CONFIG_SUNRPC_SWAP=y
+CONFIG_CIFS_STATS2=y
+CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+CONFIG_CIFS_DEBUG=y
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_FSCACHE=y
+CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y
+CONFIG_9P_FS_POSIX_ACL=y
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="utf8"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_ASCII=y
+CONFIG_IO_WQ=y
+
+CONFIG_KEYS=y
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_SECURITY_PATH=y
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_INTROSPECT_POLICY=y
+CONFIG_SECURITY_APPARMOR_HASH=y
+CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y
+CONFIG_SECURITY_APPARMOR_EXPORT_BINARY=y
+CONFIG_SECURITY_APPARMOR_PARANOID_LOAD=y
+CONFIG_INTEGRITY=y
+CONFIG_INTEGRITY_AUDIT=y
+CONFIG_DEFAULT_SECURITY_APPARMOR=y
+CONFIG_LSM=""
+
+
+CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y
+CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y
+CONFIG_INIT_STACK_ALL_ZERO=y
+CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y
+
+CONFIG_RANDSTRUCT_NONE=y
+
+CONFIG_CRYPTO=y
+
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_SKCIPHER=y
+CONFIG_CRYPTO_SKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_NULL2=y
+
+CONFIG_CRYPTO_RSA=y
+
+CONFIG_CRYPTO_DES=y
+
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_XTS=y
+
+
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_SHA256=y
+CONFIG_CRYPTO_SHA512=y
+
+CONFIG_CRYPTO_CRC32C=y
+CONFIG_CRYPTO_CRC32=y
+CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_CRC64_ROCKSOFT=y
+
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LZO=y
+
+CONFIG_CRYPTO_DRBG_HMAC=y
+
+CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
+
+CONFIG_CRYPTO_HASH_INFO=y
+
+
+CONFIG_ASYMMETRIC_KEY_TYPE=y
+CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
+CONFIG_X509_CERTIFICATE_PARSER=y
+CONFIG_PKCS7_MESSAGE_PARSER=y
+
+CONFIG_SYSTEM_TRUSTED_KEYRING=y
+CONFIG_SYSTEM_TRUSTED_KEYS=""
+
+CONFIG_BINARY_PRINTF=y
+
+CONFIG_RAID6_PQ_BENCHMARK=y
+CONFIG_LINEAR_RANGES=y
+CONFIG_BITREVERSE=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
+
+CONFIG_CRYPTO_LIB_UTILS=y
+CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y
+CONFIG_CRYPTO_LIB_DES=y
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9
+CONFIG_CRYPTO_LIB_SHA1=y
+CONFIG_CRYPTO_LIB_SHA256=y
+
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC64_ROCKSOFT=y
+CONFIG_CRC_ITU_T=y
+CONFIG_CRC32=y
+CONFIG_CRC32_SLICEBY8=y
+CONFIG_CRC64=y
+CONFIG_LIBCRC32C=y
+CONFIG_XXHASH=y
+CONFIG_AUDIT_GENERIC=y
+CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y
+CONFIG_AUDIT_COMPAT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_ZSTD_COMMON=y
+CONFIG_ZSTD_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_DECOMPRESS_ZSTD=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_REED_SOLOMON=y
+CONFIG_REED_SOLOMON_ENC8=y
+CONFIG_REED_SOLOMON_DEC8=y
+CONFIG_TEXTSEARCH=y
+CONFIG_BTREE=y
+CONFIG_INTERVAL_TREE=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DMA_DECLARE_COHERENT=y
+CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
+CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
+CONFIG_SWIOTLB=y
+CONFIG_DMA_NONCOHERENT_MMAP=y
+CONFIG_DMA_COHERENT_POOL=y
+CONFIG_DMA_DIRECT_REMAP=y
+CONFIG_DMA_CMA=y
+
+CONFIG_CMA_SIZE_MBYTES=5
+CONFIG_CMA_SIZE_SEL_MBYTES=y
+CONFIG_CMA_ALIGNMENT=8
+CONFIG_SGL_ALLOC=y
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_GLOB=y
+CONFIG_NLATTR=y
+CONFIG_CLZ_TAB=y
+CONFIG_MPILIB=y
+CONFIG_DIMLIB=y
+CONFIG_LIBFDT=y
+CONFIG_OID_REGISTRY=y
+CONFIG_UCS2_STRING=y
+CONFIG_HAVE_GENERIC_VDSO=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_VDSO_TIME_NS=y
+CONFIG_FONT_SUPPORT=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_SG_POOL=y
+CONFIG_ARCH_STACKWALK=y
+CONFIG_STACKDEPOT=y
+CONFIG_SBITMAP=y
+
+CONFIG_GENERIC_IOREMAP=y
+CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y
+
+
+CONFIG_PRINTK_TIME=y
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+CONFIG_BOOT_PRINTK_DELAY=y
+CONFIG_SYMBOLIC_ERRNAME=y
+CONFIG_DEBUG_BUGVERBOSE=y
+
+CONFIG_DEBUG_KERNEL=y
+CONFIG_DEBUG_MISC=y
+
+CONFIG_AS_HAS_NON_CONST_LEB128=y
+CONFIG_DEBUG_INFO_NONE=y
+CONFIG_FRAME_WARN=2048
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE=""
+CONFIG_DEBUG_FS=y
+CONFIG_DEBUG_FS_ALLOW_ALL=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_KGDB=y
+CONFIG_KGDB_HONOUR_BLOCKLIST=y
+CONFIG_KGDB_SERIAL_CONSOLE=y
+CONFIG_KGDB_KDB=y
+CONFIG_KDB_DEFAULT_ENABLE=0x1
+CONFIG_KDB_KEYBOARD=y
+CONFIG_KDB_CONTINUE_CATASTROPHIC=0
+CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
+CONFIG_HAVE_ARCH_KCSAN=y
+CONFIG_HAVE_KCSAN_COMPILER=y
+
+
+CONFIG_SLUB_DEBUG=y
+CONFIG_ARCH_HAS_DEBUG_WX=y
+CONFIG_GENERIC_PTDUMP=y
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+CONFIG_DEBUG_MEMORY_INIT=y
+CONFIG_HAVE_ARCH_KASAN=y
+CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y
+CONFIG_HAVE_ARCH_KASAN_HW_TAGS=y
+CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_KASAN_SW_TAGS=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
+CONFIG_HAVE_ARCH_KFENCE=y
+
+
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHED_INFO=y
+CONFIG_SCHEDSTATS=y
+
+CONFIG_DEBUG_PREEMPT=y
+
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+
+CONFIG_TRACE_IRQFLAGS=y
+CONFIG_TRACE_IRQFLAGS_NMI=y
+CONFIG_STACKTRACE=y
+
+
+
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0
+CONFIG_RCU_TRACE=y
+
+CONFIG_LATENCYTOP=y
+CONFIG_NOP_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_TRACE_CLOCK=y
+CONFIG_RING_BUFFER=y
+CONFIG_EVENT_TRACING=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+CONFIG_PREEMPTIRQ_TRACEPOINTS=y
+CONFIG_TRACING=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUNCTION_GRAPH_TRACER=y
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_STACK_TRACER=y
+CONFIG_IRQSOFF_TRACER=y
+CONFIG_SCHED_TRACER=y
+CONFIG_TRACER_SNAPSHOT=y
+CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=y
+CONFIG_BRANCH_PROFILE_NONE=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_KPROBE_EVENTS=y
+CONFIG_BPF_EVENTS=y
+CONFIG_DYNAMIC_EVENTS=y
+CONFIG_PROBE_EVENTS=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+CONFIG_FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY=y
+CONFIG_STRICT_DEVMEM=y
+
+
+CONFIG_ARCH_HAS_KCOV=y
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+CONFIG_RUNTIME_TESTING_MENU=y
+CONFIG_ARCH_USE_MEMTEST=y
+
diff --git a/target/aarch64/kernel/raspberry-pi5 b/target/aarch64/kernel/raspberry-pi5
new file mode 100644
index 000000000..6b026aa9c
--- /dev/null
+++ b/target/aarch64/kernel/raspberry-pi5
@@ -0,0 +1,149 @@
+CONFIG_ARM64=y
+CONFIG_64BIT=y
+CONFIG_ARCH_BCM=y
+CONFIG_ARCH_BCM2835=y
+CONFIG_ARCH_BRCMSTB=y
+CONFIG_ARM_AMBA=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCIE_BRCMSTB=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_BRCM_CHAR_DRIVERS=y
+CONFIG_BCM2708_VCMEM=y
+CONFIG_BCM_VCIO=y
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+CONFIG_SPI_DW_DMA=y
+CONFIG_SPI_SLAVE=y
+CONFIG_SPI_DYNAMIC=y
+CONFIG_PINCTRL=y
+CONFIG_PINMUX=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_PINCTRL_RP1=y
+CONFIG_PINCTRL_BCM2712=y
+CONFIG_PINCTRL_BCM2835=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_RASPBERRYPI_EXP=y
+CONFIG_GPIO_BCM_VIRT=y
+CONFIG_GPIO_BRCMSTB=y
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_STMPE=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_RP1=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_HID=y
+CONFIG_HID_BATTERY_STRENGTH=y
+CONFIG_HIDRAW=y
+CONFIG_HID_GENERIC=y
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIWHEELS_FF=y
+CONFIG_NINTENDO_FF=y
+CONFIG_PLAYSTATION_FF=y
+CONFIG_SONY_FF=y
+CONFIG_USB_HID=y
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_DUAL_ROLE=y
+CONFIG_USB_DWC3_HAPS=y
+CONFIG_USB_DWC3_OF_SIMPLE=y
+CONFIG_USB_DWC2_DUAL_ROLE=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_BRCM_USB_PINMAP=y
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_USB_BDC_UDC=y
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_G_MULTI_RNDIS=y
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_DMADEVICES=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DMA_OF=y
+CONFIG_DMA_BCM2835=y
+CONFIG_DW_AXI_DMAC=y
+CONFIG_DMA_BCM2708=y
+CONFIG_BCM_VIDEOCORE=y
+CONFIG_BCM2835_VCHIQ=y
+CONFIG_VCHIQ_CDEV=y
+CONFIG_SURFACE_PLATFORMS=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+CONFIG_COMMON_CLK_RP1=y
+CONFIG_COMMON_CLK_RP1_SDIO=y
+CONFIG_CLK_BCM2711_DVP=y
+CONFIG_CLK_BCM2835=y
+CONFIG_CLK_RASPBERRYPI=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
+CONFIG_FSL_ERRATUM_A008585=y
+CONFIG_HISILICON_ERRATUM_161010101=y
+CONFIG_ARM64_ERRATUM_858921=y
+CONFIG_ARM_TIMER_SP804=y
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+CONFIG_IOMMU_IOVA=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
+CONFIG_OF_IOMMU=y
+CONFIG_IOMMU_DMA=y
+CONFIG_BCM2712_IOMMU=y
+CONFIG_BCM2835_POWER=y
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_SOC_BRCMSTB=y
+CONFIG_BRCMSTB_PM=y
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM_BRCMSTB=y
+CONFIG_PWM_RP1=y
+CONFIG_IRQCHIP=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_MAX_NR=1
+CONFIG_ARM_GIC_V2M=y
+CONFIG_ARM_GIC_V3=y
+CONFIG_ARM_GIC_V3_ITS=y
+CONFIG_ARM_GIC_V3_ITS_PCI=y
+CONFIG_BCM2712_MIP=y
+CONFIG_BCM7038_L1_IRQ=y
+CONFIG_BCM7120_L2_IRQ=y
+CONFIG_BRCMSTB_L2_IRQ=y
+CONFIG_PARTITION_PERCPU=y
+CONFIG_ARCH_HAS_RESET_CONTROLLER=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_BRCMSTB=y
+CONFIG_RESET_BRCMSTB_RESCAL=y
+CONFIG_RESET_RASPBERRYPI=y
+CONFIG_RESET_SIMPLE=y
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PHY_MIPI_DPHY=y
+CONFIG_PHY_BRCM_USB=y
+CONFIG_ARM_PMU=y
+CONFIG_RAS=y
diff --git a/target/aarch64/kernel/rockpi4-plus b/target/aarch64/kernel/rockpi4-plus
new file mode 100644
index 000000000..95e45c5ec
--- /dev/null
+++ b/target/aarch64/kernel/rockpi4-plus
@@ -0,0 +1,863 @@
+CONFIG_ARM64=y
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y
+CONFIG_ARM64_ERRATUM_826319=y
+CONFIG_ARM64_ERRATUM_827319=y
+CONFIG_ARM64_ERRATUM_824069=y
+CONFIG_ARM64_ERRATUM_819472=y
+CONFIG_ARM64_ERRATUM_832075=y
+CONFIG_ARM64_ERRATUM_834220=y
+CONFIG_ARM64_ERRATUM_1742098=y
+CONFIG_ARM64_ERRATUM_845719=y
+CONFIG_ARM64_ERRATUM_843419=y
+CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y
+CONFIG_ARM64_ERRATUM_1024718=y
+CONFIG_ARM64_ERRATUM_1418040=y
+CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y
+CONFIG_ARM64_ERRATUM_1165522=y
+CONFIG_ARM64_ERRATUM_1319367=y
+CONFIG_ARM64_ERRATUM_1530923=y
+CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y
+CONFIG_ARM64_ERRATUM_2441007=y
+CONFIG_ARM64_ERRATUM_1286807=y
+CONFIG_ARM64_ERRATUM_1463225=y
+CONFIG_ARM64_ERRATUM_1542419=y
+CONFIG_ARM64_ERRATUM_1508412=y
+CONFIG_ARM64_ERRATUM_2441009=y
+CONFIG_ARM64_ERRATUM_2457168=y
+CONFIG_CAVIUM_ERRATUM_22375=y
+CONFIG_CAVIUM_ERRATUM_23144=y
+CONFIG_CAVIUM_ERRATUM_23154=y
+CONFIG_CAVIUM_ERRATUM_27456=y
+CONFIG_CAVIUM_ERRATUM_30115=y
+CONFIG_CAVIUM_TX2_ERRATUM_219=y
+CONFIG_FUJITSU_ERRATUM_010001=y
+CONFIG_HISILICON_ERRATUM_161600802=y
+CONFIG_QCOM_FALKOR_ERRATUM_1003=y
+CONFIG_QCOM_FALKOR_ERRATUM_1009=y
+CONFIG_QCOM_QDF2400_ERRATUM_0065=y
+CONFIG_QCOM_FALKOR_ERRATUM_E1041=y
+CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y
+CONFIG_SOCIONEXT_SYNQUACER_PREITS=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_DT_IDLE_STATES=y
+CONFIG_ARM_CPUIDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_ARM_SCPI_CPUFREQ=y
+
+CONFIG_ARCH_SUPPORTS_ACPI=y
+CONFIG_IRQ_BYPASS_MANAGER=y
+
+CONFIG_STREAM_PARSER=y
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y
+CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
+CONFIG_NFC_SHDLC=y
+
+
+CONFIG_LWTUNNEL=y
+CONFIG_LWTUNNEL_BPF=y
+CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
+CONFIG_SOCK_VALIDATE_XMIT=y
+CONFIG_NET_SELFTESTS=y
+CONFIG_NET_SOCK_MSG=y
+CONFIG_NET_DEVLINK=y
+CONFIG_PAGE_POOL=y
+CONFIG_ETHTOOL_NETLINK=y
+
+CONFIG_ARM_AMBA=y
+CONFIG_HAVE_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCI_SYSCALL=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIEAER=y
+CONFIG_PCIEASPM=y
+CONFIG_PCIEASPM_PERFORMANCE=y
+CONFIG_PCIE_PME=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_PCI_ATS=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_LABEL=y
+CONFIG_PCIE_BUS_DEFAULT=y
+CONFIG_HOTPLUG_PCI=y
+
+CONFIG_PCIE_ROCKCHIP=y
+CONFIG_PCIE_ROCKCHIP_HOST=y
+CONFIG_PCIE_ROCKCHIP_EP=y
+
+CONFIG_PCIE_DW=y
+CONFIG_PCIE_DW_HOST=y
+CONFIG_PCIE_ROCKCHIP_DW_HOST=y
+
+
+
+CONFIG_PCI_ENDPOINT=y
+CONFIG_PCI_ENDPOINT_CONFIGFS=y
+
+CONFIG_SOC_BUS=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+CONFIG_GENERIC_ARCH_NUMA=y
+
+CONFIG_ARM_CCI=y
+CONFIG_BRCMSTB_GISB_ARB=y
+CONFIG_SUN50I_DE2_BUS=y
+CONFIG_VEXPRESS_CONFIG=y
+
+
+
+
+CONFIG_ARM_SCPI_PROTOCOL=y
+CONFIG_ARM_SCPI_POWER_DOMAIN=y
+CONFIG_DMIID=y
+CONFIG_SYSFB=y
+CONFIG_ROCKCHIP_SIP=y
+CONFIG_ARM_FFA_SMCCC=y
+
+CONFIG_MESON_SM=y
+CONFIG_ARM_PSCI_FW=y
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
+CONFIG_ARM_SMCCC_SOC_ID=y
+
+CONFIG_DTC=y
+CONFIG_OF=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_DYNAMIC=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_OF_RESOLVE=y
+CONFIG_OF_OVERLAY=y
+CONFIG_OF_NUMA=y
+CONFIG_OF_CONFIGFS=y
+CONFIG_BLK_DEV=y
+CONFIG_ZRAM_DEF_COMP_LZORLE=y
+CONFIG_ZRAM_DEF_COMP="lzo-rle"
+CONFIG_ZRAM_WRITEBACK=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_RAM_COUNT=8
+CONFIG_BLK_DEV_RAM_SIZE=4096
+CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_VIRTIO_BLK=y
+
+CONFIG_NVME_CORE=y
+CONFIG_BLK_DEV_NVME=y
+CONFIG_NVME_MULTIPATH=y
+
+CONFIG_SRAM=y
+
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+
+CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0
+
+CONFIG_FIXED_PHY=y
+CONFIG_MICREL_PHY=y
+CONFIG_ROCKCHIP_PHY=y
+
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+CONFIG_FWNODE_MDIO=y
+CONFIG_OF_MDIO=y
+CONFIG_MDIO_DEVRES=y
+CONFIG_MDIO_BITBANG=y
+CONFIG_MDIO_CAVIUM=y
+CONFIG_MDIO_THUNDER=y
+
+CONFIG_MDIO_BUS_MUX=y
+CONFIG_MDIO_BUS_MUX_MMIOREG=y
+
+CONFIG_SERIO=y
+CONFIG_SERIO_AMBAKMI=y
+CONFIG_SERIO_LIBPS2=y
+
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+
+
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=y
+
+CONFIG_I2C_DESIGNWARE_CORE=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_I2C_RK3X=y
+
+CONFIG_I2C_CROS_EC_TUNNEL=y
+
+CONFIG_I2C_SLAVE=y
+
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+
+CONFIG_SPI_PL022=y
+CONFIG_SPI_ROCKCHIP=y
+
+
+CONFIG_SPI_SLAVE=y
+CONFIG_SPI_DYNAMIC=y
+CONFIG_SPMI=y
+CONFIG_PPS=y
+
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+
+CONFIG_PINCTRL=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_PINMUX=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_PINCTRL_ROCKCHIP=y
+CONFIG_PINCTRL_SINGLE=y
+CONFIG_PINCTRL_SX150X=y
+CONFIG_PINCTRL_MAX77620=y
+CONFIG_PINCTRL_RK805=y
+
+
+CONFIG_PINCTRL_SUNXI=y
+CONFIG_PINCTRL_SUN5I=y
+CONFIG_PINCTRL_SUN6I_A31=y
+CONFIG_PINCTRL_SUN6I_A31_R=y
+CONFIG_PINCTRL_SUN8I_A23=y
+CONFIG_PINCTRL_SUN8I_A33=y
+CONFIG_PINCTRL_SUN8I_A83T=y
+CONFIG_PINCTRL_SUN8I_A83T_R=y
+CONFIG_PINCTRL_SUN8I_A23_R=y
+CONFIG_PINCTRL_SUN8I_H3=y
+CONFIG_PINCTRL_SUN8I_H3_R=y
+CONFIG_PINCTRL_SUN8I_V3S=y
+CONFIG_PINCTRL_SUN9I_A80=y
+CONFIG_PINCTRL_SUN9I_A80_R=y
+CONFIG_PINCTRL_SUN50I_A64=y
+CONFIG_PINCTRL_SUN50I_A64_R=y
+CONFIG_PINCTRL_SUN50I_A100=y
+CONFIG_PINCTRL_SUN50I_A100_R=y
+CONFIG_PINCTRL_SUN50I_H5=y
+CONFIG_PINCTRL_SUN50I_H6=y
+CONFIG_PINCTRL_SUN50I_H6_R=y
+CONFIG_PINCTRL_SUN50I_H616=y
+CONFIG_PINCTRL_SUN50I_H616_R=y
+CONFIG_PINCTRL_MESON=y
+CONFIG_PINCTRL_MESON_GXBB=y
+CONFIG_PINCTRL_MESON_GXL=y
+CONFIG_PINCTRL_MESON8_PMX=y
+CONFIG_PINCTRL_MESON_AXG=y
+CONFIG_PINCTRL_MESON_AXG_PMX=y
+CONFIG_PINCTRL_MESON_G12A=y
+CONFIG_PINCTRL_MESON_A1=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=y
+CONFIG_GPIO_GENERIC=y
+
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_GPIO_PL061=y
+CONFIG_GPIO_ROCKCHIP=y
+CONFIG_GPIO_XILINX=y
+
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
+
+CONFIG_GPIO_MAX77620=y
+
+CONFIG_W1_CON=y
+CONFIG_W1_SLAVE_DS2408_READBACK=y
+
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_BRCMSTB=y
+CONFIG_POWER_RESET_VEXPRESS=y
+CONFIG_POWER_RESET_XGENE=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_POWER_SUPPLY_HWMON=y
+CONFIG_HWMON=y
+
+CONFIG_SENSORS_LTC2978_REGULATOR=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_STATISTICS=y
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_OF=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_FAIR_SHARE=y
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_BANG_BANG=y
+CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_CPU_THERMAL=y
+CONFIG_CPU_FREQ_THERMAL=y
+CONFIG_DEVFREQ_THERMAL=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_ROCKCHIP_THERMAL=y
+CONFIG_AMLOGIC_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+CONFIG_WATCHDOG_SYSFS=y
+
+
+CONFIG_DW_WATCHDOG=y
+
+
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SSB_SPROM=y
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+CONFIG_BCMA_HOST_PCI=y
+CONFIG_BCMA_DRIVER_PCI=y
+
+CONFIG_MFD_CORE=y
+CONFIG_MFD_AS3711=y
+CONFIG_PMIC_ADP5520=y
+CONFIG_MFD_AAT2870_CORE=y
+CONFIG_MFD_AXP20X=y
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_CROS_EC_DEV=y
+CONFIG_MFD_MAX77620=y
+CONFIG_MFD_RC5T583=y
+CONFIG_MFD_RK808=y
+CONFIG_MFD_SEC_CORE=y
+CONFIG_MFD_SUN6I_PRCM=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_VEXPRESS_SYSREG=y
+
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_AXP20X=y
+CONFIG_REGULATOR_FAN53555=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_REGULATOR_MAX77620=y
+CONFIG_REGULATOR_PWM=y
+CONFIG_REGULATOR_QCOM_SPMI=y
+CONFIG_REGULATOR_RK808=y
+CONFIG_REGULATOR_S2MPS11=y
+
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_DRM=y
+CONFIG_DRM_MIPI_DSI=y
+CONFIG_DRM_KMS_HELPER=y
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+CONFIG_DRM_DP_CEC=y
+CONFIG_DRM_GEM_CMA_HELPER=y
+CONFIG_DRM_KMS_CMA_HELPER=y
+CONFIG_DRM_GEM_SHMEM_HELPER=y
+
+CONFIG_DRM_ROCKCHIP=y
+CONFIG_DRM_PANFROST=y
+CONFIG_ROCKCHIP_VOP=y
+CONFIG_ROCKCHIP_VOP2=y
+CONFIG_ROCKCHIP_ANALOGIX_DP=y
+CONFIG_ROCKCHIP_CDN_DP=y
+CONFIG_ROCKCHIP_DW_HDMI=y
+CONFIG_ROCKCHIP_DW_MIPI_DSI=y
+CONFIG_ROCKCHIP_INNO_HDMI=y
+CONFIG_ROCKCHIP_LVDS=y
+CONFIG_ROCKCHIP_RGB=y
+CONFIG_ROCKCHIP_RK3066_HDMI=y
+CONFIG_DRM_SUN4I_HDMI_CEC=y
+CONFIG_DRM_PANEL=y
+
+
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+
+CONFIG_DRM_ANALOGIX_DP=y
+CONFIG_DRM_I2C_ADV7511_CEC=y
+CONFIG_DRM_DW_HDMI=y
+CONFIG_DRM_DW_MIPI_DSI=y
+
+CONFIG_DRM_ETNAVIV_THERMAL=y
+CONFIG_DRM_XEN=y
+CONFIG_DRM_LEGACY=y
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_NOTIFY=y
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+CONFIG_FB_SYS_FOPS=y
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_MODE_HELPERS=y
+
+CONFIG_FB_ARMCLCD=y
+CONFIG_XEN_FBDEV_FRONTEND=y
+
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_LP855X=y
+
+CONFIG_VIDEOMODE_HELPERS=y
+CONFIG_HDMI=y
+
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_LED_TRIG=y
+CONFIG_USB_ULPI_BUS=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_PCI=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+CONFIG_USB_DEFAULT_PERSIST=y
+CONFIG_USB_OTG=y
+CONFIG_USB_LEDS_TRIGGER_USBPORT=y
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_XHCI_PLATFORM=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_PCI=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PCI=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+
+
+
+CONFIG_USB_STORAGE=y
+
+CONFIG_USBIP_VHCI_HC_PORTS=8
+CONFIG_USBIP_VHCI_NR_HCS=1
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_DUAL_ROLE=y
+
+CONFIG_USB_DWC3_HAPS=y
+CONFIG_USB_DWC3_OF_SIMPLE=y
+CONFIG_USB_DWC2=y
+
+CONFIG_USB_DWC2_DUAL_ROLE=y
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+CONFIG_USB_CHIPIDEA_PCI=y
+CONFIG_USB_CHIPIDEA_MSM=y
+CONFIG_USB_CHIPIDEA_IMX=y
+CONFIG_USB_CHIPIDEA_GENERIC=y
+CONFIG_USB_CHIPIDEA_TEGRA=y
+CONFIG_USB_ISP1760=y
+CONFIG_USB_ISP1760_HCD=y
+CONFIG_USB_ISP1761_UDC=y
+CONFIG_USB_ISP1760_DUAL_ROLE=y
+
+CONFIG_USB_SERIAL_GENERIC=y
+
+CONFIG_USB_HSIC_USB3503=y
+
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_ULPI=y
+CONFIG_USB_ULPI_VIEWPORT=y
+
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_U_SERIAL_CONSOLE=y
+
+
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_USB_CONFIGFS_F_TCM=y
+
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_ETH_EEM=y
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_G_MULTI_RNDIS=y
+CONFIG_USB_G_MULTI_CDC=y
+
+
+
+
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_MMC=y
+CONFIG_PWRSEQ_EMMC=y
+CONFIG_PWRSEQ_SIMPLE=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=32
+
+CONFIG_MMC_ARMMMCI=y
+CONFIG_MMC_STM32_SDMMC=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_OF_ARASAN=y
+CONFIG_MMC_SDHCI_CADENCE=y
+CONFIG_MMC_SPI=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_PLTFM=y
+CONFIG_MMC_DW_EXYNOS=y
+CONFIG_MMC_DW_K3=y
+CONFIG_MMC_DW_ROCKCHIP=y
+CONFIG_MMC_CQHCI=y
+CONFIG_MMC_SDHCI_XENON=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+CONFIG_LEDS_GPIO=y
+
+CONFIG_LEDS_SYSCON=y
+CONFIG_LEDS_USER=y
+
+
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_DISK=y
+CONFIG_LEDS_TRIGGER_MTD=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_CPU=y
+CONFIG_LEDS_TRIGGER_ACTIVITY=y
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+
+CONFIG_LEDS_TRIGGER_PANIC=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_EDAC=y
+CONFIG_EDAC_LEGACY_SYSFS=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+CONFIG_RTC_NVMEM=y
+
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+
+CONFIG_RTC_DRV_DS1307=y
+CONFIG_RTC_DRV_HYM8563=y
+CONFIG_RTC_DRV_MAX77686=y
+CONFIG_RTC_DRV_RK808=y
+CONFIG_RTC_DRV_M41T80_WDT=y
+
+CONFIG_RTC_I2C_AND_SPI=y
+
+CONFIG_RTC_DRV_DS3232_HWMON=y
+CONFIG_RTC_DRV_RV3029_HWMON=y
+
+CONFIG_RTC_DRV_EFI=y
+
+CONFIG_RTC_DRV_PL031=y
+CONFIG_RTC_DRV_SUN6I=y
+
+CONFIG_DMADEVICES=y
+
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_OF=y
+CONFIG_MV_XOR_V2=y
+CONFIG_PL330_DMA=y
+CONFIG_QCOM_HIDMA_MGMT=y
+CONFIG_QCOM_HIDMA=y
+
+CONFIG_DMA_ENGINE_RAID=y
+
+CONFIG_SYNC_FILE=y
+
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+CONFIG_COMMON_CLK_RK808=y
+CONFIG_COMMON_CLK_SCPI=y
+CONFIG_COMMON_CLK_CS2000_CP=y
+CONFIG_COMMON_CLK_S2MPS11=y
+CONFIG_COMMON_CLK_XGENE=y
+CONFIG_COMMON_CLK_PWM=y
+
+CONFIG_COMMON_CLK_MESON_REGMAP=y
+CONFIG_COMMON_CLK_MESON_DUALDIV=y
+CONFIG_COMMON_CLK_MESON_MPLL=y
+CONFIG_COMMON_CLK_MESON_PLL=y
+CONFIG_COMMON_CLK_MESON_VID_PLL_DIV=y
+CONFIG_COMMON_CLK_MESON_AO_CLKC=y
+CONFIG_COMMON_CLK_MESON_EE_CLKC=y
+CONFIG_COMMON_CLK_MESON_CPU_DYNDIV=y
+CONFIG_COMMON_CLK_GXBB=y
+CONFIG_COMMON_CLK_AXG=y
+CONFIG_COMMON_CLK_G12A=y
+
+CONFIG_COMMON_CLK_ROCKCHIP=y
+CONFIG_CLK_PX30=y
+CONFIG_CLK_RK3308=y
+CONFIG_CLK_RK3328=y
+CONFIG_CLK_RK3368=y
+CONFIG_CLK_RK3399=y
+CONFIG_CLK_SUNXI=y
+CONFIG_CLK_SUNXI_CLOCKS=y
+CONFIG_CLK_SUNXI_PRCM_SUN6I=y
+CONFIG_CLK_SUNXI_PRCM_SUN8I=y
+CONFIG_CLK_SUNXI_PRCM_SUN9I=y
+CONFIG_SUNXI_CCU=y
+CONFIG_SUN50I_A64_CCU=y
+CONFIG_SUN50I_A100_CCU=y
+CONFIG_SUN50I_A100_R_CCU=y
+CONFIG_SUN50I_H6_CCU=y
+CONFIG_SUN50I_H616_CCU=y
+CONFIG_SUN50I_H6_R_CCU=y
+CONFIG_SUN8I_A83T_CCU=y
+CONFIG_SUN8I_H3_CCU=y
+CONFIG_SUN8I_DE2_CCU=y
+CONFIG_SUN8I_R_CCU=y
+
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_ROCKCHIP_TIMER=y
+CONFIG_SUN4I_TIMER=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y
+CONFIG_FSL_ERRATUM_A008585=y
+CONFIG_HISILICON_ERRATUM_161010101=y
+CONFIG_ARM64_ERRATUM_858921=y
+CONFIG_SUN50I_ERRATUM_UNKNOWN1=y
+
+CONFIG_MAILBOX=y
+CONFIG_ARM_MHU=y
+CONFIG_PLATFORM_MHU=y
+CONFIG_ROCKCHIP_MBOX=y
+CONFIG_SUN6I_MSGBOX=y
+CONFIG_IOMMU_IOVA=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+CONFIG_IOMMU_IO_PGTABLE=y
+CONFIG_IOMMU_IO_PGTABLE_LPAE=y
+
+CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
+CONFIG_OF_IOMMU=y
+CONFIG_IOMMU_DMA=y
+CONFIG_ROCKCHIP_IOMMU=y
+CONFIG_ARM_SMMU=y
+CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y
+CONFIG_ARM_SMMU_V3=y
+
+
+
+
+
+CONFIG_MESON_CLK_MEASURE=y
+CONFIG_MESON_GX_SOCINFO=y
+CONFIG_MESON_GX_PM_DOMAINS=y
+CONFIG_MESON_EE_PM_DOMAINS=y
+CONFIG_MESON_SECURE_PM_DOMAINS=y
+
+CONFIG_SOC_BRCMSTB=y
+
+
+
+CONFIG_LITEX=y
+
+
+CONFIG_ROCKCHIP_GRF=y
+CONFIG_ROCKCHIP_IODOMAIN=y
+CONFIG_ROCKCHIP_PM_DOMAINS=y
+CONFIG_ROCKCHIP_SUSPEND_MODE=y
+CONFIG_SUNXI_MBUS=y
+CONFIG_SUNXI_SRAM=y
+
+
+CONFIG_VENDOR_FRIENDLYELEC=y
+
+CONFIG_PM_DEVFREQ=y
+
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+
+CONFIG_ARM_RK3328_DMC_DEVFREQ=y
+CONFIG_ARM_RK3399_DMC_DEVFREQ=y
+CONFIG_PM_DEVFREQ_EVENT=y
+CONFIG_DEVFREQ_EVENT_ROCKCHIP_DFI=y
+CONFIG_EXTCON=y
+
+CONFIG_EXTCON_USB_GPIO=y
+CONFIG_IIO=y
+CONFIG_IIO_BUFFER=y
+CONFIG_IIO_KFIFO_BUF=y
+CONFIG_IIO_TRIGGERED_BUFFER=y
+CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+
+
+CONFIG_MESON_SARADC=y
+CONFIG_ROCKCHIP_SARADC=y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CONFIG_IIO_ADIS_LIB_BUFFER=y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM_ROCKCHIP=y
+
+CONFIG_IRQCHIP=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_MAX_NR=1
+CONFIG_ARM_GIC_V2M=y
+CONFIG_ARM_GIC_V3=y
+CONFIG_ARM_GIC_V3_ITS=y
+CONFIG_ARM_GIC_V3_ITS_PCI=y
+CONFIG_PARTITION_PERCPU=y
+CONFIG_MESON_IRQ_GPIO=y
+
+CONFIG_ARCH_HAS_RESET_CONTROLLER=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_MESON=y
+CONFIG_RESET_SIMPLE=y
+CONFIG_RESET_SUNXI=y
+
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PHY_MIPI_DPHY=y
+CONFIG_PHY_XGENE=y
+CONFIG_PHY_MESON_AXG_PCIE=y
+CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y
+CONFIG_PHY_ROCKCHIP_DP=y
+CONFIG_PHY_ROCKCHIP_EMMC=y
+CONFIG_PHY_ROCKCHIP_INNO_HDMI=y
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+CONFIG_PHY_ROCKCHIP_PCIE=y
+CONFIG_PHY_ROCKCHIP_TYPEC=y
+CONFIG_PHY_ROCKCHIP_USB=y
+CONFIG_PHY_SAMSUNG_USB2=y
+
+
+CONFIG_ARM_PMU=y
+
+CONFIG_RAS=y
+
+
+CONFIG_DAX=y
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+CONFIG_ROCKCHIP_EFUSE=y
+
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+
+
diff --git a/target/aarch64/rockpi4-plus/extlinux.conf b/target/aarch64/rockpi4-plus/extlinux.conf
new file mode 100644
index 000000000..d754675c4
--- /dev/null
+++ b/target/aarch64/rockpi4-plus/extlinux.conf
@@ -0,0 +1,4 @@
+label rockpi4-plus-openadk
+ kernel /kernel
+ devicetree /rk3399-rock-pi-4b-plus.dtb
+ append console=ttyS2,115200n8 root=/dev/mmcblk0p2 rootwait
diff --git a/target/aarch64/rockpi4-plus/genimage-dual.cfg b/target/aarch64/rockpi4-plus/genimage-dual.cfg
new file mode 100644
index 000000000..27f9a797e
--- /dev/null
+++ b/target/aarch64/rockpi4-plus/genimage-dual.cfg
@@ -0,0 +1,34 @@
+image sdcard.img {
+ hdimage {
+ }
+
+ partition loader1 {
+ in-partition-table = "no"
+ image = "idbloader.img"
+ offset = 32K
+ }
+
+ partition loader2 {
+ in-partition-table = "no"
+ image = "u-boot.itb"
+ offset = 8M
+ }
+
+ partition root1 {
+ partition-type = 0x83
+ bootable = "true"
+ image = "rootfs1.ext"
+ size = 64M
+ }
+
+ partition root2 {
+ partition-type = 0x83
+ image = "rootfs2.ext"
+ size = 64M
+ }
+
+ partition cfgfs {
+ partition-type = 0x88
+ image = "cfgfs.img"
+ }
+}
diff --git a/target/aarch64/rockpi4-plus/genimage.cfg b/target/aarch64/rockpi4-plus/genimage.cfg
new file mode 100644
index 000000000..4cb5f3593
--- /dev/null
+++ b/target/aarch64/rockpi4-plus/genimage.cfg
@@ -0,0 +1,45 @@
+image boot.vfat {
+ vfat {
+ files = {
+ "kernel",
+ "rk3399-rock-pi-4b-plus.dtb",
+ "extlinux"
+ }
+ }
+
+ size = 32M
+}
+
+image sdcard.img {
+ hdimage {
+ }
+
+ partition loader1 {
+ in-partition-table = "no"
+ image = "idbloader.img"
+ offset = 32K
+ }
+
+ partition loader2 {
+ in-partition-table = "no"
+ image = "u-boot.itb"
+ offset = 8M
+ }
+
+ partition boot {
+ partition-type = 0xC
+ bootable = "true"
+ image = "boot.vfat"
+ offset = 16M
+ }
+
+ partition rootfs {
+ partition-type = 0x83
+ image = "rootfs.ext"
+ }
+
+ partition cfgfs {
+ partition-type = 0x88
+ image = "cfgfs.img"
+ }
+}
diff --git a/target/aarch64/systems/raspberry-pi3p-64 b/target/aarch64/systems/raspberry-pi3p-64
deleted file mode 100644
index 3ac86b45b..000000000
--- a/target/aarch64/systems/raspberry-pi3p-64
+++ /dev/null
@@ -1,26 +0,0 @@
-config ADK_TARGET_SYSTEM_RASPBERRY_PI3P_64
- bool "Raspberry PI 3 Model B+"
- select ADK_TARGET_LITTLE_ENDIAN
- select ADK_TARGET_CPU_AARCH64_CORTEX_A53
- select ADK_TARGET_BOARD_BCM28XX
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_SERIAL
- select ADK_TARGET_WITH_CPU_FREQ
- select ADK_TARGET_WITH_USB
- select ADK_TARGET_WITH_INPUT
- select ADK_TARGET_WITH_SD
- select ADK_TARGET_WITH_I2C
- select ADK_TARGET_WITH_SPI
- select ADK_TARGET_WITH_SMP
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_WITH_WIFI
- select ADK_TARGET_WITH_BLOCK
- select ADK_TARGET_WITH_SOUND
- select ADK_TARGET_WITH_SDIO
- select ADK_PACKAGE_BCM28XX_BOOTLOADER
- select ADK_TARGET_WITH_ROOT_RW
- select ADK_TARGET_KERNEL_IMAGE
- help
- Raspberry PI 3 Model B+ (AARCH64)
-
diff --git a/target/aarch64/systems/raspberry-pi4-64 b/target/aarch64/systems/raspberry-pi4-64
new file mode 100644
index 000000000..e06ac6dbe
--- /dev/null
+++ b/target/aarch64/systems/raspberry-pi4-64
@@ -0,0 +1,26 @@
+config ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
+ bool "Raspberry PI 4"
+ select ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_CPU_AARCH64_CORTEX_A72
+ select ADK_TARGET_BOARD_BCM28XX
+ select ADK_TARGET_WITH_VGA
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_CPU_FREQ
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_INPUT
+ select ADK_TARGET_WITH_SD
+ select ADK_TARGET_WITH_I2C
+ select ADK_TARGET_WITH_SPI
+ select ADK_TARGET_WITH_SMP
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
+ select ADK_TARGET_WITH_WIFI
+ select ADK_TARGET_WITH_BLOCK
+ select ADK_TARGET_WITH_SOUND
+ select ADK_TARGET_WITH_SDIO
+ select ADK_PACKAGE_BCM28XX_BOOTLOADER
+ select ADK_TARGET_WITH_ROOT_RW
+ select ADK_TARGET_KERNEL_IMAGE
+ help
+ Raspberry PI 4 (AARCH64)
+
diff --git a/target/aarch64/systems/raspberry-pi5 b/target/aarch64/systems/raspberry-pi5
new file mode 100644
index 000000000..770758b5e
--- /dev/null
+++ b/target/aarch64/systems/raspberry-pi5
@@ -0,0 +1,26 @@
+config ADK_TARGET_SYSTEM_RASPBERRY_PI5
+ bool "Raspberry PI 5"
+ select ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_CPU_AARCH64_CORTEX_A76
+ select ADK_TARGET_BOARD_BCM28XX
+ select ADK_TARGET_WITH_VGA
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_CPU_FREQ
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_INPUT
+ select ADK_TARGET_WITH_SD
+ select ADK_TARGET_WITH_I2C
+ select ADK_TARGET_WITH_SPI
+ select ADK_TARGET_WITH_SMP
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
+ select ADK_TARGET_WITH_WIFI
+ select ADK_TARGET_WITH_BLOCK
+ select ADK_TARGET_WITH_SOUND
+ select ADK_TARGET_WITH_SDIO
+ select ADK_PACKAGE_BCM28XX_BOOTLOADER
+ select ADK_TARGET_WITH_ROOT_RW
+ select ADK_TARGET_KERNEL_IMAGE
+ help
+ Raspberry PI 5
+
diff --git a/target/aarch64/systems/rockpi4-plus b/target/aarch64/systems/rockpi4-plus
new file mode 100644
index 000000000..875e5a90f
--- /dev/null
+++ b/target/aarch64/systems/rockpi4-plus
@@ -0,0 +1,27 @@
+config ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ bool "Rock PI 4 Plus"
+ depends on ADK_TARGET_OS_LINUX
+ select ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_CPU_AARCH64_CORTEX_A53
+ select ADK_TARGET_WITH_VGA
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_CPU_FREQ
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_INPUT
+ select ADK_TARGET_WITH_SD
+ select ADK_TARGET_WITH_SDIO
+ select ADK_TARGET_WITH_I2C
+ select ADK_TARGET_WITH_SPI
+ select ADK_TARGET_WITH_PCI
+ select ADK_TARGET_WITH_SMP
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
+ select ADK_TARGET_WITH_BLOCK
+ select ADK_TARGET_WITH_SOUND
+ select ADK_TARGET_WITH_RTC
+ select ADK_TARGET_WITH_WIFI
+ select ADK_TARGET_KERNEL_IMAGE
+ select ADK_PACKAGE_U_BOOT
+ help
+ Rock PI 4 Plus
+
diff --git a/target/alpha/Makefile b/target/alpha/Makefile
index 0d3b4f873..013409a23 100644
--- a/target/alpha/Makefile
+++ b/target/alpha/Makefile
@@ -6,9 +6,6 @@ include $(ADK_TOPDIR)/mk/kernel-build.mk
include $(ADK_TOPDIR)/mk/image.mk
KERNEL:=$(LINUX_DIR)/vmlinux
-ifeq ($(ADK_TARGET_SYSTEM_DEC_MULTIA),y)
-KERNEL:=$(LINUX_DIR)/arch/alpha/boot/bootpfile
-endif
QEMU_ARGS:=-monitor null
QEMU_ARGS+=${ADK_QEMU_ARGS}
@@ -55,20 +52,11 @@ ifeq ($(ADK_TARGET_FS),nfsroot)
targethelp:
@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
@echo 'The nfs root tarball is: ${FW_DIR}/${ROOTFSUSERTARBALL}'
-ifeq ($(ADK_TARGET_SYSTEM_DEC_MULTIA),y)
- @echo 'The SRM console uses 9600 baud'
- @echo 'To netboot the Dec multia type following in SRM console:'
- @echo '>>>boot ewa0 -protocols bootp -fl "root=/dev/nfs ip=dhcp"'
-endif
endif
# image creation and kernel install
kernel-strip:
-ifeq ($(ADK_TARGET_SYSTEM_DEC_MULTIA),y)
- cp $(KERNEL) $(BUILD_DIR)/${TARGET_KERNEL}
-else
$(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
-endif
kernel-install: kernel-strip
cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
diff --git a/target/alpha/kernel/qemu-alpha b/target/alpha/kernel/qemu-alpha
index ddf62d2fb..0a66ab9d3 100644
--- a/target/alpha/kernel/qemu-alpha
+++ b/target/alpha/kernel/qemu-alpha
@@ -3,3 +3,4 @@ CONFIG_ALPHA_DP264=y
CONFIG_ALPHA_QEMU=y
CONFIG_ISA=y
CONFIG_ISA_DMA_API=y
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
diff --git a/target/alpha/systems/dec-alphastation-m3 b/target/alpha/systems/dec-alphastation-m3
deleted file mode 100644
index 4ac0d5166..000000000
--- a/target/alpha/systems/dec-alphastation-m3
+++ /dev/null
@@ -1,8 +0,0 @@
-config ADK_TARGET_SYSTEM_DEC_ALPHASTATION_M3
- bool "Digital Alphastation 250 4/266 (M3)"
- select ADK_TARGET_CPU_ALPHA_EV4
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- Support for DEC Alphastation. See:
- https://en.wikipedia.org/wiki/AlphaStation
-
diff --git a/target/alpha/systems/dec-multia b/target/alpha/systems/dec-multia
deleted file mode 100644
index badef7e87..000000000
--- a/target/alpha/systems/dec-multia
+++ /dev/null
@@ -1,11 +0,0 @@
-config ADK_TARGET_SYSTEM_DEC_MULTIA
- bool "Digital Multia"
- select ADK_TARGET_CPU_ALPHA_EV4
- select ADK_TARGET_WITH_SERIAL
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_KERNEL_VMLINUX_BOOTP
- help
- Support for DEC Multia. See:
- https://en.wikipedia.org/wiki/DEC_Multia
-
diff --git a/target/arc/Makefile b/target/arc/Makefile
index bdd3e4c9a..decdd8176 100644
--- a/target/arc/Makefile
+++ b/target/arc/Makefile
@@ -5,10 +5,36 @@ include $(ADK_TOPDIR)/rules.mk
include $(ADK_TOPDIR)/mk/kernel-build.mk
include $(ADK_TOPDIR)/mk/image.mk
+KERNEL:=$(LINUX_DIR)/$(ADK_TARGET_KERNEL)
ifeq ($(ADK_TARGET_KERNEL_UIMAGE),y)
KERNEL:=$(LINUX_DIR)/arch/arc/boot/uImage
-else
-KERNEL:=$(LINUX_DIR)/$(ADK_TARGET_KERNEL)
+endif
+ifeq ($(ADK_TARGET_KERNEL_LOADER),y)
+KERNEL:=$(LINUX_DIR)/arch/arc/boot/loader
+endif
+
+QEMU_ARGS:=-monitor none -serial stdio
+QEMU_ARGS+=-netdev user,id=eth0 -device virtio-net-device,netdev=eth0
+QEMU_ARGS+=${ADK_QEMU_ARGS}
+
+ifeq ($(ADK_TARGET_CPU_ARC_ARC700),y)
+QEMU:=qemu-system-arc
+QEMU_ARGS+=-cpu arc700
+endif
+
+ifeq ($(ADK_TARGET_CPU_ARC_ARCHS),y)
+QEMU:=qemu-system-arc
+QEMU_ARGS+=-cpu archs
+endif
+
+ifeq ($(ADK_TARGET_CPU_ARC_ARC32),y)
+QEMU:=qemu-system-arc
+QEMU_ARGS+=-cpu hs5x -M virt,ram_start=0
+endif
+
+ifeq ($(ADK_TARGET_CPU_ARC_ARC64),y)
+QEMU:=qemu-system-arc64
+QEMU_ARGS+=-cpu hs6x -M virt,ram_start=0
endif
# target helper text
@@ -29,6 +55,10 @@ endif
ifeq ($(ADK_TARGET_FS),initramfspiggyback)
targethelp:
@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo "Start qemu with following command line:"
+ @echo '${QEMU} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+endif
ifeq ($(ADK_TARGET_SYSTEM_SYNOPSYS_NSIM),y)
ifeq ($(ADK_TARGET_LITTLE_ENDIAN),y)
ifeq ($(ADK_TARGET_CPU_ARC_ARC700),y)
diff --git a/target/arc/kernel/qemu-arc b/target/arc/kernel/qemu-arc
new file mode 100644
index 000000000..d537406d4
--- /dev/null
+++ b/target/arc/kernel/qemu-arc
@@ -0,0 +1,3 @@
+CONFIG_ARC=y
+CONFIG_ARC_HAS_ACCL_REGS=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/arc/kernel/synopsys-hsdk b/target/arc/kernel/synopsys-hsdk
index d4166a500..8deed79ef 100644
--- a/target/arc/kernel/synopsys-hsdk
+++ b/target/arc/kernel/synopsys-hsdk
@@ -1,4 +1,12 @@
CONFIG_ISA_ARCV2=y
CONFIG_ARC_SOC_HSDK=y
CONFIG_ARC_UBOOT_SUPPORT=y
+CONFIG_ARC_DBG=y
CONFIG_ARC_DW2_UNWIND=y
+CONFIG_ARC_HAS_LLSC=y
+CONFIG_ARC_HAS_SWAPE=y
+CONFIG_ARC_USE_UNALIGNED_MEM_ACCESS=y
+CONFIG_ARC_HAS_LL64=y
+CONFIG_ARC_HAS_DIV_REM=y
+CONFIG_ARC_HAS_ACCL_REGS=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/arc/kernel/synopsys-nsim b/target/arc/kernel/synopsys-nsim
index ad1683b1c..c7bb2706c 100644
--- a/target/arc/kernel/synopsys-nsim
+++ b/target/arc/kernel/synopsys-nsim
@@ -2,3 +2,10 @@ CONFIG_ARC=y
CONFIG_ARC_PLAT_SIM=y
CONFIG_ARC_DBG=y
CONFIG_ARC_DW2_UNWIND=y
+CONFIG_ARC_HAS_LLSC=y
+CONFIG_ARC_HAS_SWAPE=y
+CONFIG_ARC_USE_UNALIGNED_MEM_ACCESS=y
+CONFIG_ARC_HAS_LL64=y
+CONFIG_ARC_HAS_DIV_REM=y
+CONFIG_ARC_HAS_ACCL_REGS=y
+
diff --git a/target/arc/systems/qemu-arc b/target/arc/systems/qemu-arc
new file mode 100644
index 000000000..017042e3a
--- /dev/null
+++ b/target/arc/systems/qemu-arc
@@ -0,0 +1,8 @@
+config ADK_TARGET_SYSTEM_QEMU_ARC
+ bool "Qemu Emulator"
+ select ADK_TARGET_QEMU
+ select ADK_TARGET_KERNEL_WITH_COMPRESSION
+ select ADK_TARGET_LITTLE_ENDIAN
+ help
+ Support for QEMU ARC Emulator.
+
diff --git a/target/arc/systems/synopsys-hsdk b/target/arc/systems/synopsys-hsdk
index 73659d4d5..799813e0d 100644
--- a/target/arc/systems/synopsys-hsdk
+++ b/target/arc/systems/synopsys-hsdk
@@ -9,6 +9,7 @@ config ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
select ADK_TARGET_WITH_BLOCK
select ADK_TARGET_WITH_SMP
select ADK_HOST_BUILD_U_BOOT
+ select ADK_TARGET_KERNEL_WITH_COMPRESSION
help
Support for Synopsys HSDK.
diff --git a/target/arc/uclibc-ng.config b/target/arc/uclibc-ng.config
index b20bca4ff..2842123a9 100644
--- a/target/arc/uclibc-ng.config
+++ b/target/arc/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
+# uClibc-ng 1.0.45 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -10,11 +10,13 @@ TARGET_arc=y
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
+# TARGET_csky is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_ia64 is not set
+# TARGET_kvx is not set
# TARGET_lm32 is not set
# TARGET_m68k is not set
# TARGET_metag is not set
@@ -24,11 +26,16 @@ TARGET_arc=y
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
#
# Target Architecture Features and Options
@@ -45,16 +52,15 @@ TARGET_SUBARCH=""
# Using ELF file format
#
ARCH_ANY_ENDIAN=y
-ARCH_BIG_ENDIAN=y
-ARCH_WANTS_BIG_ENDIAN=y
-# ARCH_WANTS_LITTLE_ENDIAN is not set
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
ARCH_HAS_MMU=y
ARCH_USE_MMU=y
UCLIBC_HAS_FLOATS=y
UCLIBC_HAS_FPU=y
DO_C99_MATH=y
DO_XSI_MATH=y
-# UCLIBC_HAS_FENV is not set
UCLIBC_HAS_LONG_DOUBLE_MATH=y
KERNEL_HEADERS=""
HAVE_DOT_CONFIG=y
@@ -63,6 +69,7 @@ HAVE_DOT_CONFIG=y
# General Library Settings
#
DOPIC=y
+HAVE_LDSO=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
@@ -78,7 +85,6 @@ LDSO_RUNPATH_OF_EXECUTABLE=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -87,6 +93,7 @@ UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
@@ -115,6 +122,7 @@ UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
#
# Advanced Library Settings
@@ -130,6 +138,7 @@ UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_SV4_DEPRECATED=y
@@ -152,6 +161,10 @@ UCLIBC_HAS_BSD_RES_CLOSE=y
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
#
# String and Stdio Support
@@ -221,7 +234,6 @@ HARDWIRED_ABSPATH=y
#
# Security options
#
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set
diff --git a/target/arch.lst b/target/arch.lst
index f0bc76d79..d801075d8 100644
--- a/target/arch.lst
+++ b/target/arch.lst
@@ -14,7 +14,9 @@ ft32
h8300
hppa
ia64
+kvx
lm32
+loongarch
m32c
m32r
m68k
diff --git a/target/arm/Makefile b/target/arm/Makefile
index 59b457d12..e5c7a3a6d 100644
--- a/target/arm/Makefile
+++ b/target/arm/Makefile
@@ -33,7 +33,7 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE),y)
QEMU_ARGS+=-M realview-eb-mpcore -net user -net nic -dtb $(FW_DIR)/arm-realview-eb-11mp-ctrevb.dtb
endif
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB),y)
-QEMU_ARGS+=-M versatilepb -net user -net nic,model=smc91c111 -dtb $(FW_DIR)/versatile-pb.dtb
+QEMU_ARGS+=-M versatilepb -m 256 -net user -net nic,model=smc91c111 -dtb $(FW_DIR)/versatile-pb.dtb
endif
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9),y)
QEMU_ARGS+=-M vexpress-a9 -cpu cortex-a9 -m 256 -net user -net nic,model=lan9118 -dtb $(FW_DIR)/vexpress-v2p-ca9.dtb
@@ -48,6 +48,7 @@ endif
# target helper text
ifeq ($(ADK_TARGET_FS),archive)
targethelp:
+ @echo "#################################################"
@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9)$(ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB)$(ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER)$(ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ),y)
@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
@@ -79,12 +80,23 @@ ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_WEGA),y)
@echo "bootm -o /mnt/am335x-wega-rdk.dtb /mnt/kernel"
@echo
endif
+ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_IMX6),y)
+ @echo "Use following command to install it on SD card:"
+ @echo "sudo ./scripts/install.sh phytec-imx6 /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo
+endif
ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
@echo "Use following command to install it on SD card:"
@echo "sudo ./scripts/install.sh banana-pro /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
@echo "Use following command to install with a writable data partition"
@echo "sudo ./scripts/install.sh -d 256 banana-pro /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
endif
+ifeq ($(ADK_TARGET_SYSTEM_BANANA_P2_ZERO),y)
+ @echo "Use following command to install it on SD card:"
+ @echo "sudo ./scripts/install.sh banana-pro-zero /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "Use following command to install with a writable data partition"
+ @echo "sudo ./scripts/install.sh -d 256 banana-pro-zero /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+endif
ifeq ($(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
@echo "Use following command to install it on SD card:"
@echo "sudo ./scripts/install.sh orange-pi0 /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
@@ -143,9 +155,9 @@ endif
endif
ifeq ($(ADK_TARGET_FS),genimage)
targethelp:
- @echo "The disk image is: $(FW_DIR)/disk.img"
+ @echo "The disk image is: $(FW_DIR)/sdcard.img"
@echo "Use following command to install it on SD card:"
- @echo 'sudo dd if=$(FW_DIR)/disk.img of=/dev/sdX bs=2048k'
+ @echo 'sudo dd if=$(FW_DIR)/sdcard.img of=/dev/sdX bs=2048k'
endif
kernel-strip:
@@ -163,64 +175,85 @@ ifeq ($(ADK_TARGET_FS),squashfs)
dd conv=notrunc if=$(BUILD_DIR)/root.squashfs of=$(FW_DIR)/$(ROOTFSSQUASHFS)
endif
+ifeq ($(ADK_TARGET_LINUX_KERNEL_VERSION_6_6),y)
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB),y)
+VENDOR:=arm/
+endif
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE),y)
+VENDOR:=arm/
+endif
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9),y)
+VENDOR:=arm/
+endif
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ),y)
+VENDOR:=xilinx/
+endif
+endif
+
dtb-install:
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- dtbs $(MAKE_TRACE)
+ ${KERNEL_MAKE} dtbs $(MAKE_TRACE)
endif
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- dtbs $(MAKE_TRACE)
+ ${KERNEL_MAKE} $(VENDOR)vexpress-v2p-ca9.dtb $(MAKE_TRACE)
endif
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- arm-realview-eb-11mp-ctrevb.dtb $(MAKE_TRACE)
+ ${KERNEL_MAKE} $(VENDOR)arm-realview-eb-11mp-ctrevb.dtb $(MAKE_TRACE)
endif
ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- versatile-pb.dtb $(MAKE_TRACE)
+ ${KERNEL_MAKE} $(VENDOR)versatile-pb.dtb $(MAKE_TRACE)
endif
ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_WEGA),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- am335x-wega-rdk.dtb
+ ${KERNEL_MAKE} am335x-wega-rdk.dtb $(MAKE_TRACE)
cp $(LINUX_DIR)/arch/arm/boot/dts/am335x-wega-rdk.dtb ${TARGET_DIR}/boot
endif
+ifeq ($(ADK_TARGET_SYSTEM_PHYTEC_IMX6),y)
+ ${KERNEL_MAKE} imx6q-phytec-pbab01.dtb $(MAKE_TRACE)
+ cp $(LINUX_DIR)/arch/arm/boot/dts/imx6q-phytec-pbab01.dtb ${TARGET_DIR}/boot
+endif
ifeq ($(ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- am335x-boneblack.dtb
+ ${KERNEL_MAKE} am335x-boneblack.dtb $(MAKE_TRACE)
cp $(LINUX_DIR)/arch/arm/boot/dts/am335x-boneblack.dtb ${TARGET_DIR}/boot
endif
ifeq ($(ADK_TARGET_BOARD_BCM28XX),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- dtbs $(MAKE_TRACE)
+ ${KERNEL_MAKE} dtbs $(MAKE_TRACE)
mkdir -p $(FW_DIR)/overlays
for x in $(LINUX_DIR)/arch/arm/boot/dts/overlays/*.dtbo; do \
[[ -e "$$x" ]] && cp $(LINUX_DIR)/arch/arm/boot/dts/overlays/*.dtbo $(FW_DIR)/overlays; \
break; \
done
+ for x in $(LINUX_DIR)/arch/arm/boot/dts/overlays/*.dtb; do \
+ [[ -e "$$x" ]] && cp $(LINUX_DIR)/arch/arm/boot/dts/overlays/*.dtb $(FW_DIR)/overlays; \
+ break; \
+ done
endif
ifeq ($(ADK_TARGET_SYSTEM_BANANA_PRO),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- sun7i-a20-bananapro.dtb $(MAKE_TRACE)
+ ${KERNEL_MAKE} sun7i-a20-bananapro.dtb $(MAKE_TRACE)
endif
ifeq ($(ADK_TARGET_SYSTEM_ORANGE_PI0),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- sun8i-h2-plus-orangepi-zero.dtb $(MAKE_TRACE)
+ ${KERNEL_MAKE} sun8i-h2-plus-orangepi-zero.dtb $(MAKE_TRACE)
+endif
+ifeq ($(ADK_TARGET_SYSTEM_BANANA_P2_ZERO),y)
+ ${KERNEL_MAKE} sun8i-h2-plus-bananapi-m2-zero.dtb $(MAKE_TRACE)
endif
ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_IMX6),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- imx6q-cubox-i.dtb imx6dl-cubox-i.dtb imx6dl-hummingboard.dtb imx6q-hummingboard.dtb $(MAKE_TRACE)
+ ${KERNEL_MAKE} imx6q-cubox-i.dtb imx6dl-cubox-i.dtb \
+ imx6dl-hummingboard.dtb imx6q-hummingboard.dtb $(MAKE_TRACE)
endif
ifeq ($(ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- armada-388-clearfog.dtb $(MAKE_TRACE)
+ ${KERNEL_MAKE} armada-388-clearfog.dtb $(MAKE_TRACE)
+endif
+ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F429),y)
+ ${KERNEL_MAKE} dtbs $(MAKE_TRACE)
endif
ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F769),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- dtbs $(MAKE_TRACE)
+ ${KERNEL_MAKE} dtbs $(MAKE_TRACE)
+endif
+ifeq ($(ADK_TARGET_SYSTEM_ST_STM32F746G),y)
+ ${KERNEL_MAKE} dtbs $(MAKE_TRACE)
endif
- for x in $(LINUX_DIR)/arch/arm/boot/dts/*.dtb; do \
- [[ -e "$$x" ]] && cp $(LINUX_DIR)/arch/arm/boot/dts/*.dtb $(FW_DIR); \
+ for x in $(LINUX_DIR)/arch/arm/boot/dts/$(VENDOR)*.dtb; do \
+ [[ -e "$$x" ]] && cp $(LINUX_DIR)/arch/arm/boot/dts/$(VENDOR)*.dtb $(FW_DIR); \
break; \
done
diff --git a/target/arm/banana-p2-zero/extlinux.conf b/target/arm/banana-p2-zero/extlinux.conf
new file mode 100644
index 000000000..08a063d7f
--- /dev/null
+++ b/target/arm/banana-p2-zero/extlinux.conf
@@ -0,0 +1,4 @@
+label banana-p2-zero-openadk
+ kernel /kernel
+ devicetree /sun8i-h2-plus-bananapi-m2-zero.dtb
+ append console=ttyS0,115200n8 rw rootwait
diff --git a/target/arm/banana-p2-zero/genimage.cfg b/target/arm/banana-p2-zero/genimage.cfg
new file mode 100644
index 000000000..98c9de077
--- /dev/null
+++ b/target/arm/banana-p2-zero/genimage.cfg
@@ -0,0 +1,35 @@
+image boot.vfat {
+ vfat {
+ files = {
+ "kernel",
+ "sun8i-h2-plus-bananapi-m2-zero.dtb",
+ "boot.scr"
+ }
+ }
+
+ size = 64M
+}
+
+image sdcard.img {
+ hdimage {
+ }
+
+ partition u-boot {
+ in-partition-table = "no"
+ image = "u-boot-sunxi-with-spl.bin"
+ offset = 8K
+ size = 1016K # 1MB - 8KB
+ }
+
+ partition boot {
+ partition-type = 0xC
+ bootable = "true"
+ image = "boot.vfat"
+ }
+
+ partition rootfs {
+ partition-type = 0x83
+ image = "rootfs.ext"
+ }
+
+}
diff --git a/target/arm/kernel/banana-p2-zero b/target/arm/kernel/banana-p2-zero
new file mode 100644
index 000000000..586bc605a
--- /dev/null
+++ b/target/arm/kernel/banana-p2-zero
@@ -0,0 +1,323 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MULTIPLATFORM=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_MULTI_V6_V7=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_MACH_SUN8I=y
+CONFIG_ARCH_SUNXI_MC_SMP=y
+CONFIG_ARM_THUMB=y
+CONFIG_KUSER_HELPERS=y
+CONFIG_VDSO=y
+CONFIG_ATAGS=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_NEON=y
+CONFIG_HAVE_CONTEXT_TRACKING_USER=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_HAVE_EXIT_THREAD=y
+CONFIG_ARCH_MMAP_RND_BITS=8
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_VMAP_STACK=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_FREEZER=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FLATMEM=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+CONFIG_MEMORY_ISOLATION=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_BOUNCE=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+CONFIG_CMA=y
+CONFIG_CMA_AREAS=7
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_KMAP_LOCAL=y
+CONFIG_KMAP_LOCAL_NON_LINEAR_PTE_ARRAY=y
+CONFIG_HAVE_PCI=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_EXTRA_FIRMWARE=""
+CONFIG_FW_CACHE=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_CPU_VULNERABILITIES=y
+CONFIG_SOC_BUS=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+CONFIG_ARM_CCI=y
+CONFIG_ARM_CCI400_COMMON=y
+CONFIG_ARM_CCI400_PORT_CTRL=y
+CONFIG_SUNXI_RSB=y
+CONFIG_ARM_PSCI_FW=y
+CONFIG_HAVE_ARM_SMCCC=y
+CONFIG_HAVE_ARM_SMCCC_DISCOVERY=y
+CONFIG_ARM_SMCCC_SOC_ID=y
+CONFIG_DTC=y
+CONFIG_OF=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+CONFIG_BLK_DEV=y
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+CONFIG_NET_CORE=y
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_ALACRITECH=y
+CONFIG_NET_VENDOR_ALLWINNER=y
+CONFIG_SUN4I_EMAC=y
+CONFIG_STMMAC_ETH=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_PLATFORM=y
+CONFIG_DWMAC_GENERIC=y
+CONFIG_DWMAC_SUNXI=y
+CONFIG_DWMAC_SUN8I=y
+CONFIG_PHYLINK=y
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+CONFIG_FIXED_PHY=y
+CONFIG_MICREL_PHY=y
+CONFIG_REALTEK_PHY=y
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+CONFIG_FWNODE_MDIO=y
+CONFIG_OF_MDIO=y
+CONFIG_MDIO_DEVRES=y
+CONFIG_MDIO_SUN4I=y
+CONFIG_MDIO_BUS_MUX=y
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_16550A_VARIANTS=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_NR_UARTS=8
+CONFIG_SERIAL_8250_RUNTIME_UARTS=8
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_DEVMEM=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=y
+CONFIG_I2C_MV64XXX=y
+CONFIG_I2C_SUN6I_P2WI=y
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_SUN4I=y
+CONFIG_SPI_SUN6I=y
+CONFIG_PTP_1588_CLOCK=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+CONFIG_PTP_1588_CLOCK_KVM=y
+CONFIG_PINCTRL=y
+CONFIG_PINMUX=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_PINCTRL_SUNXI=y
+CONFIG_PINCTRL_SUN4I_A10=y
+CONFIG_PINCTRL_SUN5I=y
+CONFIG_PINCTRL_SUN6I_A31=y
+CONFIG_PINCTRL_SUN6I_A31_R=y
+CONFIG_PINCTRL_SUN8I_A23=y
+CONFIG_PINCTRL_SUN8I_A33=y
+CONFIG_PINCTRL_SUN8I_A83T=y
+CONFIG_PINCTRL_SUN8I_A83T_R=y
+CONFIG_PINCTRL_SUN8I_A23_R=y
+CONFIG_PINCTRL_SUN8I_H3=y
+CONFIG_PINCTRL_SUN8I_H3_R=y
+CONFIG_PINCTRL_SUN8I_V3S=y
+CONFIG_PINCTRL_SUN9I_A80=y
+CONFIG_PINCTRL_SUN9I_A80_R=y
+CONFIG_PINCTRL_SUN20I_D1=y
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_POWER_SUPPLY_HWMON=y
+CONFIG_CHARGER_AXP20X=y
+CONFIG_BATTERY_AXP20X=y
+CONFIG_AXP20X_POWER=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_AC100=y
+CONFIG_MFD_AXP20X=y
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_AXP20X_RSB=y
+CONFIG_MFD_SUN6I_PRCM=y
+CONFIG_MFD_SYSCON=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_AXP20X=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_RC_CORE=y
+CONFIG_RC_MAP=y
+CONFIG_RC_DEVICES=y
+CONFIG_IR_SUNXI=y
+CONFIG_CEC_CORE=y
+CONFIG_CEC_PIN=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_HID=y
+CONFIG_HID_GENERIC=y
+CONFIG_USB_HID=y
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_DEFAULT_PERSIST=y
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_MUSB_HDRC=y
+CONFIG_USB_MUSB_DUAL_ROLE=y
+CONFIG_USB_MUSB_SUNXI=y
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_MMC=y
+CONFIG_PWRSEQ_EMMC=y
+CONFIG_PWRSEQ_SIMPLE=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_SUNXI=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_EDAC_ATOMIC_SCRUB=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+CONFIG_RTC_NVMEM=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_DRV_AC100=y
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RTC_DRV_SUN6I=y
+CONFIG_RTC_DRV_SUNXI=y
+CONFIG_DMADEVICES=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DMA_OF=y
+CONFIG_DMA_SUN4I=y
+CONFIG_DMA_SUN6I=y
+CONFIG_SYNC_FILE=y
+CONFIG_VIRTIO_MENU=y
+CONFIG_VHOST_MENU=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+CONFIG_CLK_SUNXI=y
+CONFIG_CLK_SUNXI_CLOCKS=y
+CONFIG_CLK_SUNXI_PRCM_SUN6I=y
+CONFIG_CLK_SUNXI_PRCM_SUN8I=y
+CONFIG_CLK_SUNXI_PRCM_SUN9I=y
+CONFIG_SUNXI_CCU=y
+CONFIG_SUN4I_A10_CCU=y
+CONFIG_SUN5I_CCU=y
+CONFIG_SUN6I_A31_CCU=y
+CONFIG_SUN6I_RTC_CCU=y
+CONFIG_SUN8I_A23_CCU=y
+CONFIG_SUN8I_A33_CCU=y
+CONFIG_SUN8I_A83T_CCU=y
+CONFIG_SUN8I_H3_CCU=y
+CONFIG_SUN8I_V3S_CCU=y
+CONFIG_SUN8I_DE2_CCU=y
+CONFIG_SUN8I_R40_CCU=y
+CONFIG_SUN9I_A80_CCU=y
+CONFIG_SUN8I_R_CCU=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_SUN4I_TIMER=y
+CONFIG_SUN5I_HSTIMER=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_MAILBOX=y
+CONFIG_SUN6I_MSGBOX=y
+CONFIG_SUNXI_MBUS=y
+CONFIG_SUNXI_SRAM=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM_SUN4I=y
+CONFIG_IRQCHIP=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_MAX_NR=1
+CONFIG_SUN4I_INTC=y
+CONFIG_SUN6I_R_INTC=y
+CONFIG_SUNXI_NMI_INTC=y
+CONFIG_ARCH_HAS_RESET_CONTROLLER=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_SIMPLE=y
+CONFIG_RESET_SUNXI=y
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PHY_MIPI_DPHY=y
diff --git a/target/arm/kernel/pcduino-3b b/target/arm/kernel/pcduino-3b
new file mode 100644
index 000000000..56e9cdb8f
--- /dev/null
+++ b/target/arm/kernel/pcduino-3b
@@ -0,0 +1,8 @@
+CONFIG_ARM=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_MMU=y
+CONFIG_ARCH_MULTIPLATFORM=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_MULTI_V6_V7=y
+CONFIG_ARCH_SUNXI=y
+CONFIG_MACH_SUN7I=y
diff --git a/target/arm/kernel/phytec-imx6 b/target/arm/kernel/phytec-imx6
new file mode 100644
index 000000000..2c317c70f
--- /dev/null
+++ b/target/arm/kernel/phytec-imx6
@@ -0,0 +1,5550 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm 4.14.78 Kernel Configuration
+#
+CONFIG_ARM=y
+CONFIG_ARM_HAS_SG_CHAIN=y
+CONFIG_MIGHT_HAVE_PCI=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_FIQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_PGTABLE_LEVELS=2
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_IRQ_WORK=y
+CONFIG_BUILDTIME_EXTABLE_SORT=y
+
+#
+# General setup
+#
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+# CONFIG_COMPILE_TEST is not set
+CONFIG_LOCALVERSION="-bsp-yocto-i.mx6-pd18.1.1"
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KERNEL_LZ4=y
+# CONFIG_KERNEL_GZIP is not set
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_XZ is not set
+CONFIG_KERNEL_LZO=y
+# CONFIG_KERNEL_LZ4 is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+CONFIG_CROSS_MEMORY_ATTACH=y
+CONFIG_FHANDLE=y
+# CONFIG_USELIB is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
+CONFIG_HANDLE_DOMAIN_IRQ=y
+# CONFIG_IRQ_DOMAIN_DEBUG is not set
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_ARCH_HAS_TICK_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+
+#
+# Timers subsystem
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ_COMMON=y
+# CONFIG_HZ_PERIODIC is not set
+CONFIG_NO_HZ_IDLE=y
+# CONFIG_NO_HZ_FULL is not set
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
+# CONFIG_IRQ_TIME_ACCOUNTING is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_SRCU=y
+CONFIG_TREE_SRCU=y
+# CONFIG_TASKS_RCU is not set
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_RCU_NEED_SEGCBLIST=y
+CONFIG_BUILD_BIN2C=y
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+CONFIG_GENERIC_SCHED_CLOCK=y
+CONFIG_CGROUPS=y
+# CONFIG_MEMCG is not set
+# CONFIG_BLK_CGROUP is not set
+# CONFIG_CGROUP_SCHED is not set
+# CONFIG_CGROUP_PIDS is not set
+# CONFIG_CGROUP_RDMA is not set
+# CONFIG_CGROUP_FREEZER is not set
+# CONFIG_CPUSETS is not set
+# CONFIG_CGROUP_DEVICE is not set
+# CONFIG_CGROUP_CPUACCT is not set
+# CONFIG_CGROUP_PERF is not set
+# CONFIG_CGROUP_DEBUG is not set
+# CONFIG_SOCK_CGROUP_DATA is not set
+# CONFIG_CHECKPOINT_RESTORE is not set
+# CONFIG_NAMESPACES is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+CONFIG_RD_LZ4=y
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_HAVE_UID16=y
+CONFIG_BPF=y
+CONFIG_EXPERT=y
+CONFIG_UID16=y
+CONFIG_MULTIUSER=y
+# CONFIG_SGETMASK_SYSCALL is not set
+CONFIG_SYSFS_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_POSIX_TIMERS=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set
+CONFIG_KALLSYMS_BASE_RELATIVE=y
+CONFIG_PRINTK=y
+CONFIG_PRINTK_NMI=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_FUTEX_PI=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+# CONFIG_BPF_SYSCALL is not set
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_ADVISE_SYSCALLS=y
+# CONFIG_USERFAULTFD is not set
+CONFIG_PCI_QUIRKS=y
+CONFIG_MEMBARRIER=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+# CONFIG_PC104 is not set
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_SLUB_DEBUG is not set
+# CONFIG_COMPAT_BRK is not set
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_SLAB_MERGE_DEFAULT=y
+# CONFIG_SLAB_FREELIST_RANDOM is not set
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+CONFIG_SLUB_CPU_PARTIAL=y
+# CONFIG_SYSTEM_DATA_VERIFICATION is not set
+# CONFIG_PROFILING is not set
+CONFIG_CRASH_CORE=y
+CONFIG_KEXEC_CORE=y
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+# CONFIG_JUMP_LABEL is not set
+# CONFIG_UPROBES is not set
+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_NMI=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_HAVE_GCC_PLUGINS=y
+# CONFIG_GCC_PLUGINS is not set
+CONFIG_HAVE_CC_STACKPROTECTOR=y
+# CONFIG_CC_STACKPROTECTOR is not set
+CONFIG_CC_STACKPROTECTOR_NONE=y
+# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
+# CONFIG_CC_STACKPROTECTOR_STRONG is not set
+CONFIG_THIN_ARCHIVES=y
+CONFIG_HAVE_CONTEXT_TRACKING=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_HAVE_EXIT_THREAD=y
+CONFIG_ARCH_MMAP_RND_BITS_MIN=8
+CONFIG_ARCH_MMAP_RND_BITS_MAX=16
+CONFIG_ARCH_MMAP_RND_BITS=8
+# CONFIG_HAVE_ARCH_HASH is not set
+# CONFIG_ISA_BUS_API is not set
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OLD_SIGACTION=y
+# CONFIG_CPU_NO_EFFICIENT_FFS is not set
+# CONFIG_HAVE_ARCH_VMAP_STACK is not set
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+# CONFIG_REFCOUNT_FULL is not set
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_COMPRESS is not set
+# CONFIG_TRIM_UNUSED_KSYMS is not set
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_SCSI_REQUEST=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_BSGLIB is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_DEV_ZONED is not set
+# CONFIG_BLK_CMDLINE_PARSER is not set
+# CONFIG_BLK_WBT is not set
+CONFIG_BLK_DEBUG_FS=y
+# CONFIG_BLK_SED_OPAL is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
+CONFIG_BLK_MQ_PCI=y
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=y
+# CONFIG_IOSCHED_BFQ is not set
+CONFIG_ASN1=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+CONFIG_MMU=y
+CONFIG_ARCH_MULTIPLATFORM=y
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_LPC32XX is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C24XX is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP1 is not set
+
+#
+# Multiple platform selection
+#
+
+#
+# CPU Core family selection
+#
+CONFIG_ARCH_MULTI_V6=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_MULTI_V6_V7=y
+# CONFIG_ARCH_MULTI_CPU_AUTO is not set
+# CONFIG_ARCH_VIRT is not set
+# CONFIG_ARCH_MVEBU is not set
+# CONFIG_ARCH_ACTIONS is not set
+# CONFIG_ARCH_ALPINE is not set
+# CONFIG_ARCH_ARTPEC is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCM is not set
+# CONFIG_ARCH_BERLIN is not set
+# CONFIG_ARCH_CNS3XXX is not set
+# CONFIG_ARCH_DIGICOLOR is not set
+# CONFIG_ARCH_HIGHBANK is not set
+# CONFIG_ARCH_HISI is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_KEYSTONE is not set
+# CONFIG_ARCH_MESON is not set
+# CONFIG_ARCH_ASPEED is not set
+CONFIG_ARCH_MXC=y
+CONFIG_MXC_TZIC=y
+CONFIG_MXC_AVIC=y
+CONFIG_MXC_DEBUG_BOARD=y
+CONFIG_HAVE_EPIT=y
+# CONFIG_MXC_USE_EPIT is not set
+CONFIG_HAVE_IMX_ANATOP=y
+CONFIG_HAVE_IMX_GPC=y
+CONFIG_HAVE_IMX_MMDC=y
+CONFIG_HAVE_IMX_SRC=y
+CONFIG_ARCH_MXC_IOMUX_V3=y
+CONFIG_SOC_IMX31=y
+CONFIG_SOC_IMX35=y
+
+#
+# MX31 platforms:
+#
+CONFIG_MACH_MX31ADS=y
+CONFIG_MACH_MX31LILLY=y
+CONFIG_MACH_MX31LITE=y
+CONFIG_MACH_PCM037=y
+CONFIG_MACH_PCM037_EET=y
+CONFIG_MACH_MX31_3DS=y
+# CONFIG_MACH_MX31_3DS_MXC_NAND_USE_BBT is not set
+CONFIG_MACH_MX31MOBOARD=y
+CONFIG_MACH_QONG=y
+CONFIG_MACH_ARMADILLO5X0=y
+CONFIG_MACH_KZM_ARM11_01=y
+CONFIG_MACH_BUG=y
+CONFIG_MACH_IMX31_DT=y
+
+#
+# MX35 platforms:
+#
+CONFIG_MACH_IMX35_DT=y
+CONFIG_MACH_PCM043=y
+CONFIG_MACH_MX35_3DS=y
+CONFIG_MACH_VPR200=y
+
+#
+# Device tree only
+#
+
+#
+# Cortex-A platforms
+#
+CONFIG_SOC_IMX5=y
+CONFIG_SOC_IMX50=y
+CONFIG_SOC_IMX51=y
+CONFIG_SOC_IMX53=y
+CONFIG_SOC_IMX6=y
+CONFIG_SOC_IMX6Q=y
+CONFIG_SOC_IMX6SL=y
+CONFIG_SOC_IMX6SX=y
+CONFIG_SOC_IMX6UL=y
+CONFIG_SOC_IMX7D=y
+# CONFIG_SOC_LS1021A is not set
+
+#
+# Cortex-A/Cortex-M asymmetric multiprocessing platforms
+#
+CONFIG_SOC_VF610=y
+CONFIG_VF_USE_ARM_GLOBAL_TIMER=y
+# CONFIG_VF_USE_PIT_TIMER is not set
+CONFIG_IMX_HAVE_PLATFORM_FEC=y
+CONFIG_IMX_HAVE_PLATFORM_FLEXCAN=y
+CONFIG_IMX_HAVE_PLATFORM_FSL_USB2_UDC=y
+CONFIG_IMX_HAVE_PLATFORM_GPIO_KEYS=y
+CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_FB=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_I2C=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_KEYPAD=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_SSI=y
+CONFIG_IMX_HAVE_PLATFORM_IMX_UART=y
+CONFIG_IMX_HAVE_PLATFORM_IPU_CORE=y
+CONFIG_IMX_HAVE_PLATFORM_MXC_EHCI=y
+CONFIG_IMX_HAVE_PLATFORM_MXC_MMC=y
+CONFIG_IMX_HAVE_PLATFORM_MXC_NAND=y
+CONFIG_IMX_HAVE_PLATFORM_MXC_RTC=y
+CONFIG_IMX_HAVE_PLATFORM_MXC_W1=y
+CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX=y
+CONFIG_IMX_HAVE_PLATFORM_SPI_IMX=y
+# CONFIG_ARCH_MEDIATEK is not set
+
+#
+# TI OMAP/AM/DM/DRA Family
+#
+# CONFIG_ARCH_OMAP2 is not set
+# CONFIG_ARCH_OMAP3 is not set
+# CONFIG_ARCH_OMAP4 is not set
+# CONFIG_SOC_OMAP5 is not set
+# CONFIG_SOC_AM33XX is not set
+# CONFIG_SOC_AM43XX is not set
+# CONFIG_SOC_DRA7XX is not set
+# CONFIG_ARCH_PICOXCELL is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_OXNAS is not set
+# CONFIG_ARCH_QCOM is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_ROCKCHIP is not set
+# CONFIG_ARCH_SOCFPGA is not set
+# CONFIG_PLAT_SPEAR is not set
+# CONFIG_ARCH_STI is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_RENESAS is not set
+# CONFIG_ARCH_SUNXI is not set
+# CONFIG_ARCH_SIRF is not set
+# CONFIG_ARCH_TANGO is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_UNIPHIER is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_WM8750 is not set
+# CONFIG_ARCH_WM8850 is not set
+# CONFIG_ARCH_ZX is not set
+# CONFIG_ARCH_ZYNQ is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_V6=y
+CONFIG_CPU_V6K=y
+CONFIG_CPU_V7=y
+CONFIG_CPU_THUMB_CAPABLE=y
+CONFIG_CPU_32v6=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_PABRT_V6=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+
+#
+# Processor Features
+#
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_ARM_THUMB=y
+# CONFIG_ARM_THUMBEE is not set
+CONFIG_ARM_VIRT_EXT=y
+CONFIG_SWP_EMULATE=y
+# CONFIG_CPU_BIG_ENDIAN is not set
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_CPU_SPECTRE=y
+CONFIG_HARDEN_BRANCH_PREDICTOR=y
+CONFIG_KUSER_HELPERS=y
+CONFIG_VDSO=y
+CONFIG_DMA_CACHE_RWFO=y
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+CONFIG_MIGHT_HAVE_CACHE_L2X0=y
+CONFIG_CACHE_L2X0=y
+# CONFIG_CACHE_L2X0_PMU is not set
+# CONFIG_PL310_ERRATA_588369 is not set
+# CONFIG_PL310_ERRATA_727915 is not set
+# CONFIG_PL310_ERRATA_753970 is not set
+CONFIG_PL310_ERRATA_769419=y
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+CONFIG_ARM_L1_CACHE_SHIFT=6
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+CONFIG_ARM_HEAVY_MB=y
+CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
+CONFIG_DEBUG_ALIGN_RODATA=y
+CONFIG_MULTI_IRQ_HANDLER=y
+# CONFIG_ARM_ERRATA_326103 is not set
+# CONFIG_ARM_ERRATA_411920 is not set
+# CONFIG_ARM_ERRATA_430973 is not set
+CONFIG_ARM_ERRATA_643719=y
+# CONFIG_ARM_ERRATA_720789 is not set
+CONFIG_ARM_ERRATA_754322=y
+# CONFIG_ARM_ERRATA_754327 is not set
+# CONFIG_ARM_ERRATA_364296 is not set
+CONFIG_ARM_ERRATA_764369=y
+CONFIG_ARM_ERRATA_775420=y
+# CONFIG_ARM_ERRATA_798181 is not set
+# CONFIG_ARM_ERRATA_773022 is not set
+# CONFIG_ARM_ERRATA_818325_852422 is not set
+# CONFIG_ARM_ERRATA_821420 is not set
+# CONFIG_ARM_ERRATA_825619 is not set
+# CONFIG_ARM_ERRATA_852421 is not set
+# CONFIG_ARM_ERRATA_852423 is not set
+
+#
+# Bus support
+#
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCI_SYSCALL=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIEAER=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEASPM_DEFAULT=y
+# CONFIG_PCIEASPM_POWERSAVE is not set
+# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set
+# CONFIG_PCIEASPM_PERFORMANCE is not set
+CONFIG_PCIE_PME=y
+# CONFIG_PCIE_DPC is not set
+# CONFIG_PCIE_PTM is not set
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+# CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
+# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_IOV is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+# CONFIG_HOTPLUG_PCI is not set
+
+#
+# DesignWare PCI Core Support
+#
+CONFIG_PCIE_DW=y
+CONFIG_PCIE_DW_HOST=y
+# CONFIG_PCIE_DW_PLAT is not set
+CONFIG_PCI_IMX6=y
+# CONFIG_PCI_LAYERSCAPE is not set
+
+#
+# PCI host controller drivers
+#
+# CONFIG_PCI_FTPCI100 is not set
+# CONFIG_PCI_HOST_GENERIC is not set
+# CONFIG_PCIE_ALTERA is not set
+
+#
+# PCI Endpoint
+#
+# CONFIG_PCI_ENDPOINT is not set
+
+#
+# PCI switch controller drivers
+#
+# CONFIG_PCI_SW_SWITCHTEC is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_HAVE_SMP=y
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_ARM_CPU_TOPOLOGY=y
+# CONFIG_SCHED_MC is not set
+# CONFIG_SCHED_SMT is not set
+CONFIG_HAVE_ARM_SCU=y
+CONFIG_HAVE_ARM_ARCH_TIMER=y
+CONFIG_HAVE_ARM_TWD=y
+# CONFIG_MCPM is not set
+# CONFIG_BIG_LITTLE is not set
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_3G_OPT is not set
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_NR_CPUS=4
+CONFIG_HOTPLUG_CPU=y
+CONFIG_ARM_PSCI=y
+CONFIG_ARCH_NR_GPIO=0
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PREEMPT is not set
+CONFIG_HZ_FIXED=0
+CONFIG_HZ_100=y
+# CONFIG_HZ_200 is not set
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_500 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+CONFIG_SCHED_HRTICK=y
+CONFIG_ARM_PATCH_IDIV=y
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
+CONFIG_HIGHMEM=y
+CONFIG_HIGHPTE=y
+CONFIG_CPU_SW_DOMAIN_PAN=y
+CONFIG_HW_PERF_EVENTS=y
+CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
+# CONFIG_ARM_MODULE_PLTS is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_NO_BOOTMEM=y
+CONFIG_MEMORY_ISOLATION=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_BOUNCE=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_ARCH_WANTS_THP_SWAP is not set
+# CONFIG_CLEANCACHE is not set
+# CONFIG_FRONTSWAP is not set
+CONFIG_CMA=y
+# CONFIG_CMA_DEBUG is not set
+# CONFIG_CMA_DEBUGFS is not set
+CONFIG_CMA_AREAS=7
+# CONFIG_ZPOOL is not set
+# CONFIG_ZBUD is not set
+# CONFIG_ZSMALLOC is not set
+CONFIG_GENERIC_EARLY_IOREMAP=y
+# CONFIG_IDLE_PAGE_TRACKING is not set
+CONFIG_FRAME_VECTOR=y
+# CONFIG_PERCPU_STATS is not set
+CONFIG_FORCE_MAX_ZONEORDER=14
+CONFIG_ALIGNMENT_TRAP=y
+# CONFIG_UACCESS_WITH_MEMCPY is not set
+# CONFIG_SECCOMP is not set
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
+# CONFIG_PARAVIRT is not set
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+
+#
+# Boot options
+#
+CONFIG_USE_OF=y
+CONFIG_ATAGS=y
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
+CONFIG_ZBOOT_ROM_TEXT=0
+CONFIG_ZBOOT_ROM_BSS=0
+# CONFIG_ARM_APPENDED_DTB is not set
+CONFIG_CMDLINE="noinitrd console=ttymxc0,115200"
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_CMDLINE_EXTEND is not set
+# CONFIG_CMDLINE_FORCE is not set
+CONFIG_KEXEC=y
+CONFIG_ATAGS_PROC=y
+# CONFIG_CRASH_DUMP is not set
+CONFIG_AUTO_ZRELADDR=y
+# CONFIG_EFI is not set
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+# CONFIG_CPU_FREQ_STAT is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set
+
+#
+# CPU frequency scaling drivers
+#
+# CONFIG_CPUFREQ_DT is not set
+# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
+CONFIG_ARM_IMX6Q_CPUFREQ=y
+# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
+# CONFIG_QORIQ_CPUFREQ is not set
+
+#
+# CPU Idle
+#
+# CONFIG_CPU_IDLE is not set
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_NEON=y
+# CONFIG_KERNEL_MODE_NEON is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_ELFCORE=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
+# CONFIG_BINFMT_FLAT is not set
+# CONFIG_HAVE_AOUT is not set
+CONFIG_BINFMT_MISC=m
+CONFIG_COREDUMP=y
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+# CONFIG_SUSPEND_SKIP_SYNC is not set
+# CONFIG_HIBERNATION is not set
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+# CONFIG_PM_AUTOSLEEP is not set
+# CONFIG_PM_WAKELOCKS is not set
+CONFIG_PM=y
+CONFIG_PM_DEBUG=y
+# CONFIG_PM_ADVANCED_DEBUG is not set
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_PM_SLEEP_DEBUG=y
+# CONFIG_APM_EMULATION is not set
+CONFIG_PM_OPP=y
+CONFIG_PM_CLK=y
+CONFIG_PM_GENERIC_DOMAINS=y
+# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_CPU_PM=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_NET=y
+CONFIG_NET_INGRESS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_DIAG is not set
+CONFIG_UNIX=y
+# CONFIG_UNIX_DIAG is not set
+# CONFIG_TLS is not set
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE_DEMUX is not set
+CONFIG_NET_IP_TUNNEL=y
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_NET_UDP_TUNNEL is not set
+# CONFIG_NET_FOU is not set
+# CONFIG_NET_FOU_IP_TUNNELS is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+CONFIG_INET_TUNNEL=y
+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
+# CONFIG_INET_XFRM_MODE_BEET is not set
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_INET_UDP_DIAG is not set
+# CONFIG_INET_RAW_DIAG is not set
+# CONFIG_INET_DIAG_DESTROY is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_IPV6_ILA is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+CONFIG_INET6_XFRM_MODE_TRANSPORT=y
+CONFIG_INET6_XFRM_MODE_TUNNEL=y
+CONFIG_INET6_XFRM_MODE_BEET=y
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+# CONFIG_IPV6_VTI is not set
+CONFIG_IPV6_SIT=y
+# CONFIG_IPV6_SIT_6RD is not set
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_FOU is not set
+# CONFIG_IPV6_FOU_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_IPV6_SEG6_LWTUNNEL is not set
+# CONFIG_IPV6_SEG6_HMAC is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NET_PTP_CLASSIFY=y
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_INGRESS=y
+# CONFIG_NETFILTER_NETLINK_ACCT is not set
+# CONFIG_NETFILTER_NETLINK_QUEUE is not set
+# CONFIG_NETFILTER_NETLINK_LOG is not set
+# CONFIG_NF_CONNTRACK is not set
+# CONFIG_NF_LOG_NETDEV is not set
+# CONFIG_NF_TABLES is not set
+# CONFIG_NETFILTER_XTABLES is not set
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+# CONFIG_NF_DEFRAG_IPV4 is not set
+# CONFIG_NF_SOCKET_IPV4 is not set
+# CONFIG_NF_DUP_IPV4 is not set
+# CONFIG_NF_LOG_ARP is not set
+# CONFIG_NF_LOG_IPV4 is not set
+# CONFIG_NF_REJECT_IPV4 is not set
+# CONFIG_IP_NF_IPTABLES is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+
+#
+# IPv6: Netfilter Configuration
+#
+# CONFIG_NF_DEFRAG_IPV6 is not set
+# CONFIG_NF_SOCKET_IPV6 is not set
+# CONFIG_NF_DUP_IPV6 is not set
+# CONFIG_NF_REJECT_IPV6 is not set
+# CONFIG_NF_LOG_IPV6 is not set
+# CONFIG_IP6_NF_IPTABLES is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+# CONFIG_BRIDGE is not set
+CONFIG_HAVE_NET_DSA=y
+# CONFIG_NET_DSA is not set
+CONFIG_VLAN_8021Q=y
+# CONFIG_VLAN_8021Q_GVRP is not set
+# CONFIG_VLAN_8021Q_MVRP is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_PHONET is not set
+# CONFIG_6LOWPAN is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
+# CONFIG_NETLINK_DIAG is not set
+# CONFIG_MPLS is not set
+# CONFIG_NET_NSH is not set
+# CONFIG_HSR is not set
+# CONFIG_NET_SWITCHDEV is not set
+# CONFIG_NET_L3_MASTER_DEV is not set
+# CONFIG_NET_NCSI is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
+# CONFIG_CGROUP_NET_PRIO is not set
+# CONFIG_CGROUP_NET_CLASSID is not set
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+# CONFIG_BPF_JIT is not set
+CONFIG_NET_FLOW_LIMIT=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+CONFIG_CAN=y
+CONFIG_CAN_RAW=y
+CONFIG_CAN_BCM=y
+CONFIG_CAN_GW=y
+
+#
+# CAN Device Drivers
+#
+# CONFIG_CAN_VCAN is not set
+# CONFIG_CAN_VXCAN is not set
+# CONFIG_CAN_SLCAN is not set
+CONFIG_CAN_DEV=y
+CONFIG_CAN_CALC_BITTIMING=y
+# CONFIG_CAN_LEDS is not set
+CONFIG_CAN_FLEXCAN=y
+# CONFIG_CAN_GRCAN is not set
+# CONFIG_CAN_TI_HECC is not set
+# CONFIG_CAN_C_CAN is not set
+# CONFIG_CAN_CC770 is not set
+# CONFIG_CAN_IFI_CANFD is not set
+# CONFIG_CAN_M_CAN is not set
+# CONFIG_CAN_PEAK_PCIEFD is not set
+# CONFIG_CAN_RCAR is not set
+# CONFIG_CAN_RCAR_CANFD is not set
+# CONFIG_CAN_SJA1000 is not set
+# CONFIG_CAN_SOFTING is not set
+
+#
+# CAN SPI interfaces
+#
+# CONFIG_CAN_HI311X is not set
+# CONFIG_CAN_MCP251X is not set
+
+#
+# CAN USB interfaces
+#
+# CONFIG_CAN_EMS_USB is not set
+# CONFIG_CAN_ESD_USB2 is not set
+# CONFIG_CAN_GS_USB is not set
+# CONFIG_CAN_KVASER_USB is not set
+# CONFIG_CAN_PEAK_USB is not set
+# CONFIG_CAN_8DEV_USB is not set
+# CONFIG_CAN_MCBA_USB is not set
+# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_BT=y
+CONFIG_BT_BREDR=y
+# CONFIG_BT_RFCOMM is not set
+# CONFIG_BT_BNEP is not set
+# CONFIG_BT_HIDP is not set
+CONFIG_BT_HS=y
+CONFIG_BT_LE=y
+# CONFIG_BT_LEDS is not set
+# CONFIG_BT_SELFTEST is not set
+CONFIG_BT_DEBUGFS=y
+
+#
+# Bluetooth device drivers
+#
+# CONFIG_BT_HCIBTUSB is not set
+# CONFIG_BT_HCIBTSDIO is not set
+CONFIG_BT_HCIUART=y
+CONFIG_BT_HCIUART_H4=y
+# CONFIG_BT_HCIUART_BCSP is not set
+# CONFIG_BT_HCIUART_ATH3K is not set
+# CONFIG_BT_HCIUART_INTEL is not set
+# CONFIG_BT_HCIUART_QCA is not set
+# CONFIG_BT_HCIUART_AG6XX is not set
+# CONFIG_BT_HCIUART_MRVL is not set
+# CONFIG_BT_HCIBCM203X is not set
+# CONFIG_BT_HCIBPA10X is not set
+# CONFIG_BT_HCIBFUSB is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_BT_MRVL is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_AF_KCM is not set
+# CONFIG_STREAM_PARSER is not set
+CONFIG_WIRELESS=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_CFG80211=y
+CONFIG_NL80211_TESTMODE=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEBUGFS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_CRDA_SUPPORT=y
+CONFIG_CFG80211_WEXT=y
+# CONFIG_LIB80211 is not set
+CONFIG_MAC80211=y
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+# CONFIG_MAC80211_RC_MINSTREL_VHT is not set
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+# CONFIG_MAC80211_MESH is not set
+# CONFIG_MAC80211_LEDS is not set
+# CONFIG_MAC80211_DEBUGFS is not set
+# CONFIG_MAC80211_MESSAGE_TRACING is not set
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+# CONFIG_WIMAX is not set
+CONFIG_RFKILL=y
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+# CONFIG_RFKILL_GPIO is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+# CONFIG_NFC is not set
+# CONFIG_PSAMPLE is not set
+# CONFIG_NET_IFE is not set
+# CONFIG_LWTUNNEL is not set
+CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
+# CONFIG_NET_DEVLINK is not set
+CONFIG_MAY_USE_DEVLINK=y
+CONFIG_HAVE_EBPF_JIT=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER=y
+CONFIG_UEVENT_HELPER_PATH=""
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+# CONFIG_STANDALONE is not set
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_EXTRA_FIRMWARE="imx/sdma/sdma-imx6q.bin"
+CONFIG_EXTRA_FIRMWARE_DIR="firmware"
+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_GENERIC_CPU_DEVICES is not set
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_SOC_BUS=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_AC97=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+# CONFIG_DMA_FENCE_TRACE is not set
+CONFIG_DMA_CMA=y
+
+#
+# Default contiguous memory area size:
+#
+CONFIG_CMA_SIZE_MBYTES=128
+CONFIG_CMA_SIZE_SEL_MBYTES=y
+# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
+# CONFIG_CMA_SIZE_SEL_MIN is not set
+# CONFIG_CMA_SIZE_SEL_MAX is not set
+CONFIG_CMA_ALIGNMENT=8
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+
+#
+# Bus devices
+#
+# CONFIG_ARM_CCI400_PMU is not set
+# CONFIG_ARM_CCI5xx_PMU is not set
+# CONFIG_ARM_CCN is not set
+# CONFIG_BRCMSTB_GISB_ARB is not set
+CONFIG_IMX_WEIM=y
+# CONFIG_SIMPLE_PM_BUS is not set
+# CONFIG_VEXPRESS_CONFIG is not set
+CONFIG_CONNECTOR=y
+CONFIG_PROC_EVENTS=y
+CONFIG_MTD=y
+CONFIG_MTD_TESTS=m
+# CONFIG_MTD_REDBOOT_PARTS is not set
+CONFIG_MTD_CMDLINE_PARTS=y
+# CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_OF_PARTS=y
+# CONFIG_MTD_AR7_PARTS is not set
+
+#
+# Partition parsers
+#
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_SM_FTL is not set
+# CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=y
+CONFIG_MTD_JEDECPROBE=y
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=y
+CONFIG_MTD_CFI_AMDSTD=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+CONFIG_MTD_PHYSMAP_OF=y
+# CONFIG_MTD_PHYSMAP_OF_VERSATILE is not set
+# CONFIG_MTD_PHYSMAP_OF_GEMINI is not set
+# CONFIG_MTD_IMPA7 is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+CONFIG_MTD_DATAFLASH=y
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+# CONFIG_MTD_DATAFLASH_OTP is not set
+CONFIG_MTD_M25P80=y
+# CONFIG_MTD_MCHP23K256 is not set
+CONFIG_MTD_SST25L=y
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=y
+# CONFIG_MTD_NAND_ECC_SMC is not set
+CONFIG_MTD_NAND=y
+# CONFIG_MTD_NAND_ECC_BCH is not set
+# CONFIG_MTD_SM_COMMON is not set
+# CONFIG_MTD_NAND_DENALI_PCI is not set
+# CONFIG_MTD_NAND_DENALI_DT is not set
+# CONFIG_MTD_NAND_GPIO is not set
+# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set
+# CONFIG_MTD_NAND_RICOH is not set
+# CONFIG_MTD_NAND_DISKONCHIP is not set
+# CONFIG_MTD_NAND_DOCG4 is not set
+# CONFIG_MTD_NAND_CAFE is not set
+# CONFIG_MTD_NAND_NANDSIM is not set
+CONFIG_MTD_NAND_GPMI_NAND=y
+# CONFIG_MTD_NAND_BRCMNAND is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+CONFIG_MTD_NAND_VF610_NFC=y
+CONFIG_MTD_NAND_MXC=y
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR & LPDDR2 PCM memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+# CONFIG_MTD_LPDDR2_NVM is not set
+CONFIG_MTD_SPI_NOR=y
+# CONFIG_MTD_MT81xx_NOR is not set
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+# CONFIG_SPI_CADENCE_QUADSPI is not set
+CONFIG_SPI_FSL_QUADSPI=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_LIMIT=20
+CONFIG_MTD_UBI_FASTMAP=y
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_DTC=y
+CONFIG_OF=y
+# CONFIG_OF_UNITTEST is not set
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_ADDRESS_PCI=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
+CONFIG_OF_RESERVED_MEM=y
+# CONFIG_OF_OVERLAY is not set
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+# CONFIG_BLK_DEV_DAC960 is not set
+# CONFIG_BLK_DEV_UMEM is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_DRBD is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=65536
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_BLK_DEV_RSXX is not set
+# CONFIG_BLK_DEV_NVME is not set
+# CONFIG_NVME_FC is not set
+# CONFIG_NVME_TARGET is not set
+
+#
+# Misc devices
+#
+# CONFIG_SENSORS_LIS3LV02D is not set
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_DUMMY_IRQ is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_APDS9802ALS is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_TI_DAC7512 is not set
+# CONFIG_USB_SWITCH_FSA9480 is not set
+# CONFIG_LATTICE_ECP3_CONFIG is not set
+CONFIG_SRAM=y
+CONFIG_SRAM_EXEC=y
+# CONFIG_PCI_ENDPOINT_TEST is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+CONFIG_EEPROM_AT24=y
+CONFIG_EEPROM_AT25=y
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_EEPROM_93XX46 is not set
+# CONFIG_EEPROM_IDT_89HPESX is not set
+# CONFIG_CB710_CORE is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# CONFIG_SENSORS_LIS3_SPI is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
+
+#
+# Intel MIC Bus Driver
+#
+
+#
+# SCIF Bus Driver
+#
+
+#
+# VOP Bus Driver
+#
+
+#
+# Intel MIC Host Driver
+#
+
+#
+# Intel MIC Card Driver
+#
+
+#
+# SCIF Driver
+#
+
+#
+# Intel MIC Coprocessor State Management (COSM) Drivers
+#
+
+#
+# VOP Driver
+#
+# CONFIG_ECHO is not set
+# CONFIG_CXL_BASE is not set
+# CONFIG_CXL_AFU_DRIVER_OPS is not set
+# CONFIG_CXL_LIB is not set
+CONFIG_HAVE_IDE=y
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_NETLINK is not set
+# CONFIG_SCSI_MQ_DEFAULT is not set
+# CONFIG_SCSI_PROC_FS is not set
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+# CONFIG_BLK_DEV_SR is not set
+# CONFIG_CHR_DEV_SG is not set
+# CONFIG_CHR_DEV_SCH is not set
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SCAN_ASYNC=y
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+# CONFIG_SCSI_SRP_ATTRS is not set
+# CONFIG_SCSI_LOWLEVEL is not set
+# CONFIG_SCSI_DH is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+CONFIG_ATA=y
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+# CONFIG_SATA_AHCI is not set
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_IMX=y
+# CONFIG_AHCI_CEVA is not set
+# CONFIG_AHCI_QORIQ is not set
+# CONFIG_SATA_INIC162X is not set
+# CONFIG_SATA_ACARD_AHCI is not set
+# CONFIG_SATA_SIL24 is not set
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+# CONFIG_PDC_ADMA is not set
+# CONFIG_SATA_QSTOR is not set
+# CONFIG_SATA_SX4 is not set
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+# CONFIG_ATA_PIIX is not set
+# CONFIG_SATA_DWC is not set
+# CONFIG_SATA_MV is not set
+# CONFIG_SATA_NV is not set
+# CONFIG_SATA_PROMISE is not set
+# CONFIG_SATA_SIL is not set
+# CONFIG_SATA_SIS is not set
+# CONFIG_SATA_SVW is not set
+# CONFIG_SATA_ULI is not set
+# CONFIG_SATA_VIA is not set
+# CONFIG_SATA_VITESSE is not set
+
+#
+# PATA SFF controllers with BMDMA
+#
+# CONFIG_PATA_ALI is not set
+# CONFIG_PATA_AMD is not set
+# CONFIG_PATA_ARTOP is not set
+# CONFIG_PATA_ATIIXP is not set
+# CONFIG_PATA_ATP867X is not set
+# CONFIG_PATA_CMD64X is not set
+# CONFIG_PATA_CYPRESS is not set
+# CONFIG_PATA_EFAR is not set
+# CONFIG_PATA_HPT366 is not set
+# CONFIG_PATA_HPT37X is not set
+# CONFIG_PATA_HPT3X2N is not set
+# CONFIG_PATA_HPT3X3 is not set
+CONFIG_PATA_IMX=y
+# CONFIG_PATA_IT8213 is not set
+# CONFIG_PATA_IT821X is not set
+# CONFIG_PATA_JMICRON is not set
+# CONFIG_PATA_MARVELL is not set
+# CONFIG_PATA_NETCELL is not set
+# CONFIG_PATA_NINJA32 is not set
+# CONFIG_PATA_NS87415 is not set
+# CONFIG_PATA_OLDPIIX is not set
+# CONFIG_PATA_OPTIDMA is not set
+# CONFIG_PATA_PDC2027X is not set
+# CONFIG_PATA_PDC_OLD is not set
+# CONFIG_PATA_RADISYS is not set
+# CONFIG_PATA_RDC is not set
+# CONFIG_PATA_SCH is not set
+# CONFIG_PATA_SERVERWORKS is not set
+# CONFIG_PATA_SIL680 is not set
+# CONFIG_PATA_SIS is not set
+# CONFIG_PATA_TOSHIBA is not set
+# CONFIG_PATA_TRIFLEX is not set
+# CONFIG_PATA_VIA is not set
+# CONFIG_PATA_WINBOND is not set
+
+#
+# PIO-only SFF controllers
+#
+# CONFIG_PATA_CMD640_PCI is not set
+# CONFIG_PATA_MPIIX is not set
+# CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_OPTI is not set
+# CONFIG_PATA_PLATFORM is not set
+# CONFIG_PATA_RZ1000 is not set
+
+#
+# Generic fallback / legacy drivers
+#
+# CONFIG_ATA_GENERIC is not set
+# CONFIG_PATA_LEGACY is not set
+# CONFIG_MD is not set
+# CONFIG_TARGET_CORE is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+CONFIG_NET_CORE=y
+# CONFIG_BONDING is not set
+# CONFIG_DUMMY is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_NET_FC is not set
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_VXLAN is not set
+# CONFIG_MACSEC is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+# CONFIG_TUN is not set
+# CONFIG_TUN_VNET_CROSS_LE is not set
+# CONFIG_VETH is not set
+# CONFIG_NLMON is not set
+# CONFIG_ARCNET is not set
+
+#
+# CAIF transport drivers
+#
+
+#
+# Distributed Switch Architecture drivers
+#
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_3COM=y
+# CONFIG_VORTEX is not set
+# CONFIG_TYPHOON is not set
+CONFIG_NET_VENDOR_ADAPTEC=y
+# CONFIG_ADAPTEC_STARFIRE is not set
+CONFIG_NET_VENDOR_AGERE=y
+# CONFIG_ET131X is not set
+CONFIG_NET_VENDOR_ALACRITECH=y
+# CONFIG_SLICOSS is not set
+CONFIG_NET_VENDOR_ALTEON=y
+# CONFIG_ACENIC is not set
+# CONFIG_ALTERA_TSE is not set
+CONFIG_NET_VENDOR_AMAZON=y
+CONFIG_NET_VENDOR_AMD=y
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_PCNET32 is not set
+# CONFIG_AMD_XGBE_HAVE_ECC is not set
+CONFIG_NET_VENDOR_AQUANTIA=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+# CONFIG_ATL2 is not set
+# CONFIG_ATL1 is not set
+# CONFIG_ATL1E is not set
+# CONFIG_ATL1C is not set
+# CONFIG_ALX is not set
+# CONFIG_NET_VENDOR_AURORA is not set
+CONFIG_NET_CADENCE=y
+# CONFIG_MACB is not set
+# CONFIG_NET_VENDOR_BROADCOM is not set
+CONFIG_NET_VENDOR_BROCADE=y
+# CONFIG_BNA is not set
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_CHELSIO_T4 is not set
+# CONFIG_CHELSIO_T4VF is not set
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_CS89x0=y
+CONFIG_CS89x0_PLATFORM=y
+CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_ENIC is not set
+# CONFIG_DM9000 is not set
+# CONFIG_DNET is not set
+CONFIG_NET_VENDOR_DEC=y
+# CONFIG_NET_TULIP is not set
+CONFIG_NET_VENDOR_DLINK=y
+# CONFIG_DL2K is not set
+# CONFIG_SUNDANCE is not set
+CONFIG_NET_VENDOR_EMULEX=y
+# CONFIG_BE2NET is not set
+CONFIG_NET_VENDOR_EZCHIP=y
+# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
+CONFIG_NET_VENDOR_EXAR=y
+# CONFIG_S2IO is not set
+# CONFIG_VXGE is not set
+# CONFIG_NET_VENDOR_FARADAY is not set
+CONFIG_NET_VENDOR_FREESCALE=y
+CONFIG_FEC=y
+# CONFIG_FSL_PQ_MDIO is not set
+# CONFIG_FSL_XGMAC_MDIO is not set
+# CONFIG_GIANFAR is not set
+CONFIG_NET_VENDOR_HISILICON=y
+# CONFIG_HIX5HD2_GMAC is not set
+# CONFIG_HISI_FEMAC is not set
+# CONFIG_HIP04_ETH is not set
+# CONFIG_HNS is not set
+# CONFIG_HNS_DSAF is not set
+# CONFIG_HNS_ENET is not set
+# CONFIG_HNS3 is not set
+CONFIG_NET_VENDOR_HP=y
+# CONFIG_HP100 is not set
+CONFIG_NET_VENDOR_HUAWEI=y
+# CONFIG_NET_VENDOR_INTEL is not set
+# CONFIG_JME is not set
+# CONFIG_NET_VENDOR_MARVELL is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+# CONFIG_MLX4_EN is not set
+# CONFIG_MLX4_CORE is not set
+# CONFIG_MLX5_CORE is not set
+# CONFIG_MLXSW_CORE is not set
+# CONFIG_MLXFW is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MICROCHIP is not set
+CONFIG_NET_VENDOR_MYRI=y
+# CONFIG_MYRI10GE is not set
+# CONFIG_FEALNX is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+CONFIG_NET_VENDOR_NETRONOME=y
+# CONFIG_NFP is not set
+CONFIG_NET_VENDOR_NVIDIA=y
+# CONFIG_FORCEDETH is not set
+CONFIG_NET_VENDOR_OKI=y
+# CONFIG_ETHOC is not set
+CONFIG_NET_PACKET_ENGINE=y
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+CONFIG_NET_VENDOR_QLOGIC=y
+# CONFIG_QLA3XXX is not set
+# CONFIG_QLCNIC is not set
+# CONFIG_QLGE is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_QED is not set
+CONFIG_NET_VENDOR_QUALCOMM=y
+# CONFIG_QCA7000_SPI is not set
+# CONFIG_QCOM_EMAC is not set
+# CONFIG_RMNET is not set
+CONFIG_NET_VENDOR_REALTEK=y
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_RDC=y
+# CONFIG_R6040 is not set
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+# CONFIG_SXGBE_ETH is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+CONFIG_NET_VENDOR_SILAN=y
+# CONFIG_SC92031 is not set
+CONFIG_NET_VENDOR_SIS=y
+# CONFIG_SIS900 is not set
+# CONFIG_SIS190 is not set
+CONFIG_NET_VENDOR_SOLARFLARE=y
+# CONFIG_SFC is not set
+# CONFIG_SFC_FALCON is not set
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC91X=y
+# CONFIG_EPIC100 is not set
+CONFIG_SMC911X=y
+CONFIG_SMSC911X=y
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
+# CONFIG_SMSC9420 is not set
+# CONFIG_NET_VENDOR_STMICRO is not set
+CONFIG_NET_VENDOR_SUN=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NIU is not set
+CONFIG_NET_VENDOR_TEHUTI=y
+# CONFIG_TEHUTI is not set
+CONFIG_NET_VENDOR_TI=y
+# CONFIG_TI_CPSW_ALE is not set
+# CONFIG_TLAN is not set
+CONFIG_NET_VENDOR_VIA=y
+# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_VELOCITY is not set
+CONFIG_NET_VENDOR_WIZNET=y
+# CONFIG_WIZNET_W5100 is not set
+# CONFIG_WIZNET_W5300 is not set
+CONFIG_NET_VENDOR_SYNOPSYS=y
+# CONFIG_DWC_XLGMAC is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MDIO_BITBANG is not set
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+# CONFIG_MDIO_HISI_FEMAC is not set
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+# CONFIG_LED_TRIGGER_PHY is not set
+
+#
+# MII PHY device drivers
+#
+# CONFIG_AMD_PHY is not set
+# CONFIG_AQUANTIA_PHY is not set
+CONFIG_AT803X_PHY=y
+# CONFIG_BCM7XXX_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_DP83848_PHY is not set
+# CONFIG_DP83867_PHY is not set
+CONFIG_FIXED_PHY=y
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_INTEL_XWAY_PHY is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_LXT_PHY is not set
+# CONFIG_MARVELL_PHY is not set
+# CONFIG_MARVELL_10G_PHY is not set
+CONFIG_MICREL_PHY=y
+# CONFIG_MICROCHIP_PHY is not set
+# CONFIG_MICROSEMI_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_ROCKCHIP_PHY is not set
+CONFIG_SMSC_PHY=y
+# CONFIG_STE10XP is not set
+# CONFIG_TERANETICS_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_XILINX_GMII2RGMII is not set
+# CONFIG_MICREL_KS8995MA is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+CONFIG_USB_NET_DRIVERS=y
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+# CONFIG_USB_LAN78XX is not set
+CONFIG_USB_USBNET=y
+CONFIG_USB_NET_AX8817X=y
+CONFIG_USB_NET_AX88179_178A=y
+CONFIG_USB_NET_CDCETHER=y
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=y
+# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
+# CONFIG_USB_NET_CDC_MBIM is not set
+# CONFIG_USB_NET_DM9601 is not set
+# CONFIG_USB_NET_SR9700 is not set
+# CONFIG_USB_NET_SR9800 is not set
+# CONFIG_USB_NET_SMSC75XX is not set
+# CONFIG_USB_NET_SMSC95XX is not set
+# CONFIG_USB_NET_GL620A is not set
+CONFIG_USB_NET_NET1080=y
+# CONFIG_USB_NET_PLUSB is not set
+# CONFIG_USB_NET_MCS7830 is not set
+# CONFIG_USB_NET_RNDIS_HOST is not set
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=y
+CONFIG_USB_NET_CDC_SUBSET=y
+# CONFIG_USB_ALI_M5632 is not set
+# CONFIG_USB_AN2720 is not set
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+# CONFIG_USB_EPSON2888 is not set
+# CONFIG_USB_KC2190 is not set
+CONFIG_USB_NET_ZAURUS=y
+# CONFIG_USB_NET_CX82310_ETH is not set
+# CONFIG_USB_NET_KALMIA is not set
+# CONFIG_USB_NET_QMI_WWAN is not set
+# CONFIG_USB_HSO is not set
+# CONFIG_USB_NET_INT51X1 is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_USB_SIERRA_NET is not set
+# CONFIG_USB_VL600 is not set
+# CONFIG_USB_NET_CH9200 is not set
+CONFIG_WLAN=y
+# CONFIG_WIRELESS_WDS is not set
+CONFIG_WLAN_VENDOR_ADMTEK=y
+# CONFIG_ADM8211 is not set
+CONFIG_WLAN_VENDOR_ATH=y
+# CONFIG_ATH_DEBUG is not set
+# CONFIG_ATH5K is not set
+# CONFIG_ATH5K_PCI is not set
+# CONFIG_ATH9K is not set
+# CONFIG_ATH9K_HTC is not set
+# CONFIG_CARL9170 is not set
+# CONFIG_ATH6KL is not set
+# CONFIG_AR5523 is not set
+# CONFIG_WIL6210 is not set
+# CONFIG_ATH10K is not set
+# CONFIG_WCN36XX is not set
+CONFIG_WLAN_VENDOR_ATMEL=y
+# CONFIG_ATMEL is not set
+# CONFIG_AT76C50X_USB is not set
+CONFIG_WLAN_VENDOR_BROADCOM=y
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+CONFIG_BRCMUTIL=m
+# CONFIG_BRCMSMAC is not set
+CONFIG_BRCMFMAC=m
+CONFIG_BRCMFMAC_PROTO_BCDC=y
+CONFIG_BRCMFMAC_SDIO=y
+# CONFIG_BRCMFMAC_USB is not set
+# CONFIG_BRCMFMAC_PCIE is not set
+# CONFIG_BRCM_TRACING is not set
+# CONFIG_BRCMDBG is not set
+CONFIG_WLAN_VENDOR_CISCO=y
+CONFIG_WLAN_VENDOR_INTEL=y
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_IWL4965 is not set
+# CONFIG_IWL3945 is not set
+# CONFIG_IWLWIFI is not set
+CONFIG_WLAN_VENDOR_INTERSIL=y
+# CONFIG_HOSTAP is not set
+# CONFIG_HERMES is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_PRISM54 is not set
+CONFIG_WLAN_VENDOR_MARVELL=y
+# CONFIG_LIBERTAS is not set
+# CONFIG_LIBERTAS_THINFIRM is not set
+# CONFIG_MWIFIEX is not set
+# CONFIG_MWL8K is not set
+CONFIG_WLAN_VENDOR_MEDIATEK=y
+# CONFIG_MT7601U is not set
+CONFIG_WLAN_VENDOR_RALINK=y
+# CONFIG_RT2X00 is not set
+CONFIG_WLAN_VENDOR_REALTEK=y
+# CONFIG_RTL8180 is not set
+# CONFIG_RTL8187 is not set
+CONFIG_RTL_CARDS=y
+# CONFIG_RTL8192CE is not set
+# CONFIG_RTL8192SE is not set
+# CONFIG_RTL8192DE is not set
+# CONFIG_RTL8723AE is not set
+# CONFIG_RTL8723BE is not set
+# CONFIG_RTL8188EE is not set
+# CONFIG_RTL8192EE is not set
+# CONFIG_RTL8821AE is not set
+# CONFIG_RTL8192CU is not set
+# CONFIG_RTL8XXXU is not set
+CONFIG_WLAN_VENDOR_RSI=y
+# CONFIG_RSI_91X is not set
+CONFIG_WLAN_VENDOR_ST=y
+# CONFIG_CW1200 is not set
+CONFIG_WLAN_VENDOR_TI=y
+# CONFIG_WL1251 is not set
+CONFIG_WL12XX=m
+# CONFIG_WL18XX is not set
+CONFIG_WLCORE=m
+# CONFIG_WLCORE_SPI is not set
+CONFIG_WLCORE_SDIO=m
+# CONFIG_WILINK_PLATFORM_DATA is not set
+CONFIG_WLAN_VENDOR_ZYDAS=y
+# CONFIG_USB_ZD1201 is not set
+# CONFIG_ZD1211RW is not set
+CONFIG_WLAN_VENDOR_QUANTENNA=y
+# CONFIG_QTNFMAC_PEARL_PCIE is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+# CONFIG_VMXNET3 is not set
+# CONFIG_ISDN is not set
+# CONFIG_NVM is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_LEDS=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+CONFIG_INPUT_POLLDEV=y
+# CONFIG_INPUT_SPARSEKMAP is not set
+CONFIG_INPUT_MATRIXKMAP=y
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADC is not set
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+CONFIG_KEYBOARD_GPIO=y
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8323 is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+CONFIG_KEYBOARD_SNVS_PWRKEY=y
+CONFIG_KEYBOARD_IMX=y
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_STMPE is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_BCM is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+# CONFIG_MOUSE_PS2_SENTELIC is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_SMBUS=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_CYAPA is not set
+# CONFIG_MOUSE_ELAN_I2C is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+# CONFIG_MOUSE_SYNAPTICS_USB is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_PROPERTIES=y
+CONFIG_TOUCHSCREEN_ADS7846=y
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
+# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_BU21013 is not set
+# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
+# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set
+# CONFIG_TOUCHSCREEN_DA9052 is not set
+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
+# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
+# CONFIG_TOUCHSCREEN_EETI is not set
+CONFIG_TOUCHSCREEN_EGALAX=y
+# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_GOODIX is not set
+# CONFIG_TOUCHSCREEN_ILI210X is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_EKTF2127 is not set
+# CONFIG_TOUCHSCREEN_ELAN is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
+CONFIG_TOUCHSCREEN_MAX11801=y
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
+# CONFIG_TOUCHSCREEN_MMS114 is not set
+# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+CONFIG_TOUCHSCREEN_IMX6UL_TSC=y
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+CONFIG_TOUCHSCREEN_EDT_FT5X06=y
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set
+# CONFIG_TOUCHSCREEN_WM97XX is not set
+# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
+CONFIG_TOUCHSCREEN_MC13783=y
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
+# CONFIG_TOUCHSCREEN_TS4800 is not set
+# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
+CONFIG_TOUCHSCREEN_TSC200X_CORE=y
+CONFIG_TOUCHSCREEN_TSC2004=y
+# CONFIG_TOUCHSCREEN_TSC2005 is not set
+CONFIG_TOUCHSCREEN_TSC2007=y
+# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set
+# CONFIG_TOUCHSCREEN_RM_TS is not set
+# CONFIG_TOUCHSCREEN_SILEAD is not set
+# CONFIG_TOUCHSCREEN_SIS_I2C is not set
+# CONFIG_TOUCHSCREEN_ST1232 is not set
+# CONFIG_TOUCHSCREEN_STMFTS is not set
+CONFIG_TOUCHSCREEN_STMPE=y
+# CONFIG_TOUCHSCREEN_SUR40 is not set
+# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set
+CONFIG_TOUCHSCREEN_SX8654=y
+# CONFIG_TOUCHSCREEN_TPS6507X is not set
+# CONFIG_TOUCHSCREEN_ZET6223 is not set
+# CONFIG_TOUCHSCREEN_ZFORCE is not set
+CONFIG_TOUCHSCREEN_COLIBRI_VF50=y
+# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_ATMEL_CAPTOUCH is not set
+# CONFIG_INPUT_BMA150 is not set
+# CONFIG_INPUT_E3X0_BUTTON is not set
+# CONFIG_INPUT_MC13783_PWRBUTTON is not set
+CONFIG_INPUT_MMA8450=y
+# CONFIG_INPUT_GP2A is not set
+# CONFIG_INPUT_GPIO_BEEPER is not set
+# CONFIG_INPUT_GPIO_TILT_POLLED is not set
+# CONFIG_INPUT_GPIO_DECODER is not set
+# CONFIG_INPUT_ATI_REMOTE2 is not set
+# CONFIG_INPUT_KEYSPAN_REMOTE is not set
+# CONFIG_INPUT_KXTJ9 is not set
+# CONFIG_INPUT_POWERMATE is not set
+# CONFIG_INPUT_YEALINK is not set
+# CONFIG_INPUT_CM109 is not set
+# CONFIG_INPUT_REGULATOR_HAPTIC is not set
+# CONFIG_INPUT_UINPUT is not set
+# CONFIG_INPUT_PCF8574 is not set
+# CONFIG_INPUT_PWM_BEEPER is not set
+# CONFIG_INPUT_PWM_VIBRA is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+# CONFIG_INPUT_DA9052_ONKEY is not set
+# CONFIG_INPUT_DA9063_ONKEY is not set
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_IMS_PCU is not set
+# CONFIG_INPUT_CMA3000 is not set
+# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set
+# CONFIG_INPUT_DRV260X_HAPTICS is not set
+# CONFIG_INPUT_DRV2665_HAPTICS is not set
+# CONFIG_INPUT_DRV2667_HAPTICS is not set
+# CONFIG_RMI4_CORE is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=m
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
+# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SERIO_GPIO_PS2 is not set
+# CONFIG_USERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_TTY=y
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVMEM=y
+# CONFIG_DEVKMEM is not set
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_EARLYCON=y
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+CONFIG_SERIAL_IMX=y
+CONFIG_SERIAL_IMX_CONSOLE=y
+# CONFIG_SERIAL_UARTLITE is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_BCM63XX is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_IFX6X60 is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
+CONFIG_SERIAL_FSL_LPUART=y
+CONFIG_SERIAL_FSL_LPUART_CONSOLE=y
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+# CONFIG_SERIAL_ST_ASC is not set
+CONFIG_SERIAL_MCTRL_GPIO=y
+# CONFIG_SERIAL_DEV_BUS is not set
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_HVC_DCC is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+CONFIG_HW_RANDOM_MXC_RNGA=y
+CONFIG_HW_RANDOM_IMX_RNGC=y
+# CONFIG_R3964 is not set
+# CONFIG_APPLICOM is not set
+# CONFIG_RAW_DRIVER is not set
+# CONFIG_TCG_TPM is not set
+CONFIG_DEVPORT=y
+# CONFIG_XILLYBUS is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+# CONFIG_I2C_COMPAT is not set
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MUX=y
+
+#
+# Multiplexer I2C Chip support
+#
+# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set
+CONFIG_I2C_MUX_GPIO=y
+# CONFIG_I2C_MUX_GPMUX is not set
+# CONFIG_I2C_MUX_LTC4306 is not set
+# CONFIG_I2C_MUX_PCA9541 is not set
+# CONFIG_I2C_MUX_PCA954x is not set
+# CONFIG_I2C_MUX_PINCTRL is not set
+# CONFIG_I2C_MUX_REG is not set
+# CONFIG_I2C_DEMUX_PINCTRL is not set
+# CONFIG_I2C_MUX_MLXCPLD is not set
+# CONFIG_I2C_HELPER_AUTO is not set
+# CONFIG_I2C_SMBUS is not set
+
+#
+# I2C Algorithms
+#
+CONFIG_I2C_ALGOBIT=y
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_ISCH is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_CBUS_GPIO is not set
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
+# CONFIG_I2C_DESIGNWARE_PCI is not set
+# CONFIG_I2C_EMEV2 is not set
+CONFIG_I2C_GPIO=y
+CONFIG_I2C_IMX=y
+# CONFIG_I2C_IMX_LPI2C is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_PXA_PCI is not set
+# CONFIG_I2C_RK3X is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_SLAVE is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+# CONFIG_SPI_AXI_SPI_ENGINE is not set
+CONFIG_SPI_BITBANG=y
+# CONFIG_SPI_CADENCE is not set
+# CONFIG_SPI_DESIGNWARE is not set
+# CONFIG_SPI_FSL_LPSPI is not set
+CONFIG_SPI_GPIO=y
+CONFIG_SPI_IMX=y
+# CONFIG_SPI_FSL_SPI is not set
+CONFIG_SPI_FSL_DSPI=y
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PXA2XX is not set
+# CONFIG_SPI_PXA2XX_PCI is not set
+# CONFIG_SPI_ROCKCHIP is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_ZYNQMP_GQSPI is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=y
+# CONFIG_SPI_LOOPBACK_TEST is not set
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_SPI_SLAVE is not set
+# CONFIG_SPMI is not set
+# CONFIG_HSI is not set
+CONFIG_PPS=y
+# CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=y
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+CONFIG_PINCTRL=y
+
+#
+# Pin controllers
+#
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_PINMUX=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_AMD is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
+# CONFIG_PINCTRL_SINGLE is not set
+# CONFIG_PINCTRL_SX150X is not set
+CONFIG_PINCTRL_IMX=y
+CONFIG_PINCTRL_IMX35=y
+CONFIG_PINCTRL_IMX50=y
+CONFIG_PINCTRL_IMX51=y
+CONFIG_PINCTRL_IMX53=y
+CONFIG_PINCTRL_IMX6Q=y
+CONFIG_PINCTRL_IMX6SL=y
+CONFIG_PINCTRL_IMX6SX=y
+CONFIG_PINCTRL_IMX6UL=y
+CONFIG_PINCTRL_IMX7D=y
+CONFIG_PINCTRL_VF610=y
+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
+CONFIG_GPIOLIB=y
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GENERIC=y
+
+#
+# Memory mapped GPIO drivers
+#
+# CONFIG_GPIO_74XX_MMIO is not set
+# CONFIG_GPIO_ALTERA is not set
+# CONFIG_GPIO_DWAPB is not set
+# CONFIG_GPIO_FTGPIO010 is not set
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_GPIO_MPC8XXX is not set
+CONFIG_GPIO_MXC=y
+# CONFIG_GPIO_SYSCON is not set
+# CONFIG_GPIO_TS4800 is not set
+CONFIG_GPIO_VF610=y
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GPIO_ZEVIO is not set
+
+#
+# I2C GPIO expanders
+#
+# CONFIG_GPIO_ADP5588 is not set
+# CONFIG_GPIO_ADNP is not set
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+CONFIG_GPIO_MC9S08DZ60=y
+CONFIG_GPIO_PCA953X=y
+# CONFIG_GPIO_PCA953X_IRQ is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_SX150X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# CONFIG_GPIO_TS4900 is not set
+
+#
+# MFD GPIO expanders
+#
+# CONFIG_GPIO_DA9052 is not set
+# CONFIG_HTC_EGPIO is not set
+CONFIG_GPIO_STMPE=y
+
+#
+# PCI GPIO expanders
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_PCI_IDIO_16 is not set
+# CONFIG_GPIO_RDC321X is not set
+
+#
+# SPI GPIO expanders
+#
+CONFIG_GPIO_74X164=y
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_PISOSR is not set
+# CONFIG_GPIO_XRA1403 is not set
+
+#
+# USB GPIO expanders
+#
+# CONFIG_W1 is not set
+# CONFIG_POWER_AVS is not set
+CONFIG_POWER_RESET=y
+# CONFIG_POWER_RESET_BRCMKONA is not set
+# CONFIG_POWER_RESET_BRCMSTB is not set
+# CONFIG_POWER_RESET_GPIO is not set
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+CONFIG_POWER_RESET_IMX=y
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_RESTART is not set
+# CONFIG_POWER_RESET_VERSATILE is not set
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+# CONFIG_SYSCON_REBOOT_MODE is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+# CONFIG_PDA_POWER is not set
+# CONFIG_GENERIC_ADC_BATTERY is not set
+# CONFIG_TEST_POWER is not set
+# CONFIG_BATTERY_DS2780 is not set
+# CONFIG_BATTERY_DS2781 is not set
+# CONFIG_BATTERY_DS2782 is not set
+# CONFIG_BATTERY_LEGO_EV3 is not set
+# CONFIG_BATTERY_SBS is not set
+# CONFIG_CHARGER_SBS is not set
+# CONFIG_BATTERY_BQ27XXX is not set
+# CONFIG_BATTERY_DA9052 is not set
+# CONFIG_BATTERY_MAX17040 is not set
+# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_GPIO is not set
+# CONFIG_CHARGER_MANAGER is not set
+# CONFIG_CHARGER_LTC3651 is not set
+# CONFIG_CHARGER_DETECTOR_MAX14656 is not set
+# CONFIG_CHARGER_BQ2415X is not set
+# CONFIG_CHARGER_BQ24190 is not set
+# CONFIG_CHARGER_BQ24257 is not set
+# CONFIG_CHARGER_BQ24735 is not set
+# CONFIG_CHARGER_BQ25890 is not set
+# CONFIG_CHARGER_SMB347 is not set
+# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_CHARGER_RT9455 is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+# CONFIG_SENSORS_AD7314 is not set
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7310 is not set
+# CONFIG_SENSORS_ADT7410 is not set
+# CONFIG_SENSORS_ADT7411 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_ASPEED is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_DA9052_ADC is not set
+# CONFIG_SENSORS_I5K_AMB is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_MC13783_ADC is not set
+# CONFIG_SENSORS_FTSTEUTATES is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_G762 is not set
+CONFIG_SENSORS_GPIO_FAN=y
+# CONFIG_SENSORS_HIH6130 is not set
+CONFIG_SENSORS_IIO_HWMON=y
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_JC42 is not set
+# CONFIG_SENSORS_POWR1220 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LTC2945 is not set
+# CONFIG_SENSORS_LTC2990 is not set
+# CONFIG_SENSORS_LTC4151 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4222 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4260 is not set
+# CONFIG_SENSORS_LTC4261 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX16065 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX1668 is not set
+# CONFIG_SENSORS_MAX197 is not set
+# CONFIG_SENSORS_MAX31722 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6642 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_MAX6697 is not set
+# CONFIG_SENSORS_MAX31790 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_TC654 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM73 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LM95234 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_LM95245 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_NTC_THERMISTOR is not set
+# CONFIG_SENSORS_NCT6683 is not set
+# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_NCT7802 is not set
+# CONFIG_SENSORS_NCT7904 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+# CONFIG_SENSORS_PWM_FAN is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHT3x is not set
+# CONFIG_SENSORS_SHTC1 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC6W201 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH56XX_COMMON is not set
+# CONFIG_SENSORS_SCH5627 is not set
+# CONFIG_SENSORS_SCH5636 is not set
+# CONFIG_SENSORS_STTS751 is not set
+# CONFIG_SENSORS_SMM665 is not set
+# CONFIG_SENSORS_ADC128D818 is not set
+# CONFIG_SENSORS_ADS1015 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_ADS7871 is not set
+# CONFIG_SENSORS_AMC6821 is not set
+# CONFIG_SENSORS_INA209 is not set
+# CONFIG_SENSORS_INA2XX is not set
+# CONFIG_SENSORS_INA3221 is not set
+# CONFIG_SENSORS_TC74 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP102 is not set
+# CONFIG_SENSORS_TMP103 is not set
+# CONFIG_SENSORS_TMP108 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83795 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+CONFIG_THERMAL=y
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_OF=y
+CONFIG_THERMAL_WRITABLE_TRIPS=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set
+# CONFIG_THERMAL_GOV_FAIR_SHARE is not set
+CONFIG_THERMAL_GOV_STEP_WISE=y
+# CONFIG_THERMAL_GOV_BANG_BANG is not set
+# CONFIG_THERMAL_GOV_USER_SPACE is not set
+# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set
+CONFIG_CPU_THERMAL=y
+# CONFIG_CLOCK_THERMAL is not set
+# CONFIG_THERMAL_EMULATION is not set
+CONFIG_IMX_THERMAL=y
+# CONFIG_QORIQ_THERMAL is not set
+# CONFIG_DA9062_THERMAL is not set
+
+#
+# ACPI INT340X thermal drivers
+#
+# CONFIG_GENERIC_ADC_THERMAL is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+# CONFIG_WATCHDOG_SYSFS is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_DA9052_WATCHDOG is not set
+CONFIG_DA9063_WATCHDOG=y
+CONFIG_DA9062_WATCHDOG=y
+# CONFIG_GPIO_WATCHDOG is not set
+# CONFIG_XILINX_WATCHDOG is not set
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+# CONFIG_CADENCE_WATCHDOG is not set
+# CONFIG_DW_WATCHDOG is not set
+# CONFIG_TS4800_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+CONFIG_IMX2_WDT=y
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_I6300ESB_WDT is not set
+# CONFIG_MEN_A21_WDT is not set
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+
+#
+# Watchdog Pretimeout Governors
+#
+# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+# CONFIG_SSB is not set
+CONFIG_BCMA_POSSIBLE=y
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
+CONFIG_MFD_CORE=y
+# CONFIG_MFD_ACT8945A is not set
+# CONFIG_MFD_AS3711 is not set
+# CONFIG_MFD_AS3722 is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_AAT2870_CORE is not set
+# CONFIG_MFD_ATMEL_FLEXCOM is not set
+# CONFIG_MFD_ATMEL_HLCDC is not set
+# CONFIG_MFD_BCM590XX is not set
+# CONFIG_MFD_BD9571MWV is not set
+# CONFIG_MFD_AXP20X_I2C is not set
+# CONFIG_MFD_CROS_EC is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_PMIC_DA903X is not set
+CONFIG_PMIC_DA9052=y
+# CONFIG_MFD_DA9052_SPI is not set
+CONFIG_MFD_DA9052_I2C=y
+# CONFIG_MFD_DA9055 is not set
+CONFIG_MFD_DA9062=y
+CONFIG_MFD_DA9063=y
+# CONFIG_MFD_DA9150 is not set
+# CONFIG_MFD_DLN2 is not set
+CONFIG_MFD_MC13XXX=y
+CONFIG_MFD_MC13XXX_SPI=y
+CONFIG_MFD_MC13XXX_I2C=y
+# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77620 is not set
+# CONFIG_MFD_MAX77686 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX77843 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_CPCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_UCB1400_CORE is not set
+# CONFIG_MFD_PM8XXX is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RTSX_PCI is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RTSX_USB is not set
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_RK808 is not set
+# CONFIG_MFD_RN5T618 is not set
+# CONFIG_MFD_SEC_CORE is not set
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_ABX500_CORE is not set
+CONFIG_MFD_STMPE=y
+
+#
+# STMicroelectronics STMPE Interface Drivers
+#
+CONFIG_STMPE_I2C=y
+# CONFIG_STMPE_SPI is not set
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_TI_LMU is not set
+# CONFIG_MFD_PALMAS is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65086 is not set
+# CONFIG_MFD_TPS65090 is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TI_LP873X is not set
+# CONFIG_MFD_TI_LP87565 is not set
+# CONFIG_MFD_TPS65218 is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TPS80031 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_TWL6040_CORE is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_MFD_VX855 is not set
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_ACT8865 is not set
+# CONFIG_REGULATOR_AD5398 is not set
+CONFIG_REGULATOR_ANATOP=y
+CONFIG_REGULATOR_DA9052=y
+CONFIG_REGULATOR_DA9062=y
+CONFIG_REGULATOR_DA9063=y
+# CONFIG_REGULATOR_DA9210 is not set
+# CONFIG_REGULATOR_DA9211 is not set
+# CONFIG_REGULATOR_FAN53555 is not set
+CONFIG_REGULATOR_GPIO=y
+# CONFIG_REGULATOR_ISL9305 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8755 is not set
+# CONFIG_REGULATOR_LTC3589 is not set
+# CONFIG_REGULATOR_LTC3676 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_MAX8973 is not set
+CONFIG_REGULATOR_MC13XXX_CORE=y
+CONFIG_REGULATOR_MC13783=y
+CONFIG_REGULATOR_MC13892=y
+# CONFIG_REGULATOR_MT6311 is not set
+CONFIG_REGULATOR_PFUZE100=y
+# CONFIG_REGULATOR_PV88060 is not set
+# CONFIG_REGULATOR_PV88080 is not set
+# CONFIG_REGULATOR_PV88090 is not set
+# CONFIG_REGULATOR_PWM is not set
+# CONFIG_REGULATOR_TPS51632 is not set
+# CONFIG_REGULATOR_TPS62360 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_TPS65132 is not set
+# CONFIG_REGULATOR_TPS6524X is not set
+# CONFIG_REGULATOR_VCTRL is not set
+CONFIG_RC_CORE=y
+CONFIG_RC_MAP=y
+CONFIG_RC_DECODERS=y
+# CONFIG_LIRC is not set
+CONFIG_IR_NEC_DECODER=y
+CONFIG_IR_RC5_DECODER=y
+CONFIG_IR_RC6_DECODER=y
+CONFIG_IR_JVC_DECODER=y
+CONFIG_IR_SONY_DECODER=y
+CONFIG_IR_SANYO_DECODER=y
+CONFIG_IR_SHARP_DECODER=y
+CONFIG_IR_MCE_KBD_DECODER=y
+CONFIG_IR_XMP_DECODER=y
+CONFIG_RC_DEVICES=y
+# CONFIG_RC_ATI_REMOTE is not set
+# CONFIG_IR_HIX5HD2 is not set
+# CONFIG_IR_IMON is not set
+# CONFIG_IR_MCEUSB is not set
+# CONFIG_IR_REDRAT3 is not set
+# CONFIG_IR_STREAMZAP is not set
+# CONFIG_IR_IGORPLUGUSB is not set
+# CONFIG_IR_IGUANA is not set
+# CONFIG_IR_TTUSBIR is not set
+# CONFIG_RC_LOOPBACK is not set
+CONFIG_IR_GPIO_CIR=y
+# CONFIG_IR_SERIAL is not set
+# CONFIG_IR_SIR is not set
+CONFIG_MEDIA_SUPPORT=y
+
+#
+# Multimedia core support
+#
+CONFIG_MEDIA_CAMERA_SUPPORT=y
+# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set
+# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set
+# CONFIG_MEDIA_RADIO_SUPPORT is not set
+# CONFIG_MEDIA_SDR_SUPPORT is not set
+# CONFIG_MEDIA_CEC_SUPPORT is not set
+CONFIG_MEDIA_CONTROLLER=y
+CONFIG_VIDEO_DEV=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
+CONFIG_VIDEO_V4L2=y
+CONFIG_VIDEO_ADV_DEBUG=y
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_PCI_SKELETON is not set
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_V4L2_FWNODE=y
+CONFIG_VIDEOBUF2_CORE=y
+CONFIG_VIDEOBUF2_MEMOPS=y
+CONFIG_VIDEOBUF2_DMA_CONTIG=y
+CONFIG_VIDEOBUF2_VMALLOC=m
+# CONFIG_TTPCI_EEPROM is not set
+
+#
+# Media drivers
+#
+CONFIG_MEDIA_USB_SUPPORT=y
+
+#
+# Webcam devices
+#
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+# CONFIG_USB_M5602 is not set
+# CONFIG_USB_STV06XX is not set
+# CONFIG_USB_GL860 is not set
+# CONFIG_USB_GSPCA_BENQ is not set
+# CONFIG_USB_GSPCA_CONEX is not set
+# CONFIG_USB_GSPCA_CPIA1 is not set
+# CONFIG_USB_GSPCA_DTCS033 is not set
+# CONFIG_USB_GSPCA_ETOMS is not set
+# CONFIG_USB_GSPCA_FINEPIX is not set
+# CONFIG_USB_GSPCA_JEILINJ is not set
+# CONFIG_USB_GSPCA_JL2005BCD is not set
+# CONFIG_USB_GSPCA_KINECT is not set
+# CONFIG_USB_GSPCA_KONICA is not set
+# CONFIG_USB_GSPCA_MARS is not set
+# CONFIG_USB_GSPCA_MR97310A is not set
+# CONFIG_USB_GSPCA_NW80X is not set
+# CONFIG_USB_GSPCA_OV519 is not set
+# CONFIG_USB_GSPCA_OV534 is not set
+# CONFIG_USB_GSPCA_OV534_9 is not set
+# CONFIG_USB_GSPCA_PAC207 is not set
+# CONFIG_USB_GSPCA_PAC7302 is not set
+# CONFIG_USB_GSPCA_PAC7311 is not set
+# CONFIG_USB_GSPCA_SE401 is not set
+# CONFIG_USB_GSPCA_SN9C2028 is not set
+# CONFIG_USB_GSPCA_SN9C20X is not set
+# CONFIG_USB_GSPCA_SONIXB is not set
+# CONFIG_USB_GSPCA_SONIXJ is not set
+# CONFIG_USB_GSPCA_SPCA500 is not set
+# CONFIG_USB_GSPCA_SPCA501 is not set
+# CONFIG_USB_GSPCA_SPCA505 is not set
+# CONFIG_USB_GSPCA_SPCA506 is not set
+# CONFIG_USB_GSPCA_SPCA508 is not set
+# CONFIG_USB_GSPCA_SPCA561 is not set
+# CONFIG_USB_GSPCA_SPCA1528 is not set
+# CONFIG_USB_GSPCA_SQ905 is not set
+# CONFIG_USB_GSPCA_SQ905C is not set
+# CONFIG_USB_GSPCA_SQ930X is not set
+# CONFIG_USB_GSPCA_STK014 is not set
+# CONFIG_USB_GSPCA_STK1135 is not set
+# CONFIG_USB_GSPCA_STV0680 is not set
+# CONFIG_USB_GSPCA_SUNPLUS is not set
+# CONFIG_USB_GSPCA_T613 is not set
+# CONFIG_USB_GSPCA_TOPRO is not set
+# CONFIG_USB_GSPCA_TOUPTEK is not set
+# CONFIG_USB_GSPCA_TV8532 is not set
+# CONFIG_USB_GSPCA_VC032X is not set
+# CONFIG_USB_GSPCA_VICAM is not set
+# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
+# CONFIG_USB_GSPCA_ZC3XX is not set
+# CONFIG_USB_PWC is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_USB_ZR364XX is not set
+# CONFIG_USB_STKWEBCAM is not set
+# CONFIG_USB_S2255 is not set
+# CONFIG_VIDEO_USBTV is not set
+
+#
+# Webcam, TV (analog/digital) USB devices
+#
+# CONFIG_VIDEO_EM28XX is not set
+# CONFIG_MEDIA_PCI_SUPPORT is not set
+CONFIG_V4L_PLATFORM_DRIVERS=y
+# CONFIG_VIDEO_CAFE_CCIC is not set
+CONFIG_VIDEO_MUX=y
+CONFIG_SOC_CAMERA=y
+# CONFIG_SOC_CAMERA_PLATFORM is not set
+# CONFIG_VIDEO_XILINX is not set
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_CODA=m
+CONFIG_VIDEO_IMX_VDOA=m
+# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
+CONFIG_VIDEO_SCAN921226H=y
+# CONFIG_VIDEO_SH_VEU is not set
+# CONFIG_V4L_TEST_DRIVERS is not set
+
+#
+# Supported MMC/SDIO adapters
+#
+# CONFIG_CYPRESS_FIRMWARE is not set
+
+#
+# Media ancillary drivers (tuners, sensors, i2c, spi, frontends)
+#
+# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set
+CONFIG_VIDEO_IR_I2C=y
+
+#
+# I2C Encoders, decoders, sensors and other helper chips
+#
+
+#
+# Audio decoders, processors and mixers
+#
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9840 is not set
+# CONFIG_VIDEO_TEA6415C is not set
+# CONFIG_VIDEO_TEA6420 is not set
+# CONFIG_VIDEO_MSP3400 is not set
+# CONFIG_VIDEO_CS3308 is not set
+# CONFIG_VIDEO_CS5345 is not set
+# CONFIG_VIDEO_CS53L32A is not set
+# CONFIG_VIDEO_TLV320AIC23B is not set
+# CONFIG_VIDEO_UDA1342 is not set
+# CONFIG_VIDEO_WM8775 is not set
+# CONFIG_VIDEO_WM8739 is not set
+# CONFIG_VIDEO_VP27SMPX is not set
+# CONFIG_VIDEO_SONY_BTF_MPX is not set
+
+#
+# RDS decoders
+#
+# CONFIG_VIDEO_SAA6588 is not set
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+# CONFIG_VIDEO_ADV7183 is not set
+# CONFIG_VIDEO_ADV748X is not set
+# CONFIG_VIDEO_ADV7604 is not set
+# CONFIG_VIDEO_ADV7842 is not set
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_ML86V7667 is not set
+# CONFIG_VIDEO_AD5820 is not set
+# CONFIG_VIDEO_DW9714 is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA711X is not set
+# CONFIG_VIDEO_TC358743 is not set
+# CONFIG_VIDEO_TVP514X is not set
+# CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
+# CONFIG_VIDEO_TW2804 is not set
+# CONFIG_VIDEO_TW9903 is not set
+# CONFIG_VIDEO_TW9906 is not set
+# CONFIG_VIDEO_VPX3220 is not set
+
+#
+# Video and audio decoders
+#
+# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_CX25840 is not set
+
+#
+# Video encoders
+#
+# CONFIG_VIDEO_SAA7127 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+# CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_ADV7393 is not set
+# CONFIG_VIDEO_ADV7511 is not set
+# CONFIG_VIDEO_AD9389B is not set
+# CONFIG_VIDEO_AK881X is not set
+# CONFIG_VIDEO_THS8200 is not set
+
+#
+# Camera sensor devices
+#
+CONFIG_VIDEO_APTINA_PLL=y
+# CONFIG_VIDEO_OV2640 is not set
+CONFIG_VIDEO_PHYTEC_VM012=y
+CONFIG_VIDEO_PHYTEC_VM050=y
+# CONFIG_VIDEO_OV2659 is not set
+# CONFIG_VIDEO_OV5640 is not set
+# CONFIG_VIDEO_OV5645 is not set
+# CONFIG_VIDEO_OV5647 is not set
+# CONFIG_VIDEO_OV6650 is not set
+# CONFIG_VIDEO_OV5670 is not set
+# CONFIG_VIDEO_OV7640 is not set
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_OV9650 is not set
+# CONFIG_VIDEO_OV13858 is not set
+# CONFIG_VIDEO_VS6624 is not set
+# CONFIG_VIDEO_MT9M032 is not set
+CONFIG_VIDEO_MT9M111=y
+CONFIG_VIDEO_MT9P031=y
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+CONFIG_VIDEO_MT9V032=y
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+# CONFIG_VIDEO_S5K6AA is not set
+# CONFIG_VIDEO_S5K6A3 is not set
+# CONFIG_VIDEO_S5K4ECGX is not set
+# CONFIG_VIDEO_S5K5BAF is not set
+# CONFIG_VIDEO_SMIAPP is not set
+# CONFIG_VIDEO_ET8EK8 is not set
+# CONFIG_VIDEO_S5C73M3 is not set
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
+# CONFIG_VIDEO_AS3645A is not set
+# CONFIG_VIDEO_LM3560 is not set
+# CONFIG_VIDEO_LM3646 is not set
+
+#
+# Video improvement chips
+#
+# CONFIG_VIDEO_UPD64031A is not set
+# CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Audio/Video compression chips
+#
+# CONFIG_VIDEO_SAA6752HS is not set
+
+#
+# SDR tuner chips
+#
+
+#
+# Miscellaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
+
+#
+# Sensors used on soc_camera driver
+#
+
+#
+# soc_camera sensor drivers
+#
+# CONFIG_SOC_CAMERA_IMX074 is not set
+# CONFIG_SOC_CAMERA_MT9M001 is not set
+# CONFIG_SOC_CAMERA_MT9M111 is not set
+# CONFIG_SOC_CAMERA_MT9T031 is not set
+# CONFIG_SOC_CAMERA_MT9T112 is not set
+# CONFIG_SOC_CAMERA_MT9V022 is not set
+# CONFIG_SOC_CAMERA_OV5642 is not set
+# CONFIG_SOC_CAMERA_OV772X is not set
+# CONFIG_SOC_CAMERA_OV9640 is not set
+# CONFIG_SOC_CAMERA_OV9740 is not set
+# CONFIG_SOC_CAMERA_RJ54N1 is not set
+# CONFIG_SOC_CAMERA_TW9910 is not set
+
+#
+# SPI helper chips
+#
+# CONFIG_VIDEO_GS1662 is not set
+
+#
+# Customise DVB Frontends
+#
+
+#
+# Tools to develop new frontends
+#
+
+#
+# Graphics support
+#
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_IMX_IPUV3_CORE=y
+CONFIG_DRM=y
+# CONFIG_DRM_DP_AUX_CHARDEV is not set
+# CONFIG_DRM_DEBUG_MM is not set
+# CONFIG_DRM_DEBUG_MM_SELFTEST is not set
+CONFIG_DRM_KMS_HELPER=y
+CONFIG_DRM_KMS_FB_HELPER=y
+CONFIG_DRM_FBDEV_EMULATION=y
+CONFIG_DRM_FBDEV_OVERALLOC=100
+# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_GEM_CMA_HELPER=y
+CONFIG_DRM_KMS_CMA_HELPER=y
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+# CONFIG_DRM_HDLCD is not set
+# CONFIG_DRM_MALI_DISPLAY is not set
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DRM_AMDGPU is not set
+
+#
+# ACP (Audio CoProcessor) Configuration
+#
+# CONFIG_DRM_NOUVEAU is not set
+# CONFIG_DRM_VGEM is not set
+# CONFIG_DRM_EXYNOS is not set
+# CONFIG_DRM_UDL is not set
+# CONFIG_DRM_AST is not set
+# CONFIG_DRM_MGAG200 is not set
+# CONFIG_DRM_CIRRUS_QEMU is not set
+# CONFIG_DRM_ARMADA is not set
+# CONFIG_DRM_RCAR_DW_HDMI is not set
+# CONFIG_DRM_OMAP is not set
+# CONFIG_DRM_TILCDC is not set
+# CONFIG_DRM_QXL is not set
+# CONFIG_DRM_BOCHS is not set
+# CONFIG_DRM_FSL_DCU is not set
+# CONFIG_DRM_STM is not set
+CONFIG_DRM_PANEL=y
+
+#
+# Display Panels
+#
+# CONFIG_DRM_PANEL_LVDS is not set
+CONFIG_DRM_PANEL_SIMPLE=y
+# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set
+# CONFIG_DRM_PANEL_LG_LG4573 is not set
+# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set
+# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+
+#
+# Display Interface Bridges
+#
+# CONFIG_DRM_ANALOGIX_ANX78XX is not set
+# CONFIG_DRM_DUMB_VGA_DAC is not set
+# CONFIG_DRM_LVDS_ENCODER is not set
+# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set
+# CONFIG_DRM_NXP_PTN3460 is not set
+# CONFIG_DRM_PARADE_PS8622 is not set
+# CONFIG_DRM_SIL_SII8620 is not set
+# CONFIG_DRM_SII902X is not set
+# CONFIG_DRM_TOSHIBA_TC358767 is not set
+# CONFIG_DRM_TI_TFP410 is not set
+# CONFIG_DRM_I2C_ADV7511 is not set
+CONFIG_DRM_DW_HDMI=y
+# CONFIG_DRM_DW_HDMI_AHB_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
+# CONFIG_DRM_DW_HDMI_CEC is not set
+# CONFIG_DRM_STI is not set
+CONFIG_DRM_IMX=y
+CONFIG_DRM_IMX_PARALLEL_DISPLAY=y
+CONFIG_DRM_IMX_TVE=y
+CONFIG_DRM_IMX_LDB=y
+CONFIG_DRM_IMX_HDMI=y
+CONFIG_DRM_ETNAVIV=y
+CONFIG_DRM_ETNAVIV_THERMAL=y
+# CONFIG_DRM_ETNAVIV_REGISTER_LOGGING is not set
+# CONFIG_DRM_ARCPGU is not set
+# CONFIG_DRM_HISI_HIBMC is not set
+# CONFIG_DRM_MXSFB is not set
+# CONFIG_DRM_TINYDRM is not set
+# CONFIG_DRM_PL111 is not set
+# CONFIG_DRM_LEGACY is not set
+# CONFIG_DRM_LIB_RANDOM is not set
+
+#
+# Frame buffer Devices
+#
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FB_CMDLINE=y
+CONFIG_FB_NOTIFY=y
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_SYS_FOPS=y
+CONFIG_FB_DEFERRED_IO=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_MODE_HELPERS=y
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_PM2 is not set
+# CONFIG_FB_IMX is not set
+# CONFIG_FB_CYBER2000 is not set
+# CONFIG_FB_ASILIANT is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_UVESA is not set
+# CONFIG_FB_OPENCORES is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_NVIDIA is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_I740 is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_RADEON is not set
+# CONFIG_FB_ATY128 is not set
+# CONFIG_FB_ATY is not set
+# CONFIG_FB_S3 is not set
+# CONFIG_FB_SAVAGE is not set
+# CONFIG_FB_SIS is not set
+# CONFIG_FB_NEOMAGIC is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FB_VT8623 is not set
+# CONFIG_FB_TRIDENT is not set
+# CONFIG_FB_ARK is not set
+# CONFIG_FB_PM3 is not set
+# CONFIG_FB_CARMINE is not set
+# CONFIG_FB_SMSCUFX is not set
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_MB862XX is not set
+CONFIG_FB_MX3=y
+# CONFIG_FB_BROADSHEET is not set
+# CONFIG_FB_AUO_K190X is not set
+CONFIG_FB_MXS=y
+# CONFIG_FB_SIMPLE is not set
+# CONFIG_FB_SSD1307 is not set
+# CONFIG_FB_SM712 is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_L4F00242T03=y
+# CONFIG_LCD_LMS283GF05 is not set
+# CONFIG_LCD_LTV350QV is not set
+# CONFIG_LCD_ILI922X is not set
+# CONFIG_LCD_ILI9320 is not set
+# CONFIG_LCD_TDO24M is not set
+# CONFIG_LCD_VGG2432A4 is not set
+CONFIG_LCD_PLATFORM=y
+# CONFIG_LCD_S6E63M0 is not set
+# CONFIG_LCD_LD9040 is not set
+# CONFIG_LCD_AMS369FG06 is not set
+# CONFIG_LCD_LMS501KF03 is not set
+# CONFIG_LCD_HX8357 is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+CONFIG_BACKLIGHT_PWM=y
+# CONFIG_BACKLIGHT_DA9052 is not set
+# CONFIG_BACKLIGHT_PM8941_WLED is not set
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+# CONFIG_BACKLIGHT_LM3630A is not set
+# CONFIG_BACKLIGHT_LM3639 is not set
+# CONFIG_BACKLIGHT_LP855X is not set
+CONFIG_BACKLIGHT_GPIO=y
+# CONFIG_BACKLIGHT_LV5207LP is not set
+# CONFIG_BACKLIGHT_BD6107 is not set
+# CONFIG_BACKLIGHT_ARCXCNN is not set
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEOMODE_HELPERS=y
+CONFIG_HDMI=y
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_LOGO=y
+CONFIG_LOGO_LINUX_MONO=y
+CONFIG_LOGO_LINUX_VGA16=y
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=y
+# CONFIG_SOUND_OSS_CORE is not set
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_DMAENGINE_PCM=y
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+# CONFIG_SND_OSSEMUL is not set
+CONFIG_SND_PCM_TIMER=y
+# CONFIG_SND_HRTIMER is not set
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+# CONFIG_SND_SEQUENCER is not set
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+CONFIG_SND_DRIVERS=y
+# CONFIG_SND_DUMMY is not set
+# CONFIG_SND_ALOOP is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SND_MPU401 is not set
+CONFIG_SND_PCI=y
+# CONFIG_SND_AD1889 is not set
+# CONFIG_SND_ATIIXP is not set
+# CONFIG_SND_ATIIXP_MODEM is not set
+# CONFIG_SND_AU8810 is not set
+# CONFIG_SND_AU8820 is not set
+# CONFIG_SND_AU8830 is not set
+# CONFIG_SND_AW2 is not set
+# CONFIG_SND_BT87X is not set
+# CONFIG_SND_CA0106 is not set
+# CONFIG_SND_CMIPCI is not set
+# CONFIG_SND_OXYGEN is not set
+# CONFIG_SND_CS4281 is not set
+# CONFIG_SND_CS46XX is not set
+# CONFIG_SND_CTXFI is not set
+# CONFIG_SND_DARLA20 is not set
+# CONFIG_SND_GINA20 is not set
+# CONFIG_SND_LAYLA20 is not set
+# CONFIG_SND_DARLA24 is not set
+# CONFIG_SND_GINA24 is not set
+# CONFIG_SND_LAYLA24 is not set
+# CONFIG_SND_MONA is not set
+# CONFIG_SND_MIA is not set
+# CONFIG_SND_ECHO3G is not set
+# CONFIG_SND_INDIGO is not set
+# CONFIG_SND_INDIGOIO is not set
+# CONFIG_SND_INDIGODJ is not set
+# CONFIG_SND_INDIGOIOX is not set
+# CONFIG_SND_INDIGODJX is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+# CONFIG_SND_ENS1370 is not set
+# CONFIG_SND_ENS1371 is not set
+# CONFIG_SND_FM801 is not set
+# CONFIG_SND_HDSP is not set
+# CONFIG_SND_HDSPM is not set
+# CONFIG_SND_ICE1724 is not set
+# CONFIG_SND_INTEL8X0 is not set
+# CONFIG_SND_INTEL8X0M is not set
+# CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_LOLA is not set
+# CONFIG_SND_LX6464ES is not set
+# CONFIG_SND_MIXART is not set
+# CONFIG_SND_NM256 is not set
+# CONFIG_SND_PCXHR is not set
+# CONFIG_SND_RIPTIDE is not set
+# CONFIG_SND_RME32 is not set
+# CONFIG_SND_RME96 is not set
+# CONFIG_SND_RME9652 is not set
+# CONFIG_SND_SE6X is not set
+# CONFIG_SND_VIA82XX is not set
+# CONFIG_SND_VIA82XX_MODEM is not set
+# CONFIG_SND_VIRTUOSO is not set
+# CONFIG_SND_VX222 is not set
+# CONFIG_SND_YMFPCI is not set
+
+#
+# HD-Audio
+#
+# CONFIG_SND_HDA_INTEL is not set
+CONFIG_SND_HDA_PREALLOC_SIZE=64
+CONFIG_SND_ARM=y
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+# CONFIG_SND_USB_UA101 is not set
+# CONFIG_SND_USB_CAIAQ is not set
+# CONFIG_SND_USB_6FIRE is not set
+# CONFIG_SND_USB_HIFACE is not set
+# CONFIG_SND_BCD2000 is not set
+# CONFIG_SND_USB_POD is not set
+# CONFIG_SND_USB_PODHD is not set
+# CONFIG_SND_USB_TONEPORT is not set
+# CONFIG_SND_USB_VARIAX is not set
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_AC97_BUS=y
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+# CONFIG_SND_SOC_AMD_ACP is not set
+# CONFIG_SND_ATMEL_SOC is not set
+# CONFIG_SND_DESIGNWARE_I2S is not set
+
+#
+# SoC Audio for Freescale CPUs
+#
+
+#
+# Common SoC Audio options for Freescale CPUs:
+#
+CONFIG_SND_SOC_FSL_ASRC=y
+CONFIG_SND_SOC_FSL_SAI=y
+CONFIG_SND_SOC_FSL_SSI=y
+CONFIG_SND_SOC_FSL_SPDIF=y
+CONFIG_SND_SOC_FSL_ESAI=y
+CONFIG_SND_SOC_FSL_UTILS=y
+CONFIG_SND_SOC_IMX_PCM_DMA=y
+CONFIG_SND_SOC_IMX_AUDMUX=y
+CONFIG_SND_IMX_SOC=y
+CONFIG_SND_SOC_IMX_SSI=y
+CONFIG_SND_SOC_IMX_PCM_FIQ=y
+
+#
+# SoC Audio support for Freescale i.MX boards:
+#
+CONFIG_SND_SOC_PHYCORE_AC97=y
+CONFIG_SND_SOC_EUKREA_TLV320=y
+CONFIG_SND_SOC_IMX_WM8962=y
+CONFIG_SND_SOC_IMX_ES8328=y
+CONFIG_SND_SOC_IMX_SGTL5000=y
+CONFIG_SND_SOC_IMX_SPDIF=y
+CONFIG_SND_SOC_IMX_MC13783=y
+CONFIG_SND_SOC_FSL_ASOC_CARD=y
+# CONFIG_SND_I2S_HI6210_I2S is not set
+# CONFIG_SND_SOC_IMG is not set
+
+#
+# STMicroelectronics STM32 SOC audio support
+#
+# CONFIG_SND_SOC_XTFPGA_I2S is not set
+# CONFIG_ZX_TDM is not set
+CONFIG_SND_SOC_I2C_AND_SPI=y
+
+#
+# CODEC drivers
+#
+# CONFIG_SND_SOC_AC97_CODEC is not set
+# CONFIG_SND_SOC_ADAU1701 is not set
+# CONFIG_SND_SOC_ADAU1761_I2C is not set
+# CONFIG_SND_SOC_ADAU1761_SPI is not set
+# CONFIG_SND_SOC_ADAU7002 is not set
+# CONFIG_SND_SOC_AK4104 is not set
+# CONFIG_SND_SOC_AK4554 is not set
+# CONFIG_SND_SOC_AK4613 is not set
+# CONFIG_SND_SOC_AK4642 is not set
+# CONFIG_SND_SOC_AK5386 is not set
+# CONFIG_SND_SOC_ALC5623 is not set
+# CONFIG_SND_SOC_BT_SCO is not set
+# CONFIG_SND_SOC_CS35L32 is not set
+# CONFIG_SND_SOC_CS35L33 is not set
+# CONFIG_SND_SOC_CS35L34 is not set
+# CONFIG_SND_SOC_CS35L35 is not set
+# CONFIG_SND_SOC_CS42L42 is not set
+# CONFIG_SND_SOC_CS42L51_I2C is not set
+# CONFIG_SND_SOC_CS42L52 is not set
+# CONFIG_SND_SOC_CS42L56 is not set
+# CONFIG_SND_SOC_CS42L73 is not set
+# CONFIG_SND_SOC_CS4265 is not set
+# CONFIG_SND_SOC_CS4270 is not set
+# CONFIG_SND_SOC_CS4271_I2C is not set
+# CONFIG_SND_SOC_CS4271_SPI is not set
+CONFIG_SND_SOC_CS42XX8=y
+CONFIG_SND_SOC_CS42XX8_I2C=y
+# CONFIG_SND_SOC_CS43130 is not set
+# CONFIG_SND_SOC_CS4349 is not set
+# CONFIG_SND_SOC_CS53L30 is not set
+# CONFIG_SND_SOC_DIO2125 is not set
+# CONFIG_SND_SOC_ES7134 is not set
+# CONFIG_SND_SOC_ES8316 is not set
+CONFIG_SND_SOC_ES8328=y
+CONFIG_SND_SOC_ES8328_I2C=y
+CONFIG_SND_SOC_ES8328_SPI=y
+# CONFIG_SND_SOC_GTM601 is not set
+# CONFIG_SND_SOC_INNO_RK3036 is not set
+# CONFIG_SND_SOC_MAX98504 is not set
+# CONFIG_SND_SOC_MAX98927 is not set
+# CONFIG_SND_SOC_MAX9860 is not set
+# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set
+# CONFIG_SND_SOC_PCM1681 is not set
+# CONFIG_SND_SOC_PCM179X_I2C is not set
+# CONFIG_SND_SOC_PCM179X_SPI is not set
+# CONFIG_SND_SOC_PCM3168A_I2C is not set
+# CONFIG_SND_SOC_PCM3168A_SPI is not set
+# CONFIG_SND_SOC_PCM512x_I2C is not set
+# CONFIG_SND_SOC_PCM512x_SPI is not set
+# CONFIG_SND_SOC_RT5616 is not set
+# CONFIG_SND_SOC_RT5631 is not set
+# CONFIG_SND_SOC_RT5677_SPI is not set
+CONFIG_SND_SOC_SGTL5000=y
+# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
+# CONFIG_SND_SOC_SPDIF is not set
+# CONFIG_SND_SOC_SSM2602_SPI is not set
+# CONFIG_SND_SOC_SSM2602_I2C is not set
+# CONFIG_SND_SOC_SSM4567 is not set
+# CONFIG_SND_SOC_STA32X is not set
+# CONFIG_SND_SOC_STA350 is not set
+# CONFIG_SND_SOC_STI_SAS is not set
+# CONFIG_SND_SOC_TAS2552 is not set
+# CONFIG_SND_SOC_TAS5086 is not set
+# CONFIG_SND_SOC_TAS571X is not set
+# CONFIG_SND_SOC_TAS5720 is not set
+# CONFIG_SND_SOC_TFA9879 is not set
+CONFIG_SND_SOC_TLV320AIC23=y
+CONFIG_SND_SOC_TLV320AIC23_I2C=y
+# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
+# CONFIG_SND_SOC_TLV320AIC31XX is not set
+CONFIG_SND_SOC_TLV320AIC3X=y
+# CONFIG_SND_SOC_TS3A227E is not set
+# CONFIG_SND_SOC_WM8510 is not set
+# CONFIG_SND_SOC_WM8523 is not set
+# CONFIG_SND_SOC_WM8524 is not set
+# CONFIG_SND_SOC_WM8580 is not set
+# CONFIG_SND_SOC_WM8711 is not set
+# CONFIG_SND_SOC_WM8728 is not set
+# CONFIG_SND_SOC_WM8731 is not set
+# CONFIG_SND_SOC_WM8737 is not set
+# CONFIG_SND_SOC_WM8741 is not set
+# CONFIG_SND_SOC_WM8750 is not set
+# CONFIG_SND_SOC_WM8753 is not set
+# CONFIG_SND_SOC_WM8770 is not set
+# CONFIG_SND_SOC_WM8776 is not set
+# CONFIG_SND_SOC_WM8804_I2C is not set
+# CONFIG_SND_SOC_WM8804_SPI is not set
+# CONFIG_SND_SOC_WM8903 is not set
+CONFIG_SND_SOC_WM8960=y
+CONFIG_SND_SOC_WM8962=y
+# CONFIG_SND_SOC_WM8974 is not set
+# CONFIG_SND_SOC_WM8978 is not set
+# CONFIG_SND_SOC_WM8985 is not set
+CONFIG_SND_SOC_WM9712=y
+# CONFIG_SND_SOC_ZX_AUD96P22 is not set
+CONFIG_SND_SOC_MC13783=y
+# CONFIG_SND_SOC_NAU8540 is not set
+# CONFIG_SND_SOC_NAU8810 is not set
+# CONFIG_SND_SOC_NAU8824 is not set
+# CONFIG_SND_SOC_TPA6130A2 is not set
+CONFIG_SND_SIMPLE_CARD_UTILS=y
+CONFIG_SND_SIMPLE_CARD=y
+# CONFIG_SND_SIMPLE_SCU_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_CARD is not set
+# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set
+CONFIG_AC97_BUS=y
+
+#
+# HID support
+#
+CONFIG_HID=y
+# CONFIG_HID_BATTERY_STRENGTH is not set
+CONFIG_HIDRAW=y
+# CONFIG_UHID is not set
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACCUTOUCH is not set
+# CONFIG_HID_ACRUX is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_ASUS is not set
+# CONFIG_HID_AUREAL is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_BETOP_FF is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_CORSAIR is not set
+# CONFIG_HID_PRODIKEYS is not set
+# CONFIG_HID_CMEDIA is not set
+# CONFIG_HID_CP2112 is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_ELO is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_GEMBIRD is not set
+# CONFIG_HID_GFRM is not set
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_GT683R is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_ITE is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LED is not set
+# CONFIG_HID_LENOVO is not set
+# CONFIG_HID_LOGITECH is not set
+# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MAYFLASH is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+CONFIG_HID_MULTITOUCH=y
+# CONFIG_HID_NTI is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PLANTRONICS is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SONY is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THINGM is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_UDRAW_PS3 is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_WIIMOTE is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+# CONFIG_HID_ALPS is not set
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+
+#
+# I2C HID support
+#
+# CONFIG_I2C_HID is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_PCI=y
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_XHCI_HCD is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_PCI=y
+CONFIG_USB_EHCI_MXC=y
+# CONFIG_USB_EHCI_HCD_PLATFORM is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+# CONFIG_USB_FOTG210_HCD is not set
+# CONFIG_USB_MAX3421_HCD is not set
+# CONFIG_USB_OHCI_HCD is not set
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_IMX21_HCD is not set
+# CONFIG_USB_HCD_TEST_MODE is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+# CONFIG_USB_STORAGE_REALTEK is not set
+# CONFIG_USB_STORAGE_DATAFAB is not set
+# CONFIG_USB_STORAGE_FREECOM is not set
+# CONFIG_USB_STORAGE_ISD200 is not set
+# CONFIG_USB_STORAGE_USBAT is not set
+# CONFIG_USB_STORAGE_SDDR09 is not set
+# CONFIG_USB_STORAGE_SDDR55 is not set
+# CONFIG_USB_STORAGE_JUMPSHOT is not set
+# CONFIG_USB_STORAGE_ALAUDA is not set
+# CONFIG_USB_STORAGE_ONETOUCH is not set
+# CONFIG_USB_STORAGE_KARMA is not set
+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
+# CONFIG_USB_STORAGE_ENE_UB6250 is not set
+# CONFIG_USB_UAS is not set
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USB_MICROTEK is not set
+# CONFIG_USBIP_CORE is not set
+# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_DWC3 is not set
+# CONFIG_USB_DWC2 is not set
+CONFIG_USB_CHIPIDEA=y
+CONFIG_USB_CHIPIDEA_OF=y
+CONFIG_USB_CHIPIDEA_PCI=y
+CONFIG_USB_CHIPIDEA_UDC=y
+CONFIG_USB_CHIPIDEA_HOST=y
+# CONFIG_USB_ISP1760 is not set
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_GENERIC=y
+# CONFIG_USB_SERIAL_SIMPLE is not set
+# CONFIG_USB_SERIAL_AIRCABLE is not set
+# CONFIG_USB_SERIAL_ARK3116 is not set
+# CONFIG_USB_SERIAL_BELKIN is not set
+# CONFIG_USB_SERIAL_CH341 is not set
+# CONFIG_USB_SERIAL_WHITEHEAT is not set
+# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
+# CONFIG_USB_SERIAL_CP210X is not set
+# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
+# CONFIG_USB_SERIAL_EMPEG is not set
+CONFIG_USB_SERIAL_FTDI_SIO=m
+# CONFIG_USB_SERIAL_VISOR is not set
+# CONFIG_USB_SERIAL_IPAQ is not set
+# CONFIG_USB_SERIAL_IR is not set
+# CONFIG_USB_SERIAL_EDGEPORT is not set
+# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
+# CONFIG_USB_SERIAL_F81232 is not set
+# CONFIG_USB_SERIAL_F8153X is not set
+# CONFIG_USB_SERIAL_GARMIN is not set
+# CONFIG_USB_SERIAL_IPW is not set
+# CONFIG_USB_SERIAL_IUU is not set
+# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
+# CONFIG_USB_SERIAL_KEYSPAN is not set
+# CONFIG_USB_SERIAL_KLSI is not set
+# CONFIG_USB_SERIAL_KOBIL_SCT is not set
+# CONFIG_USB_SERIAL_MCT_U232 is not set
+# CONFIG_USB_SERIAL_METRO is not set
+# CONFIG_USB_SERIAL_MOS7720 is not set
+# CONFIG_USB_SERIAL_MOS7840 is not set
+# CONFIG_USB_SERIAL_MXUPORT is not set
+# CONFIG_USB_SERIAL_NAVMAN is not set
+# CONFIG_USB_SERIAL_PL2303 is not set
+# CONFIG_USB_SERIAL_OTI6858 is not set
+# CONFIG_USB_SERIAL_QCAUX is not set
+# CONFIG_USB_SERIAL_QUALCOMM is not set
+# CONFIG_USB_SERIAL_SPCP8X5 is not set
+# CONFIG_USB_SERIAL_SAFE is not set
+# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
+# CONFIG_USB_SERIAL_SYMBOL is not set
+# CONFIG_USB_SERIAL_TI is not set
+# CONFIG_USB_SERIAL_CYBERJACK is not set
+# CONFIG_USB_SERIAL_XIRCOM is not set
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+# CONFIG_USB_SERIAL_OMNINET is not set
+# CONFIG_USB_SERIAL_OPTICON is not set
+# CONFIG_USB_SERIAL_XSENS_MT is not set
+# CONFIG_USB_SERIAL_WISHBONE is not set
+# CONFIG_USB_SERIAL_SSU100 is not set
+# CONFIG_USB_SERIAL_QT2 is not set
+# CONFIG_USB_SERIAL_UPD78F0730 is not set
+# CONFIG_USB_SERIAL_DEBUG is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_RIO500 is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_USB_SISUSBVGA is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+CONFIG_USB_TEST=m
+CONFIG_USB_EHSET_TEST_FIXTURE=m
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+# CONFIG_USB_EZUSB_FX2 is not set
+# CONFIG_USB_HUB_USB251XB is not set
+# CONFIG_USB_HSIC_USB3503 is not set
+# CONFIG_USB_HSIC_USB4604 is not set
+# CONFIG_USB_LINK_LAYER_TEST is not set
+# CONFIG_USB_CHAOSKEY is not set
+
+#
+# USB Physical Layer drivers
+#
+CONFIG_USB_PHY=y
+CONFIG_NOP_USB_XCEIV=y
+# CONFIG_AM335X_PHY_USB is not set
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ISP1301 is not set
+CONFIG_USB_MXS_PHY=y
+# CONFIG_USB_ULPI is not set
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+# CONFIG_U_SERIAL_CONSOLE is not set
+
+#
+# USB Peripheral Controller
+#
+CONFIG_USB_FSL_USB2=y
+# CONFIG_USB_FUSB300 is not set
+# CONFIG_USB_FOTG210_UDC is not set
+# CONFIG_USB_GR_UDC is not set
+# CONFIG_USB_R8A66597 is not set
+# CONFIG_USB_PXA27X is not set
+# CONFIG_USB_MV_UDC is not set
+# CONFIG_USB_MV_U3D is not set
+# CONFIG_USB_SNP_UDC_PLAT is not set
+# CONFIG_USB_M66592 is not set
+# CONFIG_USB_BDC_UDC is not set
+# CONFIG_USB_AMD5536UDC is not set
+# CONFIG_USB_NET2272 is not set
+# CONFIG_USB_NET2280 is not set
+# CONFIG_USB_GOKU is not set
+# CONFIG_USB_EG20T is not set
+# CONFIG_USB_GADGET_XILINX is not set
+# CONFIG_USB_DUMMY_HCD is not set
+CONFIG_USB_LIBCOMPOSITE=m
+CONFIG_USB_F_ACM=m
+CONFIG_USB_F_SS_LB=m
+CONFIG_USB_U_SERIAL=m
+CONFIG_USB_U_ETHER=m
+CONFIG_USB_U_AUDIO=m
+CONFIG_USB_F_SERIAL=m
+CONFIG_USB_F_OBEX=m
+CONFIG_USB_F_NCM=m
+CONFIG_USB_F_ECM=m
+CONFIG_USB_F_EEM=m
+CONFIG_USB_F_SUBSET=m
+CONFIG_USB_F_RNDIS=m
+CONFIG_USB_F_MASS_STORAGE=m
+CONFIG_USB_F_FS=m
+CONFIG_USB_F_UAC1=m
+CONFIG_USB_F_UAC2=m
+CONFIG_USB_F_UVC=m
+CONFIG_USB_F_MIDI=m
+CONFIG_USB_F_HID=m
+CONFIG_USB_F_PRINTER=m
+CONFIG_USB_CONFIGFS=m
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+CONFIG_USB_CONFIGFS_OBEX=y
+CONFIG_USB_CONFIGFS_NCM=y
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+CONFIG_USB_CONFIGFS_F_LB_SS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
+CONFIG_USB_ZERO=m
+CONFIG_USB_AUDIO=m
+# CONFIG_GADGET_UAC1 is not set
+CONFIG_USB_ETH=m
+CONFIG_USB_ETH_RNDIS=y
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_G_NCM=m
+CONFIG_USB_GADGETFS=m
+CONFIG_USB_FUNCTIONFS=m
+# CONFIG_USB_FUNCTIONFS_ETH is not set
+# CONFIG_USB_FUNCTIONFS_RNDIS is not set
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_G_SERIAL=m
+# CONFIG_USB_MIDI_GADGET is not set
+# CONFIG_USB_G_PRINTER is not set
+# CONFIG_USB_CDC_COMPOSITE is not set
+# CONFIG_USB_G_ACM_MS is not set
+# CONFIG_USB_G_MULTI is not set
+# CONFIG_USB_G_HID is not set
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_G_WEBCAM is not set
+
+#
+# USB Power Delivery and Type-C drivers
+#
+# CONFIG_TYPEC_UCSI is not set
+# CONFIG_USB_LED_TRIG is not set
+# CONFIG_USB_ULPI_BUS is not set
+# CONFIG_UWB is not set
+CONFIG_MMC=y
+CONFIG_PWRSEQ_EMMC=y
+CONFIG_PWRSEQ_SIMPLE=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=8
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+# CONFIG_MMC_SDHCI_PCI is not set
+CONFIG_MMC_SDHCI_PLTFM=y
+# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_AT91 is not set
+# CONFIG_MMC_SDHCI_OF_ESDHC is not set
+# CONFIG_MMC_SDHCI_CADENCE is not set
+CONFIG_MMC_SDHCI_ESDHC_IMX=y
+# CONFIG_MMC_SDHCI_F_SDH30 is not set
+# CONFIG_MMC_MXC is not set
+# CONFIG_MMC_TIFM_SD is not set
+# CONFIG_MMC_SPI is not set
+# CONFIG_MMC_CB710 is not set
+# CONFIG_MMC_VIA_SDMMC is not set
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MMC_USDHI6ROL0 is not set
+# CONFIG_MMC_TOSHIBA_PCI is not set
+# CONFIG_MMC_MTK is not set
+# CONFIG_MMC_SDHCI_XENON is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_LEDS_GPIO_REGISTER=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+# CONFIG_LEDS_CLASS_FLASH is not set
+# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_BCM6328 is not set
+# CONFIG_LEDS_BCM6358 is not set
+# CONFIG_LEDS_LM3530 is not set
+# CONFIG_LEDS_LM3642 is not set
+CONFIG_LEDS_PCA9532=y
+CONFIG_LEDS_PCA9532_GPIO=y
+CONFIG_LEDS_GPIO=y
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP3952 is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_LP5562 is not set
+# CONFIG_LEDS_LP8501 is not set
+# CONFIG_LEDS_LP8860 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_PCA963X is not set
+# CONFIG_LEDS_DA9052 is not set
+# CONFIG_LEDS_DAC124S085 is not set
+CONFIG_LEDS_PWM=y
+# CONFIG_LEDS_REGULATOR is not set
+# CONFIG_LEDS_BD2802 is not set
+# CONFIG_LEDS_LT3593 is not set
+# CONFIG_LEDS_MC13783 is not set
+# CONFIG_LEDS_TCA6507 is not set
+# CONFIG_LEDS_TLC591XX is not set
+# CONFIG_LEDS_LM355x is not set
+# CONFIG_LEDS_IS31FL319X is not set
+# CONFIG_LEDS_IS31FL32XX is not set
+
+#
+# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
+#
+# CONFIG_LEDS_BLINKM is not set
+# CONFIG_LEDS_SYSCON is not set
+# CONFIG_LEDS_USER is not set
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LEDS_TRIGGER_ONESHOT=y
+# CONFIG_LEDS_TRIGGER_DISK is not set
+# CONFIG_LEDS_TRIGGER_MTD is not set
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=y
+# CONFIG_LEDS_TRIGGER_CPU is not set
+CONFIG_LEDS_TRIGGER_GPIO=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_LEDS_TRIGGER_TRANSIENT is not set
+# CONFIG_LEDS_TRIGGER_CAMERA is not set
+# CONFIG_LEDS_TRIGGER_PANIC is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+CONFIG_EDAC_ATOMIC_SCRUB=y
+CONFIG_EDAC_SUPPORT=y
+# CONFIG_EDAC is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_SYSTOHC=y
+CONFIG_RTC_SYSTOHC_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_NVMEM=y
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+# CONFIG_RTC_DRV_ABB5ZES3 is not set
+# CONFIG_RTC_DRV_ABX80X is not set
+CONFIG_RTC_DRV_DS1307=y
+CONFIG_RTC_DRV_DS1307_HWMON=y
+# CONFIG_RTC_DRV_DS1307_CENTURY is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_HYM8563 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+CONFIG_RTC_DRV_ISL1208=y
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+CONFIG_RTC_DRV_PCF8523=y
+# CONFIG_RTC_DRV_PCF85063 is not set
+CONFIG_RTC_DRV_PCF8563=y
+# CONFIG_RTC_DRV_PCF8583 is not set
+CONFIG_RTC_DRV_M41T80=y
+# CONFIG_RTC_DRV_M41T80_WDT is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8010 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV8803 is not set
+
+#
+# SPI RTC drivers
+#
+# CONFIG_RTC_DRV_M41T93 is not set
+# CONFIG_RTC_DRV_M41T94 is not set
+# CONFIG_RTC_DRV_DS1302 is not set
+# CONFIG_RTC_DRV_DS1305 is not set
+# CONFIG_RTC_DRV_DS1343 is not set
+# CONFIG_RTC_DRV_DS1347 is not set
+# CONFIG_RTC_DRV_DS1390 is not set
+# CONFIG_RTC_DRV_MAX6916 is not set
+# CONFIG_RTC_DRV_R9701 is not set
+# CONFIG_RTC_DRV_RX4581 is not set
+# CONFIG_RTC_DRV_RX6110 is not set
+# CONFIG_RTC_DRV_RS5C348 is not set
+# CONFIG_RTC_DRV_MAX6902 is not set
+# CONFIG_RTC_DRV_PCF2123 is not set
+# CONFIG_RTC_DRV_MCP795 is not set
+CONFIG_RTC_I2C_AND_SPI=y
+
+#
+# SPI and I2C RTC drivers
+#
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_PCF2127 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
+
+#
+# Platform RTC drivers
+#
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1685_FAMILY is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
+# CONFIG_RTC_DRV_DA9052 is not set
+CONFIG_RTC_DRV_DA9063=y
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_ZYNQMP is not set
+
+#
+# on-CPU RTC drivers
+#
+# CONFIG_RTC_DRV_IMXDI is not set
+# CONFIG_RTC_DRV_FTRTC010 is not set
+CONFIG_RTC_DRV_MC13XXX=y
+CONFIG_RTC_DRV_MXC=y
+CONFIG_RTC_DRV_SNVS=y
+# CONFIG_RTC_DRV_R7301 is not set
+
+#
+# HID Sensor RTC drivers
+#
+# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DMA_OF=y
+# CONFIG_ALTERA_MSGDMA is not set
+CONFIG_FSL_EDMA=y
+# CONFIG_IMX_DMA is not set
+CONFIG_IMX_SDMA=y
+# CONFIG_INTEL_IDMA64 is not set
+CONFIG_MXS_DMA=y
+CONFIG_MX3_IPU=y
+CONFIG_MX3_IPU_IRQS=4
+# CONFIG_NBPFAXI_DMA is not set
+# CONFIG_QCOM_HIDMA_MGMT is not set
+# CONFIG_QCOM_HIDMA is not set
+# CONFIG_DW_DMAC is not set
+# CONFIG_DW_DMAC_PCI is not set
+
+#
+# DMA Clients
+#
+# CONFIG_ASYNC_TX_DMA is not set
+# CONFIG_DMATEST is not set
+
+#
+# DMABUF options
+#
+CONFIG_SYNC_FILE=y
+# CONFIG_SW_SYNC is not set
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_VFIO is not set
+# CONFIG_VIRT_DRIVERS is not set
+
+#
+# Virtio drivers
+#
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_MMIO is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# CONFIG_HYPERV_TSCPAGE is not set
+CONFIG_STAGING=y
+# CONFIG_IRDA is not set
+# CONFIG_PRISM2_USB is not set
+# CONFIG_COMEDI is not set
+# CONFIG_RTL8192U is not set
+# CONFIG_RTLLIB is not set
+# CONFIG_RTL8723BS is not set
+# CONFIG_R8712U is not set
+# CONFIG_R8188EU is not set
+# CONFIG_R8822BE is not set
+# CONFIG_RTS5208 is not set
+# CONFIG_VT6655 is not set
+# CONFIG_VT6656 is not set
+
+#
+# IIO staging drivers
+#
+
+#
+# Accelerometers
+#
+# CONFIG_ADIS16201 is not set
+# CONFIG_ADIS16203 is not set
+# CONFIG_ADIS16209 is not set
+# CONFIG_ADIS16240 is not set
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7606 is not set
+# CONFIG_AD7780 is not set
+# CONFIG_AD7816 is not set
+# CONFIG_AD7192 is not set
+# CONFIG_AD7280 is not set
+
+#
+# Analog digital bi-direction converters
+#
+# CONFIG_ADT7316 is not set
+
+#
+# Capacitance to digital converters
+#
+# CONFIG_AD7150 is not set
+# CONFIG_AD7152 is not set
+# CONFIG_AD7746 is not set
+
+#
+# Direct Digital Synthesis
+#
+# CONFIG_AD9832 is not set
+# CONFIG_AD9834 is not set
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16060 is not set
+
+#
+# Network Analyzer, Impedance Converters
+#
+# CONFIG_AD5933 is not set
+
+#
+# Light sensors
+#
+# CONFIG_TSL2x7x is not set
+
+#
+# Active energy metering IC
+#
+# CONFIG_ADE7753 is not set
+# CONFIG_ADE7754 is not set
+# CONFIG_ADE7758 is not set
+# CONFIG_ADE7759 is not set
+# CONFIG_ADE7854 is not set
+
+#
+# Resolver to digital converters
+#
+# CONFIG_AD2S90 is not set
+# CONFIG_AD2S1200 is not set
+# CONFIG_AD2S1210 is not set
+
+#
+# Triggers - standalone
+#
+# CONFIG_FB_SM750 is not set
+# CONFIG_FB_XGI is not set
+
+#
+# Speakup console speech
+#
+# CONFIG_SPEAKUP is not set
+CONFIG_STAGING_MEDIA=y
+CONFIG_VIDEO_IMX_MEDIA=y
+
+#
+# i.MX5/6 Media Sub devices
+#
+CONFIG_VIDEO_IMX_CSI=y
+
+#
+# Android
+#
+# CONFIG_STAGING_BOARD is not set
+# CONFIG_LTE_GDM724X is not set
+# CONFIG_MTD_SPINAND_MT29F is not set
+# CONFIG_LNET is not set
+# CONFIG_DGNC is not set
+# CONFIG_GS_FPGABOOT is not set
+# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set
+# CONFIG_FB_TFT is not set
+# CONFIG_WILC1000_SDIO is not set
+# CONFIG_WILC1000_SPI is not set
+# CONFIG_MOST is not set
+# CONFIG_KS7010 is not set
+# CONFIG_GREYBUS is not set
+# CONFIG_CRYPTO_DEV_CCREE is not set
+
+#
+# USB Power Delivery and Type-C drivers
+#
+# CONFIG_TYPEC_TCPM is not set
+# CONFIG_PI433 is not set
+# CONFIG_GOLDFISH is not set
+# CONFIG_CHROME_PLATFORMS is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+
+#
+# Common Clock Framework
+#
+# CONFIG_CLK_HSDK is not set
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+# CONFIG_CLK_QORIQ is not set
+# CONFIG_COMMON_CLK_NXP is not set
+CONFIG_COMMON_CLK_PWM=y
+# CONFIG_COMMON_CLK_PXA is not set
+# CONFIG_COMMON_CLK_PIC32 is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_HWSPINLOCK is not set
+
+#
+# Clock Source drivers
+#
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_ARM_ARCH_TIMER=y
+CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
+CONFIG_ARM_GLOBAL_TIMER=y
+# CONFIG_ARM_TIMER_SP804 is not set
+CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
+# CONFIG_ATMEL_PIT is not set
+# CONFIG_SH_TIMER_CMT is not set
+# CONFIG_SH_TIMER_MTU2 is not set
+# CONFIG_SH_TIMER_TMU is not set
+# CONFIG_EM_TIMER_STI is not set
+CONFIG_CLKSRC_IMX_GPT=y
+# CONFIG_MAILBOX is not set
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
+# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set
+CONFIG_OF_IOMMU=y
+# CONFIG_ARM_SMMU is not set
+
+#
+# Remoteproc drivers
+#
+# CONFIG_REMOTEPROC is not set
+
+#
+# Rpmsg drivers
+#
+
+#
+# SOC (System On Chip) specific Drivers
+#
+
+#
+# Amlogic SoC drivers
+#
+
+#
+# Broadcom SoC drivers
+#
+# CONFIG_SOC_BRCMSTB is not set
+
+#
+# i.MX SoC drivers
+#
+CONFIG_IMX7_PM_DOMAINS=y
+
+#
+# Qualcomm SoC drivers
+#
+# CONFIG_SUNXI_SRAM is not set
+# CONFIG_SOC_TI is not set
+# CONFIG_PM_DEVFREQ is not set
+CONFIG_EXTCON=y
+
+#
+# Extcon Device Drivers
+#
+# CONFIG_EXTCON_ADC_JACK is not set
+# CONFIG_EXTCON_GPIO is not set
+# CONFIG_EXTCON_MAX3355 is not set
+# CONFIG_EXTCON_RT8973A is not set
+# CONFIG_EXTCON_SM5502 is not set
+# CONFIG_EXTCON_USB_GPIO is not set
+# CONFIG_MEMORY is not set
+CONFIG_IIO=y
+CONFIG_IIO_BUFFER=y
+# CONFIG_IIO_BUFFER_CB is not set
+CONFIG_IIO_KFIFO_BUF=y
+CONFIG_IIO_TRIGGERED_BUFFER=y
+# CONFIG_IIO_CONFIGFS is not set
+CONFIG_IIO_TRIGGER=y
+CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
+# CONFIG_IIO_SW_DEVICE is not set
+# CONFIG_IIO_SW_TRIGGER is not set
+
+#
+# Accelerometers
+#
+# CONFIG_ADXL345_I2C is not set
+# CONFIG_ADXL345_SPI is not set
+# CONFIG_BMA180 is not set
+# CONFIG_BMA220 is not set
+# CONFIG_BMC150_ACCEL is not set
+# CONFIG_DA280 is not set
+# CONFIG_DA311 is not set
+# CONFIG_DMARD06 is not set
+# CONFIG_DMARD09 is not set
+# CONFIG_DMARD10 is not set
+# CONFIG_IIO_ST_ACCEL_3AXIS is not set
+# CONFIG_KXSD9 is not set
+# CONFIG_KXCJK1013 is not set
+# CONFIG_MC3230 is not set
+# CONFIG_MMA7455_I2C is not set
+# CONFIG_MMA7455_SPI is not set
+# CONFIG_MMA7660 is not set
+# CONFIG_MMA8452 is not set
+# CONFIG_MMA9551 is not set
+# CONFIG_MMA9553 is not set
+# CONFIG_MXC4005 is not set
+# CONFIG_MXC6255 is not set
+# CONFIG_SCA3000 is not set
+# CONFIG_STK8312 is not set
+# CONFIG_STK8BA50 is not set
+
+#
+# Analog to digital converters
+#
+# CONFIG_AD7266 is not set
+# CONFIG_AD7291 is not set
+# CONFIG_AD7298 is not set
+# CONFIG_AD7476 is not set
+# CONFIG_AD7766 is not set
+# CONFIG_AD7791 is not set
+# CONFIG_AD7793 is not set
+# CONFIG_AD7887 is not set
+# CONFIG_AD7923 is not set
+# CONFIG_AD799X is not set
+# CONFIG_CC10001_ADC is not set
+# CONFIG_ENVELOPE_DETECTOR is not set
+# CONFIG_HI8435 is not set
+# CONFIG_HX711 is not set
+# CONFIG_INA2XX_ADC is not set
+CONFIG_IMX7D_ADC=y
+# CONFIG_LTC2471 is not set
+# CONFIG_LTC2485 is not set
+# CONFIG_LTC2497 is not set
+# CONFIG_MAX1027 is not set
+# CONFIG_MAX11100 is not set
+# CONFIG_MAX1118 is not set
+CONFIG_MAX1363=y
+# CONFIG_MAX9611 is not set
+# CONFIG_MCP320X is not set
+# CONFIG_MCP3422 is not set
+# CONFIG_NAU7802 is not set
+# CONFIG_TI_ADC081C is not set
+# CONFIG_TI_ADC0832 is not set
+# CONFIG_TI_ADC084S021 is not set
+# CONFIG_TI_ADC12138 is not set
+# CONFIG_TI_ADC108S102 is not set
+# CONFIG_TI_ADC128S052 is not set
+# CONFIG_TI_ADC161S626 is not set
+# CONFIG_TI_ADS1015 is not set
+# CONFIG_TI_ADS7950 is not set
+# CONFIG_TI_ADS8688 is not set
+# CONFIG_TI_TLC4541 is not set
+CONFIG_VF610_ADC=y
+
+#
+# Amplifiers
+#
+# CONFIG_AD8366 is not set
+
+#
+# Chemical Sensors
+#
+# CONFIG_ATLAS_PH_SENSOR is not set
+# CONFIG_CCS811 is not set
+# CONFIG_IAQCORE is not set
+# CONFIG_VZ89X is not set
+
+#
+# Hid Sensor IIO Common
+#
+
+#
+# SSP Sensor Common
+#
+# CONFIG_IIO_SSP_SENSORHUB is not set
+
+#
+# Counters
+#
+
+#
+# Digital to analog converters
+#
+# CONFIG_AD5064 is not set
+# CONFIG_AD5360 is not set
+# CONFIG_AD5380 is not set
+# CONFIG_AD5421 is not set
+# CONFIG_AD5446 is not set
+# CONFIG_AD5449 is not set
+# CONFIG_AD5592R is not set
+# CONFIG_AD5593R is not set
+# CONFIG_AD5504 is not set
+# CONFIG_AD5624R_SPI is not set
+# CONFIG_LTC2632 is not set
+# CONFIG_AD5686 is not set
+# CONFIG_AD5755 is not set
+# CONFIG_AD5761 is not set
+# CONFIG_AD5764 is not set
+# CONFIG_AD5791 is not set
+# CONFIG_AD7303 is not set
+# CONFIG_AD8801 is not set
+# CONFIG_DPOT_DAC is not set
+# CONFIG_M62332 is not set
+# CONFIG_MAX517 is not set
+# CONFIG_MAX5821 is not set
+# CONFIG_MCP4725 is not set
+# CONFIG_MCP4922 is not set
+# CONFIG_VF610_DAC is not set
+
+#
+# IIO dummy driver
+#
+
+#
+# Frequency Synthesizers DDS/PLL
+#
+
+#
+# Clock Generator/Distribution
+#
+# CONFIG_AD9523 is not set
+
+#
+# Phase-Locked Loop (PLL) frequency synthesizers
+#
+# CONFIG_ADF4350 is not set
+
+#
+# Digital gyroscope sensors
+#
+# CONFIG_ADIS16080 is not set
+# CONFIG_ADIS16130 is not set
+# CONFIG_ADIS16136 is not set
+# CONFIG_ADIS16260 is not set
+# CONFIG_ADXRS450 is not set
+# CONFIG_BMG160 is not set
+# CONFIG_MPU3050_I2C is not set
+# CONFIG_IIO_ST_GYRO_3AXIS is not set
+# CONFIG_ITG3200 is not set
+
+#
+# Health Sensors
+#
+
+#
+# Heart Rate Monitors
+#
+# CONFIG_AFE4403 is not set
+# CONFIG_AFE4404 is not set
+# CONFIG_MAX30100 is not set
+# CONFIG_MAX30102 is not set
+
+#
+# Humidity sensors
+#
+# CONFIG_AM2315 is not set
+# CONFIG_DHT11 is not set
+# CONFIG_HDC100X is not set
+# CONFIG_HTS221 is not set
+# CONFIG_HTU21 is not set
+# CONFIG_SI7005 is not set
+# CONFIG_SI7020 is not set
+
+#
+# Inertial measurement units
+#
+# CONFIG_ADIS16400 is not set
+# CONFIG_ADIS16480 is not set
+# CONFIG_BMI160_I2C is not set
+# CONFIG_BMI160_SPI is not set
+# CONFIG_KMX61 is not set
+# CONFIG_INV_MPU6050_I2C is not set
+# CONFIG_INV_MPU6050_SPI is not set
+# CONFIG_IIO_ST_LSM6DSX is not set
+
+#
+# Light sensors
+#
+# CONFIG_ADJD_S311 is not set
+# CONFIG_AL3320A is not set
+# CONFIG_APDS9300 is not set
+# CONFIG_APDS9960 is not set
+# CONFIG_BH1750 is not set
+# CONFIG_BH1780 is not set
+# CONFIG_CM32181 is not set
+# CONFIG_CM3232 is not set
+# CONFIG_CM3323 is not set
+# CONFIG_CM3605 is not set
+# CONFIG_CM36651 is not set
+# CONFIG_GP2AP020A00F is not set
+# CONFIG_SENSORS_ISL29018 is not set
+# CONFIG_SENSORS_ISL29028 is not set
+# CONFIG_ISL29125 is not set
+# CONFIG_JSA1212 is not set
+# CONFIG_RPR0521 is not set
+# CONFIG_LTR501 is not set
+# CONFIG_MAX44000 is not set
+# CONFIG_OPT3001 is not set
+# CONFIG_PA12203001 is not set
+# CONFIG_SI1145 is not set
+# CONFIG_STK3310 is not set
+# CONFIG_TCS3414 is not set
+# CONFIG_TCS3472 is not set
+# CONFIG_SENSORS_TSL2563 is not set
+# CONFIG_TSL2583 is not set
+# CONFIG_TSL4531 is not set
+# CONFIG_US5182D is not set
+# CONFIG_VCNL4000 is not set
+# CONFIG_VEML6070 is not set
+# CONFIG_VL6180 is not set
+
+#
+# Magnetometer sensors
+#
+# CONFIG_AK8974 is not set
+# CONFIG_AK8975 is not set
+# CONFIG_AK09911 is not set
+# CONFIG_BMC150_MAGN_I2C is not set
+# CONFIG_BMC150_MAGN_SPI is not set
+# CONFIG_MAG3110 is not set
+# CONFIG_MMC35240 is not set
+# CONFIG_IIO_ST_MAGN_3AXIS is not set
+# CONFIG_SENSORS_HMC5843_I2C is not set
+# CONFIG_SENSORS_HMC5843_SPI is not set
+
+#
+# Multiplexers
+#
+# CONFIG_IIO_MUX is not set
+
+#
+# Inclinometer sensors
+#
+
+#
+# Triggers - standalone
+#
+# CONFIG_IIO_INTERRUPT_TRIGGER is not set
+# CONFIG_IIO_SYSFS_TRIGGER is not set
+
+#
+# Digital potentiometers
+#
+# CONFIG_DS1803 is not set
+# CONFIG_MAX5481 is not set
+# CONFIG_MAX5487 is not set
+# CONFIG_MCP4131 is not set
+# CONFIG_MCP4531 is not set
+# CONFIG_TPL0102 is not set
+
+#
+# Digital potentiostats
+#
+# CONFIG_LMP91000 is not set
+
+#
+# Pressure sensors
+#
+# CONFIG_ABP060MG is not set
+# CONFIG_BMP280 is not set
+# CONFIG_HP03 is not set
+# CONFIG_MPL115_I2C is not set
+# CONFIG_MPL115_SPI is not set
+CONFIG_MPL3115=y
+# CONFIG_MS5611 is not set
+# CONFIG_MS5637 is not set
+# CONFIG_IIO_ST_PRESS is not set
+# CONFIG_T5403 is not set
+# CONFIG_HP206C is not set
+# CONFIG_ZPA2326 is not set
+
+#
+# Lightning sensors
+#
+# CONFIG_AS3935 is not set
+
+#
+# Proximity and distance sensors
+#
+# CONFIG_LIDAR_LITE_V2 is not set
+# CONFIG_SRF04 is not set
+# CONFIG_SX9500 is not set
+# CONFIG_SRF08 is not set
+
+#
+# Temperature sensors
+#
+# CONFIG_MAXIM_THERMOCOUPLE is not set
+# CONFIG_MLX90614 is not set
+# CONFIG_TMP006 is not set
+# CONFIG_TMP007 is not set
+# CONFIG_TSYS01 is not set
+# CONFIG_TSYS02D is not set
+# CONFIG_NTB is not set
+# CONFIG_VME_BUS is not set
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+CONFIG_PWM_FSL_FTM=y
+CONFIG_PWM_IMX=y
+# CONFIG_PWM_PCA9685 is not set
+# CONFIG_PWM_STMPE is not set
+CONFIG_IRQCHIP=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GIC_MAX_NR=1
+# CONFIG_TS4800_IRQ is not set
+CONFIG_IMX_GPCV2=y
+# CONFIG_IPACK_BUS is not set
+CONFIG_ARCH_HAS_RESET_CONTROLLER=y
+CONFIG_RESET_CONTROLLER=y
+# CONFIG_RESET_ATH79 is not set
+# CONFIG_RESET_BERLIN is not set
+CONFIG_RESET_IMX7=y
+# CONFIG_RESET_LANTIQ is not set
+# CONFIG_RESET_LPC18XX is not set
+# CONFIG_RESET_MESON is not set
+# CONFIG_RESET_PISTACHIO is not set
+# CONFIG_RESET_SOCFPGA is not set
+# CONFIG_RESET_STM32 is not set
+# CONFIG_RESET_SUNXI is not set
+# CONFIG_RESET_TI_SYSCON is not set
+# CONFIG_RESET_ZYNQ is not set
+# CONFIG_RESET_TEGRA_BPMP is not set
+# CONFIG_FMC is not set
+
+#
+# PHY Subsystem
+#
+# CONFIG_GENERIC_PHY is not set
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_CPCAP_USB is not set
+# CONFIG_POWERCAP is not set
+# CONFIG_MCB is not set
+
+#
+# Performance monitor support
+#
+CONFIG_ARM_PMU=y
+CONFIG_RAS=y
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# CONFIG_DAX is not set
+CONFIG_NVMEM=y
+# CONFIG_NVMEM_IMX_IIM is not set
+CONFIG_NVMEM_IMX_OCOTP=y
+# CONFIG_NVMEM_VF610_OCOTP is not set
+# CONFIG_STM is not set
+# CONFIG_INTEL_TH is not set
+# CONFIG_FPGA is not set
+
+#
+# FSI support
+#
+# CONFIG_FSI is not set
+# CONFIG_TEE is not set
+CONFIG_MULTIPLEXER=y
+
+#
+# Multiplexer drivers
+#
+# CONFIG_MUX_ADG792A is not set
+# CONFIG_MUX_GPIO is not set
+CONFIG_MUX_MMIO=y
+
+#
+# Firmware Drivers
+#
+CONFIG_ARM_PSCI_FW=y
+# CONFIG_ARM_PSCI_CHECKER is not set
+# CONFIG_FIRMWARE_MEMMAP is not set
+# CONFIG_FW_CFG_SYSFS is not set
+CONFIG_HAVE_ARM_SMCCC=y
+# CONFIG_GOOGLE_FIRMWARE is not set
+
+#
+# Tegra firmware driver
+#
+
+#
+# File systems
+#
+CONFIG_DCACHE_WORD_ACCESS=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT2=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_ENCRYPTION is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+# CONFIG_F2FS_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=y
+# CONFIG_EXPORTFS_BLOCK_OPS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_MANDATORY_FILE_LOCKING=y
+# CONFIG_FS_ENCRYPTION is not set
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+# CONFIG_QUOTA_DEBUG is not set
+# CONFIG_QFMT_V1 is not set
+# CONFIG_QFMT_V2 is not set
+CONFIG_QUOTACTL=y
+CONFIG_AUTOFS4_FS=y
+CONFIG_FUSE_FS=y
+# CONFIG_CUSE is not set
+# CONFIG_OVERLAY_FS is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+# CONFIG_PROC_CHILDREN is not set
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_CONFIGFS_FS=m
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ORANGEFS_FS is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_ECRYPT_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+CONFIG_UBIFS_FS=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_ATIME_SUPPORT is not set
+# CONFIG_UBIFS_FS_ENCRYPTION is not set
+CONFIG_UBIFS_FS_SECURITY=y
+# CONFIG_CRAMFS is not set
+CONFIG_SQUASHFS=y
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
+# CONFIG_SQUASHFS_XATTR is not set
+CONFIG_SQUASHFS_ZLIB=y
+# CONFIG_SQUASHFS_LZ4 is not set
+# CONFIG_SQUASHFS_LZO is not set
+# CONFIG_SQUASHFS_XZ is not set
+# CONFIG_SQUASHFS_ZSTD is not set
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V2=y
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_SWAP is not set
+# CONFIG_NFS_V4_1 is not set
+CONFIG_ROOT_NFS=y
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFSD is not set
+CONFIG_GRACE_PERIOD=y
+CONFIG_LOCKD=y
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=y
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=y
+CONFIG_SUNRPC_GSS=y
+# CONFIG_SUNRPC_DEBUG is not set
+# CONFIG_CEPH_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+CONFIG_NLS_ISO8859_15=m
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_MAC_ROMAN is not set
+# CONFIG_NLS_MAC_CELTIC is not set
+# CONFIG_NLS_MAC_CENTEURO is not set
+# CONFIG_NLS_MAC_CROATIAN is not set
+# CONFIG_NLS_MAC_CYRILLIC is not set
+# CONFIG_NLS_MAC_GAELIC is not set
+# CONFIG_NLS_MAC_GREEK is not set
+# CONFIG_NLS_MAC_ICELAND is not set
+# CONFIG_NLS_MAC_INUIT is not set
+# CONFIG_NLS_MAC_ROMANIAN is not set
+# CONFIG_NLS_MAC_TURKISH is not set
+CONFIG_NLS_UTF8=y
+# CONFIG_DLM is not set
+
+#
+# Kernel hacking
+#
+
+#
+# printk and dmesg options
+#
+CONFIG_PRINTK_TIME=y
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+
+#
+# Compile-time checks and compiler options
+#
+# CONFIG_DEBUG_INFO is not set
+CONFIG_ENABLE_WARN_DEPRECATED=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_READABLE_ASM is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_PAGE_OWNER is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
+CONFIG_MAGIC_SYSRQ_SERIAL=y
+CONFIG_DEBUG_KERNEL=y
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_VM is not set
+CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+# CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Lockups and Hangs
+#
+# CONFIG_SOFTLOCKUP_DETECTOR is not set
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_WQ_WATCHDOG is not set
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=0
+# CONFIG_SCHED_DEBUG is not set
+# CONFIG_SCHED_INFO is not set
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_SCHED_STACK_END_CHECK is not set
+# CONFIG_DEBUG_TIMEKEEPING is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+# CONFIG_WW_MUTEX_SELFTEST is not set
+CONFIG_STACKTRACE=y
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_PI_LIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_PROVE_RCU is not set
+# CONFIG_TORTURE_TEST is not set
+# CONFIG_RCU_PERF_TEST is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=21
+CONFIG_RCU_TRACE=y
+# CONFIG_RCU_EQS_DEBUG is not set
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACE_CLOCK=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_DMA_API_DEBUG is not set
+
+#
+# Runtime Testing
+#
+# CONFIG_LKDTM is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_PERCPU_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_BITMAP is not set
+# CONFIG_TEST_UUID is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_HASH is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_SYSCTL is not set
+# CONFIG_TEST_UDELAY is not set
+# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_TEST_KMOD is not set
+# CONFIG_MEMTEST is not set
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set
+# CONFIG_UBSAN is not set
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+# CONFIG_STRICT_DEVMEM is not set
+# CONFIG_ARM_PTDUMP is not set
+# CONFIG_ARM_UNWIND is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_LL is not set
+CONFIG_DEBUG_IMX_UART_PORT=1
+CONFIG_DEBUG_VF_UART_PORT=1
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
+# CONFIG_DEBUG_UART_8250 is not set
+CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
+# CONFIG_PID_IN_CONTEXTIDR is not set
+# CONFIG_CORESIGHT is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_PERSISTENT_KEYRINGS is not set
+# CONFIG_BIG_KEYS is not set
+# CONFIG_ENCRYPTED_KEYS is not set
+# CONFIG_KEY_DH_OPERATIONS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+CONFIG_SECURITYFS=y
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+# CONFIG_HARDENED_USERCOPY is not set
+# CONFIG_STATIC_USERMODEHELPER is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=y
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_RNG_DEFAULT=y
+CONFIG_CRYPTO_AKCIPHER2=y
+CONFIG_CRYPTO_AKCIPHER=y
+CONFIG_CRYPTO_KPP2=y
+CONFIG_CRYPTO_KPP=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_RSA=y
+# CONFIG_CRYPTO_DH is not set
+CONFIG_CRYPTO_ECDH=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+# CONFIG_CRYPTO_USER is not set
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=y
+CONFIG_CRYPTO_NULL=y
+CONFIG_CRYPTO_NULL2=y
+# CONFIG_CRYPTO_PCRYPT is not set
+CONFIG_CRYPTO_WORKQUEUE=y
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_MCRYPTD is not set
+CONFIG_CRYPTO_AUTHENC=y
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=y
+CONFIG_CRYPTO_GCM=y
+# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
+CONFIG_CRYPTO_SEQIV=y
+CONFIG_CRYPTO_ECHAINIV=m
+
+#
+# Block modes
+#
+# CONFIG_CRYPTO_CBC is not set
+CONFIG_CRYPTO_CTR=y
+# CONFIG_CRYPTO_CTS is not set
+CONFIG_CRYPTO_ECB=y
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+# CONFIG_CRYPTO_KEYWRAP is not set
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_CMAC=y
+CONFIG_CRYPTO_HMAC=y
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_CRC32 is not set
+CONFIG_CRYPTO_CRCT10DIF=y
+CONFIG_CRYPTO_GHASH=y
+# CONFIG_CRYPTO_POLY1305 is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+CONFIG_CRYPTO_SHA256=y
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_SHA3 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_AES_TI is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_ARC4=y
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_CHACHA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_LZO=y
+# CONFIG_CRYPTO_842 is not set
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+CONFIG_CRYPTO_DRBG_MENU=y
+CONFIG_CRYPTO_DRBG_HMAC=y
+# CONFIG_CRYPTO_DRBG_HASH is not set
+# CONFIG_CRYPTO_DRBG_CTR is not set
+CONFIG_CRYPTO_DRBG=y
+CONFIG_CRYPTO_JITTERENTROPY=y
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+# CONFIG_CRYPTO_USER_API_RNG is not set
+# CONFIG_CRYPTO_USER_API_AEAD is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_HIFN_795X is not set
+CONFIG_CRYPTO_DEV_FSL_CAAM=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9
+# CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y
+CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y
+# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set
+CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC=y
+CONFIG_CRYPTO_DEV_SAHARA=y
+# CONFIG_CRYPTO_DEV_MXC_SCC is not set
+# CONFIG_CRYPTO_DEV_MXS_DCP is not set
+# CONFIG_ASYMMETRIC_KEY_TYPE is not set
+
+#
+# Certificates for signature checking
+#
+# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
+# CONFIG_ARM_CRYPTO is not set
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+# CONFIG_HAVE_ARCH_BITREVERSE is not set
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IO=y
+CONFIG_STMP_DEVICE=y
+CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=y
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC4 is not set
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+# CONFIG_CRC8 is not set
+# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_ASSOCIATIVE_ARRAY=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+# CONFIG_DMA_NOOP_OPS is not set
+# CONFIG_DMA_VIRT_OPS is not set
+CONFIG_CPU_RMAP=y
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_CLZ_TAB=y
+# CONFIG_CORDIC is not set
+# CONFIG_DDR is not set
+# CONFIG_IRQ_POLL is not set
+CONFIG_MPILIB=y
+CONFIG_LIBFDT=y
+CONFIG_OID_REGISTRY=y
+CONFIG_FONT_SUPPORT=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_6x10 is not set
+# CONFIG_FONT_10x18 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_SG_SPLIT is not set
+CONFIG_SG_POOL=y
+CONFIG_ARCH_HAS_SG_CHAIN=y
+CONFIG_SBITMAP=y
+# CONFIG_STRING_SELFTEST is not set
+# CONFIG_VIRTUALIZATION is not set
diff --git a/target/arm/kernel/qemu-arm-realview-eb-mpcore b/target/arm/kernel/qemu-arm-realview-eb-mpcore
index 9f967f4f2..acd059cc8 100644
--- a/target/arm/kernel/qemu-arm-realview-eb-mpcore
+++ b/target/arm/kernel/qemu-arm-realview-eb-mpcore
@@ -16,3 +16,4 @@ CONFIG_KUSER_HELPERS=y
CONFIG_ATAGS=y
CONFIG_CMDLINE="console=ttyAMA0 mem=128M"
CONFIG_CMDLINE_FROM_BOOTLOADER=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/arm/kernel/qemu-arm-spitz b/target/arm/kernel/qemu-arm-spitz
index 8ae5f01d4..259028d95 100644
--- a/target/arm/kernel/qemu-arm-spitz
+++ b/target/arm/kernel/qemu-arm-spitz
@@ -39,3 +39,9 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=y
CONFIG_HID=y
CONFIG_HID_GENERIC=y
+CONFIG_SERIAL_PXA=y
+CONFIG_SERIAL_PXA_NON8250=y
+CONFIG_SERIAL_PXA_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/arm/kernel/qemu-arm-terrier b/target/arm/kernel/qemu-arm-terrier
index 0b0100306..4a947ea14 100644
--- a/target/arm/kernel/qemu-arm-terrier
+++ b/target/arm/kernel/qemu-arm-terrier
@@ -39,3 +39,9 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_GENERIC=y
CONFIG_HID=y
CONFIG_HID_GENERIC=y
+CONFIG_SERIAL_PXA=y
+CONFIG_SERIAL_PXA_NON8250=y
+CONFIG_SERIAL_PXA_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/arm/kernel/qemu-arm-versatilepb b/target/arm/kernel/qemu-arm-versatilepb
index 968177c97..148fda569 100644
--- a/target/arm/kernel/qemu-arm-versatilepb
+++ b/target/arm/kernel/qemu-arm-versatilepb
@@ -1,5 +1,5 @@
CONFIG_ARM=y
-CONFIG_ARM_SINGLE_ARCH_VERSATILE=y
+CONFIG_ARM_SINGLE_ARM926=y
CONFIG_ARM_PATCH_PHYS_VIRT=y
CONFIG_ARCH_VERSATILE=y
CONFIG_KUSER_HELPERS=y
@@ -15,3 +15,4 @@ CONFIG_PLAT_VERSATILE_SCHED_CLOCK=y
CONFIG_PLAT_VERSATILE=y
CONFIG_VECTORS_BASE=0x00000000
CONFIG_PHYS_OFFSET=0x00000000
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/arm/kernel/qemu-arm-vexpress-a9 b/target/arm/kernel/qemu-arm-vexpress-a9
index 90541c644..b3953ad10 100644
--- a/target/arm/kernel/qemu-arm-vexpress-a9
+++ b/target/arm/kernel/qemu-arm-vexpress-a9
@@ -1,9 +1,27 @@
CONFIG_ARM=y
+CONFIG_ARCH_MULTIPLATFORM=y
CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_MULTI_V6_V7=y
CONFIG_ARCH_VEXPRESS=y
-CONFIG_KUSER_HELPERS=y
-CONFIG_ATAGS=y
+CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
+CONFIG_ARCH_VEXPRESS_DCSCB=y
+CONFIG_ARCH_VEXPRESS_SPC=y
+CONFIG_ARCH_VEXPRESS_TC2_PM=y
+CONFIG_PLAT_VERSATILE=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARM_THUMB=y
+CONFIG_ARM_VIRT_EXT=y
CONFIG_SWP_EMULATE=y
-CONFIG_CLKSRC_VERSATILE=y
+CONFIG_KUSER_HELPERS=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_ARM_AMBA=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_SYSCON=y
+CONFIG_MFD_VEXPRESS_SYSREG=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_VEXPRESS=y
CONFIG_CLK_SP810=y
CONFIG_CLK_VEXPRESS_OSC=y
+
+
diff --git a/target/arm/kernel/raspberry-pi3p b/target/arm/kernel/raspberry-pi3p
deleted file mode 100644
index 7928b3968..000000000
--- a/target/arm/kernel/raspberry-pi3p
+++ /dev/null
@@ -1,25 +0,0 @@
-CONFIG_ARM=y
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_ARCH_MULTIPLATFORM=y
-CONFIG_ARCH_MULTI_V7=y
-CONFIG_ARCH_MULTI_V6_V7=y
-CONFIG_ARCH_BCM=y
-CONFIG_ARCH_BCM2835=y
-CONFIG_VMSPLIT_2G=y
-CONFIG_PAGE_OFFSET=0x80000000
-CONFIG_KUSER_HELPERS=y
-CONFIG_ARM_AMBA=y
-CONFIG_BRCM_CHAR_DRIVERS=y
-CONFIG_BCM_VC_CMA=y
-CONFIG_BCM2708_VCMEM=y
-CONFIG_BCM_VCIO=y
-CONFIG_BCM_VC_SM=y
-CONFIG_BCMA=y
-CONFIG_BCMA_BLOCKIO=y
-CONFIG_BCM_VIDEOCORE=y
-CONFIG_BCM2835_VCHIQ=y
-CONFIG_MAILBOX=y
-CONFIG_BCM2835_MBOX=y
-CONFIG_RASPBERRYPI_POWER=y
-CONFIG_RASPBERRYPI_FIRMWARE=y
-CONFIG_STAGING=y
diff --git a/target/arm/kernel/raspberry-pi4 b/target/arm/kernel/raspberry-pi4
new file mode 100644
index 000000000..77c23a997
--- /dev/null
+++ b/target/arm/kernel/raspberry-pi4
@@ -0,0 +1,42 @@
+CONFIG_ARM=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARCH_MULTIPLATFORM=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_MULTI_V6_V7=y
+CONFIG_ARCH_BCM=y
+CONFIG_ARCH_BCM2835=y
+CONFIG_VMSPLIT_2G=y
+CONFIG_PAGE_OFFSET=0x80000000
+CONFIG_KUSER_HELPERS=y
+CONFIG_ARM_AMBA=y
+CONFIG_BRCM_CHAR_DRIVERS=y
+CONFIG_BCM_VC_CMA=y
+CONFIG_BCM2708_VCMEM=y
+CONFIG_BCM_VCIO=y
+CONFIG_BCM_VC_SM=y
+CONFIG_BCMA=y
+CONFIG_BCMA_BLOCKIO=y
+CONFIG_BCM_VIDEOCORE=y
+CONFIG_BCM2835_VCHIQ=y
+CONFIG_MAILBOX=y
+CONFIG_BCM2835_MBOX=y
+CONFIG_RASPBERRYPI_POWER=y
+CONFIG_RASPBERRYPI_FIRMWARE=y
+CONFIG_CLK_BCM2711_DVP=y
+CONFIG_CLK_BCM2835=y
+CONFIG_CLK_RASPBERRYPI=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=y
+CONFIG_GPIO_RASPBERRYPI_EXP=y
+CONFIG_GPIO_BCM_VIRT=y
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GPIO_STMPE=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_LEDS_PWM=y
diff --git a/target/arm/kernel/solidrun-imx6 b/target/arm/kernel/solidrun-imx6
index 1a694f75c..f0a223861 100644
--- a/target/arm/kernel/solidrun-imx6
+++ b/target/arm/kernel/solidrun-imx6
@@ -3,11 +3,22 @@ CONFIG_ARM_PATCH_PHYS_VIRT=y
CONFIG_ARCH_MULTI_V7=y
CONFIG_ARCH_MXC=y
CONFIG_ARCH_MX6=y
+CONFIG_SOC_IMX6=y
CONFIG_SOC_IMX6Q=y
CONFIG_SOC_IMX6SL=y
+CONFIG_SOC_IMX6SLL=y
+CONFIG_SOC_IMX6SX=y
+CONFIG_SOC_IMX6UL=y
CONFIG_LOCAL_TIMERS=y
-CONFIG_MXC_DEBUG_BOARD=y
CONFIG_KUSER_HELPERS=y
-CONFIG_PM_SLEEP=y
CONFIG_ATAGS=y
CONFIG_CMDLINE_FORCE=y
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
+CONFIG_FIQ=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_USE_OF=y
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_ATAGS_PROC=y
+CONFIG_AUTO_ZRELADDR=y
diff --git a/target/arm/kernel/st-stm32f429 b/target/arm/kernel/st-stm32f429
index 32c1a786c..e4fb77989 100644
--- a/target/arm/kernel/st-stm32f429
+++ b/target/arm/kernel/st-stm32f429
@@ -1,5 +1,6 @@
CONFIG_ARM_SINGLE_ARMV7M=y
CONFIG_ARCH_STM32=y
+CONFIG_MACH_STM32F429=y
CONFIG_SET_MEM_PARAM=y
CONFIG_DRAM_BASE=0x90000000
CONFIG_FLASH_MEM_BASE=0x08000000
diff --git a/target/arm/kernel/st-stm32f746g b/target/arm/kernel/st-stm32f746g
new file mode 100644
index 000000000..7c8375059
--- /dev/null
+++ b/target/arm/kernel/st-stm32f746g
@@ -0,0 +1,28 @@
+CONFIG_ARM_SINGLE_ARMV7M=y
+CONFIG_ARCH_STM32=y
+CONFIG_MACH_STM32F746=y
+CONFIG_SET_MEM_PARAM=y
+CONFIG_DRAM_BASE=0xC0000000
+CONFIG_DRAM_SIZE=0x01000000
+CONFIG_FLASH_MEM_BASE=0x08000000
+CONFIG_FLASH_SIZE=0x00200000
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_STM32=y
+CONFIG_SERIAL_STM32_CONSOLE=y
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_STM32F4=y
+CONFIG_I2C_STM32F7=y
+CONFIG_GPIO_STMPE=y
+CONFIG_MFD_STMPE=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_ARMMMCI=y
+CONFIG_MMC_STM32_SDMMC=y
+CONFIG_DMADEVICES=y
+CONFIG_STM32_DMA=y
+CONFIG_STM32_DMAMUX=y
+CONFIG_STM32_MDMA=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/arm/kernel/synology-ds414 b/target/arm/kernel/synology-ds414
new file mode 100644
index 000000000..e09864fc3
--- /dev/null
+++ b/target/arm/kernel/synology-ds414
@@ -0,0 +1,115 @@
+CONFIG_ARM=y
+CONFIG_MMU=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_MVEBU=y
+CONFIG_MACH_ARMADA_XP=y
+CONFIG_KERNEL_LZMA=y
+CONFIG_VMSPLIT_3G_OPT=y
+CONFIG_BLOCK=y
+CONFIG_ARM_THUMB=y
+CONFIG_KUSER_HELPERS=y
+CONFIG_CACHE_FEROCEON_L2=y
+CONFIG_PCI=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MVEBU=y
+CONFIG_SMP=y
+CONFIG_ARM_CPU_TOPOLOGY=y
+CONFIG_SCHED_MC=y
+CONFIG_NR_CPUS=2
+CONFIG_AEABI=y
+CONFIG_USE_OF=y
+CONFIG_ATAGS=y
+CONFIG_DEPRECATED_PARAM_STRUCT=y
+CONFIG_ARM_APPENDED_DTB=y
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+CONFIG_CMDLINE_EXTEND=y
+CONFIG_NEON=y
+CONFIG_BINFMT_ELF=y
+CONFIG_NET=y
+CONFIG_INET=y
+CONFIG_MVEBU_MBUS=y
+CONFIG_MTD=y
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_M25P80=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+CONFIG_DTC=y
+CONFIG_OF=y
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_ATA=y
+CONFIG_SATA_AHCI=y
+CONFIG_ATA_SFF=y
+CONFIG_ATA_BMDMA=y
+CONFIG_SATA_MV=y
+CONFIG_NETDEVICES=y
+CONFIG_NET_CORE=y
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_MVNETA=y
+CONFIG_PHYLIB=y
+CONFIG_MARVELL_PHY=y
+CONFIG_INPUT=y
+CONFIG_SERIO=y
+CONFIG_TTY=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=2
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_8250_EM=y
+CONFIG_I2C=y
+CONFIG_I2C_MV64XXX=y
+CONFIG_SPI=y
+CONFIG_SPI_ORION=y
+CONFIG_PINCTRL_ARMADA_XP=y
+CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_HWMON=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_OF=y
+CONFIG_ARMADA_THERMAL=y
+CONFIG_WATCHDOG=y
+CONFIG_ORION_WATCHDOG=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB=y
+CONFIG_USB_PCI=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_ORION=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_MV_UDC=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+CONFIG_USB_DEFAULT_PERSIST=y
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+CONFIG_LEDS_GPIO=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_MV=y
+CONFIG_DMADEVICES=y
+CONFIG_MV_XOR=y
+CONFIG_ARMADA_XP_CLK=y
+CONFIG_ARMADA_370_XP_TIMER=y
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_DEV_MARVELL_CESA=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_CRYPTO_SHA1_ARM=y
+CONFIG_CRYPTO_SHA256_ARM=y
+CONFIG_CRYPTO_SHA512_ARM=y
+CONFIG_CRYPTO_AES_ARM=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_USERSPACE_CONSUMER=y
+CONFIG_REGULATOR_GPIO=y
+CONFIG_PINCTRL_SINGLE=y
diff --git a/target/arm/st-stm32f746g/extlinux.conf b/target/arm/st-stm32f746g/extlinux.conf
new file mode 100644
index 000000000..9a6728417
--- /dev/null
+++ b/target/arm/st-stm32f746g/extlinux.conf
@@ -0,0 +1,4 @@
+label stm32f746g-disco-openadk
+ kernel /kernel
+ devicetree /stm32f746-disco.dtb
+ append console=ttySTM0,115200 root=/dev/mmcblk0p2 rw rootwait consoleblank=0
diff --git a/target/arm/st-stm32f746g/genimage.cfg b/target/arm/st-stm32f746g/genimage.cfg
new file mode 100644
index 000000000..8cd0530ae
--- /dev/null
+++ b/target/arm/st-stm32f746g/genimage.cfg
@@ -0,0 +1,27 @@
+image boot.vfat {
+ vfat {
+ files = {
+ "kernel",
+ "stm32f746-disco.dtb",
+ "extlinux"
+ }
+ }
+
+ size = 16M
+}
+
+image sdcard.img {
+ hdimage {
+ }
+
+ partition boot {
+ partition-type = 0xC
+ image = "boot.vfat"
+ }
+
+ partition rootfs {
+ partition-type = 0x83
+ image = "rootfs.ext"
+ size = 64M
+ }
+}
diff --git a/target/arm/systems/banana-p2-zero b/target/arm/systems/banana-p2-zero
new file mode 100644
index 000000000..8fd4c9f95
--- /dev/null
+++ b/target/arm/systems/banana-p2-zero
@@ -0,0 +1,25 @@
+config ADK_TARGET_SYSTEM_BANANA_P2_ZERO
+ bool "Banana P2 zero"
+ depends on ADK_TARGET_OS_LINUX
+ select ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_CPU_ARM_CORTEX_A7
+ select ADK_TARGET_CPU_WITH_NEON
+ select ADK_TARGET_WITH_VGA
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_CPU_FREQ
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_SD
+ select ADK_TARGET_WITH_SDIO
+ select ADK_TARGET_WITH_I2C
+ select ADK_TARGET_WITH_SPI
+ select ADK_TARGET_WITH_SMP
+ select ADK_TARGET_WITH_ROOT_RW
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
+ select ADK_TARGET_WITH_BLOCK
+ select ADK_TARGET_KERNEL_ZIMAGE
+ select ADK_PACKAGE_U_BOOT
+ select ADK_HOST_BUILD_U_BOOT
+ help
+ Banana PI M2 Zero with Allwinner H3
+
diff --git a/target/arm/systems/banana-pro b/target/arm/systems/banana-pro
index 9af9ba68f..6a82e0c11 100644
--- a/target/arm/systems/banana-pro
+++ b/target/arm/systems/banana-pro
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_BANANA_PRO
bool "Banana Pro"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_CORTEX_A7
select ADK_TARGET_CPU_WITH_NEON
diff --git a/target/arm/systems/beaglebone-black b/target/arm/systems/beaglebone-black
index 28102411f..3332d7a4d 100644
--- a/target/arm/systems/beaglebone-black
+++ b/target/arm/systems/beaglebone-black
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
bool "BeagleBone Black"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_CORTEX_A8
select ADK_TARGET_CPU_WITH_NEON
diff --git a/target/arm/systems/kinetis-k70 b/target/arm/systems/kinetis-k70
index 419bf6b23..624c8874e 100644
--- a/target/arm/systems/kinetis-k70
+++ b/target/arm/systems/kinetis-k70
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_KINETIS_K70
bool "Kinetis K70"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_CORTEX_M3
select ADK_TARGET_ARCH_ARM_WITH_THUMB
diff --git a/target/arm/systems/linksys-nslu2 b/target/arm/systems/linksys-nslu2
index 65d9b1420..72f55eadd 100644
--- a/target/arm/systems/linksys-nslu2
+++ b/target/arm/systems/linksys-nslu2
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_LINKSYS_NSLU2
bool "Linksys NSLU2"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_BIG_ENDIAN
select ADK_TARGET_CPU_ARM_XSCALE
select ADK_TARGET_WITH_USB
diff --git a/target/arm/systems/orange-pi0 b/target/arm/systems/orange-pi0
index 1ec19ecb4..557e78bd1 100644
--- a/target/arm/systems/orange-pi0
+++ b/target/arm/systems/orange-pi0
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_ORANGE_PI0
bool "Orange PI Zero"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_CORTEX_A7
select ADK_TARGET_CPU_WITH_NEON
diff --git a/target/arm/systems/pcduino-3b b/target/arm/systems/pcduino-3b
new file mode 100644
index 000000000..71763d2e1
--- /dev/null
+++ b/target/arm/systems/pcduino-3b
@@ -0,0 +1,20 @@
+config ADK_TARGET_SYSTEM_PCDUINO_3B
+ bool "PCduino 3b"
+ depends on ADK_TARGET_OS_LINUX
+ select ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_CPU_ARM_CORTEX_A7
+ select ADK_TARGET_WITH_VGA
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_INPUT
+ select ADK_TARGET_WITH_SD
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
+ select ADK_TARGET_WITH_BLOCK
+ select ADK_TARGET_KERNEL_IMAGE
+ select ADK_PACKAGE_U_BOOT
+ help
+ PCduino 3b
+
+
diff --git a/target/arm/systems/phytec-imx6 b/target/arm/systems/phytec-imx6
new file mode 100644
index 000000000..20621c88e
--- /dev/null
+++ b/target/arm/systems/phytec-imx6
@@ -0,0 +1,27 @@
+config ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ bool "Phytec i.MX6"
+ depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ select ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_CPU_ARM_CORTEX_A9
+ select ADK_TARGET_WITH_VGA
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_PCI
+ select ADK_TARGET_WITH_CPU_FREQ
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_SD
+ select ADK_TARGET_WITH_I2C
+ select ADK_TARGET_WITH_SPI
+ select ADK_TARGET_WITH_SOUND
+ select ADK_TARGET_WITH_LEDS
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
+ select ADK_TARGET_WITH_BLOCK
+ select ADK_TARGET_WITH_WATCHDOG
+ select ADK_TARGET_KERNEL_WITH_COMPRESSION
+ select ADK_TARGET_KERNEL_ZIMAGE if !ADK_TARGET_KERNEL_VERSION_FSLC
+ select ADK_TARGET_WITH_ROOT_RW
+ select ADK_PACKAGE_U_BOOT
+ help
+ Phytec i.MX6 wget http://anduin.linuxfromscratch.org/BLFS/linux-firmware/imx/sdma/sdma-imx6q.bin
+ wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/imx/sdma/sdma-imx6q.bin
+
diff --git a/target/arm/systems/phytec-wega b/target/arm/systems/phytec-wega
index 29b41a034..dad4d315d 100644
--- a/target/arm/systems/phytec-wega
+++ b/target/arm/systems/phytec-wega
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_PHYTEC_WEGA
bool "Phytec Wega"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_CORTEX_A8
select ADK_TARGET_WITH_VGA
diff --git a/target/arm/systems/qemu-arm-lm3s6965evb b/target/arm/systems/qemu-arm-lm3s6965evb
deleted file mode 100644
index a567034cd..000000000
--- a/target/arm/systems/qemu-arm-lm3s6965evb
+++ /dev/null
@@ -1,16 +0,0 @@
-config ADK_TARGET_SYSTEM_QEMU_ARM_LM3S6965EVB
- bool "Qemu Emulator (lm3s6965evb)"
- depends on ADK_TARGET_OS_FROSTED
- select ADK_TARGET_LITTLE_ENDIAN
- select ADK_TARGET_CPU_ARM_CORTEX_M3
- select ADK_TARGET_ARCH_ARM_WITH_THUMB
- select ADK_TARGET_QEMU
- select ADK_FROSTED_ARCH_LM3SVIRT
- select ADK_FROSTED_KFLASHMEM_SIZE 128
- select ADK_FROSTED_KRAMMEM_SIZE 128
- select ADK_FROSTED_TASK_STACK_SIZE_4K
- select ADK_FROSTED_USART_0
- select ADK_FROSTED_MEMFS
- help
- Qemu Emulator for ARM architecture (lm3s6965evb) without MMU.
-
diff --git a/target/arm/systems/qemu-arm-realview-eb-mpcore b/target/arm/systems/qemu-arm-realview-eb-mpcore
index abf23cab6..e38cc4c68 100644
--- a/target/arm/systems/qemu-arm-realview-eb-mpcore
+++ b/target/arm/systems/qemu-arm-realview-eb-mpcore
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE
bool "Qemu Emulator (Realview/EB-Mpcore)"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_ARM11MPCORE
select ADK_TARGET_QEMU
diff --git a/target/arm/systems/qemu-arm-spitz b/target/arm/systems/qemu-arm-spitz
index 3eb9564de..d97c5868e 100644
--- a/target/arm/systems/qemu-arm-spitz
+++ b/target/arm/systems/qemu-arm-spitz
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
bool "Qemu Emulator (Spitz PDA)"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_XSCALE
select ADK_TARGET_QEMU
diff --git a/target/arm/systems/qemu-arm-terrier b/target/arm/systems/qemu-arm-terrier
index 135b9e7e8..2fe25fc0f 100644
--- a/target/arm/systems/qemu-arm-terrier
+++ b/target/arm/systems/qemu-arm-terrier
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER
bool "Qemu Emulator (Terrier PDA)"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_XSCALE
select ADK_TARGET_QEMU
diff --git a/target/arm/systems/qemu-arm-versatilepb b/target/arm/systems/qemu-arm-versatilepb
index 95347eabc..b04d1a331 100644
--- a/target/arm/systems/qemu-arm-versatilepb
+++ b/target/arm/systems/qemu-arm-versatilepb
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB
bool "Qemu Emulator (Versatile/PB)"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_ARM926EJ_S
select ADK_TARGET_QEMU
diff --git a/target/arm/systems/qemu-arm-vexpress-a9 b/target/arm/systems/qemu-arm-vexpress-a9
index 2f6f173d3..5c08f38b8 100644
--- a/target/arm/systems/qemu-arm-vexpress-a9
+++ b/target/arm/systems/qemu-arm-vexpress-a9
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
bool "Qemu Emulator (Vexpress A9)"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_CORTEX_A9
select ADK_TARGET_QEMU
diff --git a/target/arm/systems/qemu-arm-xilinx-zynq b/target/arm/systems/qemu-arm-xilinx-zynq
index b3a2e1348..08133822a 100644
--- a/target/arm/systems/qemu-arm-xilinx-zynq
+++ b/target/arm/systems/qemu-arm-xilinx-zynq
@@ -1,7 +1,8 @@
config ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
bool "Qemu Emulator (Xilinx Zynq)"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_CPU_ARM_CORTEX_A9
+ select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_QEMU
select ADK_TARGET_KERNEL_ZIMAGE
select ADK_TARGET_KERNEL_WITH_COMPRESSION
diff --git a/target/arm/systems/raspberry-pi b/target/arm/systems/raspberry-pi
index 35eb2f1ef..7dae1c658 100644
--- a/target/arm/systems/raspberry-pi
+++ b/target/arm/systems/raspberry-pi
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_RASPBERRY_PI
bool "Raspberry PI"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_ARM1176JZF_S
select ADK_TARGET_BOARD_BCM28XX
diff --git a/target/arm/systems/raspberry-pi0 b/target/arm/systems/raspberry-pi0
index 255825294..26b7fa671 100644
--- a/target/arm/systems/raspberry-pi0
+++ b/target/arm/systems/raspberry-pi0
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_RASPBERRY_PI0
bool "Raspberry PI Zero W"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_ARM1176JZF_S
select ADK_TARGET_BOARD_BCM28XX
diff --git a/target/arm/systems/raspberry-pi2 b/target/arm/systems/raspberry-pi2
index 38a8738a5..d2dedf7eb 100644
--- a/target/arm/systems/raspberry-pi2
+++ b/target/arm/systems/raspberry-pi2
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_RASPBERRY_PI2
bool "Raspberry PI 2"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_CORTEX_A7
select ADK_TARGET_BOARD_BCM28XX
diff --git a/target/arm/systems/raspberry-pi3 b/target/arm/systems/raspberry-pi3
index f11459c66..67af3340c 100644
--- a/target/arm/systems/raspberry-pi3
+++ b/target/arm/systems/raspberry-pi3
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_RASPBERRY_PI3
bool "Raspberry PI 3"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_WITH_MMU
select ADK_TARGET_CPU_ARM_CORTEX_A53
diff --git a/target/arm/systems/raspberry-pi3p b/target/arm/systems/raspberry-pi3p
deleted file mode 100644
index 98539ce2e..000000000
--- a/target/arm/systems/raspberry-pi3p
+++ /dev/null
@@ -1,27 +0,0 @@
-config ADK_TARGET_SYSTEM_RASPBERRY_PI3P
- bool "Raspberry PI 3 Model B+"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
- select ADK_TARGET_LITTLE_ENDIAN
- select ADK_TARGET_CPU_ARM_CORTEX_A53
- select ADK_TARGET_BOARD_BCM28XX
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_SERIAL
- select ADK_TARGET_WITH_CPU_FREQ
- select ADK_TARGET_WITH_USB
- select ADK_TARGET_WITH_INPUT
- select ADK_TARGET_WITH_SD
- select ADK_TARGET_WITH_I2C
- select ADK_TARGET_WITH_SPI
- select ADK_TARGET_WITH_SMP
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_WITH_WIFI
- select ADK_TARGET_WITH_BLOCK
- select ADK_TARGET_WITH_SOUND
- select ADK_TARGET_WITH_SDIO
- select ADK_PACKAGE_BCM28XX_BOOTLOADER
- select ADK_TARGET_WITH_ROOT_RW
- select ADK_TARGET_KERNEL_IMAGE
- help
- Raspberry PI 3 Model B+
-
diff --git a/target/arm/systems/raspberry-pi4 b/target/arm/systems/raspberry-pi4
new file mode 100644
index 000000000..6f36bf036
--- /dev/null
+++ b/target/arm/systems/raspberry-pi4
@@ -0,0 +1,27 @@
+config ADK_TARGET_SYSTEM_RASPBERRY_PI4
+ bool "Raspberry PI 4"
+ depends on ADK_TARGET_OS_LINUX
+ select ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_CPU_ARM_CORTEX_A72
+ select ADK_TARGET_BOARD_BCM28XX
+ select ADK_TARGET_WITH_VGA
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_CPU_FREQ
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_INPUT
+ select ADK_TARGET_WITH_SD
+ select ADK_TARGET_WITH_I2C
+ select ADK_TARGET_WITH_SPI
+ select ADK_TARGET_WITH_SMP
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
+ select ADK_TARGET_WITH_WIFI
+ select ADK_TARGET_WITH_BLOCK
+ select ADK_TARGET_WITH_SOUND
+ select ADK_TARGET_WITH_SDIO
+ select ADK_PACKAGE_BCM28XX_BOOTLOADER
+ select ADK_TARGET_WITH_ROOT_RW
+ select ADK_TARGET_KERNEL_IMAGE
+ help
+ Raspberry PI 4
+
diff --git a/target/arm/systems/sharp-zaurus b/target/arm/systems/sharp-zaurus
index b791767ef..435d08101 100644
--- a/target/arm/systems/sharp-zaurus
+++ b/target/arm/systems/sharp-zaurus
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_SHARP_ZAURUS
bool "Sharp Zaurus CL3200 (Terrier)"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_XSCALE
select ADK_TARGET_CPU_WITH_IWMMXT
diff --git a/target/arm/systems/solidrun-clearfog b/target/arm/systems/solidrun-clearfog
index 2dc20a1d7..5c6942e38 100644
--- a/target/arm/systems/solidrun-clearfog
+++ b/target/arm/systems/solidrun-clearfog
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
bool "Solidrun Clearfog Embedded Systems"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_CORTEX_A9
select ADK_TARGET_WITH_SMP
diff --git a/target/arm/systems/solidrun-imx6 b/target/arm/systems/solidrun-imx6
index edc3b4b98..957c21a71 100644
--- a/target/arm/systems/solidrun-imx6
+++ b/target/arm/systems/solidrun-imx6
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
bool "Solidrun IMX6 Embedded Systems"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_CORTEX_A9
select ADK_TARGET_WITH_VGA
diff --git a/target/arm/systems/st-stm32f407-discovery b/target/arm/systems/st-stm32f407-discovery
deleted file mode 100644
index 44ff39904..000000000
--- a/target/arm/systems/st-stm32f407-discovery
+++ /dev/null
@@ -1,22 +0,0 @@
-config ADK_TARGET_SYSTEM_ST_STM32F407_DISCOVERY
- bool "STMicroelectronics STM32F407 Discovery"
- depends on ADK_TARGET_OS_FROSTED
- select ADK_TARGET_LITTLE_ENDIAN
- select ADK_TARGET_CPU_ARM_CORTEX_M4
- select ADK_TARGET_ARCH_ARM_WITH_THUMB
- select ADK_TARGET_WITH_SERIAL
- select ADK_HOST_BUILD_STLINK
- select ADK_FROSTED_ARCH_STM32F4
- select ADK_FROSTED_ARCH_STM32F407_XG
- select ADK_FROSTED_FLASH_SIZE_1MB
- select ADK_FROSTED_RAM_SIZE_192KB
- select ADK_FROSTED_ARCH_STM32F407
- select ADK_FROSTED_MACH_STM32F407Discovery
- select ADK_FROSTED_USART_2
- select ADK_FROSTED_KFLASHMEM_SIZE 192
- select ADK_FROSTED_KRAMMEM_SIZE 128
- select ADK_FROSTED_TASK_STACK_SIZE_4K
- select ADK_FROSTED_CLK_168MHZ
- help
- STMicroelectronics STM32F407 Discovery
-
diff --git a/target/arm/systems/st-stm32f429 b/target/arm/systems/st-stm32f429
index d13b1150b..64825381a 100644
--- a/target/arm/systems/st-stm32f429
+++ b/target/arm/systems/st-stm32f429
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_ST_STM32F429
bool "STMicroelectronics STM32F429"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_CORTEX_M4
select ADK_TARGET_ARCH_ARM_WITH_THUMB
diff --git a/target/arm/systems/st-stm32f429-discovery b/target/arm/systems/st-stm32f429-discovery
deleted file mode 100644
index 57b5c0220..000000000
--- a/target/arm/systems/st-stm32f429-discovery
+++ /dev/null
@@ -1,22 +0,0 @@
-config ADK_TARGET_SYSTEM_ST_STM32F429_DISCOVERY
- bool "STMicroelectronics STM32F429 Discovery"
- depends on ADK_TARGET_OS_FROSTED
- select ADK_TARGET_LITTLE_ENDIAN
- select ADK_TARGET_CPU_ARM_CORTEX_M4
- select ADK_TARGET_ARCH_ARM_WITH_THUMB
- select ADK_TARGET_WITH_SERIAL
- select ADK_HOST_BUILD_STLINK
- select ADK_FROSTED_ARCH_STM32F4
- select ADK_FROSTED_ARCH_STM32F429_XI
- select ADK_FROSTED_FLASH_SIZE_2MB
- select ADK_FROSTED_RAM_SIZE_256KB
- select ADK_FORSTED_ARCH_STM32F429
- select ADK_FROSTED_USART_1
- select ADK_FROSTED_KFLASHMEM_SIZE 128
- select ADK_FROSTED_KRAMMEM_SIZE 64
- select ADK_FROSTED_TASK_STACK_SIZE_2K
- select ADK_FROSTED_CLK_168MHZ
- select ADK_FROSTED_MPU
- help
- STMicroelectronics STM32F429 Discovery
-
diff --git a/target/arm/systems/st-stm32f746g b/target/arm/systems/st-stm32f746g
new file mode 100644
index 000000000..4b87b9340
--- /dev/null
+++ b/target/arm/systems/st-stm32f746g
@@ -0,0 +1,14 @@
+config ADK_TARGET_SYSTEM_ST_STM32F746G
+ bool "STMicroelectronics STM32F746G Disco"
+ depends on ADK_TARGET_OS_LINUX
+ select ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_CPU_ARM_CORTEX_M7
+ select ADK_TARGET_ARCH_ARM_WITH_THUMB
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_UCLINUX
+ select ADK_TARGET_KERNEL_WITH_COMPRESSION
+ select ADK_TARGET_KERNEL_ZIMAGE
+ select ADK_HOST_BUILD_OPENOCD
+ help
+ STMicroelectronics STM32F746G Disco
+
diff --git a/target/arm/systems/st-stm32f769 b/target/arm/systems/st-stm32f769
index 11dad65c3..b0fc0f00f 100644
--- a/target/arm/systems/st-stm32f769
+++ b/target/arm/systems/st-stm32f769
@@ -1,6 +1,6 @@
config ADK_TARGET_SYSTEM_ST_STM32F769
bool "STMicroelectronics STM32F769"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
select ADK_TARGET_LITTLE_ENDIAN
select ADK_TARGET_CPU_ARM_CORTEX_M7
select ADK_TARGET_HARD_FLOAT_DP
diff --git a/target/arm/systems/synology-ds414 b/target/arm/systems/synology-ds414
new file mode 100644
index 000000000..24f4addc3
--- /dev/null
+++ b/target/arm/systems/synology-ds414
@@ -0,0 +1,20 @@
+config ADK_TARGET_SYSTEM_SYNOLOGY_DS414
+ bool "Synology DS414"
+ select ADK_TARGET_CPU_ARM_MVEBU
+ select ADK_TARGET_LITTLE_ENDIAN
+ select ADK_TARGET_KERNEL_UIMAGE
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_CPU_FREQ
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_SD
+ select ADK_TARGET_WITH_I2C
+ select ADK_TARGET_WITH_SPI
+ select ADK_TARGET_WITH_LEDS
+ select ADK_TARGET_WITH_WATCHDOG
+ select ADK_TARGET_WITH_SMP
+ select ADK_TARGET_WITH_ROOT_RW
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
+ select ADK_TARGET_WITH_BLOCK
+ help
+ The DS414 is a four-slot NAS featuring a Marvell ArmadaXP SoC.
diff --git a/target/arm/uclibc-ng-nommu.config b/target/arm/uclibc-ng-nommu.config
new file mode 100644
index 000000000..45db787b4
--- /dev/null
+++ b/target/arm/uclibc-ng-nommu.config
@@ -0,0 +1,234 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# uClibc-ng 1.0.45 C Library Configuration
+#
+# TARGET_aarch64 is not set
+# TARGET_alpha is not set
+# TARGET_arc is not set
+TARGET_arm=y
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_c6x is not set
+# TARGET_cris is not set
+# TARGET_csky is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_ia64 is not set
+# TARGET_kvx is not set
+# TARGET_lm32 is not set
+# TARGET_m68k is not set
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nds32 is not set
+# TARGET_nios2 is not set
+# TARGET_or1k is not set
+# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_sparc64 is not set
+# TARGET_tile is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="arm"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_ARM_EABI=y
+TARGET_SUBARCH=""
+UCLIBC_FORMAT_ELF=y
+# UCLIBC_FORMAT_FDPIC_ELF is not set
+# UCLIBC_FORMAT_FLAT is not set
+# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
+# UCLIBC_FORMAT_SHARED_FLAT is not set
+ARCH_HAS_DEPRECATED_SYSCALLS=y
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+# ARCH_USE_MMU is not set
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+DO_XSI_MATH=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS=""
+UCLIBC_UCLINUX_BROKEN_MUNMAP=y
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+DOPIC=y
+STATIC_PIE=y
+ARCH_HAS_NO_SHARED=y
+ARCH_HAS_UCONTEXT=y
+HAVE_LDSO=y
+UCLIBC_CTOR_DTOR=y
+HAS_NO_THREADS=y
+# UCLIBC_HAS_LINUXTHREADS is not set
+# UCLIBC_HAS_THREADS_NATIVE is not set
+PTHREADS_STACK_DEFAULT_SIZE=2097152
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+MALLOC=y
+# MALLOC_SIMPLE is not set
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_SUSV2_LEGACY=y
+UCLIBC_SUSV3_LEGACY=y
+UCLIBC_HAS_CONTEXT_FUNCS=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+UCLIBC_HAS_BSD_B64_NTOP_B64_PTON=y
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_SHA256_CRYPT_IMPL=y
+UCLIBC_HAS_SHA512_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LIBICONV is not set
+# UCLIBC_HAS_LIBINTL is not set
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GETOPT_LONG=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_ARGP=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_FTS=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# Development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DOSTRIP is not set
+# DOASSERTS is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
diff --git a/target/arm/uclibc-ng.config b/target/arm/uclibc-ng.config
index 810da5877..1febdc74d 100644
--- a/target/arm/uclibc-ng.config
+++ b/target/arm/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.30 C Library Configuration
+# uClibc-ng 1.0.45 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -16,6 +16,7 @@ TARGET_arm=y
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_ia64 is not set
+# TARGET_kvx is not set
# TARGET_lm32 is not set
# TARGET_m68k is not set
# TARGET_metag is not set
@@ -25,12 +26,16 @@ TARGET_arm=y
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
#
# Target Architecture Features and Options
@@ -63,7 +68,9 @@ HAVE_DOT_CONFIG=y
# General Library Settings
#
DOPIC=y
+# STATIC_PIE is not set
ARCH_HAS_UCONTEXT=y
+HAVE_LDSO=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
@@ -87,6 +94,7 @@ UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
@@ -116,6 +124,7 @@ UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
#
# Advanced Library Settings
@@ -131,6 +140,7 @@ UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+UCLIBC_HAS_BSD_B64_NTOP_B64_PTON=y
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_SV4_DEPRECATED=y
@@ -153,6 +163,10 @@ UCLIBC_HAS_BSD_RES_CLOSE=y
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
#
# String and Stdio Support
diff --git a/target/avr32/Makefile b/target/avr32/Makefile
index 1f055993d..75ec3679a 100644
--- a/target/avr32/Makefile
+++ b/target/avr32/Makefile
@@ -11,6 +11,11 @@ KERNEL:=$(LINUX_DIR)/arch/avr32/boot/images/uImage
ifeq ($(ADK_TARGET_FS),archive)
targethelp:
@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "Use following command to install it on SD card:"
+ @echo "sudo ./scripts/install.sh $(ADK_TARGET_SYSTEM) /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "U-Boot commands:"
+ @echo "set bootargs 'console=ttyS0 root=/dev/mmcblk0p1 ro rootwait'"
+ @echo "ext2load mmc 0:1 0x10300000 /boot/kernel; bootm 0x10300000"
endif
ifeq ($(ADK_TARGET_FS),nfsroot)
targethelp:
diff --git a/target/avr32/patches/4.4.302/revert-futex.patch b/target/avr32/patches/4.4.302/revert-futex.patch
new file mode 100644
index 000000000..dd0e5c23a
--- /dev/null
+++ b/target/avr32/patches/4.4.302/revert-futex.patch
@@ -0,0 +1,22 @@
+diff -Nur linux-4.4.302.orig/kernel/futex.c linux-4.4.302/kernel/futex.c
+--- linux-4.4.302.orig/kernel/futex.c 2022-02-03 09:27:54.000000000 +0100
++++ linux-4.4.302/kernel/futex.c 2023-02-19 14:03:07.727035123 +0100
+@@ -1701,16 +1701,8 @@
+ int oldval, ret;
+
+ if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28)) {
+- if (oparg < 0 || oparg > 31) {
+- char comm[sizeof(current->comm)];
+- /*
+- * kill this print and return -EINVAL when userspace
+- * is sane again
+- */
+- pr_info_ratelimited("futex_wake_op: %s tries to shift op by %d; fix this program\n",
+- get_task_comm(comm, current), oparg);
+- oparg &= 31;
+- }
++ if (oparg < 0 || oparg > 31)
++ return -EINVAL;
+ oparg = 1 << oparg;
+ }
+
diff --git a/target/avr32/systems/atmel-ngw100 b/target/avr32/systems/atmel-ngw100
index 3c5808d90..28f06acf9 100644
--- a/target/avr32/systems/atmel-ngw100
+++ b/target/avr32/systems/atmel-ngw100
@@ -6,6 +6,7 @@ config ADK_TARGET_SYSTEM_ATMEL_NGW100
select ADK_TARGET_WITH_NET
select ADK_TARGET_WITH_NETDEVICE
select ADK_TARGET_WITH_BLOCK
+ select ADK_TARGET_WITH_SD
select ADK_TARGET_KERNEL_UIMAGE
select ADK_TARGET_KERNEL_WITH_COMPRESSION
select ADK_HOST_BUILD_U_BOOT
diff --git a/target/bfin/Makefile b/target/bfin/Makefile
index 5db509c5c..084de21d1 100644
--- a/target/bfin/Makefile
+++ b/target/bfin/Makefile
@@ -27,7 +27,7 @@ targethelp:
@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
ifeq ($(ADK_TARGET_SIM),y)
@echo "Run the simulator via:"
- @echo '$(TARGET_CROSS)run --env operating --model bf512 $(FW_DIR)/$(TARGET_KERNEL)'
+ @echo '$(TARGET_CROSS)run --environment operating --model bf512 $(FW_DIR)/$(TARGET_KERNEL)'
endif
endif
ifeq ($(ADK_TARGET_FS),nfsroot)
diff --git a/target/bfin/uclibc-ng.config b/target/bfin/uclibc-ng-nommu.config
index 24c45006a..24c45006a 100644
--- a/target/bfin/uclibc-ng.config
+++ b/target/bfin/uclibc-ng-nommu.config
diff --git a/target/c6x/uclibc-ng-nommu.config b/target/c6x/uclibc-ng-nommu.config
new file mode 100644
index 000000000..a304217ab
--- /dev/null
+++ b/target/c6x/uclibc-ng-nommu.config
@@ -0,0 +1,254 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# uClibc-ng 1.0.45 C Library Configuration
+#
+# TARGET_aarch64 is not set
+# TARGET_alpha is not set
+# TARGET_arc is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+TARGET_c6x=y
+# TARGET_cris is not set
+# TARGET_csky is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_ia64 is not set
+# TARGET_kvx is not set
+# TARGET_lm32 is not set
+# TARGET_m68k is not set
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nds32 is not set
+# TARGET_nios2 is not set
+# TARGET_or1k is not set
+# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_sparc64 is not set
+# TARGET_tile is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="c6x"
+FORCE_OPTIONS_FOR_ARCH=y
+CONFIG_GENERIC_C6X=y
+# CONFIG_TMS320C64X is not set
+# CONFIG_TMS320C64XPLUS is not set
+TARGET_SUBARCH=""
+UCLIBC_FORMAT_DSBT_ELF=y
+# UCLIBC_FORMAT_FLAT is not set
+# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
+# UCLIBC_FORMAT_SHARED_FLAT is not set
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_NO_MMU=y
+
+#
+# Target CPU lacks a memory management unit (MMU)
+#
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+DO_XSI_MATH=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS=""
+UCLIBC_UCLINUX_BROKEN_MUNMAP=y
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+DOPIC=y
+HAVE_LDSO=y
+HAVE_SHARED=y
+FORCE_SHAREABLE_TEXT_SEGMENTS=y
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_ENV_SUPPORT is not set
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# LDSO_STANDALONE_SUPPORT is not set
+# LDSO_PRELINK_SUPPORT is not set
+# UCLIBC_STATIC_LDCONFIG is not set
+LDSO_RUNPATH=y
+LDSO_RUNPATH_OF_EXECUTABLE=y
+LDSO_SAFE_RUNPATH=y
+LDSO_SEARCH_INTERP_PATH=y
+LDSO_LD_LIBRARY_PATH=y
+UCLIBC_CTOR_DTOR=y
+# LDSO_GNU_HASH_SUPPORT is not set
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_LINUXTHREADS=y
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+MALLOC=y
+# MALLOC_SIMPLE is not set
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_SUSV2_LEGACY=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_SHA256_CRYPT_IMPL=y
+UCLIBC_HAS_SHA512_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LIBICONV is not set
+# UCLIBC_HAS_LIBINTL is not set
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GETOPT_LONG=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_ARGP=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_FTS=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+# UCLIBC_HAS_SSP is not set
+# UCLIBC_BUILD_RELRO is not set
+# UCLIBC_BUILD_NOW is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# Development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DODEBUG_PT is not set
+# DOSTRIP is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_HAS_BACKTRACE is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
diff --git a/target/c6x/uclibc-ng.config b/target/c6x/uclibc-ng.config
deleted file mode 100644
index d076edcf2..000000000
--- a/target/c6x/uclibc-ng.config
+++ /dev/null
@@ -1,243 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
-#
-# TARGET_aarch64 is not set
-# TARGET_alpha is not set
-# TARGET_arc is not set
-# TARGET_arm is not set
-# TARGET_avr32 is not set
-# TARGET_bfin is not set
-TARGET_c6x=y
-# TARGET_cris is not set
-# TARGET_frv is not set
-# TARGET_h8300 is not set
-# TARGET_hppa is not set
-# TARGET_i386 is not set
-# TARGET_ia64 is not set
-# TARGET_lm32 is not set
-# TARGET_m68k is not set
-# TARGET_metag is not set
-# TARGET_microblaze is not set
-# TARGET_mips is not set
-# TARGET_nds32 is not set
-# TARGET_nios2 is not set
-# TARGET_or1k is not set
-# TARGET_powerpc is not set
-# TARGET_sh is not set
-# TARGET_sparc is not set
-# TARGET_sparc64 is not set
-# TARGET_x86_64 is not set
-# TARGET_xtensa is not set
-
-#
-# Target Architecture Features and Options
-#
-TARGET_ARCH="c6x"
-FORCE_OPTIONS_FOR_ARCH=y
-CONFIG_GENERIC_C6X=y
-# CONFIG_TMS320C64X is not set
-# CONFIG_TMS320C64XPLUS is not set
-TARGET_SUBARCH=""
-UCLIBC_FORMAT_DSBT_ELF=y
-# UCLIBC_FORMAT_FLAT is not set
-# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
-# UCLIBC_FORMAT_SHARED_FLAT is not set
-ARCH_ANY_ENDIAN=y
-ARCH_LITTLE_ENDIAN=y
-# ARCH_WANTS_BIG_ENDIAN is not set
-ARCH_WANTS_LITTLE_ENDIAN=y
-ARCH_HAS_NO_MMU=y
-
-#
-# Target CPU lacks a memory management unit (MMU)
-#
-UCLIBC_HAS_FLOATS=y
-UCLIBC_HAS_FPU=y
-DO_C99_MATH=y
-DO_XSI_MATH=y
-# UCLIBC_HAS_FENV is not set
-UCLIBC_HAS_LONG_DOUBLE_MATH=y
-KERNEL_HEADERS=""
-UCLIBC_UCLINUX_BROKEN_MUNMAP=y
-HAVE_DOT_CONFIG=y
-
-#
-# General Library Settings
-#
-DOPIC=y
-HAVE_SHARED=y
-FORCE_SHAREABLE_TEXT_SEGMENTS=y
-LDSO_LDD_SUPPORT=y
-LDSO_CACHE_SUPPORT=y
-# LDSO_PRELOAD_ENV_SUPPORT is not set
-# LDSO_PRELOAD_FILE_SUPPORT is not set
-LDSO_BASE_FILENAME="ld.so"
-# LDSO_STANDALONE_SUPPORT is not set
-# LDSO_PRELINK_SUPPORT is not set
-# UCLIBC_STATIC_LDCONFIG is not set
-LDSO_RUNPATH=y
-LDSO_RUNPATH_OF_EXECUTABLE=y
-LDSO_SAFE_RUNPATH=y
-LDSO_SEARCH_INTERP_PATH=y
-LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
-UCLIBC_CTOR_DTOR=y
-# LDSO_GNU_HASH_SUPPORT is not set
-# HAS_NO_THREADS is not set
-UCLIBC_HAS_LINUXTHREADS=y
-UCLIBC_HAS_THREADS=y
-PTHREADS_DEBUG_SUPPORT=y
-UCLIBC_HAS_SYSLOG=y
-UCLIBC_HAS_LFS=y
-MALLOC=y
-# MALLOC_SIMPLE is not set
-UCLIBC_DYNAMIC_ATEXIT=y
-UCLIBC_HAS_UTMPX=y
-UCLIBC_HAS_UTMP=y
-UCLIBC_SUSV2_LEGACY=y
-UCLIBC_SUSV3_LEGACY=y
-# UCLIBC_SUSV3_LEGACY_MACROS is not set
-UCLIBC_SUSV4_LEGACY=y
-# UCLIBC_STRICT_HEADERS is not set
-# UCLIBC_HAS_STUBS is not set
-UCLIBC_HAS_SHADOW=y
-UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
-UCLIBC_HAS___PROGNAME=y
-UCLIBC_HAS_PTY=y
-ASSUME_DEVPTS=y
-UNIX98PTY_ONLY=y
-UCLIBC_HAS_GETPT=y
-UCLIBC_HAS_LIBUTIL=y
-UCLIBC_HAS_TM_EXTENSIONS=y
-UCLIBC_HAS_TZ_CACHING=y
-UCLIBC_HAS_TZ_FILE=y
-UCLIBC_HAS_TZ_FILE_READ_MANY=y
-UCLIBC_TZ_FILE_PATH="/etc/TZ"
-UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
-
-#
-# Advanced Library Settings
-#
-UCLIBC_PWD_BUFFER_SIZE=256
-UCLIBC_GRP_BUFFER_SIZE=256
-
-#
-# Support various families of functions
-#
-UCLIBC_LINUX_SPECIFIC=y
-UCLIBC_HAS_GNU_ERROR=y
-UCLIBC_BSD_SPECIFIC=y
-UCLIBC_HAS_BSD_ERR=y
-UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
-# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
-# UCLIBC_NTP_LEGACY is not set
-UCLIBC_SV4_DEPRECATED=y
-UCLIBC_HAS_REALTIME=y
-UCLIBC_HAS_ADVANCED_REALTIME=y
-UCLIBC_HAS_EPOLL=y
-UCLIBC_HAS_XATTR=y
-# UCLIBC_HAS_PROFILING is not set
-UCLIBC_HAS_CRYPT_IMPL=y
-UCLIBC_HAS_SHA256_CRYPT_IMPL=y
-UCLIBC_HAS_SHA512_CRYPT_IMPL=y
-UCLIBC_HAS_CRYPT=y
-UCLIBC_HAS_NETWORK_SUPPORT=y
-UCLIBC_HAS_SOCKET=y
-UCLIBC_HAS_IPV4=y
-UCLIBC_HAS_IPV6=y
-UCLIBC_USE_NETLINK=y
-UCLIBC_SUPPORT_AI_ADDRCONFIG=y
-UCLIBC_HAS_BSD_RES_CLOSE=y
-UCLIBC_HAS_COMPAT_RES_STATE=y
-# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
-UCLIBC_HAS_RESOLVER_SUPPORT=y
-
-#
-# String and Stdio Support
-#
-UCLIBC_HAS_STRING_GENERIC_OPT=y
-UCLIBC_HAS_STRING_ARCH_OPT=y
-UCLIBC_HAS_CTYPE_TABLES=y
-UCLIBC_HAS_CTYPE_SIGNED=y
-# UCLIBC_HAS_CTYPE_UNSAFE is not set
-UCLIBC_HAS_CTYPE_CHECKED=y
-# UCLIBC_HAS_CTYPE_ENFORCED is not set
-UCLIBC_HAS_WCHAR=y
-# UCLIBC_HAS_LIBICONV is not set
-# UCLIBC_HAS_LIBINTL is not set
-# UCLIBC_HAS_LOCALE is not set
-UCLIBC_HAS_HEXADECIMAL_FLOATS=y
-UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
-UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
-# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
-UCLIBC_HAS_STDIO_BUFSIZ_4096=y
-# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
-UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
-# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
-UCLIBC_HAS_STDIO_GETC_MACRO=y
-UCLIBC_HAS_STDIO_PUTC_MACRO=y
-UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
-# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
-UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
-UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
-UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
-UCLIBC_HAS_PRINTF_M_SPEC=y
-UCLIBC_HAS_ERRNO_MESSAGES=y
-# UCLIBC_HAS_SYS_ERRLIST is not set
-UCLIBC_HAS_SIGNUM_MESSAGES=y
-# UCLIBC_HAS_SYS_SIGLIST is not set
-UCLIBC_HAS_GNU_GETOPT=y
-UCLIBC_HAS_GETOPT_LONG=y
-UCLIBC_HAS_GNU_GETSUBOPT=y
-UCLIBC_HAS_ARGP=y
-
-#
-# Big and Tall
-#
-UCLIBC_HAS_REGEX=y
-UCLIBC_HAS_FNMATCH=y
-UCLIBC_HAS_WORDEXP=y
-UCLIBC_HAS_NFTW=y
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_FTS=y
-UCLIBC_HAS_GLOB=y
-UCLIBC_HAS_GNU_GLOB=y
-
-#
-# Library Installation Options
-#
-RUNTIME_PREFIX="/"
-DEVEL_PREFIX="/usr/"
-MULTILIB_DIR="lib"
-HARDWIRED_ABSPATH=y
-
-#
-# Security options
-#
-# UCLIBC_HAS_ARC4RANDOM is not set
-# UCLIBC_HAS_SSP is not set
-# UCLIBC_BUILD_RELRO is not set
-# UCLIBC_BUILD_NOW is not set
-UCLIBC_BUILD_NOEXECSTACK=y
-
-#
-# Development/debugging options
-#
-CROSS_COMPILER_PREFIX=""
-UCLIBC_EXTRA_CFLAGS=""
-# DODEBUG is not set
-# DODEBUG_PT is not set
-# DOSTRIP is not set
-# DOASSERTS is not set
-# SUPPORT_LD_DEBUG is not set
-# SUPPORT_LD_DEBUG_EARLY is not set
-# UCLIBC_MALLOC_DEBUGGING is not set
-# UCLIBC_HAS_BACKTRACE is not set
-WARNINGS="-Wall"
-# EXTRA_WARNINGS is not set
diff --git a/target/config/Config.in b/target/config/Config.in
index bb0cd73c4..77fc1022f 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -25,12 +25,6 @@ config ADK_TARGET_QEMU
select ADK_TARGET_WITH_NET
select ADK_TARGET_WITH_NETDEVICE
-config ADK_TARGET_VBOX
- bool
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
-
# the inverse of ADK_TARGET_KERNEL_CUSTOMISING,
# allows for selecting it off (i.e., to disable it)
config ADK_TARGET_FIXED_KERNEL
diff --git a/target/config/Config.in.abi b/target/config/Config.in.abi
index 1b34ec6e3..9995ba51d 100644
--- a/target/config/Config.in.abi
+++ b/target/config/Config.in.abi
@@ -67,11 +67,11 @@ config ADK_TARGET_ABI_RISCV
depends on ADK_TARGET_ARCH_RISCV32 || ADK_TARGET_ARCH_RISCV64
string
default "lp64" if ADK_TARGET_ABI_LP64
- default "lp64d" if ADK_TARGET_ABI_LP64D
default "lp64f" if ADK_TARGET_ABI_LP64F
- default "ilp32" if ADK_TARGET_ABI_ILP64
- default "ilp32d" if ADK_TARGET_ABI_ILP64D
- default "ilp32f" if ADK_TARGET_ABI_ILP64F
+ default "lp64d" if ADK_TARGET_ABI_LP64D
+ default "ilp32" if ADK_TARGET_ABI_ILP32
+ default "ilp32f" if ADK_TARGET_ABI_ILP32F
+ default "ilp32d" if ADK_TARGET_ABI_ILP32D
config ADK_TARGET_ABI_MIPS64
depends on ADK_TARGET_ARCH_MIPS64
@@ -82,25 +82,16 @@ config ADK_TARGET_ABI_MIPS64
config ADK_TARGET_LIBC_PATH
string
- default "lib32" if ADK_TARGET_ABI_N32
+ default "lib32" if ADK_TARGET_ABI_N32 || ADK_TARGET_ARCH_RISC32
default "libx32" if ADK_TARGET_ABI_X32
default "lib64" if ADK_TARGET_ABI_64 || ADK_TARGET_ABI_N64 \
|| ADK_TARGET_ARCH_AARCH64 \
|| ADK_TARGET_ARCH_SPARC64 \
|| ADK_TARGET_ARCH_PPC64 \
+ || ADK_TARGET_ARCH_RISC64 \
|| ADK_TARGET_ARCH_X86_64
default "lib"
-config ADK_TARGET_LIBC_ABI_PATH
- string
- default "lib/lp64" if ADK_TARGET_ABI_LP64
- default "lib/lp64d" if ADK_TARGET_ABI_LP64D
- default "lib/lp64f" if ADK_TARGET_ABI_LP64F
- default "lib/ilp32" if ADK_TARGET_ABI_ILP64
- default "lib/ilp32d" if ADK_TARGET_ABI_ILP64D
- default "lib/ilp32f" if ADK_TARGET_ABI_ILP64F
- default "lib"
-
config ADK_TARGET_ABI_CFLAGS
string
default "-mabi=32" if ADK_TARGET_ABI_O32
diff --git a/target/config/Config.in.addons b/target/config/Config.in.addons
index f26804e4a..1a475f3df 100644
--- a/target/config/Config.in.addons
+++ b/target/config/Config.in.addons
@@ -39,7 +39,7 @@ config ADK_TARGET_GPU_MEM
choice
prompt "Serial or Bluetooth"
-depends on ( ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX ) \
+depends on ADK_TARGET_OS_LINUX \
&& ( ADK_TARGET_SYSTEM_RASPBERRY_PI3 \
|| ADK_TARGET_SYSTEM_RASPBERRY_PI3P \
|| ADK_TARGET_SYSTEM_RASPBERRY_PI3_64 \
@@ -49,12 +49,10 @@ config ADK_TARGET_HARDWARE_RPI3_SERIAL
bool "serial"
select ADK_TARGET_HARDWARE_RPI3_NO_BT
select ADK_LINUX_KERNEL_SERIAL_AMBA_PL011 if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_SERIAL_AMBA_PL011 if ADK_TARGET_OS_WALDUX
config ADK_TARGET_HARDWARE_RPI3_BT
bool "bluetooth"
select ADK_LINUX_KERNEL_BT_HCIUART_BCM m if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_BT_HCIUART_BCM m if ADK_TARGET_OS_WALDUX
config ADK_TARGET_HARDWARE_RPI3_NONE
bool "none"
@@ -66,7 +64,7 @@ config ADK_TARGET_HARDWARE_RPI3_NO_BT
config ADK_TARGET_HARDWARE_RPI3_NO_WIFI
bool "Disable wifi"
- depends on ( ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX ) \
+ depends on ADK_TARGET_OS_LINUX \
&& ( ADK_TARGET_SYSTEM_RASPBERRY_PI3 \
|| ADK_TARGET_SYSTEM_RASPBERRY_PI3P \
|| ADK_TARGET_SYSTEM_RASPBERRY_PI3_64 \
@@ -75,7 +73,7 @@ config ADK_TARGET_HARDWARE_RPI3_NO_WIFI
choice
prompt "Audio Board Addon"
-depends on (ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX) && ADK_TARGET_BOARD_BCM28XX
+depends on ADK_TARGET_OS_LINUX && ADK_TARGET_BOARD_BCM28XX
config ADK_TARGET_HARDWARE_NONE
bool "No audio addon board"
@@ -83,36 +81,29 @@ config ADK_TARGET_HARDWARE_NONE
config ADK_TARGET_HARDWARE_HIFIBERRY_AMP
bool "Hifiberry AMP"
select ADK_LINUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_AMP m if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_AMP m if ADK_TARGET_OS_WALDUX
config ADK_TARGET_HARDWARE_HIFIBERRY_DAC
bool "Hifiberry DAC"
select ADK_LINUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DAC m if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DAC m if ADK_TARGET_OS_WALDUX
config ADK_TARGET_HARDWARE_HIFIBERRY_DACPLUS
bool "Hifiberry DACPLUS"
select ADK_LINUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DACPLUS m if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DACPLUS m if ADK_TARGET_OS_WALDUX
config ADK_TARGET_HARDWARE_HIFIBERRY_DIGI
bool "Hifiberry DIGI"
select ADK_LINUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DIGI m if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DIGI m if ADK_TARGET_OS_WALDUX
config ADK_TARGET_HARDWARE_RPI_DAC
bool "RPI-DAC"
select ADK_LINUX_KERNEL_SND_BCM2708_SOC_RPI_DAC m if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_SND_BCM2708_SOC_RPI_DAC m if ADK_TARGET_OS_WALDUX
config ADK_TARGET_HARDWARE_IQAUDIO_DAC
bool "IQAudio-DAC"
select ADK_LINUX_KERNEL_SND_BCM2708_SOC_IQAUDIO_DAC m if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_SND_BCM2708_SOC_IQAUDIO_DAC m if ADK_TARGET_OS_WALDUX
config ADK_TARGET_HARDWARE_RPI_PROTO
bool "Rpi-Proto"
select ADK_LINUX_KERNEL_SND_BCM2708_SOC_RPI_PROTO m if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_SND_BCM2708_SOC_RPI_PROTO m if ADK_TARGET_OS_WALDUX
endchoice
diff --git a/target/config/Config.in.binfmt b/target/config/Config.in.binfmt
index ad2d7f770..2c690724a 100644
--- a/target/config/Config.in.binfmt
+++ b/target/config/Config.in.binfmt
@@ -3,26 +3,33 @@
choice
prompt "Binary format"
-depends on (ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX) && !ADK_TARGET_CHOOSE_ARCH
+depends on ADK_TARGET_OS_LINUX && !ADK_TARGET_CHOOSE_ARCH
config ADK_TARGET_BINFMT_ELF
bool "ELF"
- depends on ADK_TARGET_WITH_MMU
+ select ADK_TARGET_USE_STATIC_LIBS_ONLY if !ADK_TARGET_WITH_MMU
+ depends on ADK_TARGET_WITH_MMU || ADK_TARGET_ARCH_ARM || \
+ ADK_TARGET_ARCH_M68K || ADK_TARGET_ARCH_RISCV32 || ADK_TARGET_ARCH_RISCV64
config ADK_TARGET_BINFMT_FLAT
bool "FLAT"
+ select BUSYBOX_NOMMU
select ADK_TARGET_UCLINUX if ADK_TARGET_ARCH_BFIN || ADK_TARGET_ARCH_ARM
depends on ADK_TARGET_LIB_UCLIBC_NG
depends on !ADK_TARGET_WITH_MMU
depends on ADK_TARGET_ARCH_ARM || ADK_TARGET_ARCH_M68K || ADK_TARGET_ARCH_SH || ADK_TARGET_ARCH_XTENSA \
- || ADK_TARGET_ARCH_H8300 || ADK_TARGET_ARCH_LM32 || ADK_TARGET_ARCH_BFIN
+ || ADK_TARGET_ARCH_H8300 || ADK_TARGET_ARCH_LM32 || ADK_TARGET_ARCH_BFIN || ADK_TARGET_ARCH_RISCV64 \
+ || ADK_TARGET_ARCH_RISCV32
config ADK_TARGET_BINFMT_FDPIC
bool "FDPIC"
+ select BUSYBOX_NOMMU
depends on ADK_TARGET_ARCH_ARM || ADK_TARGET_ARCH_BFIN || ADK_TARGET_ARCH_FRV || ADK_TARGET_ARCH_SH
+ depends on !ADK_TARGET_WITH_MMU
config ADK_TARGET_BINFMT_DSBT
bool "DSBT"
+ select BUSYBOX_NOMMU
depends on ADK_TARGET_ARCH_C6X
endchoice
@@ -46,16 +53,14 @@ config ADK_TARGET_BINFMT_FLAT_SEP_DATA
Allow for the data and text segments to be separated and placed in
different regions of memory.
-config ADK_TARGET_BINFMT_FLAT_SHARED
- bool "Shared binary"
- help
- Allow to load and link indiviual FLAT binaries at run time.
-
endchoice
+source "target/config/Config.in.elf2flt"
+
config ADK_TARGET_BINFMT
string
- depends on ADK_TARGET_ARCH_BFIN
+ depends on !ADK_TARGET_WITH_MMU
+ default "elf" if ADK_TARGET_BINFMT_ELF
default "flat" if ADK_TARGET_BINFMT_FLAT
default "fdpic" if ADK_TARGET_BINFMT_FDPIC
diff --git a/target/config/Config.in.binutils b/target/config/Config.in.binutils
index a91bda51f..b93eaf31d 100644
--- a/target/config/Config.in.binutils
+++ b/target/config/Config.in.binutils
@@ -3,50 +3,56 @@
choice
prompt "Binutils version"
-default ADK_TOOLCHAIN_BINUTILS_ARC if ADK_TARGET_ARCH_ARC
+default ADK_TOOLCHAIN_BINUTILS_ARC if ADK_TARGET_CPU_ARC_ARC32
+default ADK_TOOLCHAIN_BINUTILS_ARC if ADK_TARGET_CPU_ARC_ARC64
default ADK_TOOLCHAIN_BINUTILS_AVR32 if ADK_TARGET_ARCH_AVR32
-default ADK_TOOLCHAIN_BINUTILS_CSKY if ADK_TARGET_ARCH_CSKY
-default ADK_TOOLCHAIN_BINUTILS_NDS32 if ADK_TARGET_ARCH_NDS32
-default ADK_TOOLCHAIN_BINUTILS_2_28 if ADK_TARGET_CPU_SH_J2
-default ADK_TOOLCHAIN_BINUTILS_2_29 if ADK_TARGET_ARCH_CRIS
-default ADK_TOOLCHAIN_BINUTILS_2_32
+default ADK_TOOLCHAIN_BINUTILS_KVX if ADK_TARGET_ARCH_KVX
+default ADK_TOOLCHAIN_BINUTILS_2_38 if ADK_TARGET_ARCH_NDS32
+default ADK_TOOLCHAIN_BINUTILS_2_42
config ADK_TOOLCHAIN_BINUTILS_GIT
bool "git"
depends on !ADK_TARGET_ARCH_AVR32
- depends on !ADK_TARGET_ARCH_CSKY
- depends on !ADK_TARGET_ARCH_NDS32
-config ADK_TOOLCHAIN_BINUTILS_2_32
- bool "2.32"
- depends on !ADK_TARGET_ARCH_ARC
+config ADK_TOOLCHAIN_BINUTILS_2_42
+ bool "2.42"
depends on !ADK_TARGET_ARCH_AVR32
- depends on !ADK_TARGET_ARCH_CSKY
- depends on !ADK_TARGET_ARCH_NDS32
- depends on !ADK_TARGET_CPU_SH_J2
-config ADK_TOOLCHAIN_BINUTILS_2_29
- bool "2.29.1"
- depends on ADK_TARGET_ARCH_CRIS # ld segfault with 2.30
+config ADK_TOOLCHAIN_BINUTILS_2_41
+ bool "2.41"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_KVX
-config ADK_TOOLCHAIN_BINUTILS_2_28
- bool "2.28"
- depends on ADK_TARGET_CPU_SH_J2
+config ADK_TOOLCHAIN_BINUTILS_2_40
+ bool "2.40"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_KVX
-config ADK_TOOLCHAIN_BINUTILS_ARC
- bool "arc-2018.03-release"
- depends on ADK_TARGET_ARCH_ARC
+config ADK_TOOLCHAIN_BINUTILS_2_39
+ bool "2.39"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_KVX
-config ADK_TOOLCHAIN_BINUTILS_NDS32
- bool "nds32-2.30-open"
- depends on ADK_TARGET_ARCH_NDS32
+config ADK_TOOLCHAIN_BINUTILS_2_38
+ bool "2.38"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_KVX
-config ADK_TOOLCHAIN_BINUTILS_CSKY
- bool "2.27-csky"
- depends on ADK_TARGET_ARCH_CSKY
+config ADK_TOOLCHAIN_BINUTILS_2_37
+ bool "2.37"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_KVX
+
+config ADK_TOOLCHAIN_BINUTILS_ARC
+ bool "arc-2023.09"
+ depends on ADK_TARGET_ARCH_ARC
config ADK_TOOLCHAIN_BINUTILS_AVR32
bool "2.20.1-avr32"
depends on ADK_TARGET_ARCH_AVR32
+config ADK_TOOLCHAIN_BINUTILS_KVX
+ bool "kvx-coolidge"
+ depends on ADK_TARGET_ARCH_KVX
+
endchoice
diff --git a/target/config/Config.in.compiler b/target/config/Config.in.compiler
index 74d56eb18..2012acc4f 100644
--- a/target/config/Config.in.compiler
+++ b/target/config/Config.in.compiler
@@ -7,83 +7,111 @@ prompt "Compiler"
config ADK_BUILD_COMPILER_GCC
bool "gcc"
-config ADK_BUILD_COMPILER_LLVM
- bool "llvm"
- depends on ADK_EXPERIMENTAL
-
endchoice
choice
-prompt "LLVM version"
-depends on ADK_BUILD_COMPILER_LLVM
-
-config ADK_TOOLCHAIN_LLVM
- bool "6.0.0"
-
-endchoice
-
-config ADK_TOOLCHAIN_LLVM_VERSION
- string
- default "6.0.0" if ADK_TOOLCHAIN_LLVM
-
-choice
prompt "GCC version"
depends on ADK_BUILD_COMPILER_GCC
-default ADK_TOOLCHAIN_GCC_ARC if ADK_TARGET_ARCH_ARC
+default ADK_TOOLCHAIN_GCC_ARC if ADK_TARGET_CPU_ARC_ARC32
+default ADK_TOOLCHAIN_GCC_ARC if ADK_TARGET_CPU_ARC_ARC64
default ADK_TOOLCHAIN_GCC_AVR32 if ADK_TARGET_ARCH_AVR32
-default ADK_TOOLCHAIN_GCC_CSKY if ADK_TARGET_ARCH_CSKY
+default ADK_TOOLCHAIN_GCC_KVX if ADK_TARGET_ARCH_KVX
+default ADK_TOOLCHAIN_GCC_LM32 if ADK_TARGET_ARCH_LM32
default ADK_TOOLCHAIN_GCC_METAG if ADK_TARGET_ARCH_METAG
-default ADK_TOOLCHAIN_GCC_NDS32 if ADK_TARGET_ARCH_NDS32
-default ADK_TOOLCHAIN_GCC_OR1K if ADK_TARGET_ARCH_OR1K
-default ADK_TOOLCHAIN_GCC_8
+default ADK_TOOLCHAIN_GCC_7 if ADK_TARGET_ARCH_C6X # ICE with newer GCC
+default ADK_TOOLCHAIN_GCC_9 if ADK_TARGET_ARCH_BFIN && ADK_TARGET_BINFMT_FDPIC
+default ADK_TOOLCHAIN_GCC_10 if ADK_TARGET_ARCH_CRIS # no longer supported
+default ADK_TOOLCHAIN_GCC_10 if ADK_TARGET_CPU_SH_J2 # j2.patch
+default ADK_TOOLCHAIN_GCC_11 if ADK_TARGET_ARCH_SPARC # bus error without patch
+default ADK_TOOLCHAIN_GCC_13
config ADK_TOOLCHAIN_GCC_GIT
bool "git"
depends on !ADK_TARGET_ARCH_AVR32
depends on !ADK_TARGET_ARCH_METAG
depends on !ADK_TARGET_ARCH_NDS32
- depends on !ADK_TARGET_ARCH_OR1K
+
+config ADK_TOOLCHAIN_GCC_13
+ bool "13.2.0"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_CRIS
+ depends on !ADK_TARGET_ARCH_METAG
+ depends on !ADK_TARGET_ARCH_SPARC
+
+config ADK_TOOLCHAIN_GCC_12
+ bool "12.3.0"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_CRIS
+ depends on !ADK_TARGET_ARCH_METAG
+ depends on !ADK_TARGET_ARCH_LOONGARCH
+ depends on !ADK_TARGET_ARCH_SPARC
+
+config ADK_TOOLCHAIN_GCC_11
+ bool "11.4.0"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_CRIS
+ depends on !ADK_TARGET_ARCH_C6X
+ depends on !ADK_TARGET_ARCH_METAG
+ depends on !ADK_TARGET_ARCH_LOONGARCH
+
+config ADK_TOOLCHAIN_GCC_10
+ bool "10.5.0"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_C6X
+ depends on !ADK_TARGET_ARCH_METAG
+ depends on !ADK_TARGET_ARCH_NDS32
+ depends on !ADK_TARGET_ARCH_LOONGARCH
+
+config ADK_TOOLCHAIN_GCC_9
+ bool "9.5.0"
+ depends on !ADK_TARGET_ARCH_ARC
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_C6X
+ depends on !ADK_TARGET_ARCH_METAG
+ depends on !ADK_TARGET_ARCH_NDS32
+ depends on !ADK_TARGET_ARCH_LOONGARCH
config ADK_TOOLCHAIN_GCC_8
- bool "8.3.0"
+ bool "8.5.0"
depends on !ADK_TARGET_ARCH_ARC
depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_C6X
depends on !ADK_TARGET_ARCH_CSKY
+ depends on !ADK_TARGET_ARCH_HPPA
depends on !ADK_TARGET_ARCH_METAG
depends on !ADK_TARGET_ARCH_NDS32
depends on !ADK_TARGET_ARCH_OR1K
+ depends on !ADK_TARGET_ARCH_LOONGARCH
config ADK_TOOLCHAIN_GCC_7
- bool "7.4.0"
+ bool "7.5.0"
depends on !ADK_TARGET_ARCH_ARC
depends on !ADK_TARGET_ARCH_AVR32
depends on !ADK_TARGET_ARCH_CSKY
+ depends on !ADK_TARGET_ARCH_HPPA
depends on !ADK_TARGET_ARCH_METAG
depends on !ADK_TARGET_ARCH_NDS32
depends on !ADK_TARGET_ARCH_OR1K
+ depends on !ADK_TARGET_ARCH_LOONGARCH
config ADK_TOOLCHAIN_GCC_ARC
- bool "arc-2018.03-release"
+ bool "arc-2023.09"
depends on ADK_TARGET_ARCH_ARC
config ADK_TOOLCHAIN_GCC_AVR32
bool "4.4.7-avr32"
depends on ADK_TARGET_ARCH_AVR32
-config ADK_TOOLCHAIN_GCC_CSKY
- bool "6.3.0-csky"
- depends on ADK_TARGET_ARCH_CSKY
+config ADK_TOOLCHAIN_GCC_LM32
+ bool "4.5.4-lm32"
+ depends on ADK_TARGET_ARCH_LM32
config ADK_TOOLCHAIN_GCC_METAG
bool "4.2.4-metag"
depends on ADK_TARGET_ARCH_METAG
-config ADK_TOOLCHAIN_GCC_NDS32
- bool "nds32-6.3.0-open"
- depends on ADK_TARGET_ARCH_NDS32
-
-config ADK_TOOLCHAIN_GCC_OR1K
- bool "5.4.0-or1k"
- depends on ADK_TARGET_ARCH_OR1K
+config ADK_TOOLCHAIN_GCC_KVX
+ bool "coolidge"
+ depends on ADK_TARGET_ARCH_KVX
endchoice
diff --git a/target/config/Config.in.cpu b/target/config/Config.in.cpu
index 0fe43fb00..c06eca95b 100644
--- a/target/config/Config.in.cpu
+++ b/target/config/Config.in.cpu
@@ -21,6 +21,26 @@ config ADK_TARGET_CPU_AARCH64_CORTEX_A57
select ADK_TARGET_WITH_MMU
depends on ADK_TARGET_ARCH_AARCH64
+config ADK_TARGET_CPU_AARCH64_CORTEX_A72
+ bool "cortex-a72"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_CPU_WITH_FPU_VFPV4
+ select ADK_TARGET_CPU_WITH_NEON
+ select ADK_TARGET_CPU_WITH_THUMB2
+ depends on ADK_TARGET_ARCH_AARCH64
+
+config ADK_TARGET_CPU_AARCH64_CORTEX_A76
+ bool "cortex-a76"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_CPU_WITH_FPU_VFPV4
+ select ADK_TARGET_CPU_WITH_NEON
+ select ADK_TARGET_CPU_WITH_THUMB2
+ depends on ADK_TARGET_ARCH_AARCH64
+
# alpha
config ADK_TARGET_CPU_ALPHA_EV4
bool "ev4"
@@ -68,13 +88,31 @@ config ADK_TARGET_CPU_ARC_ARC700
depends on ADK_TARGET_ARCH_ARC
config ADK_TARGET_CPU_ARC_ARCHS
- bool "ARC HS (ARCv2)"
+ bool "ARC HS38 (ARCv2)"
select ADK_TARGET_SUPPORTS_THREADS
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_WITH_MMU
depends on ADK_TARGET_ARCH_ARC
+config ADK_TARGET_CPU_ARC_ARC32
+ bool "ARC HS58 (ARCv3) 32 Bit"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_KERNEL_LOADER
+ depends on ADK_TARGET_ARCH_ARC
+
+config ADK_TARGET_CPU_ARC_ARC64
+ bool "ARC HS68 (ARCv3) 64 Bit"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_KERNEL_LOADER
+ depends on ADK_TARGET_ARCH_ARC
+
# arm
config ADK_TARGET_CPU_ARM_ARM1176JZF_S
bool "arm1176jzf-s"
@@ -90,6 +128,7 @@ config ADK_TARGET_CPU_ARM_ARM926EJ_S
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_CPU_WITH_THUMB
+ select ADK_TARGET_CPU_WITH_FPU_VFP
depends on ADK_TARGET_ARCH_ARM
config ADK_TARGET_CPU_ARM_ARM11MPCORE
@@ -178,8 +217,19 @@ config ADK_TARGET_CPU_ARM_CORTEX_A57
select ADK_TARGET_CPU_WITH_THUMB2
depends on ADK_TARGET_ARCH_ARM
+config ADK_TARGET_CPU_ARM_CORTEX_A72
+ bool "cortex-a72"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_CPU_WITH_FPU_VFPV4
+ select ADK_TARGET_CPU_WITH_NEON
+ select ADK_TARGET_CPU_WITH_THUMB2
+ depends on ADK_TARGET_ARCH_ARM
+
config ADK_TARGET_CPU_ARM_CORTEX_M7
bool "cortex-m7"
+ select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_SUPPORTS_THREADS
select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_CPU_WITH_THUMB2
@@ -188,6 +238,7 @@ config ADK_TARGET_CPU_ARM_CORTEX_M7
config ADK_TARGET_CPU_ARM_CORTEX_M4
bool "cortex-m4"
+ select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_SUPPORTS_THREADS
select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_CPU_WITH_THUMB2
@@ -196,6 +247,7 @@ config ADK_TARGET_CPU_ARM_CORTEX_M4
config ADK_TARGET_CPU_ARM_CORTEX_M3
bool "cortex-m3"
+ select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_SUPPORTS_THREADS
select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_CPU_WITH_THUMB2
@@ -215,6 +267,15 @@ config ADK_TARGET_CPU_ARM_XSCALE
select ADK_TARGET_SUPPORTS_LT
depends on ADK_TARGET_ARCH_ARM
+config ADK_TARGET_CPU_ARM_MVEBU
+ bool "mvebu"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_CPU_WITH_FPU_VFPV3
+ select ADK_TARGET_SOFTFP_FLOAT
+ depends on ADK_TARGET_ARCH_ARM
+
# avr32
config ADK_TARGET_CPU_AVR32
bool "avr32"
@@ -433,30 +494,36 @@ config ADK_TARGET_CPU_CRIS_CRISV32
depends on ADK_TARGET_ARCH_CRIS
# c-sky
-config ADK_TARGET_CPU_CSKY_CK610
- bool "ck610"
+config ADK_TARGET_CPU_CSKY_CK807
+ bool "ck807"
select ADK_TARGET_SUPPORTS_THREADS
- select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_WITH_MMU
depends on ADK_TARGET_ARCH_CSKY
-config ADK_TARGET_CPU_CSKY_CK807
- bool "ck807"
+config ADK_TARGET_CPU_CSKY_CK807F
+ bool "ck807f"
select ADK_TARGET_SUPPORTS_THREADS
- select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_CPU_WITH_FPU
depends on ADK_TARGET_ARCH_CSKY
config ADK_TARGET_CPU_CSKY_CK810
bool "ck810"
select ADK_TARGET_SUPPORTS_THREADS
- select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_WITH_MMU
depends on ADK_TARGET_ARCH_CSKY
+config ADK_TARGET_CPU_CSKY_CK810F
+ bool "ck810f"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_CPU_WITH_FPU
+ depends on ADK_TARGET_ARCH_CSKY
+
# epiphany
config ADK_TARGET_CPU_EPIPHANY
bool "epiphany"
@@ -501,12 +568,28 @@ config ADK_TARGET_CPU_IA64
select ADK_TARGET_USE_STATIC_LIBS_ONLY if ADK_TARGET_LIB_UCLIBC_NG
depends on ADK_TARGET_ARCH_IA64
+# kvx
+config ADK_TARGET_CPU_KVX
+ bool "kvx"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ depends on ADK_TARGET_ARCH_KVX
+
# lm32
config ADK_TARGET_CPU_LM32
bool "lm32"
select ADK_TARGET_UCLINUX
depends on ADK_TARGET_ARCH_LM32
+# loongarch
+config ADK_TARGET_CPU_LOONGARCH
+ bool "loongarch64"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_WITH_MMU
+ depends on ADK_TARGET_ARCH_LOONGARCH
+
# coldfire
config ADK_TARGET_CPU_CF_51
bool "coldfire 51"
@@ -536,8 +619,8 @@ config ADK_TARGET_CPU_CF_5208
bool "coldfire 5208"
select ADK_TARGET_SUPPORTS_THREADS
select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_SUPPORTS_NPTL
select ADK_TARGET_CPU_CF
- select ADK_TARGET_UCLINUX
depends on ADK_TARGET_ARCH_M68K
config ADK_TARGET_CPU_CF_5211A
@@ -774,7 +857,6 @@ config ADK_TARGET_CPU_MIPS_MIPS32
select ADK_TARGET_CPU_WITH_FPU
select ADK_TARGET_ARCH_MIPS_WITH_NAN_LEGACY
select ADK_LINUX_KERNEL_CPU_MIPS32_R1 if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_CPU_MIPS32_R1 if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_ARCH_MIPS
config ADK_TARGET_CPU_MIPS_MIPS32R2
@@ -786,7 +868,6 @@ config ADK_TARGET_CPU_MIPS_MIPS32R2
select ADK_TARGET_CPU_WITH_FPU
select ADK_TARGET_ARCH_MIPS_WITH_NAN_LEGACY
select ADK_LINUX_KERNEL_CPU_MIPS32_R2 if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_CPU_MIPS32_R2 if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_ARCH_MIPS
config ADK_TARGET_CPU_MIPS_MIPS32R6
@@ -798,7 +879,6 @@ config ADK_TARGET_CPU_MIPS_MIPS32R6
select ADK_TARGET_CPU_WITH_FPU
select ADK_TARGET_ARCH_MIPS_WITH_NAN_2008
select ADK_LINUX_KERNEL_CPU_MIPS32_R6 if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_CPU_MIPS32_R6 if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_ARCH_MIPS
config ADK_TARGET_CPU_MIPS_R4400
@@ -871,7 +951,6 @@ config ADK_TARGET_CPU_MIPS64_MIPS64
select ADK_TARGET_WITH_MMU
select ADK_TARGET_ARCH_MIPS_WITH_NAN_LEGACY
select ADK_LINUX_KERNEL_CPU_MIPS64_R1 if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_CPU_MIPS64_R1 if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_ARCH_MIPS64
config ADK_TARGET_CPU_MIPS64_MIPS64R2
@@ -883,7 +962,6 @@ config ADK_TARGET_CPU_MIPS64_MIPS64R2
select ADK_TARGET_WITH_MMU
select ADK_TARGET_ARCH_MIPS_WITH_NAN_LEGACY
select ADK_LINUX_KERNEL_CPU_MIPS64_R2 if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_CPU_MIPS64_R2 if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_ARCH_MIPS64
config ADK_TARGET_CPU_MIPS64_MIPS64R6
@@ -895,7 +973,6 @@ config ADK_TARGET_CPU_MIPS64_MIPS64R6
select ADK_TARGET_WITH_MMU
select ADK_TARGET_ARCH_MIPS_WITH_NAN_2008
select ADK_LINUX_KERNEL_CPU_MIPS64_R6 if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_CPU_MIPS64_R6 if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_ARCH_MIPS64
config ADK_TARGET_CPU_MIPS64_LOONGSON2F
@@ -935,10 +1012,10 @@ config ADK_TARGET_CPU_NDS32
# nios2
config ADK_TARGET_CPU_NIOS2
bool "nios2"
- select ADK_TARGET_SUPPORTS_THREADS
- select ADK_TARGET_SUPPORTS_LT
- select ADK_TARGET_SUPPORTS_NPTL
+ select ADK_TARGET_SUPPORTS_THREADS if ADK_TARGET_LIB_GLIBC
+ select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_LIB_GLIBC
select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_USE_STATIC_LIBS_ONLY if ADK_TARGET_LIB_UCLIBC_NG
depends on ADK_TARGET_ARCH_NIOS2
# openrisc
@@ -1094,40 +1171,84 @@ config ADK_TARGET_CPU_PPC64_POWERPC64
depends on ADK_TARGET_BIG_ENDIAN
# riscv
-config ADK_TARGET_CPU_RISCV32_RV32IMAFDC
- bool "rv32imafdc"
+config ADK_TARGET_CPU_RISCV32_RV32IMAC
+ bool "rv32imac"
select ADK_TARGET_SUPPORTS_THREADS
- select ADK_TARGET_SUPPORTS_NPTL
- select ADK_TARGET_WITH_MMU
- select ADK_TARGET_ABI_ILP32D
+ select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_ABI_ILP32
depends on ADK_TARGET_ARCH_RISCV32
-config ADK_TARGET_CPU_RISCV32_RV32IMAC
- bool "rv32imac"
+config ADK_TARGET_CPU_RISCV32_RV32IMA
+ bool "rv32ima"
select ADK_TARGET_SUPPORTS_THREADS
- select ADK_TARGET_SUPPORTS_NPTL
- select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_ABI_ILP32
depends on ADK_TARGET_ARCH_RISCV32
-config ADK_TARGET_CPU_RISCV64_RV64IMAFDC
- bool "rv64imafdc"
- select ADK_TARGET_SUPPORTS_THREADS if ADK_TARGET_LIB_GLIBC
- select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_LIB_GLIBC
- select ADK_TARGET_USE_STATIC_LIBS_ONLY if ADK_TARGET_LIB_UCLIBC_NG
- select ADK_TARGET_WITH_MMU
- select ADK_TARGET_ABI_LP64D
- depends on ADK_TARGET_ARCH_RISCV64
+config ADK_TARGET_CPU_RISCV32_RV32IMAFC
+ bool "rv32imafc"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_ABI_ILP32F
+ depends on ADK_TARGET_ARCH_RISCV32
+
+config ADK_TARGET_CPU_RISCV32_RV32IMADC
+ bool "rv32imadc"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_ABI_ILP32D
+ depends on ADK_TARGET_ARCH_RISCV32
+
+config ADK_TARGET_CPU_RISCV32_RV32IMAFDC
+ bool "rv32imafdc"
+ select ADK_TARGET_SUPPORTS_THREADS if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_LT if ADK_TARGET_WITH_MMU
+ depends on ADK_TARGET_ARCH_RISCV32
config ADK_TARGET_CPU_RISCV64_RV64IMAC
bool "rv64imac"
- select ADK_TARGET_SUPPORTS_THREADS if ADK_TARGET_LIB_GLIBC
- select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_LIB_GLIBC
- select ADK_TARGET_USE_STATIC_LIBS_ONLY if ADK_TARGET_LIB_UCLIBC_NG
- select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_ABI_LP64
+ depends on ADK_TARGET_ARCH_RISCV64
+
+config ADK_TARGET_CPU_RISCV64_RV64IMA
+ bool "rv64ima"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_ABI_LP64
depends on ADK_TARGET_ARCH_RISCV64
+config ADK_TARGET_CPU_RISCV64_RV64IMAFC
+ bool "rv64imafc"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_ABI_LP64F
+ depends on ADK_TARGET_ARCH_RISCV64
+
+config ADK_TARGET_CPU_RISCV64_RV64IMADC
+ bool "rv64imadc"
+ select ADK_TARGET_SUPPORTS_THREADS
+ select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_LT
+ select ADK_TARGET_ABI_LP64D
+ depends on ADK_TARGET_ARCH_RISCV64
+
+config ADK_TARGET_CPU_RISCV64_RV64IMAFDC
+ bool "rv64imafdc"
+ select ADK_TARGET_SUPPORTS_THREADS if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_NPTL if ADK_TARGET_WITH_MMU
+ select ADK_TARGET_SUPPORTS_LT if ADK_TARGET_WITH_MMU
+ depends on ADK_TARGET_ARCH_RISCV64
+
# rx
config ADK_TARGET_CPU_RX
bool "rx"
@@ -1712,8 +1833,6 @@ config ADK_TARGET_CPU_XTENSA_DC233C
select ADK_TARGET_KERNEL_UIMAGE
select ADK_LINUX_KERNEL_XTENSA_VARIANT_DC233C if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_XTENSA_VARIANT_DC233C if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_ARCH_XTENSA
config ADK_TARGET_CPU_XTENSA_DC232B
@@ -1723,7 +1842,6 @@ config ADK_TARGET_CPU_XTENSA_DC232B
select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_KERNEL_UIMAGE
select ADK_LINUX_KERNEL_XTENSA_VARIANT_DC232B if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_XTENSA_VARIANT_DC232B if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_ARCH_XTENSA
config ADK_TARGET_CPU_XTENSA_DE212
@@ -1732,7 +1850,6 @@ config ADK_TARGET_CPU_XTENSA_DE212
select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_KERNEL_IMAGE
select ADK_LINUX_KERNEL_XTENSA_VARIANT_CUSTOM if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_XTENSA_VARIANT_CUSTOM if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_ARCH_XTENSA
config ADK_TARGET_CPU_XTENSA_KC705_BE
@@ -1742,7 +1859,6 @@ config ADK_TARGET_CPU_XTENSA_KC705_BE
select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_KERNEL_UIMAGE
select ADK_LINUX_KERNEL_XTENSA_VARIANT_DC233C if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_XTENSA_VARIANT_DC233C if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_ARCH_XTENSA
config ADK_TARGET_CPU_XTENSA_FSF
@@ -1752,7 +1868,6 @@ config ADK_TARGET_CPU_XTENSA_FSF
select ADK_TARGET_SUPPORTS_LT
select ADK_TARGET_KERNEL_ZIMAGE
select ADK_LINUX_KERNEL_XTENSA_VARIANT_FSF if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_XTENSA_VARIANT_FSF if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_ARCH_XTENSA
endchoice
@@ -1875,6 +1990,7 @@ config ADK_TARGET_GCC_CPU
default "68060" if ADK_TARGET_CPU_M68K_68060
default "arc700" if ADK_TARGET_CPU_ARC_ARC700
default "archs" if ADK_TARGET_CPU_ARC_ARCHS
+ default "hs5x" if ADK_TARGET_CPU_ARC_ARC32
default "arm1176jzf-s" if ADK_TARGET_CPU_ARM_ARM1176JZF_S
default "arm926ej-s" if ADK_TARGET_CPU_ARM_ARM926EJ_S
default "cortex-a5" if ADK_TARGET_CPU_ARM_CORTEX_A5
@@ -1887,10 +2003,15 @@ config ADK_TARGET_GCC_CPU
default "cortex-a57" if ADK_TARGET_CPU_ARM_CORTEX_A57
default "cortex-a53" if ADK_TARGET_CPU_AARCH64_CORTEX_A53
default "cortex-a57" if ADK_TARGET_CPU_AARCH64_CORTEX_A57
+ default "cortex-a76" if ADK_TARGET_CPU_AARCH64_CORTEX_A76
default "cortex-m0" if ADK_TARGET_CPU_ARM_CORTEX_M0
default "cortex-m3" if ADK_TARGET_CPU_ARM_CORTEX_M3
default "cortex-m4" if ADK_TARGET_CPU_ARM_CORTEX_M4
default "cortex-m7" if ADK_TARGET_CPU_ARM_CORTEX_M7
+ default "ck807" if ADK_TARGET_CPU_CSKY_CK807
+ default "ck810" if ADK_TARGET_CPU_CSKY_CK810
+ default "ck807f" if ADK_TARGET_CPU_CSKY_CK807F
+ default "ck810f" if ADK_TARGET_CPU_CSKY_CK810F
default "ev4" if ADK_TARGET_CPU_ALPHA_EV4
default "ev5" if ADK_TARGET_CPU_ALPHA_EV5
default "ev6" if ADK_TARGET_CPU_ALPHA_EV6
@@ -1916,6 +2037,7 @@ config ADK_TARGET_GCC_CPU
default "8540" if ADK_TARGET_CPU_PPC_8540
default "8548" if ADK_TARGET_CPU_PPC_8548
default "970" if ADK_TARGET_CPU_PPC_970
+ default "marvell-pj4" if ADK_TARGET_CPU_ARM_MVEBU
# for gcc --with-arch
config ADK_TARGET_GCC_ARCH
@@ -1968,10 +2090,17 @@ config ADK_TARGET_GCC_ARCH
default "x86-64" if ADK_TARGET_CPU_X86_64
default "z900" if ADK_TARGET_CPU_S390_Z900
default "c674x" if ADK_TARGET_CPU_C6X
- default "rv32imafdc" if ADK_TARGET_CPU_RISCV32_RV32IMAFDC
+ default "rv32ima" if ADK_TARGET_CPU_RISCV32_RV32IMA
default "rv32imac" if ADK_TARGET_CPU_RISCV32_RV32IMAC
- default "rv64imafdc" if ADK_TARGET_CPU_RISCV64_RV64IMAFDC
+ default "rv32imafc" if ADK_TARGET_CPU_RISCV32_RV32IMAFC
+ default "rv32imadc" if ADK_TARGET_CPU_RISCV32_RV32IMADC
+ default "rv32imafdc" if ADK_TARGET_CPU_RISCV32_RV32IMAFDC
+ default "rv64ima" if ADK_TARGET_CPU_RISCV64_RV64IMA
default "rv64imac" if ADK_TARGET_CPU_RISCV64_RV64IMAC
+ default "rv64imafc" if ADK_TARGET_CPU_RISCV64_RV64IMAFC
+ default "rv64imadc" if ADK_TARGET_CPU_RISCV64_RV64IMADC
+ default "rv64imafdc" if ADK_TARGET_CPU_RISCV64_RV64IMAFDC
+ default "kv3-1" if ADK_TARGET_ARCH_KVX
# for CFLAGS/CXXFLAGS if gcc does not support --with-cpu
config ADK_TARGET_CPU_FLAGS
@@ -2006,9 +2135,10 @@ config ADK_TARGET_CPU_FLAGS
default "-mcpu=bf549m" if ADK_TARGET_CPU_BFIN_BF549M
default "-mcpu=bf561" if ADK_TARGET_CPU_BFIN_BF561
default "-mcpu=bf592" if ADK_TARGET_CPU_BFIN_BF592
- default "-mcpu=ck610" if ADK_TARGET_CPU_CSKY_CK610
default "-mcpu=ck807" if ADK_TARGET_CPU_CSKY_CK807
default "-mcpu=ck810" if ADK_TARGET_CPU_CSKY_CK810
+ default "-mcpu=ck807f" if ADK_TARGET_CPU_CSKY_CK807F
+ default "-mcpu=ck810f" if ADK_TARGET_CPU_CSKY_CK810F
default "-mcpu=v10" if ADK_TARGET_CPU_CRIS_CRISV10
default "-mcpu=v32" if ADK_TARGET_CPU_CRIS_CRISV32
default "-mh" if ADK_TARGET_CPU_H8300H
@@ -2138,6 +2268,8 @@ config ADK_TARGET_CPU_ARCH
default "alpha" if ADK_TARGET_ARCH_ALPHA
default "arm" if ADK_TARGET_ARCH_ARM && ADK_TARGET_LITTLE_ENDIAN
default "armeb" if ADK_TARGET_ARCH_ARM && ADK_TARGET_BIG_ENDIAN
+ default "arc32" if ADK_TARGET_ARCH_ARC && ADK_TARGET_CPU_ARC_ARC32
+ default "arc64" if ADK_TARGET_ARCH_ARC && ADK_TARGET_CPU_ARC_ARC64
default "arc" if ADK_TARGET_ARCH_ARC && ADK_TARGET_LITTLE_ENDIAN
default "arceb" if ADK_TARGET_ARCH_ARC && ADK_TARGET_BIG_ENDIAN
default "avr32" if ADK_TARGET_ARCH_AVR32
@@ -2159,7 +2291,9 @@ config ADK_TARGET_CPU_ARCH
default "h8300" if ADK_TARGET_ARCH_H8300
default "hppa" if ADK_TARGET_ARCH_HPPA
default "ia64" if ADK_TARGET_ARCH_IA64
+ default "kvx" if ADK_TARGET_ARCH_KVX
default "lm32" if ADK_TARGET_ARCH_LM32
+ default "loongarch64" if ADK_TARGET_ARCH_LOONGARCH
default "m32c" if ADK_TARGET_ARCH_M32C
default "m32r" if ADK_TARGET_ARCH_M32R
default "m68k" if ADK_TARGET_ARCH_M68K
diff --git a/target/config/Config.in.elf2flt b/target/config/Config.in.elf2flt
new file mode 100644
index 000000000..d9bf282d4
--- /dev/null
+++ b/target/config/Config.in.elf2flt
@@ -0,0 +1,19 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+choice
+prompt "elf2flt version"
+default ADK_TOOLCHAIN_ELF2FLT_2024_02
+depends on ADK_TARGET_BINFMT_FLAT
+
+config ADK_TOOLCHAIN_ELF2FLT_2024_02
+ bool "2024.02"
+ depends on !ADK_TARGET_ARCH_LM32
+
+config ADK_TOOLCHAIN_ELF2FLT_OLD
+ bool "old version"
+ depends on ADK_TARGET_ARCH_BFIN || \
+ ADK_TARGET_ARCH_LM32 || \
+ ADK_TARGET_ARCH_SH
+
+endchoice
diff --git a/target/config/Config.in.endian b/target/config/Config.in.endian
index d6c15da15..ffb39584c 100644
--- a/target/config/Config.in.endian
+++ b/target/config/Config.in.endian
@@ -16,11 +16,14 @@ depends on ADK_TARGET_SYSTEM_GENERIC_ARC \
|| ADK_TARGET_SYSTEM_GENERIC_SH \
|| ADK_TARGET_SYSTEM_GENERIC_XTENSA \
|| ADK_TARGET_SYSTEM_SYNOPSYS_NSIM \
+ || ADK_TARGET_SYSTEM_QEMU_ARC \
|| ADK_TARGET_SYSTEM_QEMU_AARCH64 \
+ || ADK_TARGET_SYSTEM_QEMU_CSKY \
|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \
|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800 \
|| ADK_TARGET_SYSTEM_QEMU_MIPS \
|| ADK_TARGET_SYSTEM_QEMU_MIPS64 \
+ || ADK_TARGET_SYSTEM_QEMU_PPC64 \
|| ADK_TARGET_SYSTEM_QEMU_SH \
|| ADK_TARGET_SYSTEM_QEMU_XTENSA
diff --git a/target/config/Config.in.float b/target/config/Config.in.float
index 4264dd437..3fd79d2b9 100644
--- a/target/config/Config.in.float
+++ b/target/config/Config.in.float
@@ -13,8 +13,7 @@ depends on ADK_TARGET_ARCH_ARM || \
config ADK_TARGET_HARD_FLOAT
bool "hard-float"
depends on ADK_TARGET_CPU_WITH_FPU \
- && !ADK_TARGET_CPU_WITH_FPU_FPV5 \
- && !ADK_TARGET_OS_FROSTED
+ && !ADK_TARGET_CPU_WITH_FPU_FPV5
config ADK_TARGET_HARD_FLOAT_SP
bool "hard-float-single-precision"
@@ -29,7 +28,7 @@ config ADK_TARGET_SOFT_FLOAT
config ADK_TARGET_SOFTFP_FLOAT
bool "softfp"
- depends on ADK_TARGET_ARCH_ARM && !ADK_TARGET_OS_FROSTED
+ depends on ADK_TARGET_ARCH_ARM
endchoice
diff --git a/target/config/Config.in.gdb b/target/config/Config.in.gdb
index d07a29ac1..c86930a30 100644
--- a/target/config/Config.in.gdb
+++ b/target/config/Config.in.gdb
@@ -21,33 +21,35 @@ choice
prompt "GNU debugger version"
depends on ADK_TOOLCHAIN_WITH_GDB
default ADK_TOOLCHAIN_GDB_H8300_GIT if ADK_TARGET_ARCH_H8300
-default ADK_TOOLCHAIN_GDB_RISCV_GIT if ADK_TARGET_ARCH_RISCV32
-default ADK_TOOLCHAIN_GDB_RISCV_GIT if ADK_TARGET_ARCH_RISCV64
-default ADK_TOOLCHAIN_GDB_8_2
+default ADK_TOOLCHAIN_GDB_14_2
config ADK_TOOLCHAIN_GDB_GIT
bool "git"
depends on !ADK_TARGET_ARCH_AVR32
depends on !ADK_TARGET_ARCH_H8300
depends on !ADK_TARGET_ARCH_NDS32
- depends on !ADK_TARGET_ARCH_RISCV32
- depends on !ADK_TARGET_ARCH_RISCV64
config ADK_TOOLCHAIN_GDB_H8300_GIT
bool "h8300-git"
depends on ADK_TARGET_ARCH_H8300
-config ADK_TOOLCHAIN_GDB_RISCV_GIT
- bool "riscv-git"
- depends on ADK_TARGET_ARCH_RISCV32 || ADK_TARGET_ARCH_RISCV64
+config ADK_TOOLCHAIN_GDB_14_2
+ bool "14.2"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_H8300
+ depends on !ADK_TARGET_ARCH_NDS32
+
+config ADK_TOOLCHAIN_GDB_13_2
+ bool "13.2"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_H8300
+ depends on !ADK_TARGET_ARCH_NDS32
-config ADK_TOOLCHAIN_GDB_8_2
- bool "8.2.1"
+config ADK_TOOLCHAIN_GDB_12_1
+ bool "12.1"
depends on !ADK_TARGET_ARCH_AVR32
depends on !ADK_TARGET_ARCH_H8300
depends on !ADK_TARGET_ARCH_NDS32
- depends on !ADK_TARGET_ARCH_RISCV32
- depends on !ADK_TARGET_ARCH_RISCV64
config ADK_TOOLCHAIN_GDB_6_7_1
bool "6.7.1"
diff --git a/target/config/Config.in.instructions b/target/config/Config.in.instructions
index 9393a5ac8..53b24b153 100644
--- a/target/config/Config.in.instructions
+++ b/target/config/Config.in.instructions
@@ -12,8 +12,6 @@ config ADK_TARGET_ARCH_ARM_WITH_THUMB
bool "thumb"
select ADK_LINUX_KERNEL_ARM_THUMB if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_THUMB2_KERNEL if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_ARM_THUMB if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_THUMB2_KERNEL if ADK_TARGET_OS_WALDUX
depends on ADK_TARGET_CPU_WITH_THUMB || ADK_TARGET_CPU_WITH_THUMB2
endchoice
diff --git a/target/config/Config.in.kernelfmt b/target/config/Config.in.kernelfmt
index e2fc675c3..23d800d24 100644
--- a/target/config/Config.in.kernelfmt
+++ b/target/config/Config.in.kernelfmt
@@ -31,6 +31,9 @@ config ADK_TARGET_KERNEL_VMLINUX_BIN
config ADK_TARGET_KERNEL_VMLINUX_BOOTP
bool
+config ADK_TARGET_KERNEL_VMLINUX_EFI
+ bool
+
config ADK_TARGET_KERNEL_VMLINUX_GZ
bool
@@ -40,8 +43,15 @@ config ADK_TARGET_KERNEL_VMLINUX_SREC
config ADK_TARGET_KERNEL_XIPIMAGE
bool
+config ADK_TARGET_KERNEL_SIMPLEIMAGE
+ bool
+
+config ADK_TARGET_KERNEL_LOADER
+ bool
+
config ADK_TARGET_KERNEL
string
+ default "loader" if ADK_TARGET_KERNEL_LOADER
default "uImage" if ADK_TARGET_KERNEL_UIMAGE
default "uImage.bin" if ADK_TARGET_KERNEL_UIMAGEBIN
default "zImage" if ADK_TARGET_KERNEL_ZIMAGE
@@ -52,6 +62,7 @@ config ADK_TARGET_KERNEL
default "vmlinux.srec" if ADK_TARGET_KERNEL_VMLINUX_SREC
default "vmlinux.bin" if ADK_TARGET_KERNEL_VMLINUX_BIN
default "bootpfile" if ADK_TARGET_KERNEL_VMLINUX_BOOTP
+ default "vmlinux.efi" if ADK_TARGET_KERNEL_VMLINUX_EFI
default "vmlinux.gz" if ADK_TARGET_KERNEL_VMLINUX_GZ
default "xipImage" if ADK_TARGET_KERNEL_XIPIMAGE
default "bzImage" if ADK_TARGET_KERNEL_BZIMAGE
@@ -60,3 +71,15 @@ config ADK_TARGET_KERNEL
config ADK_TARGET_KERNEL_WITH_COMPRESSION
bool
+
+config ADK_TARGET_KERNEL_LOADADDR
+ hex
+ default 0x8000 if ADK_TARGET_SYSTEM_SYNOLOGY_DS414
+ default 0x40008000 if ADK_TARGET_SYSTEM_BANANA_PRO
+ default 0x44000000 if ADK_TARGET_SYSTEM_BANANA_P2_ZERO
+ default 0x40008000 if ADK_TARGET_SYSTEM_ORANGE_PI0
+ default 0xc0008000 if ADK_TARGET_SYSTEM_ST_STM32F746G
+
+config ADK_TARGET_KERNEL_APPEND_DTB
+ string
+ default "armada-xp-synology-ds414" if ADK_TARGET_SYSTEM_SYNOLOGY_DS414
diff --git a/target/config/Config.in.libc b/target/config/Config.in.libc
index b548d8fd6..9b9bc146e 100644
--- a/target/config/Config.in.libc
+++ b/target/config/Config.in.libc
@@ -4,7 +4,7 @@
choice
prompt "Target C library"
depends on !ADK_TARGET_CHOOSE_ARCH
-default ADK_TARGET_LIB_UCLIBC_NG if ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+default ADK_TARGET_LIB_UCLIBC_NG if ADK_TARGET_OS_LINUX
config ADK_TARGET_LIB_UCLIBC_NG
bool "uClibc-ng"
@@ -23,6 +23,7 @@ config ADK_TARGET_LIB_UCLIBC_NG
ADK_TARGET_ARCH_H8300 || \
ADK_TARGET_ARCH_HPPA || \
ADK_TARGET_ARCH_IA64 || \
+ ADK_TARGET_ARCH_KVX || \
ADK_TARGET_ARCH_LM32 || \
ADK_TARGET_ARCH_M68K || \
ADK_TARGET_ARCH_METAG || \
@@ -33,6 +34,7 @@ config ADK_TARGET_LIB_UCLIBC_NG
ADK_TARGET_ARCH_NIOS2 || \
ADK_TARGET_ARCH_OR1K || \
ADK_TARGET_ARCH_PPC || \
+ ADK_TARGET_ARCH_RISCV32 || \
ADK_TARGET_ARCH_RISCV64 || \
ADK_TARGET_ARCH_SH || \
ADK_TARGET_ARCH_SPARC || \
@@ -40,7 +42,7 @@ config ADK_TARGET_LIB_UCLIBC_NG
ADK_TARGET_ARCH_TILE || \
ADK_TARGET_ARCH_X86 || \
ADK_TARGET_ARCH_X86_64 || \
- ADK_TARGET_ARCH_XTENSA) && ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ ADK_TARGET_ARCH_XTENSA) && ADK_TARGET_OS_LINUX
help
https://uclibc-ng.org
@@ -51,12 +53,15 @@ config ADK_TARGET_LIB_MUSL
ADK_TARGET_ARCH_AARCH64 || \
ADK_TARGET_ARCH_ARM || \
ADK_TARGET_ARCH_M68K || \
+ ADK_TARGET_ARCH_LOONGARCH || \
ADK_TARGET_ARCH_MICROBLAZE || \
ADK_TARGET_ARCH_MIPS || \
ADK_TARGET_ARCH_MIPS64 || \
ADK_TARGET_ARCH_OR1K || \
ADK_TARGET_ARCH_PPC || \
ADK_TARGET_ARCH_PPC64 || \
+ ADK_TARGET_ARCH_RISCV32 || \
+ ADK_TARGET_ARCH_RISCV64 || \
ADK_TARGET_ARCH_S390 || \
ADK_TARGET_ARCH_SH || \
ADK_TARGET_ARCH_X86 || \
@@ -70,22 +75,24 @@ config ADK_TARGET_LIB_GLIBC
depends on (\
ADK_TARGET_ARCH_AARCH64 || \
ADK_TARGET_ARCH_ALPHA || \
+ ADK_TARGET_ARCH_ARC || \
ADK_TARGET_ARCH_ARM || \
ADK_TARGET_ARCH_CSKY || \
ADK_TARGET_ARCH_HPPA || \
ADK_TARGET_ARCH_IA64 || \
+ ADK_TARGET_ARCH_LOONGARCH || \
ADK_TARGET_ARCH_M68K || \
ADK_TARGET_ARCH_MICROBLAZE || \
ADK_TARGET_ARCH_MIPS || \
ADK_TARGET_ARCH_MIPS64 || \
ADK_TARGET_ARCH_NIOS2 || \
+ ADK_TARGET_ARCH_OR1K || \
ADK_TARGET_ARCH_PPC || \
ADK_TARGET_ARCH_PPC64 || \
ADK_TARGET_ARCH_S390 || \
ADK_TARGET_CPU_SH_SH4 || \
ADK_TARGET_CPU_SH_SH4A || \
ADK_TARGET_ARCH_SPARC64 || \
- ADK_TARGET_ARCH_TILE || \
ADK_TARGET_ARCH_RISCV32 || \
ADK_TARGET_ARCH_RISCV64 || \
ADK_TARGET_ARCH_X86 || \
@@ -101,6 +108,7 @@ config ADK_TARGET_LIB_NEWLIB
ADK_TARGET_ARCH_ARC || \
ADK_TARGET_ARCH_ARM || \
ADK_TARGET_ARCH_BFIN || \
+ ADK_TARGET_ARCH_C6X || \
ADK_TARGET_ARCH_CR16 || \
ADK_TARGET_ARCH_CRIS || \
ADK_TARGET_ARCH_CSKY || \
@@ -132,10 +140,7 @@ config ADK_TARGET_LIB_NEWLIB
ADK_TARGET_ARCH_X86 || \
ADK_TARGET_ARCH_X86_64 || \
ADK_TARGET_ARCH_XTENSA) && \
- (ADK_TARGET_OS_BAREMETAL || \
- ADK_TARGET_OS_FROSTED || \
- ADK_TARGET_OS_RTEMS || \
- ADK_TARGET_OS_ZEPHYR )
+ ADK_TARGET_OS_BAREMETAL
help
https://sourceware.org/newlib/
@@ -145,52 +150,37 @@ choice
prompt "Target C library version"
depends on !ADK_TARGET_CHOOSE_ARCH
-config ADK_TARGET_LIB_UCLIBC_NG_1_0_31
- bool "1.0.31"
+config ADK_TARGET_LIB_UCLIBC_NG_1_0_47
+ bool "1.0.47"
depends on ADK_TARGET_LIB_UCLIBC_NG
config ADK_TARGET_LIB_UCLIBC_NG_GIT
bool "git"
depends on ADK_TARGET_LIB_UCLIBC_NG && ADK_EXPERIMENTAL
-config ADK_TARGET_LIB_GLIBC_2_28
- bool "2.28"
- depends on ADK_TARGET_LIB_GLIBC && !ADK_TARGET_ARCH_CSKY
-
-config ADK_TARGET_LIB_GLIBC_CSKY
- bool "csky"
- depends on ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_CSKY
+config ADK_TARGET_LIB_GLIBC_2_39
+ bool "2.39"
+ depends on ADK_TARGET_LIB_GLIBC
config ADK_TARGET_LIB_GLIBC_GIT
bool "git"
- depends on ADK_TARGET_LIB_GLIBC && !ADK_TARGET_ARCH_CSKY && ADK_EXPERIMENTAL
+ depends on ADK_TARGET_LIB_GLIBC && ADK_EXPERIMENTAL
-config ADK_TARGET_LIB_MUSL_1_1_20
- bool "1.1.20"
+config ADK_TARGET_LIB_MUSL_1_2_5
+ bool "1.2.5"
depends on ADK_TARGET_LIB_MUSL
config ADK_TARGET_LIB_MUSL_GIT
bool "git"
depends on ADK_TARGET_LIB_MUSL && ADK_EXPERIMENTAL
-config ADK_TARGET_LIB_NEWLIB_3_0_0
- bool "3.0.0"
- depends on ADK_TARGET_LIB_NEWLIB \
- && !ADK_TARGET_ARCH_XTENSA \
- && !ADK_TARGET_OS_FROSTED \
- && !ADK_TARGET_OS_RTEMS
-
-config ADK_TARGET_LIB_NEWLIB_XTENSA
- bool "xtensa"
- depends on ADK_TARGET_LIB_NEWLIB && ADK_TARGET_ARCH_XTENSA
-
-config ADK_TARGET_LIB_NEWLIB_FROSTED
- bool "frosted-git"
- depends on ADK_TARGET_LIB_NEWLIB && ADK_TARGET_OS_FROSTED
+config ADK_TARGET_LIB_NEWLIB_4_4_0
+ bool "4.4.0"
+ depends on ADK_TARGET_LIB_NEWLIB
config ADK_TARGET_LIB_NEWLIB_GIT
bool "git"
- depends on ADK_TARGET_LIB_NEWLIB && !ADK_TARGET_OS_FROSTED && ADK_EXPERIMENTAL
+ depends on ADK_TARGET_LIB_NEWLIB && ADK_EXPERIMENTAL
endchoice
@@ -210,10 +200,10 @@ config ADK_TARGET_LIBC
config ADK_LIBC_VERSION
string
- default "1.0.31" if ADK_TARGET_LIB_UCLIBC_NG_1_0_31
- default "1.1.20" if ADK_TARGET_LIB_MUSL_1_1_20
- default "2.28" if ADK_TARGET_LIB_GLIBC_2_28
- default "3.0.0" if ADK_TARGET_LIB_NEWLIB_3_0_0
+ default "1.0.47" if ADK_TARGET_LIB_UCLIBC_NG_1_0_47
+ default "1.2.5" if ADK_TARGET_LIB_MUSL_1_2_5
+ default "2.39" if ADK_TARGET_LIB_GLIBC_2_39
+ default "4.4.0" if ADK_TARGET_LIB_NEWLIB_4_4_0
default "git" if ADK_TARGET_LIB_UCLIBC_NG_GIT || \
ADK_TARGET_LIB_MUSL_GIT || \
ADK_TARGET_LIB_GLIBC_GIT || \
@@ -230,6 +220,7 @@ config ADK_TARGET_SUFFIX
default "gnux32" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ABI_X32 && ADK_LINUX_64
default "gnuspe" if ADK_TARGET_LIB_GLIBC && ADK_TARGET_ARCH_PPC && ADK_TARGET_ARCH_PPC_WITH_SPE
default "gnu" if ADK_TARGET_LIB_GLIBC
+ default "uclinuxfdpiceabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_BINFMT_FDPIC
default "uclibceabihf" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
default "uclibceabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM
default "uclinuxeabi" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_ARM && ADK_TARGET_UCLINUX
@@ -238,7 +229,7 @@ config ADK_TARGET_SUFFIX
default "uclibcabi32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_O32
default "uclibc32" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ABI_32 && ADK_LINUX_64
default "uclibcspe" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_PPC && ADK_TARGET_ARCH_PPC_WITH_SPE
- default "uclibcabiv2" if ADK_TARGET_LIB_UCLIBC_NG && (ADK_TARGET_CPU_CSKY_CK807 || ADK_TARGET_CPU_CSKY_CK810)
+ default "uclibcabiv2" if ADK_TARGET_LIB_UCLIBC_NG && ADK_TARGET_ARCH_CSKY
default "uclibc" if ADK_TARGET_LIB_UCLIBC_NG
default "musleabihf" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM && ADK_TARGET_HARD_FLOAT
default "musleabi" if ADK_TARGET_LIB_MUSL && ADK_TARGET_ARCH_ARM
diff --git a/target/config/Config.in.libs b/target/config/Config.in.libs
index 55af79b68..ba02fb8f9 100644
--- a/target/config/Config.in.libs
+++ b/target/config/Config.in.libs
@@ -2,7 +2,7 @@
# material, please see the LICENCE file in the top-level directory.
choice
-depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+depends on ADK_TARGET_OS_LINUX && !ADK_TARGET_CHOOSE_ARCH
bool "Library support"
config ADK_TARGET_USE_SHARED_LIBS_ONLY
@@ -11,7 +11,7 @@ config ADK_TARGET_USE_SHARED_LIBS_ONLY
config ADK_TARGET_USE_STATIC_LIBS_ONLY
bool "Create static libraries only and link statically"
- select BUSYBOX_STATIC
+ select BUSYBOX_STATIC if !ADK_TARGET_BINFMT_ELF
help
Useful for debugging of dynamic linker problems. Be aware of the fact, that uClibc and glibc
still requires libgcc_so.so.1 for pthread_cancel. Glibc also requires libnss_*.so libraries
diff --git a/target/config/Config.in.mmu b/target/config/Config.in.mmu
index 1d5cd52e1..209101e48 100644
--- a/target/config/Config.in.mmu
+++ b/target/config/Config.in.mmu
@@ -10,7 +10,7 @@ config ADK_TARGET_WITH_MMU
&& !ADK_TARGET_ARCH_H8300 \
&& !ADK_TARGET_CPU_SH_J2 \
&& !ADK_TARGET_ARCH_LM32 \
- && !ADK_TARGET_CPU_SH_SH2
+ && !ADK_TARGET_CPU_SH_SH2 \
+ && !ADK_TARGET_CPU_CF_5208
select ADK_LINUX_KERNEL_MMU if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_MMU if ADK_TARGET_OS_WALDUX
default y
diff --git a/target/config/Config.in.os b/target/config/Config.in.os
index 797567ce1..6f6e96494 100644
--- a/target/config/Config.in.os
+++ b/target/config/Config.in.os
@@ -9,37 +9,13 @@ config ADK_TARGET_OS_LINUX
help
Create a Linux system or toolchain.
-config ADK_TARGET_OS_WALDUX
- bool "Waldux"
- help
- Create a Waldux system or toolchain.
-
config ADK_TARGET_OS_BAREMETAL
bool "Bare metal"
help
Create a bare metal appliance or toolchain.
-config ADK_TARGET_OS_RTEMS
- bool "RTEMS"
- help
- Create a RTEMS appliance or toolchain.
-
-config ADK_TARGET_OS_FROSTED
- bool "Frosted"
- help
- Create a frosted appliance or toolchain.
-
-config ADK_TARGET_OS_ZEPHYR
- bool "Zephyr"
- help
- Create a zephyr appliance or toolchain.
-
endchoice
config ADK_TARGET_OS
string
default "linux" if ADK_TARGET_OS_LINUX
- default "waldux" if ADK_TARGET_OS_WALDUX
- default "frosted" if ADK_TARGET_OS_FROSTED
- default "rtems5.0.0" if ADK_TARGET_OS_RTEMS
- default "zephyr" if ADK_TARGET_OS_ZEPHYR
diff --git a/target/config/Config.in.qemuopts b/target/config/Config.in.qemuopts
index 012e93efe..78c608b49 100644
--- a/target/config/Config.in.qemuopts
+++ b/target/config/Config.in.qemuopts
@@ -33,34 +33,16 @@ config ADK_TARGET_QEMU_WITH_BLOCK
|| ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER
select ADK_LINUX_KERNEL_MMC_ARMMMCI if ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
select ADK_LINUX_KERNEL_BLK_DEV_CMD64X if ADK_TARGET_SYSTEM_QEMU_ALPHA
- select ADK_WALDUX_KERNEL_SCSI_SYM53C8XX_2 if ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB
- select ADK_WALDUX_KERNEL_MTD_M25P80 if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \
- || ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800
- select ADK_WALDUX_KERNEL_ATA_PIIX if ADK_TARGET_SYSTEM_QEMU_MIPS \
- || ADK_TARGET_SYSTEM_QEMU_MIPS64 \
- || ADK_TARGET_SYSTEM_QEMU_X86 \
- || ADK_TARGET_SYSTEM_QEMU_X86_64
- select ADK_WALDUX_KERNEL_PATA_MACIO if ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO \
- || ADK_TARGET_SYSTEM_QEMU_PPC_MACPPC
- select ADK_WALDUX_KERNEL_SCSI_IBMVSCSI if ADK_TARGET_SYSTEM_QEMU_PPC64
- select ADK_WALDUX_KERNEL_SCSI_MAC_ESP if ADK_TARGET_SYSTEM_QEMU_M68K_Q800
- select ADK_WALDUX_KERNEL_SCSI_SUNESP if ADK_TARGET_SYSTEM_QEMU_SPARC
- select ADK_WALDUX_KERNEL_PATA_CMD64X if ADK_TARGET_SYSTEM_QEMU_SPARC64
- select ADK_WALDUX_KERNEL_PATA_PLATFORM if ADK_TARGET_SYSTEM_QEMU_SH
- select ADK_WALDUX_KERNEL_PATA_PXA if ADK_TARGET_QEMU_ARM_SPITZ \
- || ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER
- select ADK_WALDUX_KERNEL_MMC_ARMMMCI if ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
- select ADK_WALDUX_KERNEL_BLK_DEV_CMD64X if ADK_TARGET_SYSTEM_QEMU_ALPHA
menu "Qemu system configuration"
depends on ADK_TARGET_QEMU && (ADK_TARGET_SYSTEM_QEMU_X86_64 \
|| ADK_TARGET_SYSTEM_QEMU_RISCV32 \
|| ADK_TARGET_SYSTEM_QEMU_RISCV64 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 \
+ || ADK_TARGET_SYSTEM_QEMU_CSKY \
|| ADK_TARGET_SYSTEM_QEMU_X86 \
|| ADK_TARGET_SYSTEM_QEMU_AARCH64 \
+ || ADK_TARGET_SYSTEM_QEMU_ARC \
+ || ADK_TARGET_SYSTEM_QEMU_M68K_VIRT \
|| ADK_TARGET_SYSTEM_QEMU_SPARC64)
choice
@@ -107,23 +89,6 @@ config ADK_TARGET_QEMU_WITH_GRAPHIC
select ADK_LINUX_KERNEL_MOUSE_PS2 if ADK_TARGET_SYSTEM_QEMU_X86 || ADK_TARGET_SYSTEM_QEMU_X86_64
select ADK_LINUX_KERNEL_USB_HID if ADK_TARGET_SYSTEM_QEMU_SH
select ADK_LINUX_KERNEL_USB_OHCI_HCD_PLATFORM if ADK_TARGET_SYSTEM_QEMU_SH
- select ADK_WALDUX_KERNEL_VT
- select ADK_WALDUX_KERNEL_VT_CONSOLE
- select ADK_WALDUX_KERNEL_FONTS
- select ADK_WALDUX_KERNEL_FONT_8x16
- select ADK_WALDUX_KERNEL_FB
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- select ADK_WALDUX_KERNEL_INPUT
- select ADK_WALDUX_KERNEL_INPUT_KEYBOARD
- select ADK_WALDUX_KERNEL_INPUT_MOUSE
- select ADK_WALDUX_KERNEL_INPUT_MOUSEDEV
- select ADK_WALDUX_KERNEL_PLAT_VERSATILE_CLCD if ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
- select ADK_WALDUX_KERNEL_FB_SM501 if ADK_TARGET_SYSTEM_QEMU_SH
- select ADK_WALDUX_KERNEL_DRM_BOCHS if ADK_TARGET_SYSTEM_QEMU_X86 || ADK_TARGET_SYSTEM_QEMU_X86_64
- select ADK_WALDUX_KERNEL_KEYBOARD_ATKBD if ADK_TARGET_SYSTEM_QEMU_X86 || ADK_TARGET_SYSTEM_QEMU_X86_64
- select ADK_WALDUX_KERNEL_MOUSE_PS2 if ADK_TARGET_SYSTEM_QEMU_X86 || ADK_TARGET_SYSTEM_QEMU_X86_64
- select ADK_WALDUX_KERNEL_USB_HID if ADK_TARGET_SYSTEM_QEMU_SH
- select ADK_WALDUX_KERNEL_USB_OHCI_HCD_PLATFORM if ADK_TARGET_SYSTEM_QEMU_SH
endchoice
@@ -131,19 +96,19 @@ choice
prompt "Qemu Emulation using VirtIO drivers"
depends on ADK_TARGET_SYSTEM_QEMU_SPARC64 || \
ADK_TARGET_SYSTEM_QEMU_AARCH64 || \
+ ADK_TARGET_SYSTEM_QEMU_ARC || \
+ ADK_TARGET_SYSTEM_QEMU_CSKY || \
+ ADK_TARGET_SYSTEM_QEMU_M68K_VIRT || \
ADK_TARGET_SYSTEM_QEMU_RISCV32 || \
ADK_TARGET_SYSTEM_QEMU_RISCV64 || \
- ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 || \
- ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 || \
- ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 || \
ADK_TARGET_SYSTEM_QEMU_X86 || \
ADK_TARGET_SYSTEM_QEMU_X86_64
default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_AARCH64
-default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
-default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
-default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
+default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_ARC
+default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_CSKY
default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_RISCV32
default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_RISCV64
+default ADK_TARGET_QEMU_WITH_VIRTIO if ADK_TARGET_SYSTEM_QEMU_M68K_VIRT
config ADK_TARGET_QEMU_WITHOUT_VIRTIO
bool "disabled"
@@ -156,11 +121,6 @@ config ADK_TARGET_QEMU_WITH_VIRTIO
select ADK_LINUX_KERNEL_VIRTIO_NET
select ADK_LINUX_KERNEL_VIRTIO_BLK
select ADK_LINUX_KERNEL_VIRTIO_CONSOLE
- select ADK_WALDUX_KERNEL_VIRTIO
- select ADK_WALDUX_KERNEL_VIRTIO_PCI
- select ADK_WALDUX_KERNEL_VIRTIO_NET
- select ADK_WALDUX_KERNEL_VIRTIO_BLK
- select ADK_WALDUX_KERNEL_VIRTIO_CONSOLE
endchoice
diff --git a/target/config/Config.in.rootfs b/target/config/Config.in.rootfs
index d9a459455..5c658fd02 100644
--- a/target/config/Config.in.rootfs
+++ b/target/config/Config.in.rootfs
@@ -24,11 +24,12 @@ config ADK_TARGET_ROOTFS_INITRAMFSPIGGYBACK
ADK_TARGET_ARCH_MIPS || \
ADK_TARGET_ARCH_MIPS64 || \
ADK_TARGET_ARCH_PPC || \
+ ADK_TARGET_ARCH_RISCV32 || \
+ ADK_TARGET_ARCH_RISCV64 || \
ADK_TARGET_ARCH_SH || \
ADK_TARGET_ARCH_SPARC || \
ADK_TARGET_ARCH_X86 || \
ADK_TARGET_ARCH_X86_64
- depends on !ADK_TARGET_VBOX
depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532
help
create an read-only initramfs system.
@@ -49,12 +50,10 @@ config ADK_TARGET_ROOTFS_INITRAMFS
ADK_TARGET_ARCH_SPARC || \
ADK_TARGET_ARCH_X86 || \
ADK_TARGET_ARCH_X86_64
- depends on !ADK_TARGET_VBOX
depends on !ADK_TARGET_SYSTEM_MIKROTIK_RB532
depends on !ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208
depends on !ADK_TARGET_SYSTEM_QEMU_METAG
select ADK_LINUX_KERNEL_BLK_DEV_INITRD if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_BLK_DEV_INITRD if ADK_TARGET_OS_WALDUX
help
create an read-only initramfs system.
@@ -73,7 +72,6 @@ config ADK_TARGET_ROOTFS_SQUASHFS
config ADK_TARGET_ROOTFS_JFFS2
bool "Compressed read-write root filesystem (jffs2)"
select ADK_LINUX_KERNEL_JFFS2_FS if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_JFFS2_FS if ADK_TARGET_OS_WALDUX
select ADK_HOST_NEED_MTD_UTILS
select ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_QEMU
depends on ADK_TARGET_WITH_MTD \
@@ -85,7 +83,6 @@ config ADK_TARGET_ROOTFS_JFFS2
config ADK_TARGET_ROOTFS_UBIFS
bool "UBIFS root filesystem (NAND)"
select ADK_LINUX_KERNEL_UBIFS_FS if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_UBIFS_FS if ADK_TARGET_OS_WALDUX
select ADK_HOST_NEED_MTD_UTILS
select ADK_HOST_NEED_KERNEL2MINOR
depends on ADK_TARGET_WITH_NAND
@@ -102,25 +99,17 @@ config ADK_TARGET_ROOTFS_NFSROOT
select ADK_LINUX_KERNEL_NFS_COMMON if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_IP_PNP if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_IP_PNP_DHCP if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_NETWORK_FILESYSTEMS if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_SUNRPC if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_NFS_FS if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_NFS_V3 if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_ROOT_NFS if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_NFS_COMMON if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_IP_PNP if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_IP_PNP_DHCP if ADK_TARGET_OS_WALDUX
depends on !ADK_TARGET_QEMU && \
!ADK_TARGET_SIM && \
- !ADK_TARGET_VBOX && \
!ADK_TARGET_SYSTEM_ARANYM_M68K && \
!ADK_TARGET_SYSTEM_LINKSYS_NSLU2
+ depends on ADK_TARGET_WITH_NETDEVICE
help
Root filesystem mounted via NFS. (DHCP)
config ADK_TARGET_ROOTFS_USB
bool "Boot from USB stick"
- select ADK_LINUX_KERNEL_NLS if ADK_TARGET_OS_LINUX
+ select ADK_LINUX_KERNEL_EXT4_FS if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_SCSI if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_BLK_DEV_SD if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_USB if ADK_TARGET_OS_LINUX
@@ -128,15 +117,7 @@ config ADK_TARGET_ROOTFS_USB
select ADK_LINUX_KERNEL_USB_OHCI_HCD if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_USB_UHCI_HCD if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_USB_STORAGE if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_NLS if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_SCSI if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_BLK_DEV_SD if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_USB if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_USB_EHCI_HCD if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_USB_OHCI_HCD if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_USB_UHCI_HCD if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_USB_STORAGE if ADK_TARGET_OS_WALDUX
- select ADK_PACKAGE_ADKINSTALL
+ select ADK_PACKAGE_FWINSTALL
depends on ADK_TARGET_WITH_USB_BOOT \
|| ADK_TARGET_GENERIC
help
@@ -148,10 +129,6 @@ config ADK_TARGET_ROOTFS_ISO
select ADK_LINUX_KERNEL_JOLIET if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_SCSI if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_BLK_DEV_SR if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_ISO9660_FS if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_JOLIET if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_SCSI if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_BLK_DEV_SR if ADK_TARGET_OS_WALDUX
select ADK_HOST_NEED_CDRTOOLS
select ADK_HOST_NEED_SYSLINUX
depends on ADK_TARGET_ARCH_X86
@@ -165,15 +142,13 @@ config ADK_TARGET_ROOTFS_INITRAMFSARCHIVE
&& !ADK_TARGET_SYSTEM_QEMU_METAG \
&& !ADK_TARGET_SIM
select ADK_LINUX_KERNEL_BLK_DEV_INITRD if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_BLK_DEV_INITRD if ADK_TARGET_OS_WALDUX
help
Use this option if your planning to create a initramfs.
config ADK_TARGET_ROOTFS_ARCHIVE
bool "Archive usable for ext4 filesystems"
- select ADK_HOST_NEED_GENEXT2FS if ADK_TARGET_QEMU || ADK_TARGET_VBOX
+ select ADK_HOST_NEED_GENEXT2FS if ADK_TARGET_QEMU
select ADK_LINUX_KERNEL_EXT4_FS if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_EXT4_FS if ADK_TARGET_OS_WALDUX
select ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_QEMU
depends on !ADK_TARGET_SIM \
&& !ADK_TARGET_ARCH_NDS32 \
@@ -188,12 +163,10 @@ config ADK_TARGET_ROOTFS_GENIMAGE
bool "Create a disk image for the target"
select ADK_LINUX_KERNEL_EXT4_FS if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_VFAT_FS if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_EXT4_FS if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_VFAT_FS if ADK_TARGET_OS_WALDUX
+ select ADK_LINUX_KERNEL_EFI_PARTITION if ADK_TARGET_OS_LINUX
select ADK_TARGET_QEMU_WITH_BLOCK if ADK_TARGET_QEMU
select ADK_TARGET_QEMU_WITH_BOOTLOADER if ADK_TARGET_QEMU
select ADK_HOST_BUILD_GENIMAGE
- depends on ADK_TARGET_ARCH_X86_64
help
Create a complete disk image for the target with genimage.
@@ -202,9 +175,10 @@ endchoice
config ADK_TARGET_ROOTDEV
string "Root device name"
depends on ADK_TARGET_ROOTFS_GENIMAGE
+ default "mmcblk0" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "sda"
help
- If you a embedded device with multiple block devices and want to
+ If you have a embedded device with multiple block devices and want to
set the root device name.
config ADK_TARGET_DUAL_BOOT
@@ -221,7 +195,11 @@ config ADK_TARGET_DUAL_BOOT
config ADK_TARGET_GENIMAGE_FILENAME
string
- default "genimage-efi-dual.cfg" if ADK_PACKAGE_GRUB_EFI_X86_64 || ADK_PACKAGE_GRUB_EFI_X86 && ADK_TARGET_DUAL_BOOT
+ default "genimage-efi-dual.cfg" if (ADK_PACKAGE_GRUB_EFI_X86_64 || ADK_PACKAGE_GRUB_EFI_X86) && ADK_TARGET_DUAL_BOOT
default "genimage-efi.cfg" if ADK_PACKAGE_GRUB_EFI_X86_64 || ADK_PACKAGE_GRUB_EFI_X86
default "genimage-dual.cfg" if ADK_TARGET_DUAL_BOOT
default "genimage.cfg"
+
+config ADK_TARGET_EXTLINUX_FILENAME
+ string
+ default "extlinux.conf"
diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime
index 9c9b9cd49..2a09782cf 100644
--- a/target/config/Config.in.runtime
+++ b/target/config/Config.in.runtime
@@ -15,81 +15,46 @@ prompt "init system"
depends on !ADK_APPLIANCE_TOOLCHAIN
default ADK_RUNTIME_INIT_SYSV if ADK_PACKAGE_BUSYBOX
default ADK_RUNTIME_INIT_SIMPLEINIT if ADK_PACKAGE_TOOLBOX
+default ADK_RUNTIME_INIT_SIMPLEINIT if ADK_TARGET_SYSTEM_SIPEED_MAIX_BIT
config ADK_RUNTIME_INIT_SYSV
bool "Use busybox init"
- depends on ADK_PACKAGE_BUSYBOX
+ depends on ADK_PACKAGE_BUSYBOX && \
+ !ADK_TARGET_SYSTEM_SIPEED_MAIX_BIT
config ADK_RUNTIME_INIT_SIMPLEINIT
bool "Use a very simple init"
select ADK_PACKAGE_SIMPLEINIT
-config ADK_RUNTIME_INIT_SYSVINIT
- bool "Use system V init"
- select ADK_PACKAGE_SYSVINIT
- select ADK_PACKAGE_AGETTY
- select ADK_PACKAGE_GAWK
- select ADK_PACKAGE_IP
- select ADK_PACKAGE_MOUNT
-
-config ADK_RUNTIME_INIT_S6
- bool "Use s6 init and supervision"
- select ADK_PACKAGE_S6
- select ADK_PACKAGE_S6_PORTABLE_UTILS
- select ADK_PACKAGE_S6_LINUX_UTILS
-
-config ADK_RUNTIME_INIT_SYSTEMD
- bool "Use systemd init and supervision"
- select ADK_PACKAGE_SYSTEMD
- select ADK_PACKAGE_DBUS
- select ADK_PACKAGE_DBUS_WITH_SYSTEMD
- select ADK_TARGET_LIBC_WITH_LOCALE if ADK_TARGET_LIB_UCLIBC_NG
- select ADK_TARGET_LIBC_WITH_LIBINTL_STUB if ADK_TARGET_LIB_UCLIBC_NG
- depends on ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_UCLIBC_NG
-
endchoice
choice
prompt "system for /dev management"
depends on !ADK_APPLIANCE_TOOLCHAIN
-default ADK_RUNTIME_DEV_STATIC if ADK_TARGET_ARCH_CRIS || !ADK_TARGET_WITH_MMU
-default ADK_RUNTIME_DEV_MDEV
+default ADK_RUNTIME_DEV_STATIC
+
+config ADK_RUNTIME_DEV_STATIC
+ bool "Use static /dev (devtmpfs)"
+ select ADK_LINUX_KERNEL_DEVTMPFS if ADK_TARGET_OS_LINUX
+ select ADK_LINUX_KERNEL_DEVTMPFS_MOUNT if ADK_TARGET_OS_LINUX
config ADK_RUNTIME_DEV_MDEV
- bool "Use mdev"
+ bool "Use dynamic /dev with mdev"
select ADK_LINUX_KERNEL_DEVTMPFS if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_DEVTMPFS_MOUNT if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_DEVTMPFS if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_DEVTMPFS_MOUNT if ADK_TARGET_OS_WALDUX
depends on ADK_PACKAGE_BUSYBOX
- depends on !ADK_RUNTIME_INIT_SYSTEMD
config ADK_RUNTIME_DEV_MDEV_LOGGING
bool "Log mdev events into /dev/mdev.log"
depends on ADK_RUNTIME_DEV_MDEV
config ADK_RUNTIME_DEV_UDEV
- bool "Use udev"
+ bool "Use dynamic /dev with udev"
select ADK_PACKAGE_UDEV
# needs depmod for module dependency generation on host
select ADK_HOST_BUILD_KMOD
select ADK_LINUX_KERNEL_DEVTMPFS if ADK_TARGET_OS_LINUX
select ADK_LINUX_KERNEL_DEVTMPFS_MOUNT if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_DEVTMPFS if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_DEVTMPFS_MOUNT if ADK_TARGET_OS_WALDUX
- depends on !ADK_RUNTIME_INIT_SYSTEMD
-
-config ADK_RUNTIME_DEV_SYSTEMD_UDEV
- bool "Use systemd udev"
- select ADK_LINUX_KERNEL_DEVTMPFS if ADK_TARGET_OS_LINUX
- select ADK_LINUX_KERNEL_DEVTMPFS_MOUNT if ADK_TARGET_OS_LINUX
- select ADK_WALDUX_KERNEL_DEVTMPFS if ADK_TARGET_OS_WALDUX
- select ADK_WALDUX_KERNEL_DEVTMPFS_MOUNT if ADK_TARGET_OS_WALDUX
- depends on ADK_RUNTIME_INIT_SYSTEMD
-
-config ADK_RUNTIME_DEV_STATIC
- bool "Use static /dev"
- depends on !ADK_RUNTIME_INIT_SYSTEMD
endchoice
@@ -97,6 +62,7 @@ choice
prompt "base applications"
depends on !ADK_APPLIANCE_TOOLCHAIN
default ADK_RUNTIME_BASE_TOOLBOX if ADK_TARGET_ARCH_H8300
+default ADK_RUNTIME_BASE_TOOLBOX if ADK_TARGET_ARCH_C6X
default ADK_RUNTIME_BASE_BUSYBOX
config ADK_RUNTIME_BASE_BUSYBOX
@@ -151,7 +117,7 @@ config ADK_RUNTIME_PASSWORD
help
Predefine the root password enabled in the built image.
Use ./host_*/usr/bin/mkcrypt to generate the hash.
- Default password is linux123
+ Default password is: linux123
config ADK_RUNTIME_ADDUSER
bool "add an user"
@@ -190,7 +156,6 @@ config ADK_RUNTIME_USER_SHELL
config ADK_RUNTIME_MOUNT_DEBUGFS
bool "mount debugfs"
- depends on !ADK_RUNTIME_INIT_SYSTEMD
help
mount debugfs under /sys/kernel/debug
@@ -204,23 +169,20 @@ source "target/config/Config.in.scripts"
config ADK_RUNTIME_TMPFS_SIZE
string "size of /tmp in memory (kB)"
- default "32768" if ADK_TARGET_SYSTEM_APPLE_MACMINI
- default "32768" if ADK_TARGET_SYSTEM_IBM_X40
- default "32768" if ADK_TARGET_SYSTEM_LENOVO_X200
- default "32768" if ADK_TARGET_SYSTEM_SGI_O2
default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI
default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI2
default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI3
- default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI3P
+ default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI4
+ default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI5
+ default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64
+ default "32768" if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
default "32768" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
default "16384" if ADK_TARGET_SYSTEM_QEMU_X86_64
default "16384" if ADK_TARGET_SYSTEM_QEMU_X86
- default "16384" if ADK_TARGET_VBOX
default "16384" if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default "8192" if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default "8192" if ADK_TARGET_SYSTEM_SGI_INDY
default "1024"
- depends on !ADK_RUNTIME_INIT_SIMPLEINIT && !ADK_RUNTIME_INIT_SYSTEMD
+ depends on !ADK_RUNTIME_INIT_SIMPLEINIT
help
Size of /tmp in memory in Kilobyte.
@@ -234,7 +196,7 @@ config ADK_RUNTIME_DEFAULT_LOCALE
string "default locale"
depends on ADK_TARGET_LIBC_WITH_LOCALE \
|| ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_MUSL
- default "C.UTF-8"
+ default "en_US.UTF-8"
help
Locale to be set in the target system as default.
@@ -337,17 +299,14 @@ config ADK_RUNTIME_GETTY_VGA
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI0
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI2
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3P
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI4
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3P_64
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_APPLE_MACMINI
- default y if ADK_TARGET_SYSTEM_LENOVO_X200
default y if ADK_TARGET_SYSTEM_ARANYM_M68K
default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default y if ADK_TARGET_VBOX
default n
help
Start getty on VGA console. (tty1-tty6)
@@ -363,12 +322,13 @@ config ADK_RUNTIME_GETTY_SERIAL
default n if ADK_TARGET_SYSTEM_RASPBERRY_PI
default n if ADK_TARGET_SYSTEM_RASPBERRY_PI2
default n if ADK_TARGET_SYSTEM_RASPBERRY_PI3
- default n if ADK_TARGET_SYSTEM_RASPBERRY_PI3P
+ default n if ADK_TARGET_SYSTEM_RASPBERRY_PI4
+ default n if ADK_TARGET_SYSTEM_RASPBERRY_PI5
+ default n if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64
+ default n if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
default n if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default n if ADK_TARGET_SYSTEM_IBM_X40
default n if ADK_TARGET_SYSTEM_ARANYM_M68K
default n if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default n if ADK_TARGET_VBOX
default y
help
Start getty on serial console.
@@ -397,25 +357,28 @@ config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE
|| ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE \
|| ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9 \
|| ADK_TARGET_SYSTEM_QEMU_AARCH64
- default "ttyARC0" if ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
+ default "ttyARC0" if ADK_TARGET_SYSTEM_SYNOPSYS_NSIM && ADK_TARGET_CPU_ARC_ARC700
default "ttySC1" if ADK_TARGET_SYSTEM_QEMU_SH
default "ttySC0" if ADK_TARGET_SYSTEM_SIM_H8300H
default "ttySC2" if ADK_TARGET_SYSTEM_HITACHI_EDOSK2674
+ default "ttySIF0" if ADK_TARGET_SYSTEM_SIPEED_MAIX_BIT
default "ttymxc0" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default "ttymxc1" if ADK_TARGET_SYSTEM_PHYTEC_IMX6
default "ttyAMA0" if ADK_TARGET_SYSTEM_RASPBERRY_PI
default "ttyAMA0" if ADK_TARGET_SYSTEM_RASPBERRY_PI2
default "ttyAMA0" if ADK_TARGET_SYSTEM_RASPBERRY_PI3
- default "ttyAMA0" if ADK_TARGET_SYSTEM_RASPBERRY_PI3P
default "ttyAMA0" if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64
- default "ttyAMA0" if ADK_TARGET_SYSTEM_RASPBERRY_PI3P_64
default "ttyDA1" if ADK_TARGET_SYSTEM_QEMU_METAG
default "ttyS2" if ADK_TARGET_SYSTEM_KINETIS_K70
default "ttyS2" if ADK_TARGET_SYSTEM_SOM_C6745
+ default "ttyS2" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "ttyPS0" if ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
default "ttysclp0" if ADK_TARGET_SYSTEM_QEMU_S390
default "ttyO2" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
default "ttyO0" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
default "ttyS4" if ADK_TARGET_SYSTEM_IMGTEC_CI20
+ default "ttySTM0" if ADK_TARGET_SYSTEM_ST_STM32F746G
+ default "ttyGF0" if ADK_TARGET_SYSTEM_QEMU_M68K_VIRT
default "ttyS0"
config ADK_RUNTIME_CONSOLE_SERIAL_SPEED
@@ -424,13 +387,11 @@ config ADK_RUNTIME_CONSOLE_SERIAL_SPEED
|| ADK_TARGET_QEMU \
|| ADK_TARGET_GENERIC \
|| ADK_TARGET_SIM
- default "9600" if ADK_TARGET_SYSTEM_DEC_MULTIA
default "9600" if ADK_TARGET_SYSTEM_FON_FON2100
- default "9600" if ADK_TARGET_SYSTEM_SGI_INDY
- default "9600" if ADK_TARGET_SYSTEM_SGI_O2
default "38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP
default "38400" if ADK_TARGET_SYSTEM_ANDES_AG101P
default "38400" if ADK_TARGET_SYSTEM_HITACHI_EDOSK2674
+ default "38400" if ADK_TARGET_SYSTEM_NUMATO_MIMASV2
default "115200"
config ADK_RUNTIME_KBD_LAYOUT
@@ -516,7 +477,7 @@ config ADK_BINSH_MKSH
config ADK_BINSH_HUSH
bool "hush (busybox)"
- select ADK_PACKAGE_HUSH if !ADK_APPLIANCE_TOOLCHAIN
+ select BUSYBOX_HUSH if !ADK_APPLIANCE_TOOLCHAIN
help
hush shell.
@@ -554,12 +515,12 @@ endchoice
# workaround for USB ethernet f.e. Raspberry Pi 2/3
config ADK_RUNTIME_WAIT_FOR_ETHERNET
- bool
+ bool "Wait for ethernet to come up on boot"
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI2
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3P
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3P_64
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI4
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
config ADK_SIMPLE_NETWORK_CONFIG
bool "simple network configuration"
diff --git a/target/config/Config.in.threads b/target/config/Config.in.threads
index b0bb2f452..ff4fcac25 100644
--- a/target/config/Config.in.threads
+++ b/target/config/Config.in.threads
@@ -7,7 +7,7 @@ depends on ADK_TARGET_LIB_UCLIBC_NG
config ADK_TARGET_WITH_NPTL
bool "NPTL"
- depends on ADK_TARGET_SUPPORTS_NPTL && ADK_TARGET_SUPPORTS_THREADS && ADK_TARGET_WITH_MMU
+ depends on ADK_TARGET_SUPPORTS_NPTL && ADK_TARGET_SUPPORTS_THREADS
config ADK_TARGET_WITH_LT
bool "Linuxthreads"
diff --git a/target/config/Config.in.toolchain b/target/config/Config.in.toolchain
index 0845490a1..144f92a9b 100644
--- a/target/config/Config.in.toolchain
+++ b/target/config/Config.in.toolchain
@@ -5,6 +5,7 @@ config ADK_TARGET_CFLAGS_OPT
string
default "-Os -pipe" if ADK_TARGET_CFLAGS_OPT_OS
default "-Og -pipe" if ADK_TARGET_CFLAGS_OPT_OG
+ default "-O1 -pipe" if ADK_TARGET_CFLAGS_OPT_O1
default "-O2 -pipe" if ADK_TARGET_CFLAGS_OPT_O2
default "-O3 -pipe" if ADK_TARGET_CFLAGS_OPT_O3
default "-O0 -pipe" if ADK_TARGET_CFLAGS_OPT_O0
@@ -124,7 +125,7 @@ config ADK_STATIC_TOOLCHAIN
config ADK_PRELINK
bool "Prelink binaries and libraries in Image"
- depends on ADK_TARGET_OS_LINUX || ADK_TARGET_OS_WALDUX
+ depends on ADK_TARGET_OS_LINUX
help
Do prelinking for faster loading of binaries.
diff --git a/target/config/Config.in.tools b/target/config/Config.in.tools
index a328b8684..cdeeb90ed 100644
--- a/target/config/Config.in.tools
+++ b/target/config/Config.in.tools
@@ -121,19 +121,19 @@ config ADK_HOST_BUILD_PATCH
bool
default n
-config ADK_HOST_BUILD_SED
+config ADK_HOST_BUILD_RSYNC
bool
default n
-config ADK_HOST_BUILD_STLINK
+config ADK_HOST_BUILD_SED
bool
default n
-config ADK_HOST_BUILD_TAR
+config ADK_HOST_BUILD_STLINK
bool
default n
-config ADK_HOST_BUILD_XZ
+config ADK_HOST_BUILD_TAR
bool
default n
@@ -160,7 +160,6 @@ config ADK_HOST_BUILD_MTOOLS
config ADK_HOST_BUILD_GENIMAGE
bool
- select ADK_HOST_BUILD_MKE2IMG
select ADK_HOST_BUILD_MTOOLS
select ADK_HOST_BUILD_GENEXT2FS
select ADK_HOST_BUILD_GPTFDISK
@@ -188,6 +187,14 @@ config ADK_HOST_BUILD_GENEXT2FS
bool
default n
+config ADK_HOST_NEED_ZSTD
+ bool
+ default n
+
+config ADK_HOST_BUILD_ZSTD
+ bool
+ default n
+
config ADK_HOST_NEED_LZ4
bool
default n
@@ -279,7 +286,6 @@ config ADK_HOST_NEED_SQUASHFS
config ADK_HOST_BUILD_SQUASHFS
bool
- select ADK_HOST_BUILD_XZ
default y if ADK_HOST_NEED_SQUASHFS
default n
@@ -309,11 +315,11 @@ source "target/config/Config.in.prereq"
config ADK_COMPRESSION_TOOL
string
- default "gzip -n9" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_GZIP || ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_GZIP
- default "bzip2" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_BZIP2 || ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_BZIP2
- default "xz -v --check=crc32 --lzma2=dict=1MiB" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_XZ || ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_XZ
- default "lz4c -l" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_LZ4 || ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_LZ4
- default "lzma -9" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_LZMA || ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_LZMA
- default "lzop" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_LZO || ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_LZO
+ default "gzip -n9" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_GZIP
+ default "bzip2" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_BZIP2
+ default "zstd" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_ZSTD
+ default "lz4c -l" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_LZ4
+ default "lzma -9" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_LZMA
+ default "lzop" if ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_LZO
default "gzip -n9"
help
diff --git a/target/csky/Makefile b/target/csky/Makefile
index 7a470dafe..a79b2c4d7 100644
--- a/target/csky/Makefile
+++ b/target/csky/Makefile
@@ -7,15 +7,10 @@ include $(ADK_TOPDIR)/mk/image.mk
KERNEL:=$(LINUX_DIR)/$(ADK_TARGET_KERNEL)
+QEMU:=qemu-system-cskyv2
+ifeq ($(ADK_TARGET_QEMU_WITH_VIRTIO),y)
QEMU_ARGS:=${ADK_QEMU_ARGS} -M virt
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_CSKY_CK610),y)
-QEMU:=qemu-system-cskyv1 -dtb target/csky/qemu.dtb
-endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_CSKY_CK807),y)
-QEMU:=qemu-system-cskyv2 -dtb target/csky/qemu.dtb
-endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_CSKY_CK810),y)
-QEMU:=qemu-system-cskyv2 -dtb target/csky/qemu.dtb
+QEMU_ARGS+=-netdev user,id=eth0 -device virtio-net-device,netdev=eth0
endif
# target helper text
diff --git a/target/csky/kernel/qemu-csky b/target/csky/kernel/qemu-csky
new file mode 100644
index 000000000..876d5a87f
--- /dev/null
+++ b/target/csky/kernel/qemu-csky
@@ -0,0 +1,8 @@
+CONFIG_CSKY=y
+CONFIG_CSKY_IRQ=y
+CONFIG_RAM_BASE=0x0
+CONFIG_NATIONALCHIP_IRQ=y
+CONFIG_NATIONALCHIP_TIMER=y
+CONFIG_CSKYMAC=y
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/csky/kernel/qemu-csky-ck610 b/target/csky/kernel/qemu-csky-ck610
deleted file mode 100644
index 0b5df804f..000000000
--- a/target/csky/kernel/qemu-csky-ck610
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG_CSKY=y
-CONFIG_CPU_CK610=y
-CONFIG_CSKY_IRQ=y
-CONFIG_RAM_BASE=0x0
-CONFIG_NATIONALCHIP_IRQ=y
-CONFIG_NATIONALCHIP_TIMER=y
-CONFIG_CSKYMAC=y
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
diff --git a/target/csky/kernel/qemu-csky-ck807 b/target/csky/kernel/qemu-csky-ck807
deleted file mode 100644
index ea91eeffe..000000000
--- a/target/csky/kernel/qemu-csky-ck807
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG_CSKY=y
-CONFIG_CPU_CK807=y
-CONFIG_CSKY_IRQ=y
-CONFIG_RAM_BASE=0x0
-CONFIG_NATIONALCHIP_IRQ=y
-CONFIG_NATIONALCHIP_TIMER=y
-CONFIG_CSKYMAC=y
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
diff --git a/target/csky/kernel/qemu-csky-ck810 b/target/csky/kernel/qemu-csky-ck810
deleted file mode 100644
index 6abd83aa8..000000000
--- a/target/csky/kernel/qemu-csky-ck810
+++ /dev/null
@@ -1,8 +0,0 @@
-CONFIG_CSKY=y
-CONFIG_CPU_CK810=y
-CONFIG_CSKY_IRQ=y
-CONFIG_RAM_BASE=0x0
-CONFIG_NATIONALCHIP_IRQ=y
-CONFIG_NATIONALCHIP_TIMER=y
-CONFIG_CSKYMAC=y
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
diff --git a/target/csky/qemu.dtb b/target/csky/qemu.dtb
deleted file mode 100644
index 8b24acfd2..000000000
--- a/target/csky/qemu.dtb
+++ /dev/null
Binary files differ
diff --git a/target/csky/qemu.dts b/target/csky/qemu.dts
deleted file mode 100644
index 44f57f352..000000000
--- a/target/csky/qemu.dts
+++ /dev/null
@@ -1,87 +0,0 @@
-/dts-v1/;
-
-/ {
- model = "qemu.csky";
- compatible = "csky";
- #address-cells = <1>;
- #size-cells = <1>;
-
- memory {
- device_type = "memory";
- reg = <0x0 0x40000000>;
- };
-
- soc {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "simple-bus";
- ranges;
-
- intc: interrupt-controller {
- compatible = "csky,intc-v1";
- reg = <0xfffff000 0x1000>;
- interrupt-controller;
- #interrupt-cells = <1>;
- };
-
- /* clockevent */
- timer0 {
- compatible = "snps,dw-apb-timer";
- reg = <0xffffd000 0x1000>;
- clocks = <&dummy_apb>;
- clock-names = "timer";
- interrupts = <1>;
- interrupt-parent = <&intc>;
- };
-
- /* clocksource */
- timer1 {
- compatible = "snps,dw-apb-timer";
- reg = <0xffffd014 0x800>;
- clocks = <&dummy_apb>;
- clock-names = "timer";
- interrupts = <2>;
- interrupt-parent = <&intc>;
- };
-
- serial0 {
- compatible = "ns16550a";
- reg = <0xffffe000 0x1000>;
- interrupt-parent = <&intc>;
- interrupts = <3>;
- clocks = <&dummy_apb>;
- baud = <115200>;
- reg-shift = <2>;
- reg-io-width = <1>;
- };
-
- dummy_apb: apb-clock {
- compatible = "fixed-clock";
- clock-frequency = <40000000>;
- clock-output-names = "dummy_apb";
- #clock-cells = <0>;
- };
-
- gmac: ethernet {
- compatible = "snps,dwmac";
- reg = <0xffffa000 0x2000>;
- interrupt-parent = <&intc>;
- interrupts = <4>;
- interrupt-names = "macirq";
- clocks = <&dummy_apb>;
- clock-names = "stmmaceth";
- phy-mode = "mii";
- snps,pbl = <32>;
- snps,fixed-burst;
- };
-
- qemu-exit {
- compatible = "csky,qemu-exit";
- reg = <0xffffc000 0x1000>;
- };
- };
-
- chosen {
- bootargs = "console=ttyS0,115200";
- };
-};
diff --git a/target/csky/systems/qemu-csky b/target/csky/systems/qemu-csky
new file mode 100644
index 000000000..ee38d08c5
--- /dev/null
+++ b/target/csky/systems/qemu-csky
@@ -0,0 +1,7 @@
+config ADK_TARGET_SYSTEM_QEMU_CSKY
+ bool "Qemu Emulator"
+ select ADK_TARGET_QEMU
+ select ADK_TARGET_KERNEL_WITH_COMPRESSION
+ help
+ Qemu Emulator for C-SKY architecture.
+
diff --git a/target/csky/systems/qemu-csky-ck610 b/target/csky/systems/qemu-csky-ck610
deleted file mode 100644
index 6f740cb42..000000000
--- a/target/csky/systems/qemu-csky-ck610
+++ /dev/null
@@ -1,8 +0,0 @@
-config ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
- bool "Qemu Emulator (ck610)"
- select ADK_TARGET_QEMU
- select ADK_TARGET_CPU_CSKY_CK610
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- Qemu Emulator for C-SKY architecture (ck610).
-
diff --git a/target/csky/systems/qemu-csky-ck807 b/target/csky/systems/qemu-csky-ck807
deleted file mode 100644
index c938c70cd..000000000
--- a/target/csky/systems/qemu-csky-ck807
+++ /dev/null
@@ -1,8 +0,0 @@
-config ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
- bool "Qemu Emulator (ck807)"
- select ADK_TARGET_QEMU
- select ADK_TARGET_CPU_CSKY_CK807
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- Qemu Emulator for C-SKY architecture (ck807).
-
diff --git a/target/csky/systems/qemu-csky-ck810 b/target/csky/systems/qemu-csky-ck810
deleted file mode 100644
index 68a431588..000000000
--- a/target/csky/systems/qemu-csky-ck810
+++ /dev/null
@@ -1,8 +0,0 @@
-config ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
- bool "Qemu Emulator (ck810)"
- select ADK_TARGET_QEMU
- select ADK_TARGET_CPU_CSKY_CK810
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- Qemu Emulator for C-SKY architecture (ck810).
-
diff --git a/target/csky/uclibc-ng.config b/target/csky/uclibc-ng.config
index 00de26e54..c80a15a89 100644
--- a/target/csky/uclibc-ng.config
+++ b/target/csky/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.27 C Library Configuration
+# uClibc-ng 1.0.31 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -25,9 +25,11 @@ TARGET_csky=y
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
@@ -75,7 +77,6 @@ LDSO_RUNPATH=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-# LDSO_NO_CLEANUP is not set
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -218,7 +219,6 @@ HARDWIRED_ABSPATH=y
#
# Security options
#
-# UCLIBC_HAS_ARC4RANDOM is not set
UCLIBC_HAS_SSP=y
# SSP_QUICK_CANARY is not set
# UCLIBC_BUILD_SSP is not set
@@ -237,6 +237,6 @@ DOSTRIP=y
# SUPPORT_LD_DEBUG is not set
# SUPPORT_LD_DEBUG_EARLY is not set
# UCLIBC_MALLOC_DEBUGGING is not set
-UCLIBC_HAS_BACKTRACE=y
+# UCLIBC_HAS_BACKTRACE is not set
WARNINGS="-Wall"
# EXTRA_WARNINGS is not set
diff --git a/target/frosted/Config.in b/target/frosted/Config.in
deleted file mode 100644
index bb5eedec7..000000000
--- a/target/frosted/Config.in
+++ /dev/null
@@ -1,800 +0,0 @@
-menu "Platform Selection"
-
- choice ADK_FROSTED_ARCH
- prompt "Architecture"
- default ADK_FROSTED_ARCH_LM3S
-
- config ADK_FROSTED_ARCH_LM3S
- bool "LM3S"
- help
- Enable support for Stellaris LM3S systems
-
- config ADK_FROSTED_ARCH_LPC17XX
- bool "LPC17XX"
- help
- Enable support for NXP LPC17xx systems
-
- config ADK_FROSTED_ARCH_STM32F4
- bool "STM32F4"
- help
- Enable support for ST STM32F4 systems
-
- config ADK_FROSTED_ARCH_STM32F7
- bool "STM32F7"
- help
- Enable support for ST STM32F7 systems
- endchoice
-
-if ADK_FROSTED_ARCH_STM32F7
-
-choice
- prompt "MCU"
- default ADK_FROSTED_ARCH_STM32F746_NG
-
-config ADK_FROSTED_ARCH_STM32F746_NG
- bool "STM32F746NG 1MB"
- select ADK_FROSTED_FLASH_SIZE_1MB
- select ADK_FROSTED_RAM_SIZE_320KB
- select ADK_FROSTED_ARCH_STM32F746
-
-config ADK_FROSTED_ARCH_STM32F769_NI
- bool "STM32F769NI 2MB"
- select ADK_FROSTED_FLASH_SIZE_2MB
- select ADK_FROSTED_RAM_SIZE_368KB
- select ADK_FROSTED_ARCH_STM32F769
-
-endchoice
-
-endif
-
-if ADK_FROSTED_ARCH_STM32F4
-
-choice
- prompt "MCU"
- default ADK_FROSTED_ARCH_STM32F407_XG
-
-config ADK_FROSTED_ARCH_STM32F401_XB
- bool "STM32F401xB 128KB"
- select ADK_FROSTED_FLASH_SIZE_128KB
- select ADK_FROSTED_RAM_SIZE_64KB
- select ADK_FROSTED_ARCH_STM32F401
-config ADK_FROSTED_ARCH_STM32F401_XC
- bool "STM32F401xC 256KB"
- select ADK_FROSTED_FLASH_SIZE_256KB
- select ADK_FROSTED_RAM_SIZE_64KB
- select ADK_FROSTED_ARCH_STM32F401
-config ADK_FROSTED_ARCH_STM32F401_XD
- bool "STM32F401xD 384KB"
- select ADK_FROSTED_FLASH_SIZE_384KB
- select ADK_FROSTED_RAM_SIZE_96KB
- select ADK_FROSTED_ARCH_STM32F401
-config ADK_FROSTED_ARCH_STM32F401_XE
- bool "STM32F401xE 512KB"
- select ADK_FROSTED_FLASH_SIZE_512KB
- select ADK_FROSTED_RAM_SIZE_96KB
- select ADK_FROSTED_ARCH_STM32F401
-
-config ADK_FROSTED_ARCH_STM32F405_XG
- bool "STM32F405xG 1MB"
- select ADK_FROSTED_FLASH_SIZE_1MB
- select ADK_FROSTED_RAM_SIZE_192KB
- select ADK_FROSTED_ARCH_STM32F405
-config ADK_FROSTED_ARCH_STM32F405_XE
- bool "STM32F407xE 512KB"
- select ADK_FROSTED_FLASH_SIZE_512KB
- select ADK_FROSTED_RAM_SIZE_192KB
- select ADK_FROSTED_ARCH_STM32F405
-
-config ADK_FROSTED_ARCH_STM32F407_XG
- bool "STM32F407xG 1MB"
- select ADK_FROSTED_FLASH_SIZE_1MB
- select ADK_FROSTED_RAM_SIZE_192KB
- select ADK_FROSTED_ARCH_STM32F407
-config ADK_FROSTED_ARCH_STM32F407_XE
- bool "STM32F407xE 512KB"
- select ADK_FROSTED_FLASH_SIZE_512KB
- select ADK_FROSTED_RAM_SIZE_192KB
- select ADK_FROSTED_ARCH_STM32F407
-
-config ADK_FROSTED_ARCH_STM32F411_XE
- bool "STM32F411xE 512KB"
- select ADK_FROSTED_FLASH_SIZE_512KB
- select ADK_FROSTED_RAM_SIZE_128KB
- select ADK_FROSTED_ARCH_STM32F411
-config ADK_FROSTED_ARCH_STM32F411_XC
- bool "STM32F411xC 256KB"
- select ADK_FROSTED_FLASH_SIZE_256KB
- select ADK_FROSTED_RAM_SIZE_128KB
- select ADK_FROSTED_ARCH_STM32F411
-
-config ADK_FROSTED_ARCH_STM32F429_XE
- bool "STM32F429xE 512KB"
- select ADK_FROSTED_FLASH_SIZE_512KB
- select ADK_FROSTED_RAM_SIZE_256KB
- select ADK_FROSTED_ARCH_STM32F429
-config ADK_FROSTED_ARCH_STM32F429_XG
- bool "STM32F429xG 1MB"
- select ADK_FROSTED_FLASH_SIZE_1MB
- select ADK_FROSTED_RAM_SIZE_256KB
- select ADK_FROSTED_ARCH_STM32F429
-config ADK_FROSTED_ARCH_STM32F429_XI
- bool "STM32F429xI 2MB"
- select ADK_FROSTED_FLASH_SIZE_2MB
- select ADK_FROSTED_RAM_SIZE_256KB
- select ADK_FROSTED_ARCH_STM32F429
-config ADK_FROSTED_ARCH_STM32F446_ZE
- bool "STM32F446ZE 512KB"
- select ADK_FROSTED_FLASH_SIZE_512KB
- select ADK_FROSTED_RAM_SIZE_128KB
- select ADK_FROSTED_ARCH_STM32F446
-endchoice
-
-endif
-
-if ADK_FROSTED_ARCH_LPC17XX
-
-choice
- prompt "MCU"
- default ADK_FROSTED_ARCH_LPC1768
-config ADK_FROSTED_ARCH_LPC1763
- bool "LPC1763"
- select ADK_FROSTED_FLASH_SIZE_256KB
- select ADK_FROSTED_RAM_SIZE_32KB
- select ADK_FROSTED_CLK_100MHZ
-config ADK_FROSTED_ARCH_LPC1764
- bool "LPC1764"
- select ADK_FROSTED_FLASH_SIZE_128KB
- select ADK_FROSTED_RAM_SIZE_16KB
- select ADK_FROSTED_CLK_100MHZ
-config ADK_FROSTED_ARCH_LPC1765
- bool "LPC1765"
- select ADK_FROSTED_FLASH_SIZE_256KB
- select ADK_FROSTED_RAM_SIZE_32KB
- select ADK_FROSTED_CLK_100MHZ
-config ADK_FROSTED_ARCH_LPC1766
- bool "LPC1766"
- select ADK_FROSTED_FLASH_SIZE_256KB
- select ADK_FROSTED_RAM_SIZE_32KB
- select ADK_FROSTED_CLK_100MHZ
-config ADK_FROSTED_ARCH_LPC1767
- bool "LPC1767"
- select ADK_FROSTED_FLASH_SIZE_512KB
- select ADK_FROSTED_RAM_SIZE_32KB
- select ADK_FROSTED_CLK_100MHZ
-config ADK_FROSTED_ARCH_LPC1768
- bool "LPC1768"
- select ADK_FROSTED_FLASH_SIZE_512KB
- select ADK_FROSTED_RAM_SIZE_32KB
- select ADK_FROSTED_CLK_100MHZ
-config ADK_FROSTED_ARCH_LPC1769
- bool "LPC1769"
- select ADK_FROSTED_FLASH_SIZE_512KB
- select ADK_FROSTED_RAM_SIZE_32KB
-endchoice
-
-endif
-
-if ADK_FROSTED_ARCH_LM3S
-
-choice
- prompt "MCU"
- default ADK_FROSTED_LM3S6965
-config ADK_FROSTED_ARCH_LM3S6965
- bool "LM3S6965"
- select ADK_FROSTED_FLASH_SIZE_256KB
- select ADK_FROSTED_RAM_SIZE_64KB
-config ADK_FROSTED_ARCH_LM3SVIRT
- bool "LM3S-VIRTUAL"
- select ADK_FROSTED_FLASH_SIZE_1MB
- select ADK_FROSTED_RAM_SIZE_256KB
-endchoice
-
-endif
-
- config ADK_FROSTED_FLASH_SIZE_2MB
- bool
- config ADK_FROSTED_FLASH_SIZE_1MB
- bool
- config ADK_FROSTED_FLASH_SIZE_512KB
- bool
- config ADK_FROSTED_FLASH_SIZE_384KB
- bool
- config ADK_FROSTED_FLASH_SIZE_256KB
- bool
- config ADK_FROSTED_FLASH_SIZE_128KB
- bool
-
- config ADK_FROSTED_RAM_SIZE_368KB
- bool
- config ADK_FROSTED_RAM_SIZE_320KB
- bool
- config ADK_FROSTED_RAM_SIZE_256KB
- bool
- config ADK_FROSTED_RAM_SIZE_192KB
- bool
- config ADK_FROSTED_RAM_SIZE_128KB
- bool
- config ADK_FROSTED_RAM_SIZE_96KB
- bool
- config ADK_FROSTED_RAM_SIZE_64KB
- bool
- config ADK_FROSTED_RAM_SIZE_32KB
- bool
- config ADK_FROSTED_RAM_SIZE_16KB
- bool
-
- config ADK_FROSTED_ARCH_STM32F401
- bool
- config ADK_FROSTED_ARCH_STM32F405
- bool
- config ADK_FROSTED_ARCH_STM32F407
- bool
- config ADK_FROSTED_ARCH_STM32F411
- bool
- config ADK_FROSTED_ARCH_STM32F429
- bool
- config ADK_FROSTED_ARCH_STM32F446
- bool
- config ADK_FROSTED_ARCH_STM32F746
- bool
- config ADK_FROSTED_ARCH_STM32F769
- bool
-
- config ADK_FROSTED_DEVSTM32DMA
- bool
-
- #Temp hack to allow '407 & '411 clock setups to coexist
- choice
- prompt "Clock Speed"
- config ADK_FROSTED_CLK_48MHZ
- bool "48MHz"
- depends on (ADK_FROSTED_ARCH_STM32F401 || ADK_FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F429)
- config ADK_FROSTED_CLK_84MHZ
- bool "84MHz"
- depends on (ADK_FROSTED_ARCH_STM32F401 ||FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F429)
- config ADK_FROSTED_CLK_100MHZ
- bool "100MHz"
- depends on ADK_FROSTED_ARCH_LPC17XX
- config ADK_FROSTED_CLK_120MHZ
- bool "120MHz"
- depends on (ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_LPC1769)
- config ADK_FROSTED_CLK_168MHZ
- bool "168MHz"
- depends on (ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F429)
- config ADK_FROSTED_CLK_180MHZ
- bool "180MHz"
- depends on (ADK_FROSTED_ARCH_STM32F446)
- config ADK_FROSTED_CLK_216MHZ
- bool "216MHZ"
- depends on (ADK_FROSTED_ARCH_STM32F746 || ADK_FROSTED_ARCH_STM32F769)
- endchoice
-
- choice
- prompt "Board"
- config ADK_FROSTED_MACH_STM32F746Discovery
- bool "STM32F746 Discovery"
- depends on (ADK_FROSTED_ARCH_STM32F746)
- config ADK_FROSTED_MACH_STM32F769Discovery
- bool "STM32F769 Discovery"
- depends on (ADK_FROSTED_ARCH_STM32F769)
- config ADK_FROSTED_MACH_STM32F746Nucleo144
- bool "STM32F746 Nucleo-144"
- depends on (ADK_FROSTED_ARCH_STM32F746)
- config ADK_FROSTED_MACH_STM32F407Discovery
- bool "STM32F407Discovery"
- depends on (ADK_FROSTED_ARCH_STM32F407)
- config ADK_FROSTED_MACH_STM32F405Pyboard
- bool "STM32F405 PyBoard (micropython)"
- depends on (ADK_FROSTED_ARCH_STM32F405)
- config ADK_FROSTED_MACH_STM32F4x1Discovery
- bool "STM32F4x1Discovery"
- depends on ( ADK_FROSTED_ARCH_STM32F401 ||ADK_FROSTED_ARCH_STM32F411)
- config ADK_FROSTED_MACH_STM32F429Discovery
- bool "STM32F429Discovery"
- depends on (ADK_FROSTED_ARCH_STM32F429)
- config ADK_FROSTED_MACH_STM32F446Nucleo
- bool "STM32F446 Nucleo"
- depends on (ADK_FROSTED_ARCH_STM32F446)
-
- config ADK_FROSTED_MACH_LPC1768MBED
- bool "LPC1768MBED"
- depends on ADK_FROSTED_ARCH_LPC1768
- config ADK_FROSTED_MACH_SEEEDPRO
- bool "SEEEDPRO"
- depends on ADK_FROSTED_ARCH_LPC1768
- config ADK_FROSTED_MACH_LPC1679XPRESSO
- bool "LPC1679XPRESSO"
- depends on ADK_FROSTED_ARCH_LPC1769
- config ADK_FROSTED_MACH_LM3S6965EVB
- bool "lm3s6965evb"
- depends on ADK_FROSTED_ARCH_LM3S6965
- config ADK_FROSTED_MACH_LM3SVIRT
- bool "lm3s-qemu"
- depends on ADK_FROSTED_ARCH_LM3SVIRT
-
- endchoice
-
- config ADK_FROSTED_STM32F7_SDRAM
- depends on ADK_FROSTED_ARCH_STM32F7
- bool "Enable external SDRAM"
- default y
-
- config ADK_FROSTED_STM32F4_SDRAM
- depends on ADK_FROSTED_ARCH_STM32F4
- bool "Enable external SDRAM"
- default n
-
-endmenu
-
-
-menu "Kernel Configuration"
-
-config ADK_FROSTED_KFLASHMEM_SIZE
- int "Kernel Flash size (KB)"
- default 64
-
-config ADK_FROSTED_KRAMMEM_SIZE
- int "Kernel RAM size (KB)"
- default 64
-
-choice
-prompt "Tasks Stack Size"
-default ADK_FROSTED_TASK_STACK_SIZE_2K
-
- config ADK_FROSTED_TASK_STACK_SIZE_1K
- bool "Tiny stack (1024 Bytes)"
-
- config ADK_FROSTED_TASK_STACK_SIZE_2K
- bool "Small stack (2048 Bytes)"
-
- config ADK_FROSTED_TASK_STACK_SIZE_4K
- bool "Big stack (4096 Bytes)"
-
- config ADK_FROSTED_TASK_STACK_SIZE_8K
- bool "Huge stack (8192 Bytes)"
-endchoice
-
-config ADK_FROSTED_MPU
-bool "Run-time Memory Protection"
-default y
-
-config ADK_FROSTED_PTHREADS
-bool "POSIX Threads (pthreads)"
-default y
-
-config ADK_FROSTED_SIGNALS
-bool "Process Signals"
-default y
-
-config ADK_FROSTED_PIPE
-bool "Pipe"
-default y
-
-config ADK_FROSTED_SOCK_UNIX
-bool "UNIX Sockets for IPC"
-default n
-
-
-endmenu
-
-
-
-menu "Debugging options"
-
-config ADK_FROSTED_KLOG
- bool "Enable kernel logging"
- default y
-
-config ADK_FROSTED_KLOG_SIZE
- depends on ADK_FROSTED_KLOG
- int "Kernel log buffer size"
- default 256
-
-config ADK_FROSTED_MEMFAULT_DBG
- bool "Enable extended segfault debug"
- default y
-
-config ADK_FROSTED_HARDFAULT_DBG
- bool "Enable extended hardfault debug"
- default n
-
-config ADK_FROSTED_STRACE
- bool "Enable syscall tracer"
- default n
-
-endmenu
-
-
-menu "Filesystems"
- config ADK_FROSTED_SYSFS
- bool "SysFS (/sys)"
- default y
-
- config ADK_FROSTED_MEMFS
- bool "MemFS"
- default y
-
- config ADK_FROSTED_XIPFS
- bool "Xip FS"
- default y
-
- config ADK_FROSTED_FATFS
- bool "Fat FS"
- default n
-
- config ADK_FROSTED_FAT32
- depends on ADK_FROSTED_FATFS
- bool "Fat32 support"
- default n
-
- config ADK_FROSTED_FAT16
- depends on ADK_FROSTED_FATFS
- bool "Fat16 support"
- default y
-
-endmenu
-
-menu "Networking"
- config ADK_FROSTED_SOCK_INET
- bool "TCP/IP Socket support"
- default n
- config ADK_FROSTED_TCPIP_MEMPOOL_YN
- bool "Separate memory pool for TCP/IP stack"
- default n
- if ADK_FROSTED_TCPIP_MEMPOOL_YN
- config ADK_FROSTED_TCPIP_MEMPOOL
- string "TCP/IP pool base address"
- default "0x10000000"
- endif
- choice ADK_FROSTED_NET_STACK
- prompt "TCP/IP stack selection"
- default ADK_FROSTED_PICOTCP
- depends on ADK_FROSTED_SOCK_INET
-
- config ADK_FROSTED_PICOTCP
- bool "Built-in PicoTCP"
- endchoice
-
-if ADK_FROSTED_PICOTCP
-
-menu "picoTCP configuration"
-
-config ADK_FROSTED_CONFIG_PICOTCP_IPV4
- bool "Support for IP version 4"
- default y
-
-config ADK_FROSTED_CONFIG_PICOTCP_IPV6
- bool "Support for IP version 6"
- default n
-
-config ADK_FROSTED_CONFIG_PICOTCP_TCP
- bool "Support for TCP"
- default y
-
-config ADK_FROSTED_CONFIG_PICOTCP_UDP
- bool "Support for UDP"
- default y
-
-config ADK_FROSTED_CONFIG_PICOTCP_DNS
- bool "Support for DNS client"
- default y
-
-config ADK_FROSTED_CONFIG_PICOTCP_MCAST
- bool "Support for Multicast"
- default n
-
-config ADK_FROSTED_CONFIG_PICOTCP_NAT
- bool "Support for NAT"
- default n
-
-config ADK_FROSTED_CONFIG_PICOTCP_IPFILTER
- bool "Support for IP Filter"
- default n
-
-config ADK_FROSTED_CONFIG_PICOTCP_LOOP
- bool "Support for loopback device"
- default y
-
-config ADK_FROSTED_CONFIG_PICOTCP_DEBUG
- bool "Activate debugging symbols"
- default n
-
-endmenu
-endif
-
-endmenu
-
-menu "Device Drivers"
- config ADK_FROSTED_DEVNULL
- bool "Support for /dev/null and /dev/zero"
- default y
-
- menuconfig ADK_FROSTED_DEVUART
- bool "Generic UART driver"
- default y
-
- if ADK_FROSTED_DEVUART
-
- config ADK_FROSTED_USART_0
- bool "USART 0"
- depends on (FROSTED_ARCH_LM3S6965 || ADK_FROSTED_ARCH_LM3SVIRT)
-
- config ADK_FROSTED_USART_1
- bool "USART 1"
- depends on (FROSTED_ARCH_LM3S6965 || ADK_FROSTED_ARCH_LM3SVIRT || \
- ADK_FROSTED_ARCH_STM32F401 ||FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F429 || ADK_FROSTED_ARCH_STM32F446 || \
- ADK_FROSTED_ARCH_STM32F746 || ADK_FROSTED_ARCH_STM32F769)
-
- config ADK_FROSTED_USART_2
- bool "USART 2"
- depends on (FROSTED_ARCH_LM3S6965 || ADK_FROSTED_ARCH_LM3SVIRT || \
- ADK_FROSTED_ARCH_STM32F401 || ADK_FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F429 || ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F446 || \
- ADK_FROSTED_ARCH_STM32F746 || ADK_FROSTED_ARCH_STM32F769 )
-
- config ADK_FROSTED_USART_3
- bool "USART 3"
- depends on (FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F746 || ADK_FROSTED_ARCH_STM32F769 )
-
- config ADK_FROSTED_USART_6
- bool "USART 6"
- depends on (FROSTED_ARCH_STM32F401 ||FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F446 || \
- ADK_FROSTED_ARCH_STM32F746 || ADK_FROSTED_ARCH_STM32F769 )
-
- config ADK_FROSTED_UART_0
- bool "UART 0"
- depends on ADK_FROSTED_ARCH_LPC17XX
-
- config ADK_FROSTED_UART_1
- bool "UART 1"
- depends on ADK_FROSTED_ARCH_LPC17XX
-
- config ADK_FROSTED_UART_2
- bool "UART 2"
- depends on ADK_FROSTED_ARCH_LPC17XX
-
- config ADK_FROSTED_UART_3
- bool "UART 3"
- depends on ADK_FROSTED_ARCH_LPC17XX
-
- endif
-
- config ADK_FROSTED_DEVF4DSP
- bool "STM32F4 Sound driver"
- depends on (FROSTED_ARCH_STM32F401 ||FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F429 || ADK_FROSTED_ARCH_STM32F446)
- select ADK_FROSTED_DEVSTM32DMA
- default n
-
- config ADK_FROSTED_DEVSTM32USB
- bool
-
- menuconfig ADK_FROSTED_DEVSTM32USBFS
- bool "Support for Full Speed USB OTG"
- depends on (!ADK_FROSTED_DEVSTM32USBHFS) && (FROSTED_ARCH_STM32F401 ||FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F429 || ADK_FROSTED_ARCH_STM32F446 || \
- ADK_FROSTED_ARCH_STM32F746)
- default n
- select ADK_FROSTED_DEVSTM32USB
- if ADK_FROSTED_DEVSTM32USBFS
- choice
- prompt "USB FS OTG mode"
- default ADK_FROSTED_USBFS_GUEST
- config ADK_FROSTED_USBFS_HOST
- bool "Host mode"
-
- config ADK_FROSTED_USBFS_GUEST
- bool "Device mode"
-
- endchoice
- endif
-
- menuconfig ADK_FROSTED_DEVSTM32USBHS
- bool "Support for High Speed USB OTG"
- depends on (FROSTED_ARCH_STM32F746 || ADK_FROSTED_ARCH_STM32F769)
- select ADK_FROSTED_DEVSTM32USB
- default n
- if ADK_FROSTED_DEVSTM32USBHS
- choice
- prompt "USB HS OTG mode"
- default ADK_FROSTED_USBHS_GUEST
- config ADK_FROSTED_USBHS_HOST
- bool "Host mode"
-
- config ADK_FROSTED_USBHS_GUEST
- bool "Device mode"
-
- endchoice
-
- endif
-
- config ADK_FROSTED_DEV_USB_ETH
- depends on ADK_FROSTED_PICOTCP && ( (FROSTED_DEVSTM32USBHS && ADK_FROSTED_USBHS_GUEST) || (FROSTED_DEVSTM32USBFS && ADK_FROSTED_USBFS_GUEST) )
- select ADK_FROSTED_DEVSTM32USB
- bool "Ethernet over USB (CDC-ECM)"
- default n
-
- if ADK_FROSTED_DEV_USB_ETH
- config ADK_FROSTED_USB_DEFAULT_IP
- string "Default (boot-up) address for usb0"
- default 192.168.6.150
-
- config ADK_FROSTED_USB_DEFAULT_NM
- string "Default (boot-up) netmask for usb0"
- default 255.255.255.0
-
- config ADK_FROSTED_USB_DEFAULT_GW
- string "Default (boot-up) gateway for usb0"
- default 192.168.6.1
- endif
-
-
- config ADK_FROSTED_DEVTIM
- bool "System CPU timer on TIM2"
- depends on (FROSTED_ARCH_STM32F401 ||FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F429 || ADK_FROSTED_ARCH_STM32F446 || ADK_FROSTED_ARCH_STM32F746)
- default n
-
- config ADK_FROSTED_DEVADC
- bool "Generic ADC driver"
- depends on (FROSTED_ARCH_STM32F401 ||FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F429 || ADK_FROSTED_ARCH_STM32F446)
- select ADK_FROSTED_DEVSTM32DMA
- default n
-
-
- config ADK_FROSTED_DEVF4ETH
- bool "STM32F4 Ethernet driver"
- depends on ((FROSTED_ARCH_STM32F401 ||FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F429 || ADK_FROSTED_ARCH_STM32F446) && ADK_FROSTED_PICOTCP)
- default n
-
- config ADK_FROSTED_DEVF7ETH
- bool "STM32F7 Ethernet driver"
- depends on ((FROSTED_ARCH_STM32F746 || ADK_FROSTED_ARCH_STM32F769) && ADK_FROSTED_PICOTCP)
- default n
-
- config ADK_FROSTED_DEVLM3SETH
- bool "LM3S Ethernet driver"
- depends on ((FROSTED_ARCH_LM3S) && ADK_FROSTED_PICOTCP)
- default n
-
- if ADK_FROSTED_DEVF4ETH || ADK_FROSTED_DEVF7ETH || ADK_FROSTED_DEVLM3SETH
- config ADK_FROSTED_ETH_DEFAULT_IP
- string "Default (boot-up) address for eth0"
- default 192.168.2.150
-
- config ADK_FROSTED_ETH_DEFAULT_NM
- string "Default (boot-up) netmask for eth0"
- default 255.255.255.0
-
- config ADK_FROSTED_ETH_DEFAULT_GW
- string "Default (boot-up) gateway for eth0"
- default 192.168.2.1
-
- endif
-
- config ADK_FROSTED_DEVSTM32SDIO
- bool "STM32F4 SD I/O driver"
- depends on (FROSTED_ARCH_STM32F401 ||FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F429 || ADK_FROSTED_ARCH_STM32F7|| ADK_FROSTED_ARCH_STM32F446)
- default n
-
- menuconfig ADK_FROSTED_DEVSTM32I2C
- bool "STM32 I2C driver"
- depends on (FROSTED_ARCH_STM32F401 ||FROSTED_ARCH_STM32F411 || ADK_FROSTED_ARCH_STM32F407 || ADK_FROSTED_ARCH_STM32F405 || ADK_FROSTED_ARCH_STM32F429 || ADK_FROSTED_ARCH_STM32F446 || ADK_FROSTED_ARCH_STM32F746)
- select ADK_FROSTED_DEVSTM32DMA
- default n
-
-
- if ADK_FROSTED_DEVSTM32I2C
- config ADK_FROSTED_I2C1
- bool "I2C 1"
- default n
- config ADK_FROSTED_I2C2
- bool "I2C 2"
- default n
- config ADK_FROSTED_I2C3
- bool "I2C 3"
- default y
- endif
-
- config ADK_FROSTED_DEVCS43L22
- tristate "CS43L22 driver (Stereo DAC)"
- depends on (FROSTED_DEVSTM32I2C)
- default n
-
-
- config ADK_FROSTED_DEVLSM303DLHC
- tristate "LSM303DLHC driver (Accelerometer & Magnetometer)"
- depends on (FROSTED_DEVSTM32I2C)
- default n
-
- config ADK_FROSTED_DEVMCCOG21
- tristate "MCCOG21 driver (2-lines B/W display)"
- depends on (FROSTED_DEVSTM32I2C)
- default n
-
- config ADK_FROSTED_DEVFT5336
- tristate "FT5336 driver (Touchscreen STM32F746)"
- depends on (FROSTED_DEVSTM32I2C)
- default n
-
- config ADK_FROSTED_DEVSTMPE811
- tristate "STMPE811 driver (Touchscreen)"
- depends on (FROSTED_DEVSTM32I2C)
- default n
-
-
-
- menuconfig ADK_FROSTED_DEVSPI
- bool "Generic SPI driver"
- depends on (FROSTED_ARCH_STM32F4 || ADK_FROSTED_ARCH_STM32F7)
- select ADK_FROSTED_DEVSTM32DMA
- default n
-
- if ADK_FROSTED_DEVSPI
- config ADK_FROSTED_SPI_1
- bool "SPI 1"
-
- config ADK_FROSTED_SPI_5
- bool "SPI 5"
-
- endif
-
- config ADK_FROSTED_DEVLIS3DSH
- tristate "LIS3DSH driver (3-Axis Accelerometer)"
- depends on (FROSTED_DEVSPI)
- default n
-
- config ADK_FROSTED_DEVILI9341
- tristate "ILI9341 driver (LCD Controller)"
- depends on (FROSTED_DEVSPI)
- default n
-
- config ADK_FROSTED_DEVL3GD20
- tristate "L3GD20 driver (Gyro)"
- depends on (FROSTED_DEVSPI)
- default n
-
- config ADK_FROSTED_DEV_RANDOM
- depends on (FROSTED_ARCH_STM32F4 || ADK_FROSTED_ARCH_STM32F7)
- bool "STM32F2/F4/F7 Random devices"
- default n
-
- if ADK_FROSTED_DEV_RANDOM
- choice
- prompt "Random device selection"
- config ADK_FROSTED_DEVRNG
- bool "Hardware TRNG driver"
-
- config ADK_FROSTED_DEVFRAND
- bool "Fortuna PRNG device"
- endchoice
- endif
-
- menuconfig ADK_FROSTED_DEVFRAMEBUFFER
- depends on (FROSTED_ARCH_STM32F7 || ADK_FROSTED_ARCH_STM32F4)
- bool "STM32 Framebuffer driver"
- default n
-
- config ADK_FROSTED_DEVFBCON
- depends on ADK_FROSTED_DEVFRAMEBUFFER
- bool "Console on Framebuffer via /dev/fbcon"
- default n
-
- config ADK_FROSTED_DEVF7DISCOLTDC
- depends on ADK_FROSTED_DEVFRAMEBUFFER
- bool "F746 Discovery LTDC"
- default n
-
-endmenu
-
-menu "Power Management"
- if ADK_FROSTED_DEVTIM
- config ADK_FROSTED_LOWPOWER
- bool "Enable low-power optimizations"
- default n
- config ADK_FROSTED_TICKLESS
- bool "Disable systick in between process switches (untested)"
- default n
- endif
- if !ADK_FROSTED_DEVTIM
- comment "Power Management requires CPU Timer support"
- endif
-endmenu
-
-
diff --git a/target/frosted/Config.in.apps b/target/frosted/Config.in.apps
deleted file mode 100644
index 7a4ff3b6b..000000000
--- a/target/frosted/Config.in.apps
+++ /dev/null
@@ -1,154 +0,0 @@
-menu "Libraries"
- config ADK_PACKAGE_FROSTED_LIB_WOLFSSL
- bool "WolfSSL TLS + Encryption"
- default n
-
- config ADK_PACKAGE_FROSTED_LIB_MONGOOSE
- bool "Cesanta's Mongoose REST API library"
- default n
-
-endmenu
-
-
-menu "Applications"
-
-menu "Base binary utils"
-config ADK_PACKAGE_FROSTED_APP_INIT
-bool "init: main task"
-default y
-
-config ADK_PACKAGE_FROSTED_APP_IDLING
-bool "idling: flashing leds"
-default y
-
-config ADK_PACKAGE_FROSTED_APP_FRESH
-bool "fresh: Frosted shell"
-default y
-
-config ADK_PACKAGE_FROSTED_APP_CAT
- bool "cat"
-
-config ADK_PACKAGE_FROSTED_APP_ECHO
- bool "echo"
-config ADK_PACKAGE_FROSTED_APP_LS
- bool "ls"
-config ADK_PACKAGE_FROSTED_APP_TOUCH
- bool "touch"
-config ADK_PACKAGE_FROSTED_APP_RM
- bool "rm"
-config ADK_PACKAGE_FROSTED_APP_KILL
- bool "kill"
-config ADK_PACKAGE_FROSTED_APP_TRUE
- bool "true"
-config ADK_PACKAGE_FROSTED_APP_FALSE
- bool "false"
-config ADK_PACKAGE_FROSTED_APP_LN
- bool "ln"
-config ADK_PACKAGE_FROSTED_APP_DIRNAME
- bool "dirname"
-config ADK_PACKAGE_FROSTED_APP_MKDIR
- bool "mkdir"
-config ADK_PACKAGE_FROSTED_APP_MOUNT
- bool "mount"
-config ADK_PACKAGE_FROSTED_APP_PLAY
- bool "play"
-config ADK_PACKAGE_FROSTED_APP_WC
- bool "wc"
-config ADK_PACKAGE_FROSTED_APP_HEAD
- bool "head"
-config ADK_PACKAGE_FROSTED_APP_TAIL
- bool "tail"
-config ADK_PACKAGE_FROSTED_APP_YES
- bool "yes"
-config ADK_PACKAGE_FROSTED_APP_SLEEP
- bool "sleep"
-config ADK_PACKAGE_FROSTED_APP_UPTIME
- bool "uptime"
-config ADK_PACKAGE_FROSTED_APP_KLOGD
- bool "klogd"
-config ADK_PACKAGE_FROSTED_APP_GDBSERVER
- bool "gdbserver"
-config ADK_PACKAGE_FROSTED_APP_REBOOT
- bool "reboot"
-config ADK_PACKAGE_FROSTED_APP_RENICE
- bool "renice"
-config ADK_PACKAGE_FROSTED_APP_CUT
- bool "cut"
-config ADK_PACKAGE_FROSTED_APP_GREP
- bool "grep"
-config ADK_PACKAGE_FROSTED_APP_KILO
- bool "kilo (text editor)"
-config ADK_PACKAGE_FROSTED_APP_POWERCTL
- bool "Remote power control (powerctl)"
-config ADK_PACKAGE_FROSTED_APP_PTHREADS
- bool "Pthreads test (pthreads)"
-config ADK_PACKAGE_FROSTED_APP_SEM
- bool "Semaphore test(sem)"
-config ADK_PACKAGE_FROSTED_APP_DATE
- bool "date"
-endmenu
-
-menu "Networking utils"
-config ADK_PACKAGE_FROSTED_APP_IFCONFIG
- bool "ifconfig"
-config ADK_PACKAGE_FROSTED_APP_ROUTE
- bool "route"
-config ADK_PACKAGE_FROSTED_APP_PING
- bool "ping"
-config ADK_PACKAGE_FROSTED_APP_HOST
- bool "host"
-config ADK_PACKAGE_FROSTED_APP_TELNETD
- bool "telnetd"
-config ADK_PACKAGE_FROSTED_APP_NETCAT
- bool "netcat"
-config ADK_PACKAGE_FROSTED_APP_HTTPD
- bool "httpd"
- depends on LIB_MONGOOSE
-config ADK_PACKAGE_FROSTED_APP_SSHD
- bool "sshd"
- depends on LIB_WOLFSSL
-config ADK_PACKAGE_FROSTED_APP_NTPC
- bool "ntpc"
-config ADK_PACKAGE_FROSTED_APP_STARWARS
- bool "starwars"
-endmenu
-
-menu "Interpreters"
-config ADK_PACKAGE_FROSTED_APP_PYTHON
- bool "python interpreter (micropython)"
-endmenu
-
-
-menu "Hardware utils"
-config ADK_PACKAGE_FROSTED_APP_BUSYLOOP
- bool "busyloop - CPU busy test"
-config ADK_PACKAGE_FROSTED_APP_MORSE
- bool "Morse led blinker"
-config ADK_PACKAGE_FROSTED_APP_RANDOM
- bool "Random number generator"
-config ADK_PACKAGE_FROSTED_APP_SENSOR
- bool "Test for sensors (obsolete)"
-config ADK_PACKAGE_FROSTED_APP_FBTEST
- bool "Test for framebuffer"
-config ADK_PACKAGE_FROSTED_APP_FBCTL
- bool "fbctl (screen on/off utility)"
-config ADK_PACKAGE_FROSTED_APP_GPIOCTL
- bool "gpioctl - Tools to set up GPIOs"
-config ADK_PACKAGE_FROSTED_APP_LATENCY
- bool "process latency measurement"
-config ADK_PACKAGE_FROSTED_APP_ACC
- bool "Accelerometer tool (acc)"
-endmenu
-
-menu "Games"
-config ADK_PACKAGE_FROSTED_APP_DOOM
- bool "ID Software's DOOM"
-config ADK_PACKAGE_FROSTED_APP_DICE
- bool "Roll the dice"
-config ADK_PACKAGE_FROSTED_APP_BYTEBEAT
- bool "sample bytebeat"
-config ADK_PACKAGE_FROSTED_APP_GROOVY
- bool "groovy - bytebeat positional generator"
-endmenu
-endmenu
-
diff --git a/target/frosted/Makefile b/target/frosted/Makefile
deleted file mode 100644
index 4845ddab5..000000000
--- a/target/frosted/Makefile
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-prepare:
- if [ ! -d $(BUILD_DIR)/frosted ]; then \
- cd $(BUILD_DIR) ;\
- git clone https://github.com/insane-adding-machines/frosted.git ;\
- cd frosted ;\
- git submodule update --init --recursive ;\
- fi
- cp $(BUILD_DIR)/.frosted $(BUILD_DIR)/frosted/kconfig/.config
- cp $(BUILD_DIR)/.frostedapps $(BUILD_DIR)/frosted/frosted-userland/kconfig/.config
-
-compile:
- PATH='$(HOST_PATH)' $(MAKE) V=1 -C $(BUILD_DIR)/frosted/frosted-userland $(MAKE_TRACE)
- PATH='$(HOST_PATH)' $(MAKE) V=1 -C $(BUILD_DIR)/frosted $(MAKE_TRACE)
-
-install:
- @cp $(BUILD_DIR)/frosted/image.bin $(FW_DIR)
-
-targethelp:
- @echo "Use following command to flash:"
- @echo "$(STAGING_HOST_DIR)/usr/bin/st-flash write $(FW_DIR)/image.bin 0x08000000"
-
-clean:
- @PATH='$(HOST_PATH)' $(MAKE) -C $(BUILD_DIR)/frosted clean
diff --git a/target/frosted/arch.lst b/target/frosted/arch.lst
deleted file mode 100644
index fb05f39d3..000000000
--- a/target/frosted/arch.lst
+++ /dev/null
@@ -1 +0,0 @@
-arm
diff --git a/target/h8300/systems/hitachi-edosk2674 b/target/h8300/systems/hitachi-edosk2674
index 7a53d4368..10eac7cea 100644
--- a/target/h8300/systems/hitachi-edosk2674
+++ b/target/h8300/systems/hitachi-edosk2674
@@ -3,6 +3,8 @@ config ADK_TARGET_SYSTEM_HITACHI_EDOSK2674
select ADK_TARGET_CPU_H8S
select ADK_TARGET_PACKAGE_TXZ
select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
select ADK_TARGET_KERNEL_UIMAGEBIN
select ADK_HOST_BUILD_U_BOOT_H8300
help
diff --git a/target/h8300/uclibc-ng.config b/target/h8300/uclibc-ng-nommu.config
index 153512253..153512253 100644
--- a/target/h8300/uclibc-ng.config
+++ b/target/h8300/uclibc-ng-nommu.config
diff --git a/target/hppa/Makefile b/target/hppa/Makefile
index aba746bee..482479e58 100644
--- a/target/hppa/Makefile
+++ b/target/hppa/Makefile
@@ -8,6 +8,7 @@ include $(ADK_TOPDIR)/mk/image.mk
KERNEL:=$(LINUX_DIR)/$(ADK_TARGET_KERNEL)
QEMU:=qemu-system-hppa
QEMU_ARGS:=-nographic
+QEMU_ARGS+=-device e1000,netdev=adk0 -netdev user,id=adk0
# target helper text
ifeq ($(ADK_TARGET_FS),archive)
diff --git a/target/hppa/kernel/qemu-hppa b/target/hppa/kernel/qemu-hppa
index e16c3f466..e0d0e95a3 100644
--- a/target/hppa/kernel/qemu-hppa
+++ b/target/hppa/kernel/qemu-hppa
@@ -6,3 +6,4 @@ CONFIG_GSC_WAX=y
CONFIG_GSC_DINO=y
CONFIG_SERIAL_MUX=y
CONFIG_SERIAL_MUX_CONSOLE=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/hppa/systems/hp-c3700 b/target/hppa/systems/hp-c3700
deleted file mode 100644
index f0299288b..000000000
--- a/target/hppa/systems/hp-c3700
+++ /dev/null
@@ -1,8 +0,0 @@
-config ADK_TARGET_SYSTEM_HP_C3700
- bool "HP C3700 Workstation"
- select ADK_TARGET_CPU_PARISC
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- HP C3700 workstation with PA-8700 750 MHz
- https://www.openpa.net/systems/hp-visualize_b1000_c3000_c3600.html
-
diff --git a/target/kvx/Makefile b/target/kvx/Makefile
new file mode 100644
index 000000000..ecef4a219
--- /dev/null
+++ b/target/kvx/Makefile
@@ -0,0 +1,61 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+include $(ADK_TOPDIR)/mk/kernel-build.mk
+include $(ADK_TOPDIR)/mk/image.mk
+
+KERNEL:=$(LINUX_DIR)/vmlinux
+QEMU_ARGS:=-nographic
+
+#
+# target helper text
+ifeq ($(ADK_TARGET_FS),archive)
+targethelp:
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "Use following command to create a QEMU Image:"
+ @echo "./scripts/create.sh qemu-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+ @echo "Start qemu with following options:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${ADK_TARGET_CPU_ARCH}.img'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfs)
+targethelp:
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfsarchive)
+targethelp:
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+endif
+ifeq ($(ADK_TARGET_FS),initramfspiggyback)
+targethelp:
+ @echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+endif
+endif
+
+kernel-strip:
+
+kernel-install: kernel-strip
+ @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
+
+# filesystem specific targets
+ifeq ($(ADK_TARGET_FS),initramfs)
+imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
+endif
+ifeq ($(ADK_TARGET_FS),initramfsarchive)
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
+endif
+ifeq ($(ADK_TARGET_FS),initramfspiggyback)
+imageinstall: createinitramfs targethelp
+endif
diff --git a/target/kvx/kernel/generic-kvx b/target/kvx/kernel/generic-kvx
new file mode 100644
index 000000000..1d953b12e
--- /dev/null
+++ b/target/kvx/kernel/generic-kvx
@@ -0,0 +1,3311 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/kvx 5.8.12 Kernel Configuration
+#
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=90401
+CONFIG_LD_VERSION=237000000
+CONFIG_CLANG_VERSION=0
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_CAN_LINK_STATIC=y
+CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_IRQ_WORK=y
+CONFIG_THREAD_INFO_IN_TASK=y
+
+#
+# General setup
+#
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+# CONFIG_COMPILE_TEST is not set
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_BUILD_SALT=""
+CONFIG_DEFAULT_INIT=""
+CONFIG_DEFAULT_HOSTNAME="KVXlinux"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_WATCH_QUEUE is not set
+CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_USELIB is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_INJECTION=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_GENERIC_IRQ_IPI=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
+CONFIG_IRQ_MSI_IOMMU=y
+CONFIG_SPARSE_IRQ=y
+# end of IRQ subsystem
+
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+
+#
+# Timers subsystem
+#
+CONFIG_HZ_PERIODIC=y
+# CONFIG_NO_HZ_IDLE is not set
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+# end of Timers subsystem
+
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_PSI is not set
+# end of CPU/Task time and stats accounting
+
+#
+# RCU Subsystem
+#
+CONFIG_TINY_RCU=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_SRCU=y
+CONFIG_TINY_SRCU=y
+# end of RCU Subsystem
+
+# CONFIG_IKCONFIG is not set
+# CONFIG_IKHEADERS is not set
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+CONFIG_GENERIC_SCHED_CLOCK=y
+
+#
+# Scheduler features
+#
+# end of Scheduler features
+
+CONFIG_CC_HAS_INT128=y
+# CONFIG_CGROUPS is not set
+# CONFIG_NAMESPACES is not set
+# CONFIG_CHECKPOINT_RESTORE is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio"
+CONFIG_INITRAMFS_ROOT_UID=0
+CONFIG_INITRAMFS_ROOT_GID=0
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+CONFIG_RD_LZ4=y
+CONFIG_INITRAMFS_COMPRESSION_GZIP=y
+# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set
+# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set
+# CONFIG_INITRAMFS_COMPRESSION_XZ is not set
+# CONFIG_INITRAMFS_COMPRESSION_LZO is not set
+# CONFIG_INITRAMFS_COMPRESSION_LZ4 is not set
+# CONFIG_INITRAMFS_COMPRESSION_NONE is not set
+# CONFIG_BOOT_CONFIG is not set
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_BPF=y
+CONFIG_EXPERT=y
+CONFIG_MULTIUSER=y
+# CONFIG_SGETMASK_SYSCALL is not set
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_FHANDLE=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_FUTEX_PI=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_IO_URING=y
+CONFIG_ADVISE_SYSCALLS=y
+CONFIG_MEMBARRIER=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_BPF_SYSCALL is not set
+# CONFIG_USERFAULTFD is not set
+CONFIG_EMBEDDED=y
+CONFIG_HAVE_PERF_EVENTS=y
+# CONFIG_PC104 is not set
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+# end of Kernel Performance Events And Counters
+
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+CONFIG_COMPAT_BRK=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_SLAB_MERGE_DEFAULT=y
+# CONFIG_SLAB_FREELIST_RANDOM is not set
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
+# CONFIG_PROFILING is not set
+# end of General setup
+
+CONFIG_64BIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_MMU=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_HAVE_COPY_THREAD_TLS=y
+CONFIG_ZONE_DMA32=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_KVX=y
+CONFIG_PGTABLE_LEVELS=3
+
+#
+# System setup
+#
+CONFIG_POISON_INITMEM=y
+CONFIG_KVX_PHYS_OFFSET=0x100000000
+CONFIG_KVX_PAGE_OFFSET=0xFFFFFF8000000000
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_STACK_MAX_DEPTH_TO_PRINT=24
+CONFIG_L2_CACHE=y
+CONFIG_SECURE_DAME_HANDLING=y
+# CONFIG_CACHECTL_UNSAFE_PHYS_OPERATIONS is not set
+CONFIG_ENABLE_TCA=y
+# CONFIG_SMP is not set
+CONFIG_KVX_4K_PAGES=y
+# CONFIG_KVX_64K_PAGES is not set
+CONFIG_KVX_PAGE_SHIFT=12
+CONFIG_CMDLINE=""
+# end of System setup
+
+#
+# System Type
+#
+CONFIG_KVX_SUBARCH_KV3_1=y
+# CONFIG_KVX_SUBARCH_KV3_2 is not set
+# end of System Type
+
+#
+# Kernel Features
+#
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+# end of Kernel Features
+
+#
+# General architecture-dependent options
+#
+CONFIG_JUMP_LABEL=y
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_MODULES_USE_ELF_RELA=y
+# CONFIG_COMPAT_32BIT_TIME is not set
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+
+#
+# GCOV-based kernel profiling
+#
+# end of GCOV-based kernel profiling
+# end of General architecture-dependent options
+
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_ASM_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_COMPRESS is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_TRIM_UNUSED_KSYMS is not set
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_BLK_SCSI_REQUEST=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_BSGLIB is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_DEV_ZONED is not set
+# CONFIG_BLK_CMDLINE_PARSER is not set
+# CONFIG_BLK_WBT is not set
+# CONFIG_BLK_SED_OPAL is not set
+# CONFIG_BLK_INLINE_ENCRYPTION is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# end of Partition Types
+
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_VIRTIO=y
+
+#
+# IO Schedulers
+#
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=y
+# CONFIG_IOSCHED_BFQ is not set
+# end of IO Schedulers
+
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_ELFCORE=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_COREDUMP=y
+# end of Executable file formats
+
+#
+# Memory Management options
+#
+CONFIG_SELECT_MEMORY_MODEL=y
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+# CONFIG_PAGE_REPORTING is not set
+CONFIG_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_NEED_PER_CPU_KM=y
+# CONFIG_CLEANCACHE is not set
+# CONFIG_FRONTSWAP is not set
+# CONFIG_CMA is not set
+# CONFIG_ZPOOL is not set
+# CONFIG_ZBUD is not set
+# CONFIG_ZSMALLOC is not set
+# CONFIG_IDLE_PAGE_TRACKING is not set
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_GUP_BENCHMARK is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+# end of Memory Management options
+
+CONFIG_NET=y
+CONFIG_NET_INGRESS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_DIAG is not set
+CONFIG_UNIX=y
+CONFIG_UNIX_SCM=y
+# CONFIG_UNIX_DIAG is not set
+# CONFIG_TLS is not set
+# CONFIG_XFRM_USER is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE_DEMUX is not set
+CONFIG_NET_IP_TUNNEL=y
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_NET_IPVTI is not set
+# CONFIG_NET_FOU is not set
+# CONFIG_NET_FOU_IP_TUNNELS is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_INET_UDP_DIAG is not set
+# CONFIG_INET_RAW_DIAG is not set
+# CONFIG_INET_DIAG_DESTROY is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_IPV6_ILA is not set
+# CONFIG_IPV6_VTI is not set
+CONFIG_IPV6_SIT=y
+# CONFIG_IPV6_SIT_6RD is not set
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_IPV6_SEG6_LWTUNNEL is not set
+# CONFIG_IPV6_SEG6_HMAC is not set
+# CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_MPTCP is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NET_PTP_CLASSIFY=y
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_INGRESS=y
+# CONFIG_NETFILTER_NETLINK_ACCT is not set
+# CONFIG_NETFILTER_NETLINK_QUEUE is not set
+# CONFIG_NETFILTER_NETLINK_LOG is not set
+# CONFIG_NETFILTER_NETLINK_OSF is not set
+CONFIG_NF_CONNTRACK=m
+# CONFIG_NF_LOG_NETDEV is not set
+# CONFIG_NF_CONNTRACK_MARK is not set
+# CONFIG_NF_CONNTRACK_ZONES is not set
+CONFIG_NF_CONNTRACK_PROCFS=y
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+# CONFIG_NF_CONNTRACK_TIMEOUT is not set
+# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
+# CONFIG_NF_CONNTRACK_LABELS is not set
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+# CONFIG_NF_CONNTRACK_FTP is not set
+# CONFIG_NF_CONNTRACK_H323 is not set
+# CONFIG_NF_CONNTRACK_IRC is not set
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_SNMP is not set
+# CONFIG_NF_CONNTRACK_PPTP is not set
+# CONFIG_NF_CONNTRACK_SANE is not set
+# CONFIG_NF_CONNTRACK_SIP is not set
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CT_NETLINK is not set
+CONFIG_NF_NAT=m
+# CONFIG_NF_TABLES is not set
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+# CONFIG_NETFILTER_XT_MARK is not set
+# CONFIG_NETFILTER_XT_CONNMARK is not set
+
+#
+# Xtables targets
+#
+# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+# CONFIG_NETFILTER_XT_TARGET_LOG is not set
+# CONFIG_NETFILTER_XT_TARGET_MARK is not set
+CONFIG_NETFILTER_XT_NAT=m
+# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
+# CONFIG_NETFILTER_XT_TARGET_MASQUERADE is not set
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+
+#
+# Xtables matches
+#
+# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_BPF is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ECN is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
+# CONFIG_NETFILTER_XT_MATCH_HL is not set
+# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
+# CONFIG_NETFILTER_XT_MATCH_STATE is not set
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# end of Core Netfilter Configuration
+
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+# CONFIG_NF_SOCKET_IPV4 is not set
+# CONFIG_NF_TPROXY_IPV4 is not set
+# CONFIG_NF_DUP_IPV4 is not set
+# CONFIG_NF_LOG_ARP is not set
+# CONFIG_NF_LOG_IPV4 is not set
+# CONFIG_NF_REJECT_IPV4 is not set
+CONFIG_IP_NF_IPTABLES=m
+# CONFIG_IP_NF_MATCH_AH is not set
+# CONFIG_IP_NF_MATCH_ECN is not set
+# CONFIG_IP_NF_MATCH_TTL is not set
+# CONFIG_IP_NF_FILTER is not set
+# CONFIG_IP_NF_TARGET_SYNPROXY is not set
+CONFIG_IP_NF_NAT=m
+# CONFIG_IP_NF_TARGET_MASQUERADE is not set
+# CONFIG_IP_NF_TARGET_NETMAP is not set
+# CONFIG_IP_NF_TARGET_REDIRECT is not set
+# CONFIG_IP_NF_MANGLE is not set
+# CONFIG_IP_NF_RAW is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+# end of IP: Netfilter Configuration
+
+#
+# IPv6: Netfilter Configuration
+#
+# CONFIG_NF_SOCKET_IPV6 is not set
+# CONFIG_NF_TPROXY_IPV6 is not set
+# CONFIG_NF_DUP_IPV6 is not set
+# CONFIG_NF_REJECT_IPV6 is not set
+# CONFIG_NF_LOG_IPV6 is not set
+# CONFIG_IP6_NF_IPTABLES is not set
+# end of IPv6: Netfilter Configuration
+
+CONFIG_NF_DEFRAG_IPV6=m
+# CONFIG_NF_CONNTRACK_BRIDGE is not set
+# CONFIG_BPFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+# CONFIG_BRIDGE is not set
+CONFIG_HAVE_NET_DSA=y
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_PHONET is not set
+# CONFIG_6LOWPAN is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+CONFIG_DCB=y
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
+# CONFIG_NETLINK_DIAG is not set
+# CONFIG_MPLS is not set
+# CONFIG_NET_NSH is not set
+# CONFIG_HSR is not set
+# CONFIG_NET_SWITCHDEV is not set
+# CONFIG_NET_L3_MASTER_DEV is not set
+# CONFIG_QRTR is not set
+# CONFIG_NET_NCSI is not set
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# end of Network testing
+# end of Networking options
+
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_AF_KCM is not set
+CONFIG_WIRELESS=y
+# CONFIG_CFG80211 is not set
+
+#
+# CFG80211 needs to be enabled for MAC80211
+#
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+# CONFIG_NFC is not set
+# CONFIG_PSAMPLE is not set
+# CONFIG_NET_IFE is not set
+# CONFIG_LWTUNNEL is not set
+CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
+CONFIG_PAGE_POOL=y
+# CONFIG_FAILOVER is not set
+
+#
+# Device Drivers
+#
+CONFIG_HAVE_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_PCIEAER=y
+CONFIG_PCIEAER_INJECT=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEASPM is not set
+CONFIG_PCIE_DPC=y
+# CONFIG_PCIE_PTM is not set
+# CONFIG_PCIE_BW is not set
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_IOV is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+
+#
+# PCI controller drivers
+#
+CONFIG_PCIE_KVX_NWL=y
+# CONFIG_PCIE_KVX_ERR_INJECT_SYSFS is not set
+# CONFIG_PCI_FTPCI100 is not set
+# CONFIG_PCI_HOST_GENERIC is not set
+# CONFIG_PCIE_XILINX is not set
+
+#
+# DesignWare PCI Core Support
+#
+# CONFIG_PCIE_DW_PLAT_HOST is not set
+# CONFIG_PCI_MESON is not set
+# end of DesignWare PCI Core Support
+
+#
+# Mobiveil PCIe Core Support
+#
+# end of Mobiveil PCIe Core Support
+
+#
+# Cadence PCIe controllers support
+#
+# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
+# end of Cadence PCIe controllers support
+# end of PCI controller drivers
+
+#
+# PCI Endpoint
+#
+# CONFIG_PCI_ENDPOINT is not set
+# end of PCI Endpoint
+
+#
+# PCI switch controller drivers
+#
+# CONFIG_PCI_SW_SWITCHTEC is not set
+# end of PCI switch controller drivers
+
+# CONFIG_PCCARD is not set
+# CONFIG_RAPIDIO is not set
+
+#
+# Generic Driver Options
+#
+# CONFIG_UEVENT_HELPER is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+
+#
+# Firmware loader
+#
+CONFIG_FW_LOADER=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER is not set
+# CONFIG_FW_LOADER_COMPRESS is not set
+# end of Firmware loader
+
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+CONFIG_GENERIC_CPU_DEVICES=y
+CONFIG_SOC_BUS=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_MMIO=y
+# end of Generic Driver Options
+
+#
+# Bus devices
+#
+# CONFIG_MOXTET is not set
+# CONFIG_MHI_BUS is not set
+# end of Bus devices
+
+# CONFIG_CONNECTOR is not set
+# CONFIG_GNSS is not set
+CONFIG_MTD=y
+# CONFIG_MTD_TESTS is not set
+
+#
+# Partition parsers
+#
+# CONFIG_MTD_AR7_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+CONFIG_MTD_OF_PARTS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# end of Partition parsers
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_SM_FTL is not set
+# CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# end of RAM/ROM/Flash chip drivers
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+# CONFIG_MTD_PLATRAM is not set
+# end of Mapping drivers for chip access
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_MCHP23K256 is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOCG3 is not set
+# end of Self-contained MTD device drivers
+
+# CONFIG_MTD_ONENAND is not set
+# CONFIG_MTD_RAW_NAND is not set
+# CONFIG_MTD_SPI_NAND is not set
+
+#
+# LPDDR & LPDDR2 PCM memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+# end of LPDDR & LPDDR2 PCM memory drivers
+
+CONFIG_MTD_SPI_NOR=y
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+# CONFIG_MTD_UBI is not set
+# CONFIG_MTD_HYPERBUS is not set
+CONFIG_DTC=y
+CONFIG_OF=y
+# CONFIG_OF_UNITTEST is not set
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=m
+CONFIG_OF_RESERVED_MEM=y
+# CONFIG_OF_OVERLAY is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_DRBD is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SKD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_VIRTIO_BLK is not set
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_BLK_DEV_RSXX is not set
+
+#
+# NVME Support
+#
+CONFIG_NVME_CORE=y
+CONFIG_BLK_DEV_NVME=y
+# CONFIG_NVME_MULTIPATH is not set
+# CONFIG_NVME_HWMON is not set
+# CONFIG_NVME_FC is not set
+# CONFIG_NVME_TCP is not set
+# CONFIG_NVME_TARGET is not set
+# end of NVME Support
+
+#
+# Misc devices
+#
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_DUMMY_IRQ is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_APDS9802ALS is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_LATTICE_ECP3_CONFIG is not set
+# CONFIG_SRAM is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
+# CONFIG_XILINX_SDFEC is not set
+# CONFIG_PVPANIC is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_EEPROM_93XX46 is not set
+# CONFIG_EEPROM_IDT_89HPESX is not set
+# CONFIG_EEPROM_EE1004 is not set
+# end of EEPROM support
+
+# CONFIG_CB710_CORE is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# end of Texas Instruments shared transport line discipline
+
+# CONFIG_SENSORS_LIS3_SPI is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+# CONFIG_ALTERA_STAPL is not set
+
+#
+# Intel MIC & related support
+#
+# CONFIG_VOP_BUS is not set
+# end of Intel MIC & related support
+
+# CONFIG_GENWQE is not set
+# CONFIG_ECHO is not set
+# CONFIG_MISC_ALCOR_PCI is not set
+# CONFIG_MISC_RTSX_PCI is not set
+# CONFIG_MISC_RTSX_USB is not set
+# CONFIG_HABANA_AI is not set
+# CONFIG_UACCE is not set
+# end of Misc devices
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# end of SCSI device support
+
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+# CONFIG_TARGET_CORE is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+# end of IEEE 1394 (FireWire) support
+
+CONFIG_NETDEVICES=y
+CONFIG_MII=m
+CONFIG_NET_CORE=y
+# CONFIG_BONDING is not set
+# CONFIG_DUMMY is not set
+# CONFIG_WIREGUARD is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_IPVLAN is not set
+# CONFIG_VXLAN is not set
+# CONFIG_GENEVE is not set
+# CONFIG_BAREUDP is not set
+# CONFIG_GTP is not set
+# CONFIG_MACSEC is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_TUN is not set
+# CONFIG_TUN_VNET_CROSS_LE is not set
+# CONFIG_VETH is not set
+# CONFIG_VIRTIO_NET is not set
+# CONFIG_NLMON is not set
+# CONFIG_ARCNET is not set
+
+#
+# Distributed Switch Architecture drivers
+#
+# end of Distributed Switch Architecture drivers
+
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_3COM=y
+# CONFIG_VORTEX is not set
+# CONFIG_TYPHOON is not set
+CONFIG_NET_VENDOR_ADAPTEC=y
+# CONFIG_ADAPTEC_STARFIRE is not set
+CONFIG_NET_VENDOR_AGERE=y
+# CONFIG_ET131X is not set
+CONFIG_NET_VENDOR_ALACRITECH=y
+# CONFIG_SLICOSS is not set
+CONFIG_NET_VENDOR_ALTEON=y
+# CONFIG_ACENIC is not set
+# CONFIG_ALTERA_TSE is not set
+CONFIG_NET_VENDOR_AMAZON=y
+# CONFIG_ENA_ETHERNET is not set
+CONFIG_NET_VENDOR_AMD=y
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_PCNET32 is not set
+CONFIG_NET_VENDOR_AQUANTIA=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+# CONFIG_ATL2 is not set
+# CONFIG_ATL1 is not set
+# CONFIG_ATL1E is not set
+# CONFIG_ATL1C is not set
+# CONFIG_ALX is not set
+CONFIG_NET_VENDOR_AURORA=y
+# CONFIG_AURORA_NB8800 is not set
+CONFIG_NET_VENDOR_BROADCOM=y
+# CONFIG_B44 is not set
+# CONFIG_BCMGENET is not set
+# CONFIG_BNX2 is not set
+# CONFIG_CNIC is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2X is not set
+# CONFIG_SYSTEMPORT is not set
+# CONFIG_BNXT is not set
+CONFIG_NET_VENDOR_BROCADE=y
+# CONFIG_BNA is not set
+CONFIG_NET_VENDOR_CADENCE=y
+# CONFIG_MACB is not set
+CONFIG_NET_VENDOR_CAVIUM=y
+# CONFIG_THUNDER_NIC_PF is not set
+# CONFIG_THUNDER_NIC_VF is not set
+# CONFIG_THUNDER_NIC_BGX is not set
+# CONFIG_THUNDER_NIC_RGX is not set
+# CONFIG_CAVIUM_PTP is not set
+# CONFIG_LIQUIDIO is not set
+# CONFIG_LIQUIDIO_VF is not set
+CONFIG_NET_VENDOR_CHELSIO=y
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_CHELSIO_T4 is not set
+# CONFIG_CHELSIO_T4VF is not set
+CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_ENIC is not set
+CONFIG_NET_VENDOR_CORTINA=y
+# CONFIG_GEMINI_ETHERNET is not set
+# CONFIG_DNET is not set
+CONFIG_NET_VENDOR_DEC=y
+# CONFIG_NET_TULIP is not set
+CONFIG_NET_VENDOR_DLINK=y
+# CONFIG_DL2K is not set
+# CONFIG_SUNDANCE is not set
+CONFIG_NET_VENDOR_EMULEX=y
+# CONFIG_BE2NET is not set
+CONFIG_NET_VENDOR_EZCHIP=y
+# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
+CONFIG_NET_VENDOR_GOOGLE=y
+# CONFIG_GVE is not set
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_INTEL=y
+# CONFIG_E100 is not set
+# CONFIG_E1000 is not set
+CONFIG_E1000E=y
+# CONFIG_IGB is not set
+# CONFIG_IGBVF is not set
+# CONFIG_IXGB is not set
+# CONFIG_IXGBE is not set
+# CONFIG_IXGBEVF is not set
+# CONFIG_I40E is not set
+# CONFIG_I40EVF is not set
+# CONFIG_ICE is not set
+# CONFIG_FM10K is not set
+# CONFIG_IGC is not set
+# CONFIG_JME is not set
+CONFIG_NET_VENDOR_MARVELL=y
+# CONFIG_MVMDIO is not set
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+# CONFIG_MLX4_EN is not set
+# CONFIG_MLX5_CORE is not set
+# CONFIG_MLXSW_CORE is not set
+# CONFIG_MLXFW is not set
+CONFIG_NET_VENDOR_MICREL=y
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_KSZ884X_PCI is not set
+CONFIG_NET_VENDOR_MICROCHIP=y
+# CONFIG_ENC28J60 is not set
+# CONFIG_ENCX24J600 is not set
+# CONFIG_LAN743X is not set
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MYRI=y
+# CONFIG_MYRI10GE is not set
+# CONFIG_FEALNX is not set
+CONFIG_NET_VENDOR_NATSEMI=y
+# CONFIG_NATSEMI is not set
+# CONFIG_NS83820 is not set
+CONFIG_NET_VENDOR_NETERION=y
+# CONFIG_S2IO is not set
+# CONFIG_VXGE is not set
+CONFIG_NET_VENDOR_NETRONOME=y
+# CONFIG_NFP is not set
+CONFIG_NET_VENDOR_NI=y
+# CONFIG_NI_XGE_MANAGEMENT_ENET is not set
+CONFIG_NET_VENDOR_8390=y
+# CONFIG_NE2K_PCI is not set
+CONFIG_NET_VENDOR_NVIDIA=y
+# CONFIG_FORCEDETH is not set
+CONFIG_NET_VENDOR_OKI=y
+# CONFIG_ETHOC is not set
+CONFIG_NET_VENDOR_PACKET_ENGINES=y
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+CONFIG_NET_VENDOR_PENSANDO=y
+# CONFIG_IONIC is not set
+CONFIG_NET_VENDOR_QLOGIC=y
+# CONFIG_QLA3XXX is not set
+# CONFIG_QLCNIC is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_QED is not set
+CONFIG_NET_VENDOR_QUALCOMM=y
+# CONFIG_QCA7000_SPI is not set
+# CONFIG_QCOM_EMAC is not set
+# CONFIG_RMNET is not set
+CONFIG_NET_VENDOR_RDC=y
+# CONFIG_R6040 is not set
+CONFIG_NET_VENDOR_REALTEK=y
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_R8169 is not set
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+# CONFIG_SXGBE_ETH is not set
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SOLARFLARE=y
+# CONFIG_SFC is not set
+# CONFIG_SFC_FALCON is not set
+CONFIG_NET_VENDOR_SILAN=y
+# CONFIG_SC92031 is not set
+CONFIG_NET_VENDOR_SIS=y
+# CONFIG_SIS900 is not set
+# CONFIG_SIS190 is not set
+CONFIG_NET_VENDOR_SMSC=y
+# CONFIG_EPIC100 is not set
+# CONFIG_SMSC911X is not set
+# CONFIG_SMSC9420 is not set
+CONFIG_NET_VENDOR_SOCIONEXT=y
+CONFIG_NET_VENDOR_STMICRO=y
+# CONFIG_STMMAC_ETH is not set
+CONFIG_NET_VENDOR_SUN=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NIU is not set
+CONFIG_NET_VENDOR_SYNOPSYS=y
+# CONFIG_DWC_XLGMAC is not set
+CONFIG_NET_VENDOR_TEHUTI=y
+# CONFIG_TEHUTI is not set
+CONFIG_NET_VENDOR_TI=y
+# CONFIG_TI_CPSW_PHY_SEL is not set
+# CONFIG_TLAN is not set
+CONFIG_NET_VENDOR_VIA=y
+# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_VELOCITY is not set
+CONFIG_NET_VENDOR_WIZNET=y
+# CONFIG_WIZNET_W5100 is not set
+# CONFIG_WIZNET_W5300 is not set
+CONFIG_NET_VENDOR_XILINX=y
+# CONFIG_XILINX_AXI_EMAC is not set
+# CONFIG_XILINX_LL_TEMAC is not set
+CONFIG_NET_VENDOR_KALRAY=y
+CONFIG_NET_KVX_SOC=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_MDIO_DEVICE=m
+CONFIG_MDIO_BUS=m
+# CONFIG_MDIO_BCM_UNIMAC is not set
+CONFIG_MDIO_BITBANG=m
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
+CONFIG_MDIO_GPIO=m
+# CONFIG_MDIO_HISI_FEMAC is not set
+CONFIG_MDIO_I2C=m
+# CONFIG_MDIO_IPQ4019 is not set
+# CONFIG_MDIO_IPQ8064 is not set
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_MVUSB is not set
+# CONFIG_MDIO_OCTEON is not set
+# CONFIG_MDIO_THUNDER is not set
+# CONFIG_MDIO_XPCS is not set
+CONFIG_PHYLINK=m
+CONFIG_PHYLIB=m
+CONFIG_SWPHY=y
+
+#
+# MII PHY device drivers
+#
+CONFIG_SFP=m
+# CONFIG_ADIN_PHY is not set
+# CONFIG_AMD_PHY is not set
+# CONFIG_AQUANTIA_PHY is not set
+# CONFIG_AX88796B_PHY is not set
+# CONFIG_BCM7XXX_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_BCM54140_PHY is not set
+# CONFIG_BCM84881_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_DP83822_PHY is not set
+# CONFIG_DP83TC811_PHY is not set
+# CONFIG_DP83848_PHY is not set
+# CONFIG_DP83867_PHY is not set
+# CONFIG_DP83869_PHY is not set
+CONFIG_FIXED_PHY=m
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_INTEL_XWAY_PHY is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_LXT_PHY is not set
+CONFIG_MARVELL_PHY=m
+# CONFIG_MARVELL_10G_PHY is not set
+# CONFIG_MICREL_PHY is not set
+# CONFIG_MICROCHIP_PHY is not set
+# CONFIG_MICROCHIP_T1_PHY is not set
+# CONFIG_MICROSEMI_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_NXP_TJA11XX_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_RENESAS_PHY is not set
+# CONFIG_ROCKCHIP_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_TERANETICS_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_XILINX_GMII2RGMII is not set
+# CONFIG_MICREL_KS8995MA is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+CONFIG_USB_NET_DRIVERS=y
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_RTL8152 is not set
+# CONFIG_USB_LAN78XX is not set
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_CDCETHER=m
+# CONFIG_USB_NET_CDC_EEM is not set
+CONFIG_USB_NET_CDC_NCM=m
+# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
+# CONFIG_USB_NET_CDC_MBIM is not set
+# CONFIG_USB_NET_DM9601 is not set
+# CONFIG_USB_NET_SR9700 is not set
+# CONFIG_USB_NET_SR9800 is not set
+# CONFIG_USB_NET_SMSC75XX is not set
+CONFIG_USB_NET_SMSC95XX=m
+# CONFIG_USB_NET_GL620A is not set
+CONFIG_USB_NET_NET1080=m
+# CONFIG_USB_NET_PLUSB is not set
+# CONFIG_USB_NET_MCS7830 is not set
+# CONFIG_USB_NET_RNDIS_HOST is not set
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
+CONFIG_USB_NET_CDC_SUBSET=m
+# CONFIG_USB_ALI_M5632 is not set
+# CONFIG_USB_AN2720 is not set
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+# CONFIG_USB_EPSON2888 is not set
+# CONFIG_USB_KC2190 is not set
+CONFIG_USB_NET_ZAURUS=m
+# CONFIG_USB_NET_CX82310_ETH is not set
+# CONFIG_USB_NET_KALMIA is not set
+# CONFIG_USB_NET_QMI_WWAN is not set
+# CONFIG_USB_NET_INT51X1 is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_USB_SIERRA_NET is not set
+# CONFIG_USB_VL600 is not set
+# CONFIG_USB_NET_CH9200 is not set
+# CONFIG_USB_NET_AQC111 is not set
+# CONFIG_WLAN is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+# CONFIG_VMXNET3 is not set
+# CONFIG_NET_FAILOVER is not set
+CONFIG_NET_TI_RTM=m
+# CONFIG_ISDN is not set
+# CONFIG_NVM is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+# CONFIG_INPUT_MATRIXKMAP is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_QT1050 is not set
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_BCM is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_SENTELIC is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_SMBUS=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_CYAPA is not set
+# CONFIG_MOUSE_ELAN_I2C is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+# CONFIG_MOUSE_SYNAPTICS_USB is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+# CONFIG_RMI4_CORE is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
+# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SERIO_GPIO_PS2 is not set
+# CONFIG_USERIO is not set
+# CONFIG_GAMEPORT is not set
+# end of Hardware I/O ports
+# end of Input device support
+
+#
+# Character devices
+#
+CONFIG_TTY=y
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_LDISC_AUTOLOAD=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_16550A_VARIANTS=y
+# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_EXAR=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+# CONFIG_SERIAL_8250_ASPEED_VUART is not set
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_DW=y
+# CONFIG_SERIAL_8250_RT288X is not set
+# CONFIG_SERIAL_OF_PLATFORM is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+# CONFIG_SERIAL_UARTLITE is not set
+# CONFIG_SERIAL_KVX_JTAG_COMM is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+# CONFIG_SERIAL_SIFIVE is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_IFX6X60 is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+CONFIG_SERIAL_KVX_SCALL_COMM=y
+# CONFIG_SERIAL_SPRD is not set
+# end of Serial drivers
+
+CONFIG_SERIAL_MCTRL_GPIO=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_NULL_TTY is not set
+# CONFIG_TRACE_SINK is not set
+# CONFIG_SERIAL_DEV_BUS is not set
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_VIRTIO_CONSOLE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_IPMB_DEVICE_INTERFACE is not set
+CONFIG_HW_RANDOM=m
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_HW_RANDOM_VIRTIO is not set
+# CONFIG_HW_RANDOM_CCTRNG is not set
+# CONFIG_APPLICOM is not set
+CONFIG_DEVMEM=y
+# CONFIG_DEVKMEM is not set
+# CONFIG_RAW_DRIVER is not set
+CONFIG_DEVPORT=y
+# CONFIG_TCG_TPM is not set
+# CONFIG_XILLYBUS is not set
+# end of Character devices
+
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_MUX is not set
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_ISCH is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_NVIDIA_GPU is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_CBUS_GPIO is not set
+CONFIG_I2C_DESIGNWARE_CORE=y
+CONFIG_I2C_DESIGNWARE_SLAVE=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_DESIGNWARE_PCI is not set
+# CONFIG_I2C_EMEV2 is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_RK3X is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# end of I2C Hardware Bus support
+
+# CONFIG_I2C_STUB is not set
+CONFIG_I2C_SLAVE=y
+# CONFIG_I2C_SLAVE_EEPROM is not set
+CONFIG_I2C_SLAVE_USPACE=y
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# end of I2C support
+
+# CONFIG_I3C is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+# CONFIG_SPI_AXI_SPI_ENGINE is not set
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_CADENCE is not set
+CONFIG_SPI_DESIGNWARE=y
+# CONFIG_SPI_DW_DMA is not set
+# CONFIG_SPI_DW_PCI is not set
+CONFIG_SPI_DW_MMIO=y
+# CONFIG_SPI_NXP_FLEXSPI is not set
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PXA2XX is not set
+# CONFIG_SPI_ROCKCHIP is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_SIFIVE is not set
+# CONFIG_SPI_MXIC is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPI_AMD is not set
+
+#
+# SPI Multiplexer support
+#
+# CONFIG_SPI_MUX is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_LOOPBACK_TEST is not set
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_SPI_SLAVE is not set
+# CONFIG_SPMI is not set
+# CONFIG_HSI is not set
+CONFIG_PPS=y
+# CONFIG_PPS_DEBUG is not set
+# CONFIG_NTP_PPS is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=y
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set
+# CONFIG_PTP_1588_CLOCK_IDTCM is not set
+# end of PTP clock support
+
+CONFIG_PINCTRL=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_PINMUX=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
+CONFIG_PINCTRL_SINGLE=y
+# CONFIG_PINCTRL_SX150X is not set
+# CONFIG_PINCTRL_STMFX is not set
+# CONFIG_PINCTRL_OCELOT is not set
+CONFIG_GPIO_DWAPB=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+CONFIG_GPIO_GENERIC=y
+
+#
+# Memory mapped GPIO drivers
+#
+# CONFIG_GPIO_74XX_MMIO is not set
+# CONFIG_GPIO_ALTERA is not set
+# CONFIG_GPIO_CADENCE is not set
+# CONFIG_GPIO_EXAR is not set
+# CONFIG_GPIO_FTGPIO010 is not set
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_HLWD is not set
+# CONFIG_GPIO_LOGICVC is not set
+# CONFIG_GPIO_MB86S7X is not set
+# CONFIG_GPIO_SAMA5D2_PIOBU is not set
+# CONFIG_GPIO_SIFIVE is not set
+# CONFIG_GPIO_SYSCON is not set
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GPIO_AMD_FCH is not set
+# end of Memory mapped GPIO drivers
+
+#
+# I2C GPIO expanders
+#
+# CONFIG_GPIO_ADP5588 is not set
+# CONFIG_GPIO_ADNP is not set
+# CONFIG_GPIO_GW_PLD is not set
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+CONFIG_GPIO_PCA953X=y
+# CONFIG_GPIO_PCA953X_IRQ is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# end of I2C GPIO expanders
+
+#
+# MFD GPIO expanders
+#
+# end of MFD GPIO expanders
+
+#
+# PCI GPIO expanders
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_PCI_IDIO_16 is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
+# CONFIG_GPIO_RDC321X is not set
+# end of PCI GPIO expanders
+
+#
+# SPI GPIO expanders
+#
+# CONFIG_GPIO_74X164 is not set
+# CONFIG_GPIO_MAX3191X is not set
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_PISOSR is not set
+# CONFIG_GPIO_XRA1403 is not set
+# end of SPI GPIO expanders
+
+#
+# USB GPIO expanders
+#
+# end of USB GPIO expanders
+
+# CONFIG_GPIO_AGGREGATOR is not set
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_AVS is not set
+CONFIG_POWER_RESET=y
+# CONFIG_POWER_RESET_GPIO is not set
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+CONFIG_POWER_RESET_KVX_SCALL_POWEROFF=y
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_RESTART is not set
+CONFIG_POWER_RESET_SYSCON=y
+# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
+# CONFIG_SYSCON_REBOOT_MODE is not set
+# CONFIG_NVMEM_REBOOT_MODE is not set
+# CONFIG_POWER_SUPPLY is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+# CONFIG_SENSORS_AD7314 is not set
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM1177 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7310 is not set
+# CONFIG_SENSORS_ADT7410 is not set
+# CONFIG_SENSORS_ADT7411 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_AS370 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
+# CONFIG_SENSORS_ASPEED is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_FTSTEUTATES is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_G762 is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_HIH6130 is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_JC42 is not set
+# CONFIG_SENSORS_POWR1220 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LTC2945 is not set
+# CONFIG_SENSORS_LTC2947_I2C is not set
+# CONFIG_SENSORS_LTC2947_SPI is not set
+# CONFIG_SENSORS_LTC2990 is not set
+# CONFIG_SENSORS_LTC4151 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4222 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4260 is not set
+# CONFIG_SENSORS_LTC4261 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX16065 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX1668 is not set
+# CONFIG_SENSORS_MAX197 is not set
+# CONFIG_SENSORS_MAX31722 is not set
+# CONFIG_SENSORS_MAX31730 is not set
+# CONFIG_SENSORS_MAX6621 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6642 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_MAX6697 is not set
+# CONFIG_SENSORS_MAX31790 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_TC654 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM73 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LM95234 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_LM95245 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_NTC_THERMISTOR is not set
+# CONFIG_SENSORS_NCT6683 is not set
+# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_NCT7802 is not set
+# CONFIG_SENSORS_NCT7904 is not set
+# CONFIG_SENSORS_NPCM7XX is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHT3x is not set
+# CONFIG_SENSORS_SHTC1 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC6W201 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH5627 is not set
+# CONFIG_SENSORS_SCH5636 is not set
+# CONFIG_SENSORS_STTS751 is not set
+# CONFIG_SENSORS_SMM665 is not set
+# CONFIG_SENSORS_ADC128D818 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_ADS7871 is not set
+# CONFIG_SENSORS_AMC6821 is not set
+# CONFIG_SENSORS_INA209 is not set
+# CONFIG_SENSORS_INA2XX is not set
+# CONFIG_SENSORS_INA3221 is not set
+# CONFIG_SENSORS_TC74 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP102 is not set
+# CONFIG_SENSORS_TMP103 is not set
+# CONFIG_SENSORS_TMP108 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+# CONFIG_SENSORS_TMP513 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 is not set
+# CONFIG_SENSORS_W83773G is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83795 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_THERMAL is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+# CONFIG_WATCHDOG_SYSFS is not set
+
+#
+# Watchdog Pretimeout Governors
+#
+# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_GPIO_WATCHDOG is not set
+# CONFIG_XILINX_WATCHDOG is not set
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+# CONFIG_CADENCE_WATCHDOG is not set
+# CONFIG_DW_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_I6300ESB_WDT is not set
+CONFIG_KVX_WATCHDOG=y
+# CONFIG_MEN_A21_WDT is not set
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+CONFIG_BCMA_POSSIBLE=y
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_ACT8945A is not set
+# CONFIG_MFD_AS3711 is not set
+# CONFIG_MFD_AS3722 is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_AAT2870_CORE is not set
+# CONFIG_MFD_ATMEL_FLEXCOM is not set
+# CONFIG_MFD_ATMEL_HLCDC is not set
+# CONFIG_MFD_BCM590XX is not set
+# CONFIG_MFD_BD9571MWV is not set
+# CONFIG_MFD_AXP20X_I2C is not set
+# CONFIG_MFD_MADERA is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_DA9052_SPI is not set
+# CONFIG_MFD_DA9052_I2C is not set
+# CONFIG_MFD_DA9055 is not set
+# CONFIG_MFD_DA9062 is not set
+# CONFIG_MFD_DA9063 is not set
+# CONFIG_MFD_DA9150 is not set
+# CONFIG_MFD_DLN2 is not set
+# CONFIG_MFD_GATEWORKS_GSC is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_MFD_MP2629 is not set
+# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_IQS62X is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77620 is not set
+# CONFIG_MFD_MAX77650 is not set
+# CONFIG_MFD_MAX77686 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX77843 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_MT6360 is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_CPCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_RK808 is not set
+# CONFIG_MFD_RN5T618 is not set
+# CONFIG_MFD_SEC_CORE is not set
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_STMPE is not set
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_TI_LMU is not set
+# CONFIG_MFD_PALMAS is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65086 is not set
+# CONFIG_MFD_TPS65090 is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TI_LP873X is not set
+# CONFIG_MFD_TI_LP87565 is not set
+# CONFIG_MFD_TPS65218 is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TPS80031 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_TWL6040_CORE is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_TQMX86 is not set
+# CONFIG_MFD_VX855 is not set
+# CONFIG_MFD_LOCHNAGAR is not set
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_MFD_ROHM_BD718XX is not set
+# CONFIG_MFD_ROHM_BD70528 is not set
+# CONFIG_MFD_ROHM_BD71828 is not set
+# CONFIG_MFD_STPMIC1 is not set
+# CONFIG_MFD_STMFX is not set
+# end of Multifunction device drivers
+
+# CONFIG_REGULATOR is not set
+# CONFIG_RC_CORE is not set
+# CONFIG_MEDIA_CEC_SUPPORT is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+# CONFIG_DRM is not set
+
+#
+# ARM devices
+#
+# end of ARM devices
+
+#
+# Frame buffer Devices
+#
+# CONFIG_FB is not set
+# end of Frame buffer Devices
+
+#
+# Backlight & LCD device support
+#
+# CONFIG_LCD_CLASS_DEVICE is not set
+# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
+# end of Backlight & LCD device support
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+# end of Console display driver support
+# end of Graphics support
+
+# CONFIG_SOUND is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+# CONFIG_HID_BATTERY_STRENGTH is not set
+# CONFIG_HIDRAW is not set
+# CONFIG_UHID is not set
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACCUTOUCH is not set
+# CONFIG_HID_ACRUX is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_AUREAL is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_BETOP_FF is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_COUGAR is not set
+# CONFIG_HID_MACALLY is not set
+# CONFIG_HID_CMEDIA is not set
+# CONFIG_HID_CREATIVE_SB0540 is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_ELO is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_GEMBIRD is not set
+# CONFIG_HID_GFRM is not set
+# CONFIG_HID_GLORIOUS is not set
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_VIEWSONIC is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_ITE is not set
+# CONFIG_HID_JABRA is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LENOVO is not set
+# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MALTRON is not set
+# CONFIG_HID_MAYFLASH is not set
+# CONFIG_HID_REDRAGON is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NTI is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PLANTRONICS is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEAM is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_UDRAW_PS3 is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+# CONFIG_HID_ALPS is not set
+# CONFIG_HID_MCP2221 is not set
+# end of Special HID drivers
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+# end of USB HID support
+
+#
+# I2C HID support
+#
+# CONFIG_I2C_HID is not set
+# end of I2C HID support
+# end of HID support
+
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+# CONFIG_USB_ULPI_BUS is not set
+# CONFIG_USB_CONN_GPIO is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_PCI=y
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+# CONFIG_USB_MON is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_XHCI_HCD is not set
+# CONFIG_USB_EHCI_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_FOTG210_HCD is not set
+# CONFIG_USB_MAX3421_HCD is not set
+# CONFIG_USB_OHCI_HCD is not set
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HCD_TEST_MODE is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USBIP_CORE is not set
+# CONFIG_USB_CDNS3 is not set
+# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_DWC3 is not set
+CONFIG_USB_DWC2=y
+# CONFIG_USB_DWC2_HOST is not set
+
+#
+# Gadget/Dual-role mode requires USB Gadget support to be enabled
+#
+# CONFIG_USB_DWC2_PERIPHERAL is not set
+CONFIG_USB_DWC2_DUAL_ROLE=y
+# CONFIG_USB_DWC2_PCI is not set
+# CONFIG_USB_DWC2_DEBUG is not set
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
+# CONFIG_USB_CHIPIDEA is not set
+# CONFIG_USB_ISP1760 is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_APPLE_MFI_FASTCHARGE is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_EHSET_TEST_FIXTURE is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+# CONFIG_USB_EZUSB_FX2 is not set
+# CONFIG_USB_HUB_USB251XB is not set
+# CONFIG_USB_HSIC_USB3503 is not set
+# CONFIG_USB_HSIC_USB4604 is not set
+# CONFIG_USB_LINK_LAYER_TEST is not set
+# CONFIG_USB_CHAOSKEY is not set
+
+#
+# USB Physical Layer drivers
+#
+# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ISP1301 is not set
+# end of USB Physical Layer drivers
+
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_U_SERIAL_CONSOLE=y
+
+#
+# USB Peripheral Controller
+#
+# CONFIG_USB_FOTG210_UDC is not set
+# CONFIG_USB_GR_UDC is not set
+# CONFIG_USB_R8A66597 is not set
+# CONFIG_USB_PXA27X is not set
+# CONFIG_USB_MV_UDC is not set
+# CONFIG_USB_MV_U3D is not set
+# CONFIG_USB_SNP_UDC_PLAT is not set
+# CONFIG_USB_M66592 is not set
+# CONFIG_USB_BDC_UDC is not set
+# CONFIG_USB_AMD5536UDC is not set
+# CONFIG_USB_NET2272 is not set
+# CONFIG_USB_NET2280 is not set
+# CONFIG_USB_GOKU is not set
+# CONFIG_USB_EG20T is not set
+# CONFIG_USB_GADGET_XILINX is not set
+# CONFIG_USB_MAX3420_UDC is not set
+# CONFIG_USB_DUMMY_HCD is not set
+# end of USB Peripheral Controller
+
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=y
+CONFIG_USB_U_SERIAL=y
+CONFIG_USB_U_ETHER=y
+CONFIG_USB_F_ECM=y
+# CONFIG_USB_CONFIGFS is not set
+
+#
+# USB Gadget precomposed configurations
+#
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_ETH is not set
+# CONFIG_USB_G_NCM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FUNCTIONFS is not set
+# CONFIG_USB_MASS_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_G_PRINTER is not set
+CONFIG_USB_CDC_COMPOSITE=y
+# CONFIG_USB_G_ACM_MS is not set
+# CONFIG_USB_G_MULTI is not set
+# CONFIG_USB_G_HID is not set
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_RAW_GADGET is not set
+# end of USB Gadget precomposed configurations
+
+# CONFIG_TYPEC is not set
+# CONFIG_USB_ROLE_SWITCH is not set
+CONFIG_MMC=y
+CONFIG_PWRSEQ_EMMC=y
+CONFIG_PWRSEQ_SIMPLE=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=8
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_SDHCI=y
+# CONFIG_MMC_SDHCI_PCI is not set
+CONFIG_MMC_SDHCI_PLTFM=y
+# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
+# CONFIG_MMC_SDHCI_OF_AT91 is not set
+CONFIG_MMC_SDHCI_OF_DWCMSHC=y
+# CONFIG_MMC_SDHCI_CADENCE is not set
+# CONFIG_MMC_SDHCI_F_SDH30 is not set
+# CONFIG_MMC_SDHCI_MILBEAUT is not set
+# CONFIG_MMC_TIFM_SD is not set
+# CONFIG_MMC_SPI is not set
+# CONFIG_MMC_CB710 is not set
+# CONFIG_MMC_VIA_SDMMC is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MMC_USDHI6ROL0 is not set
+# CONFIG_MMC_CQHCI is not set
+# CONFIG_MMC_HSQ is not set
+# CONFIG_MMC_TOSHIBA_PCI is not set
+# CONFIG_MMC_MTK is not set
+# CONFIG_MMC_SDHCI_XENON is not set
+# CONFIG_MMC_SDHCI_OMAP is not set
+# CONFIG_MMC_SDHCI_AM654 is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+# CONFIG_RTC_CLASS is not set
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+CONFIG_DMA_OF=y
+# CONFIG_ALTERA_MSGDMA is not set
+# CONFIG_DW_AXI_DMAC is not set
+# CONFIG_FSL_EDMA is not set
+# CONFIG_INTEL_IDMA64 is not set
+# CONFIG_PLX_DMA is not set
+CONFIG_KVX_DMA_NOC=m
+# CONFIG_QCOM_HIDMA_MGMT is not set
+# CONFIG_QCOM_HIDMA is not set
+# CONFIG_DW_DMAC is not set
+# CONFIG_DW_DMAC_PCI is not set
+# CONFIG_DW_EDMA is not set
+# CONFIG_DW_EDMA_PCIE is not set
+# CONFIG_SF_PDMA is not set
+
+#
+# DMA Clients
+#
+# CONFIG_ASYNC_TX_DMA is not set
+# CONFIG_DMATEST is not set
+
+#
+# DMABUF options
+#
+# CONFIG_SYNC_FILE is not set
+# CONFIG_DMABUF_MOVE_NOTIFY is not set
+# CONFIG_DMABUF_HEAPS is not set
+# end of DMABUF options
+
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_VFIO is not set
+# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_MENU=y
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_BALLOON is not set
+# CONFIG_VIRTIO_INPUT is not set
+# CONFIG_VIRTIO_MMIO is not set
+# CONFIG_VDPA is not set
+CONFIG_VHOST_MENU=y
+# CONFIG_VHOST_NET is not set
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# end of Microsoft Hyper-V guest support
+
+# CONFIG_GREYBUS is not set
+# CONFIG_STAGING is not set
+# CONFIG_GOLDFISH is not set
+CONFIG_HAVE_CLK=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+# CONFIG_CLK_HSDK is not set
+# CONFIG_COMMON_CLK_MAX9485 is not set
+# CONFIG_COMMON_CLK_SI5341 is not set
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI544 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_COMMON_CLK_FIXED_MMIO is not set
+# CONFIG_HWSPINLOCK is not set
+
+#
+# Clock Source drivers
+#
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+# CONFIG_MICROCHIP_PIT64B is not set
+# end of Clock Source drivers
+
+CONFIG_MAILBOX=y
+# CONFIG_PLATFORM_MHU is not set
+# CONFIG_ALTERA_MBOX is not set
+CONFIG_KVX_MBOX=y
+# CONFIG_MAILBOX_TEST is not set
+CONFIG_IOMMU_IOVA=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+# end of Generic IOMMU Pagetable Support
+
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_OF_IOMMU=y
+CONFIG_IOMMU_DMA=y
+CONFIG_KVX_IOMMU=y
+
+#
+# Remoteproc drivers
+#
+CONFIG_REMOTEPROC=y
+CONFIG_KVX_REMOTEPROC=y
+# end of Remoteproc drivers
+
+#
+# Rpmsg drivers
+#
+CONFIG_RPMSG=y
+CONFIG_RPMSG_CHAR=y
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
+CONFIG_RPMSG_VIRTIO=y
+# end of Rpmsg drivers
+
+# CONFIG_SOUNDWIRE is not set
+
+#
+# SOC (System On Chip) specific Drivers
+#
+
+#
+# Amlogic SoC drivers
+#
+# end of Amlogic SoC drivers
+
+#
+# Aspeed SoC drivers
+#
+# end of Aspeed SoC drivers
+
+#
+# Broadcom SoC drivers
+#
+# end of Broadcom SoC drivers
+
+#
+# NXP/Freescale QorIQ SoC drivers
+#
+# end of NXP/Freescale QorIQ SoC drivers
+
+#
+# i.MX SoC drivers
+#
+# end of i.MX SoC drivers
+
+CONFIG_KVX_SOCINFO=y
+
+#
+# Qualcomm SoC drivers
+#
+# end of Qualcomm SoC drivers
+
+# CONFIG_SOC_TI is not set
+
+#
+# Xilinx SoC drivers
+#
+# CONFIG_XILINX_VCU is not set
+# end of Xilinx SoC drivers
+# end of SOC (System On Chip) specific Drivers
+
+# CONFIG_PM_DEVFREQ is not set
+# CONFIG_EXTCON is not set
+# CONFIG_MEMORY is not set
+# CONFIG_IIO is not set
+# CONFIG_NTB is not set
+# CONFIG_VME_BUS is not set
+# CONFIG_PWM is not set
+
+#
+# IRQ chip support
+#
+CONFIG_IRQCHIP=y
+# CONFIG_AL_FIC is not set
+CONFIG_KVX_CORE_INTC=y
+CONFIG_KVX_APIC_GIC=y
+CONFIG_KVX_APIC_MAILBOX=y
+CONFIG_KVX_ITGEN=y
+CONFIG_KVX_PCI_MSI=y
+# end of IRQ chip support
+
+# CONFIG_IPACK_BUS is not set
+# CONFIG_RESET_CONTROLLER is not set
+
+#
+# PHY Subsystem
+#
+# CONFIG_GENERIC_PHY is not set
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_PHY_CADENCE_TORRENT is not set
+# CONFIG_PHY_CADENCE_DPHY is not set
+# CONFIG_PHY_CADENCE_SALVO is not set
+# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_MIXEL_MIPI_DPHY is not set
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_MAPPHONE_MDM6600 is not set
+# CONFIG_PHY_OCELOT_SERDES is not set
+# CONFIG_PHY_SAMSUNG_USB2 is not set
+# end of PHY Subsystem
+
+# CONFIG_POWERCAP is not set
+# CONFIG_MCB is not set
+
+#
+# Performance monitor support
+#
+# end of Performance monitor support
+
+CONFIG_RAS=y
+# CONFIG_USB4 is not set
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# end of Android
+
+# CONFIG_LIBNVDIMM is not set
+# CONFIG_DAX is not set
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+CONFIG_KVX_OTP_NV=y
+
+#
+# HW tracing support
+#
+# CONFIG_STM is not set
+# CONFIG_INTEL_TH is not set
+# end of HW tracing support
+
+# CONFIG_FPGA is not set
+# CONFIG_FSI is not set
+# CONFIG_SIOX is not set
+# CONFIG_SLIMBUS is not set
+# CONFIG_INTERCONNECT is not set
+# CONFIG_COUNTER is not set
+# CONFIG_MOST is not set
+# end of Device Drivers
+
+#
+# File systems
+#
+# CONFIG_VALIDATE_FS_PARSER is not set
+CONFIG_FS_IOMAP=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_USE_FOR_EXT2=y
+# CONFIG_EXT4_FS_POSIX_ACL is not set
+# CONFIG_EXT4_FS_SECURITY is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+# CONFIG_F2FS_FS is not set
+# CONFIG_FS_DAX is not set
+CONFIG_EXPORTFS=y
+# CONFIG_EXPORTFS_BLOCK_OPS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_MANDATORY_FILE_LOCKING=y
+# CONFIG_FS_ENCRYPTION is not set
+# CONFIG_FS_VERITY is not set
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_FUSE_FS is not set
+# CONFIG_OVERLAY_FS is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+# end of Caches
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+# end of CD-ROM/DVD Filesystems
+
+#
+# DOS/FAT/EXFAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
+# CONFIG_EXFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+# end of DOS/FAT/EXFAT/NT Filesystems
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+# CONFIG_PROC_CHILDREN is not set
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_TMPFS_XATTR is not set
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_CONFIGFS_FS=y
+# end of Pseudo filesystems
+
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ORANGEFS_FS is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
+# CONFIG_SQUASHFS_XATTR is not set
+CONFIG_SQUASHFS_ZLIB=y
+# CONFIG_SQUASHFS_LZ4 is not set
+# CONFIG_SQUASHFS_LZO is not set
+# CONFIG_SQUASHFS_XZ is not set
+# CONFIG_SQUASHFS_ZSTD is not set
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_EROFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_CEPH_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_MAC_ROMAN is not set
+# CONFIG_NLS_MAC_CELTIC is not set
+# CONFIG_NLS_MAC_CENTEURO is not set
+# CONFIG_NLS_MAC_CROATIAN is not set
+# CONFIG_NLS_MAC_CYRILLIC is not set
+# CONFIG_NLS_MAC_GAELIC is not set
+# CONFIG_NLS_MAC_GREEK is not set
+# CONFIG_NLS_MAC_ICELAND is not set
+# CONFIG_NLS_MAC_INUIT is not set
+# CONFIG_NLS_MAC_ROMANIAN is not set
+# CONFIG_NLS_MAC_TURKISH is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+# CONFIG_UNICODE is not set
+CONFIG_IO_WQ=y
+# end of File systems
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+# CONFIG_HARDENED_USERCOPY is not set
+# CONFIG_STATIC_USERMODEHELPER is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,bpf"
+
+#
+# Kernel hardening options
+#
+
+#
+# Memory initialization
+#
+CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# end of Memory initialization
+# end of Kernel hardening options
+# end of Security options
+
+CONFIG_CRYPTO=m
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=m
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=m
+CONFIG_CRYPTO_SKCIPHER=m
+CONFIG_CRYPTO_SKCIPHER2=m
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=m
+CONFIG_CRYPTO_RNG2=m
+# CONFIG_CRYPTO_MANAGER is not set
+# CONFIG_CRYPTO_USER is not set
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_NULL2=m
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_ENGINE=m
+
+#
+# Public-key cryptography
+#
+# CONFIG_CRYPTO_RSA is not set
+# CONFIG_CRYPTO_DH is not set
+# CONFIG_CRYPTO_ECDH is not set
+# CONFIG_CRYPTO_ECRDSA is not set
+# CONFIG_CRYPTO_CURVE25519 is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
+# CONFIG_CRYPTO_AEGIS128 is not set
+# CONFIG_CRYPTO_SEQIV is not set
+# CONFIG_CRYPTO_ECHAINIV is not set
+
+#
+# Block modes
+#
+# CONFIG_CRYPTO_CBC is not set
+# CONFIG_CRYPTO_CFB is not set
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+# CONFIG_CRYPTO_ECB is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_OFB is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+# CONFIG_CRYPTO_KEYWRAP is not set
+# CONFIG_CRYPTO_ADIANTUM is not set
+# CONFIG_CRYPTO_ESSIV is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_CMAC is not set
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+# CONFIG_CRYPTO_CRC32 is not set
+# CONFIG_CRYPTO_XXHASH is not set
+# CONFIG_CRYPTO_BLAKE2B is not set
+# CONFIG_CRYPTO_BLAKE2S is not set
+# CONFIG_CRYPTO_CRCT10DIF is not set
+# CONFIG_CRYPTO_GHASH is not set
+# CONFIG_CRYPTO_POLY1305 is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_SHA3 is not set
+# CONFIG_CRYPTO_SM3 is not set
+# CONFIG_CRYPTO_STREEBOG is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_AES_TI is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_CHACHA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_SM4 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_LZO is not set
+# CONFIG_CRYPTO_842 is not set
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+# CONFIG_CRYPTO_ZSTD is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_DRBG_MENU is not set
+# CONFIG_CRYPTO_JITTERENTROPY is not set
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+# CONFIG_CRYPTO_USER_API_RNG is not set
+# CONFIG_CRYPTO_USER_API_AEAD is not set
+
+#
+# Crypto library routines
+#
+# CONFIG_CRYPTO_LIB_BLAKE2S is not set
+# CONFIG_CRYPTO_LIB_CHACHA is not set
+# CONFIG_CRYPTO_LIB_CURVE25519 is not set
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
+# CONFIG_CRYPTO_LIB_POLY1305 is not set
+# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+CONFIG_CRYPTO_DEV_VIRTIO=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
+# CONFIG_CRYPTO_DEV_CCREE is not set
+# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
+
+#
+# Certificates for signature checking
+#
+# end of Certificates for signature checking
+
+#
+# Library routines
+#
+# CONFIG_PACKING is not set
+CONFIG_BITREVERSE=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+# CONFIG_CORDIC is not set
+# CONFIG_PRIME_NUMBERS is not set
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IOMAP=y
+# CONFIG_CRC_CCITT is not set
+CONFIG_CRC16=m
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC64 is not set
+# CONFIG_CRC4 is not set
+# CONFIG_CRC7 is not set
+CONFIG_LIBCRC32C=m
+# CONFIG_CRC8 is not set
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DMA_DECLARE_COHERENT=y
+CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
+CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
+CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
+CONFIG_DMA_VIRT_OPS=y
+CONFIG_DMA_NONCOHERENT_MMAP=y
+CONFIG_DMA_COHERENT_POOL=y
+CONFIG_DMA_REMAP=y
+CONFIG_DMA_DIRECT_REMAP=y
+# CONFIG_DMA_API_DEBUG is not set
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+# CONFIG_IRQ_POLL is not set
+CONFIG_LIBFDT=y
+CONFIG_SBITMAP=y
+# CONFIG_STRING_SELFTEST is not set
+# end of Library routines
+
+CONFIG_GENERIC_IOREMAP=y
+
+#
+# Kernel hacking
+#
+
+#
+# printk and dmesg options
+#
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINTK_CALLER is not set
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DYNAMIC_DEBUG_CORE is not set
+CONFIG_SYMBOLIC_ERRNAME=y
+CONFIG_DEBUG_BUGVERBOSE=y
+# end of printk and dmesg options
+
+#
+# Compile-time checks and compiler options
+#
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_INFO_COMPRESSED is not set
+# CONFIG_DEBUG_INFO_SPLIT is not set
+CONFIG_DEBUG_INFO_DWARF4=y
+# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_GDB_SCRIPTS=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=2048
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_READABLE_ASM is not set
+# CONFIG_HEADERS_INSTALL is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# end of Compile-time checks and compiler options
+
+#
+# Generic Kernel Debugging Instruments
+#
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_DEBUG_FS is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_UBSAN is not set
+# end of Generic Kernel Debugging Instruments
+
+CONFIG_DEBUG_KERNEL=y
+CONFIG_DEBUG_MISC=y
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_PAGE_OWNER is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_SCHED_STACK_END_CHECK is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
+CONFIG_KASAN_STACK=1
+# end of Memory Debugging
+
+# CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Oops, Lockups and Hangs
+#
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=-1
+# CONFIG_SOFTLOCKUP_DETECTOR is not set
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_WQ_WATCHDOG is not set
+# CONFIG_TEST_LOCKUP is not set
+# end of Debug Oops, Lockups and Hangs
+
+#
+# Scheduler Debugging
+#
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+# end of Scheduler Debugging
+
+# CONFIG_DEBUG_TIMEKEEPING is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_RWSEMS is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+# CONFIG_WW_MUTEX_SELFTEST is not set
+# end of Lock Debugging (spinlocks, mutexes, etc...)
+
+# CONFIG_STACKTRACE is not set
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+# CONFIG_DEBUG_KOBJECT is not set
+
+#
+# Debug kernel data structures
+#
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_PLIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+# end of Debug kernel data structures
+
+# CONFIG_DEBUG_CREDENTIALS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_RCU_PERF_TEST is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_RCU_EQS_DEBUG is not set
+# end of RCU Debugging
+
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_HWLAT_TRACER is not set
+# CONFIG_ENABLE_DEFAULT_TRACERS is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_TRACER_SNAPSHOT is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_SYNTH_EVENTS is not set
+# CONFIG_TRACEPOINT_BENCHMARK is not set
+# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
+# CONFIG_SAMPLES is not set
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+CONFIG_STRICT_DEVMEM=y
+# CONFIG_IO_STRICT_DEVMEM is not set
+
+#
+# kvx Debugging
+#
+
+#
+# KVX debugging
+#
+# CONFIG_KVX_DEBUG_ASN is not set
+# CONFIG_KVX_DEBUG_TLB_WRITE is not set
+# CONFIG_KVX_DEBUG_TLB_ACCESS is not set
+# CONFIG_KVX_MMU_STATS is not set
+# CONFIG_DEBUG_EXCEPTION_STACK is not set
+# CONFIG_DEBUG_SFR_SET_MASK is not set
+# end of KVX debugging
+# end of kvx Debugging
+
+#
+# Kernel Testing and Coverage
+#
+# CONFIG_KUNIT is not set
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+CONFIG_RUNTIME_TESTING_MENU=y
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_MIN_HEAP is not set
+# CONFIG_TEST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_REED_SOLOMON_TEST is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_PERCPU_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_STRSCPY is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_BITMAP is not set
+# CONFIG_TEST_BITFIELD is not set
+# CONFIG_TEST_UUID is not set
+# CONFIG_TEST_XARRAY is not set
+# CONFIG_TEST_OVERFLOW is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_HASH is not set
+# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_BITOPS is not set
+# CONFIG_TEST_VMALLOC is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_TEST_BLACKHOLE_DEV is not set
+# CONFIG_FIND_BIT_BENCHMARK is not set
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_SYSCTL is not set
+# CONFIG_TEST_UDELAY is not set
+# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_TEST_KMOD is not set
+# CONFIG_TEST_MEMCAT_P is not set
+# CONFIG_TEST_STACKINIT is not set
+# CONFIG_TEST_MEMINIT is not set
+# CONFIG_MEMTEST is not set
+# end of Kernel Testing and Coverage
+# end of Kernel hacking
diff --git a/target/kvx/kernel/qemu-kvx b/target/kvx/kernel/qemu-kvx
new file mode 100644
index 000000000..1d953b12e
--- /dev/null
+++ b/target/kvx/kernel/qemu-kvx
@@ -0,0 +1,3311 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/kvx 5.8.12 Kernel Configuration
+#
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=90401
+CONFIG_LD_VERSION=237000000
+CONFIG_CLANG_VERSION=0
+CONFIG_CC_CAN_LINK=y
+CONFIG_CC_CAN_LINK_STATIC=y
+CONFIG_CC_HAS_ASM_GOTO=y
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_IRQ_WORK=y
+CONFIG_THREAD_INFO_IN_TASK=y
+
+#
+# General setup
+#
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+# CONFIG_COMPILE_TEST is not set
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_BUILD_SALT=""
+CONFIG_DEFAULT_INIT=""
+CONFIG_DEFAULT_HOSTNAME="KVXlinux"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_WATCH_QUEUE is not set
+CONFIG_CROSS_MEMORY_ATTACH=y
+# CONFIG_USELIB is not set
+# CONFIG_AUDIT is not set
+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_INJECTION=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_GENERIC_IRQ_IPI=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
+CONFIG_IRQ_MSI_IOMMU=y
+CONFIG_SPARSE_IRQ=y
+# end of IRQ subsystem
+
+CONFIG_ARCH_CLOCKSOURCE_DATA=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+
+#
+# Timers subsystem
+#
+CONFIG_HZ_PERIODIC=y
+# CONFIG_NO_HZ_IDLE is not set
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+# end of Timers subsystem
+
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_TICK_CPU_ACCOUNTING=y
+# CONFIG_BSD_PROCESS_ACCT is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_PSI is not set
+# end of CPU/Task time and stats accounting
+
+#
+# RCU Subsystem
+#
+CONFIG_TINY_RCU=y
+# CONFIG_RCU_EXPERT is not set
+CONFIG_SRCU=y
+CONFIG_TINY_SRCU=y
+# end of RCU Subsystem
+
+# CONFIG_IKCONFIG is not set
+# CONFIG_IKHEADERS is not set
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
+CONFIG_GENERIC_SCHED_CLOCK=y
+
+#
+# Scheduler features
+#
+# end of Scheduler features
+
+CONFIG_CC_HAS_INT128=y
+# CONFIG_CGROUPS is not set
+# CONFIG_NAMESPACES is not set
+# CONFIG_CHECKPOINT_RESTORE is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+# CONFIG_SYSFS_DEPRECATED is not set
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE="${BR_BINARIES_DIR}/rootfs.cpio"
+CONFIG_INITRAMFS_ROOT_UID=0
+CONFIG_INITRAMFS_ROOT_GID=0
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+CONFIG_RD_LZ4=y
+CONFIG_INITRAMFS_COMPRESSION_GZIP=y
+# CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set
+# CONFIG_INITRAMFS_COMPRESSION_LZMA is not set
+# CONFIG_INITRAMFS_COMPRESSION_XZ is not set
+# CONFIG_INITRAMFS_COMPRESSION_LZO is not set
+# CONFIG_INITRAMFS_COMPRESSION_LZ4 is not set
+# CONFIG_INITRAMFS_COMPRESSION_NONE is not set
+# CONFIG_BOOT_CONFIG is not set
+CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
+CONFIG_BPF=y
+CONFIG_EXPERT=y
+CONFIG_MULTIUSER=y
+# CONFIG_SGETMASK_SYSCALL is not set
+CONFIG_SYSFS_SYSCALL=y
+CONFIG_FHANDLE=y
+CONFIG_POSIX_TIMERS=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_FUTEX_PI=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+CONFIG_IO_URING=y
+CONFIG_ADVISE_SYSCALLS=y
+CONFIG_MEMBARRIER=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_BPF_SYSCALL is not set
+# CONFIG_USERFAULTFD is not set
+CONFIG_EMBEDDED=y
+CONFIG_HAVE_PERF_EVENTS=y
+# CONFIG_PC104 is not set
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_PERF_EVENTS=y
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+# end of Kernel Performance Events And Counters
+
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_SLUB_DEBUG=y
+CONFIG_COMPAT_BRK=y
+# CONFIG_SLAB is not set
+CONFIG_SLUB=y
+# CONFIG_SLOB is not set
+CONFIG_SLAB_MERGE_DEFAULT=y
+# CONFIG_SLAB_FREELIST_RANDOM is not set
+# CONFIG_SLAB_FREELIST_HARDENED is not set
+# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
+# CONFIG_PROFILING is not set
+# end of General setup
+
+CONFIG_64BIT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_MMU=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_HAVE_COPY_THREAD_TLS=y
+CONFIG_ZONE_DMA32=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_KVX=y
+CONFIG_PGTABLE_LEVELS=3
+
+#
+# System setup
+#
+CONFIG_POISON_INITMEM=y
+CONFIG_KVX_PHYS_OFFSET=0x100000000
+CONFIG_KVX_PAGE_OFFSET=0xFFFFFF8000000000
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_STACK_MAX_DEPTH_TO_PRINT=24
+CONFIG_L2_CACHE=y
+CONFIG_SECURE_DAME_HANDLING=y
+# CONFIG_CACHECTL_UNSAFE_PHYS_OPERATIONS is not set
+CONFIG_ENABLE_TCA=y
+# CONFIG_SMP is not set
+CONFIG_KVX_4K_PAGES=y
+# CONFIG_KVX_64K_PAGES is not set
+CONFIG_KVX_PAGE_SHIFT=12
+CONFIG_CMDLINE=""
+# end of System setup
+
+#
+# System Type
+#
+CONFIG_KVX_SUBARCH_KV3_1=y
+# CONFIG_KVX_SUBARCH_KV3_2 is not set
+# end of System Type
+
+#
+# Kernel Features
+#
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=100
+# end of Kernel Features
+
+#
+# General architecture-dependent options
+#
+CONFIG_JUMP_LABEL=y
+# CONFIG_STATIC_KEYS_SELFTEST is not set
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
+CONFIG_STACKPROTECTOR=y
+CONFIG_STACKPROTECTOR_STRONG=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_MODULES_USE_ELF_RELA=y
+# CONFIG_COMPAT_32BIT_TIME is not set
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+
+#
+# GCOV-based kernel profiling
+#
+# end of GCOV-based kernel profiling
+# end of General architecture-dependent options
+
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_ASM_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+# CONFIG_MODULE_SIG is not set
+# CONFIG_MODULE_COMPRESS is not set
+# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_TRIM_UNUSED_KSYMS is not set
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_BLK_SCSI_REQUEST=y
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_BSGLIB is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+# CONFIG_BLK_DEV_ZONED is not set
+# CONFIG_BLK_CMDLINE_PARSER is not set
+# CONFIG_BLK_WBT is not set
+# CONFIG_BLK_SED_OPAL is not set
+# CONFIG_BLK_INLINE_ENCRYPTION is not set
+
+#
+# Partition Types
+#
+# CONFIG_PARTITION_ADVANCED is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
+# end of Partition Types
+
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_MQ_VIRTIO=y
+
+#
+# IO Schedulers
+#
+CONFIG_MQ_IOSCHED_DEADLINE=y
+CONFIG_MQ_IOSCHED_KYBER=y
+# CONFIG_IOSCHED_BFQ is not set
+# end of IO Schedulers
+
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+CONFIG_ELFCORE=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
+# CONFIG_BINFMT_MISC is not set
+CONFIG_COREDUMP=y
+# end of Executable file formats
+
+#
+# Memory Management options
+#
+CONFIG_SELECT_MEMORY_MODEL=y
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPARSEMEM=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_COMPACTION=y
+# CONFIG_PAGE_REPORTING is not set
+CONFIG_MIGRATION=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
+# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set
+CONFIG_NEED_PER_CPU_KM=y
+# CONFIG_CLEANCACHE is not set
+# CONFIG_FRONTSWAP is not set
+# CONFIG_CMA is not set
+# CONFIG_ZPOOL is not set
+# CONFIG_ZBUD is not set
+# CONFIG_ZSMALLOC is not set
+# CONFIG_IDLE_PAGE_TRACKING is not set
+# CONFIG_PERCPU_STATS is not set
+# CONFIG_GUP_BENCHMARK is not set
+# CONFIG_READ_ONLY_THP_FOR_FS is not set
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+# end of Memory Management options
+
+CONFIG_NET=y
+CONFIG_NET_INGRESS=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+# CONFIG_PACKET_DIAG is not set
+CONFIG_UNIX=y
+CONFIG_UNIX_SCM=y
+# CONFIG_UNIX_DIAG is not set
+# CONFIG_TLS is not set
+# CONFIG_XFRM_USER is not set
+# CONFIG_NET_KEY is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE_DEMUX is not set
+CONFIG_NET_IP_TUNNEL=y
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_NET_IPVTI is not set
+# CONFIG_NET_FOU is not set
+# CONFIG_NET_FOU_IP_TUNNELS is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+CONFIG_INET_TUNNEL=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_INET_UDP_DIAG is not set
+# CONFIG_INET_RAW_DIAG is not set
+# CONFIG_INET_DIAG_DESTROY is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=y
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_IPV6_ILA is not set
+# CONFIG_IPV6_VTI is not set
+CONFIG_IPV6_SIT=y
+# CONFIG_IPV6_SIT_6RD is not set
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_IPV6_SEG6_LWTUNNEL is not set
+# CONFIG_IPV6_SEG6_HMAC is not set
+# CONFIG_IPV6_RPL_LWTUNNEL is not set
+# CONFIG_MPTCP is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NET_PTP_CLASSIFY=y
+# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_INGRESS=y
+# CONFIG_NETFILTER_NETLINK_ACCT is not set
+# CONFIG_NETFILTER_NETLINK_QUEUE is not set
+# CONFIG_NETFILTER_NETLINK_LOG is not set
+# CONFIG_NETFILTER_NETLINK_OSF is not set
+CONFIG_NF_CONNTRACK=m
+# CONFIG_NF_LOG_NETDEV is not set
+# CONFIG_NF_CONNTRACK_MARK is not set
+# CONFIG_NF_CONNTRACK_ZONES is not set
+CONFIG_NF_CONNTRACK_PROCFS=y
+# CONFIG_NF_CONNTRACK_EVENTS is not set
+# CONFIG_NF_CONNTRACK_TIMEOUT is not set
+# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
+# CONFIG_NF_CONNTRACK_LABELS is not set
+CONFIG_NF_CT_PROTO_DCCP=y
+CONFIG_NF_CT_PROTO_SCTP=y
+CONFIG_NF_CT_PROTO_UDPLITE=y
+# CONFIG_NF_CONNTRACK_AMANDA is not set
+# CONFIG_NF_CONNTRACK_FTP is not set
+# CONFIG_NF_CONNTRACK_H323 is not set
+# CONFIG_NF_CONNTRACK_IRC is not set
+# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
+# CONFIG_NF_CONNTRACK_SNMP is not set
+# CONFIG_NF_CONNTRACK_PPTP is not set
+# CONFIG_NF_CONNTRACK_SANE is not set
+# CONFIG_NF_CONNTRACK_SIP is not set
+# CONFIG_NF_CONNTRACK_TFTP is not set
+# CONFIG_NF_CT_NETLINK is not set
+CONFIG_NF_NAT=m
+# CONFIG_NF_TABLES is not set
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+# CONFIG_NETFILTER_XT_MARK is not set
+# CONFIG_NETFILTER_XT_CONNMARK is not set
+
+#
+# Xtables targets
+#
+# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
+# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_HMARK is not set
+# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
+# CONFIG_NETFILTER_XT_TARGET_LOG is not set
+# CONFIG_NETFILTER_XT_TARGET_MARK is not set
+CONFIG_NETFILTER_XT_NAT=m
+# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set
+# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
+# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set
+# CONFIG_NETFILTER_XT_TARGET_MASQUERADE is not set
+# CONFIG_NETFILTER_XT_TARGET_TEE is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
+
+#
+# Xtables matches
+#
+# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_BPF is not set
+# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
+# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
+# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
+# CONFIG_NETFILTER_XT_MATCH_CPU is not set
+# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
+# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
+# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
+# CONFIG_NETFILTER_XT_MATCH_ECN is not set
+# CONFIG_NETFILTER_XT_MATCH_ESP is not set
+# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
+# CONFIG_NETFILTER_XT_MATCH_HL is not set
+# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+# CONFIG_NETFILTER_XT_MATCH_L2TP is not set
+# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
+# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
+# CONFIG_NETFILTER_XT_MATCH_MAC is not set
+# CONFIG_NETFILTER_XT_MATCH_MARK is not set
+# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
+# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
+# CONFIG_NETFILTER_XT_MATCH_OSF is not set
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
+# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+# CONFIG_NETFILTER_XT_MATCH_REALM is not set
+# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
+# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
+# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
+# CONFIG_NETFILTER_XT_MATCH_STATE is not set
+# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
+# CONFIG_NETFILTER_XT_MATCH_STRING is not set
+# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
+# CONFIG_NETFILTER_XT_MATCH_TIME is not set
+# CONFIG_NETFILTER_XT_MATCH_U32 is not set
+# end of Core Netfilter Configuration
+
+# CONFIG_IP_SET is not set
+# CONFIG_IP_VS is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+# CONFIG_NF_SOCKET_IPV4 is not set
+# CONFIG_NF_TPROXY_IPV4 is not set
+# CONFIG_NF_DUP_IPV4 is not set
+# CONFIG_NF_LOG_ARP is not set
+# CONFIG_NF_LOG_IPV4 is not set
+# CONFIG_NF_REJECT_IPV4 is not set
+CONFIG_IP_NF_IPTABLES=m
+# CONFIG_IP_NF_MATCH_AH is not set
+# CONFIG_IP_NF_MATCH_ECN is not set
+# CONFIG_IP_NF_MATCH_TTL is not set
+# CONFIG_IP_NF_FILTER is not set
+# CONFIG_IP_NF_TARGET_SYNPROXY is not set
+CONFIG_IP_NF_NAT=m
+# CONFIG_IP_NF_TARGET_MASQUERADE is not set
+# CONFIG_IP_NF_TARGET_NETMAP is not set
+# CONFIG_IP_NF_TARGET_REDIRECT is not set
+# CONFIG_IP_NF_MANGLE is not set
+# CONFIG_IP_NF_RAW is not set
+# CONFIG_IP_NF_ARPTABLES is not set
+# end of IP: Netfilter Configuration
+
+#
+# IPv6: Netfilter Configuration
+#
+# CONFIG_NF_SOCKET_IPV6 is not set
+# CONFIG_NF_TPROXY_IPV6 is not set
+# CONFIG_NF_DUP_IPV6 is not set
+# CONFIG_NF_REJECT_IPV6 is not set
+# CONFIG_NF_LOG_IPV6 is not set
+# CONFIG_IP6_NF_IPTABLES is not set
+# end of IPv6: Netfilter Configuration
+
+CONFIG_NF_DEFRAG_IPV6=m
+# CONFIG_NF_CONNTRACK_BRIDGE is not set
+# CONFIG_BPFILTER is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
+# CONFIG_BRIDGE is not set
+CONFIG_HAVE_NET_DSA=y
+# CONFIG_NET_DSA is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_PHONET is not set
+# CONFIG_6LOWPAN is not set
+# CONFIG_IEEE802154 is not set
+# CONFIG_NET_SCHED is not set
+CONFIG_DCB=y
+# CONFIG_BATMAN_ADV is not set
+# CONFIG_OPENVSWITCH is not set
+# CONFIG_VSOCKETS is not set
+# CONFIG_NETLINK_DIAG is not set
+# CONFIG_MPLS is not set
+# CONFIG_NET_NSH is not set
+# CONFIG_HSR is not set
+# CONFIG_NET_SWITCHDEV is not set
+# CONFIG_NET_L3_MASTER_DEV is not set
+# CONFIG_QRTR is not set
+# CONFIG_NET_NCSI is not set
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# end of Network testing
+# end of Networking options
+
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+# CONFIG_BT is not set
+# CONFIG_AF_RXRPC is not set
+# CONFIG_AF_KCM is not set
+CONFIG_WIRELESS=y
+# CONFIG_CFG80211 is not set
+
+#
+# CFG80211 needs to be enabled for MAC80211
+#
+CONFIG_MAC80211_STA_HASH_MAX_SIZE=0
+# CONFIG_WIMAX is not set
+# CONFIG_RFKILL is not set
+# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+# CONFIG_NFC is not set
+# CONFIG_PSAMPLE is not set
+# CONFIG_NET_IFE is not set
+# CONFIG_LWTUNNEL is not set
+CONFIG_DST_CACHE=y
+CONFIG_GRO_CELLS=y
+CONFIG_PAGE_POOL=y
+# CONFIG_FAILOVER is not set
+
+#
+# Device Drivers
+#
+CONFIG_HAVE_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_PCIEAER=y
+CONFIG_PCIEAER_INJECT=y
+# CONFIG_PCIE_ECRC is not set
+# CONFIG_PCIEASPM is not set
+CONFIG_PCIE_DPC=y
+# CONFIG_PCIE_PTM is not set
+# CONFIG_PCIE_BW is not set
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_STUB is not set
+# CONFIG_PCI_IOV is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+CONFIG_HOTPLUG_PCI=y
+# CONFIG_HOTPLUG_PCI_CPCI is not set
+# CONFIG_HOTPLUG_PCI_SHPC is not set
+
+#
+# PCI controller drivers
+#
+CONFIG_PCIE_KVX_NWL=y
+# CONFIG_PCIE_KVX_ERR_INJECT_SYSFS is not set
+# CONFIG_PCI_FTPCI100 is not set
+# CONFIG_PCI_HOST_GENERIC is not set
+# CONFIG_PCIE_XILINX is not set
+
+#
+# DesignWare PCI Core Support
+#
+# CONFIG_PCIE_DW_PLAT_HOST is not set
+# CONFIG_PCI_MESON is not set
+# end of DesignWare PCI Core Support
+
+#
+# Mobiveil PCIe Core Support
+#
+# end of Mobiveil PCIe Core Support
+
+#
+# Cadence PCIe controllers support
+#
+# CONFIG_PCIE_CADENCE_PLAT_HOST is not set
+# end of Cadence PCIe controllers support
+# end of PCI controller drivers
+
+#
+# PCI Endpoint
+#
+# CONFIG_PCI_ENDPOINT is not set
+# end of PCI Endpoint
+
+#
+# PCI switch controller drivers
+#
+# CONFIG_PCI_SW_SWITCHTEC is not set
+# end of PCI switch controller drivers
+
+# CONFIG_PCCARD is not set
+# CONFIG_RAPIDIO is not set
+
+#
+# Generic Driver Options
+#
+# CONFIG_UEVENT_HELPER is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+
+#
+# Firmware loader
+#
+CONFIG_FW_LOADER=y
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_FW_LOADER_USER_HELPER is not set
+# CONFIG_FW_LOADER_COMPRESS is not set
+# end of Firmware loader
+
+CONFIG_WANT_DEV_COREDUMP=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_DEV_COREDUMP=y
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
+# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
+CONFIG_GENERIC_CPU_DEVICES=y
+CONFIG_SOC_BUS=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_MMIO=y
+# end of Generic Driver Options
+
+#
+# Bus devices
+#
+# CONFIG_MOXTET is not set
+# CONFIG_MHI_BUS is not set
+# end of Bus devices
+
+# CONFIG_CONNECTOR is not set
+# CONFIG_GNSS is not set
+CONFIG_MTD=y
+# CONFIG_MTD_TESTS is not set
+
+#
+# Partition parsers
+#
+# CONFIG_MTD_AR7_PARTS is not set
+# CONFIG_MTD_CMDLINE_PARTS is not set
+CONFIG_MTD_OF_PARTS=y
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# end of Partition parsers
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+# CONFIG_SM_FTL is not set
+# CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
+# CONFIG_MTD_PARTITIONED_MASTER is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# end of RAM/ROM/Flash chip drivers
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_INTEL_VR_NOR is not set
+# CONFIG_MTD_PLATRAM is not set
+# end of Mapping drivers for chip access
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_PMC551 is not set
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_MCHP23K256 is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOCG3 is not set
+# end of Self-contained MTD device drivers
+
+# CONFIG_MTD_ONENAND is not set
+# CONFIG_MTD_RAW_NAND is not set
+# CONFIG_MTD_SPI_NAND is not set
+
+#
+# LPDDR & LPDDR2 PCM memory drivers
+#
+# CONFIG_MTD_LPDDR is not set
+# end of LPDDR & LPDDR2 PCM memory drivers
+
+CONFIG_MTD_SPI_NOR=y
+# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
+# CONFIG_MTD_UBI is not set
+# CONFIG_MTD_HYPERBUS is not set
+CONFIG_DTC=y
+CONFIG_OF=y
+# CONFIG_OF_UNITTEST is not set
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=m
+CONFIG_OF_RESERVED_MEM=y
+# CONFIG_OF_OVERLAY is not set
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_NULL_BLK is not set
+# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
+# CONFIG_BLK_DEV_UMEM is not set
+CONFIG_BLK_DEV_LOOP=m
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_DRBD is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_SKD is not set
+# CONFIG_BLK_DEV_SX8 is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+# CONFIG_VIRTIO_BLK is not set
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_BLK_DEV_RSXX is not set
+
+#
+# NVME Support
+#
+CONFIG_NVME_CORE=y
+CONFIG_BLK_DEV_NVME=y
+# CONFIG_NVME_MULTIPATH is not set
+# CONFIG_NVME_HWMON is not set
+# CONFIG_NVME_FC is not set
+# CONFIG_NVME_TCP is not set
+# CONFIG_NVME_TARGET is not set
+# end of NVME Support
+
+#
+# Misc devices
+#
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_DUMMY_IRQ is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ICS932S401 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_APDS9802ALS is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_LATTICE_ECP3_CONFIG is not set
+# CONFIG_SRAM is not set
+# CONFIG_PCI_ENDPOINT_TEST is not set
+# CONFIG_XILINX_SDFEC is not set
+# CONFIG_PVPANIC is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_EEPROM_93XX46 is not set
+# CONFIG_EEPROM_IDT_89HPESX is not set
+# CONFIG_EEPROM_EE1004 is not set
+# end of EEPROM support
+
+# CONFIG_CB710_CORE is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+# CONFIG_TI_ST is not set
+# end of Texas Instruments shared transport line discipline
+
+# CONFIG_SENSORS_LIS3_SPI is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+# CONFIG_ALTERA_STAPL is not set
+
+#
+# Intel MIC & related support
+#
+# CONFIG_VOP_BUS is not set
+# end of Intel MIC & related support
+
+# CONFIG_GENWQE is not set
+# CONFIG_ECHO is not set
+# CONFIG_MISC_ALCOR_PCI is not set
+# CONFIG_MISC_RTSX_PCI is not set
+# CONFIG_MISC_RTSX_USB is not set
+# CONFIG_HABANA_AI is not set
+# CONFIG_UACCE is not set
+# end of Misc devices
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+# end of SCSI device support
+
+# CONFIG_ATA is not set
+# CONFIG_MD is not set
+# CONFIG_TARGET_CORE is not set
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+# CONFIG_FIREWIRE is not set
+# CONFIG_FIREWIRE_NOSY is not set
+# end of IEEE 1394 (FireWire) support
+
+CONFIG_NETDEVICES=y
+CONFIG_MII=m
+CONFIG_NET_CORE=y
+# CONFIG_BONDING is not set
+# CONFIG_DUMMY is not set
+# CONFIG_WIREGUARD is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_IPVLAN is not set
+# CONFIG_VXLAN is not set
+# CONFIG_GENEVE is not set
+# CONFIG_BAREUDP is not set
+# CONFIG_GTP is not set
+# CONFIG_MACSEC is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_TUN is not set
+# CONFIG_TUN_VNET_CROSS_LE is not set
+# CONFIG_VETH is not set
+# CONFIG_VIRTIO_NET is not set
+# CONFIG_NLMON is not set
+# CONFIG_ARCNET is not set
+
+#
+# Distributed Switch Architecture drivers
+#
+# end of Distributed Switch Architecture drivers
+
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_3COM=y
+# CONFIG_VORTEX is not set
+# CONFIG_TYPHOON is not set
+CONFIG_NET_VENDOR_ADAPTEC=y
+# CONFIG_ADAPTEC_STARFIRE is not set
+CONFIG_NET_VENDOR_AGERE=y
+# CONFIG_ET131X is not set
+CONFIG_NET_VENDOR_ALACRITECH=y
+# CONFIG_SLICOSS is not set
+CONFIG_NET_VENDOR_ALTEON=y
+# CONFIG_ACENIC is not set
+# CONFIG_ALTERA_TSE is not set
+CONFIG_NET_VENDOR_AMAZON=y
+# CONFIG_ENA_ETHERNET is not set
+CONFIG_NET_VENDOR_AMD=y
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_PCNET32 is not set
+CONFIG_NET_VENDOR_AQUANTIA=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ATHEROS=y
+# CONFIG_ATL2 is not set
+# CONFIG_ATL1 is not set
+# CONFIG_ATL1E is not set
+# CONFIG_ATL1C is not set
+# CONFIG_ALX is not set
+CONFIG_NET_VENDOR_AURORA=y
+# CONFIG_AURORA_NB8800 is not set
+CONFIG_NET_VENDOR_BROADCOM=y
+# CONFIG_B44 is not set
+# CONFIG_BCMGENET is not set
+# CONFIG_BNX2 is not set
+# CONFIG_CNIC is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2X is not set
+# CONFIG_SYSTEMPORT is not set
+# CONFIG_BNXT is not set
+CONFIG_NET_VENDOR_BROCADE=y
+# CONFIG_BNA is not set
+CONFIG_NET_VENDOR_CADENCE=y
+# CONFIG_MACB is not set
+CONFIG_NET_VENDOR_CAVIUM=y
+# CONFIG_THUNDER_NIC_PF is not set
+# CONFIG_THUNDER_NIC_VF is not set
+# CONFIG_THUNDER_NIC_BGX is not set
+# CONFIG_THUNDER_NIC_RGX is not set
+# CONFIG_CAVIUM_PTP is not set
+# CONFIG_LIQUIDIO is not set
+# CONFIG_LIQUIDIO_VF is not set
+CONFIG_NET_VENDOR_CHELSIO=y
+# CONFIG_CHELSIO_T1 is not set
+# CONFIG_CHELSIO_T3 is not set
+# CONFIG_CHELSIO_T4 is not set
+# CONFIG_CHELSIO_T4VF is not set
+CONFIG_NET_VENDOR_CISCO=y
+# CONFIG_ENIC is not set
+CONFIG_NET_VENDOR_CORTINA=y
+# CONFIG_GEMINI_ETHERNET is not set
+# CONFIG_DNET is not set
+CONFIG_NET_VENDOR_DEC=y
+# CONFIG_NET_TULIP is not set
+CONFIG_NET_VENDOR_DLINK=y
+# CONFIG_DL2K is not set
+# CONFIG_SUNDANCE is not set
+CONFIG_NET_VENDOR_EMULEX=y
+# CONFIG_BE2NET is not set
+CONFIG_NET_VENDOR_EZCHIP=y
+# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
+CONFIG_NET_VENDOR_GOOGLE=y
+# CONFIG_GVE is not set
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_INTEL=y
+# CONFIG_E100 is not set
+# CONFIG_E1000 is not set
+CONFIG_E1000E=y
+# CONFIG_IGB is not set
+# CONFIG_IGBVF is not set
+# CONFIG_IXGB is not set
+# CONFIG_IXGBE is not set
+# CONFIG_IXGBEVF is not set
+# CONFIG_I40E is not set
+# CONFIG_I40EVF is not set
+# CONFIG_ICE is not set
+# CONFIG_FM10K is not set
+# CONFIG_IGC is not set
+# CONFIG_JME is not set
+CONFIG_NET_VENDOR_MARVELL=y
+# CONFIG_MVMDIO is not set
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 is not set
+CONFIG_NET_VENDOR_MELLANOX=y
+# CONFIG_MLX4_EN is not set
+# CONFIG_MLX5_CORE is not set
+# CONFIG_MLXSW_CORE is not set
+# CONFIG_MLXFW is not set
+CONFIG_NET_VENDOR_MICREL=y
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_KSZ884X_PCI is not set
+CONFIG_NET_VENDOR_MICROCHIP=y
+# CONFIG_ENC28J60 is not set
+# CONFIG_ENCX24J600 is not set
+# CONFIG_LAN743X is not set
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MYRI=y
+# CONFIG_MYRI10GE is not set
+# CONFIG_FEALNX is not set
+CONFIG_NET_VENDOR_NATSEMI=y
+# CONFIG_NATSEMI is not set
+# CONFIG_NS83820 is not set
+CONFIG_NET_VENDOR_NETERION=y
+# CONFIG_S2IO is not set
+# CONFIG_VXGE is not set
+CONFIG_NET_VENDOR_NETRONOME=y
+# CONFIG_NFP is not set
+CONFIG_NET_VENDOR_NI=y
+# CONFIG_NI_XGE_MANAGEMENT_ENET is not set
+CONFIG_NET_VENDOR_8390=y
+# CONFIG_NE2K_PCI is not set
+CONFIG_NET_VENDOR_NVIDIA=y
+# CONFIG_FORCEDETH is not set
+CONFIG_NET_VENDOR_OKI=y
+# CONFIG_ETHOC is not set
+CONFIG_NET_VENDOR_PACKET_ENGINES=y
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+CONFIG_NET_VENDOR_PENSANDO=y
+# CONFIG_IONIC is not set
+CONFIG_NET_VENDOR_QLOGIC=y
+# CONFIG_QLA3XXX is not set
+# CONFIG_QLCNIC is not set
+# CONFIG_NETXEN_NIC is not set
+# CONFIG_QED is not set
+CONFIG_NET_VENDOR_QUALCOMM=y
+# CONFIG_QCA7000_SPI is not set
+# CONFIG_QCOM_EMAC is not set
+# CONFIG_RMNET is not set
+CONFIG_NET_VENDOR_RDC=y
+# CONFIG_R6040 is not set
+CONFIG_NET_VENDOR_REALTEK=y
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_R8169 is not set
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+# CONFIG_SXGBE_ETH is not set
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SOLARFLARE=y
+# CONFIG_SFC is not set
+# CONFIG_SFC_FALCON is not set
+CONFIG_NET_VENDOR_SILAN=y
+# CONFIG_SC92031 is not set
+CONFIG_NET_VENDOR_SIS=y
+# CONFIG_SIS900 is not set
+# CONFIG_SIS190 is not set
+CONFIG_NET_VENDOR_SMSC=y
+# CONFIG_EPIC100 is not set
+# CONFIG_SMSC911X is not set
+# CONFIG_SMSC9420 is not set
+CONFIG_NET_VENDOR_SOCIONEXT=y
+CONFIG_NET_VENDOR_STMICRO=y
+# CONFIG_STMMAC_ETH is not set
+CONFIG_NET_VENDOR_SUN=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NIU is not set
+CONFIG_NET_VENDOR_SYNOPSYS=y
+# CONFIG_DWC_XLGMAC is not set
+CONFIG_NET_VENDOR_TEHUTI=y
+# CONFIG_TEHUTI is not set
+CONFIG_NET_VENDOR_TI=y
+# CONFIG_TI_CPSW_PHY_SEL is not set
+# CONFIG_TLAN is not set
+CONFIG_NET_VENDOR_VIA=y
+# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_VELOCITY is not set
+CONFIG_NET_VENDOR_WIZNET=y
+# CONFIG_WIZNET_W5100 is not set
+# CONFIG_WIZNET_W5300 is not set
+CONFIG_NET_VENDOR_XILINX=y
+# CONFIG_XILINX_AXI_EMAC is not set
+# CONFIG_XILINX_LL_TEMAC is not set
+CONFIG_NET_VENDOR_KALRAY=y
+CONFIG_NET_KVX_SOC=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_MDIO_DEVICE=m
+CONFIG_MDIO_BUS=m
+# CONFIG_MDIO_BCM_UNIMAC is not set
+CONFIG_MDIO_BITBANG=m
+# CONFIG_MDIO_BUS_MUX_GPIO is not set
+# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
+# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
+CONFIG_MDIO_GPIO=m
+# CONFIG_MDIO_HISI_FEMAC is not set
+CONFIG_MDIO_I2C=m
+# CONFIG_MDIO_IPQ4019 is not set
+# CONFIG_MDIO_IPQ8064 is not set
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_MVUSB is not set
+# CONFIG_MDIO_OCTEON is not set
+# CONFIG_MDIO_THUNDER is not set
+# CONFIG_MDIO_XPCS is not set
+CONFIG_PHYLINK=m
+CONFIG_PHYLIB=m
+CONFIG_SWPHY=y
+
+#
+# MII PHY device drivers
+#
+CONFIG_SFP=m
+# CONFIG_ADIN_PHY is not set
+# CONFIG_AMD_PHY is not set
+# CONFIG_AQUANTIA_PHY is not set
+# CONFIG_AX88796B_PHY is not set
+# CONFIG_BCM7XXX_PHY is not set
+# CONFIG_BCM87XX_PHY is not set
+# CONFIG_BROADCOM_PHY is not set
+# CONFIG_BCM54140_PHY is not set
+# CONFIG_BCM84881_PHY is not set
+# CONFIG_CICADA_PHY is not set
+# CONFIG_CORTINA_PHY is not set
+# CONFIG_DAVICOM_PHY is not set
+# CONFIG_DP83822_PHY is not set
+# CONFIG_DP83TC811_PHY is not set
+# CONFIG_DP83848_PHY is not set
+# CONFIG_DP83867_PHY is not set
+# CONFIG_DP83869_PHY is not set
+CONFIG_FIXED_PHY=m
+# CONFIG_ICPLUS_PHY is not set
+# CONFIG_INTEL_XWAY_PHY is not set
+# CONFIG_LSI_ET1011C_PHY is not set
+# CONFIG_LXT_PHY is not set
+CONFIG_MARVELL_PHY=m
+# CONFIG_MARVELL_10G_PHY is not set
+# CONFIG_MICREL_PHY is not set
+# CONFIG_MICROCHIP_PHY is not set
+# CONFIG_MICROCHIP_T1_PHY is not set
+# CONFIG_MICROSEMI_PHY is not set
+# CONFIG_NATIONAL_PHY is not set
+# CONFIG_NXP_TJA11XX_PHY is not set
+# CONFIG_QSEMI_PHY is not set
+# CONFIG_REALTEK_PHY is not set
+# CONFIG_RENESAS_PHY is not set
+# CONFIG_ROCKCHIP_PHY is not set
+# CONFIG_SMSC_PHY is not set
+# CONFIG_STE10XP is not set
+# CONFIG_TERANETICS_PHY is not set
+# CONFIG_VITESSE_PHY is not set
+# CONFIG_XILINX_GMII2RGMII is not set
+# CONFIG_MICREL_KS8995MA is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+CONFIG_USB_NET_DRIVERS=y
+# CONFIG_USB_CATC is not set
+# CONFIG_USB_KAWETH is not set
+# CONFIG_USB_PEGASUS is not set
+# CONFIG_USB_RTL8150 is not set
+# CONFIG_USB_RTL8152 is not set
+# CONFIG_USB_LAN78XX is not set
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_AX88179_178A=m
+CONFIG_USB_NET_CDCETHER=m
+# CONFIG_USB_NET_CDC_EEM is not set
+CONFIG_USB_NET_CDC_NCM=m
+# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
+# CONFIG_USB_NET_CDC_MBIM is not set
+# CONFIG_USB_NET_DM9601 is not set
+# CONFIG_USB_NET_SR9700 is not set
+# CONFIG_USB_NET_SR9800 is not set
+# CONFIG_USB_NET_SMSC75XX is not set
+CONFIG_USB_NET_SMSC95XX=m
+# CONFIG_USB_NET_GL620A is not set
+CONFIG_USB_NET_NET1080=m
+# CONFIG_USB_NET_PLUSB is not set
+# CONFIG_USB_NET_MCS7830 is not set
+# CONFIG_USB_NET_RNDIS_HOST is not set
+CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
+CONFIG_USB_NET_CDC_SUBSET=m
+# CONFIG_USB_ALI_M5632 is not set
+# CONFIG_USB_AN2720 is not set
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+# CONFIG_USB_EPSON2888 is not set
+# CONFIG_USB_KC2190 is not set
+CONFIG_USB_NET_ZAURUS=m
+# CONFIG_USB_NET_CX82310_ETH is not set
+# CONFIG_USB_NET_KALMIA is not set
+# CONFIG_USB_NET_QMI_WWAN is not set
+# CONFIG_USB_NET_INT51X1 is not set
+# CONFIG_USB_IPHETH is not set
+# CONFIG_USB_SIERRA_NET is not set
+# CONFIG_USB_VL600 is not set
+# CONFIG_USB_NET_CH9200 is not set
+# CONFIG_USB_NET_AQC111 is not set
+# CONFIG_WLAN is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+# CONFIG_WAN is not set
+# CONFIG_VMXNET3 is not set
+# CONFIG_NET_FAILOVER is not set
+CONFIG_NET_TI_RTM=m
+# CONFIG_ISDN is not set
+# CONFIG_NVM is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+# CONFIG_INPUT_POLLDEV is not set
+# CONFIG_INPUT_SPARSEKMAP is not set
+# CONFIG_INPUT_MATRIXKMAP is not set
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ADP5588 is not set
+# CONFIG_KEYBOARD_ADP5589 is not set
+CONFIG_KEYBOARD_ATKBD=y
+# CONFIG_KEYBOARD_QT1050 is not set
+# CONFIG_KEYBOARD_QT1070 is not set
+# CONFIG_KEYBOARD_QT2160 is not set
+# CONFIG_KEYBOARD_DLINK_DIR685 is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_GPIO is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+# CONFIG_KEYBOARD_TCA6416 is not set
+# CONFIG_KEYBOARD_TCA8418 is not set
+# CONFIG_KEYBOARD_MATRIX is not set
+# CONFIG_KEYBOARD_LM8333 is not set
+# CONFIG_KEYBOARD_MAX7359 is not set
+# CONFIG_KEYBOARD_MCS is not set
+# CONFIG_KEYBOARD_MPR121 is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_OPENCORES is not set
+# CONFIG_KEYBOARD_SAMSUNG is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_OMAP4 is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_CAP11XX is not set
+# CONFIG_KEYBOARD_BCM is not set
+CONFIG_INPUT_MOUSE=y
+CONFIG_MOUSE_PS2=y
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_BYD=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y
+CONFIG_MOUSE_PS2_CYPRESS=y
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+# CONFIG_MOUSE_PS2_ELANTECH is not set
+# CONFIG_MOUSE_PS2_SENTELIC is not set
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_FOCALTECH=y
+CONFIG_MOUSE_PS2_SMBUS=y
+# CONFIG_MOUSE_SERIAL is not set
+# CONFIG_MOUSE_APPLETOUCH is not set
+# CONFIG_MOUSE_BCM5974 is not set
+# CONFIG_MOUSE_CYAPA is not set
+# CONFIG_MOUSE_ELAN_I2C is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MOUSE_GPIO is not set
+# CONFIG_MOUSE_SYNAPTICS_I2C is not set
+# CONFIG_MOUSE_SYNAPTICS_USB is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+# CONFIG_RMI4_CORE is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=y
+CONFIG_SERIO_SERPORT=y
+# CONFIG_SERIO_PCIPS2 is not set
+CONFIG_SERIO_LIBPS2=y
+# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 is not set
+# CONFIG_SERIO_APBPS2 is not set
+# CONFIG_SERIO_GPIO_PS2 is not set
+# CONFIG_USERIO is not set
+# CONFIG_GAMEPORT is not set
+# end of Hardware I/O ports
+# end of Input device support
+
+#
+# Character devices
+#
+CONFIG_TTY=y
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+CONFIG_LDISC_AUTOLOAD=y
+
+#
+# Serial drivers
+#
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y
+CONFIG_SERIAL_8250_16550A_VARIANTS=y
+# CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_EXAR=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+# CONFIG_SERIAL_8250_EXTENDED is not set
+# CONFIG_SERIAL_8250_ASPEED_VUART is not set
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_DW=y
+# CONFIG_SERIAL_8250_RT288X is not set
+# CONFIG_SERIAL_OF_PLATFORM is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX310X is not set
+# CONFIG_SERIAL_UARTLITE is not set
+# CONFIG_SERIAL_KVX_JTAG_COMM is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_JSM is not set
+# CONFIG_SERIAL_SIFIVE is not set
+# CONFIG_SERIAL_SCCNXP is not set
+# CONFIG_SERIAL_SC16IS7XX is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_IFX6X60 is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
+# CONFIG_SERIAL_FSL_LPUART is not set
+# CONFIG_SERIAL_FSL_LINFLEXUART is not set
+# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
+CONFIG_SERIAL_KVX_SCALL_COMM=y
+# CONFIG_SERIAL_SPRD is not set
+# end of Serial drivers
+
+CONFIG_SERIAL_MCTRL_GPIO=y
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_NULL_TTY is not set
+# CONFIG_TRACE_SINK is not set
+# CONFIG_SERIAL_DEV_BUS is not set
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_VIRTIO_CONSOLE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_IPMB_DEVICE_INTERFACE is not set
+CONFIG_HW_RANDOM=m
+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
+# CONFIG_HW_RANDOM_VIRTIO is not set
+# CONFIG_HW_RANDOM_CCTRNG is not set
+# CONFIG_APPLICOM is not set
+CONFIG_DEVMEM=y
+# CONFIG_DEVKMEM is not set
+# CONFIG_RAW_DRIVER is not set
+CONFIG_DEVPORT=y
+# CONFIG_TCG_TPM is not set
+# CONFIG_XILLYBUS is not set
+# end of Character devices
+
+# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=y
+# CONFIG_I2C_MUX is not set
+CONFIG_I2C_HELPER_AUTO=y
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# PC SMBus host controller drivers
+#
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_ISCH is not set
+# CONFIG_I2C_PIIX4 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_NVIDIA_GPU is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+# CONFIG_I2C_CBUS_GPIO is not set
+CONFIG_I2C_DESIGNWARE_CORE=y
+CONFIG_I2C_DESIGNWARE_SLAVE=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+# CONFIG_I2C_DESIGNWARE_PCI is not set
+# CONFIG_I2C_EMEV2 is not set
+# CONFIG_I2C_GPIO is not set
+# CONFIG_I2C_OCORES is not set
+# CONFIG_I2C_PCA_PLATFORM is not set
+# CONFIG_I2C_RK3X is not set
+# CONFIG_I2C_SIMTEC is not set
+# CONFIG_I2C_XILINX is not set
+
+#
+# External I2C/SMBus adapter drivers
+#
+# CONFIG_I2C_DIOLAN_U2C is not set
+# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
+# CONFIG_I2C_TAOS_EVM is not set
+# CONFIG_I2C_TINY_USB is not set
+
+#
+# Other I2C/SMBus bus drivers
+#
+# end of I2C Hardware Bus support
+
+# CONFIG_I2C_STUB is not set
+CONFIG_I2C_SLAVE=y
+# CONFIG_I2C_SLAVE_EEPROM is not set
+CONFIG_I2C_SLAVE_USPACE=y
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# end of I2C support
+
+# CONFIG_I3C is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+# CONFIG_SPI_AXI_SPI_ENGINE is not set
+# CONFIG_SPI_BITBANG is not set
+# CONFIG_SPI_CADENCE is not set
+CONFIG_SPI_DESIGNWARE=y
+# CONFIG_SPI_DW_DMA is not set
+# CONFIG_SPI_DW_PCI is not set
+CONFIG_SPI_DW_MMIO=y
+# CONFIG_SPI_NXP_FLEXSPI is not set
+# CONFIG_SPI_GPIO is not set
+# CONFIG_SPI_FSL_SPI is not set
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PXA2XX is not set
+# CONFIG_SPI_ROCKCHIP is not set
+# CONFIG_SPI_SC18IS602 is not set
+# CONFIG_SPI_SIFIVE is not set
+# CONFIG_SPI_MXIC is not set
+# CONFIG_SPI_XCOMM is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_ZYNQMP_GQSPI is not set
+# CONFIG_SPI_AMD is not set
+
+#
+# SPI Multiplexer support
+#
+# CONFIG_SPI_MUX is not set
+
+#
+# SPI Protocol Masters
+#
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SPI_LOOPBACK_TEST is not set
+# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_SPI_SLAVE is not set
+# CONFIG_SPMI is not set
+# CONFIG_HSI is not set
+CONFIG_PPS=y
+# CONFIG_PPS_DEBUG is not set
+# CONFIG_NTP_PPS is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=y
+
+#
+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
+#
+# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set
+# CONFIG_PTP_1588_CLOCK_IDTCM is not set
+# end of PTP clock support
+
+CONFIG_PINCTRL=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_PINMUX=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+# CONFIG_DEBUG_PINCTRL is not set
+# CONFIG_PINCTRL_MCP23S08 is not set
+CONFIG_PINCTRL_SINGLE=y
+# CONFIG_PINCTRL_SX150X is not set
+# CONFIG_PINCTRL_STMFX is not set
+# CONFIG_PINCTRL_OCELOT is not set
+CONFIG_GPIO_DWAPB=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_FASTPATH_LIMIT=512
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+CONFIG_GPIO_GENERIC=y
+
+#
+# Memory mapped GPIO drivers
+#
+# CONFIG_GPIO_74XX_MMIO is not set
+# CONFIG_GPIO_ALTERA is not set
+# CONFIG_GPIO_CADENCE is not set
+# CONFIG_GPIO_EXAR is not set
+# CONFIG_GPIO_FTGPIO010 is not set
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_GRGPIO is not set
+# CONFIG_GPIO_HLWD is not set
+# CONFIG_GPIO_LOGICVC is not set
+# CONFIG_GPIO_MB86S7X is not set
+# CONFIG_GPIO_SAMA5D2_PIOBU is not set
+# CONFIG_GPIO_SIFIVE is not set
+# CONFIG_GPIO_SYSCON is not set
+# CONFIG_GPIO_XILINX is not set
+# CONFIG_GPIO_AMD_FCH is not set
+# end of Memory mapped GPIO drivers
+
+#
+# I2C GPIO expanders
+#
+# CONFIG_GPIO_ADP5588 is not set
+# CONFIG_GPIO_ADNP is not set
+# CONFIG_GPIO_GW_PLD is not set
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+CONFIG_GPIO_PCA953X=y
+# CONFIG_GPIO_PCA953X_IRQ is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_TPIC2810 is not set
+# end of I2C GPIO expanders
+
+#
+# MFD GPIO expanders
+#
+# end of MFD GPIO expanders
+
+#
+# PCI GPIO expanders
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_PCI_IDIO_16 is not set
+# CONFIG_GPIO_PCIE_IDIO_24 is not set
+# CONFIG_GPIO_RDC321X is not set
+# end of PCI GPIO expanders
+
+#
+# SPI GPIO expanders
+#
+# CONFIG_GPIO_74X164 is not set
+# CONFIG_GPIO_MAX3191X is not set
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_PISOSR is not set
+# CONFIG_GPIO_XRA1403 is not set
+# end of SPI GPIO expanders
+
+#
+# USB GPIO expanders
+#
+# end of USB GPIO expanders
+
+# CONFIG_GPIO_AGGREGATOR is not set
+# CONFIG_GPIO_MOCKUP is not set
+# CONFIG_W1 is not set
+# CONFIG_POWER_AVS is not set
+CONFIG_POWER_RESET=y
+# CONFIG_POWER_RESET_GPIO is not set
+# CONFIG_POWER_RESET_GPIO_RESTART is not set
+CONFIG_POWER_RESET_KVX_SCALL_POWEROFF=y
+# CONFIG_POWER_RESET_LTC2952 is not set
+# CONFIG_POWER_RESET_RESTART is not set
+CONFIG_POWER_RESET_SYSCON=y
+# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set
+# CONFIG_SYSCON_REBOOT_MODE is not set
+# CONFIG_NVMEM_REBOOT_MODE is not set
+# CONFIG_POWER_SUPPLY is not set
+CONFIG_HWMON=y
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+# CONFIG_SENSORS_AD7314 is not set
+# CONFIG_SENSORS_AD7414 is not set
+# CONFIG_SENSORS_AD7418 is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1029 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM1177 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ADT7310 is not set
+# CONFIG_SENSORS_ADT7410 is not set
+# CONFIG_SENSORS_ADT7411 is not set
+# CONFIG_SENSORS_ADT7462 is not set
+# CONFIG_SENSORS_ADT7470 is not set
+# CONFIG_SENSORS_ADT7475 is not set
+# CONFIG_SENSORS_AS370 is not set
+# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
+# CONFIG_SENSORS_ASPEED is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS620 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_I5K_AMB is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_F71882FG is not set
+# CONFIG_SENSORS_F75375S is not set
+# CONFIG_SENSORS_FTSTEUTATES is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_G760A is not set
+# CONFIG_SENSORS_G762 is not set
+# CONFIG_SENSORS_GPIO_FAN is not set
+# CONFIG_SENSORS_HIH6130 is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_JC42 is not set
+# CONFIG_SENSORS_POWR1220 is not set
+# CONFIG_SENSORS_LINEAGE is not set
+# CONFIG_SENSORS_LTC2945 is not set
+# CONFIG_SENSORS_LTC2947_I2C is not set
+# CONFIG_SENSORS_LTC2947_SPI is not set
+# CONFIG_SENSORS_LTC2990 is not set
+# CONFIG_SENSORS_LTC4151 is not set
+# CONFIG_SENSORS_LTC4215 is not set
+# CONFIG_SENSORS_LTC4222 is not set
+# CONFIG_SENSORS_LTC4245 is not set
+# CONFIG_SENSORS_LTC4260 is not set
+# CONFIG_SENSORS_LTC4261 is not set
+# CONFIG_SENSORS_MAX1111 is not set
+# CONFIG_SENSORS_MAX16065 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_MAX1668 is not set
+# CONFIG_SENSORS_MAX197 is not set
+# CONFIG_SENSORS_MAX31722 is not set
+# CONFIG_SENSORS_MAX31730 is not set
+# CONFIG_SENSORS_MAX6621 is not set
+# CONFIG_SENSORS_MAX6639 is not set
+# CONFIG_SENSORS_MAX6642 is not set
+# CONFIG_SENSORS_MAX6650 is not set
+# CONFIG_SENSORS_MAX6697 is not set
+# CONFIG_SENSORS_MAX31790 is not set
+# CONFIG_SENSORS_MCP3021 is not set
+# CONFIG_SENSORS_TC654 is not set
+# CONFIG_SENSORS_ADCXX is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM70 is not set
+# CONFIG_SENSORS_LM73 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_LM93 is not set
+# CONFIG_SENSORS_LM95234 is not set
+# CONFIG_SENSORS_LM95241 is not set
+# CONFIG_SENSORS_LM95245 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_NTC_THERMISTOR is not set
+# CONFIG_SENSORS_NCT6683 is not set
+# CONFIG_SENSORS_NCT6775 is not set
+# CONFIG_SENSORS_NCT7802 is not set
+# CONFIG_SENSORS_NCT7904 is not set
+# CONFIG_SENSORS_NPCM7XX is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_PMBUS is not set
+# CONFIG_SENSORS_SHT15 is not set
+# CONFIG_SENSORS_SHT21 is not set
+# CONFIG_SENSORS_SHT3x is not set
+# CONFIG_SENSORS_SHTC1 is not set
+# CONFIG_SENSORS_SIS5595 is not set
+# CONFIG_SENSORS_DME1737 is not set
+# CONFIG_SENSORS_EMC1403 is not set
+# CONFIG_SENSORS_EMC2103 is not set
+# CONFIG_SENSORS_EMC6W201 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47M192 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_SCH5627 is not set
+# CONFIG_SENSORS_SCH5636 is not set
+# CONFIG_SENSORS_STTS751 is not set
+# CONFIG_SENSORS_SMM665 is not set
+# CONFIG_SENSORS_ADC128D818 is not set
+# CONFIG_SENSORS_ADS7828 is not set
+# CONFIG_SENSORS_ADS7871 is not set
+# CONFIG_SENSORS_AMC6821 is not set
+# CONFIG_SENSORS_INA209 is not set
+# CONFIG_SENSORS_INA2XX is not set
+# CONFIG_SENSORS_INA3221 is not set
+# CONFIG_SENSORS_TC74 is not set
+# CONFIG_SENSORS_THMC50 is not set
+# CONFIG_SENSORS_TMP102 is not set
+# CONFIG_SENSORS_TMP103 is not set
+# CONFIG_SENSORS_TMP108 is not set
+# CONFIG_SENSORS_TMP401 is not set
+# CONFIG_SENSORS_TMP421 is not set
+# CONFIG_SENSORS_TMP513 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_SENSORS_VT8231 is not set
+# CONFIG_SENSORS_W83773G is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83791D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83793 is not set
+# CONFIG_SENSORS_W83795 is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83L786NG is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_THERMAL is not set
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+CONFIG_WATCHDOG_OPEN_TIMEOUT=0
+# CONFIG_WATCHDOG_SYSFS is not set
+
+#
+# Watchdog Pretimeout Governors
+#
+# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
+
+#
+# Watchdog Device Drivers
+#
+# CONFIG_SOFT_WATCHDOG is not set
+# CONFIG_GPIO_WATCHDOG is not set
+# CONFIG_XILINX_WATCHDOG is not set
+# CONFIG_ZIIRAVE_WATCHDOG is not set
+# CONFIG_CADENCE_WATCHDOG is not set
+# CONFIG_DW_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+# CONFIG_ALIM7101_WDT is not set
+# CONFIG_I6300ESB_WDT is not set
+CONFIG_KVX_WATCHDOG=y
+# CONFIG_MEN_A21_WDT is not set
+
+#
+# PCI-based Watchdog Cards
+#
+# CONFIG_PCIPCWATCHDOG is not set
+# CONFIG_WDTPCI is not set
+
+#
+# USB-based Watchdog Cards
+#
+# CONFIG_USBPCWATCHDOG is not set
+CONFIG_SSB_POSSIBLE=y
+# CONFIG_SSB is not set
+CONFIG_BCMA_POSSIBLE=y
+# CONFIG_BCMA is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_ACT8945A is not set
+# CONFIG_MFD_AS3711 is not set
+# CONFIG_MFD_AS3722 is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_AAT2870_CORE is not set
+# CONFIG_MFD_ATMEL_FLEXCOM is not set
+# CONFIG_MFD_ATMEL_HLCDC is not set
+# CONFIG_MFD_BCM590XX is not set
+# CONFIG_MFD_BD9571MWV is not set
+# CONFIG_MFD_AXP20X_I2C is not set
+# CONFIG_MFD_MADERA is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_MFD_DA9052_SPI is not set
+# CONFIG_MFD_DA9052_I2C is not set
+# CONFIG_MFD_DA9055 is not set
+# CONFIG_MFD_DA9062 is not set
+# CONFIG_MFD_DA9063 is not set
+# CONFIG_MFD_DA9150 is not set
+# CONFIG_MFD_DLN2 is not set
+# CONFIG_MFD_GATEWORKS_GSC is not set
+# CONFIG_MFD_MC13XXX_SPI is not set
+# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_MFD_MP2629 is not set
+# CONFIG_MFD_HI6421_PMIC is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_MFD_IQS62X is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_KEMPLD is not set
+# CONFIG_MFD_88PM800 is not set
+# CONFIG_MFD_88PM805 is not set
+# CONFIG_MFD_88PM860X is not set
+# CONFIG_MFD_MAX14577 is not set
+# CONFIG_MFD_MAX77620 is not set
+# CONFIG_MFD_MAX77650 is not set
+# CONFIG_MFD_MAX77686 is not set
+# CONFIG_MFD_MAX77693 is not set
+# CONFIG_MFD_MAX77843 is not set
+# CONFIG_MFD_MAX8907 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_MT6360 is not set
+# CONFIG_MFD_MT6397 is not set
+# CONFIG_MFD_MENF21BMC is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_CPCAP is not set
+# CONFIG_MFD_VIPERBOARD is not set
+# CONFIG_MFD_RETU is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_RT5033 is not set
+# CONFIG_MFD_RC5T583 is not set
+# CONFIG_MFD_RK808 is not set
+# CONFIG_MFD_RN5T618 is not set
+# CONFIG_MFD_SEC_CORE is not set
+# CONFIG_MFD_SI476X_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_SKY81452 is not set
+# CONFIG_MFD_SMSC is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_STMPE is not set
+CONFIG_MFD_SYSCON=y
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_MFD_LP3943 is not set
+# CONFIG_MFD_LP8788 is not set
+# CONFIG_MFD_TI_LMU is not set
+# CONFIG_MFD_PALMAS is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65086 is not set
+# CONFIG_MFD_TPS65090 is not set
+# CONFIG_MFD_TPS65217 is not set
+# CONFIG_MFD_TI_LP873X is not set
+# CONFIG_MFD_TI_LP87565 is not set
+# CONFIG_MFD_TPS65218 is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TPS80031 is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_TWL6040_CORE is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_LM3533 is not set
+# CONFIG_MFD_TC3589X is not set
+# CONFIG_MFD_TQMX86 is not set
+# CONFIG_MFD_VX855 is not set
+# CONFIG_MFD_LOCHNAGAR is not set
+# CONFIG_MFD_ARIZONA_I2C is not set
+# CONFIG_MFD_ARIZONA_SPI is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
+# CONFIG_MFD_ROHM_BD718XX is not set
+# CONFIG_MFD_ROHM_BD70528 is not set
+# CONFIG_MFD_ROHM_BD71828 is not set
+# CONFIG_MFD_STPMIC1 is not set
+# CONFIG_MFD_STMFX is not set
+# end of Multifunction device drivers
+
+# CONFIG_REGULATOR is not set
+# CONFIG_RC_CORE is not set
+# CONFIG_MEDIA_CEC_SUPPORT is not set
+# CONFIG_MEDIA_SUPPORT is not set
+
+#
+# Graphics support
+#
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+# CONFIG_DRM is not set
+
+#
+# ARM devices
+#
+# end of ARM devices
+
+#
+# Frame buffer Devices
+#
+# CONFIG_FB is not set
+# end of Frame buffer Devices
+
+#
+# Backlight & LCD device support
+#
+# CONFIG_LCD_CLASS_DEVICE is not set
+# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
+# end of Backlight & LCD device support
+
+#
+# Console display driver support
+#
+CONFIG_VGA_CONSOLE=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DUMMY_CONSOLE_COLUMNS=80
+CONFIG_DUMMY_CONSOLE_ROWS=25
+# end of Console display driver support
+# end of Graphics support
+
+# CONFIG_SOUND is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+# CONFIG_HID_BATTERY_STRENGTH is not set
+# CONFIG_HIDRAW is not set
+# CONFIG_UHID is not set
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+# CONFIG_HID_A4TECH is not set
+# CONFIG_HID_ACCUTOUCH is not set
+# CONFIG_HID_ACRUX is not set
+# CONFIG_HID_APPLE is not set
+# CONFIG_HID_APPLEIR is not set
+# CONFIG_HID_AUREAL is not set
+# CONFIG_HID_BELKIN is not set
+# CONFIG_HID_BETOP_FF is not set
+# CONFIG_HID_CHERRY is not set
+# CONFIG_HID_CHICONY is not set
+# CONFIG_HID_COUGAR is not set
+# CONFIG_HID_MACALLY is not set
+# CONFIG_HID_CMEDIA is not set
+# CONFIG_HID_CREATIVE_SB0540 is not set
+# CONFIG_HID_CYPRESS is not set
+# CONFIG_HID_DRAGONRISE is not set
+# CONFIG_HID_EMS_FF is not set
+# CONFIG_HID_ELECOM is not set
+# CONFIG_HID_ELO is not set
+# CONFIG_HID_EZKEY is not set
+# CONFIG_HID_GEMBIRD is not set
+# CONFIG_HID_GFRM is not set
+# CONFIG_HID_GLORIOUS is not set
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_KEYTOUCH is not set
+# CONFIG_HID_KYE is not set
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
+# CONFIG_HID_VIEWSONIC is not set
+# CONFIG_HID_GYRATION is not set
+# CONFIG_HID_ICADE is not set
+# CONFIG_HID_ITE is not set
+# CONFIG_HID_JABRA is not set
+# CONFIG_HID_TWINHAN is not set
+# CONFIG_HID_KENSINGTON is not set
+# CONFIG_HID_LCPOWER is not set
+# CONFIG_HID_LENOVO is not set
+# CONFIG_HID_MAGICMOUSE is not set
+# CONFIG_HID_MALTRON is not set
+# CONFIG_HID_MAYFLASH is not set
+# CONFIG_HID_REDRAGON is not set
+# CONFIG_HID_MICROSOFT is not set
+# CONFIG_HID_MONTEREY is not set
+# CONFIG_HID_MULTITOUCH is not set
+# CONFIG_HID_NTI is not set
+# CONFIG_HID_NTRIG is not set
+# CONFIG_HID_ORTEK is not set
+# CONFIG_HID_PANTHERLORD is not set
+# CONFIG_HID_PENMOUNT is not set
+# CONFIG_HID_PETALYNX is not set
+# CONFIG_HID_PICOLCD is not set
+# CONFIG_HID_PLANTRONICS is not set
+# CONFIG_HID_PRIMAX is not set
+# CONFIG_HID_RETRODE is not set
+# CONFIG_HID_ROCCAT is not set
+# CONFIG_HID_SAITEK is not set
+# CONFIG_HID_SAMSUNG is not set
+# CONFIG_HID_SPEEDLINK is not set
+# CONFIG_HID_STEAM is not set
+# CONFIG_HID_STEELSERIES is not set
+# CONFIG_HID_SUNPLUS is not set
+# CONFIG_HID_RMI is not set
+# CONFIG_HID_GREENASIA is not set
+# CONFIG_HID_SMARTJOYPLUS is not set
+# CONFIG_HID_TIVO is not set
+# CONFIG_HID_TOPSEED is not set
+# CONFIG_HID_THRUSTMASTER is not set
+# CONFIG_HID_UDRAW_PS3 is not set
+# CONFIG_HID_WACOM is not set
+# CONFIG_HID_XINMO is not set
+# CONFIG_HID_ZEROPLUS is not set
+# CONFIG_HID_ZYDACRON is not set
+# CONFIG_HID_SENSOR_HUB is not set
+# CONFIG_HID_ALPS is not set
+# CONFIG_HID_MCP2221 is not set
+# end of Special HID drivers
+
+#
+# USB HID support
+#
+CONFIG_USB_HID=y
+# CONFIG_HID_PID is not set
+# CONFIG_USB_HIDDEV is not set
+# end of USB HID support
+
+#
+# I2C HID support
+#
+# CONFIG_I2C_HID is not set
+# end of I2C HID support
+# end of HID support
+
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+# CONFIG_USB_ULPI_BUS is not set
+# CONFIG_USB_CONN_GPIO is not set
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_PCI=y
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEFAULT_PERSIST=y
+# CONFIG_USB_DYNAMIC_MINORS is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_AUTOSUSPEND_DELAY=2
+# CONFIG_USB_MON is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_XHCI_HCD is not set
+# CONFIG_USB_EHCI_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_FOTG210_HCD is not set
+# CONFIG_USB_MAX3421_HCD is not set
+# CONFIG_USB_OHCI_HCD is not set
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HCD_TEST_MODE is not set
+
+#
+# USB Device Class drivers
+#
+# CONFIG_USB_ACM is not set
+# CONFIG_USB_PRINTER is not set
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+
+#
+# USB Imaging devices
+#
+# CONFIG_USB_MDC800 is not set
+# CONFIG_USBIP_CORE is not set
+# CONFIG_USB_CDNS3 is not set
+# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_DWC3 is not set
+CONFIG_USB_DWC2=y
+# CONFIG_USB_DWC2_HOST is not set
+
+#
+# Gadget/Dual-role mode requires USB Gadget support to be enabled
+#
+# CONFIG_USB_DWC2_PERIPHERAL is not set
+CONFIG_USB_DWC2_DUAL_ROLE=y
+# CONFIG_USB_DWC2_PCI is not set
+# CONFIG_USB_DWC2_DEBUG is not set
+# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set
+# CONFIG_USB_CHIPIDEA is not set
+# CONFIG_USB_ISP1760 is not set
+
+#
+# USB port drivers
+#
+# CONFIG_USB_SERIAL is not set
+
+#
+# USB Miscellaneous drivers
+#
+# CONFIG_USB_EMI62 is not set
+# CONFIG_USB_EMI26 is not set
+# CONFIG_USB_ADUTUX is not set
+# CONFIG_USB_SEVSEG is not set
+# CONFIG_USB_LEGOTOWER is not set
+# CONFIG_USB_LCD is not set
+# CONFIG_USB_CYPRESS_CY7C63 is not set
+# CONFIG_USB_CYTHERM is not set
+# CONFIG_USB_IDMOUSE is not set
+# CONFIG_USB_FTDI_ELAN is not set
+# CONFIG_USB_APPLEDISPLAY is not set
+# CONFIG_APPLE_MFI_FASTCHARGE is not set
+# CONFIG_USB_LD is not set
+# CONFIG_USB_TRANCEVIBRATOR is not set
+# CONFIG_USB_IOWARRIOR is not set
+# CONFIG_USB_TEST is not set
+# CONFIG_USB_EHSET_TEST_FIXTURE is not set
+# CONFIG_USB_ISIGHTFW is not set
+# CONFIG_USB_YUREX is not set
+# CONFIG_USB_EZUSB_FX2 is not set
+# CONFIG_USB_HUB_USB251XB is not set
+# CONFIG_USB_HSIC_USB3503 is not set
+# CONFIG_USB_HSIC_USB4604 is not set
+# CONFIG_USB_LINK_LAYER_TEST is not set
+# CONFIG_USB_CHAOSKEY is not set
+
+#
+# USB Physical Layer drivers
+#
+# CONFIG_NOP_USB_XCEIV is not set
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ISP1301 is not set
+# end of USB Physical Layer drivers
+
+CONFIG_USB_GADGET=y
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+CONFIG_U_SERIAL_CONSOLE=y
+
+#
+# USB Peripheral Controller
+#
+# CONFIG_USB_FOTG210_UDC is not set
+# CONFIG_USB_GR_UDC is not set
+# CONFIG_USB_R8A66597 is not set
+# CONFIG_USB_PXA27X is not set
+# CONFIG_USB_MV_UDC is not set
+# CONFIG_USB_MV_U3D is not set
+# CONFIG_USB_SNP_UDC_PLAT is not set
+# CONFIG_USB_M66592 is not set
+# CONFIG_USB_BDC_UDC is not set
+# CONFIG_USB_AMD5536UDC is not set
+# CONFIG_USB_NET2272 is not set
+# CONFIG_USB_NET2280 is not set
+# CONFIG_USB_GOKU is not set
+# CONFIG_USB_EG20T is not set
+# CONFIG_USB_GADGET_XILINX is not set
+# CONFIG_USB_MAX3420_UDC is not set
+# CONFIG_USB_DUMMY_HCD is not set
+# end of USB Peripheral Controller
+
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=y
+CONFIG_USB_U_SERIAL=y
+CONFIG_USB_U_ETHER=y
+CONFIG_USB_F_ECM=y
+# CONFIG_USB_CONFIGFS is not set
+
+#
+# USB Gadget precomposed configurations
+#
+# CONFIG_USB_ZERO is not set
+# CONFIG_USB_ETH is not set
+# CONFIG_USB_G_NCM is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FUNCTIONFS is not set
+# CONFIG_USB_MASS_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_G_PRINTER is not set
+CONFIG_USB_CDC_COMPOSITE=y
+# CONFIG_USB_G_ACM_MS is not set
+# CONFIG_USB_G_MULTI is not set
+# CONFIG_USB_G_HID is not set
+# CONFIG_USB_G_DBGP is not set
+# CONFIG_USB_RAW_GADGET is not set
+# end of USB Gadget precomposed configurations
+
+# CONFIG_TYPEC is not set
+# CONFIG_USB_ROLE_SWITCH is not set
+CONFIG_MMC=y
+CONFIG_PWRSEQ_EMMC=y
+CONFIG_PWRSEQ_SIMPLE=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=8
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_SDHCI=y
+# CONFIG_MMC_SDHCI_PCI is not set
+CONFIG_MMC_SDHCI_PLTFM=y
+# CONFIG_MMC_SDHCI_OF_ARASAN is not set
+# CONFIG_MMC_SDHCI_OF_ASPEED is not set
+# CONFIG_MMC_SDHCI_OF_AT91 is not set
+CONFIG_MMC_SDHCI_OF_DWCMSHC=y
+# CONFIG_MMC_SDHCI_CADENCE is not set
+# CONFIG_MMC_SDHCI_F_SDH30 is not set
+# CONFIG_MMC_SDHCI_MILBEAUT is not set
+# CONFIG_MMC_TIFM_SD is not set
+# CONFIG_MMC_SPI is not set
+# CONFIG_MMC_CB710 is not set
+# CONFIG_MMC_VIA_SDMMC is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MMC_USDHI6ROL0 is not set
+# CONFIG_MMC_CQHCI is not set
+# CONFIG_MMC_HSQ is not set
+# CONFIG_MMC_TOSHIBA_PCI is not set
+# CONFIG_MMC_MTK is not set
+# CONFIG_MMC_SDHCI_XENON is not set
+# CONFIG_MMC_SDHCI_OMAP is not set
+# CONFIG_MMC_SDHCI_AM654 is not set
+# CONFIG_MEMSTICK is not set
+# CONFIG_NEW_LEDS is not set
+# CONFIG_ACCESSIBILITY is not set
+# CONFIG_INFINIBAND is not set
+# CONFIG_RTC_CLASS is not set
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=m
+CONFIG_DMA_OF=y
+# CONFIG_ALTERA_MSGDMA is not set
+# CONFIG_DW_AXI_DMAC is not set
+# CONFIG_FSL_EDMA is not set
+# CONFIG_INTEL_IDMA64 is not set
+# CONFIG_PLX_DMA is not set
+CONFIG_KVX_DMA_NOC=m
+# CONFIG_QCOM_HIDMA_MGMT is not set
+# CONFIG_QCOM_HIDMA is not set
+# CONFIG_DW_DMAC is not set
+# CONFIG_DW_DMAC_PCI is not set
+# CONFIG_DW_EDMA is not set
+# CONFIG_DW_EDMA_PCIE is not set
+# CONFIG_SF_PDMA is not set
+
+#
+# DMA Clients
+#
+# CONFIG_ASYNC_TX_DMA is not set
+# CONFIG_DMATEST is not set
+
+#
+# DMABUF options
+#
+# CONFIG_SYNC_FILE is not set
+# CONFIG_DMABUF_MOVE_NOTIFY is not set
+# CONFIG_DMABUF_HEAPS is not set
+# end of DMABUF options
+
+# CONFIG_AUXDISPLAY is not set
+# CONFIG_UIO is not set
+# CONFIG_VFIO is not set
+# CONFIG_VIRT_DRIVERS is not set
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_MENU=y
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_BALLOON is not set
+# CONFIG_VIRTIO_INPUT is not set
+# CONFIG_VIRTIO_MMIO is not set
+# CONFIG_VDPA is not set
+CONFIG_VHOST_MENU=y
+# CONFIG_VHOST_NET is not set
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+
+#
+# Microsoft Hyper-V guest support
+#
+# end of Microsoft Hyper-V guest support
+
+# CONFIG_GREYBUS is not set
+# CONFIG_STAGING is not set
+# CONFIG_GOLDFISH is not set
+CONFIG_HAVE_CLK=y
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+# CONFIG_CLK_HSDK is not set
+# CONFIG_COMMON_CLK_MAX9485 is not set
+# CONFIG_COMMON_CLK_SI5341 is not set
+# CONFIG_COMMON_CLK_SI5351 is not set
+# CONFIG_COMMON_CLK_SI514 is not set
+# CONFIG_COMMON_CLK_SI544 is not set
+# CONFIG_COMMON_CLK_SI570 is not set
+# CONFIG_COMMON_CLK_CDCE706 is not set
+# CONFIG_COMMON_CLK_CDCE925 is not set
+# CONFIG_COMMON_CLK_CS2000_CP is not set
+# CONFIG_COMMON_CLK_VC5 is not set
+# CONFIG_COMMON_CLK_FIXED_MMIO is not set
+# CONFIG_HWSPINLOCK is not set
+
+#
+# Clock Source drivers
+#
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+# CONFIG_MICROCHIP_PIT64B is not set
+# end of Clock Source drivers
+
+CONFIG_MAILBOX=y
+# CONFIG_PLATFORM_MHU is not set
+# CONFIG_ALTERA_MBOX is not set
+CONFIG_KVX_MBOX=y
+# CONFIG_MAILBOX_TEST is not set
+CONFIG_IOMMU_IOVA=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+
+#
+# Generic IOMMU Pagetable Support
+#
+# end of Generic IOMMU Pagetable Support
+
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
+CONFIG_OF_IOMMU=y
+CONFIG_IOMMU_DMA=y
+CONFIG_KVX_IOMMU=y
+
+#
+# Remoteproc drivers
+#
+CONFIG_REMOTEPROC=y
+CONFIG_KVX_REMOTEPROC=y
+# end of Remoteproc drivers
+
+#
+# Rpmsg drivers
+#
+CONFIG_RPMSG=y
+CONFIG_RPMSG_CHAR=y
+# CONFIG_RPMSG_QCOM_GLINK_RPM is not set
+CONFIG_RPMSG_VIRTIO=y
+# end of Rpmsg drivers
+
+# CONFIG_SOUNDWIRE is not set
+
+#
+# SOC (System On Chip) specific Drivers
+#
+
+#
+# Amlogic SoC drivers
+#
+# end of Amlogic SoC drivers
+
+#
+# Aspeed SoC drivers
+#
+# end of Aspeed SoC drivers
+
+#
+# Broadcom SoC drivers
+#
+# end of Broadcom SoC drivers
+
+#
+# NXP/Freescale QorIQ SoC drivers
+#
+# end of NXP/Freescale QorIQ SoC drivers
+
+#
+# i.MX SoC drivers
+#
+# end of i.MX SoC drivers
+
+CONFIG_KVX_SOCINFO=y
+
+#
+# Qualcomm SoC drivers
+#
+# end of Qualcomm SoC drivers
+
+# CONFIG_SOC_TI is not set
+
+#
+# Xilinx SoC drivers
+#
+# CONFIG_XILINX_VCU is not set
+# end of Xilinx SoC drivers
+# end of SOC (System On Chip) specific Drivers
+
+# CONFIG_PM_DEVFREQ is not set
+# CONFIG_EXTCON is not set
+# CONFIG_MEMORY is not set
+# CONFIG_IIO is not set
+# CONFIG_NTB is not set
+# CONFIG_VME_BUS is not set
+# CONFIG_PWM is not set
+
+#
+# IRQ chip support
+#
+CONFIG_IRQCHIP=y
+# CONFIG_AL_FIC is not set
+CONFIG_KVX_CORE_INTC=y
+CONFIG_KVX_APIC_GIC=y
+CONFIG_KVX_APIC_MAILBOX=y
+CONFIG_KVX_ITGEN=y
+CONFIG_KVX_PCI_MSI=y
+# end of IRQ chip support
+
+# CONFIG_IPACK_BUS is not set
+# CONFIG_RESET_CONTROLLER is not set
+
+#
+# PHY Subsystem
+#
+# CONFIG_GENERIC_PHY is not set
+# CONFIG_BCM_KONA_USB2_PHY is not set
+# CONFIG_PHY_CADENCE_TORRENT is not set
+# CONFIG_PHY_CADENCE_DPHY is not set
+# CONFIG_PHY_CADENCE_SALVO is not set
+# CONFIG_PHY_FSL_IMX8MQ_USB is not set
+# CONFIG_PHY_MIXEL_MIPI_DPHY is not set
+# CONFIG_PHY_PXA_28NM_HSIC is not set
+# CONFIG_PHY_PXA_28NM_USB2 is not set
+# CONFIG_PHY_MAPPHONE_MDM6600 is not set
+# CONFIG_PHY_OCELOT_SERDES is not set
+# CONFIG_PHY_SAMSUNG_USB2 is not set
+# end of PHY Subsystem
+
+# CONFIG_POWERCAP is not set
+# CONFIG_MCB is not set
+
+#
+# Performance monitor support
+#
+# end of Performance monitor support
+
+CONFIG_RAS=y
+# CONFIG_USB4 is not set
+
+#
+# Android
+#
+# CONFIG_ANDROID is not set
+# end of Android
+
+# CONFIG_LIBNVDIMM is not set
+# CONFIG_DAX is not set
+CONFIG_NVMEM=y
+CONFIG_NVMEM_SYSFS=y
+CONFIG_KVX_OTP_NV=y
+
+#
+# HW tracing support
+#
+# CONFIG_STM is not set
+# CONFIG_INTEL_TH is not set
+# end of HW tracing support
+
+# CONFIG_FPGA is not set
+# CONFIG_FSI is not set
+# CONFIG_SIOX is not set
+# CONFIG_SLIMBUS is not set
+# CONFIG_INTERCONNECT is not set
+# CONFIG_COUNTER is not set
+# CONFIG_MOST is not set
+# end of Device Drivers
+
+#
+# File systems
+#
+# CONFIG_VALIDATE_FS_PARSER is not set
+CONFIG_FS_IOMAP=y
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=m
+CONFIG_EXT4_USE_FOR_EXT2=y
+# CONFIG_EXT4_FS_POSIX_ACL is not set
+# CONFIG_EXT4_FS_SECURITY is not set
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD2=m
+# CONFIG_JBD2_DEBUG is not set
+CONFIG_FS_MBCACHE=m
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+# CONFIG_F2FS_FS is not set
+# CONFIG_FS_DAX is not set
+CONFIG_EXPORTFS=y
+# CONFIG_EXPORTFS_BLOCK_OPS is not set
+CONFIG_FILE_LOCKING=y
+CONFIG_MANDATORY_FILE_LOCKING=y
+# CONFIG_FS_ENCRYPTION is not set
+# CONFIG_FS_VERITY is not set
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+# CONFIG_QUOTA is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_FUSE_FS is not set
+# CONFIG_OVERLAY_FS is not set
+
+#
+# Caches
+#
+# CONFIG_FSCACHE is not set
+# end of Caches
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+# end of CD-ROM/DVD Filesystems
+
+#
+# DOS/FAT/EXFAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_FAT_DEFAULT_UTF8 is not set
+# CONFIG_EXFAT_FS is not set
+# CONFIG_NTFS_FS is not set
+# end of DOS/FAT/EXFAT/NT Filesystems
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+# CONFIG_PROC_KCORE is not set
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+# CONFIG_PROC_CHILDREN is not set
+CONFIG_KERNFS=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_TMPFS_XATTR is not set
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_CONFIGFS_FS=y
+# end of Pseudo filesystems
+
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ORANGEFS_FS is not set
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS2_FS is not set
+# CONFIG_CRAMFS is not set
+CONFIG_SQUASHFS=m
+CONFIG_SQUASHFS_FILE_CACHE=y
+# CONFIG_SQUASHFS_FILE_DIRECT is not set
+CONFIG_SQUASHFS_DECOMP_SINGLE=y
+# CONFIG_SQUASHFS_DECOMP_MULTI is not set
+# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
+# CONFIG_SQUASHFS_XATTR is not set
+CONFIG_SQUASHFS_ZLIB=y
+# CONFIG_SQUASHFS_LZ4 is not set
+# CONFIG_SQUASHFS_LZO is not set
+# CONFIG_SQUASHFS_XZ is not set
+# CONFIG_SQUASHFS_ZSTD is not set
+# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_QNX6FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+# CONFIG_EROFS_FS is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+# CONFIG_NFS_FS is not set
+# CONFIG_NFSD is not set
+# CONFIG_CEPH_FS is not set
+# CONFIG_CIFS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+# CONFIG_NLS_CODEPAGE_850 is not set
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+# CONFIG_NLS_MAC_ROMAN is not set
+# CONFIG_NLS_MAC_CELTIC is not set
+# CONFIG_NLS_MAC_CENTEURO is not set
+# CONFIG_NLS_MAC_CROATIAN is not set
+# CONFIG_NLS_MAC_CYRILLIC is not set
+# CONFIG_NLS_MAC_GAELIC is not set
+# CONFIG_NLS_MAC_GREEK is not set
+# CONFIG_NLS_MAC_ICELAND is not set
+# CONFIG_NLS_MAC_INUIT is not set
+# CONFIG_NLS_MAC_ROMANIAN is not set
+# CONFIG_NLS_MAC_TURKISH is not set
+# CONFIG_NLS_UTF8 is not set
+# CONFIG_DLM is not set
+# CONFIG_UNICODE is not set
+CONFIG_IO_WQ=y
+# end of File systems
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
+# CONFIG_HARDENED_USERCOPY is not set
+# CONFIG_STATIC_USERMODEHELPER is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity,bpf"
+
+#
+# Kernel hardening options
+#
+
+#
+# Memory initialization
+#
+CONFIG_INIT_STACK_NONE=y
+# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
+# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
+# end of Memory initialization
+# end of Kernel hardening options
+# end of Security options
+
+CONFIG_CRYPTO=m
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=m
+CONFIG_CRYPTO_ALGAPI2=m
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=m
+CONFIG_CRYPTO_SKCIPHER=m
+CONFIG_CRYPTO_SKCIPHER2=m
+CONFIG_CRYPTO_HASH=m
+CONFIG_CRYPTO_HASH2=m
+CONFIG_CRYPTO_RNG2=m
+# CONFIG_CRYPTO_MANAGER is not set
+# CONFIG_CRYPTO_USER is not set
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_NULL2=m
+# CONFIG_CRYPTO_CRYPTD is not set
+# CONFIG_CRYPTO_AUTHENC is not set
+# CONFIG_CRYPTO_TEST is not set
+CONFIG_CRYPTO_ENGINE=m
+
+#
+# Public-key cryptography
+#
+# CONFIG_CRYPTO_RSA is not set
+# CONFIG_CRYPTO_DH is not set
+# CONFIG_CRYPTO_ECDH is not set
+# CONFIG_CRYPTO_ECRDSA is not set
+# CONFIG_CRYPTO_CURVE25519 is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+# CONFIG_CRYPTO_CCM is not set
+# CONFIG_CRYPTO_GCM is not set
+# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
+# CONFIG_CRYPTO_AEGIS128 is not set
+# CONFIG_CRYPTO_SEQIV is not set
+# CONFIG_CRYPTO_ECHAINIV is not set
+
+#
+# Block modes
+#
+# CONFIG_CRYPTO_CBC is not set
+# CONFIG_CRYPTO_CFB is not set
+# CONFIG_CRYPTO_CTR is not set
+# CONFIG_CRYPTO_CTS is not set
+# CONFIG_CRYPTO_ECB is not set
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_OFB is not set
+# CONFIG_CRYPTO_PCBC is not set
+# CONFIG_CRYPTO_XTS is not set
+# CONFIG_CRYPTO_KEYWRAP is not set
+# CONFIG_CRYPTO_ADIANTUM is not set
+# CONFIG_CRYPTO_ESSIV is not set
+
+#
+# Hash modes
+#
+# CONFIG_CRYPTO_CMAC is not set
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_VMAC is not set
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+# CONFIG_CRYPTO_CRC32 is not set
+# CONFIG_CRYPTO_XXHASH is not set
+# CONFIG_CRYPTO_BLAKE2B is not set
+# CONFIG_CRYPTO_BLAKE2S is not set
+# CONFIG_CRYPTO_CRCT10DIF is not set
+# CONFIG_CRYPTO_GHASH is not set
+# CONFIG_CRYPTO_POLY1305 is not set
+# CONFIG_CRYPTO_MD4 is not set
+# CONFIG_CRYPTO_MD5 is not set
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_RMD128 is not set
+# CONFIG_CRYPTO_RMD160 is not set
+# CONFIG_CRYPTO_RMD256 is not set
+# CONFIG_CRYPTO_RMD320 is not set
+# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_SHA3 is not set
+# CONFIG_CRYPTO_SM3 is not set
+# CONFIG_CRYPTO_STREEBOG is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_WP512 is not set
+
+#
+# Ciphers
+#
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_AES_TI is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_SALSA20 is not set
+# CONFIG_CRYPTO_CHACHA20 is not set
+# CONFIG_CRYPTO_SEED is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_SM4 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+
+#
+# Compression
+#
+# CONFIG_CRYPTO_DEFLATE is not set
+# CONFIG_CRYPTO_LZO is not set
+# CONFIG_CRYPTO_842 is not set
+# CONFIG_CRYPTO_LZ4 is not set
+# CONFIG_CRYPTO_LZ4HC is not set
+# CONFIG_CRYPTO_ZSTD is not set
+
+#
+# Random Number Generation
+#
+# CONFIG_CRYPTO_ANSI_CPRNG is not set
+# CONFIG_CRYPTO_DRBG_MENU is not set
+# CONFIG_CRYPTO_JITTERENTROPY is not set
+# CONFIG_CRYPTO_USER_API_HASH is not set
+# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
+# CONFIG_CRYPTO_USER_API_RNG is not set
+# CONFIG_CRYPTO_USER_API_AEAD is not set
+
+#
+# Crypto library routines
+#
+# CONFIG_CRYPTO_LIB_BLAKE2S is not set
+# CONFIG_CRYPTO_LIB_CHACHA is not set
+# CONFIG_CRYPTO_LIB_CURVE25519 is not set
+CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1
+# CONFIG_CRYPTO_LIB_POLY1305 is not set
+# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set
+CONFIG_CRYPTO_HW=y
+# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
+# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
+# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set
+CONFIG_CRYPTO_DEV_VIRTIO=m
+# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
+# CONFIG_CRYPTO_DEV_CCREE is not set
+# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set
+
+#
+# Certificates for signature checking
+#
+# end of Certificates for signature checking
+
+#
+# Library routines
+#
+# CONFIG_PACKING is not set
+CONFIG_BITREVERSE=y
+CONFIG_HAVE_ARCH_BITREVERSE=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_NET_UTILS=y
+# CONFIG_CORDIC is not set
+# CONFIG_PRIME_NUMBERS is not set
+CONFIG_RATIONAL=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_IOMAP=y
+# CONFIG_CRC_CCITT is not set
+CONFIG_CRC16=m
+# CONFIG_CRC_T10DIF is not set
+# CONFIG_CRC_ITU_T is not set
+CONFIG_CRC32=y
+# CONFIG_CRC32_SELFTEST is not set
+CONFIG_CRC32_SLICEBY8=y
+# CONFIG_CRC32_SLICEBY4 is not set
+# CONFIG_CRC32_SARWATE is not set
+# CONFIG_CRC32_BIT is not set
+# CONFIG_CRC64 is not set
+# CONFIG_CRC4 is not set
+# CONFIG_CRC7 is not set
+CONFIG_LIBCRC32C=m
+# CONFIG_CRC8 is not set
+# CONFIG_RANDOM32_SELFTEST is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_LZ4_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_DECOMPRESS_LZ4=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_XARRAY_MULTI=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAS_DMA=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
+CONFIG_DMA_DECLARE_COHERENT=y
+CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
+CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y
+CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y
+CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y
+CONFIG_DMA_VIRT_OPS=y
+CONFIG_DMA_NONCOHERENT_MMAP=y
+CONFIG_DMA_COHERENT_POOL=y
+CONFIG_DMA_REMAP=y
+CONFIG_DMA_DIRECT_REMAP=y
+# CONFIG_DMA_API_DEBUG is not set
+CONFIG_DQL=y
+CONFIG_GLOB=y
+# CONFIG_GLOB_SELFTEST is not set
+CONFIG_NLATTR=y
+# CONFIG_IRQ_POLL is not set
+CONFIG_LIBFDT=y
+CONFIG_SBITMAP=y
+# CONFIG_STRING_SELFTEST is not set
+# end of Library routines
+
+CONFIG_GENERIC_IOREMAP=y
+
+#
+# Kernel hacking
+#
+
+#
+# printk and dmesg options
+#
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINTK_CALLER is not set
+CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15
+CONFIG_CONSOLE_LOGLEVEL_QUIET=4
+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=7
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_DYNAMIC_DEBUG_CORE is not set
+CONFIG_SYMBOLIC_ERRNAME=y
+CONFIG_DEBUG_BUGVERBOSE=y
+# end of printk and dmesg options
+
+#
+# Compile-time checks and compiler options
+#
+CONFIG_DEBUG_INFO=y
+# CONFIG_DEBUG_INFO_REDUCED is not set
+# CONFIG_DEBUG_INFO_COMPRESSED is not set
+# CONFIG_DEBUG_INFO_SPLIT is not set
+CONFIG_DEBUG_INFO_DWARF4=y
+# CONFIG_DEBUG_INFO_BTF is not set
+CONFIG_GDB_SCRIPTS=y
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=2048
+# CONFIG_STRIP_ASM_SYMS is not set
+# CONFIG_READABLE_ASM is not set
+# CONFIG_HEADERS_INSTALL is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_FRAME_POINTER=y
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# end of Compile-time checks and compiler options
+
+#
+# Generic Kernel Debugging Instruments
+#
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_DEBUG_FS is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_UBSAN is not set
+# end of Generic Kernel Debugging Instruments
+
+CONFIG_DEBUG_KERNEL=y
+CONFIG_DEBUG_MISC=y
+
+#
+# Memory Debugging
+#
+# CONFIG_PAGE_EXTENSION is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_PAGE_OWNER is not set
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_HAVE_DEBUG_KMEMLEAK=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_SCHED_STACK_END_CHECK is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_MEMORY_INIT is not set
+CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
+CONFIG_KASAN_STACK=1
+# end of Memory Debugging
+
+# CONFIG_DEBUG_SHIRQ is not set
+
+#
+# Debug Oops, Lockups and Hangs
+#
+# CONFIG_PANIC_ON_OOPS is not set
+CONFIG_PANIC_ON_OOPS_VALUE=0
+CONFIG_PANIC_TIMEOUT=-1
+# CONFIG_SOFTLOCKUP_DETECTOR is not set
+# CONFIG_DETECT_HUNG_TASK is not set
+# CONFIG_WQ_WATCHDOG is not set
+# CONFIG_TEST_LOCKUP is not set
+# end of Debug Oops, Lockups and Hangs
+
+#
+# Scheduler Debugging
+#
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+# end of Scheduler Debugging
+
+# CONFIG_DEBUG_TIMEKEEPING is not set
+
+#
+# Lock Debugging (spinlocks, mutexes, etc...)
+#
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
+# CONFIG_DEBUG_RWSEMS is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_LOCK_TORTURE_TEST is not set
+# CONFIG_WW_MUTEX_SELFTEST is not set
+# end of Lock Debugging (spinlocks, mutexes, etc...)
+
+# CONFIG_STACKTRACE is not set
+# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
+# CONFIG_DEBUG_KOBJECT is not set
+
+#
+# Debug kernel data structures
+#
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_PLIST is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_BUG_ON_DATA_CORRUPTION is not set
+# end of Debug kernel data structures
+
+# CONFIG_DEBUG_CREDENTIALS is not set
+
+#
+# RCU Debugging
+#
+# CONFIG_RCU_PERF_TEST is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_RCU_EQS_DEBUG is not set
+# end of RCU Debugging
+
+# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_LATENCYTOP is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_FTRACE=y
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_STACK_TRACER is not set
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_SCHED_TRACER is not set
+# CONFIG_HWLAT_TRACER is not set
+# CONFIG_ENABLE_DEFAULT_TRACERS is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_TRACER_SNAPSHOT is not set
+CONFIG_BRANCH_PROFILE_NONE=y
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_SYNTH_EVENTS is not set
+# CONFIG_TRACEPOINT_BENCHMARK is not set
+# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
+# CONFIG_SAMPLES is not set
+CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+CONFIG_STRICT_DEVMEM=y
+# CONFIG_IO_STRICT_DEVMEM is not set
+
+#
+# kvx Debugging
+#
+
+#
+# KVX debugging
+#
+# CONFIG_KVX_DEBUG_ASN is not set
+# CONFIG_KVX_DEBUG_TLB_WRITE is not set
+# CONFIG_KVX_DEBUG_TLB_ACCESS is not set
+# CONFIG_KVX_MMU_STATS is not set
+# CONFIG_DEBUG_EXCEPTION_STACK is not set
+# CONFIG_DEBUG_SFR_SET_MASK is not set
+# end of KVX debugging
+# end of kvx Debugging
+
+#
+# Kernel Testing and Coverage
+#
+# CONFIG_KUNIT is not set
+# CONFIG_NOTIFIER_ERROR_INJECTION is not set
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_CC_HAS_SANCOV_TRACE_PC=y
+CONFIG_RUNTIME_TESTING_MENU=y
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_MIN_HEAP is not set
+# CONFIG_TEST_SORT is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_RBTREE_TEST is not set
+# CONFIG_REED_SOLOMON_TEST is not set
+# CONFIG_INTERVAL_TREE_TEST is not set
+# CONFIG_PERCPU_TEST is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+# CONFIG_TEST_HEXDUMP is not set
+# CONFIG_TEST_STRING_HELPERS is not set
+# CONFIG_TEST_STRSCPY is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_TEST_PRINTF is not set
+# CONFIG_TEST_BITMAP is not set
+# CONFIG_TEST_BITFIELD is not set
+# CONFIG_TEST_UUID is not set
+# CONFIG_TEST_XARRAY is not set
+# CONFIG_TEST_OVERFLOW is not set
+# CONFIG_TEST_RHASHTABLE is not set
+# CONFIG_TEST_HASH is not set
+# CONFIG_TEST_IDA is not set
+# CONFIG_TEST_LKM is not set
+# CONFIG_TEST_BITOPS is not set
+# CONFIG_TEST_VMALLOC is not set
+# CONFIG_TEST_USER_COPY is not set
+# CONFIG_TEST_BPF is not set
+# CONFIG_TEST_BLACKHOLE_DEV is not set
+# CONFIG_FIND_BIT_BENCHMARK is not set
+# CONFIG_TEST_FIRMWARE is not set
+# CONFIG_TEST_SYSCTL is not set
+# CONFIG_TEST_UDELAY is not set
+# CONFIG_TEST_STATIC_KEYS is not set
+# CONFIG_TEST_KMOD is not set
+# CONFIG_TEST_MEMCAT_P is not set
+# CONFIG_TEST_STACKINIT is not set
+# CONFIG_TEST_MEMINIT is not set
+# CONFIG_MEMTEST is not set
+# end of Kernel Testing and Coverage
+# end of Kernel hacking
diff --git a/target/kvx/systems/qemu-kvx b/target/kvx/systems/qemu-kvx
new file mode 100644
index 000000000..86342a086
--- /dev/null
+++ b/target/kvx/systems/qemu-kvx
@@ -0,0 +1,7 @@
+config ADK_TARGET_SYSTEM_QEMU_KVX
+ bool "Qemu Emulator"
+ select ADK_TARGET_QEMU
+ select ADK_TARGET_CPU_KVX
+ help
+ Support for Qemu Emulator KVX architecture.
+
diff --git a/target/kvx/uclibc-ng.config b/target/kvx/uclibc-ng.config
new file mode 100644
index 000000000..fc6e6a1ed
--- /dev/null
+++ b/target/kvx/uclibc-ng.config
@@ -0,0 +1,248 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# uClibc-ng 1.0.36 C Library Configuration
+#
+# TARGET_aarch64 is not set
+# TARGET_alpha is not set
+# TARGET_arc is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_c6x is not set
+# TARGET_cris is not set
+# TARGET_csky is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_ia64 is not set
+TARGET_kvx=y
+# TARGET_lm32 is not set
+# TARGET_m68k is not set
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nds32 is not set
+# TARGET_nios2 is not set
+# TARGET_or1k is not set
+# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_sparc64 is not set
+# TARGET_tile is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="kvx"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_AARCH64_PAGE_SIZE_4K is not set
+# CONFIG_AARCH64_PAGE_SIZE_16K is not set
+# CONFIG_AARCH64_PAGE_SIZE_64K is not set
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+# ARCH_WANTS_LITTLE_ENDIAN is not set
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+DO_XSI_MATH=y
+UCLIBC_HAS_FENV=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+DOPIC=y
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_ENV_SUPPORT is not set
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# LDSO_STANDALONE_SUPPORT is not set
+# LDSO_PRELINK_SUPPORT is not set
+UCLIBC_STATIC_LDCONFIG=y
+LDSO_RUNPATH=y
+LDSO_RUNPATH_OF_EXECUTABLE=y
+LDSO_SAFE_RUNPATH=y
+LDSO_SEARCH_INTERP_PATH=y
+LDSO_LD_LIBRARY_PATH=y
+UCLIBC_CTOR_DTOR=y
+# LDSO_GNU_HASH_SUPPORT is not set
+# HAS_NO_THREADS is not set
+# UCLIBC_HAS_LINUXTHREADS is not set
+UCLIBC_HAS_THREADS_NATIVE=y
+UCLIBC_HAS_THREADS=y
+UCLIBC_HAS_TLS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_SUSV2_LEGACY=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_SHA256_CRYPT_IMPL=y
+UCLIBC_HAS_SHA512_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_STDIO_FUTEXES=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LIBICONV is not set
+# UCLIBC_HAS_LIBINTL is not set
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GETOPT_LONG=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_ARGP=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_FTS=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+# UCLIBC_HAS_SSP is not set
+# UCLIBC_BUILD_RELRO is not set
+# UCLIBC_BUILD_NOW is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# Development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DOSTRIP is not set
+# DOASSERTS is not set
+SUPPORT_LD_DEBUG=y
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_HAS_BACKTRACE is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
diff --git a/target/linux/Config.in b/target/linux/Config.in
index e4da0762b..42e4efcbb 100644
--- a/target/linux/Config.in
+++ b/target/linux/Config.in
@@ -21,6 +21,7 @@ source target/linux/config/Config.in.crypto
source target/linux/config/Config.in.misc
source target/linux/config/Config.in.arc
source target/linux/config/Config.in.arm
+source target/linux/config/Config.in.m68k
source target/linux/config/Config.in.mips
source target/linux/config/Config.in.xtensa
source target/linux/config/Config.in.pm
diff --git a/target/linux/Config.in.kernelcfg b/target/linux/Config.in.kernelcfg
index 2865f70c1..ee5b555a8 100644
--- a/target/linux/Config.in.kernelcfg
+++ b/target/linux/Config.in.kernelcfg
@@ -4,9 +4,14 @@
choice
prompt "Kernel configuration" if !ADK_TARGET_CHOOSE_ARCH
depends on ADK_TARGET_OS_LINUX
+default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_CPU_ARC_ARC32
+default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_CPU_ARC_ARC64
+default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_SIPEED_MAIX_BIT
+default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_SIPEED_MAIX_BIT
default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK && ADK_TARGET_LINUX_KERNEL_VERSION_GIT
default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_PHYTEC_WEGA && ADK_TARGET_LINUX_KERNEL_VERSION_GIT
default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG && ADK_TARGET_LINUX_KERNEL_VERSION_GIT
+default ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG if ADK_TARGET_BOARD_BCM28XX && ADK_TARGET_LINUX_KERNEL_VERSION_GIT
config ADK_TARGET_LINUX_KERNEL_USE_MINICONFIG
bool "Use mini.config from OpenADK"
@@ -26,24 +31,40 @@ config ADK_TARGET_LINUX_KERNEL_DEFCONFIG
default "bcmrpi_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI0
default "bcm2709_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI2
default "bcm2709_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI3
- default "bcm2709_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI3P
+ default "bcm2711_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI4
default "bcmrpi3_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64
- default "bcmrpi3_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI3P_64
+ default "bcm2711_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
+ default "bcm2712_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI5
default "twr-k70f120m_defconfig" if ADK_TARGET_SYSTEM_KINETIS_K70
default "imx_v7_cbi_hb_defconfig" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 && ADK_TARGET_LINUX_KERNEL_VERSION_GIT
default "imx_v6_v7_defconfig" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
default "mvebu_defconfig" if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
default "nsim_700_defconfig" if ADK_TARGET_CPU_ARC_ARC700 && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
- default "nsim_hs_defconfig" if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
+ default "haps_hs_defconfig" if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
default "10m50_defconfig" if ADK_TARGET_SYSTEM_QEMU_NIOS2
default "ag101p_defconfig" if ADK_TARGET_SYSTEM_ANDES_AG101P
default "bb.org_defconfig" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
default "am335x_phytec_defconfig" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
default "j2_defconfig" if ADK_TARGET_SYSTEM_NUMATO_MIMASV2
default "sunxi_defconfig" if ADK_TARGET_SYSTEM_ORANGE_PI0
+ default "sunxi_defconfig" if ADK_TARGET_SYSTEM_BANANA_P2_ZERO
default "edosk2674_defconfig" if ADK_TARGET_SYSTEM_HITACHI_EDOSK2674
default "x86_64_defconfig" if ADK_TARGET_SYSTEM_GENERIC_X86_64
default "i386_defconfig" if ADK_TARGET_SYSTEM_GENERIC_X86
+ default "stm32_defconfig" if ADK_TARGET_SYSTEM_ST_STM32F429
+ default "stm32_defconfig" if ADK_TARGET_SYSTEM_ST_STM32F769
+ default "stm32_defconfig" if ADK_TARGET_SYSTEM_ST_STM32F746G
+ default "nommu_k210_defconfig" if ADK_TARGET_SYSTEM_SIPEED_MAIX_BIT
+ default "loongson3_defconfig" if ADK_TARGET_SYSTEM_QEMU_LOONGARCH
+ default "defconfig" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default "rockpi4_defconfig" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS && ADK_TARGET_LINUX_KERNEL_VERSION_GIT
+ default "vexpress_defconfig" if ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
+ default "spitz_defconfig" if ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER
+ default "spitz_defconfig" if ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
+ default "haps_hs5x_defconfig" if ADK_TARGET_CPU_ARC_ARC32
+ default "haps_arc64_defconfig" if ADK_TARGET_CPU_ARC_ARC64
+ default "m5208evb_defconfig" if ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208
+ default "default_defconfig" if ADK_TARGET_ARCH_KVX
default ""
config ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH
diff --git a/target/linux/Config.in.kernelversion b/target/linux/Config.in.kernelversion
index c808c1a94..a1c346987 100644
--- a/target/linux/Config.in.kernelversion
+++ b/target/linux/Config.in.kernelversion
@@ -1,9 +1,6 @@
# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.
-config ADK_TARGET_LINUX_KERNEL_NEW
- bool
-
choice
prompt "Linux Kernel version" if !ADK_TARGET_CHOOSE_ARCH
depends on ADK_TARGET_OS_LINUX
@@ -12,52 +9,131 @@ default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARF
default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_KINETIS_K70
default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_ADSP_BF537
default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_SYSTEM_PHYTEC_WEGA
-default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_ARCH_CSKY
+default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_CPU_ARC_ARC32
+default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_CPU_ARC_ARC64
+default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_ARCH_KVX
default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_ARCH_LM32
-default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_ARCH_RISCV32
-default ADK_TARGET_LINUX_KERNEL_VERSION_GIT if ADK_TARGET_ARCH_RISCV64
default ADK_TARGET_LINUX_KERNEL_VERSION_4_4 if ADK_TARGET_ARCH_CRIS
default ADK_TARGET_LINUX_KERNEL_VERSION_4_4 if ADK_TARGET_ARCH_H8300
default ADK_TARGET_LINUX_KERNEL_VERSION_4_4 if ADK_TARGET_ARCH_METAG
-default ADK_TARGET_LINUX_KERNEL_VERSION_4_19 if ADK_TARGET_ARCH_ARC
-default ADK_TARGET_LINUX_KERNEL_VERSION_4_14
+default ADK_TARGET_LINUX_KERNEL_VERSION_4_4 if ADK_TARGET_ARCH_AVR32
+default ADK_TARGET_LINUX_KERNEL_VERSION_4_9 if ADK_TARGET_ARCH_BFIN
+default ADK_TARGET_LINUX_KERNEL_VERSION_4_9 if ADK_TARGET_ARCH_FRV
+default ADK_TARGET_LINUX_KERNEL_VERSION_4_9 if ADK_TARGET_SYSTEM_ST_STM32F429
+default ADK_TARGET_LINUX_KERNEL_VERSION_4_9 if ADK_TARGET_SYSTEM_ST_STM32F769
+default ADK_TARGET_LINUX_KERNEL_VERSION_5_4 if ADK_TARGET_ARCH_C6X
+default ADK_TARGET_LINUX_KERNEL_VERSION_5_10 if ADK_TARGET_SYSTEM_NUMATO_MIMASV2
+default ADK_TARGET_LINUX_KERNEL_VERSION_5_15 if ADK_TARGET_ARCH_NDS32
+default ADK_TARGET_LINUX_KERNEL_VERSION_6_6
config ADK_TARGET_LINUX_KERNEL_VERSION_GIT
bool "git"
- select ADK_TARGET_LINUX_KERNEL_NEW
depends on !ADK_TARGET_ARCH_AVR32
- depends on !ADK_TARGET_ARCH_NDS32
+ depends on !ADK_TARGET_ARCH_BFIN
+ depends on !ADK_TARGET_ARCH_C6X
+ depends on !ADK_TARGET_ARCH_FRV
+ depends on !ADK_TARGET_ARCH_H8300
select ADK_HOST_NEED_LZOP if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
select ADK_HOST_NEED_LZOP if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
select ADK_HOST_NEED_LZ4 if ADK_TARGET_SYSTEM_PHYTEC_WEGA && ADK_TARGET_LINUX_KERNEL_VERSION_GIT
select ADK_TARGET_LINUX_KERNEL_IMAGE if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
select ADK_TARGET_LINUX_KERNEL_IMAGE if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
+config ADK_TARGET_LINUX_KERNEL_VERSION_6_8
+ bool "6.8.6"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_BFIN
+ depends on !ADK_TARGET_ARCH_C6X
+ depends on !ADK_TARGET_ARCH_CRIS
+ depends on !ADK_TARGET_ARCH_FRV
+ depends on !ADK_TARGET_ARCH_H8300
+ depends on !ADK_TARGET_ARCH_METAG
+ depends on !ADK_TARGET_ARCH_NDS32
+
+config ADK_TARGET_LINUX_KERNEL_VERSION_6_6
+ bool "6.6.28"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_BFIN
+ depends on !ADK_TARGET_ARCH_C6X
+ depends on !ADK_TARGET_ARCH_CRIS
+ depends on !ADK_TARGET_ARCH_FRV
+ depends on !ADK_TARGET_ARCH_H8300
+ depends on !ADK_TARGET_ARCH_METAG
+ depends on !ADK_TARGET_ARCH_NDS32
+
+config ADK_TARGET_LINUX_KERNEL_VERSION_6_1
+ bool "6.1.82"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_BFIN
+ depends on !ADK_TARGET_ARCH_C6X
+ depends on !ADK_TARGET_ARCH_CRIS
+ depends on !ADK_TARGET_ARCH_FRV
+ depends on !ADK_TARGET_ARCH_H8300
+ depends on !ADK_TARGET_ARCH_METAG
+ depends on !ADK_TARGET_ARCH_NDS32
+
+config ADK_TARGET_LINUX_KERNEL_VERSION_5_15
+ bool "5.15.152"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_BFIN
+ depends on !ADK_TARGET_ARCH_C6X
+ depends on !ADK_TARGET_ARCH_CRIS
+ depends on !ADK_TARGET_ARCH_FRV
+ depends on !ADK_TARGET_ARCH_H8300
+ depends on !ADK_TARGET_ARCH_METAG
+
+config ADK_TARGET_LINUX_KERNEL_VERSION_5_10
+ bool "5.10.213"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_BFIN
+ depends on !ADK_TARGET_ARCH_C6X
+ depends on !ADK_TARGET_ARCH_CRIS
+ depends on !ADK_TARGET_ARCH_FRV
+ depends on !ADK_TARGET_ARCH_H8300
+ depends on !ADK_TARGET_ARCH_METAG
+ depends on !ADK_TARGET_SYSTEM_SIPEED_MAIX_BIT
+
+config ADK_TARGET_LINUX_KERNEL_VERSION_5_4
+ bool "5.4.272"
+ depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_BFIN
+ depends on !ADK_TARGET_ARCH_CRIS
+ depends on !ADK_TARGET_ARCH_FRV
+ depends on !ADK_TARGET_ARCH_H8300
+ depends on !ADK_TARGET_ARCH_METAG
+ depends on !ADK_TARGET_SYSTEM_SIPEED_MAIX_BIT
+
config ADK_TARGET_LINUX_KERNEL_VERSION_4_19
- bool "4.19.55"
- select ADK_TARGET_LINUX_KERNEL_NEW
+ bool "4.19.310"
depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_BFIN
depends on !ADK_TARGET_ARCH_CRIS
depends on !ADK_TARGET_ARCH_CSKY
+ depends on !ADK_TARGET_ARCH_FRV
+ depends on !ADK_TARGET_ARCH_H8300
depends on !ADK_TARGET_ARCH_METAG
depends on !ADK_TARGET_ARCH_RISCV32
depends on !ADK_TARGET_ARCH_RISCV64
config ADK_TARGET_LINUX_KERNEL_VERSION_4_14
- bool "4.14.121"
+ bool "4.14.334"
depends on !ADK_TARGET_ARCH_AVR32
+ depends on !ADK_TARGET_ARCH_BFIN
depends on !ADK_TARGET_ARCH_CRIS
depends on !ADK_TARGET_ARCH_CSKY
+ depends on !ADK_TARGET_ARCH_FRV
+ depends on !ADK_TARGET_ARCH_H8300
depends on !ADK_TARGET_ARCH_METAG
depends on !ADK_TARGET_ARCH_NDS32
depends on !ADK_TARGET_ARCH_RISCV32
depends on !ADK_TARGET_ARCH_RISCV64
config ADK_TARGET_LINUX_KERNEL_VERSION_4_9
- bool "4.9.179"
+ bool "4.9.287"
depends on !ADK_TARGET_ARCH_ARC
depends on !ADK_TARGET_ARCH_CRIS
depends on !ADK_TARGET_ARCH_CSKY
+ depends on !ADK_TARGET_ARCH_H8300
depends on !ADK_TARGET_ARCH_METAG
depends on !ADK_TARGET_ARCH_NDS32
depends on !ADK_TARGET_ARCH_OR1K
@@ -66,7 +142,7 @@ config ADK_TARGET_LINUX_KERNEL_VERSION_4_9
depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
config ADK_TARGET_LINUX_KERNEL_VERSION_4_4
- bool "4.4.132"
+ bool "4.4.302"
depends on !ADK_TARGET_ARCH_ARC
depends on !ADK_TARGET_ARCH_CSKY
depends on !ADK_TARGET_ARCH_NDS32
@@ -79,26 +155,8 @@ config ADK_TARGET_LINUX_KERNEL_VERSION_4_4
depends on !ADK_TARGET_SYSTEM_NUMATO_MIMASV2
depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
-config ADK_TARGET_LINUX_KERNEL_VERSION_4_1
- bool "4.1.51"
- depends on !ADK_TARGET_ARCH_ARC
- depends on !ADK_TARGET_ARCH_BFIN
- depends on !ADK_TARGET_ARCH_CSKY
- depends on !ADK_TARGET_ARCH_H8300
- depends on !ADK_TARGET_ARCH_NIOS2
- depends on !ADK_TARGET_ARCH_NDS32
- depends on !ADK_TARGET_ARCH_OR1K
- depends on !ADK_TARGET_ARCH_SPARC
- depends on !ADK_TARGET_ARCH_RISCV32
- depends on !ADK_TARGET_ARCH_RISCV64
- depends on !ADK_TARGET_SYSTEM_KINETIS_K70
- depends on !ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208
- depends on !ADK_TARGET_CPU_MIPS_MIPS32R6
- depends on !ADK_TARGET_CPU_MIPS64_MIPS64R6
- depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
-
config ADK_TARGET_LINUX_KERNEL_VERSION_3_16
- bool "3.16.56"
+ bool "3.16.85"
depends on !ADK_TARGET_ARCH_ARC
depends on !ADK_TARGET_ARCH_BFIN
depends on !ADK_TARGET_ARCH_CSKY
@@ -120,34 +178,6 @@ config ADK_TARGET_LINUX_KERNEL_VERSION_3_16
depends on !ADK_TARGET_CPU_MIPS64_MIPS64R6
depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
-config ADK_TARGET_LINUX_KERNEL_VERSION_3_10_NDS32
- bool "3.10-nds32"
- depends on ADK_TARGET_ARCH_NDS32
- select ADK_TARGET_LINUX_KERNEL_NO_MIRROR
-
-config ADK_TARGET_LINUX_KERNEL_VERSION_3_2
- bool "3.2.101"
- depends on !ADK_TARGET_ARCH_ARC
- depends on !ADK_TARGET_ARCH_BFIN
- depends on !ADK_TARGET_ARCH_CSKY
- depends on !ADK_TARGET_ARCH_H8300
- depends on !ADK_TARGET_ARCH_NDS32
- depends on !ADK_TARGET_ARCH_NIOS2
- depends on !ADK_TARGET_ARCH_OR1K
- depends on !ADK_TARGET_ARCH_RISCV32
- depends on !ADK_TARGET_ARCH_RISCV64
- depends on !ADK_TARGET_ARCH_SPARC
- depends on !ADK_TARGET_BOARD_ATH79
- depends on !ADK_TARGET_BOARD_BCM28XX
- depends on !ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
- depends on !ADK_TARGET_SYSTEM_KINETIS_K70
- depends on !ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- depends on !ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208
- depends on !ADK_TARGET_SYSTEM_NUMATO_MIMASV2
- depends on !ADK_TARGET_CPU_MIPS_MIPS32R6
- depends on !ADK_TARGET_CPU_MIPS64_MIPS64R6
- depends on !ADK_TARGET_SYSTEM_ORANGE_PI0
-
config ADK_TARGET_LINUX_KERNEL_VERSION_2_6_32
bool "2.6.32.70"
depends on !ADK_TARGET_ARCH_ARC
@@ -175,6 +205,7 @@ endchoice
config ADK_TARGET_LINUX_KERNEL_GIT_REPO
string "git repository"
depends on ADK_TARGET_LINUX_KERNEL_VERSION_GIT
+ default "https://github.com/foss-for-synopsys-dwc-arc-processors/linux.git" if ADK_TARGET_CPU_ARC_ARC32 || ADK_TARGET_CPU_ARC_ARC64
default "https://github.com/raspberrypi/linux.git" if ADK_TARGET_BOARD_BCM28XX
default "git://git.code.sf.net/p/adi-linux/code" if ADK_TARGET_SYSTEM_ADSP_BF537
default "https://github.com/EmcraftSystems/linux-emcraft.git" if ADK_TARGET_SYSTEM_KINETIS_K70
@@ -182,10 +213,9 @@ config ADK_TARGET_LINUX_KERNEL_GIT_REPO
default "https://github.com/SolidRun/linux-armada38x.git" if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
default "https://github.com/beagleboard/linux.git" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
default "https://git.phytec.de/git/linux-ti.git" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
+ default "https://github.com/kalray/linux_coolidge.git" if ADK_TARGET_ARCH_KVX
default "https://github.com/m-labs/linux-milkymist.git" if ADK_TARGET_ARCH_LM32
- default "https://github.com/c-sky/linux-4.9.y.git" if ADK_TARGET_ARCH_CSKY
- default "https://github.com/riscv/riscv-linux.git" if ADK_TARGET_ARCH_RISCV32
- default "https://github.com/riscv/riscv-linux.git" if ADK_TARGET_ARCH_RISCV64
+ default "https://github.com/radxa/kernel.git" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git"
help
GIT repository to use.
@@ -193,10 +223,9 @@ config ADK_TARGET_LINUX_KERNEL_GIT_REPO
config ADK_TARGET_LINUX_KERNEL_GIT_REPO_NAME
string
depends on ADK_TARGET_LINUX_KERNEL_VERSION_GIT
- default "csky" if ADK_TARGET_ARCH_CSKY
+ default "arc" if ADK_TARGET_CPU_ARC_ARC32 || ADK_TARGET_CPU_ARC_ARC64
+ default "kvx" if ADK_TARGET_ARCH_KVX
default "lm32" if ADK_TARGET_ARCH_LM32
- default "riscv" if ADK_TARGET_ARCH_RISCV32
- default "riscv" if ADK_TARGET_ARCH_RISCV64
default "rpi" if ADK_TARGET_BOARD_BCM28XX
default "ad" if ADK_TARGET_SYSTEM_ADSP_BF537
default "bb" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
@@ -204,41 +233,43 @@ config ADK_TARGET_LINUX_KERNEL_GIT_REPO_NAME
default "phytec" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
default "clearfog" if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
default "fslc" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default "radxa" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "linus"
config ADK_TARGET_LINUX_KERNEL_GIT
string "git version"
depends on ADK_TARGET_LINUX_KERNEL_VERSION_GIT
- default "6064a9bdf48cefbccc4f6472dd04251f0dec1931" if ADK_TARGET_ARCH_CSKY
+ default "f6e9dab9d1dc1e8fa2acb75504bf5ff86b885b8e" if ADK_TARGET_CPU_ARC_ARC32 || ADK_TARGET_CPU_ARC_ARC64
+ default "b02c139d3608c8ae87f5398a3a29854f6df7a041" if ADK_TARGET_ARCH_KVX
default "6a2f2e4198eaff63ee75f6085ce9f966c47b4441" if ADK_TARGET_ARCH_LM32
- default "a2092141807514666a273971cc8fa9e80f14439f" if ADK_TARGET_BOARD_BCM28XX
+ default "d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f" if ADK_TARGET_BOARD_BCM28XX
default "f8d3b2a0fa5054aaed0f14cd457db9d8922bb167" if ADK_TARGET_SYSTEM_ADSP_BF537
default "e7c8afc1dda7b7c18596d90ad6a17ae886650b72" if ADK_TARGET_SYSTEM_KINETIS_K70
default "902739f3353150ac9eb69ad995098f3079d862a3" if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
default "c85fbc86c61a8c8fd45ab1fe3d1bdd2df12f7962" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
default "8624998967676862843aed1f8ee2141e98987f81" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
- default "riscv-linux-4.18" if ADK_TARGET_ARCH_RISCV32
- default "riscv-linux-4.18" if ADK_TARGET_ARCH_RISCV64
+ default "stable-4.4-rockpi4" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "v4.4.52-phy" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
config ADK_TARGET_LINUX_KERNEL_GIT_VER
string "kernel version"
depends on ADK_TARGET_LINUX_KERNEL_VERSION_GIT
- default "4.9.56" if ADK_TARGET_ARCH_CSKY
- default "4.18.0" if ADK_TARGET_ARCH_RISCV32
- default "4.18.0" if ADK_TARGET_ARCH_RISCV64
- default "4.14.43" if ADK_TARGET_BOARD_BCM28XX
+ default "5.16" if ADK_TARGET_CPU_ARC_ARC32 || ADK_TARGET_CPU_ARC_ARC64
+ default "6.1.70" if ADK_TARGET_BOARD_BCM28XX
+ default "5.10.110" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "4.4.37" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
default "4.4.52" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
default "2.6.33" if ADK_TARGET_SYSTEM_KINETIS_K70
default "3.14.79" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default "3.6.0" if ADK_TARGET_SYSTEM_QEMU_LM32
+ default "5.8.12" if ADK_TARGET_ARCH_KVX
config ADK_TARGET_LINUX_KERNEL_GIT_TYPE
string
depends on ADK_TARGET_LINUX_KERNEL_VERSION_GIT
- default "branch" if ADK_TARGET_ARCH_RISCV32
- default "branch" if ADK_TARGET_ARCH_RISCV64
+ default "branch" if ADK_TARGET_LINUX_ARCH_LM32
default "branch" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
+ default "branch" if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default "hash"
config ADK_TARGET_LINUX_KERNEL_NO_MIRROR
diff --git a/target/linux/arch.lst b/target/linux/arch.lst
index 0765129d3..94d0f018f 100644
--- a/target/linux/arch.lst
+++ b/target/linux/arch.lst
@@ -11,7 +11,9 @@ frv
h8300
hppa
ia64
+kvx
lm32
+loongarch
m68k
metag
microblaze
diff --git a/target/linux/config/Config.in.arc b/target/linux/config/Config.in.arc
index ead549b73..461d1b7cd 100644
--- a/target/linux/config/Config.in.arc
+++ b/target/linux/config/Config.in.arc
@@ -20,7 +20,8 @@ config ADK_LINUX_KERNEL_ARC_BUILTIN_DTB_NAME
string
depends on ADK_TARGET_ARCH_ARC
default "hsdk" if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
- default "nsim_hs" if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
- default "nsim_700" if ADK_TARGET_CPU_ARC_ARC700 && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
+ default "haps_hs" if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
+ default "haps_hs" if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_QEMU_ARC
+ default "nsim_700" if ADK_TARGET_CPU_ARC_ARC700
diff --git a/target/linux/config/Config.in.audio b/target/linux/config/Config.in.audio
index 27e2b904d..cbcb0e29a 100644
--- a/target/linux/config/Config.in.audio
+++ b/target/linux/config/Config.in.audio
@@ -109,6 +109,18 @@ config ADK_LINUX_KERNEL_SND_SOC_PCM512x_SPI
select ADK_LINUX_KERNEL_SND_SOC_PCM512x
select ADK_LINUX_KERNEL_SND_SOC_I2C_AND_SPI
+config ADK_LINUX_KERNEL_SND_DESIGNWARE_I2S
+ tristate
+
+config ADK_LINUX_KERNEL_SND_SOC_ROCKCHIP_I2S
+ tristate
+
+config ADK_LINUX_KERNEL_SND_SOC_ES8316
+ tristate
+
+config ADK_LINUX_KERNEL_SND_AUDIO_GRAPH_CARD
+ tristate
+
config ADK_LINUX_KERNEL_SND
tristate
select ADK_LINUX_KERNEL_SOUND
@@ -132,7 +144,6 @@ config ADK_LINUX_KERNEL_SND_INTEL8X0
select ADK_LINUX_KERNEL_SND
select ADK_LINUX_KERNEL_SND_PCI
select ADK_LINUX_KERNEL_SND_AC97_CODEC
- default m if ADK_TARGET_SYSTEM_IBM_X40
default m if ADK_TARGET_QEMU_WITH_AUDIO
default n
depends on ADK_TARGET_WITH_PCI \
@@ -141,6 +152,19 @@ config ADK_LINUX_KERNEL_SND_INTEL8X0
help
Driver for intel chipsets.
+config ADK_LINUX_KERNEL_SND_SOC_ROCKCHIP
+ tristate "Rockchip driver (ES8316 Codec)"
+ select ADK_LINUX_KERNEL_SND
+ select ADK_LINUX_KERNEL_SND_SOC
+ select ADK_LINUX_KERNEL_SND_SOC_ES8316
+ select ADK_LINUX_KERNEL_SND_SOC_ROCKCHIP_I2S
+ select ADK_LINUX_KERNEL_SND_DESIGNWARE_I2S
+ select ADK_LINUX_KERNEL_SND_AUDIO_GRAPH_CARD
+ default m if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ help
+ ALSA Rockchip driver
+
config ADK_LINUX_KERNEL_SND_VIA82XX
tristate "VIA82XX driver"
select ADK_LINUX_KERNEL_SND
@@ -174,7 +198,6 @@ config ADK_LINUX_KERNEL_SND_HDSP
select ADK_LINUX_KERNEL_SND_HWDEP
select ADK_LINUX_KERNEL_SND_RAWMIDI
select ADK_LINUX_KERNEL_SND_PCM
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
default n
depends on ADK_TARGET_WITH_PCI || ADK_TARGET_GENERIC
help
@@ -196,6 +219,7 @@ config ADK_LINUX_KERNEL_SND_BCM2835
tristate "BCM28XX onboard soundcard"
select ADK_LINUX_KERNEL_SND
select ADK_LINUX_KERNEL_SND_ARM
+ select ADK_LINUX_KERNEL_STAGING
depends on ADK_TARGET_BOARD_BCM28XX
default m if ADK_TARGET_HARDWARE_NONE
default n
@@ -269,8 +293,10 @@ config ADK_LINUX_KERNEL_SND_IMX_SOC
select ADK_LINUX_KERNEL_REGMAP
select ADK_LINUX_KERNEL_REGMAP_SPI
select ADK_LINUX_KERNEL_REGMAP_I2C
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
config ADK_LINUX_KERNEL_SND_ALOOP
diff --git a/target/linux/config/Config.in.block b/target/linux/config/Config.in.block
index 478314be0..a287c05cf 100644
--- a/target/linux/config/Config.in.block
+++ b/target/linux/config/Config.in.block
@@ -148,6 +148,12 @@ config ADK_LINUX_KERNEL_MMC_SDHCI_IO_ACCESSORS
config ADK_LINUX_KERNEL_MMC_SDHCI_PLTFM
bool
+config ADK_LINUX_KERNEL_MMC_SDHCI_IPROC
+ bool
+
+config ADK_LINUX_KERNEL_MMC_SDHCI_BRCMSTB
+ bool
+
config ADK_LINUX_KERNEL_MMC_BCM2835_MMC
bool
@@ -157,6 +163,12 @@ config ADK_LINUX_KERNEL_MMC_BCM2835_DMA
config ADK_LINUX_KERNEL_MMC_BCM2835_SDHOST
bool
+config ADK_LINUX_KERNEL_MMC_DW
+ bool
+
+config ADK_LINUX_KERNEL_MMC_DW_PLTFM
+ bool
+
config ADK_LINUX_KERNEL_PWRSEQ_EMMC
bool
@@ -173,7 +185,6 @@ menu "SATA/PATA devices support"
depends on ADK_TARGET_WITH_PATA \
|| ADK_TARGET_WITH_SATA \
|| ADK_TARGET_QEMU \
- || ADK_TARGET_VBOX \
|| ADK_TARGET_GENERIC
config ADK_LINUX_KERNEL_PATA_RB532
@@ -229,15 +240,10 @@ config ADK_LINUX_KERNEL_SATA_AHCI
select ADK_LINUX_KERNEL_ATA
select ADK_LINUX_KERNEL_BLK_DEV
select ADK_LINUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_ASUS_P5BVM || \
+ depends on \
ADK_TARGET_SYSTEM_PCENGINES_APU || \
- ADK_TARGET_SYSTEM_LENOVO_X200 || \
- ADK_TARGET_GENERIC || \
- ADK_TARGET_VBOX
+ ADK_TARGET_GENERIC
default y if ADK_TARGET_SYSTEM_PCENGINES_APU
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default y if ADK_TARGET_SYSTEM_LENOVO_X200
- default y if ADK_TARGET_VBOX
default n
help
Enables support for AHCI Serial ATA.
@@ -253,15 +259,12 @@ config ADK_LINUX_KERNEL_ATA_PIIX
select ADK_LINUX_KERNEL_ATA_BMDMA
select ADK_LINUX_KERNEL_BLK_DEV
select ADK_LINUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_IBM_X40 || \
+ depends on \
ADK_TARGET_GENERIC || \
ADK_TARGET_SYSTEM_QEMU_MIPS || \
ADK_TARGET_SYSTEM_QEMU_MIPS64 || \
ADK_TARGET_SYSTEM_QEMU_X86 || \
- ADK_TARGET_SYSTEM_QEMU_X86_64 || \
- ADK_TARGET_SYSTEM_ASUS_P5BVM
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
+ ADK_TARGET_SYSTEM_QEMU_X86_64
default n
help
ATA PIIX driver.
@@ -310,8 +313,10 @@ config ADK_LINUX_KERNEL_PATA_IMX
select ADK_LINUX_KERNEL_AHCI_IMX
select ADK_LINUX_KERNEL_SATA_PMP
select ADK_LINUX_KERNEL_SATA_AHCI_PLATFORM
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
help
eSATA driver for IMX6 boards.
@@ -382,8 +387,6 @@ config ADK_LINUX_KERNEL_SCSI_AIC7XXX
select ADK_LINUX_KERNEL_SCSI_LOWLEVEL
select ADK_LINUX_KERNEL_BLK_DEV
select ADK_LINUX_KERNEL_BLK_DEV_SD
- default y if ADK_TARGET_SYSTEM_SGI_O2
- depends on ADK_TARGET_SYSTEM_SGI_O2
config ADK_LINUX_KERNEL_SCSI_SYM53C8XX_2
tristate "Symbios Logic 53C8XX2 support"
@@ -472,6 +475,8 @@ config ADK_LINUX_KERNEL_MMC_BCM2835_MMC
select ADK_LINUX_KERNEL_BLK_DEV_THROTTLING
select ADK_LINUX_KERNEL_MMC_SDHCI
select ADK_LINUX_KERNEL_MMC_SDHCI_PLTFM
+ select ADK_LINUX_KERNEL_MMC_SDHCI_IPROC
+ select ADK_LINUX_KERNEL_MMC_SDHCI_BRCMSTB if ADK_TARGET_SYSTEM_RASPBERRY_PI5
select ADK_LINUX_KERNEL_MMC_BCM2835_DMA
select ADK_LINUX_KERNEL_MMC_BCM2835_SDHOST
depends on ADK_TARGET_BOARD_BCM28XX
@@ -501,8 +506,10 @@ config ADK_LINUX_KERNEL_MMC_SDHCI_ESDHC_IMX
select ADK_LINUX_KERNEL_MMC_UNSAFE_RESUME
select ADK_LINUX_KERNEL_PWRSEQ_EMMC
select ADK_LINUX_KERNEL_PWRSEQ_SIMPLE
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
config ADK_LINUX_KERNEL_MMC_SUNXI
@@ -553,6 +560,56 @@ config ADK_LINUX_KERNEL_MMC_ATMELMCI
Atmel Multimedia Card Interface driver for AT32
and AT91 plattforms.
+config ADK_LINUX_KERNEL_MMC_DW_ROCKCHIP
+ bool "SD/MMC Driver (Rockchip)"
+ select ADK_LINUX_KERNEL_BLOCK
+ select ADK_LINUX_KERNEL_BLK_DEV
+ select ADK_LINUX_KERNEL_LBDAF
+ select ADK_LINUX_KERNEL_SCSI
+ select ADK_LINUX_KERNEL_SCSI_DMA
+ select ADK_LINUX_KERNEL_SCSI_MULTI_LUN
+ select ADK_LINUX_KERNEL_SCSI_CONSTANTS
+ select ADK_LINUX_KERNEL_SCSI_LOGGING
+ select ADK_LINUX_KERNEL_SCSI_SCAN_ASYNC
+ select ADK_LINUX_KERNEL_MMC
+ select ADK_LINUX_KERNEL_MMC_BLOCK
+ select ADK_LINUX_KERNEL_MMC_BLOCK_BOUNCE
+ select ADK_LINUX_KERNEL_MMC_SDHCI
+ select ADK_LINUX_KERNEL_MMC_SDHCI_IO_ACCESSORS
+ select ADK_LINUX_KERNEL_MMC_SDHCI_PLTFM
+ select ADK_LINUX_KERNEL_MMC_DW
+ select ADK_LINUX_KERNEL_MMC_DW_PLTFM
+ depends on ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ help
+ RockPI 4 Plus driver for MMC
+
+config ADK_LINUX_KERNEL_MMC_DW_STARFIVE
+ bool "SD/MMC Driver (Starfive)"
+ select ADK_LINUX_KERNEL_BLOCK
+ select ADK_LINUX_KERNEL_BLK_DEV
+ select ADK_LINUX_KERNEL_LBDAF
+ select ADK_LINUX_KERNEL_SCSI
+ select ADK_LINUX_KERNEL_SCSI_DMA
+ select ADK_LINUX_KERNEL_SCSI_MULTI_LUN
+ select ADK_LINUX_KERNEL_SCSI_CONSTANTS
+ select ADK_LINUX_KERNEL_SCSI_LOGGING
+ select ADK_LINUX_KERNEL_SCSI_SCAN_ASYNC
+ select ADK_LINUX_KERNEL_MMC
+ select ADK_LINUX_KERNEL_MMC_BLOCK
+ select ADK_LINUX_KERNEL_MMC_BLOCK_BOUNCE
+ select ADK_LINUX_KERNEL_MMC_SDHCI
+ select ADK_LINUX_KERNEL_MMC_SDHCI_IO_ACCESSORS
+ select ADK_LINUX_KERNEL_MMC_SDHCI_PLTFM
+ select ADK_LINUX_KERNEL_MMC_DW
+ select ADK_LINUX_KERNEL_MMC_DW_PLTFM
+ depends on ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2
+ default y if ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2
+ default n
+ help
+ Starfive Visionfive2 driver for MMC
+
endmenu
menu "Block driver support"
@@ -649,6 +706,33 @@ config ADK_LINUX_KERNEL_DM_MIRROR
Allow volume managers to mirror logical volumes, also
needed for live data migration tools such as 'pvmove'.
+config ADK_LINUX_KERNEL_DM_RAID
+ tristate "RAID 1/4/5/6/10 target"
+ depends on ADK_LINUX_KERNEL_BLK_DEV_DM
+ select ADK_LINUX_KERNEL_MD_RAID0
+ select ADK_LINUX_KERNEL_MD_RAID1
+ select ADK_LINUX_KERNEL_MD_RAID10
+ select ADK_LINUX_KERNEL_MD_RAID456
+ select ADK_LINUX_KERNEL_BLK_DEV_MD
+ ---help---
+ A dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mappings
+
+ A RAID-5 set of N drives with a capacity of C MB per drive provides
+ the capacity of C * (N - 1) MB, and protects against a failure
+ of a single drive. For a given sector (row) number, (N - 1) drives
+ contain data sectors, and one drive contains the parity protection.
+ For a RAID-4 set, the parity blocks are present on a single drive,
+ while a RAID-5 set distributes the parity across the drives in one
+ of the available parity distribution methods.
+
+ A RAID-6 set of N drives with a capacity of C MB per drive
+ provides the capacity of C * (N - 2) MB, and protects
+ against a failure of any two drives. For a given sector
+ (row) number, (N - 2) drives contain data sectors, and two
+ drives contains two independent redundancy syndromes. Like
+ RAID-5, RAID-6 distributes the syndromes across the drives
+ in one of the available parity distribution methods.
+
config ADK_LINUX_KERNEL_BLK_DEV_DRBD
tristate "DRBD support (Network RAID 1)"
select ADK_LINUX_KERNEL_BLOCK
diff --git a/target/linux/config/Config.in.bluetooth b/target/linux/config/Config.in.bluetooth
index 49f0a1202..44df845af 100644
--- a/target/linux/config/Config.in.bluetooth
+++ b/target/linux/config/Config.in.bluetooth
@@ -132,12 +132,18 @@ config ADK_LINUX_KERNEL_BT_HCIUART_3WIRE
depends on ADK_LINUX_KERNEL_BT_HCIUART
default n
+config ADK_LINUX_KERNEL_BT_HCIUART_SERDEV
+ bool
+ depends on ADK_LINUX_KERNEL_BT_HCIUART
+ default n
+
config ADK_LINUX_KERNEL_BT_HCIUART_BCM
- tristate "Broadcom protocol support"
- select ADK_LINUX_KERNEL_BT_HCIUART
+ bool "Broadcom protocol support"
+ select ADK_LINUX_KERNEL_BT_HCIUART_SERDEV
select ADK_LINUX_KERNEL_BT_HCIUART_3WIRE
select ADK_LINUX_KERNEL_BT_BCM
- depends on ADK_TARGET_SYSTEM_RASPBERRY_PI3 || ADK_TARGET_SYSTEM_RASPBERRY_PI3P
+ depends on ADK_TARGET_SYSTEM_RASPBERRY_PI3 || \
+ ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
help
The Broadcom protocol support enables Bluetooth HCI over serial
diff --git a/target/linux/config/Config.in.bus b/target/linux/config/Config.in.bus
index c826ef83a..45c79e1eb 100644
--- a/target/linux/config/Config.in.bus
+++ b/target/linux/config/Config.in.bus
@@ -6,7 +6,6 @@ config ADK_LINUX_KERNEL_PCI
select ADK_LINUX_KERNEL_PCI_QUIRKS
depends on ADK_TARGET_WITH_PCI \
|| ADK_TARGET_QEMU \
- || ADK_TARGET_VBOX \
|| ADK_TARGET_GENERIC
default n if ADK_TARGET_CPU_XTENSA_DE212
default n if ADK_TARGET_SYSTEM_GENERIC_NDS32
@@ -21,6 +20,8 @@ config ADK_LINUX_KERNEL_PCI_MSI
config ADK_LINUX_KERNEL_PCI_IMX6
bool
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
diff --git a/target/linux/config/Config.in.compression b/target/linux/config/Config.in.compression
index 2eeaab240..c2461ba80 100644
--- a/target/linux/config/Config.in.compression
+++ b/target/linux/config/Config.in.compression
@@ -4,9 +4,9 @@
config ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_NONE
bool
-config ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_XZ
+config ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_ZSTD
bool
- select ADK_HOST_NEED_XZ
+ select ADK_HOST_NEED_ZSTD
config ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_LZ4
bool
@@ -57,10 +57,10 @@ config ADK_LINUX_KERNEL_RD_LZO
config ADK_LINUX_KERNEL_KERNEL_LZO
bool
-config ADK_LINUX_KERNEL_RD_XZ
+config ADK_LINUX_KERNEL_RD_ZSTD
bool
-config ADK_LINUX_KERNEL_KERNEL_XZ
+config ADK_LINUX_KERNEL_KERNEL_ZSTD
bool
config ADK_LINUX_KERNEL_KERNEL_COMPRESS_NONE
@@ -73,14 +73,14 @@ config ADK_LINUX_KERNEL_INITRAMFS_SOURCE
choice
prompt "Kernel compression"
depends on ADK_TARGET_OS_LINUX && !ADK_APPLIANCE_TOOLCHAIN && !ADK_TARGET_CHOOSE_ARCH
-default ADK_LINUX_KERNEL_COMP_GZIP if ADK_TARGET_BOARD_BCM28XX
-default ADK_LINUX_KERNEL_COMP_XZ
-
-config ADK_LINUX_KERNEL_COMP_XZ
- bool "use XZ compression"
- select ADK_LINUX_KERNEL_RD_XZ
- select ADK_LINUX_KERNEL_KERNEL_XZ
- select ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_XZ
+default ADK_LINUX_KERNEL_COMP_ZSTD if ADK_TARGET_ARCH_OR1K
+default ADK_LINUX_KERNEL_COMP_GZIP
+
+config ADK_LINUX_KERNEL_COMP_ZSTD
+ bool "use Zstandard compression"
+ select ADK_LINUX_KERNEL_RD_ZSTD
+ select ADK_LINUX_KERNEL_KERNEL_ZSTD
+ select ADK_LINUX_KERNEL_INITRAMFS_COMPRESSION_ZSTD
depends on ADK_TARGET_KERNEL_WITH_COMPRESSION \
|| ADK_TARGET_GENERIC
diff --git a/target/linux/config/Config.in.cpu b/target/linux/config/Config.in.cpu
index 0f51164b9..5effd7bfd 100644
--- a/target/linux/config/Config.in.cpu
+++ b/target/linux/config/Config.in.cpu
@@ -50,8 +50,10 @@ config ADK_LINUX_KERNEL_CPUFREQ_DT
bool "CPU frequency support DT"
select ADK_LINUX_KERNEL_CPU_FREQ
select ADK_LINUX_KERNEL_CPUFREQ_DT_PLATDEV
- depends on ADK_TARGET_SYSTEM_ORANGE_PI0
+ depends on ADK_TARGET_SYSTEM_ORANGE_PI0 || \
+ ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default y if ADK_TARGET_SYSTEM_ORANGE_PI0
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
config ADK_LINUX_KERNEL_ARM_IMX6Q_CPUFREQ
@@ -61,8 +63,10 @@ config ADK_LINUX_KERNEL_ARM_IMX6Q_CPUFREQ
select ADK_LINUX_KERNEL_REGULATOR_FIXED_VOLTAGE
select ADK_LINUX_KERNEL_REGULATOR_ANATOP
select ADK_LINUX_KERNEL_REGULATOR_PFUZE100
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
config ADK_LINUX_KERNEL_ARM_BCM2835_CPUFREQ
diff --git a/target/linux/config/Config.in.crypto b/target/linux/config/Config.in.crypto
index c25c7dc51..949b98312 100644
--- a/target/linux/config/Config.in.crypto
+++ b/target/linux/config/Config.in.crypto
@@ -557,4 +557,61 @@ config ADK_LINUX_KERNEL_CRYPTO_CRC32C
Module will be crc32c.
endmenu
+
+menu "User-space interface"
+
+config ADK_LINUX_KERNEL_CRYPTO_USER_API
+ tristate
+
+config ADK_LINUX_KERNEL_CRYPTO_USER_API_HASH
+ tristate "User-space interface for hash algorithms"
+ depends on ADK_LINUX_KERNEL_NET
+ select ADK_LINUX_KERNEL_CRYPTO_HASH
+ select ADK_LINUX_KERNEL_CRYPTO_USER_API
+ help
+ This option enables the user-spaces interface for hash
+ algorithms.
+
+config ADK_LINUX_KERNEL_CRYPTO_USER_API_SKCIPHER
+ tristate "User-space interface for symmetric key cipher algorithms"
+ depends on ADK_LINUX_KERNEL_NET
+ select ADK_LINUX_KERNEL_CRYPTO_BLKCIPHER
+ select ADK_LINUX_KERNEL_CRYPTO_USER_API
+ help
+ This option enables the user-spaces interface for symmetric
+ key cipher algorithms.
+
+config ADK_LINUX_KERNEL_CRYPTO_USER_API_RNG
+ tristate "User-space interface for random number generator algorithms"
+ depends on ADK_LINUX_KERNEL_NET
+ select ADK_LINUX_KERNEL_CRYPTO_RNG
+ select ADK_LINUX_KERNEL_CRYPTO_USER_API
+ help
+ This option enables the user-spaces interface for random
+ number generator algorithms.
+
+config ADK_LINUX_KERNEL_CRYPTO_USER_API_AEAD
+ tristate "User-space interface for AEAD cipher algorithms"
+ depends on ADK_LINUX_KERNEL_NET
+ select ADK_LINUX_KERNEL_CRYPTO_AEAD
+ select ADK_LINUX_KERNEL_CRYPTO_BLKCIPHER
+ select ADK_LINUX_KERNEL_CRYPTO_NULL
+ select ADK_LINUX_KERNEL_CRYPTO_USER_API
+ help
+ This option enables the user-spaces interface for AEAD
+ cipher algorithms.
+
+config ADK_LINUX_KERNEL_CRYPTO_STATS
+ bool "Crypto usage statistics for User-space"
+ depends on ADK_LINUX_KERNEL_CRYPTO_USER
+ help
+ This option enables the gathering of crypto stats.
+ This will collect:
+ - encrypt/decrypt size and numbers of symmeric operations
+ - compress/decompress size and numbers of compress operations
+ - size and numbers of hash operations
+ - encrypt/decrypt/sign/verify numbers for asymmetric operations
+ - generate/seed numbers for rng operations
+
+endmenu
endmenu
diff --git a/target/linux/config/Config.in.dma b/target/linux/config/Config.in.dma
index 141d263fc..c570b546e 100644
--- a/target/linux/config/Config.in.dma
+++ b/target/linux/config/Config.in.dma
@@ -69,8 +69,10 @@ config ADK_LINUX_KERNEL_IMX_SDMA
select ADK_LINUX_KERNEL_FW_LOADER
select ADK_LINUX_KERNEL_FIRMWARE_IN_KERNEL
select ADK_LINUX_KERNEL_FW_LOADER_USER_HELPER
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
config ADK_LINUX_KERNEL_DMA_SUN6I
diff --git a/target/linux/config/Config.in.ethernet b/target/linux/config/Config.in.ethernet
index 264098da2..ec58b3069 100644
--- a/target/linux/config/Config.in.ethernet
+++ b/target/linux/config/Config.in.ethernet
@@ -9,7 +9,7 @@ config ADK_LINUX_KERNEL_NET_ETHERNET
bool
default y
-config ADK_LINUX_KERNEL_NET_CADENCE
+config ADK_LINUX_KERNEL_NET_VENDOR_CADENCE
bool
config ADK_LINUX_KERNEL_NET_VENDOR_ARC
@@ -21,6 +21,9 @@ config ADK_LINUX_KERNEL_NET_VENDOR_AMD
config ADK_LINUX_KERNEL_NET_VENDOR_ATHEROS
bool
+config ADK_LINUX_KERNEL_NET_VENDOR_BROADCOM
+ bool
+
config ADK_LINUX_KERNEL_NET_VENDOR_DEC
bool
@@ -115,6 +118,9 @@ config ADK_LINUX_KERNEL_DWMAC_GENERIC
config ADK_LINUX_KERNEL_DWMAC_SUNXI
bool
+config ADK_LINUX_KERNEL_DWMAC_ROCKCHIP
+ bool
+
config ADK_LINUX_KERNEL_STMMAC_PLATFORM
bool
@@ -152,12 +158,21 @@ config ADK_LINUX_KERNEL_AG71XX
help
Atheros AG71XX ethernet driver
+config ADK_LINUX_KERNEL_BCMGENET
+ tristate "Broadcom GENET internal MAC support"
+ select ADK_LINUX_KERNEL_NET_VENDOR_BROADCOM
+ depends on ADK_TARGET_SYSTEM_RASPBERRY_PI4 || \
+ ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI4 || \
+ ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
+ default n
+ help
+ Broadcom GENET internal MAC support
+
config ADK_LINUX_KERNEL_DE2104X
tristate "DE2104X ethernet driver"
select ADK_LINUX_KERNEL_NET_VENDOR_DEC
select ADK_LINUX_KERNEL_NET_TULIP
- depends on ADK_TARGET_SYSTEM_DEC_MULTIA
- default y if ADK_TARGET_SYSTEM_DEC_MULTIA
default n
help
DEC Tulip ethernet driver.
@@ -168,8 +183,10 @@ config ADK_LINUX_KERNEL_FEC
select ADK_LINUX_KERNEL_AT803X_PHY
depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208 || \
- ADK_TARGET_SYSTEM_KINETIS_K70
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ ADK_TARGET_SYSTEM_KINETIS_K70 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default y if ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208
default n
help
@@ -233,10 +250,10 @@ config ADK_LINUX_KERNEL_USB_LAN78XX
tristate "Microchip LAN78XX"
select ADK_LINUX_KERNEL_USB_NET_DRIVERS
select ADK_LINUX_KERNEL_USB_USBNET
- depends on ADK_TARGET_SYSTEM_RASPBERRY_PI3P \
- || ADK_TARGET_SYSTEM_RASPBERRY_PI3P_64
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3P
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3P_64
+ depends on ADK_TARGET_SYSTEM_RASPBERRY_PI3 \
+ || ADK_TARGET_SYSTEM_RASPBERRY_PI3_64
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64
default n
help
Microchip LAN78XX Based USB Ethernet Adapters.
@@ -246,22 +263,15 @@ config ADK_LINUX_KERNEL_SMC91X
select ADK_LINUX_KERNEL_NET_VENDOR_SMSC
select ADK_LINUX_KERNEL_GPIOLIB
depends on ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB || \
- ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE
+ ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE || \
+ ADK_TARGET_SYSTEM_HITACHI_EDOSK2674
default y if ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB
default y if ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE
+ default y if ADK_TARGET_SYSTEM_HITACHI_EDOSK2674
default n
help
SMC91X ethernet driver
-config ADK_LINUX_KERNEL_SGISEEQ
- tristate "SGISEEQ ethernet driver"
- select ADK_LINUX_KERNEL_NET_VENDOR_SEEQ
- depends on ADK_TARGET_SYSTEM_SGI_INDY
- default y if ADK_TARGET_SYSTEM_SGI_INDY
- default n
- help
- SGI ethernet driver
-
config ADK_LINUX_KERNEL_SMSC911X
tristate "SMC911X ethernet driver"
select ADK_LINUX_KERNEL_NET_VENDOR_SMSC
@@ -381,9 +391,7 @@ config ADK_LINUX_KERNEL_E1000
ADK_TARGET_SYSTEM_QEMU_ALPHA || \
ADK_TARGET_SYSTEM_QEMU_HPPA || \
ADK_TARGET_SYSTEM_QEMU_SPARC64 || \
- ADK_TARGET_VBOX || \
ADK_TARGET_GENERIC
- default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_TARGET_SYSTEM_QEMU_X86
default y if ADK_TARGET_SYSTEM_QEMU_X86_64
default y if ADK_TARGET_SYSTEM_QEMU_MIPS
@@ -394,7 +402,6 @@ config ADK_LINUX_KERNEL_E1000
default y if ADK_TARGET_SYSTEM_QEMU_ALPHA
default y if ADK_TARGET_SYSTEM_QEMU_HPPA
default y if ADK_TARGET_SYSTEM_QEMU_SPARC64
- default y if ADK_TARGET_VBOX
default n
help
Intel(R) PRO/1000 gigabit ethernet driver
@@ -405,9 +412,7 @@ config ADK_LINUX_KERNEL_E1000E
select ADK_LINUX_KERNEL_NETDEV_1000
select ADK_LINUX_KERNEL_FIRMWARE_IN_KERNEL
depends on ADK_TARGET_WITH_PCI || \
- ADK_TARGET_SYSTEM_LENOVO_X200 || \
ADK_TARGET_GENERIC
- default y if ADK_TARGET_SYSTEM_LENOVO_X200
default n
help
Intel(R) PRO/1000e gigabit ethernet driver
@@ -431,13 +436,15 @@ config ADK_LINUX_KERNEL_IBMVETH
IBM ethernet driver
config ADK_LINUX_KERNEL_MACB
- tristate "Atmel AT32/AT91 network driver"
- select ADK_LINUX_KERNEL_NET_CADENCE
+ tristate "Cadence MACB network driver"
+ select ADK_LINUX_KERNEL_NET_VENDOR_CADENCE
depends on ADK_TARGET_CPU_AVR32 \
+ || ADK_TARGET_SYSTEM_RASPBERRY_PI5 \
|| ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
default y if ADK_TARGET_SYSTEM_ATMEL_NGW100
default y if ADK_TARGET_SYSTEM_ATMEL_GRASSHOPPER
default y if ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5
default n
help
Ethernet Driver for Atmel AT32 and AT91 parts. This driver
@@ -496,30 +503,25 @@ config ADK_LINUX_KERNEL_STMMAC_ETH
select ADK_LINUX_KERNEL_STMMAC_PLATFORM
select ADK_LINUX_KERNEL_DWMAC_SUNXI if ADK_TARGET_SYSTEM_BANANA_PRO \
|| ADK_TARGET_SYSTEM_ORANGE_PI0
- select ADK_LINUX_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
- select ADK_LINUX_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
- select ADK_LINUX_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
+ select ADK_LINUX_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_QEMU_CSKY
select ADK_LINUX_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
select ADK_LINUX_KERNEL_MICREL_PHY if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
+ select ADK_LINUX_KERNEL_DWMAC_ROCKCHIP if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
depends on ADK_TARGET_SYSTEM_BANANA_PRO \
|| ADK_TARGET_SYSTEM_ORANGE_PI0 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 \
- || ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
+ || ADK_TARGET_SYSTEM_QEMU_CSKY \
+ || ADK_TARGET_SYSTEM_SYNOPSYS_HSDK \
+ || ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default y if ADK_TARGET_SYSTEM_BANANA_PRO
default y if ADK_TARGET_SYSTEM_ORANGE_PI0
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
+ default y if ADK_TARGET_SYSTEM_QEMU_CSKY
default y if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
config ADK_LINUX_KERNEL_SUNGEM
bool "SUN GEM ethernet driver"
select ADK_LINUX_KERNEL_NET_VENDOR_SUN
- depends on ADK_TARGET_SYSTEM_APPLE_MACMINI
- default y if ADK_TARGET_SYSTEM_APPLE_MACMINI
default n
config ADK_LINUX_KERNEL_ETHOC
@@ -544,21 +546,10 @@ config ADK_LINUX_KERNEL_ATL1
select ADK_LINUX_KERNEL_CRC32
depends on ADK_TARGET_WITH_PCI \
|| ADK_TARGET_GENERIC
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
default n
help
This driver supports the Atheros/Attansic L1 gigabit ethernet adapter.
-config ADK_LINUX_KERNEL_SGI_O2MACE_ETH
- tristate "SGI O2 ethernet driver"
- select ADK_LINUX_KERNEL_NET_VENDOR_SGI
- select ADK_LINUX_KERNEL_CRC32
- depends on ADK_TARGET_SYSTEM_SGI_O2
- default y if ADK_TARGET_SYSTEM_SGI_O2
- default n
- help
- This driver supports the SGI O2 ethernet card.
-
config ADK_LINUX_KERNEL_ALTERA_TSE
tristate "Altera TSE ethernet driver"
select ADK_LINUX_KERNEL_PHYLIB
diff --git a/target/linux/config/Config.in.fs b/target/linux/config/Config.in.fs
index d90c09911..1bed25ee6 100644
--- a/target/linux/config/Config.in.fs
+++ b/target/linux/config/Config.in.fs
@@ -96,6 +96,25 @@ config ADK_LINUX_KERNEL_EXT4_FS
help
Ext4 filesystem.
+config ADK_LINUX_KERNEL_BTRFS_FS
+ tristate "Btrfs filesystem support"
+ select ADK_LINUX_KERNEL_BLOCK
+ help
+ Btrfs is a general purpose copy-on-write filesystem with extents,
+ writable snapshotting, support for multiple devices and many more
+ features focused on fault tolerance, repair and easy administration.
+
+ The filesystem disk format is no longer unstable, and it's not
+ expected to change unless there are strong reasons to do so. If there
+ is a format change, file systems with a unchanged format will
+ continue to be mountable and usable by newer kernels.
+
+ For more information, please see the web pages at
+ http://btrfs.wiki.kernel.org.
+
+ To compile this file system support as a module, choose M here. The
+ module will be called btrfs.
+
config ADK_LINUX_KERNEL_HFSPLUS_FS
tristate "HFS+ filesystem support"
select ADK_LINUX_KERNEL_BLOCK
@@ -252,6 +271,12 @@ config ADK_LINUX_KERNEL_UBIFS_FS
help
UBIFS is a file system for flash devices which works on top of UBI.
+config ADK_LINUX_KERNEL_OVERLAY_FS
+ bool "Overlay filesystem support"
+ help
+ This enables the overlay filesystem which is present
+ in upstream kernels starting with version 3.18.
+
endmenu
diff --git a/target/linux/config/Config.in.fsopts b/target/linux/config/Config.in.fsopts
index d8afb57ce..ec2a5378f 100644
--- a/target/linux/config/Config.in.fsopts
+++ b/target/linux/config/Config.in.fsopts
@@ -9,4 +9,7 @@ config ADK_LINUX_KERNEL_INOTIFY_USER
config ADK_LINUX_KERNEL_DNOTIFY
bool "Enable DNOTIFY"
+config ADK_LINUX_KERNEL_FANOTIFY
+ bool "Enable FANOTIFY"
+
endmenu
diff --git a/target/linux/config/Config.in.gpio b/target/linux/config/Config.in.gpio
index de67272bc..6b1d51e4c 100644
--- a/target/linux/config/Config.in.gpio
+++ b/target/linux/config/Config.in.gpio
@@ -36,8 +36,10 @@ config ADK_LINUX_KERNEL_GPIO_MXC
select ADK_LINUX_KERNEL_GPIO_GENERIC
select ADK_LINUX_KERNEL_RESET_CONTROLLER
select ADK_LINUX_KERNEL_RESET_GPIO
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
config ADK_LINUX_KERNEL_ETRAX_GPIO
diff --git a/target/linux/config/Config.in.graphics b/target/linux/config/Config.in.graphics
index 7e56717b8..11e94db68 100644
--- a/target/linux/config/Config.in.graphics
+++ b/target/linux/config/Config.in.graphics
@@ -4,7 +4,6 @@
menu "Graphic devices support"
depends on ADK_TARGET_WITH_VGA \
|| ADK_TARGET_QEMU \
- || ADK_TARGET_VBOX \
|| ADK_TARGET_GENERIC
config ADK_LINUX_KERNEL_VT
@@ -40,6 +39,9 @@ config ADK_LINUX_KERNEL_FB
select ADK_LINUX_KERNEL_VT
select ADK_LINUX_KERNEL_VT_CONSOLE
+config ADK_LINUX_KERNEL_FB_DEVICE
+ bool
+
config ADK_LINUX_KERNEL_FB_SBUS
bool
@@ -164,12 +166,12 @@ config ADK_LINUX_KERNEL_FB_SM501
config ADK_LINUX_KERNEL_DRM
bool
-config ADK_LINUX_KERNEL_DRM_VC4
- bool
-
config ADK_LINUX_KERNEL_DRM_I915
bool
+config ADK_LINUX_KERNEL_DRM_V3D
+ tristate
+
config ADK_LINUX_KERNEL_DRM_KMS_HELPER
bool
@@ -211,8 +213,6 @@ config ADK_LINUX_KERNEL_FB_VESA
bool "Framebuffer support for VESA"
select ADK_LINUX_KERNEL_FB
select ADK_LINUX_KERNEL_FRAMEBUFFER_CONSOLE
- default y if ADK_TARGET_VBOX
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
default n
help
Generic VESA Framebuffer support.
@@ -221,7 +221,6 @@ config ADK_LINUX_KERNEL_FB_OF
bool "Framebuffer support for OpenFirmware"
select ADK_LINUX_KERNEL_FB
select ADK_LINUX_KERNEL_FRAMEBUFFER_CONSOLE
- default y if ADK_TARGET_SYSTEM_APPLE_MACMINI
default n
help
Generic OpenFirmware Framebuffer support.
@@ -243,11 +242,36 @@ config ADK_LINUX_KERNEL_DRM_ETNAVIV
select ADK_LINUX_KERNEL_VIDEO_CODA
select ADK_LINUX_KERNEL_FRAMEBUFFER_CONSOLE
select ADK_LINUX_KERNEL_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
help
Framebuffer support for Cubox-i/Hummingboard (Vivante)
+
+config ADK_LINUX_KERNEL_DRM_VC4
+ tristate "DRM support for VC4 GPU (Raspberry PI4/PI5)"
+ select ADK_LINUX_KERNEL_DRM
+ select ADK_LINUX_KERNEL_DRM_V3D
+ select ADK_LINUX_KERNEL_SND
+ select ADK_LINUX_KERNEL_SND_SOC
+ select ADK_LINUX_KERNEL_PM
+ select ADK_LINUX_KERNEL_COMMON_CLK
+ select ADK_LINUX_KERNEL_FB
+ select ADK_LINUX_KERNEL_FRAMEBUFFER_CONSOLE
+ select ADK_LINUX_KERNEL_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY
+ depends on ADK_TARGET_SYSTEM_RASPBERRY_PI4 || \
+ ADK_TARGET_SYSTEM_RASPBERRY_PI5 || \
+ ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
+ default m if ADK_TARGET_SYSTEM_RASPBERRY_PI4 || \
+ ADK_TARGET_SYSTEM_RASPBERRY_PI5 || \
+ ADK_TARGET_SYSTEM_RASPBERRY_PI4_64 && \
+ ADK_PACKAGE_KODI
+ default n
+ help
+ DRM support for VC4 GPU (Raspberry PI4/PI5)
+
config ADK_LINUX_KERNEL_FB_PXA
bool "Framebuffer support for PXA boards (Sharp Zaurus)"
@@ -290,6 +314,7 @@ config ADK_LINUX_KERNEL_FB_SM712
config ADK_LINUX_KERNEL_FB_BCM2708
bool "Framebuffer support for BCM28XX boards (Raspberry PI)"
select ADK_LINUX_KERNEL_FB
+ select ADK_LINUX_KERNEL_FB_DEVICE
select ADK_LINUX_KERNEL_FRAMEBUFFER_CONSOLE
select ADK_LINUX_KERNEL_FONT_8x16
default y if ADK_TARGET_BOARD_BCM28XX
@@ -299,14 +324,12 @@ config ADK_LINUX_KERNEL_FB_BCM2708
Framebuffer support for BCM28XX boards.
config ADK_LINUX_KERNEL_FB_CGSIX
- bool "Framebuffer support for CGSIX cards (Sun Voyager)"
+ bool "Framebuffer support for CGSIX cards"
select ADK_LINUX_KERNEL_FB
select ADK_LINUX_KERNEL_FB_SBUS
- default y if ADK_TARGET_SYSTEM_SUN_VOYAGER
default n
- depends on ADK_TARGET_SYSTEM_SUN_VOYAGER
help
- Framebuffer support for Sun Voyager.
+ Framebuffer support for Sun CGSIX cards.
config ADK_LINUX_KERNEL_FB_RADEON
bool "Framebuffer support for RADEON chips"
@@ -316,6 +339,19 @@ config ADK_LINUX_KERNEL_FB_RADEON
help
Framebuffer support for RADEON chips.
+config ADK_LINUX_KERNEL_DRM_ROCKCHIP
+ bool "Support for Rockchip graphic cards"
+ select ADK_LINUX_KERNEL_FB
+ select ADK_LINUX_KERNEL_DRM
+ select ADK_LINUX_KERNEL_FRAMEBUFFER_CONSOLE
+ select ADK_LINUX_KERNEL_DRM_KMS_HELPER
+ select ADK_LINUX_KERNEL_DRM_FBDEV_EMULATION
+ depends on ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ help
+ Support for Rockchip chipsets.
+
config ADK_LINUX_KERNEL_DRM_I915
bool "Support for Intel graphic cards"
select ADK_LINUX_KERNEL_FB
@@ -324,8 +360,6 @@ config ADK_LINUX_KERNEL_DRM_I915
select ADK_LINUX_KERNEL_FRAMEBUFFER_CONSOLE
select ADK_LINUX_KERNEL_DRM_KMS_HELPER
select ADK_LINUX_KERNEL_DRM_FBDEV_EMULATION
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LENOVO_X200
default n
help
Support for Intel chipsets.
diff --git a/target/linux/config/Config.in.i2c b/target/linux/config/Config.in.i2c
index b5d0304e2..2629135b1 100644
--- a/target/linux/config/Config.in.i2c
+++ b/target/linux/config/Config.in.i2c
@@ -28,6 +28,26 @@ config ADK_LINUX_KERNEL_I2C_GPIO
config ADK_LINUX_KERNEL_I2C_BCM2835
tristate
+config ADK_LINUX_KERNEL_I2C_DESIGNWARE_CORE
+ tristate
+
+config ADK_LINUX_KERNEL_I2C_DESIGNWARE_PLATFORM
+ tristate
+
+config ADK_LINUX_KERNEL_I2C_RK3X
+ tristate "I2C driver for Rockchip"
+ select ADK_LINUX_KERNEL_I2C
+ select ADK_LINUX_KERNEL_REGMAP
+ select ADK_LINUX_KERNEL_REGMAP_I2C
+ select ADK_LINUX_KERNEL_I2C_CHARDEV
+ select ADK_LINUX_KERNEL_I2C_DESIGNWARE_CORE
+ select ADK_LINUX_KERNEL_I2C_DESIGNWARE_PLATFORM
+ depends on ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ help
+ I2C driver for Synopsys DesignWare.
+
config ADK_LINUX_KERNEL_I2C_BCM2708
tristate "I2C driver for BCM28XX boards"
select ADK_LINUX_KERNEL_I2C
@@ -61,8 +81,10 @@ config ADK_LINUX_KERNEL_I2C_IMX
select ADK_LINUX_KERNEL_REGMAP
select ADK_LINUX_KERNEL_REGMAP_I2C
select ADK_LINUX_KERNEL_I2C_CHARDEV
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
help
I2C driver for IMX6 boards.
diff --git a/target/linux/config/Config.in.input b/target/linux/config/Config.in.input
index e11db2640..0d7800c92 100644
--- a/target/linux/config/Config.in.input
+++ b/target/linux/config/Config.in.input
@@ -6,8 +6,7 @@ depends on ADK_TARGET_WITH_USB \
|| ADK_TARGET_WITH_INPUT \
|| ADK_TARGET_WITH_TOUCHSCREEN \
|| ADK_TARGET_QEMU \
- || ADK_TARGET_GENERIC \
- || ADK_TARGET_VBOX
+ || ADK_TARGET_GENERIC
config ADK_LINUX_KERNEL_SERIO
bool
@@ -31,10 +30,7 @@ config ADK_LINUX_KERNEL_SERIO_I8042
config ADK_LINUX_KERNEL_INPUT
bool
- default y if ADK_TARGET_VBOX
default y if ADK_TARGET_SYSTEM_ARANYM_M68K
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LENOVO_X200
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
default y if ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
@@ -83,10 +79,7 @@ config ADK_LINUX_KERNEL_TOUCHSCREEN_ADS7846
config ADK_LINUX_KERNEL_INPUT_KEYBOARD
bool
- default y if ADK_TARGET_VBOX
default y if ADK_TARGET_SYSTEM_ARANYM_M68K
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LENOVO_X200
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
default y if ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
@@ -96,10 +89,7 @@ config ADK_LINUX_KERNEL_INPUT_KEYBOARD
config ADK_LINUX_KERNEL_INPUT_MOUSE
bool
- default y if ADK_TARGET_VBOX
default y if ADK_TARGET_SYSTEM_ARANYM_M68K
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LENOVO_X200
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
default y if ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
@@ -176,9 +166,7 @@ config ADK_LINUX_KERNEL_KEYBOARD_ATKBD
select ADK_LINUX_KERNEL_INPUT
select ADK_LINUX_KERNEL_INPUT_KEYBOARD
depends on !ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_VBOX
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
default n
@@ -188,9 +176,7 @@ config ADK_LINUX_KERNEL_MOUSE_PS2
select ADK_LINUX_KERNEL_INPUT_MOUSEDEV
select ADK_LINUX_KERNEL_INPUT_MOUSE
depends on !ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_VBOX
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
default n
diff --git a/target/linux/config/Config.in.kernel b/target/linux/config/Config.in.kernel
index 60f145cf9..e2b619926 100644
--- a/target/linux/config/Config.in.kernel
+++ b/target/linux/config/Config.in.kernel
@@ -5,6 +5,10 @@ config ADK_LINUX_KERNEL_EXPERIMENTAL
bool
default y
+config ADK_LINUX_KERNEL_MODULE_COMPRESS_NONE
+ bool
+ default y
+
config ADK_LINUX_KERNEL_STAGING
bool
@@ -23,6 +27,9 @@ config ADK_LINUX_KERNEL_CGROUPS
config ADK_LINUX_KERNEL_NAMESPACES
bool
+config ADK_LINUX_KERNEL_UTS_NS
+ bool
+
config ADK_LINUX_KERNEL_FHANDLE
bool
@@ -109,6 +116,7 @@ config ADK_LINUX_KERNEL_BINFMT_ELF
config ADK_LINUX_KERNEL_BINFMT_ELF_FDPIC
bool
default y if ADK_TARGET_BINFMT_FDPIC
+ default y if !ADK_TARGET_WITH_MMU && ADK_TARGET_BINFMT_ELF
config ADK_LINUX_KERNEL_BINFMT_FLAT
bool
@@ -138,6 +146,10 @@ config ADK_LINUX_KERNEL_KERNEL_MODE_NEON
bool
default y if ADK_TARGET_ARCH_ARM_WITH_NEON
+config ADK_LINUX_KERNEL_MIPS_FP_SUPPORT
+ bool
+ default y
+
config ADK_LINUX_KERNEL_PATCH_REALTIME
bool
@@ -235,11 +247,9 @@ config ADK_LINUX_KERNEL_HIGHMEM
bool "Enable high memory"
# produces broken kernel on bcm28xx
depends on !ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_TARGET_MODEL_CUBOX_I4PRO
default y if ADK_TARGET_MODEL_CUBOX_I2ULTRA
default y if ADK_TARGET_MODEL_CUBOX_I2EX
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
default y if ADK_TARGET_SYSTEM_PCENGINES_APU
default n
help
@@ -248,9 +258,83 @@ config ADK_LINUX_KERNEL_HIGHMEM
config ADK_LINUX_KERNEL_CC_OPTIMIZE_FOR_SIZE
bool "Optimize for size"
# does not boot in qemu-microblaze
- depends on !ADK_TARGET_ARCH_MICROBLAZE && !ADK_TARGET_ARCH_RISC64
+ depends on !ADK_TARGET_ARCH_MICROBLAZE && \
+ !ADK_TARGET_ARCH_RISC64 && \
+ !ADK_TARGET_ARCH_KVX
default y
+config ADK_LINUX_KERNEL_IKCONFIG
+ tristate
+
+config ADK_LINUX_KERNEL_IKCONFIG_PROC
+ bool "Enable access to .config through /proc/config.gz"
+ select ADK_LINUX_KERNEL_IKCONFIG
+ default n
+
+config ADK_LINUX_KERNEL_BSD_PROCESS_ACCT
+ bool "BSD Process Accounting"
+ default n
+
+config ADK_LINUX_KERNEL_NAMESPACES
+ bool
+ default n
+
+config ADK_LINUX_KERNEL_GENERIC_VDSO_TIME_NS
+ bool
+ default n
+
+config ADK_LINUX_KERNEL_USER_NS
+ bool "User namespace"
+ select ADK_LINUX_KERNEL_NAMESPACES
+ default n
+
+config ADK_LINUX_KERNEL_NET_NS
+ bool "Network namespace"
+ select ADK_LINUX_KERNEL_NAMESPACES
+ default n
+
+config ADK_LINUX_KERNEL_TIME_NS
+ bool "Network namespace"
+ select ADK_LINUX_KERNEL_NAMESPACES
+ select ADK_LINUX_KERNEL_GENERIC_VDSO_TIME_NS
+ default n
+
+config ADK_LINUX_KERNEL_BPF
+ bool
+ default n
+
+config ADK_LINUX_KERNEL_BPF_SYSCALL
+ bool "Enable bpf() syscall"
+ select ADK_LINUX_KERNEL_BPF
+ default n
+
+config ADK_LINUX_KERNEL_WATCH_QUEUE
+ bool "General notification queue"
+ default n
+
+config ADK_LINUX_KERNEL_MEMCG
+ bool
+ default n
+
+config ADK_LINUX_KERNEL_BLK_CGROUP
+ bool
+ default n
+
+config ADK_LINUX_KERNEL_CGROUP_SCHED
+ bool
+ default n
+
+config ADK_LINUX_KERNEL_CGROUP_PIDS
+ bool
+ default n
+
+config ADK_LINUX_KERNEL_CGROUPS
+ bool "Control group support"
+ select ADK_LINUX_KERNEL_MEMCG
+ select ADK_LINUX_KERNEL_BLK_CGROUP
+ select ADK_LINUX_KERNEL_CGROUP_SCHED
+ select ADK_LINUX_KERNEL_CGROUP_PIDS
+ default n
choice
prompt "Page size"
diff --git a/target/linux/config/Config.in.m68k b/target/linux/config/Config.in.m68k
new file mode 100644
index 000000000..0a8fec23e
--- /dev/null
+++ b/target/linux/config/Config.in.m68k
@@ -0,0 +1,14 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+config ADK_LINUX_KERNEL_M68020
+ bool
+ default y if ADK_TARGET_CPU_M68K_68020
+
+config ADK_LINUX_KERNEL_M68040
+ bool
+ default y if ADK_TARGET_CPU_M68K_68040
+
+config ADK_LINUX_KERNEL_M68KFPU_EMU
+ bool
+ default y if ADK_TARGET_CPU_M68K_68040
diff --git a/target/linux/config/Config.in.misc b/target/linux/config/Config.in.misc
index 96f592082..c3c958ca3 100644
--- a/target/linux/config/Config.in.misc
+++ b/target/linux/config/Config.in.misc
@@ -10,6 +10,9 @@ config ADK_LINUX_KERNEL_MFD_SYSCON
config ADK_LINUX_KERNEL_OF
bool
+config ADK_LINUX_KERNEL_COMMON_CLK
+ bool
+
config ADK_LINUX_KERNEL_FIRMWARE_IN_KERNEL
bool
default y if ADK_LINUX_KERNEL_R8169 && ADK_LINUX_KERNEL_ROOT_NFS
@@ -34,14 +37,18 @@ config ADK_LINUX_KERNEL_FIQ
config ADK_LINUX_KERNEL_FSL_OTP
bool
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
config ADK_LINUX_KERNEL_IMX_WEIM
bool
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
config ADK_LINUX_KERNEL_INTEL_IOMMU
@@ -76,8 +83,10 @@ config ADK_LINUX_KERNEL_PWM
config ADK_LINUX_KERNEL_PWM_IMX
bool
select ADK_LINUX_KERNEL_PWM
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
config ADK_LINUX_KERNEL_KEXEC
diff --git a/target/linux/config/Config.in.part b/target/linux/config/Config.in.part
index 16142a092..b87cbe6b7 100644
--- a/target/linux/config/Config.in.part
+++ b/target/linux/config/Config.in.part
@@ -11,4 +11,9 @@ config ADK_LINUX_KERNEL_MSDOS_PARTITION
bool "MSDOS partitions"
default y
+config ADK_LINUX_KERNEL_EFI_PARTITION
+ bool "EFI GUID Partition support"
+ help
+ Support hard disks partitioned using EFI GPT.
+
endmenu
diff --git a/target/linux/config/Config.in.pm b/target/linux/config/Config.in.pm
index 948508b23..5262537fb 100644
--- a/target/linux/config/Config.in.pm
+++ b/target/linux/config/Config.in.pm
@@ -3,12 +3,14 @@
config ADK_LINUX_KERNEL_PM
bool
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default y if ADK_TARGET_BOARD_BCM28XX
config ADK_LINUX_KERNEL_PM_RUNTIME
bool
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
config ADK_LINUX_KERNEL_ACPI
bool
@@ -47,13 +49,10 @@ config ADK_HARDWARE_ACPI
select ADK_LINUX_KERNEL_ACPI_BUTTON
select ADK_LINUX_KERNEL_ACPI_FAN
select ADK_LINUX_KERNEL_ACPI_DOCK
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LENOVO_X200
default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX
default y if ADK_TARGET_SYSTEM_PCENGINES_APU
default y if ADK_TARGET_SYSTEM_GENERIC_X86
default y if ADK_TARGET_SYSTEM_GENERIC_X86_64
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
default n
help
Enable ACPI support.
@@ -62,8 +61,6 @@ config ADK_LINUX_KERNEL_SUSPEND
bool "Enable Suspend-to-RAM support"
select ADK_LINUX_KERNEL_PM
select ADK_LINUX_KERNEL_PM_RUNTIME
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LENOVO_X200
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default n
help
@@ -75,8 +72,6 @@ config ADK_LINUX_KERNEL_HIBERNATION
select ADK_LINUX_KERNEL_PM_RUNTIME
select ADK_LINUX_KERNEL_SWAP
select BUSYBOX_SWAPONOFF
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LENOVO_X200
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default n
help
diff --git a/target/linux/config/Config.in.rtc b/target/linux/config/Config.in.rtc
index 289c1557a..cf6bddb9e 100644
--- a/target/linux/config/Config.in.rtc
+++ b/target/linux/config/Config.in.rtc
@@ -22,9 +22,11 @@ config ADK_LINUX_KERNEL_RTC_DRV_PCF8523
select ADK_LINUX_KERNEL_RTC_HCTOSYS
select ADK_LINUX_KERNEL_RTC_INTF_DEV
select ADK_LINUX_KERNEL_RTC_INTF_DEV_UIE_EMUL
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
help
PCF8523 RTC.
@@ -50,17 +52,26 @@ config ADK_LINUX_KERNEL_RTC_DRV_AT91SAM9
help
Fox G20 RTC support.
+config ADK_LINUX_KERNEL_RTC_DRV_RK808
+ bool "RTC support for Rockchip"
+ select ADK_LINUX_KERNEL_RTC_CLASS
+ select ADK_LINUX_KERNEL_RTC_HCTOSYS
+ select ADK_LINUX_KERNEL_RTC_INTF_DEV
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ depends on ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ help
+ Rockchip RTC support.
+
config ADK_LINUX_KERNEL_RTC_DRV_CMOS
bool "RTC support for PC CMOS"
select ADK_LINUX_KERNEL_RTC_CLASS
select ADK_LINUX_KERNEL_RTC_HCTOSYS
select ADK_LINUX_KERNEL_RTC_INTF_DEV
- default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
default n
- depends on (ADK_TARGET_MODEL_PCENGINES_ALIX1C || ADK_TARGET_SYSTEM_IBM_X40 || ADK_TARGET_SYSTEM_LEMOTE_YEELONG || ADK_TARGET_SYSTEM_ASUS_P5BVM)
+ depends on (ADK_TARGET_MODEL_PCENGINES_ALIX1C || ADK_TARGET_SYSTEM_LEMOTE_YEELONG)
help
PC CMOS RTC support.
diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial
index 5ca3fd630..ac35fb1e2 100644
--- a/target/linux/config/Config.in.serial
+++ b/target/linux/config/Config.in.serial
@@ -2,7 +2,7 @@
# material, please see the LICENCE file in the top-level directory.
menu "Serial devices support"
-depends on ADK_TARGET_WITH_SERIAL || ADK_TARGET_QEMU || ADK_TARGET_VBOX || ADK_TARGET_SIM || ADK_TARGET_GENERIC
+depends on ADK_TARGET_WITH_SERIAL || ADK_TARGET_QEMU || ADK_TARGET_SIM || ADK_TARGET_GENERIC
config ADK_LINUX_KERNEL_SERIAL_8250_DMA
bool
@@ -13,9 +13,18 @@ config ADK_LINUX_KERNEL_SERIAL_8250_DW
config ADK_LINUX_KERNEL_SERIAL_8250_CONSOLE
bool
+config ADK_LINUX_KERNEL_SERIAL_8250_PCI
+ bool
+
config ADK_LINUX_KERNEL_SERIAL_8250_PNP
bool
+config ADK_LINUX_KERNEL_SERIAL_8250_EXTENDED
+ bool
+
+config ADK_LINUX_KERNEL_SERIAL_8250_SHARE_IRQ
+ bool
+
config ADK_LINUX_KERNEL_SERIAL_ARC_CONSOLE
bool
@@ -76,6 +85,12 @@ config ADK_LINUX_KERNEL_SERIAL_BFIN_UART1
config ADK_LINUX_KERNEL_SERIAL_8250_INGENIC
bool
+config ADK_LINUX_KERNEL_SERIAL_MILKYMIST_CONSOLE
+ bool
+
+config ADK_LINUX_KERNEL_SERIAL_8250_BCM2835AUX
+ bool
+
config ADK_LINUX_KERNEL_SERIAL_BFIN
bool "BFIN serial driver"
select ADK_LINUX_KERNEL_SERIAL_BFIN_CONSOLE
@@ -87,11 +102,12 @@ config ADK_LINUX_KERNEL_SERIAL_BFIN
config ADK_LINUX_KERNEL_SERIAL_8250
bool "8250 serial driver"
select ADK_LINUX_KERNEL_SERIAL_8250_CONSOLE
+ select ADK_LINUX_KERNEL_SERIAL_OF_PLATFORM if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
+ select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
select ADK_LINUX_KERNEL_SERIAL_OF_PLATFORM if ADK_TARGET_SYSTEM_XILINX_KINTEX7 \
|| ADK_TARGET_SYSTEM_IMGTEC_CI20 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 \
+ || ADK_TARGET_SYSTEM_QEMU_ARC \
+ || ADK_TARGET_SYSTEM_QEMU_CSKY \
|| ADK_TARGET_SYSTEM_QEMU_XTENSA \
|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \
|| ADK_TARGET_SYSTEM_QEMU_NIOS2 \
@@ -101,13 +117,25 @@ config ADK_LINUX_KERNEL_SERIAL_8250
|| ADK_TARGET_SYSTEM_ANDES_AG101P \
|| ADK_TARGET_SYSTEM_ORANGE_PI0 \
|| ADK_TARGET_SYSTEM_SYNOPSYS_HSDK \
- || ADK_TARGET_SYSTEM_SOM_C6745
+ || ADK_TARGET_SYSTEM_SOM_C6745 \
+ || ADK_TARGET_SYSTEM_ROCKPI4_PLUS \
+ || ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2
select ADK_LINUX_KERNEL_SERIAL_8250_PNP if ADK_TARGET_SYSTEM_PCENGINES_APU
+ select ADK_LINUX_KERNEL_SERIAL_8250_PCI if ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ORANGE_PI0
select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
+ select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_QEMU_ARC
+ select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ select ADK_LINUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2
select ADK_LINUX_KERNEL_SERIAL_8250_DMA if ADK_TARGET_SYSTEM_ORANGE_PI0
select ADK_LINUX_KERNEL_SERIAL_8250_INGENIC if ADK_TARGET_SYSTEM_IMGTEC_CI20
+ select ADK_LINUX_KERNEL_SERIAL_8250_BCM2835AUX if ADK_TARGET_SYSTEM_RASPBERRY_PI4
+ select ADK_LINUX_KERNEL_SERIAL_8250_EXTENDED if ADK_TARGET_SYSTEM_RASPBERRY_PI4
+ select ADK_LINUX_KERNEL_SERIAL_8250_SHARE_IRQ if ADK_TARGET_SYSTEM_RASPBERRY_PI4
+ select ADK_LINUX_KERNEL_SERIAL_8250_BCM2835AUX if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
+ select ADK_LINUX_KERNEL_SERIAL_8250_EXTENDED if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
+ select ADK_LINUX_KERNEL_SERIAL_8250_SHARE_IRQ if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
depends on ADK_TARGET_SYSTEM_XILINX_KINTEX7 \
|| ADK_TARGET_SYSTEM_IMGTEC_CI20 \
|| ADK_TARGET_SYSTEM_LINKSYS_NSLU2 \
@@ -117,11 +145,9 @@ config ADK_LINUX_KERNEL_SERIAL_8250
|| ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \
|| ADK_TARGET_SYSTEM_QEMU_MIPS \
|| ADK_TARGET_SYSTEM_QEMU_MIPS64 \
- || ADK_TARGET_SYSTEM_SGI_O2 \
|| ADK_TARGET_SYSTEM_QEMU_ALPHA \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 \
+ || ADK_TARGET_SYSTEM_QEMU_ARC \
+ || ADK_TARGET_SYSTEM_QEMU_CSKY \
|| ADK_TARGET_SYSTEM_QEMU_HPPA \
|| ADK_TARGET_SYSTEM_QEMU_NIOS2 \
|| ADK_TARGET_SYSTEM_QEMU_OR1K \
@@ -132,7 +158,6 @@ config ADK_LINUX_KERNEL_SERIAL_8250
|| ADK_TARGET_SYSTEM_QEMU_X86 \
|| ADK_TARGET_SYSTEM_QEMU_X86_64 \
|| ADK_TARGET_SYSTEM_QEMU_XTENSA \
- || ADK_TARGET_SYSTEM_IBM_X40 \
|| ADK_TARGET_SYSTEM_GENERIC_NDS32 \
|| ADK_TARGET_SYSTEM_GENERIC_X86 \
|| ADK_TARGET_SYSTEM_GENERIC_X86_64 \
@@ -141,8 +166,12 @@ config ADK_LINUX_KERNEL_SERIAL_8250
|| ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG \
|| ADK_TARGET_SYSTEM_ORANGE_PI0 \
|| ADK_TARGET_SYSTEM_SYNOPSYS_HSDK \
- || ADK_TARGET_SYSTEM_DEC_MULTIA \
- || ADK_TARGET_SYSTEM_SOM_C6745
+ || ADK_TARGET_CPU_ARC_ARCHS \
+ || ADK_TARGET_SYSTEM_SOM_C6745 \
+ || ADK_TARGET_SYSTEM_RASPBERRY_PI4 \
+ || ADK_TARGET_SYSTEM_RASPBERRY_PI4_64 \
+ || ADK_TARGET_SYSTEM_ROCKPI4_PLUS \
+ || ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2
default y if ADK_TARGET_SYSTEM_XILINX_KINTEX7
default y if ADK_TARGET_SYSTEM_IMGTEC_CI20
default y if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
@@ -152,11 +181,9 @@ config ADK_LINUX_KERNEL_SERIAL_8250
default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605
default y if ADK_TARGET_SYSTEM_QEMU_MIPS
default y if ADK_TARGET_SYSTEM_QEMU_MIPS64
- default y if ADK_TARGET_SYSTEM_SGI_O2
default y if ADK_TARGET_SYSTEM_QEMU_ALPHA
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
+ default y if ADK_TARGET_SYSTEM_QEMU_ARC
+ default y if ADK_TARGET_SYSTEM_QEMU_CSKY
default y if ADK_TARGET_SYSTEM_QEMU_HPPA
default y if ADK_TARGET_SYSTEM_QEMU_NIOS2
default y if ADK_TARGET_SYSTEM_QEMU_OR1K
@@ -167,7 +194,6 @@ config ADK_LINUX_KERNEL_SERIAL_8250
default y if ADK_TARGET_SYSTEM_QEMU_X86
default y if ADK_TARGET_SYSTEM_QEMU_X86_64
default y if ADK_TARGET_SYSTEM_QEMU_XTENSA
- default y if ADK_TARGET_SYSTEM_IBM_X40
default y if ADK_TARGET_SYSTEM_GENERIC_NDS32
default y if ADK_TARGET_SYSTEM_GENERIC_X86
default y if ADK_TARGET_SYSTEM_GENERIC_X86_64
@@ -176,8 +202,12 @@ config ADK_LINUX_KERNEL_SERIAL_8250
default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
default y if ADK_TARGET_SYSTEM_ORANGE_PI0
default y if ADK_TARGET_SYSTEM_SYNOPSYS_HSDK
+ default y if ADK_TARGET_CPU_ARC_ARCHS
default y if ADK_TARGET_SYSTEM_SOM_C6745
- default y if ADK_TARGET_SYSTEM_DEC_MULTIA
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI4
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI4_64
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default y if ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2
default n
help
Serial driver for 8250 UART chip.
@@ -213,8 +243,8 @@ config ADK_LINUX_KERNEL_SERIAL_ETRAXFS
config ADK_LINUX_KERNEL_SERIAL_ARC
bool "ARC serial driver"
select ADK_LINUX_KERNEL_SERIAL_ARC_CONSOLE
- depends on ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
- default y if ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
+ depends on ADK_TARGET_SYSTEM_SYNOPSYS_NSIM && ADK_TARGET_CPU_ARC_ARC700
+ default y if ADK_TARGET_SYSTEM_SYNOPSYS_NSIM && ADK_TARGET_CPU_ARC_ARC700
default n
help
Serial driver for nSIM ARC simulator.
@@ -231,8 +261,10 @@ config ADK_LINUX_KERNEL_SERIAL_XILINX_PS_UART
config ADK_LINUX_KERNEL_SERIAL_IMX
bool "IMX serial driver"
select ADK_LINUX_KERNEL_SERIAL_IMX_CONSOLE
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
help
Serial driver for IMX6 chip.
@@ -247,8 +279,7 @@ config ADK_LINUX_KERNEL_SERIAL_AMBA_PL011
|| ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE \
|| ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB \
|| ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI2
+ default y if ADK_TARGET_BOARD_BCM28XX
default y if ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE
default y if ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB
default y if ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
@@ -314,15 +345,6 @@ config ADK_LINUX_KERNEL_SERIAL_UARTLITE
help
Serial driver for UART lite hardware.
-config ADK_LINUX_KERNEL_SERIAL_IP22_ZILOG
- bool "SGI IP22 (Indy) serial driver"
- select ADK_LINUX_KERNEL_SERIAL_IP22_ZILOG_CONSOLE
- depends on ADK_TARGET_SYSTEM_SGI_INDY
- default y if ADK_TARGET_SYSTEM_SGI_INDY
- default n
- help
- Serial driver for SGI Indy.
-
config ADK_LINUX_KERNEL_SERIAL_ATMEL
bool "AT32 serial driver"
select ADK_LINUX_KERNEL_SERIAL_ATMEL_CONSOLE
@@ -341,4 +363,13 @@ config ADK_LINUX_KERNEL_BOARD_GRASSHOPPER_USART0
help
Enable second USART on Grasshoper boards
+config ADK_LINUX_KERNEL_SERIAL_MILKYMIST
+ bool "Enable UART0 on Milkymist"
+ select ADK_LINUX_KERNEL_SERIAL_MILKYMIST_CONSOLE
+ depends on ADK_TARGET_SYSTEM_QEMU_LM32
+ default y if ADK_TARGET_SYSTEM_QEMU_LM32
+ default n
+ help
+ Enable second USART on Grasshoper boards
+
endmenu
diff --git a/target/linux/config/Config.in.spi b/target/linux/config/Config.in.spi
index ac548fded..622916b77 100644
--- a/target/linux/config/Config.in.spi
+++ b/target/linux/config/Config.in.spi
@@ -44,8 +44,10 @@ config ADK_LINUX_KERNEL_SPI_IMX
select ADK_LINUX_KERNEL_SPI_BITBANG
select ADK_LINUX_KERNEL_REGMAP
select ADK_LINUX_KERNEL_REGMAP_SPI
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
config ADK_LINUX_KERNEL_SPI_RB4XX
diff --git a/target/linux/config/Config.in.thermal b/target/linux/config/Config.in.thermal
index c79e5b42f..d7ed04c2d 100644
--- a/target/linux/config/Config.in.thermal
+++ b/target/linux/config/Config.in.thermal
@@ -19,8 +19,10 @@ config ADK_LINUX_KERNEL_IMX_THERMAL
select ADK_LINUX_KERNEL_MFD_SYSCON
select ADK_LINUX_KERNEL_OF
select ADK_LINUX_KERNEL_THERMAL_OF
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
endmenu
diff --git a/target/linux/config/Config.in.usb b/target/linux/config/Config.in.usb
index 7ed79b1d0..07e097bc1 100644
--- a/target/linux/config/Config.in.usb
+++ b/target/linux/config/Config.in.usb
@@ -7,6 +7,9 @@ depends on ADK_TARGET_WITH_USB \
|| ADK_TARGET_SYSTEM_QEMU_X86 \
|| ADK_TARGET_GENERIC
+config ADK_LINUX_KERNEL_USB_PCI
+ bool
+
config ADK_LINUX_KERNEL_USB_SUPPORT
bool
@@ -25,6 +28,9 @@ config ADK_LINUX_KERNEL_USB_EHCI_TT_NEWSCHED
config ADK_LINUX_KERNEL_USB_EHCI_MXC
bool
+config ADK_LINUX_KERNEL_USB_EHCI_HCD_PLATFORM
+ bool
+
config ADK_LINUX_KERNEL_USB_GADGET
tristate
@@ -34,9 +40,13 @@ config ADK_LINUX_KERNEL_USB_PHY
config ADK_LINUX_KERNEL_USB_MXS_PHY
tristate
select ADK_LINUX_KERNEL_USB_PHY
- default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
+config ADK_LINUX_KERNEL_USB_XHCI_PLATFORM
+ bool
+
config ADK_LINUX_KERNEL_USB_OHCI_HCD_PLATFORM
bool
select ADK_LINUX_KERNEL_USB_OHCI_HCD
@@ -44,6 +54,12 @@ config ADK_LINUX_KERNEL_USB_OHCI_HCD_PLATFORM
config ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI
bool
+config ADK_LINUX_KERNEL_USB_EHCI_HCD_PCI
+ bool
+
+config ADK_LINUX_KERNEL_USB_XHCI_PCI
+ bool
+
config ADK_LINUX_KERNEL_USB_LIBUSUAL
tristate
@@ -59,16 +75,16 @@ config ADK_LINUX_KERNEL_USB
select ADK_LINUX_KERNEL_NLS
select ADK_LINUX_KERNEL_USB_SUPPORT
select ADK_LINUX_KERNEL_USB_ANNOUNCE_NEW_DEVICES
- default m if ADK_TARGET_SYSTEM_ASUS_P5BVM
default m if ADK_TARGET_SYSTEM_PCENGINES_APU
default m if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default m if ADK_TARGET_SYSTEM_IBM_X40
- default m if ADK_TARGET_SYSTEM_LENOVO_X200
default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default m if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default y if ADK_TARGET_SYSTEM_KINETIS_K70
default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5
default n
help
Universal Serial Bus (USB) is a specification for a serial bus
@@ -101,23 +117,43 @@ config ADK_LINUX_KERNEL_USB
menu "USB controller support"
+config ADK_LINUX_KERNEL_USB_XHCI_HCD
+ tristate "Support for USB xHCI HCD (USB 3.0)"
+ depends on ADK_LINUX_KERNEL_USB
+ select ADK_LINUX_KERNEL_USB_PCI
+ select ADK_LINUX_KERNEL_USB_XHCI_PLATFORM
+ select ADK_LINUX_KERNEL_USB_XHCI_PCI
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5
+ default n
+ help
+ The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
+ "SuperSpeed" host controller hardware.
+
+ To compile this driver as a module, choose M here: the
+ module will be called xhci-hcd.
+
+
config ADK_LINUX_KERNEL_USB_EHCI_HCD
tristate "Support for USB EHCI 2.0 controllers"
- select ADK_LINUX_KERNEL_USB_MXS_PHY if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ select ADK_LINUX_KERNEL_USB_MXS_PHY if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
select ADK_LINUX_KERNEL_USB_EHCI_MXC if ADK_TARGET_SYSTEM_KINETIS_K70
select ADK_LINUX_KERNEL_USB_DEVICE_CLASS if ADK_TARGET_SYSTEM_KINETIS_K70
+ select ADK_LINUX_KERNEL_USB_EHCI_HCD_PLATFORM if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ select ADK_LINUX_KERNEL_USB_EHCI_HCD_PCI if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
depends on !ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
depends on !ADK_TARGET_BOARD_BCM28XX
depends on ADK_LINUX_KERNEL_USB
- default m if ADK_TARGET_SYSTEM_ASUS_P5BVM
default m if ADK_TARGET_SYSTEM_PCENGINES_APU
default m if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default m if ADK_TARGET_SYSTEM_IBM_X40
- default m if ADK_TARGET_SYSTEM_LENOVO_X200
default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default y if ADK_TARGET_SYSTEM_KINETIS_K70
default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5
default n
help
The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
@@ -143,11 +179,8 @@ config ADK_LINUX_KERNEL_USB_UHCI_HCD
depends on ADK_LINUX_KERNEL_USB
depends on !ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
depends on !ADK_TARGET_BOARD_BCM28XX
- default m if ADK_TARGET_SYSTEM_ASUS_P5BVM
default m if ADK_TARGET_SYSTEM_PCENGINES_APU
default m if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default m if ADK_TARGET_SYSTEM_IBM_X40
- default m if ADK_TARGET_SYSTEM_LENOVO_X200
default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
default n
help
@@ -166,13 +199,12 @@ config ADK_LINUX_KERNEL_USB_OHCI_HCD
depends on !ADK_TARGET_BOARD_BCM28XX
select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_PCENGINES_ALIX
select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_PCENGINES_APU
- select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_ASUS_P5BVM
- select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_APPLE_MACMINI
- default m if ADK_TARGET_SYSTEM_ASUS_P5BVM
+ select ADK_LINUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default m if ADK_TARGET_SYSTEM_PCENGINES_APU
default m if ADK_TARGET_SYSTEM_PCENGINES_ALIX
default m if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
help
The Open Host Controller Interface (OHCI) is a standard for accessing
@@ -207,8 +239,10 @@ config ADK_LINUX_KERNEL_USB_CHIPIDEA
select ADK_LINUX_KERNEL_USB_CHIPIDEA_HOST
select ADK_LINUX_KERNEL_USB_GADGET
depends on ADK_LINUX_KERNEL_USB_EHCI_HCD
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
config ADK_LINUX_KERNEL_USB_ISP116X_HCD
diff --git a/target/linux/config/Config.in.watchdog b/target/linux/config/Config.in.watchdog
index 501964f9f..59c60d94f 100644
--- a/target/linux/config/Config.in.watchdog
+++ b/target/linux/config/Config.in.watchdog
@@ -27,8 +27,10 @@ config ADK_LINUX_KERNEL_BCM2835_WDT
config ADK_LINUX_KERNEL_IMX2_WDT
bool "Hardware Watchdog for IMX6 boards"
select ADK_LINUX_KERNEL_WATCHDOG
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
+ default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
+ ADK_TARGET_SYSTEM_PHYTEC_IMX6
default n
help
Watchdog driver for IMX6 boards.
@@ -92,6 +94,15 @@ config ADK_LINUX_KERNEL_SUNXI_WATCHDOG
help
Support for SunXi hardware watchdog.
+config ADK_LINUX_KERNEL_DW_WATCHDOG
+ bool "Synopsys DesignWare watchdog"
+ depends on ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ select ADK_LINUX_KERNEL_WATCHDOG
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
+ default n
+ help
+ Support for Synopsys DesignWare hardware watchdog.
+
config ADK_LINUX_KERNEL_SOFT_WATCHDOG
tristate "Software watchdog"
select ADK_LINUX_KERNEL_WATCHDOG
diff --git a/target/linux/config/Config.in.wireless b/target/linux/config/Config.in.wireless
index ecc855b50..222efa3bb 100644
--- a/target/linux/config/Config.in.wireless
+++ b/target/linux/config/Config.in.wireless
@@ -39,6 +39,9 @@ config ADK_LINUX_KERNEL_NET_VENDOR_ATHEROS
config ADK_LINUX_KERNEL_WLAN_VENDOR_BROADCOM
bool
+config ADK_LINUX_KERNEL_WLAN_VENDOR_RALINK
+ bool
+
config ADK_LINUX_KERNEL_ATH_CARDS
bool
@@ -146,15 +149,22 @@ config ADK_LINUX_KERNEL_BRCMFMAC
select ADK_LINUX_KERNEL_WLAN_VENDOR_BROADCOM
select ADK_LINUX_KERNEL_BRCMDBG
select ADK_PACKAGE_BRCMFMAC_FIRMWARE
+ default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default m if ADK_TARGET_SYSTEM_BANANA_P2_ZERO
+ default m if ADK_TARGET_SYSTEM_ROCKPI4_ZERO
+ default m if ADK_TARGET_SYSTEM_RASPBERRY_PI5
+ default n
config ADK_LINUX_KERNEL_BRCMFMAC_SDIO
bool "Broadcom brcmfmac wireless driver (SDIO)"
- select ADK_LINUX_KERNEL_BRCMFMAC
depends on ADK_TARGET_WITH_SDIO
default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
+ default y if ADK_TARGET_SYSTEM_PHYTEC_IMX6
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI0
default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3P
+ default y if ADK_TARGET_SYSTEM_RASPBERRY_PI5
+ default y if ADK_TARGET_SYSTEM_BANANA_P2_ZERO
+ default y if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
default n
help
Driver for Broadcom FullMac wireless cards (SDIO).
@@ -190,7 +200,6 @@ config ADK_LINUX_KERNEL_ATH5K
|| ADK_TARGET_WITH_PCI \
|| ADK_TARGET_WITH_AHB \
|| ADK_TARGET_GENERIC
- default m if ADK_TARGET_SYSTEM_IBM_X40
default m if ADK_TARGET_SYSTEM_FON_FON2100
default n
help
@@ -272,6 +281,7 @@ config ADK_LINUX_KERNEL_P54_USB
config ADK_LINUX_KERNEL_RT2800USB
tristate "Ralink rt2800 USB driver"
+ select ADK_LINUX_KERNEL_WLAN_VENDOR_RALINK
select ADK_LINUX_KERNEL_RT2X00
select ADK_LINUX_KERNEL_RT2800USB_RT3573
select ADK_LINUX_KERNEL_RT2800USB_RT53XX
@@ -290,12 +300,23 @@ config ADK_LINUX_KERNEL_RTL8192CU
select ADK_LINUX_KERNEL_RTL_CARDS
select ADK_LINUX_KERNEL_MAC80211
select ADK_LINUX_KERNEL_FW_LOADER
- select ADK_PACKAGE_REALTEK_FIRMWARE
+ select ADK_PACKAGE_REALTEK_FIRMWARE_WIRELESS
depends on ADK_TARGET_WITH_USB \
|| ADK_TARGET_GENERIC
help
Driver for Realtek RTL8192CU USB
+config ADK_LINUX_KERNEL_R8188EU
+ tristate "Realtek RTL8188EU USB driver"
+ select ADK_LINUX_KERNEL_RTL_CARDS
+ select ADK_LINUX_KERNEL_MAC80211
+ select ADK_LINUX_KERNEL_FW_LOADER
+ select ADK_PACKAGE_REALTEK_FIRMWARE_WIRELESS
+ depends on ADK_TARGET_WITH_USB \
+ || ADK_TARGET_GENERIC
+ help
+ Driver for Realtek RTL8188EU USB
+
config ADK_LINUX_KERNEL_RT2400PCI
tristate "Ralink rt2400 PCI driver"
select ADK_LINUX_KERNEL_RT2X00
diff --git a/target/linux/patches/3.10-nds32/futex.patch b/target/linux/patches/3.10-nds32/futex.patch
new file mode 100644
index 000000000..f45e04293
--- /dev/null
+++ b/target/linux/patches/3.10-nds32/futex.patch
@@ -0,0 +1,40 @@
+diff -Nur linux-3.10-nds32.orig/arch/nds32/include/asm/futex.h linux-3.10-nds32/arch/nds32/include/asm/futex.h
+--- linux-3.10-nds32.orig/arch/nds32/include/asm/futex.h 2017-07-31 07:41:18.000000000 +0200
++++ linux-3.10-nds32/arch/nds32/include/asm/futex.h 2019-10-15 22:59:44.514997184 +0200
+@@ -24,10 +24,10 @@
+ #define __futex_atomic_op(insn, ret, oldval, tmp, uaddr, oparg) \
+ smp_mb(); \
+ asm volatile( \
+- " movi $r15, #0\n" \
+- "1: llw %1, [%2+$r15]\n" \
++ " movi $ta, #0\n" \
++ "1: llw %1, [%2+$ta]\n" \
+ " " insn "\n" \
+- "2: scw %0, [%2+$r15]\n" \
++ "2: scw %0, [%2+$ta]\n" \
+ " beqz %0, 1b\n" \
+ " movi %0, #0\n" \
+ "3:\n" \
+@@ -47,18 +47,18 @@
+
+ smp_mb();
+ asm volatile(
+- " movi $r15, #0\n"
+- "1: llw %1, [%6 + $r15]\n"
++ " movi $ta, #0\n"
++ "1: llw %1, [%6 + $ta]\n"
+ " sub %3, %1, %4\n"
+ " cmovz %2, %5, %3\n"
+ " cmovn %2, %1, %3\n"
+- "2: scw %2, [%6 + $r15]\n"
++ "2: scw %2, [%6 + $ta]\n"
+ " beqz %2, 1b\n"
+ "3:\n "
+ __futex_atomic_ex_table("%7")
+ : "+&r" (ret), "=&r" (val), "=&r" (tmp), "=&r" (flags)
+ : "r" (oldval), "r" (newval), "r" (uaddr), "i" (-EFAULT)
+- : "$r15", "memory");
++ : "$ta", "memory");
+ smp_mb();
+
+ *uval = val;
diff --git a/target/linux/patches/3.10.107/headers-install.patch b/target/linux/patches/3.10.107/headers-install.patch
deleted file mode 100644
index 46dc9fe13..000000000
--- a/target/linux/patches/3.10.107/headers-install.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Nur linux-3.10.37.orig/scripts/Makefile.headersinst linux-3.10.37/scripts/Makefile.headersinst
---- linux-3.10.37.orig/scripts/Makefile.headersinst 2014-04-14 15:42:31.000000000 +0200
-+++ linux-3.10.37/scripts/Makefile.headersinst 2014-04-24 17:04:51.980248954 +0200
-@@ -107,7 +107,6 @@
-
- targets += $(install-file)
- $(install-file): scripts/headers_install.sh $(input-files1) $(input-files2) $(input-files3) FORCE
-- $(if $(unwanted),$(call cmd,remove),)
- $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@)))
- $(call if_changed,install)
-
diff --git a/target/linux/patches/3.10.107/startup.patch b/target/linux/patches/3.10.107/startup.patch
deleted file mode 100644
index 3ebc5db1e..000000000
--- a/target/linux/patches/3.10.107/startup.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -Nur linux-3.10.33.orig/init/initramfs.c linux-3.10.33/init/initramfs.c
---- linux-3.10.33.orig/init/initramfs.c 2014-03-07 06:58:45.000000000 +0100
-+++ linux-3.10.33/init/initramfs.c 2014-03-15 18:32:07.240436750 +0100
-@@ -622,6 +622,9 @@
- */
- load_default_modules();
- }
-+#ifdef CONFIG_DEVTMPFS_MOUNT
-+ devtmpfs_mount("dev");
-+#endif
- return 0;
- }
- rootfs_initcall(populate_rootfs);
-diff -Nur linux-3.10.33.orig/init/main.c linux-3.10.33/init/main.c
---- linux-3.10.33.orig/init/main.c 2014-03-07 06:58:45.000000000 +0100
-+++ linux-3.10.33/init/main.c 2014-03-15 18:32:07.240436750 +0100
-@@ -885,6 +885,8 @@
- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
- pr_err("Warning: unable to open an initial console.\n");
-
-+ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
-+
- (void) sys_dup(0);
- (void) sys_dup(0);
- /*
-@@ -893,7 +895,7 @@
- */
-
- if (!ramdisk_execute_command)
-- ramdisk_execute_command = "/init";
-+ ramdisk_execute_command = "/sbin/init";
-
- if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
- ramdisk_execute_command = NULL;
diff --git a/target/linux/patches/3.16.56/bsd-compatibility.patch b/target/linux/patches/3.16.56/bsd-compatibility.patch
deleted file mode 100644
index b954b658f..000000000
--- a/target/linux/patches/3.16.56/bsd-compatibility.patch
+++ /dev/null
@@ -1,2538 +0,0 @@
-diff -Nur linux-3.11.5.orig/scripts/Makefile.lib linux-3.11.5/scripts/Makefile.lib
---- linux-3.11.5.orig/scripts/Makefile.lib 2013-10-14 03:14:45.000000000 +0200
-+++ linux-3.11.5/scripts/Makefile.lib 2013-10-16 18:09:31.000000000 +0200
-@@ -281,7 +281,12 @@
- size_append = printf $(shell \
- dec_size=0; \
- for F in $1; do \
-- fsize=$$(stat -c "%s" $$F); \
-+ if stat -qs .>/dev/null 2>&1; then \
-+ statcmd='stat -f %z'; \
-+ else \
-+ statcmd='stat -c %s'; \
-+ fi; \
-+ fsize=$$($$statcmd $$F); \
- dec_size=$$(expr $$dec_size + $$fsize); \
- done; \
- printf "%08x\n" $$dec_size | \
-diff -Nur linux-3.11.5.orig/scripts/mod/mk_elfconfig.c linux-3.11.5/scripts/mod/mk_elfconfig.c
---- linux-3.11.5.orig/scripts/mod/mk_elfconfig.c 2013-10-14 03:14:45.000000000 +0200
-+++ linux-3.11.5/scripts/mod/mk_elfconfig.c 2013-10-16 18:09:31.000000000 +0200
-@@ -1,7 +1,18 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
--#include <elf.h>
-+
-+#define EI_NIDENT (16)
-+#define ELFMAG "\177ELF"
-+
-+#define SELFMAG 4
-+#define EI_CLASS 4
-+#define ELFCLASS32 1 /* 32-bit objects */
-+#define ELFCLASS64 2 /* 64-bit objects */
-+
-+#define EI_DATA 5 /* Data encoding byte index */
-+#define ELFDATA2LSB 1 /* 2's complement, little endian */
-+#define ELFDATA2MSB 2 /* 2's complement, big endian */
-
- int
- main(int argc, char **argv)
-diff -Nur linux-3.11.5.orig/scripts/mod/modpost.h linux-3.11.5/scripts/mod/modpost.h
---- linux-3.11.5.orig/scripts/mod/modpost.h 2013-10-14 03:14:45.000000000 +0200
-+++ linux-3.11.5/scripts/mod/modpost.h 2013-10-16 18:09:31.000000000 +0200
-@@ -7,7 +7,2453 @@
- #include <sys/mman.h>
- #include <fcntl.h>
- #include <unistd.h>
--#include <elf.h>
-+
-+
-+/* This file defines standard ELF types, structures, and macros.
-+ Copyright (C) 1995-1999,2000,2001,2002,2003 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library 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
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#ifndef _ELF_H
-+#define _ELF_H 1
-+
-+__BEGIN_DECLS
-+
-+/* Standard ELF types. */
-+
-+#include <stdint.h>
-+
-+/* Type for a 16-bit quantity. */
-+typedef uint16_t Elf32_Half;
-+typedef uint16_t Elf64_Half;
-+
-+/* Types for signed and unsigned 32-bit quantities. */
-+typedef uint32_t Elf32_Word;
-+typedef int32_t Elf32_Sword;
-+typedef uint32_t Elf64_Word;
-+typedef int32_t Elf64_Sword;
-+
-+/* Types for signed and unsigned 64-bit quantities. */
-+typedef uint64_t Elf32_Xword;
-+typedef int64_t Elf32_Sxword;
-+typedef uint64_t Elf64_Xword;
-+typedef int64_t Elf64_Sxword;
-+
-+/* Type of addresses. */
-+typedef uint32_t Elf32_Addr;
-+typedef uint64_t Elf64_Addr;
-+
-+/* Type of file offsets. */
-+typedef uint32_t Elf32_Off;
-+typedef uint64_t Elf64_Off;
-+
-+/* Type for section indices, which are 16-bit quantities. */
-+typedef uint16_t Elf32_Section;
-+typedef uint16_t Elf64_Section;
-+
-+/* Type for version symbol information. */
-+typedef Elf32_Half Elf32_Versym;
-+typedef Elf64_Half Elf64_Versym;
-+
-+
-+/* The ELF file header. This appears at the start of every ELF file. */
-+
-+#define EI_NIDENT (16)
-+
-+typedef struct
-+{
-+ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
-+ Elf32_Half e_type; /* Object file type */
-+ Elf32_Half e_machine; /* Architecture */
-+ Elf32_Word e_version; /* Object file version */
-+ Elf32_Addr e_entry; /* Entry point virtual address */
-+ Elf32_Off e_phoff; /* Program header table file offset */
-+ Elf32_Off e_shoff; /* Section header table file offset */
-+ Elf32_Word e_flags; /* Processor-specific flags */
-+ Elf32_Half e_ehsize; /* ELF header size in bytes */
-+ Elf32_Half e_phentsize; /* Program header table entry size */
-+ Elf32_Half e_phnum; /* Program header table entry count */
-+ Elf32_Half e_shentsize; /* Section header table entry size */
-+ Elf32_Half e_shnum; /* Section header table entry count */
-+ Elf32_Half e_shstrndx; /* Section header string table index */
-+} Elf32_Ehdr;
-+
-+typedef struct
-+{
-+ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
-+ Elf64_Half e_type; /* Object file type */
-+ Elf64_Half e_machine; /* Architecture */
-+ Elf64_Word e_version; /* Object file version */
-+ Elf64_Addr e_entry; /* Entry point virtual address */
-+ Elf64_Off e_phoff; /* Program header table file offset */
-+ Elf64_Off e_shoff; /* Section header table file offset */
-+ Elf64_Word e_flags; /* Processor-specific flags */
-+ Elf64_Half e_ehsize; /* ELF header size in bytes */
-+ Elf64_Half e_phentsize; /* Program header table entry size */
-+ Elf64_Half e_phnum; /* Program header table entry count */
-+ Elf64_Half e_shentsize; /* Section header table entry size */
-+ Elf64_Half e_shnum; /* Section header table entry count */
-+ Elf64_Half e_shstrndx; /* Section header string table index */
-+} Elf64_Ehdr;
-+
-+/* Fields in the e_ident array. The EI_* macros are indices into the
-+ array. The macros under each EI_* macro are the values the byte
-+ may have. */
-+
-+#define EI_MAG0 0 /* File identification byte 0 index */
-+#define ELFMAG0 0x7f /* Magic number byte 0 */
-+
-+#define EI_MAG1 1 /* File identification byte 1 index */
-+#define ELFMAG1 'E' /* Magic number byte 1 */
-+
-+#define EI_MAG2 2 /* File identification byte 2 index */
-+#define ELFMAG2 'L' /* Magic number byte 2 */
-+
-+#define EI_MAG3 3 /* File identification byte 3 index */
-+#define ELFMAG3 'F' /* Magic number byte 3 */
-+
-+/* Conglomeration of the identification bytes, for easy testing as a word. */
-+#define ELFMAG "\177ELF"
-+#define SELFMAG 4
-+
-+#define EI_CLASS 4 /* File class byte index */
-+#define ELFCLASSNONE 0 /* Invalid class */
-+#define ELFCLASS32 1 /* 32-bit objects */
-+#define ELFCLASS64 2 /* 64-bit objects */
-+#define ELFCLASSNUM 3
-+
-+#define EI_DATA 5 /* Data encoding byte index */
-+#define ELFDATANONE 0 /* Invalid data encoding */
-+#define ELFDATA2LSB 1 /* 2's complement, little endian */
-+#define ELFDATA2MSB 2 /* 2's complement, big endian */
-+#define ELFDATANUM 3
-+
-+#define EI_VERSION 6 /* File version byte index */
-+ /* Value must be EV_CURRENT */
-+
-+#define EI_OSABI 7 /* OS ABI identification */
-+#define ELFOSABI_NONE 0 /* UNIX System V ABI */
-+#define ELFOSABI_SYSV 0 /* Alias. */
-+#define ELFOSABI_HPUX 1 /* HP-UX */
-+#define ELFOSABI_NETBSD 2 /* NetBSD. */
-+#define ELFOSABI_LINUX 3 /* Linux. */
-+#define ELFOSABI_SOLARIS 6 /* Sun Solaris. */
-+#define ELFOSABI_AIX 7 /* IBM AIX. */
-+#define ELFOSABI_IRIX 8 /* SGI Irix. */
-+#define ELFOSABI_FREEBSD 9 /* FreeBSD. */
-+#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */
-+#define ELFOSABI_MODESTO 11 /* Novell Modesto. */
-+#define ELFOSABI_OPENBSD 12 /* OpenBSD. */
-+#define ELFOSABI_ARM 97 /* ARM */
-+#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */
-+
-+#define EI_ABIVERSION 8 /* ABI version */
-+
-+#define EI_PAD 9 /* Byte index of padding bytes */
-+
-+/* Legal values for e_type (object file type). */
-+
-+#define ET_NONE 0 /* No file type */
-+#define ET_REL 1 /* Relocatable file */
-+#define ET_EXEC 2 /* Executable file */
-+#define ET_DYN 3 /* Shared object file */
-+#define ET_CORE 4 /* Core file */
-+#define ET_NUM 5 /* Number of defined types */
-+#define ET_LOOS 0xfe00 /* OS-specific range start */
-+#define ET_HIOS 0xfeff /* OS-specific range end */
-+#define ET_LOPROC 0xff00 /* Processor-specific range start */
-+#define ET_HIPROC 0xffff /* Processor-specific range end */
-+
-+/* Legal values for e_machine (architecture). */
-+
-+#define EM_NONE 0 /* No machine */
-+#define EM_M32 1 /* AT&T WE 32100 */
-+#define EM_SPARC 2 /* SUN SPARC */
-+#define EM_386 3 /* Intel 80386 */
-+#define EM_68K 4 /* Motorola m68k family */
-+#define EM_88K 5 /* Motorola m88k family */
-+#define EM_860 7 /* Intel 80860 */
-+#define EM_MIPS 8 /* MIPS R3000 big-endian */
-+#define EM_S370 9 /* IBM System/370 */
-+#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */
-+
-+#define EM_PARISC 15 /* HPPA */
-+#define EM_VPP500 17 /* Fujitsu VPP500 */
-+#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */
-+#define EM_960 19 /* Intel 80960 */
-+#define EM_PPC 20 /* PowerPC */
-+#define EM_PPC64 21 /* PowerPC 64-bit */
-+#define EM_S390 22 /* IBM S390 */
-+
-+#define EM_V800 36 /* NEC V800 series */
-+#define EM_FR20 37 /* Fujitsu FR20 */
-+#define EM_RH32 38 /* TRW RH-32 */
-+#define EM_RCE 39 /* Motorola RCE */
-+#define EM_ARM 40 /* ARM */
-+#define EM_FAKE_ALPHA 41 /* Digital Alpha */
-+#define EM_SH 42 /* Hitachi SH */
-+#define EM_SPARCV9 43 /* SPARC v9 64-bit */
-+#define EM_TRICORE 44 /* Siemens Tricore */
-+#define EM_ARC 45 /* Argonaut RISC Core */
-+#define EM_H8_300 46 /* Hitachi H8/300 */
-+#define EM_H8_300H 47 /* Hitachi H8/300H */
-+#define EM_H8S 48 /* Hitachi H8S */
-+#define EM_H8_500 49 /* Hitachi H8/500 */
-+#define EM_IA_64 50 /* Intel Merced */
-+#define EM_MIPS_X 51 /* Stanford MIPS-X */
-+#define EM_COLDFIRE 52 /* Motorola Coldfire */
-+#define EM_68HC12 53 /* Motorola M68HC12 */
-+#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator*/
-+#define EM_PCP 55 /* Siemens PCP */
-+#define EM_NCPU 56 /* Sony nCPU embeeded RISC */
-+#define EM_NDR1 57 /* Denso NDR1 microprocessor */
-+#define EM_STARCORE 58 /* Motorola Start*Core processor */
-+#define EM_ME16 59 /* Toyota ME16 processor */
-+#define EM_ST100 60 /* STMicroelectronic ST100 processor */
-+#define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam*/
-+#define EM_X86_64 62 /* AMD x86-64 architecture */
-+#define EM_PDSP 63 /* Sony DSP Processor */
-+
-+#define EM_FX66 66 /* Siemens FX66 microcontroller */
-+#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */
-+#define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */
-+#define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */
-+#define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */
-+#define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */
-+#define EM_68HC05 72 /* Motorola MC68HC05 microcontroller */
-+#define EM_SVX 73 /* Silicon Graphics SVx */
-+#define EM_ST19 74 /* STMicroelectronics ST19 8 bit mc */
-+#define EM_VAX 75 /* Digital VAX */
-+#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */
-+#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded processor */
-+#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */
-+#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */
-+#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */
-+#define EM_HUANY 81 /* Harvard University machine-independent object files */
-+#define EM_PRISM 82 /* SiTera Prism */
-+#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */
-+#define EM_FR30 84 /* Fujitsu FR30 */
-+#define EM_D10V 85 /* Mitsubishi D10V */
-+#define EM_D30V 86 /* Mitsubishi D30V */
-+#define EM_V850 87 /* NEC v850 */
-+#define EM_M32R 88 /* Mitsubishi M32R */
-+#define EM_MN10300 89 /* Matsushita MN10300 */
-+#define EM_MN10200 90 /* Matsushita MN10200 */
-+#define EM_PJ 91 /* picoJava */
-+#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
-+#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
-+#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
-+#define EM_NUM 95
-+
-+/* If it is necessary to assign new unofficial EM_* values, please
-+ pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the
-+ chances of collision with official or non-GNU unofficial values. */
-+
-+#define EM_ALPHA 0x9026
-+
-+/* Legal values for e_version (version). */
-+
-+#define EV_NONE 0 /* Invalid ELF version */
-+#define EV_CURRENT 1 /* Current version */
-+#define EV_NUM 2
-+
-+/* Section header. */
-+
-+typedef struct
-+{
-+ Elf32_Word sh_name; /* Section name (string tbl index) */
-+ Elf32_Word sh_type; /* Section type */
-+ Elf32_Word sh_flags; /* Section flags */
-+ Elf32_Addr sh_addr; /* Section virtual addr at execution */
-+ Elf32_Off sh_offset; /* Section file offset */
-+ Elf32_Word sh_size; /* Section size in bytes */
-+ Elf32_Word sh_link; /* Link to another section */
-+ Elf32_Word sh_info; /* Additional section information */
-+ Elf32_Word sh_addralign; /* Section alignment */
-+ Elf32_Word sh_entsize; /* Entry size if section holds table */
-+} Elf32_Shdr;
-+
-+typedef struct
-+{
-+ Elf64_Word sh_name; /* Section name (string tbl index) */
-+ Elf64_Word sh_type; /* Section type */
-+ Elf64_Xword sh_flags; /* Section flags */
-+ Elf64_Addr sh_addr; /* Section virtual addr at execution */
-+ Elf64_Off sh_offset; /* Section file offset */
-+ Elf64_Xword sh_size; /* Section size in bytes */
-+ Elf64_Word sh_link; /* Link to another section */
-+ Elf64_Word sh_info; /* Additional section information */
-+ Elf64_Xword sh_addralign; /* Section alignment */
-+ Elf64_Xword sh_entsize; /* Entry size if section holds table */
-+} Elf64_Shdr;
-+
-+/* Special section indices. */
-+
-+#define SHN_UNDEF 0 /* Undefined section */
-+#define SHN_LORESERVE 0xff00 /* Start of reserved indices */
-+#define SHN_LOPROC 0xff00 /* Start of processor-specific */
-+#define SHN_HIPROC 0xff1f /* End of processor-specific */
-+#define SHN_LOOS 0xff20 /* Start of OS-specific */
-+#define SHN_HIOS 0xff3f /* End of OS-specific */
-+#define SHN_ABS 0xfff1 /* Associated symbol is absolute */
-+#define SHN_COMMON 0xfff2 /* Associated symbol is common */
-+#define SHN_XINDEX 0xffff /* Index is in extra table. */
-+#define SHN_HIRESERVE 0xffff /* End of reserved indices */
-+
-+/* Legal values for sh_type (section type). */
-+
-+#define SHT_NULL 0 /* Section header table entry unused */
-+#define SHT_PROGBITS 1 /* Program data */
-+#define SHT_SYMTAB 2 /* Symbol table */
-+#define SHT_STRTAB 3 /* String table */
-+#define SHT_RELA 4 /* Relocation entries with addends */
-+#define SHT_HASH 5 /* Symbol hash table */
-+#define SHT_DYNAMIC 6 /* Dynamic linking information */
-+#define SHT_NOTE 7 /* Notes */
-+#define SHT_NOBITS 8 /* Program space with no data (bss) */
-+#define SHT_REL 9 /* Relocation entries, no addends */
-+#define SHT_SHLIB 10 /* Reserved */
-+#define SHT_DYNSYM 11 /* Dynamic linker symbol table */
-+#define SHT_INIT_ARRAY 14 /* Array of constructors */
-+#define SHT_FINI_ARRAY 15 /* Array of destructors */
-+#define SHT_PREINIT_ARRAY 16 /* Array of pre-constructors */
-+#define SHT_GROUP 17 /* Section group */
-+#define SHT_SYMTAB_SHNDX 18 /* Extended section indeces */
-+#define SHT_NUM 19 /* Number of defined types. */
-+#define SHT_LOOS 0x60000000 /* Start OS-specific */
-+#define SHT_GNU_LIBLIST 0x6ffffff7 /* Prelink library list */
-+#define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */
-+#define SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */
-+#define SHT_SUNW_move 0x6ffffffa
-+#define SHT_SUNW_COMDAT 0x6ffffffb
-+#define SHT_SUNW_syminfo 0x6ffffffc
-+#define SHT_GNU_verdef 0x6ffffffd /* Version definition section. */
-+#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */
-+#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */
-+#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */
-+#define SHT_HIOS 0x6fffffff /* End OS-specific type */
-+#define SHT_LOPROC 0x70000000 /* Start of processor-specific */
-+#define SHT_HIPROC 0x7fffffff /* End of processor-specific */
-+#define SHT_LOUSER 0x80000000 /* Start of application-specific */
-+#define SHT_HIUSER 0x8fffffff /* End of application-specific */
-+
-+/* Legal values for sh_flags (section flags). */
-+
-+#define SHF_WRITE (1 << 0) /* Writable */
-+#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */
-+#define SHF_EXECINSTR (1 << 2) /* Executable */
-+#define SHF_MERGE (1 << 4) /* Might be merged */
-+#define SHF_STRINGS (1 << 5) /* Contains nul-terminated strings */
-+#define SHF_INFO_LINK (1 << 6) /* `sh_info' contains SHT index */
-+#define SHF_LINK_ORDER (1 << 7) /* Preserve order after combining */
-+#define SHF_OS_NONCONFORMING (1 << 8) /* Non-standard OS specific handling
-+ required */
-+#define SHF_GROUP (1 << 9) /* Section is member of a group. */
-+#define SHF_TLS (1 << 10) /* Section hold thread-local data. */
-+#define SHF_MASKOS 0x0ff00000 /* OS-specific. */
-+#define SHF_MASKPROC 0xf0000000 /* Processor-specific */
-+
-+/* Section group handling. */
-+#define GRP_COMDAT 0x1 /* Mark group as COMDAT. */
-+
-+/* Symbol table entry. */
-+
-+typedef struct
-+{
-+ Elf32_Word st_name; /* Symbol name (string tbl index) */
-+ Elf32_Addr st_value; /* Symbol value */
-+ Elf32_Word st_size; /* Symbol size */
-+ unsigned char st_info; /* Symbol type and binding */
-+ unsigned char st_other; /* Symbol visibility */
-+ Elf32_Section st_shndx; /* Section index */
-+} Elf32_Sym;
-+
-+typedef struct
-+{
-+ Elf64_Word st_name; /* Symbol name (string tbl index) */
-+ unsigned char st_info; /* Symbol type and binding */
-+ unsigned char st_other; /* Symbol visibility */
-+ Elf64_Section st_shndx; /* Section index */
-+ Elf64_Addr st_value; /* Symbol value */
-+ Elf64_Xword st_size; /* Symbol size */
-+} Elf64_Sym;
-+
-+/* The syminfo section if available contains additional information about
-+ every dynamic symbol. */
-+
-+typedef struct
-+{
-+ Elf32_Half si_boundto; /* Direct bindings, symbol bound to */
-+ Elf32_Half si_flags; /* Per symbol flags */
-+} Elf32_Syminfo;
-+
-+typedef struct
-+{
-+ Elf64_Half si_boundto; /* Direct bindings, symbol bound to */
-+ Elf64_Half si_flags; /* Per symbol flags */
-+} Elf64_Syminfo;
-+
-+/* Possible values for si_boundto. */
-+#define SYMINFO_BT_SELF 0xffff /* Symbol bound to self */
-+#define SYMINFO_BT_PARENT 0xfffe /* Symbol bound to parent */
-+#define SYMINFO_BT_LOWRESERVE 0xff00 /* Beginning of reserved entries */
-+
-+/* Possible bitmasks for si_flags. */
-+#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */
-+#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */
-+#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */
-+#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy
-+ loaded */
-+/* Syminfo version values. */
-+#define SYMINFO_NONE 0
-+#define SYMINFO_CURRENT 1
-+#define SYMINFO_NUM 2
-+
-+
-+/* How to extract and insert information held in the st_info field. */
-+
-+#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
-+#define ELF32_ST_TYPE(val) ((val) & 0xf)
-+#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
-+
-+/* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field. */
-+#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
-+#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
-+#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
-+
-+/* Legal values for ST_BIND subfield of st_info (symbol binding). */
-+
-+#define STB_LOCAL 0 /* Local symbol */
-+#define STB_GLOBAL 1 /* Global symbol */
-+#define STB_WEAK 2 /* Weak symbol */
-+#define STB_NUM 3 /* Number of defined types. */
-+#define STB_LOOS 10 /* Start of OS-specific */
-+#define STB_HIOS 12 /* End of OS-specific */
-+#define STB_LOPROC 13 /* Start of processor-specific */
-+#define STB_HIPROC 15 /* End of processor-specific */
-+
-+/* Legal values for ST_TYPE subfield of st_info (symbol type). */
-+
-+#define STT_NOTYPE 0 /* Symbol type is unspecified */
-+#define STT_OBJECT 1 /* Symbol is a data object */
-+#define STT_FUNC 2 /* Symbol is a code object */
-+#define STT_SECTION 3 /* Symbol associated with a section */
-+#define STT_FILE 4 /* Symbol's name is file name */
-+#define STT_COMMON 5 /* Symbol is a common data object */
-+#define STT_TLS 6 /* Symbol is thread-local data object*/
-+#define STT_NUM 7 /* Number of defined types. */
-+#define STT_LOOS 10 /* Start of OS-specific */
-+#define STT_HIOS 12 /* End of OS-specific */
-+#define STT_LOPROC 13 /* Start of processor-specific */
-+#define STT_HIPROC 15 /* End of processor-specific */
-+
-+
-+/* Symbol table indices are found in the hash buckets and chain table
-+ of a symbol hash table section. This special index value indicates
-+ the end of a chain, meaning no further symbols are found in that bucket. */
-+
-+#define STN_UNDEF 0 /* End of a chain. */
-+
-+
-+/* How to extract and insert information held in the st_other field. */
-+
-+#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
-+
-+/* For ELF64 the definitions are the same. */
-+#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
-+
-+/* Symbol visibility specification encoded in the st_other field. */
-+#define STV_DEFAULT 0 /* Default symbol visibility rules */
-+#define STV_INTERNAL 1 /* Processor specific hidden class */
-+#define STV_HIDDEN 2 /* Sym unavailable in other modules */
-+#define STV_PROTECTED 3 /* Not preemptible, not exported */
-+
-+
-+/* Relocation table entry without addend (in section of type SHT_REL). */
-+
-+typedef struct
-+{
-+ Elf32_Addr r_offset; /* Address */
-+ Elf32_Word r_info; /* Relocation type and symbol index */
-+} Elf32_Rel;
-+
-+/* I have seen two different definitions of the Elf64_Rel and
-+ Elf64_Rela structures, so we'll leave them out until Novell (or
-+ whoever) gets their act together. */
-+/* The following, at least, is used on Sparc v9, MIPS, and Alpha. */
-+
-+typedef struct
-+{
-+ Elf64_Addr r_offset; /* Address */
-+ Elf64_Xword r_info; /* Relocation type and symbol index */
-+} Elf64_Rel;
-+
-+/* Relocation table entry with addend (in section of type SHT_RELA). */
-+
-+typedef struct
-+{
-+ Elf32_Addr r_offset; /* Address */
-+ Elf32_Word r_info; /* Relocation type and symbol index */
-+ Elf32_Sword r_addend; /* Addend */
-+} Elf32_Rela;
-+
-+typedef struct
-+{
-+ Elf64_Addr r_offset; /* Address */
-+ Elf64_Xword r_info; /* Relocation type and symbol index */
-+ Elf64_Sxword r_addend; /* Addend */
-+} Elf64_Rela;
-+
-+/* How to extract and insert information held in the r_info field. */
-+
-+#define ELF32_R_SYM(val) ((val) >> 8)
-+#define ELF32_R_TYPE(val) ((val) & 0xff)
-+#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
-+
-+#define ELF64_R_SYM(i) ((i) >> 32)
-+#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
-+#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
-+
-+/* Program segment header. */
-+
-+typedef struct
-+{
-+ Elf32_Word p_type; /* Segment type */
-+ Elf32_Off p_offset; /* Segment file offset */
-+ Elf32_Addr p_vaddr; /* Segment virtual address */
-+ Elf32_Addr p_paddr; /* Segment physical address */
-+ Elf32_Word p_filesz; /* Segment size in file */
-+ Elf32_Word p_memsz; /* Segment size in memory */
-+ Elf32_Word p_flags; /* Segment flags */
-+ Elf32_Word p_align; /* Segment alignment */
-+} Elf32_Phdr;
-+
-+typedef struct
-+{
-+ Elf64_Word p_type; /* Segment type */
-+ Elf64_Word p_flags; /* Segment flags */
-+ Elf64_Off p_offset; /* Segment file offset */
-+ Elf64_Addr p_vaddr; /* Segment virtual address */
-+ Elf64_Addr p_paddr; /* Segment physical address */
-+ Elf64_Xword p_filesz; /* Segment size in file */
-+ Elf64_Xword p_memsz; /* Segment size in memory */
-+ Elf64_Xword p_align; /* Segment alignment */
-+} Elf64_Phdr;
-+
-+/* Legal values for p_type (segment type). */
-+
-+#define PT_NULL 0 /* Program header table entry unused */
-+#define PT_LOAD 1 /* Loadable program segment */
-+#define PT_DYNAMIC 2 /* Dynamic linking information */
-+#define PT_INTERP 3 /* Program interpreter */
-+#define PT_NOTE 4 /* Auxiliary information */
-+#define PT_SHLIB 5 /* Reserved */
-+#define PT_PHDR 6 /* Entry for header table itself */
-+#define PT_TLS 7 /* Thread-local storage segment */
-+#define PT_NUM 8 /* Number of defined types */
-+#define PT_LOOS 0x60000000 /* Start of OS-specific */
-+#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */
-+#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */
-+#define PT_LOSUNW 0x6ffffffa
-+#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */
-+#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */
-+#define PT_HISUNW 0x6fffffff
-+#define PT_HIOS 0x6fffffff /* End of OS-specific */
-+#define PT_LOPROC 0x70000000 /* Start of processor-specific */
-+#define PT_HIPROC 0x7fffffff /* End of processor-specific */
-+
-+/* Legal values for p_flags (segment flags). */
-+
-+#define PF_X (1 << 0) /* Segment is executable */
-+#define PF_W (1 << 1) /* Segment is writable */
-+#define PF_R (1 << 2) /* Segment is readable */
-+#define PF_MASKOS 0x0ff00000 /* OS-specific */
-+#define PF_MASKPROC 0xf0000000 /* Processor-specific */
-+
-+/* Legal values for note segment descriptor types for core files. */
-+
-+#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */
-+#define NT_FPREGSET 2 /* Contains copy of fpregset struct */
-+#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */
-+#define NT_PRXREG 4 /* Contains copy of prxregset struct */
-+#define NT_TASKSTRUCT 4 /* Contains copy of task structure */
-+#define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */
-+#define NT_AUXV 6 /* Contains copy of auxv array */
-+#define NT_GWINDOWS 7 /* Contains copy of gwindows struct */
-+#define NT_ASRS 8 /* Contains copy of asrset struct */
-+#define NT_PSTATUS 10 /* Contains copy of pstatus struct */
-+#define NT_PSINFO 13 /* Contains copy of psinfo struct */
-+#define NT_PRCRED 14 /* Contains copy of prcred struct */
-+#define NT_UTSNAME 15 /* Contains copy of utsname struct */
-+#define NT_LWPSTATUS 16 /* Contains copy of lwpstatus struct */
-+#define NT_LWPSINFO 17 /* Contains copy of lwpinfo struct */
-+#define NT_PRFPXREG 20 /* Contains copy of fprxregset struct*/
-+
-+/* Legal values for the note segment descriptor types for object files. */
-+
-+#define NT_VERSION 1 /* Contains a version string. */
-+
-+
-+/* Dynamic section entry. */
-+
-+typedef struct
-+{
-+ Elf32_Sword d_tag; /* Dynamic entry type */
-+ union
-+ {
-+ Elf32_Word d_val; /* Integer value */
-+ Elf32_Addr d_ptr; /* Address value */
-+ } d_un;
-+} Elf32_Dyn;
-+
-+typedef struct
-+{
-+ Elf64_Sxword d_tag; /* Dynamic entry type */
-+ union
-+ {
-+ Elf64_Xword d_val; /* Integer value */
-+ Elf64_Addr d_ptr; /* Address value */
-+ } d_un;
-+} Elf64_Dyn;
-+
-+/* Legal values for d_tag (dynamic entry type). */
-+
-+#define DT_NULL 0 /* Marks end of dynamic section */
-+#define DT_NEEDED 1 /* Name of needed library */
-+#define DT_PLTRELSZ 2 /* Size in bytes of PLT relocs */
-+#define DT_PLTGOT 3 /* Processor defined value */
-+#define DT_HASH 4 /* Address of symbol hash table */
-+#define DT_STRTAB 5 /* Address of string table */
-+#define DT_SYMTAB 6 /* Address of symbol table */
-+#define DT_RELA 7 /* Address of Rela relocs */
-+#define DT_RELASZ 8 /* Total size of Rela relocs */
-+#define DT_RELAENT 9 /* Size of one Rela reloc */
-+#define DT_STRSZ 10 /* Size of string table */
-+#define DT_SYMENT 11 /* Size of one symbol table entry */
-+#define DT_INIT 12 /* Address of init function */
-+#define DT_FINI 13 /* Address of termination function */
-+#define DT_SONAME 14 /* Name of shared object */
-+#define DT_RPATH 15 /* Library search path (deprecated) */
-+#define DT_SYMBOLIC 16 /* Start symbol search here */
-+#define DT_REL 17 /* Address of Rel relocs */
-+#define DT_RELSZ 18 /* Total size of Rel relocs */
-+#define DT_RELENT 19 /* Size of one Rel reloc */
-+#define DT_PLTREL 20 /* Type of reloc in PLT */
-+#define DT_DEBUG 21 /* For debugging; unspecified */
-+#define DT_TEXTREL 22 /* Reloc might modify .text */
-+#define DT_JMPREL 23 /* Address of PLT relocs */
-+#define DT_BIND_NOW 24 /* Process relocations of object */
-+#define DT_INIT_ARRAY 25 /* Array with addresses of init fct */
-+#define DT_FINI_ARRAY 26 /* Array with addresses of fini fct */
-+#define DT_INIT_ARRAYSZ 27 /* Size in bytes of DT_INIT_ARRAY */
-+#define DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */
-+#define DT_RUNPATH 29 /* Library search path */
-+#define DT_FLAGS 30 /* Flags for the object being loaded */
-+#define DT_ENCODING 32 /* Start of encoded range */
-+#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/
-+#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */
-+#define DT_NUM 34 /* Number used */
-+#define DT_LOOS 0x6000000d /* Start of OS-specific */
-+#define DT_HIOS 0x6ffff000 /* End of OS-specific */
-+#define DT_LOPROC 0x70000000 /* Start of processor-specific */
-+#define DT_HIPROC 0x7fffffff /* End of processor-specific */
-+#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */
-+
-+/* DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the
-+ Dyn.d_un.d_val field of the Elf*_Dyn structure. This follows Sun's
-+ approach. */
-+#define DT_VALRNGLO 0x6ffffd00
-+#define DT_GNU_PRELINKED 0x6ffffdf5 /* Prelinking timestamp */
-+#define DT_GNU_CONFLICTSZ 0x6ffffdf6 /* Size of conflict section */
-+#define DT_GNU_LIBLISTSZ 0x6ffffdf7 /* Size of library list */
-+#define DT_CHECKSUM 0x6ffffdf8
-+#define DT_PLTPADSZ 0x6ffffdf9
-+#define DT_MOVEENT 0x6ffffdfa
-+#define DT_MOVESZ 0x6ffffdfb
-+#define DT_FEATURE_1 0x6ffffdfc /* Feature selection (DTF_*). */
-+#define DT_POSFLAG_1 0x6ffffdfd /* Flags for DT_* entries, effecting
-+ the following DT_* entry. */
-+#define DT_SYMINSZ 0x6ffffdfe /* Size of syminfo table (in bytes) */
-+#define DT_SYMINENT 0x6ffffdff /* Entry size of syminfo */
-+#define DT_VALRNGHI 0x6ffffdff
-+#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) /* Reverse order! */
-+#define DT_VALNUM 12
-+
-+/* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the
-+ Dyn.d_un.d_ptr field of the Elf*_Dyn structure.
-+
-+ If any adjustment is made to the ELF object after it has been
-+ built these entries will need to be adjusted. */
-+#define DT_ADDRRNGLO 0x6ffffe00
-+#define DT_GNU_CONFLICT 0x6ffffef8 /* Start of conflict section */
-+#define DT_GNU_LIBLIST 0x6ffffef9 /* Library list */
-+#define DT_CONFIG 0x6ffffefa /* Configuration information. */
-+#define DT_DEPAUDIT 0x6ffffefb /* Dependency auditing. */
-+#define DT_AUDIT 0x6ffffefc /* Object auditing. */
-+#define DT_PLTPAD 0x6ffffefd /* PLT padding. */
-+#define DT_MOVETAB 0x6ffffefe /* Move table. */
-+#define DT_SYMINFO 0x6ffffeff /* Syminfo table. */
-+#define DT_ADDRRNGHI 0x6ffffeff
-+#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) /* Reverse order! */
-+#define DT_ADDRNUM 10
-+
-+/* The versioning entry types. The next are defined as part of the
-+ GNU extension. */
-+#define DT_VERSYM 0x6ffffff0
-+
-+#define DT_RELACOUNT 0x6ffffff9
-+#define DT_RELCOUNT 0x6ffffffa
-+
-+/* These were chosen by Sun. */
-+#define DT_FLAGS_1 0x6ffffffb /* State flags, see DF_1_* below. */
-+#define DT_VERDEF 0x6ffffffc /* Address of version definition
-+ table */
-+#define DT_VERDEFNUM 0x6ffffffd /* Number of version definitions */
-+#define DT_VERNEED 0x6ffffffe /* Address of table with needed
-+ versions */
-+#define DT_VERNEEDNUM 0x6fffffff /* Number of needed versions */
-+#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */
-+#define DT_VERSIONTAGNUM 16
-+
-+/* Sun added these machine-independent extensions in the "processor-specific"
-+ range. Be compatible. */
-+#define DT_AUXILIARY 0x7ffffffd /* Shared object to load before self */
-+#define DT_FILTER 0x7fffffff /* Shared object to get values from */
-+#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
-+#define DT_EXTRANUM 3
-+
-+/* Values of `d_un.d_val' in the DT_FLAGS entry. */
-+#define DF_ORIGIN 0x00000001 /* Object may use DF_ORIGIN */
-+#define DF_SYMBOLIC 0x00000002 /* Symbol resolutions starts here */
-+#define DF_TEXTREL 0x00000004 /* Object contains text relocations */
-+#define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */
-+#define DF_STATIC_TLS 0x00000010 /* Module uses the static TLS model */
-+
-+/* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1
-+ entry in the dynamic section. */
-+#define DF_1_NOW 0x00000001 /* Set RTLD_NOW for this object. */
-+#define DF_1_GLOBAL 0x00000002 /* Set RTLD_GLOBAL for this object. */
-+#define DF_1_GROUP 0x00000004 /* Set RTLD_GROUP for this object. */
-+#define DF_1_NODELETE 0x00000008 /* Set RTLD_NODELETE for this object.*/
-+#define DF_1_LOADFLTR 0x00000010 /* Trigger filtee loading at runtime.*/
-+#define DF_1_INITFIRST 0x00000020 /* Set RTLD_INITFIRST for this object*/
-+#define DF_1_NOOPEN 0x00000040 /* Set RTLD_NOOPEN for this object. */
-+#define DF_1_ORIGIN 0x00000080 /* $ORIGIN must be handled. */
-+#define DF_1_DIRECT 0x00000100 /* Direct binding enabled. */
-+#define DF_1_TRANS 0x00000200
-+#define DF_1_INTERPOSE 0x00000400 /* Object is used to interpose. */
-+#define DF_1_NODEFLIB 0x00000800 /* Ignore default lib search path. */
-+#define DF_1_NODUMP 0x00001000 /* Object can't be dldump'ed. */
-+#define DF_1_CONFALT 0x00002000 /* Configuration alternative created.*/
-+#define DF_1_ENDFILTEE 0x00004000 /* Filtee terminates filters search. */
-+#define DF_1_DISPRELDNE 0x00008000 /* Disp reloc applied at build time. */
-+#define DF_1_DISPRELPND 0x00010000 /* Disp reloc applied at run-time. */
-+
-+/* Flags for the feature selection in DT_FEATURE_1. */
-+#define DTF_1_PARINIT 0x00000001
-+#define DTF_1_CONFEXP 0x00000002
-+
-+/* Flags in the DT_POSFLAG_1 entry effecting only the next DT_* entry. */
-+#define DF_P1_LAZYLOAD 0x00000001 /* Lazyload following object. */
-+#define DF_P1_GROUPPERM 0x00000002 /* Symbols from next object are not
-+ generally available. */
-+
-+/* Version definition sections. */
-+
-+typedef struct
-+{
-+ Elf32_Half vd_version; /* Version revision */
-+ Elf32_Half vd_flags; /* Version information */
-+ Elf32_Half vd_ndx; /* Version Index */
-+ Elf32_Half vd_cnt; /* Number of associated aux entries */
-+ Elf32_Word vd_hash; /* Version name hash value */
-+ Elf32_Word vd_aux; /* Offset in bytes to verdaux array */
-+ Elf32_Word vd_next; /* Offset in bytes to next verdef
-+ entry */
-+} Elf32_Verdef;
-+
-+typedef struct
-+{
-+ Elf64_Half vd_version; /* Version revision */
-+ Elf64_Half vd_flags; /* Version information */
-+ Elf64_Half vd_ndx; /* Version Index */
-+ Elf64_Half vd_cnt; /* Number of associated aux entries */
-+ Elf64_Word vd_hash; /* Version name hash value */
-+ Elf64_Word vd_aux; /* Offset in bytes to verdaux array */
-+ Elf64_Word vd_next; /* Offset in bytes to next verdef
-+ entry */
-+} Elf64_Verdef;
-+
-+
-+/* Legal values for vd_version (version revision). */
-+#define VER_DEF_NONE 0 /* No version */
-+#define VER_DEF_CURRENT 1 /* Current version */
-+#define VER_DEF_NUM 2 /* Given version number */
-+
-+/* Legal values for vd_flags (version information flags). */
-+#define VER_FLG_BASE 0x1 /* Version definition of file itself */
-+#define VER_FLG_WEAK 0x2 /* Weak version identifier */
-+
-+/* Versym symbol index values. */
-+#define VER_NDX_LOCAL 0 /* Symbol is local. */
-+#define VER_NDX_GLOBAL 1 /* Symbol is global. */
-+#define VER_NDX_LORESERVE 0xff00 /* Beginning of reserved entries. */
-+#define VER_NDX_ELIMINATE 0xff01 /* Symbol is to be eliminated. */
-+
-+/* Auxialiary version information. */
-+
-+typedef struct
-+{
-+ Elf32_Word vda_name; /* Version or dependency names */
-+ Elf32_Word vda_next; /* Offset in bytes to next verdaux
-+ entry */
-+} Elf32_Verdaux;
-+
-+typedef struct
-+{
-+ Elf64_Word vda_name; /* Version or dependency names */
-+ Elf64_Word vda_next; /* Offset in bytes to next verdaux
-+ entry */
-+} Elf64_Verdaux;
-+
-+
-+/* Version dependency section. */
-+
-+typedef struct
-+{
-+ Elf32_Half vn_version; /* Version of structure */
-+ Elf32_Half vn_cnt; /* Number of associated aux entries */
-+ Elf32_Word vn_file; /* Offset of filename for this
-+ dependency */
-+ Elf32_Word vn_aux; /* Offset in bytes to vernaux array */
-+ Elf32_Word vn_next; /* Offset in bytes to next verneed
-+ entry */
-+} Elf32_Verneed;
-+
-+typedef struct
-+{
-+ Elf64_Half vn_version; /* Version of structure */
-+ Elf64_Half vn_cnt; /* Number of associated aux entries */
-+ Elf64_Word vn_file; /* Offset of filename for this
-+ dependency */
-+ Elf64_Word vn_aux; /* Offset in bytes to vernaux array */
-+ Elf64_Word vn_next; /* Offset in bytes to next verneed
-+ entry */
-+} Elf64_Verneed;
-+
-+
-+/* Legal values for vn_version (version revision). */
-+#define VER_NEED_NONE 0 /* No version */
-+#define VER_NEED_CURRENT 1 /* Current version */
-+#define VER_NEED_NUM 2 /* Given version number */
-+
-+/* Auxiliary needed version information. */
-+
-+typedef struct
-+{
-+ Elf32_Word vna_hash; /* Hash value of dependency name */
-+ Elf32_Half vna_flags; /* Dependency specific information */
-+ Elf32_Half vna_other; /* Unused */
-+ Elf32_Word vna_name; /* Dependency name string offset */
-+ Elf32_Word vna_next; /* Offset in bytes to next vernaux
-+ entry */
-+} Elf32_Vernaux;
-+
-+typedef struct
-+{
-+ Elf64_Word vna_hash; /* Hash value of dependency name */
-+ Elf64_Half vna_flags; /* Dependency specific information */
-+ Elf64_Half vna_other; /* Unused */
-+ Elf64_Word vna_name; /* Dependency name string offset */
-+ Elf64_Word vna_next; /* Offset in bytes to next vernaux
-+ entry */
-+} Elf64_Vernaux;
-+
-+
-+/* Legal values for vna_flags. */
-+#define VER_FLG_WEAK 0x2 /* Weak version identifier */
-+
-+
-+/* Auxiliary vector. */
-+
-+/* This vector is normally only used by the program interpreter. The
-+ usual definition in an ABI supplement uses the name auxv_t. The
-+ vector is not usually defined in a standard <elf.h> file, but it
-+ can't hurt. We rename it to avoid conflicts. The sizes of these
-+ types are an arrangement between the exec server and the program
-+ interpreter, so we don't fully specify them here. */
-+
-+typedef struct
-+{
-+ int a_type; /* Entry type */
-+ union
-+ {
-+ long int a_val; /* Integer value */
-+ void *a_ptr; /* Pointer value */
-+ void (*a_fcn) (void); /* Function pointer value */
-+ } a_un;
-+} Elf32_auxv_t;
-+
-+typedef struct
-+{
-+ long int a_type; /* Entry type */
-+ union
-+ {
-+ long int a_val; /* Integer value */
-+ void *a_ptr; /* Pointer value */
-+ void (*a_fcn) (void); /* Function pointer value */
-+ } a_un;
-+} Elf64_auxv_t;
-+
-+/* Legal values for a_type (entry type). */
-+
-+#define AT_NULL 0 /* End of vector */
-+#define AT_IGNORE 1 /* Entry should be ignored */
-+#define AT_EXECFD 2 /* File descriptor of program */
-+#define AT_PHDR 3 /* Program headers for program */
-+#define AT_PHENT 4 /* Size of program header entry */
-+#define AT_PHNUM 5 /* Number of program headers */
-+#define AT_PAGESZ 6 /* System page size */
-+#define AT_BASE 7 /* Base address of interpreter */
-+#define AT_FLAGS 8 /* Flags */
-+#define AT_ENTRY 9 /* Entry point of program */
-+#define AT_NOTELF 10 /* Program is not ELF */
-+#define AT_UID 11 /* Real uid */
-+#define AT_EUID 12 /* Effective uid */
-+#define AT_GID 13 /* Real gid */
-+#define AT_EGID 14 /* Effective gid */
-+#define AT_CLKTCK 17 /* Frequency of times() */
-+
-+/* Some more special a_type values describing the hardware. */
-+#define AT_PLATFORM 15 /* String identifying platform. */
-+#define AT_HWCAP 16 /* Machine dependent hints about
-+ processor capabilities. */
-+
-+/* This entry gives some information about the FPU initialization
-+ performed by the kernel. */
-+#define AT_FPUCW 18 /* Used FPU control word. */
-+
-+/* Cache block sizes. */
-+#define AT_DCACHEBSIZE 19 /* Data cache block size. */
-+#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */
-+#define AT_UCACHEBSIZE 21 /* Unified cache block size. */
-+
-+/* A special ignored value for PPC, used by the kernel to control the
-+ interpretation of the AUXV. Must be > 16. */
-+#define AT_IGNOREPPC 22 /* Entry should be ignored. */
-+
-+#define AT_SECURE 23 /* Boolean, was exec setuid-like? */
-+
-+/* Pointer to the global system page used for system calls and other
-+ nice things. */
-+#define AT_SYSINFO 32
-+#define AT_SYSINFO_EHDR 33
-+
-+
-+/* Note section contents. Each entry in the note section begins with
-+ a header of a fixed form. */
-+
-+typedef struct
-+{
-+ Elf32_Word n_namesz; /* Length of the note's name. */
-+ Elf32_Word n_descsz; /* Length of the note's descriptor. */
-+ Elf32_Word n_type; /* Type of the note. */
-+} Elf32_Nhdr;
-+
-+typedef struct
-+{
-+ Elf64_Word n_namesz; /* Length of the note's name. */
-+ Elf64_Word n_descsz; /* Length of the note's descriptor. */
-+ Elf64_Word n_type; /* Type of the note. */
-+} Elf64_Nhdr;
-+
-+/* Known names of notes. */
-+
-+/* Solaris entries in the note section have this name. */
-+#define ELF_NOTE_SOLARIS "SUNW Solaris"
-+
-+/* Note entries for GNU systems have this name. */
-+#define ELF_NOTE_GNU "GNU"
-+
-+
-+/* Defined types of notes for Solaris. */
-+
-+/* Value of descriptor (one word) is desired pagesize for the binary. */
-+#define ELF_NOTE_PAGESIZE_HINT 1
-+
-+
-+/* Defined note types for GNU systems. */
-+
-+/* ABI information. The descriptor consists of words:
-+ word 0: OS descriptor
-+ word 1: major version of the ABI
-+ word 2: minor version of the ABI
-+ word 3: subminor version of the ABI
-+*/
-+#define ELF_NOTE_ABI 1
-+
-+/* Known OSes. These value can appear in word 0 of an ELF_NOTE_ABI
-+ note section entry. */
-+#define ELF_NOTE_OS_LINUX 0
-+#define ELF_NOTE_OS_GNU 1
-+#define ELF_NOTE_OS_SOLARIS2 2
-+#define ELF_NOTE_OS_FREEBSD 3
-+
-+
-+/* Move records. */
-+typedef struct
-+{
-+ Elf32_Xword m_value; /* Symbol value. */
-+ Elf32_Word m_info; /* Size and index. */
-+ Elf32_Word m_poffset; /* Symbol offset. */
-+ Elf32_Half m_repeat; /* Repeat count. */
-+ Elf32_Half m_stride; /* Stride info. */
-+} Elf32_Move;
-+
-+typedef struct
-+{
-+ Elf64_Xword m_value; /* Symbol value. */
-+ Elf64_Xword m_info; /* Size and index. */
-+ Elf64_Xword m_poffset; /* Symbol offset. */
-+ Elf64_Half m_repeat; /* Repeat count. */
-+ Elf64_Half m_stride; /* Stride info. */
-+} Elf64_Move;
-+
-+/* Macro to construct move records. */
-+#define ELF32_M_SYM(info) ((info) >> 8)
-+#define ELF32_M_SIZE(info) ((unsigned char) (info))
-+#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
-+
-+#define ELF64_M_SYM(info) ELF32_M_SYM (info)
-+#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
-+#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
-+
-+
-+/* Motorola 68k specific definitions. */
-+
-+/* Values for Elf32_Ehdr.e_flags. */
-+#define EF_CPU32 0x00810000
-+
-+/* m68k relocs. */
-+
-+#define R_68K_NONE 0 /* No reloc */
-+#define R_68K_32 1 /* Direct 32 bit */
-+#define R_68K_16 2 /* Direct 16 bit */
-+#define R_68K_8 3 /* Direct 8 bit */
-+#define R_68K_PC32 4 /* PC relative 32 bit */
-+#define R_68K_PC16 5 /* PC relative 16 bit */
-+#define R_68K_PC8 6 /* PC relative 8 bit */
-+#define R_68K_GOT32 7 /* 32 bit PC relative GOT entry */
-+#define R_68K_GOT16 8 /* 16 bit PC relative GOT entry */
-+#define R_68K_GOT8 9 /* 8 bit PC relative GOT entry */
-+#define R_68K_GOT32O 10 /* 32 bit GOT offset */
-+#define R_68K_GOT16O 11 /* 16 bit GOT offset */
-+#define R_68K_GOT8O 12 /* 8 bit GOT offset */
-+#define R_68K_PLT32 13 /* 32 bit PC relative PLT address */
-+#define R_68K_PLT16 14 /* 16 bit PC relative PLT address */
-+#define R_68K_PLT8 15 /* 8 bit PC relative PLT address */
-+#define R_68K_PLT32O 16 /* 32 bit PLT offset */
-+#define R_68K_PLT16O 17 /* 16 bit PLT offset */
-+#define R_68K_PLT8O 18 /* 8 bit PLT offset */
-+#define R_68K_COPY 19 /* Copy symbol at runtime */
-+#define R_68K_GLOB_DAT 20 /* Create GOT entry */
-+#define R_68K_JMP_SLOT 21 /* Create PLT entry */
-+#define R_68K_RELATIVE 22 /* Adjust by program base */
-+/* Keep this the last entry. */
-+#define R_68K_NUM 23
-+
-+/* Intel 80386 specific definitions. */
-+
-+/* i386 relocs. */
-+
-+#define R_386_NONE 0 /* No reloc */
-+#define R_386_32 1 /* Direct 32 bit */
-+#define R_386_PC32 2 /* PC relative 32 bit */
-+#define R_386_GOT32 3 /* 32 bit GOT entry */
-+#define R_386_PLT32 4 /* 32 bit PLT address */
-+#define R_386_COPY 5 /* Copy symbol at runtime */
-+#define R_386_GLOB_DAT 6 /* Create GOT entry */
-+#define R_386_JMP_SLOT 7 /* Create PLT entry */
-+#define R_386_RELATIVE 8 /* Adjust by program base */
-+#define R_386_GOTOFF 9 /* 32 bit offset to GOT */
-+#define R_386_GOTPC 10 /* 32 bit PC relative offset to GOT */
-+#define R_386_32PLT 11
-+#define R_386_TLS_TPOFF 14 /* Offset in static TLS block */
-+#define R_386_TLS_IE 15 /* Address of GOT entry for static TLS
-+ block offset */
-+#define R_386_TLS_GOTIE 16 /* GOT entry for static TLS block
-+ offset */
-+#define R_386_TLS_LE 17 /* Offset relative to static TLS
-+ block */
-+#define R_386_TLS_GD 18 /* Direct 32 bit for GNU version of
-+ general dynamic thread local data */
-+#define R_386_TLS_LDM 19 /* Direct 32 bit for GNU version of
-+ local dynamic thread local data
-+ in LE code */
-+#define R_386_16 20
-+#define R_386_PC16 21
-+#define R_386_8 22
-+#define R_386_PC8 23
-+#define R_386_TLS_GD_32 24 /* Direct 32 bit for general dynamic
-+ thread local data */
-+#define R_386_TLS_GD_PUSH 25 /* Tag for pushl in GD TLS code */
-+#define R_386_TLS_GD_CALL 26 /* Relocation for call to
-+ __tls_get_addr() */
-+#define R_386_TLS_GD_POP 27 /* Tag for popl in GD TLS code */
-+#define R_386_TLS_LDM_32 28 /* Direct 32 bit for local dynamic
-+ thread local data in LE code */
-+#define R_386_TLS_LDM_PUSH 29 /* Tag for pushl in LDM TLS code */
-+#define R_386_TLS_LDM_CALL 30 /* Relocation for call to
-+ __tls_get_addr() in LDM code */
-+#define R_386_TLS_LDM_POP 31 /* Tag for popl in LDM TLS code */
-+#define R_386_TLS_LDO_32 32 /* Offset relative to TLS block */
-+#define R_386_TLS_IE_32 33 /* GOT entry for negated static TLS
-+ block offset */
-+#define R_386_TLS_LE_32 34 /* Negated offset relative to static
-+ TLS block */
-+#define R_386_TLS_DTPMOD32 35 /* ID of module containing symbol */
-+#define R_386_TLS_DTPOFF32 36 /* Offset in TLS block */
-+#define R_386_TLS_TPOFF32 37 /* Negated offset in static TLS block */
-+/* Keep this the last entry. */
-+#define R_386_NUM 38
-+
-+/* SUN SPARC specific definitions. */
-+
-+/* Legal values for ST_TYPE subfield of st_info (symbol type). */
-+
-+#define STT_REGISTER 13 /* Global register reserved to app. */
-+
-+/* Values for Elf64_Ehdr.e_flags. */
-+
-+#define EF_SPARCV9_MM 3
-+#define EF_SPARCV9_TSO 0
-+#define EF_SPARCV9_PSO 1
-+#define EF_SPARCV9_RMO 2
-+#define EF_SPARC_LEDATA 0x800000 /* little endian data */
-+#define EF_SPARC_EXT_MASK 0xFFFF00
-+#define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */
-+#define EF_SPARC_SUN_US1 0x000200 /* Sun UltraSPARC1 extensions */
-+#define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */
-+#define EF_SPARC_SUN_US3 0x000800 /* Sun UltraSPARCIII extensions */
-+
-+/* SPARC relocs. */
-+
-+#define R_SPARC_NONE 0 /* No reloc */
-+#define R_SPARC_8 1 /* Direct 8 bit */
-+#define R_SPARC_16 2 /* Direct 16 bit */
-+#define R_SPARC_32 3 /* Direct 32 bit */
-+#define R_SPARC_DISP8 4 /* PC relative 8 bit */
-+#define R_SPARC_DISP16 5 /* PC relative 16 bit */
-+#define R_SPARC_DISP32 6 /* PC relative 32 bit */
-+#define R_SPARC_WDISP30 7 /* PC relative 30 bit shifted */
-+#define R_SPARC_WDISP22 8 /* PC relative 22 bit shifted */
-+#define R_SPARC_HI22 9 /* High 22 bit */
-+#define R_SPARC_22 10 /* Direct 22 bit */
-+#define R_SPARC_13 11 /* Direct 13 bit */
-+#define R_SPARC_LO10 12 /* Truncated 10 bit */
-+#define R_SPARC_GOT10 13 /* Truncated 10 bit GOT entry */
-+#define R_SPARC_GOT13 14 /* 13 bit GOT entry */
-+#define R_SPARC_GOT22 15 /* 22 bit GOT entry shifted */
-+#define R_SPARC_PC10 16 /* PC relative 10 bit truncated */
-+#define R_SPARC_PC22 17 /* PC relative 22 bit shifted */
-+#define R_SPARC_WPLT30 18 /* 30 bit PC relative PLT address */
-+#define R_SPARC_COPY 19 /* Copy symbol at runtime */
-+#define R_SPARC_GLOB_DAT 20 /* Create GOT entry */
-+#define R_SPARC_JMP_SLOT 21 /* Create PLT entry */
-+#define R_SPARC_RELATIVE 22 /* Adjust by program base */
-+#define R_SPARC_UA32 23 /* Direct 32 bit unaligned */
-+
-+/* Additional Sparc64 relocs. */
-+
-+#define R_SPARC_PLT32 24 /* Direct 32 bit ref to PLT entry */
-+#define R_SPARC_HIPLT22 25 /* High 22 bit PLT entry */
-+#define R_SPARC_LOPLT10 26 /* Truncated 10 bit PLT entry */
-+#define R_SPARC_PCPLT32 27 /* PC rel 32 bit ref to PLT entry */
-+#define R_SPARC_PCPLT22 28 /* PC rel high 22 bit PLT entry */
-+#define R_SPARC_PCPLT10 29 /* PC rel trunc 10 bit PLT entry */
-+#define R_SPARC_10 30 /* Direct 10 bit */
-+#define R_SPARC_11 31 /* Direct 11 bit */
-+#define R_SPARC_64 32 /* Direct 64 bit */
-+#define R_SPARC_OLO10 33 /* 10bit with secondary 13bit addend */
-+#define R_SPARC_HH22 34 /* Top 22 bits of direct 64 bit */
-+#define R_SPARC_HM10 35 /* High middle 10 bits of ... */
-+#define R_SPARC_LM22 36 /* Low middle 22 bits of ... */
-+#define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */
-+#define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */
-+#define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */
-+#define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */
-+#define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */
-+#define R_SPARC_7 43 /* Direct 7 bit */
-+#define R_SPARC_5 44 /* Direct 5 bit */
-+#define R_SPARC_6 45 /* Direct 6 bit */
-+#define R_SPARC_DISP64 46 /* PC relative 64 bit */
-+#define R_SPARC_PLT64 47 /* Direct 64 bit ref to PLT entry */
-+#define R_SPARC_HIX22 48 /* High 22 bit complemented */
-+#define R_SPARC_LOX10 49 /* Truncated 11 bit complemented */
-+#define R_SPARC_H44 50 /* Direct high 12 of 44 bit */
-+#define R_SPARC_M44 51 /* Direct mid 22 of 44 bit */
-+#define R_SPARC_L44 52 /* Direct low 10 of 44 bit */
-+#define R_SPARC_REGISTER 53 /* Global register usage */
-+#define R_SPARC_UA64 54 /* Direct 64 bit unaligned */
-+#define R_SPARC_UA16 55 /* Direct 16 bit unaligned */
-+#define R_SPARC_TLS_GD_HI22 56
-+#define R_SPARC_TLS_GD_LO10 57
-+#define R_SPARC_TLS_GD_ADD 58
-+#define R_SPARC_TLS_GD_CALL 59
-+#define R_SPARC_TLS_LDM_HI22 60
-+#define R_SPARC_TLS_LDM_LO10 61
-+#define R_SPARC_TLS_LDM_ADD 62
-+#define R_SPARC_TLS_LDM_CALL 63
-+#define R_SPARC_TLS_LDO_HIX22 64
-+#define R_SPARC_TLS_LDO_LOX10 65
-+#define R_SPARC_TLS_LDO_ADD 66
-+#define R_SPARC_TLS_IE_HI22 67
-+#define R_SPARC_TLS_IE_LO10 68
-+#define R_SPARC_TLS_IE_LD 69
-+#define R_SPARC_TLS_IE_LDX 70
-+#define R_SPARC_TLS_IE_ADD 71
-+#define R_SPARC_TLS_LE_HIX22 72
-+#define R_SPARC_TLS_LE_LOX10 73
-+#define R_SPARC_TLS_DTPMOD32 74
-+#define R_SPARC_TLS_DTPMOD64 75
-+#define R_SPARC_TLS_DTPOFF32 76
-+#define R_SPARC_TLS_DTPOFF64 77
-+#define R_SPARC_TLS_TPOFF32 78
-+#define R_SPARC_TLS_TPOFF64 79
-+/* Keep this the last entry. */
-+#define R_SPARC_NUM 80
-+
-+/* For Sparc64, legal values for d_tag of Elf64_Dyn. */
-+
-+#define DT_SPARC_REGISTER 0x70000001
-+#define DT_SPARC_NUM 2
-+
-+/* Bits present in AT_HWCAP, primarily for Sparc32. */
-+
-+#define HWCAP_SPARC_FLUSH 1 /* The cpu supports flush insn. */
-+#define HWCAP_SPARC_STBAR 2
-+#define HWCAP_SPARC_SWAP 4
-+#define HWCAP_SPARC_MULDIV 8
-+#define HWCAP_SPARC_V9 16 /* The cpu is v9, so v8plus is ok. */
-+#define HWCAP_SPARC_ULTRA3 32
-+
-+/* MIPS R3000 specific definitions. */
-+
-+/* Legal values for e_flags field of Elf32_Ehdr. */
-+
-+#define EF_MIPS_NOREORDER 1 /* A .noreorder directive was used */
-+#define EF_MIPS_PIC 2 /* Contains PIC code */
-+#define EF_MIPS_CPIC 4 /* Uses PIC calling sequence */
-+#define EF_MIPS_XGOT 8
-+#define EF_MIPS_64BIT_WHIRL 16
-+#define EF_MIPS_ABI2 32
-+#define EF_MIPS_ABI_ON32 64
-+#define EF_MIPS_ARCH 0xf0000000 /* MIPS architecture level */
-+
-+/* Legal values for MIPS architecture level. */
-+
-+#define EF_MIPS_ARCH_1 0x00000000 /* -mips1 code. */
-+#define EF_MIPS_ARCH_2 0x10000000 /* -mips2 code. */
-+#define EF_MIPS_ARCH_3 0x20000000 /* -mips3 code. */
-+#define EF_MIPS_ARCH_4 0x30000000 /* -mips4 code. */
-+#define EF_MIPS_ARCH_5 0x40000000 /* -mips5 code. */
-+#define EF_MIPS_ARCH_32 0x60000000 /* MIPS32 code. */
-+#define EF_MIPS_ARCH_64 0x70000000 /* MIPS64 code. */
-+
-+/* The following are non-official names and should not be used. */
-+
-+#define E_MIPS_ARCH_1 0x00000000 /* -mips1 code. */
-+#define E_MIPS_ARCH_2 0x10000000 /* -mips2 code. */
-+#define E_MIPS_ARCH_3 0x20000000 /* -mips3 code. */
-+#define E_MIPS_ARCH_4 0x30000000 /* -mips4 code. */
-+#define E_MIPS_ARCH_5 0x40000000 /* -mips5 code. */
-+#define E_MIPS_ARCH_32 0x60000000 /* MIPS32 code. */
-+#define E_MIPS_ARCH_64 0x70000000 /* MIPS64 code. */
-+
-+/* Special section indices. */
-+
-+#define SHN_MIPS_ACOMMON 0xff00 /* Allocated common symbols */
-+#define SHN_MIPS_TEXT 0xff01 /* Allocated test symbols. */
-+#define SHN_MIPS_DATA 0xff02 /* Allocated data symbols. */
-+#define SHN_MIPS_SCOMMON 0xff03 /* Small common symbols */
-+#define SHN_MIPS_SUNDEFINED 0xff04 /* Small undefined symbols */
-+
-+/* Legal values for sh_type field of Elf32_Shdr. */
-+
-+#define SHT_MIPS_LIBLIST 0x70000000 /* Shared objects used in link */
-+#define SHT_MIPS_MSYM 0x70000001
-+#define SHT_MIPS_CONFLICT 0x70000002 /* Conflicting symbols */
-+#define SHT_MIPS_GPTAB 0x70000003 /* Global data area sizes */
-+#define SHT_MIPS_UCODE 0x70000004 /* Reserved for SGI/MIPS compilers */
-+#define SHT_MIPS_DEBUG 0x70000005 /* MIPS ECOFF debugging information*/
-+#define SHT_MIPS_REGINFO 0x70000006 /* Register usage information */
-+#define SHT_MIPS_PACKAGE 0x70000007
-+#define SHT_MIPS_PACKSYM 0x70000008
-+#define SHT_MIPS_RELD 0x70000009
-+#define SHT_MIPS_IFACE 0x7000000b
-+#define SHT_MIPS_CONTENT 0x7000000c
-+#define SHT_MIPS_OPTIONS 0x7000000d /* Miscellaneous options. */
-+#define SHT_MIPS_SHDR 0x70000010
-+#define SHT_MIPS_FDESC 0x70000011
-+#define SHT_MIPS_EXTSYM 0x70000012
-+#define SHT_MIPS_DENSE 0x70000013
-+#define SHT_MIPS_PDESC 0x70000014
-+#define SHT_MIPS_LOCSYM 0x70000015
-+#define SHT_MIPS_AUXSYM 0x70000016
-+#define SHT_MIPS_OPTSYM 0x70000017
-+#define SHT_MIPS_LOCSTR 0x70000018
-+#define SHT_MIPS_LINE 0x70000019
-+#define SHT_MIPS_RFDESC 0x7000001a
-+#define SHT_MIPS_DELTASYM 0x7000001b
-+#define SHT_MIPS_DELTAINST 0x7000001c
-+#define SHT_MIPS_DELTACLASS 0x7000001d
-+#define SHT_MIPS_DWARF 0x7000001e /* DWARF debugging information. */
-+#define SHT_MIPS_DELTADECL 0x7000001f
-+#define SHT_MIPS_SYMBOL_LIB 0x70000020
-+#define SHT_MIPS_EVENTS 0x70000021 /* Event section. */
-+#define SHT_MIPS_TRANSLATE 0x70000022
-+#define SHT_MIPS_PIXIE 0x70000023
-+#define SHT_MIPS_XLATE 0x70000024
-+#define SHT_MIPS_XLATE_DEBUG 0x70000025
-+#define SHT_MIPS_WHIRL 0x70000026
-+#define SHT_MIPS_EH_REGION 0x70000027
-+#define SHT_MIPS_XLATE_OLD 0x70000028
-+#define SHT_MIPS_PDR_EXCEPTION 0x70000029
-+
-+/* Legal values for sh_flags field of Elf32_Shdr. */
-+
-+#define SHF_MIPS_GPREL 0x10000000 /* Must be part of global data area */
-+#define SHF_MIPS_MERGE 0x20000000
-+#define SHF_MIPS_ADDR 0x40000000
-+#define SHF_MIPS_STRINGS 0x80000000
-+#define SHF_MIPS_NOSTRIP 0x08000000
-+#define SHF_MIPS_LOCAL 0x04000000
-+#define SHF_MIPS_NAMES 0x02000000
-+#define SHF_MIPS_NODUPE 0x01000000
-+
-+
-+/* Symbol tables. */
-+
-+/* MIPS specific values for `st_other'. */
-+#define STO_MIPS_DEFAULT 0x0
-+#define STO_MIPS_INTERNAL 0x1
-+#define STO_MIPS_HIDDEN 0x2
-+#define STO_MIPS_PROTECTED 0x3
-+#define STO_MIPS_SC_ALIGN_UNUSED 0xff
-+
-+/* MIPS specific values for `st_info'. */
-+#define STB_MIPS_SPLIT_COMMON 13
-+
-+/* Entries found in sections of type SHT_MIPS_GPTAB. */
-+
-+typedef union
-+{
-+ struct
-+ {
-+ Elf32_Word gt_current_g_value; /* -G value used for compilation */
-+ Elf32_Word gt_unused; /* Not used */
-+ } gt_header; /* First entry in section */
-+ struct
-+ {
-+ Elf32_Word gt_g_value; /* If this value were used for -G */
-+ Elf32_Word gt_bytes; /* This many bytes would be used */
-+ } gt_entry; /* Subsequent entries in section */
-+} Elf32_gptab;
-+
-+/* Entry found in sections of type SHT_MIPS_REGINFO. */
-+
-+typedef struct
-+{
-+ Elf32_Word ri_gprmask; /* General registers used */
-+ Elf32_Word ri_cprmask[4]; /* Coprocessor registers used */
-+ Elf32_Sword ri_gp_value; /* $gp register value */
-+} Elf32_RegInfo;
-+
-+/* Entries found in sections of type SHT_MIPS_OPTIONS. */
-+
-+typedef struct
-+{
-+ unsigned char kind; /* Determines interpretation of the
-+ variable part of descriptor. */
-+ unsigned char size; /* Size of descriptor, including header. */
-+ Elf32_Section section; /* Section header index of section affected,
-+ 0 for global options. */
-+ Elf32_Word info; /* Kind-specific information. */
-+} Elf_Options;
-+
-+/* Values for `kind' field in Elf_Options. */
-+
-+#define ODK_NULL 0 /* Undefined. */
-+#define ODK_REGINFO 1 /* Register usage information. */
-+#define ODK_EXCEPTIONS 2 /* Exception processing options. */
-+#define ODK_PAD 3 /* Section padding options. */
-+#define ODK_HWPATCH 4 /* Hardware workarounds performed */
-+#define ODK_FILL 5 /* record the fill value used by the linker. */
-+#define ODK_TAGS 6 /* reserve space for desktop tools to write. */
-+#define ODK_HWAND 7 /* HW workarounds. 'AND' bits when merging. */
-+#define ODK_HWOR 8 /* HW workarounds. 'OR' bits when merging. */
-+
-+/* Values for `info' in Elf_Options for ODK_EXCEPTIONS entries. */
-+
-+#define OEX_FPU_MIN 0x1f /* FPE's which MUST be enabled. */
-+#define OEX_FPU_MAX 0x1f00 /* FPE's which MAY be enabled. */
-+#define OEX_PAGE0 0x10000 /* page zero must be mapped. */
-+#define OEX_SMM 0x20000 /* Force sequential memory mode? */
-+#define OEX_FPDBUG 0x40000 /* Force floating point debug mode? */
-+#define OEX_PRECISEFP OEX_FPDBUG
-+#define OEX_DISMISS 0x80000 /* Dismiss invalid address faults? */
-+
-+#define OEX_FPU_INVAL 0x10
-+#define OEX_FPU_DIV0 0x08
-+#define OEX_FPU_OFLO 0x04
-+#define OEX_FPU_UFLO 0x02
-+#define OEX_FPU_INEX 0x01
-+
-+/* Masks for `info' in Elf_Options for an ODK_HWPATCH entry. */
-+
-+#define OHW_R4KEOP 0x1 /* R4000 end-of-page patch. */
-+#define OHW_R8KPFETCH 0x2 /* may need R8000 prefetch patch. */
-+#define OHW_R5KEOP 0x4 /* R5000 end-of-page patch. */
-+#define OHW_R5KCVTL 0x8 /* R5000 cvt.[ds].l bug. clean=1. */
-+
-+#define OPAD_PREFIX 0x1
-+#define OPAD_POSTFIX 0x2
-+#define OPAD_SYMBOL 0x4
-+
-+/* Entry found in `.options' section. */
-+
-+typedef struct
-+{
-+ Elf32_Word hwp_flags1; /* Extra flags. */
-+ Elf32_Word hwp_flags2; /* Extra flags. */
-+} Elf_Options_Hw;
-+
-+/* Masks for `info' in ElfOptions for ODK_HWAND and ODK_HWOR entries. */
-+
-+#define OHWA0_R4KEOP_CHECKED 0x00000001
-+#define OHWA1_R4KEOP_CLEAN 0x00000002
-+
-+/* MIPS relocs. */
-+
-+#define R_MIPS_NONE 0 /* No reloc */
-+#define R_MIPS_16 1 /* Direct 16 bit */
-+#define R_MIPS_32 2 /* Direct 32 bit */
-+#define R_MIPS_REL32 3 /* PC relative 32 bit */
-+#define R_MIPS_26 4 /* Direct 26 bit shifted */
-+#define R_MIPS_HI16 5 /* High 16 bit */
-+#define R_MIPS_LO16 6 /* Low 16 bit */
-+#define R_MIPS_GPREL16 7 /* GP relative 16 bit */
-+#define R_MIPS_LITERAL 8 /* 16 bit literal entry */
-+#define R_MIPS_GOT16 9 /* 16 bit GOT entry */
-+#define R_MIPS_PC16 10 /* PC relative 16 bit */
-+#define R_MIPS_CALL16 11 /* 16 bit GOT entry for function */
-+#define R_MIPS_GPREL32 12 /* GP relative 32 bit */
-+
-+#define R_MIPS_SHIFT5 16
-+#define R_MIPS_SHIFT6 17
-+#define R_MIPS_64 18
-+#define R_MIPS_GOT_DISP 19
-+#define R_MIPS_GOT_PAGE 20
-+#define R_MIPS_GOT_OFST 21
-+#define R_MIPS_GOT_HI16 22
-+#define R_MIPS_GOT_LO16 23
-+#define R_MIPS_SUB 24
-+#define R_MIPS_INSERT_A 25
-+#define R_MIPS_INSERT_B 26
-+#define R_MIPS_DELETE 27
-+#define R_MIPS_HIGHER 28
-+#define R_MIPS_HIGHEST 29
-+#define R_MIPS_CALL_HI16 30
-+#define R_MIPS_CALL_LO16 31
-+#define R_MIPS_SCN_DISP 32
-+#define R_MIPS_REL16 33
-+#define R_MIPS_ADD_IMMEDIATE 34
-+#define R_MIPS_PJUMP 35
-+#define R_MIPS_RELGOT 36
-+#define R_MIPS_JALR 37
-+/* Keep this the last entry. */
-+#define R_MIPS_NUM 38
-+
-+/* Legal values for p_type field of Elf32_Phdr. */
-+
-+#define PT_MIPS_REGINFO 0x70000000 /* Register usage information */
-+#define PT_MIPS_RTPROC 0x70000001 /* Runtime procedure table. */
-+#define PT_MIPS_OPTIONS 0x70000002
-+
-+/* Special program header types. */
-+
-+#define PF_MIPS_LOCAL 0x10000000
-+
-+/* Legal values for d_tag field of Elf32_Dyn. */
-+
-+#define DT_MIPS_RLD_VERSION 0x70000001 /* Runtime linker interface version */
-+#define DT_MIPS_TIME_STAMP 0x70000002 /* Timestamp */
-+#define DT_MIPS_ICHECKSUM 0x70000003 /* Checksum */
-+#define DT_MIPS_IVERSION 0x70000004 /* Version string (string tbl index) */
-+#define DT_MIPS_FLAGS 0x70000005 /* Flags */
-+#define DT_MIPS_BASE_ADDRESS 0x70000006 /* Base address */
-+#define DT_MIPS_MSYM 0x70000007
-+#define DT_MIPS_CONFLICT 0x70000008 /* Address of CONFLICT section */
-+#define DT_MIPS_LIBLIST 0x70000009 /* Address of LIBLIST section */
-+#define DT_MIPS_LOCAL_GOTNO 0x7000000a /* Number of local GOT entries */
-+#define DT_MIPS_CONFLICTNO 0x7000000b /* Number of CONFLICT entries */
-+#define DT_MIPS_LIBLISTNO 0x70000010 /* Number of LIBLIST entries */
-+#define DT_MIPS_SYMTABNO 0x70000011 /* Number of DYNSYM entries */
-+#define DT_MIPS_UNREFEXTNO 0x70000012 /* First external DYNSYM */
-+#define DT_MIPS_GOTSYM 0x70000013 /* First GOT entry in DYNSYM */
-+#define DT_MIPS_HIPAGENO 0x70000014 /* Number of GOT page table entries */
-+#define DT_MIPS_RLD_MAP 0x70000016 /* Address of run time loader map. */
-+#define DT_MIPS_DELTA_CLASS 0x70000017 /* Delta C++ class definition. */
-+#define DT_MIPS_DELTA_CLASS_NO 0x70000018 /* Number of entries in
-+ DT_MIPS_DELTA_CLASS. */
-+#define DT_MIPS_DELTA_INSTANCE 0x70000019 /* Delta C++ class instances. */
-+#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a /* Number of entries in
-+ DT_MIPS_DELTA_INSTANCE. */
-+#define DT_MIPS_DELTA_RELOC 0x7000001b /* Delta relocations. */
-+#define DT_MIPS_DELTA_RELOC_NO 0x7000001c /* Number of entries in
-+ DT_MIPS_DELTA_RELOC. */
-+#define DT_MIPS_DELTA_SYM 0x7000001d /* Delta symbols that Delta
-+ relocations refer to. */
-+#define DT_MIPS_DELTA_SYM_NO 0x7000001e /* Number of entries in
-+ DT_MIPS_DELTA_SYM. */
-+#define DT_MIPS_DELTA_CLASSSYM 0x70000020 /* Delta symbols that hold the
-+ class declaration. */
-+#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 /* Number of entries in
-+ DT_MIPS_DELTA_CLASSSYM. */
-+#define DT_MIPS_CXX_FLAGS 0x70000022 /* Flags indicating for C++ flavor. */
-+#define DT_MIPS_PIXIE_INIT 0x70000023
-+#define DT_MIPS_SYMBOL_LIB 0x70000024
-+#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
-+#define DT_MIPS_LOCAL_GOTIDX 0x70000026
-+#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
-+#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
-+#define DT_MIPS_OPTIONS 0x70000029 /* Address of .options. */
-+#define DT_MIPS_INTERFACE 0x7000002a /* Address of .interface. */
-+#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
-+#define DT_MIPS_INTERFACE_SIZE 0x7000002c /* Size of the .interface section. */
-+#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d /* Address of rld_text_rsolve
-+ function stored in GOT. */
-+#define DT_MIPS_PERF_SUFFIX 0x7000002e /* Default suffix of dso to be added
-+ by rld on dlopen() calls. */
-+#define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */
-+#define DT_MIPS_GP_VALUE 0x70000030 /* GP value for aux GOTs. */
-+#define DT_MIPS_AUX_DYNAMIC 0x70000031 /* Address of aux .dynamic. */
-+#define DT_MIPS_NUM 0x32
-+
-+/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */
-+
-+#define RHF_NONE 0 /* No flags */
-+#define RHF_QUICKSTART (1 << 0) /* Use quickstart */
-+#define RHF_NOTPOT (1 << 1) /* Hash size not power of 2 */
-+#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) /* Ignore LD_LIBRARY_PATH */
-+#define RHF_NO_MOVE (1 << 3)
-+#define RHF_SGI_ONLY (1 << 4)
-+#define RHF_GUARANTEE_INIT (1 << 5)
-+#define RHF_DELTA_C_PLUS_PLUS (1 << 6)
-+#define RHF_GUARANTEE_START_INIT (1 << 7)
-+#define RHF_PIXIE (1 << 8)
-+#define RHF_DEFAULT_DELAY_LOAD (1 << 9)
-+#define RHF_REQUICKSTART (1 << 10)
-+#define RHF_REQUICKSTARTED (1 << 11)
-+#define RHF_CORD (1 << 12)
-+#define RHF_NO_UNRES_UNDEF (1 << 13)
-+#define RHF_RLD_ORDER_SAFE (1 << 14)
-+
-+/* Entries found in sections of type SHT_MIPS_LIBLIST. */
-+
-+typedef struct
-+{
-+ Elf32_Word l_name; /* Name (string table index) */
-+ Elf32_Word l_time_stamp; /* Timestamp */
-+ Elf32_Word l_checksum; /* Checksum */
-+ Elf32_Word l_version; /* Interface version */
-+ Elf32_Word l_flags; /* Flags */
-+} Elf32_Lib;
-+
-+typedef struct
-+{
-+ Elf64_Word l_name; /* Name (string table index) */
-+ Elf64_Word l_time_stamp; /* Timestamp */
-+ Elf64_Word l_checksum; /* Checksum */
-+ Elf64_Word l_version; /* Interface version */
-+ Elf64_Word l_flags; /* Flags */
-+} Elf64_Lib;
-+
-+
-+/* Legal values for l_flags. */
-+
-+#define LL_NONE 0
-+#define LL_EXACT_MATCH (1 << 0) /* Require exact match */
-+#define LL_IGNORE_INT_VER (1 << 1) /* Ignore interface version */
-+#define LL_REQUIRE_MINOR (1 << 2)
-+#define LL_EXPORTS (1 << 3)
-+#define LL_DELAY_LOAD (1 << 4)
-+#define LL_DELTA (1 << 5)
-+
-+/* Entries found in sections of type SHT_MIPS_CONFLICT. */
-+
-+typedef Elf32_Addr Elf32_Conflict;
-+
-+
-+/* HPPA specific definitions. */
-+
-+/* Legal values for e_flags field of Elf32_Ehdr. */
-+
-+#define EF_PARISC_TRAPNIL 0x00010000 /* Trap nil pointer dereference. */
-+#define EF_PARISC_EXT 0x00020000 /* Program uses arch. extensions. */
-+#define EF_PARISC_LSB 0x00040000 /* Program expects little endian. */
-+#define EF_PARISC_WIDE 0x00080000 /* Program expects wide mode. */
-+#define EF_PARISC_NO_KABP 0x00100000 /* No kernel assisted branch
-+ prediction. */
-+#define EF_PARISC_LAZYSWAP 0x00400000 /* Allow lazy swapping. */
-+#define EF_PARISC_ARCH 0x0000ffff /* Architecture version. */
-+
-+/* Defined values for `e_flags & EF_PARISC_ARCH' are: */
-+
-+#define EFA_PARISC_1_0 0x020b /* PA-RISC 1.0 big-endian. */
-+#define EFA_PARISC_1_1 0x0210 /* PA-RISC 1.1 big-endian. */
-+#define EFA_PARISC_2_0 0x0214 /* PA-RISC 2.0 big-endian. */
-+
-+/* Additional section indeces. */
-+
-+#define SHN_PARISC_ANSI_COMMON 0xff00 /* Section for tenatively declared
-+ symbols in ANSI C. */
-+#define SHN_PARISC_HUGE_COMMON 0xff01 /* Common blocks in huge model. */
-+
-+/* Legal values for sh_type field of Elf32_Shdr. */
-+
-+#define SHT_PARISC_EXT 0x70000000 /* Contains product specific ext. */
-+#define SHT_PARISC_UNWIND 0x70000001 /* Unwind information. */
-+#define SHT_PARISC_DOC 0x70000002 /* Debug info for optimized code. */
-+
-+/* Legal values for sh_flags field of Elf32_Shdr. */
-+
-+#define SHF_PARISC_SHORT 0x20000000 /* Section with short addressing. */
-+#define SHF_PARISC_HUGE 0x40000000 /* Section far from gp. */
-+#define SHF_PARISC_SBP 0x80000000 /* Static branch prediction code. */
-+
-+/* Legal values for ST_TYPE subfield of st_info (symbol type). */
-+
-+#define STT_PARISC_MILLICODE 13 /* Millicode function entry point. */
-+
-+#define STT_HP_OPAQUE (STT_LOOS + 0x1)
-+#define STT_HP_STUB (STT_LOOS + 0x2)
-+
-+/* HPPA relocs. */
-+
-+#define R_PARISC_NONE 0 /* No reloc. */
-+#define R_PARISC_DIR32 1 /* Direct 32-bit reference. */
-+#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */
-+#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */
-+#define R_PARISC_DIR17F 4 /* 17 bits of eff. address. */
-+#define R_PARISC_DIR14R 6 /* Right 14 bits of eff. address. */
-+#define R_PARISC_PCREL32 9 /* 32-bit rel. address. */
-+#define R_PARISC_PCREL21L 10 /* Left 21 bits of rel. address. */
-+#define R_PARISC_PCREL17R 11 /* Right 17 bits of rel. address. */
-+#define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */
-+#define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */
-+#define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */
-+#define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */
-+#define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */
-+#define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */
-+#define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */
-+#define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */
-+#define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */
-+#define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */
-+#define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */
-+#define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */
-+#define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */
-+#define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */
-+#define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */
-+#define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */
-+#define R_PARISC_FPTR64 64 /* 64 bits function address. */
-+#define R_PARISC_PLABEL32 65 /* 32 bits function address. */
-+#define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */
-+#define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */
-+#define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */
-+#define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */
-+#define R_PARISC_PCREL16F 77 /* 16 bits PC-rel. address. */
-+#define R_PARISC_PCREL16WF 78 /* 16 bits PC-rel. address. */
-+#define R_PARISC_PCREL16DF 79 /* 16 bits PC-rel. address. */
-+#define R_PARISC_DIR64 80 /* 64 bits of eff. address. */
-+#define R_PARISC_DIR14WR 83 /* 14 bits of eff. address. */
-+#define R_PARISC_DIR14DR 84 /* 14 bits of eff. address. */
-+#define R_PARISC_DIR16F 85 /* 16 bits of eff. address. */
-+#define R_PARISC_DIR16WF 86 /* 16 bits of eff. address. */
-+#define R_PARISC_DIR16DF 87 /* 16 bits of eff. address. */
-+#define R_PARISC_GPREL64 88 /* 64 bits of GP-rel. address. */
-+#define R_PARISC_GPREL14WR 91 /* GP-rel. address, right 14 bits. */
-+#define R_PARISC_GPREL14DR 92 /* GP-rel. address, right 14 bits. */
-+#define R_PARISC_GPREL16F 93 /* 16 bits GP-rel. address. */
-+#define R_PARISC_GPREL16WF 94 /* 16 bits GP-rel. address. */
-+#define R_PARISC_GPREL16DF 95 /* 16 bits GP-rel. address. */
-+#define R_PARISC_LTOFF64 96 /* 64 bits LT-rel. address. */
-+#define R_PARISC_LTOFF14WR 99 /* LT-rel. address, right 14 bits. */
-+#define R_PARISC_LTOFF14DR 100 /* LT-rel. address, right 14 bits. */
-+#define R_PARISC_LTOFF16F 101 /* 16 bits LT-rel. address. */
-+#define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */
-+#define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */
-+#define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */
-+#define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */
-+#define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */
-+#define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */
-+#define R_PARISC_PLTOFF16F 117 /* 16 bits LT-rel. address. */
-+#define R_PARISC_PLTOFF16WF 118 /* 16 bits PLT-rel. address. */
-+#define R_PARISC_PLTOFF16DF 119 /* 16 bits PLT-rel. address. */
-+#define R_PARISC_LTOFF_FPTR64 120 /* 64 bits LT-rel. function ptr. */
-+#define R_PARISC_LTOFF_FPTR14WR 123 /* LT-rel. fct. ptr., right 14 bits. */
-+#define R_PARISC_LTOFF_FPTR14DR 124 /* LT-rel. fct. ptr., right 14 bits. */
-+#define R_PARISC_LTOFF_FPTR16F 125 /* 16 bits LT-rel. function ptr. */
-+#define R_PARISC_LTOFF_FPTR16WF 126 /* 16 bits LT-rel. function ptr. */
-+#define R_PARISC_LTOFF_FPTR16DF 127 /* 16 bits LT-rel. function ptr. */
-+#define R_PARISC_LORESERVE 128
-+#define R_PARISC_COPY 128 /* Copy relocation. */
-+#define R_PARISC_IPLT 129 /* Dynamic reloc, imported PLT */
-+#define R_PARISC_EPLT 130 /* Dynamic reloc, exported PLT */
-+#define R_PARISC_TPREL32 153 /* 32 bits TP-rel. address. */
-+#define R_PARISC_TPREL21L 154 /* TP-rel. address, left 21 bits. */
-+#define R_PARISC_TPREL14R 158 /* TP-rel. address, right 14 bits. */
-+#define R_PARISC_LTOFF_TP21L 162 /* LT-TP-rel. address, left 21 bits. */
-+#define R_PARISC_LTOFF_TP14R 166 /* LT-TP-rel. address, right 14 bits.*/
-+#define R_PARISC_LTOFF_TP14F 167 /* 14 bits LT-TP-rel. address. */
-+#define R_PARISC_TPREL64 216 /* 64 bits TP-rel. address. */
-+#define R_PARISC_TPREL14WR 219 /* TP-rel. address, right 14 bits. */
-+#define R_PARISC_TPREL14DR 220 /* TP-rel. address, right 14 bits. */
-+#define R_PARISC_TPREL16F 221 /* 16 bits TP-rel. address. */
-+#define R_PARISC_TPREL16WF 222 /* 16 bits TP-rel. address. */
-+#define R_PARISC_TPREL16DF 223 /* 16 bits TP-rel. address. */
-+#define R_PARISC_LTOFF_TP64 224 /* 64 bits LT-TP-rel. address. */
-+#define R_PARISC_LTOFF_TP14WR 227 /* LT-TP-rel. address, right 14 bits.*/
-+#define R_PARISC_LTOFF_TP14DR 228 /* LT-TP-rel. address, right 14 bits.*/
-+#define R_PARISC_LTOFF_TP16F 229 /* 16 bits LT-TP-rel. address. */
-+#define R_PARISC_LTOFF_TP16WF 230 /* 16 bits LT-TP-rel. address. */
-+#define R_PARISC_LTOFF_TP16DF 231 /* 16 bits LT-TP-rel. address. */
-+#define R_PARISC_HIRESERVE 255
-+
-+/* Legal values for p_type field of Elf32_Phdr/Elf64_Phdr. */
-+
-+#define PT_HP_TLS (PT_LOOS + 0x0)
-+#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
-+#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
-+#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
-+#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
-+#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
-+#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
-+#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
-+#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
-+#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
-+#define PT_HP_PARALLEL (PT_LOOS + 0x10)
-+#define PT_HP_FASTBIND (PT_LOOS + 0x11)
-+#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
-+#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
-+#define PT_HP_STACK (PT_LOOS + 0x14)
-+
-+#define PT_PARISC_ARCHEXT 0x70000000
-+#define PT_PARISC_UNWIND 0x70000001
-+
-+/* Legal values for p_flags field of Elf32_Phdr/Elf64_Phdr. */
-+
-+#define PF_PARISC_SBP 0x08000000
-+
-+#define PF_HP_PAGE_SIZE 0x00100000
-+#define PF_HP_FAR_SHARED 0x00200000
-+#define PF_HP_NEAR_SHARED 0x00400000
-+#define PF_HP_CODE 0x01000000
-+#define PF_HP_MODIFY 0x02000000
-+#define PF_HP_LAZYSWAP 0x04000000
-+#define PF_HP_SBP 0x08000000
-+
-+
-+/* Alpha specific definitions. */
-+
-+/* Legal values for e_flags field of Elf64_Ehdr. */
-+
-+#define EF_ALPHA_32BIT 1 /* All addresses must be < 2GB. */
-+#define EF_ALPHA_CANRELAX 2 /* Relocations for relaxing exist. */
-+
-+/* Legal values for sh_type field of Elf64_Shdr. */
-+
-+/* These two are primerily concerned with ECOFF debugging info. */
-+#define SHT_ALPHA_DEBUG 0x70000001
-+#define SHT_ALPHA_REGINFO 0x70000002
-+
-+/* Legal values for sh_flags field of Elf64_Shdr. */
-+
-+#define SHF_ALPHA_GPREL 0x10000000
-+
-+/* Legal values for st_other field of Elf64_Sym. */
-+#define STO_ALPHA_NOPV 0x80 /* No PV required. */
-+#define STO_ALPHA_STD_GPLOAD 0x88 /* PV only used for initial ldgp. */
-+
-+/* Alpha relocs. */
-+
-+#define R_ALPHA_NONE 0 /* No reloc */
-+#define R_ALPHA_REFLONG 1 /* Direct 32 bit */
-+#define R_ALPHA_REFQUAD 2 /* Direct 64 bit */
-+#define R_ALPHA_GPREL32 3 /* GP relative 32 bit */
-+#define R_ALPHA_LITERAL 4 /* GP relative 16 bit w/optimization */
-+#define R_ALPHA_LITUSE 5 /* Optimization hint for LITERAL */
-+#define R_ALPHA_GPDISP 6 /* Add displacement to GP */
-+#define R_ALPHA_BRADDR 7 /* PC+4 relative 23 bit shifted */
-+#define R_ALPHA_HINT 8 /* PC+4 relative 16 bit shifted */
-+#define R_ALPHA_SREL16 9 /* PC relative 16 bit */
-+#define R_ALPHA_SREL32 10 /* PC relative 32 bit */
-+#define R_ALPHA_SREL64 11 /* PC relative 64 bit */
-+#define R_ALPHA_GPRELHIGH 17 /* GP relative 32 bit, high 16 bits */
-+#define R_ALPHA_GPRELLOW 18 /* GP relative 32 bit, low 16 bits */
-+#define R_ALPHA_GPREL16 19 /* GP relative 16 bit */
-+#define R_ALPHA_COPY 24 /* Copy symbol at runtime */
-+#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */
-+#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */
-+#define R_ALPHA_RELATIVE 27 /* Adjust by program base */
-+#define R_ALPHA_TLS_GD_HI 28
-+#define R_ALPHA_TLSGD 29
-+#define R_ALPHA_TLS_LDM 30
-+#define R_ALPHA_DTPMOD64 31
-+#define R_ALPHA_GOTDTPREL 32
-+#define R_ALPHA_DTPREL64 33
-+#define R_ALPHA_DTPRELHI 34
-+#define R_ALPHA_DTPRELLO 35
-+#define R_ALPHA_DTPREL16 36
-+#define R_ALPHA_GOTTPREL 37
-+#define R_ALPHA_TPREL64 38
-+#define R_ALPHA_TPRELHI 39
-+#define R_ALPHA_TPRELLO 40
-+#define R_ALPHA_TPREL16 41
-+/* Keep this the last entry. */
-+#define R_ALPHA_NUM 46
-+
-+/* Magic values of the LITUSE relocation addend. */
-+#define LITUSE_ALPHA_ADDR 0
-+#define LITUSE_ALPHA_BASE 1
-+#define LITUSE_ALPHA_BYTOFF 2
-+#define LITUSE_ALPHA_JSR 3
-+#define LITUSE_ALPHA_TLS_GD 4
-+#define LITUSE_ALPHA_TLS_LDM 5
-+
-+
-+/* PowerPC specific declarations */
-+
-+/* Values for Elf32/64_Ehdr.e_flags. */
-+#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag */
-+
-+/* Cygnus local bits below */
-+#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag*/
-+#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib
-+ flag */
-+
-+/* PowerPC relocations defined by the ABIs */
-+#define R_PPC_NONE 0
-+#define R_PPC_ADDR32 1 /* 32bit absolute address */
-+#define R_PPC_ADDR24 2 /* 26bit address, 2 bits ignored. */
-+#define R_PPC_ADDR16 3 /* 16bit absolute address */
-+#define R_PPC_ADDR16_LO 4 /* lower 16bit of absolute address */
-+#define R_PPC_ADDR16_HI 5 /* high 16bit of absolute address */
-+#define R_PPC_ADDR16_HA 6 /* adjusted high 16bit */
-+#define R_PPC_ADDR14 7 /* 16bit address, 2 bits ignored */
-+#define R_PPC_ADDR14_BRTAKEN 8
-+#define R_PPC_ADDR14_BRNTAKEN 9
-+#define R_PPC_REL24 10 /* PC relative 26 bit */
-+#define R_PPC_REL14 11 /* PC relative 16 bit */
-+#define R_PPC_REL14_BRTAKEN 12
-+#define R_PPC_REL14_BRNTAKEN 13
-+#define R_PPC_GOT16 14
-+#define R_PPC_GOT16_LO 15
-+#define R_PPC_GOT16_HI 16
-+#define R_PPC_GOT16_HA 17
-+#define R_PPC_PLTREL24 18
-+#define R_PPC_COPY 19
-+#define R_PPC_GLOB_DAT 20
-+#define R_PPC_JMP_SLOT 21
-+#define R_PPC_RELATIVE 22
-+#define R_PPC_LOCAL24PC 23
-+#define R_PPC_UADDR32 24
-+#define R_PPC_UADDR16 25
-+#define R_PPC_REL32 26
-+#define R_PPC_PLT32 27
-+#define R_PPC_PLTREL32 28
-+#define R_PPC_PLT16_LO 29
-+#define R_PPC_PLT16_HI 30
-+#define R_PPC_PLT16_HA 31
-+#define R_PPC_SDAREL16 32
-+#define R_PPC_SECTOFF 33
-+#define R_PPC_SECTOFF_LO 34
-+#define R_PPC_SECTOFF_HI 35
-+#define R_PPC_SECTOFF_HA 36
-+
-+/* PowerPC relocations defined for the TLS access ABI. */
-+#define R_PPC_TLS 67 /* none (sym+add)@tls */
-+#define R_PPC_DTPMOD32 68 /* word32 (sym+add)@dtpmod */
-+#define R_PPC_TPREL16 69 /* half16* (sym+add)@tprel */
-+#define R_PPC_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */
-+#define R_PPC_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */
-+#define R_PPC_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */
-+#define R_PPC_TPREL32 73 /* word32 (sym+add)@tprel */
-+#define R_PPC_DTPREL16 74 /* half16* (sym+add)@dtprel */
-+#define R_PPC_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */
-+#define R_PPC_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */
-+#define R_PPC_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */
-+#define R_PPC_DTPREL32 78 /* word32 (sym+add)@dtprel */
-+#define R_PPC_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */
-+#define R_PPC_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */
-+#define R_PPC_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */
-+#define R_PPC_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */
-+#define R_PPC_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */
-+#define R_PPC_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */
-+#define R_PPC_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */
-+#define R_PPC_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */
-+#define R_PPC_GOT_TPREL16 87 /* half16* (sym+add)@got@tprel */
-+#define R_PPC_GOT_TPREL16_LO 88 /* half16 (sym+add)@got@tprel@l */
-+#define R_PPC_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */
-+#define R_PPC_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */
-+#define R_PPC_GOT_DTPREL16 91 /* half16* (sym+add)@got@dtprel */
-+#define R_PPC_GOT_DTPREL16_LO 92 /* half16* (sym+add)@got@dtprel@l */
-+#define R_PPC_GOT_DTPREL16_HI 93 /* half16* (sym+add)@got@dtprel@h */
-+#define R_PPC_GOT_DTPREL16_HA 94 /* half16* (sym+add)@got@dtprel@ha */
-+
-+/* Keep this the last entry. */
-+#define R_PPC_NUM 95
-+
-+/* The remaining relocs are from the Embedded ELF ABI, and are not
-+ in the SVR4 ELF ABI. */
-+#define R_PPC_EMB_NADDR32 101
-+#define R_PPC_EMB_NADDR16 102
-+#define R_PPC_EMB_NADDR16_LO 103
-+#define R_PPC_EMB_NADDR16_HI 104
-+#define R_PPC_EMB_NADDR16_HA 105
-+#define R_PPC_EMB_SDAI16 106
-+#define R_PPC_EMB_SDA2I16 107
-+#define R_PPC_EMB_SDA2REL 108
-+#define R_PPC_EMB_SDA21 109 /* 16 bit offset in SDA */
-+#define R_PPC_EMB_MRKREF 110
-+#define R_PPC_EMB_RELSEC16 111
-+#define R_PPC_EMB_RELST_LO 112
-+#define R_PPC_EMB_RELST_HI 113
-+#define R_PPC_EMB_RELST_HA 114
-+#define R_PPC_EMB_BIT_FLD 115
-+#define R_PPC_EMB_RELSDA 116 /* 16 bit relative offset in SDA */
-+
-+/* Diab tool relocations. */
-+#define R_PPC_DIAB_SDA21_LO 180 /* like EMB_SDA21, but lower 16 bit */
-+#define R_PPC_DIAB_SDA21_HI 181 /* like EMB_SDA21, but high 16 bit */
-+#define R_PPC_DIAB_SDA21_HA 182 /* like EMB_SDA21, adjusted high 16 */
-+#define R_PPC_DIAB_RELSDA_LO 183 /* like EMB_RELSDA, but lower 16 bit */
-+#define R_PPC_DIAB_RELSDA_HI 184 /* like EMB_RELSDA, but high 16 bit */
-+#define R_PPC_DIAB_RELSDA_HA 185 /* like EMB_RELSDA, adjusted high 16 */
-+
-+/* This is a phony reloc to handle any old fashioned TOC16 references
-+ that may still be in object files. */
-+#define R_PPC_TOC16 255
-+
-+
-+/* PowerPC64 relocations defined by the ABIs */
-+#define R_PPC64_NONE R_PPC_NONE
-+#define R_PPC64_ADDR32 R_PPC_ADDR32 /* 32bit absolute address */
-+#define R_PPC64_ADDR24 R_PPC_ADDR24 /* 26bit address, word aligned */
-+#define R_PPC64_ADDR16 R_PPC_ADDR16 /* 16bit absolute address */
-+#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO /* lower 16bits of address */
-+#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI /* high 16bits of address. */
-+#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA /* adjusted high 16bits. */
-+#define R_PPC64_ADDR14 R_PPC_ADDR14 /* 16bit address, word aligned */
-+#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
-+#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
-+#define R_PPC64_REL24 R_PPC_REL24 /* PC-rel. 26 bit, word aligned */
-+#define R_PPC64_REL14 R_PPC_REL14 /* PC relative 16 bit */
-+#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
-+#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
-+#define R_PPC64_GOT16 R_PPC_GOT16
-+#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
-+#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
-+#define R_PPC64_GOT16_HA R_PPC_GOT16_HA
-+
-+#define R_PPC64_COPY R_PPC_COPY
-+#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
-+#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
-+#define R_PPC64_RELATIVE R_PPC_RELATIVE
-+
-+#define R_PPC64_UADDR32 R_PPC_UADDR32
-+#define R_PPC64_UADDR16 R_PPC_UADDR16
-+#define R_PPC64_REL32 R_PPC_REL32
-+#define R_PPC64_PLT32 R_PPC_PLT32
-+#define R_PPC64_PLTREL32 R_PPC_PLTREL32
-+#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
-+#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
-+#define R_PPC64_PLT16_HA R_PPC_PLT16_HA
-+
-+#define R_PPC64_SECTOFF R_PPC_SECTOFF
-+#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
-+#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
-+#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
-+#define R_PPC64_ADDR30 37 /* word30 (S + A - P) >> 2 */
-+#define R_PPC64_ADDR64 38 /* doubleword64 S + A */
-+#define R_PPC64_ADDR16_HIGHER 39 /* half16 #higher(S + A) */
-+#define R_PPC64_ADDR16_HIGHERA 40 /* half16 #highera(S + A) */
-+#define R_PPC64_ADDR16_HIGHEST 41 /* half16 #highest(S + A) */
-+#define R_PPC64_ADDR16_HIGHESTA 42 /* half16 #highesta(S + A) */
-+#define R_PPC64_UADDR64 43 /* doubleword64 S + A */
-+#define R_PPC64_REL64 44 /* doubleword64 S + A - P */
-+#define R_PPC64_PLT64 45 /* doubleword64 L + A */
-+#define R_PPC64_PLTREL64 46 /* doubleword64 L + A - P */
-+#define R_PPC64_TOC16 47 /* half16* S + A - .TOC */
-+#define R_PPC64_TOC16_LO 48 /* half16 #lo(S + A - .TOC.) */
-+#define R_PPC64_TOC16_HI 49 /* half16 #hi(S + A - .TOC.) */
-+#define R_PPC64_TOC16_HA 50 /* half16 #ha(S + A - .TOC.) */
-+#define R_PPC64_TOC 51 /* doubleword64 .TOC */
-+#define R_PPC64_PLTGOT16 52 /* half16* M + A */
-+#define R_PPC64_PLTGOT16_LO 53 /* half16 #lo(M + A) */
-+#define R_PPC64_PLTGOT16_HI 54 /* half16 #hi(M + A) */
-+#define R_PPC64_PLTGOT16_HA 55 /* half16 #ha(M + A) */
-+
-+#define R_PPC64_ADDR16_DS 56 /* half16ds* (S + A) >> 2 */
-+#define R_PPC64_ADDR16_LO_DS 57 /* half16ds #lo(S + A) >> 2 */
-+#define R_PPC64_GOT16_DS 58 /* half16ds* (G + A) >> 2 */
-+#define R_PPC64_GOT16_LO_DS 59 /* half16ds #lo(G + A) >> 2 */
-+#define R_PPC64_PLT16_LO_DS 60 /* half16ds #lo(L + A) >> 2 */
-+#define R_PPC64_SECTOFF_DS 61 /* half16ds* (R + A) >> 2 */
-+#define R_PPC64_SECTOFF_LO_DS 62 /* half16ds #lo(R + A) >> 2 */
-+#define R_PPC64_TOC16_DS 63 /* half16ds* (S + A - .TOC.) >> 2 */
-+#define R_PPC64_TOC16_LO_DS 64 /* half16ds #lo(S + A - .TOC.) >> 2 */
-+#define R_PPC64_PLTGOT16_DS 65 /* half16ds* (M + A) >> 2 */
-+#define R_PPC64_PLTGOT16_LO_DS 66 /* half16ds #lo(M + A) >> 2 */
-+
-+/* PowerPC64 relocations defined for the TLS access ABI. */
-+#define R_PPC64_TLS 67 /* none (sym+add)@tls */
-+#define R_PPC64_DTPMOD64 68 /* doubleword64 (sym+add)@dtpmod */
-+#define R_PPC64_TPREL16 69 /* half16* (sym+add)@tprel */
-+#define R_PPC64_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */
-+#define R_PPC64_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */
-+#define R_PPC64_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */
-+#define R_PPC64_TPREL64 73 /* doubleword64 (sym+add)@tprel */
-+#define R_PPC64_DTPREL16 74 /* half16* (sym+add)@dtprel */
-+#define R_PPC64_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */
-+#define R_PPC64_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */
-+#define R_PPC64_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */
-+#define R_PPC64_DTPREL64 78 /* doubleword64 (sym+add)@dtprel */
-+#define R_PPC64_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */
-+#define R_PPC64_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */
-+#define R_PPC64_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */
-+#define R_PPC64_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */
-+#define R_PPC64_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */
-+#define R_PPC64_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */
-+#define R_PPC64_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */
-+#define R_PPC64_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */
-+#define R_PPC64_GOT_TPREL16_DS 87 /* half16ds* (sym+add)@got@tprel */
-+#define R_PPC64_GOT_TPREL16_LO_DS 88 /* half16ds (sym+add)@got@tprel@l */
-+#define R_PPC64_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */
-+#define R_PPC64_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */
-+#define R_PPC64_GOT_DTPREL16_DS 91 /* half16ds* (sym+add)@got@dtprel */
-+#define R_PPC64_GOT_DTPREL16_LO_DS 92 /* half16ds (sym+add)@got@dtprel@l */
-+#define R_PPC64_GOT_DTPREL16_HI 93 /* half16 (sym+add)@got@dtprel@h */
-+#define R_PPC64_GOT_DTPREL16_HA 94 /* half16 (sym+add)@got@dtprel@ha */
-+#define R_PPC64_TPREL16_DS 95 /* half16ds* (sym+add)@tprel */
-+#define R_PPC64_TPREL16_LO_DS 96 /* half16ds (sym+add)@tprel@l */
-+#define R_PPC64_TPREL16_HIGHER 97 /* half16 (sym+add)@tprel@higher */
-+#define R_PPC64_TPREL16_HIGHERA 98 /* half16 (sym+add)@tprel@highera */
-+#define R_PPC64_TPREL16_HIGHEST 99 /* half16 (sym+add)@tprel@highest */
-+#define R_PPC64_TPREL16_HIGHESTA 100 /* half16 (sym+add)@tprel@highesta */
-+#define R_PPC64_DTPREL16_DS 101 /* half16ds* (sym+add)@dtprel */
-+#define R_PPC64_DTPREL16_LO_DS 102 /* half16ds (sym+add)@dtprel@l */
-+#define R_PPC64_DTPREL16_HIGHER 103 /* half16 (sym+add)@dtprel@higher */
-+#define R_PPC64_DTPREL16_HIGHERA 104 /* half16 (sym+add)@dtprel@highera */
-+#define R_PPC64_DTPREL16_HIGHEST 105 /* half16 (sym+add)@dtprel@highest */
-+#define R_PPC64_DTPREL16_HIGHESTA 106 /* half16 (sym+add)@dtprel@highesta */
-+
-+/* Keep this the last entry. */
-+#define R_PPC64_NUM 107
-+
-+/* PowerPC64 specific values for the Dyn d_tag field. */
-+#define DT_PPC64_GLINK (DT_LOPROC + 0)
-+#define DT_PPC64_NUM 1
-+
-+
-+/* ARM specific declarations */
-+
-+/* Processor specific flags for the ELF header e_flags field. */
-+#define EF_ARM_RELEXEC 0x01
-+#define EF_ARM_HASENTRY 0x02
-+#define EF_ARM_INTERWORK 0x04
-+#define EF_ARM_APCS_26 0x08
-+#define EF_ARM_APCS_FLOAT 0x10
-+#define EF_ARM_PIC 0x20
-+#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use */
-+#define EF_ARM_NEW_ABI 0x80
-+#define EF_ARM_OLD_ABI 0x100
-+
-+/* Other constants defined in the ARM ELF spec. version B-01. */
-+/* NB. These conflict with values defined above. */
-+#define EF_ARM_SYMSARESORTED 0x04
-+#define EF_ARM_DYNSYMSUSESEGIDX 0x08
-+#define EF_ARM_MAPSYMSFIRST 0x10
-+#define EF_ARM_EABIMASK 0XFF000000
-+
-+#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
-+#define EF_ARM_EABI_UNKNOWN 0x00000000
-+#define EF_ARM_EABI_VER1 0x01000000
-+#define EF_ARM_EABI_VER2 0x02000000
-+
-+/* Additional symbol types for Thumb */
-+#define STT_ARM_TFUNC 0xd
-+
-+/* ARM-specific values for sh_flags */
-+#define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point */
-+#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined
-+ in the input to a link step */
-+
-+/* ARM-specific program header flags */
-+#define PF_ARM_SB 0x10000000 /* Segment contains the location
-+ addressed by the static base */
-+
-+/* ARM relocs. */
-+#define R_ARM_NONE 0 /* No reloc */
-+#define R_ARM_PC24 1 /* PC relative 26 bit branch */
-+#define R_ARM_ABS32 2 /* Direct 32 bit */
-+#define R_ARM_REL32 3 /* PC relative 32 bit */
-+#define R_ARM_PC13 4
-+#define R_ARM_ABS16 5 /* Direct 16 bit */
-+#define R_ARM_ABS12 6 /* Direct 12 bit */
-+#define R_ARM_THM_ABS5 7
-+#define R_ARM_ABS8 8 /* Direct 8 bit */
-+#define R_ARM_SBREL32 9
-+#define R_ARM_THM_PC22 10
-+#define R_ARM_THM_PC8 11
-+#define R_ARM_AMP_VCALL9 12
-+#define R_ARM_SWI24 13
-+#define R_ARM_THM_SWI8 14
-+#define R_ARM_XPC25 15
-+#define R_ARM_THM_XPC22 16
-+#define R_ARM_COPY 20 /* Copy symbol at runtime */
-+#define R_ARM_GLOB_DAT 21 /* Create GOT entry */
-+#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */
-+#define R_ARM_RELATIVE 23 /* Adjust by program base */
-+#define R_ARM_GOTOFF 24 /* 32 bit offset to GOT */
-+#define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */
-+#define R_ARM_GOT32 26 /* 32 bit GOT entry */
-+#define R_ARM_PLT32 27 /* 32 bit PLT address */
-+#define R_ARM_ALU_PCREL_7_0 32
-+#define R_ARM_ALU_PCREL_15_8 33
-+#define R_ARM_ALU_PCREL_23_15 34
-+#define R_ARM_LDR_SBREL_11_0 35
-+#define R_ARM_ALU_SBREL_19_12 36
-+#define R_ARM_ALU_SBREL_27_20 37
-+#define R_ARM_GNU_VTENTRY 100
-+#define R_ARM_GNU_VTINHERIT 101
-+#define R_ARM_THM_PC11 102 /* thumb unconditional branch */
-+#define R_ARM_THM_PC9 103 /* thumb conditional branch */
-+#define R_ARM_RXPC25 249
-+#define R_ARM_RSBREL32 250
-+#define R_ARM_THM_RPC22 251
-+#define R_ARM_RREL32 252
-+#define R_ARM_RABS22 253
-+#define R_ARM_RPC24 254
-+#define R_ARM_RBASE 255
-+/* Keep this the last entry. */
-+#define R_ARM_NUM 256
-+
-+/* IA-64 specific declarations. */
-+
-+/* Processor specific flags for the Ehdr e_flags field. */
-+#define EF_IA_64_MASKOS 0x0000000f /* os-specific flags */
-+#define EF_IA_64_ABI64 0x00000010 /* 64-bit ABI */
-+#define EF_IA_64_ARCH 0xff000000 /* arch. version mask */
-+
-+/* Processor specific values for the Phdr p_type field. */
-+#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* arch extension bits */
-+#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* ia64 unwind bits */
-+
-+/* Processor specific flags for the Phdr p_flags field. */
-+#define PF_IA_64_NORECOV 0x80000000 /* spec insns w/o recovery */
-+
-+/* Processor specific values for the Shdr sh_type field. */
-+#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* extension bits */
-+#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* unwind bits */
-+
-+/* Processor specific flags for the Shdr sh_flags field. */
-+#define SHF_IA_64_SHORT 0x10000000 /* section near gp */
-+#define SHF_IA_64_NORECOV 0x20000000 /* spec insns w/o recovery */
-+
-+/* Processor specific values for the Dyn d_tag field. */
-+#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
-+#define DT_IA_64_NUM 1
-+
-+/* IA-64 relocations. */
-+#define R_IA64_NONE 0x00 /* none */
-+#define R_IA64_IMM14 0x21 /* symbol + addend, add imm14 */
-+#define R_IA64_IMM22 0x22 /* symbol + addend, add imm22 */
-+#define R_IA64_IMM64 0x23 /* symbol + addend, mov imm64 */
-+#define R_IA64_DIR32MSB 0x24 /* symbol + addend, data4 MSB */
-+#define R_IA64_DIR32LSB 0x25 /* symbol + addend, data4 LSB */
-+#define R_IA64_DIR64MSB 0x26 /* symbol + addend, data8 MSB */
-+#define R_IA64_DIR64LSB 0x27 /* symbol + addend, data8 LSB */
-+#define R_IA64_GPREL22 0x2a /* @gprel(sym + add), add imm22 */
-+#define R_IA64_GPREL64I 0x2b /* @gprel(sym + add), mov imm64 */
-+#define R_IA64_GPREL32MSB 0x2c /* @gprel(sym + add), data4 MSB */
-+#define R_IA64_GPREL32LSB 0x2d /* @gprel(sym + add), data4 LSB */
-+#define R_IA64_GPREL64MSB 0x2e /* @gprel(sym + add), data8 MSB */
-+#define R_IA64_GPREL64LSB 0x2f /* @gprel(sym + add), data8 LSB */
-+#define R_IA64_LTOFF22 0x32 /* @ltoff(sym + add), add imm22 */
-+#define R_IA64_LTOFF64I 0x33 /* @ltoff(sym + add), mov imm64 */
-+#define R_IA64_PLTOFF22 0x3a /* @pltoff(sym + add), add imm22 */
-+#define R_IA64_PLTOFF64I 0x3b /* @pltoff(sym + add), mov imm64 */
-+#define R_IA64_PLTOFF64MSB 0x3e /* @pltoff(sym + add), data8 MSB */
-+#define R_IA64_PLTOFF64LSB 0x3f /* @pltoff(sym + add), data8 LSB */
-+#define R_IA64_FPTR64I 0x43 /* @fptr(sym + add), mov imm64 */
-+#define R_IA64_FPTR32MSB 0x44 /* @fptr(sym + add), data4 MSB */
-+#define R_IA64_FPTR32LSB 0x45 /* @fptr(sym + add), data4 LSB */
-+#define R_IA64_FPTR64MSB 0x46 /* @fptr(sym + add), data8 MSB */
-+#define R_IA64_FPTR64LSB 0x47 /* @fptr(sym + add), data8 LSB */
-+#define R_IA64_PCREL60B 0x48 /* @pcrel(sym + add), brl */
-+#define R_IA64_PCREL21B 0x49 /* @pcrel(sym + add), ptb, call */
-+#define R_IA64_PCREL21M 0x4a /* @pcrel(sym + add), chk.s */
-+#define R_IA64_PCREL21F 0x4b /* @pcrel(sym + add), fchkf */
-+#define R_IA64_PCREL32MSB 0x4c /* @pcrel(sym + add), data4 MSB */
-+#define R_IA64_PCREL32LSB 0x4d /* @pcrel(sym + add), data4 LSB */
-+#define R_IA64_PCREL64MSB 0x4e /* @pcrel(sym + add), data8 MSB */
-+#define R_IA64_PCREL64LSB 0x4f /* @pcrel(sym + add), data8 LSB */
-+#define R_IA64_LTOFF_FPTR22 0x52 /* @ltoff(@fptr(s+a)), imm22 */
-+#define R_IA64_LTOFF_FPTR64I 0x53 /* @ltoff(@fptr(s+a)), imm64 */
-+#define R_IA64_LTOFF_FPTR32MSB 0x54 /* @ltoff(@fptr(s+a)), data4 MSB */
-+#define R_IA64_LTOFF_FPTR32LSB 0x55 /* @ltoff(@fptr(s+a)), data4 LSB */
-+#define R_IA64_LTOFF_FPTR64MSB 0x56 /* @ltoff(@fptr(s+a)), data8 MSB */
-+#define R_IA64_LTOFF_FPTR64LSB 0x57 /* @ltoff(@fptr(s+a)), data8 LSB */
-+#define R_IA64_SEGREL32MSB 0x5c /* @segrel(sym + add), data4 MSB */
-+#define R_IA64_SEGREL32LSB 0x5d /* @segrel(sym + add), data4 LSB */
-+#define R_IA64_SEGREL64MSB 0x5e /* @segrel(sym + add), data8 MSB */
-+#define R_IA64_SEGREL64LSB 0x5f /* @segrel(sym + add), data8 LSB */
-+#define R_IA64_SECREL32MSB 0x64 /* @secrel(sym + add), data4 MSB */
-+#define R_IA64_SECREL32LSB 0x65 /* @secrel(sym + add), data4 LSB */
-+#define R_IA64_SECREL64MSB 0x66 /* @secrel(sym + add), data8 MSB */
-+#define R_IA64_SECREL64LSB 0x67 /* @secrel(sym + add), data8 LSB */
-+#define R_IA64_REL32MSB 0x6c /* data 4 + REL */
-+#define R_IA64_REL32LSB 0x6d /* data 4 + REL */
-+#define R_IA64_REL64MSB 0x6e /* data 8 + REL */
-+#define R_IA64_REL64LSB 0x6f /* data 8 + REL */
-+#define R_IA64_LTV32MSB 0x74 /* symbol + addend, data4 MSB */
-+#define R_IA64_LTV32LSB 0x75 /* symbol + addend, data4 LSB */
-+#define R_IA64_LTV64MSB 0x76 /* symbol + addend, data8 MSB */
-+#define R_IA64_LTV64LSB 0x77 /* symbol + addend, data8 LSB */
-+#define R_IA64_PCREL21BI 0x79 /* @pcrel(sym + add), 21bit inst */
-+#define R_IA64_PCREL22 0x7a /* @pcrel(sym + add), 22bit inst */
-+#define R_IA64_PCREL64I 0x7b /* @pcrel(sym + add), 64bit inst */
-+#define R_IA64_IPLTMSB 0x80 /* dynamic reloc, imported PLT, MSB */
-+#define R_IA64_IPLTLSB 0x81 /* dynamic reloc, imported PLT, LSB */
-+#define R_IA64_COPY 0x84 /* copy relocation */
-+#define R_IA64_SUB 0x85 /* Addend and symbol difference */
-+#define R_IA64_LTOFF22X 0x86 /* LTOFF22, relaxable. */
-+#define R_IA64_LDXMOV 0x87 /* Use of LTOFF22X. */
-+#define R_IA64_TPREL14 0x91 /* @tprel(sym + add), imm14 */
-+#define R_IA64_TPREL22 0x92 /* @tprel(sym + add), imm22 */
-+#define R_IA64_TPREL64I 0x93 /* @tprel(sym + add), imm64 */
-+#define R_IA64_TPREL64MSB 0x96 /* @tprel(sym + add), data8 MSB */
-+#define R_IA64_TPREL64LSB 0x97 /* @tprel(sym + add), data8 LSB */
-+#define R_IA64_LTOFF_TPREL22 0x9a /* @ltoff(@tprel(s+a)), imm2 */
-+#define R_IA64_DTPMOD64MSB 0xa6 /* @dtpmod(sym + add), data8 MSB */
-+#define R_IA64_DTPMOD64LSB 0xa7 /* @dtpmod(sym + add), data8 LSB */
-+#define R_IA64_LTOFF_DTPMOD22 0xaa /* @ltoff(@dtpmod(sym + add)), imm22 */
-+#define R_IA64_DTPREL14 0xb1 /* @dtprel(sym + add), imm14 */
-+#define R_IA64_DTPREL22 0xb2 /* @dtprel(sym + add), imm22 */
-+#define R_IA64_DTPREL64I 0xb3 /* @dtprel(sym + add), imm64 */
-+#define R_IA64_DTPREL32MSB 0xb4 /* @dtprel(sym + add), data4 MSB */
-+#define R_IA64_DTPREL32LSB 0xb5 /* @dtprel(sym + add), data4 LSB */
-+#define R_IA64_DTPREL64MSB 0xb6 /* @dtprel(sym + add), data8 MSB */
-+#define R_IA64_DTPREL64LSB 0xb7 /* @dtprel(sym + add), data8 LSB */
-+#define R_IA64_LTOFF_DTPREL22 0xba /* @ltoff(@dtprel(s+a)), imm22 */
-+
-+/* SH specific declarations */
-+
-+/* SH relocs. */
-+#define R_SH_NONE 0
-+#define R_SH_DIR32 1
-+#define R_SH_REL32 2
-+#define R_SH_DIR8WPN 3
-+#define R_SH_IND12W 4
-+#define R_SH_DIR8WPL 5
-+#define R_SH_DIR8WPZ 6
-+#define R_SH_DIR8BP 7
-+#define R_SH_DIR8W 8
-+#define R_SH_DIR8L 9
-+#define R_SH_SWITCH16 25
-+#define R_SH_SWITCH32 26
-+#define R_SH_USES 27
-+#define R_SH_COUNT 28
-+#define R_SH_ALIGN 29
-+#define R_SH_CODE 30
-+#define R_SH_DATA 31
-+#define R_SH_LABEL 32
-+#define R_SH_SWITCH8 33
-+#define R_SH_GNU_VTINHERIT 34
-+#define R_SH_GNU_VTENTRY 35
-+#define R_SH_TLS_GD_32 144
-+#define R_SH_TLS_LD_32 145
-+#define R_SH_TLS_LDO_32 146
-+#define R_SH_TLS_IE_32 147
-+#define R_SH_TLS_LE_32 148
-+#define R_SH_TLS_DTPMOD32 149
-+#define R_SH_TLS_DTPOFF32 150
-+#define R_SH_TLS_TPOFF32 151
-+#define R_SH_GOT32 160
-+#define R_SH_PLT32 161
-+#define R_SH_COPY 162
-+#define R_SH_GLOB_DAT 163
-+#define R_SH_JMP_SLOT 164
-+#define R_SH_RELATIVE 165
-+#define R_SH_GOTOFF 166
-+#define R_SH_GOTPC 167
-+/* Keep this the last entry. */
-+#define R_SH_NUM 256
-+
-+/* Additional s390 relocs */
-+
-+#define R_390_NONE 0 /* No reloc. */
-+#define R_390_8 1 /* Direct 8 bit. */
-+#define R_390_12 2 /* Direct 12 bit. */
-+#define R_390_16 3 /* Direct 16 bit. */
-+#define R_390_32 4 /* Direct 32 bit. */
-+#define R_390_PC32 5 /* PC relative 32 bit. */
-+#define R_390_GOT12 6 /* 12 bit GOT offset. */
-+#define R_390_GOT32 7 /* 32 bit GOT offset. */
-+#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */
-+#define R_390_COPY 9 /* Copy symbol at runtime. */
-+#define R_390_GLOB_DAT 10 /* Create GOT entry. */
-+#define R_390_JMP_SLOT 11 /* Create PLT entry. */
-+#define R_390_RELATIVE 12 /* Adjust by program base. */
-+#define R_390_GOTOFF32 13 /* 32 bit offset to GOT. */
-+#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */
-+#define R_390_GOT16 15 /* 16 bit GOT offset. */
-+#define R_390_PC16 16 /* PC relative 16 bit. */
-+#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */
-+#define R_390_PLT16DBL 18 /* 16 bit PC rel. PLT shifted by 1. */
-+#define R_390_PC32DBL 19 /* PC relative 32 bit shifted by 1. */
-+#define R_390_PLT32DBL 20 /* 32 bit PC rel. PLT shifted by 1. */
-+#define R_390_GOTPCDBL 21 /* 32 bit PC rel. GOT shifted by 1. */
-+#define R_390_64 22 /* Direct 64 bit. */
-+#define R_390_PC64 23 /* PC relative 64 bit. */
-+#define R_390_GOT64 24 /* 64 bit GOT offset. */
-+#define R_390_PLT64 25 /* 64 bit PC relative PLT address. */
-+#define R_390_GOTENT 26 /* 32 bit PC rel. to GOT entry >> 1. */
-+#define R_390_GOTOFF16 27 /* 16 bit offset to GOT. */
-+#define R_390_GOTOFF64 28 /* 64 bit offset to GOT. */
-+#define R_390_GOTPLT12 29 /* 12 bit offset to jump slot. */
-+#define R_390_GOTPLT16 30 /* 16 bit offset to jump slot. */
-+#define R_390_GOTPLT32 31 /* 32 bit offset to jump slot. */
-+#define R_390_GOTPLT64 32 /* 64 bit offset to jump slot. */
-+#define R_390_GOTPLTENT 33 /* 32 bit rel. offset to jump slot. */
-+#define R_390_PLTOFF16 34 /* 16 bit offset from GOT to PLT. */
-+#define R_390_PLTOFF32 35 /* 32 bit offset from GOT to PLT. */
-+#define R_390_PLTOFF64 36 /* 16 bit offset from GOT to PLT. */
-+#define R_390_TLS_LOAD 37 /* Tag for load insn in TLS code. */
-+#define R_390_TLS_GDCALL 38 /* Tag for function call in general
-+ dynamic TLS code. */
-+#define R_390_TLS_LDCALL 39 /* Tag for function call in local
-+ dynamic TLS code. */
-+#define R_390_TLS_GD32 40 /* Direct 32 bit for general dynamic
-+ thread local data. */
-+#define R_390_TLS_GD64 41 /* Direct 64 bit for general dynamic
-+ thread local data. */
-+#define R_390_TLS_GOTIE12 42 /* 12 bit GOT offset for static TLS
-+ block offset. */
-+#define R_390_TLS_GOTIE32 43 /* 32 bit GOT offset for static TLS
-+ block offset. */
-+#define R_390_TLS_GOTIE64 44 /* 64 bit GOT offset for static TLS
-+ block offset. */
-+#define R_390_TLS_LDM32 45 /* Direct 32 bit for local dynamic
-+ thread local data in LE code. */
-+#define R_390_TLS_LDM64 46 /* Direct 64 bit for local dynamic
-+ thread local data in LE code. */
-+#define R_390_TLS_IE32 47 /* 32 bit address of GOT entry for
-+ negated static TLS block offset. */
-+#define R_390_TLS_IE64 48 /* 64 bit address of GOT entry for
-+ negated static TLS block offset. */
-+#define R_390_TLS_IEENT 49 /* 32 bit rel. offset to GOT entry for
-+ negated static TLS block offset. */
-+#define R_390_TLS_LE32 50 /* 32 bit negated offset relative to
-+ static TLS block. */
-+#define R_390_TLS_LE64 51 /* 64 bit negated offset relative to
-+ static TLS block. */
-+#define R_390_TLS_LDO32 52 /* 32 bit offset relative to TLS
-+ block. */
-+#define R_390_TLS_LDO64 53 /* 64 bit offset relative to TLS
-+ block. */
-+#define R_390_TLS_DTPMOD 54 /* ID of module containing symbol. */
-+#define R_390_TLS_DTPOFF 55 /* Offset in TLS block. */
-+#define R_390_TLS_TPOFF 56 /* Negated offset in static TLS
-+ block. */
-+
-+/* Keep this the last entry. */
-+#define R_390_NUM 57
-+
-+/* CRIS relocations. */
-+#define R_CRIS_NONE 0
-+#define R_CRIS_8 1
-+#define R_CRIS_16 2
-+#define R_CRIS_32 3
-+#define R_CRIS_8_PCREL 4
-+#define R_CRIS_16_PCREL 5
-+#define R_CRIS_32_PCREL 6
-+#define R_CRIS_GNU_VTINHERIT 7
-+#define R_CRIS_GNU_VTENTRY 8
-+#define R_CRIS_COPY 9
-+#define R_CRIS_GLOB_DAT 10
-+#define R_CRIS_JUMP_SLOT 11
-+#define R_CRIS_RELATIVE 12
-+#define R_CRIS_16_GOT 13
-+#define R_CRIS_32_GOT 14
-+#define R_CRIS_16_GOTPLT 15
-+#define R_CRIS_32_GOTPLT 16
-+#define R_CRIS_32_GOTREL 17
-+#define R_CRIS_32_PLT_GOTREL 18
-+#define R_CRIS_32_PLT_PCREL 19
-+
-+#define R_CRIS_NUM 20
-+
-+/* AMD x86-64 relocations. */
-+#define R_X86_64_NONE 0 /* No reloc */
-+#define R_X86_64_64 1 /* Direct 64 bit */
-+#define R_X86_64_PC32 2 /* PC relative 32 bit signed */
-+#define R_X86_64_GOT32 3 /* 32 bit GOT entry */
-+#define R_X86_64_PLT32 4 /* 32 bit PLT address */
-+#define R_X86_64_COPY 5 /* Copy symbol at runtime */
-+#define R_X86_64_GLOB_DAT 6 /* Create GOT entry */
-+#define R_X86_64_JUMP_SLOT 7 /* Create PLT entry */
-+#define R_X86_64_RELATIVE 8 /* Adjust by program base */
-+#define R_X86_64_GOTPCREL 9 /* 32 bit signed PC relative
-+ offset to GOT */
-+#define R_X86_64_32 10 /* Direct 32 bit zero extended */
-+#define R_X86_64_32S 11 /* Direct 32 bit sign extended */
-+#define R_X86_64_16 12 /* Direct 16 bit zero extended */
-+#define R_X86_64_PC16 13 /* 16 bit sign extended pc relative */
-+#define R_X86_64_8 14 /* Direct 8 bit sign extended */
-+#define R_X86_64_PC8 15 /* 8 bit sign extended pc relative */
-+#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */
-+#define R_X86_64_DTPOFF64 17 /* Offset in module's TLS block */
-+#define R_X86_64_TPOFF64 18 /* Offset in initial TLS block */
-+#define R_X86_64_TLSGD 19 /* 32 bit signed PC relative offset
-+ to two GOT entries for GD symbol */
-+#define R_X86_64_TLSLD 20 /* 32 bit signed PC relative offset
-+ to two GOT entries for LD symbol */
-+#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */
-+#define R_X86_64_GOTTPOFF 22 /* 32 bit signed PC relative offset
-+ to GOT entry for IE symbol */
-+#define R_X86_64_TPOFF32 23 /* Offset in initial TLS block */
-+
-+#define R_X86_64_NUM 24
-+
-+__END_DECLS
-+
-+#endif /* elf.h */
-
- #include "elfconfig.h"
-
-@@ -185,3 +2631,4 @@
- void fatal(const char *fmt, ...);
- void warn(const char *fmt, ...);
- void merror(const char *fmt, ...);
-+
-diff -Nur linux-3.11.5.orig/scripts/mod/sumversion.c linux-3.11.5/scripts/mod/sumversion.c
---- linux-3.11.5.orig/scripts/mod/sumversion.c 2013-10-14 03:14:45.000000000 +0200
-+++ linux-3.11.5/scripts/mod/sumversion.c 2013-10-16 18:09:31.000000000 +0200
-@@ -1,4 +1,4 @@
--#include <netinet/in.h>
-+/* #include <netinet/in.h> */
- #ifdef __sun__
- #include <inttypes.h>
- #else
-diff -Nur linux-3.11.5.orig/tools/include/tools/linux_types.h linux-3.11.5/tools/include/tools/linux_types.h
---- linux-3.11.5.orig/tools/include/tools/linux_types.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-3.11.5/tools/include/tools/linux_types.h 2013-10-16 18:09:31.000000000 +0200
-@@ -0,0 +1,22 @@
-+#ifndef __LINUX_TYPES_H
-+#define __LINUX_TYPES_H
-+
-+#include <stdint.h>
-+
-+typedef uint8_t __u8;
-+typedef uint8_t __be8;
-+typedef uint8_t __le8;
-+
-+typedef uint16_t __u16;
-+typedef uint16_t __be16;
-+typedef uint16_t __le16;
-+
-+typedef uint32_t __u32;
-+typedef uint32_t __be32;
-+typedef uint32_t __le32;
-+
-+typedef uint64_t __u64;
-+typedef uint64_t __be64;
-+typedef uint64_t __le64;
-+
-+#endif
diff --git a/target/linux/patches/3.16.56/sgidefs.patch b/target/linux/patches/3.16.56/sgidefs.patch
deleted file mode 100644
index f00a284d9..000000000
--- a/target/linux/patches/3.16.56/sgidefs.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -Nur linux-3.11.5.orig/arch/mips/include/uapi/asm/sgidefs.h linux-3.11.5/arch/mips/include/uapi/asm/sgidefs.h
---- linux-3.11.5.orig/arch/mips/include/uapi/asm/sgidefs.h 2013-10-14 03:14:45.000000000 +0200
-+++ linux-3.11.5/arch/mips/include/uapi/asm/sgidefs.h 2013-11-08 22:01:28.000000000 +0100
-@@ -11,14 +11,6 @@
- #define __ASM_SGIDEFS_H
-
- /*
-- * Using a Linux compiler for building Linux seems logic but not to
-- * everybody.
-- */
--#ifndef __linux__
--#error Use a Linux compiler or give up.
--#endif
--
--/*
- * Definitions for the ISA levels
- *
- * With the introduction of MIPS32 / MIPS64 instruction sets definitions
diff --git a/target/linux/patches/3.16.56/startup.patch b/target/linux/patches/3.16.56/startup.patch
deleted file mode 100644
index d396b75e4..000000000
--- a/target/linux/patches/3.16.56/startup.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -Nur linux-3.13.3.orig/init/main.c linux-3.13.3/init/main.c
---- linux-3.13.3.orig/init/main.c 2014-02-13 23:00:14.000000000 +0100
-+++ linux-3.13.3/init/main.c 2014-02-17 11:35:14.000000000 +0100
-@@ -916,6 +917,8 @@
- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
- pr_err("Warning: unable to open an initial console.\n");
-
-+ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
-+
- (void) sys_dup(0);
- (void) sys_dup(0);
- /*
-diff -Nur linux-3.13.6.orig/init/initramfs.c linux-3.13.6/init/initramfs.c
---- linux-3.13.6.orig/init/initramfs.c 2014-03-07 07:07:02.000000000 +0100
-+++ linux-3.13.6/init/initramfs.c 2014-03-15 12:11:31.882731916 +0100
-@@ -622,6 +622,9 @@
- */
- load_default_modules();
- }
-+#ifdef CONFIG_DEVTMPFS_MOUNT
-+ devtmpfs_mount("dev");
-+#endif
- return 0;
- }
- rootfs_initcall(populate_rootfs);
-diff -Nur linux-3.13.6.orig/init/main.c linux-3.13.6/init/main.c
---- linux-3.13.6.orig/init/main.c 2014-03-07 07:07:02.000000000 +0100
-+++ linux-3.13.6/init/main.c 2014-03-15 12:13:16.459024452 +0100
-@@ -924,7 +924,7 @@
- */
-
- if (!ramdisk_execute_command)
-- ramdisk_execute_command = "/init";
-+ ramdisk_execute_command = "/sbin/init";
-
- if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
- ramdisk_execute_command = NULL;
diff --git a/target/linux/patches/3.10.107/bsd-compatibility.patch b/target/linux/patches/3.16.85/bsd-compatibility.patch
index b954b658f..b954b658f 100644
--- a/target/linux/patches/3.10.107/bsd-compatibility.patch
+++ b/target/linux/patches/3.16.85/bsd-compatibility.patch
diff --git a/target/linux/patches/3.16.56/cleankernel.patch b/target/linux/patches/3.16.85/cleankernel.patch
index d8c055dc3..d8c055dc3 100644
--- a/target/linux/patches/3.16.56/cleankernel.patch
+++ b/target/linux/patches/3.16.85/cleankernel.patch
diff --git a/target/linux/patches/3.16.56/cris-header.patch b/target/linux/patches/3.16.85/cris-header.patch
index 3db07e530..3db07e530 100644
--- a/target/linux/patches/3.16.56/cris-header.patch
+++ b/target/linux/patches/3.16.85/cris-header.patch
diff --git a/target/linux/patches/3.16.56/cris-initramfs.patch b/target/linux/patches/3.16.85/cris-initramfs.patch
index b709e705e..b709e705e 100644
--- a/target/linux/patches/3.16.56/cris-initramfs.patch
+++ b/target/linux/patches/3.16.85/cris-initramfs.patch
diff --git a/target/linux/patches/3.16.56/defaults.patch b/target/linux/patches/3.16.85/defaults.patch
index 6cdca084e..6cdca084e 100644
--- a/target/linux/patches/3.16.56/defaults.patch
+++ b/target/linux/patches/3.16.85/defaults.patch
diff --git a/target/linux/patches/3.16.56/export-symbol-for-exmap.patch b/target/linux/patches/3.16.85/export-symbol-for-exmap.patch
index 4f0fc8449..4f0fc8449 100644
--- a/target/linux/patches/3.16.56/export-symbol-for-exmap.patch
+++ b/target/linux/patches/3.16.85/export-symbol-for-exmap.patch
diff --git a/target/linux/patches/3.16.56/fblogo.patch b/target/linux/patches/3.16.85/fblogo.patch
index 5b9070242..5b9070242 100644
--- a/target/linux/patches/3.16.56/fblogo.patch
+++ b/target/linux/patches/3.16.85/fblogo.patch
diff --git a/target/linux/patches/3.16.56/gemalto.patch b/target/linux/patches/3.16.85/gemalto.patch
index 65f7af1d7..65f7af1d7 100644
--- a/target/linux/patches/3.16.56/gemalto.patch
+++ b/target/linux/patches/3.16.85/gemalto.patch
diff --git a/target/linux/patches/3.16.56/initramfs-nosizelimit.patch b/target/linux/patches/3.16.85/initramfs-nosizelimit.patch
index 40d2f6bd8..40d2f6bd8 100644
--- a/target/linux/patches/3.16.56/initramfs-nosizelimit.patch
+++ b/target/linux/patches/3.16.85/initramfs-nosizelimit.patch
diff --git a/target/linux/patches/3.16.56/lemote-rfkill.patch b/target/linux/patches/3.16.85/lemote-rfkill.patch
index a61488434..a61488434 100644
--- a/target/linux/patches/3.16.56/lemote-rfkill.patch
+++ b/target/linux/patches/3.16.85/lemote-rfkill.patch
diff --git a/target/linux/patches/3.16.56/microblaze-ethernet.patch b/target/linux/patches/3.16.85/microblaze-ethernet.patch
index 742ab477e..742ab477e 100644
--- a/target/linux/patches/3.16.56/microblaze-ethernet.patch
+++ b/target/linux/patches/3.16.85/microblaze-ethernet.patch
diff --git a/target/linux/patches/3.16.56/mkpiggy.patch b/target/linux/patches/3.16.85/mkpiggy.patch
index 751678b74..751678b74 100644
--- a/target/linux/patches/3.16.56/mkpiggy.patch
+++ b/target/linux/patches/3.16.85/mkpiggy.patch
diff --git a/target/linux/patches/3.16.56/mtd-rootfs.patch b/target/linux/patches/3.16.85/mtd-rootfs.patch
index 775d5fc80..775d5fc80 100644
--- a/target/linux/patches/3.16.56/mtd-rootfs.patch
+++ b/target/linux/patches/3.16.85/mtd-rootfs.patch
diff --git a/target/linux/patches/3.16.56/nfsv3-tcp.patch b/target/linux/patches/3.16.85/nfsv3-tcp.patch
index d5e07e1c2..d5e07e1c2 100644
--- a/target/linux/patches/3.16.56/nfsv3-tcp.patch
+++ b/target/linux/patches/3.16.85/nfsv3-tcp.patch
diff --git a/target/linux/patches/3.16.56/non-static.patch b/target/linux/patches/3.16.85/non-static.patch
index a967703d0..a967703d0 100644
--- a/target/linux/patches/3.16.56/non-static.patch
+++ b/target/linux/patches/3.16.85/non-static.patch
diff --git a/target/linux/patches/3.16.56/ppc64-missing-zlib.patch b/target/linux/patches/3.16.85/ppc64-missing-zlib.patch
index c6e0616be..c6e0616be 100644
--- a/target/linux/patches/3.16.56/ppc64-missing-zlib.patch
+++ b/target/linux/patches/3.16.85/ppc64-missing-zlib.patch
diff --git a/target/linux/patches/3.16.56/relocs.patch b/target/linux/patches/3.16.85/relocs.patch
index 69a7c88a9..69a7c88a9 100644
--- a/target/linux/patches/3.16.56/relocs.patch
+++ b/target/linux/patches/3.16.85/relocs.patch
diff --git a/target/linux/patches/3.10.107/sgidefs.patch b/target/linux/patches/3.16.85/sgidefs.patch
index f00a284d9..f00a284d9 100644
--- a/target/linux/patches/3.10.107/sgidefs.patch
+++ b/target/linux/patches/3.16.85/sgidefs.patch
diff --git a/target/linux/patches/3.16.56/sortext.patch b/target/linux/patches/3.16.85/sortext.patch
index 8fd4e1d6b..8fd4e1d6b 100644
--- a/target/linux/patches/3.16.56/sortext.patch
+++ b/target/linux/patches/3.16.85/sortext.patch
diff --git a/target/linux/patches/3.16.85/startup.patch b/target/linux/patches/3.16.85/startup.patch
new file mode 100644
index 000000000..52465989f
--- /dev/null
+++ b/target/linux/patches/3.16.85/startup.patch
@@ -0,0 +1,25 @@
+diff -Nur linux-3.13.3.orig/init/main.c linux-3.13.3/init/main.c
+--- linux-3.13.3.orig/init/main.c 2014-02-13 23:00:14.000000000 +0100
++++ linux-3.13.3/init/main.c 2014-02-17 11:35:14.000000000 +0100
+@@ -916,6 +917,8 @@
+ if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
+ pr_err("Warning: unable to open an initial console.\n");
+
++ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
++
+ (void) sys_dup(0);
+ (void) sys_dup(0);
+ /*
+diff -Nur linux-3.13.6.orig/init/initramfs.c linux-3.13.6/init/initramfs.c
+--- linux-3.13.6.orig/init/initramfs.c 2014-03-07 07:07:02.000000000 +0100
++++ linux-3.13.6/init/initramfs.c 2014-03-15 12:11:31.882731916 +0100
+@@ -622,6 +622,9 @@
+ */
+ load_default_modules();
+ }
++#ifdef CONFIG_DEVTMPFS_MOUNT
++ devtmpfs_mount("dev");
++#endif
+ return 0;
+ }
+ rootfs_initcall(populate_rootfs);
diff --git a/target/linux/patches/3.16.56/wlan-cf.patch b/target/linux/patches/3.16.85/wlan-cf.patch
index fc20759e2..fc20759e2 100644
--- a/target/linux/patches/3.16.56/wlan-cf.patch
+++ b/target/linux/patches/3.16.85/wlan-cf.patch
diff --git a/target/linux/patches/3.16.56/xargs.patch b/target/linux/patches/3.16.85/xargs.patch
index 2c7b3df59..2c7b3df59 100644
--- a/target/linux/patches/3.16.56/xargs.patch
+++ b/target/linux/patches/3.16.85/xargs.patch
diff --git a/target/linux/patches/3.2.101/sparc-aout.patch b/target/linux/patches/3.2.101/sparc-aout.patch
deleted file mode 100644
index 6ad252479..000000000
--- a/target/linux/patches/3.2.101/sparc-aout.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -Nur linux-3.2.66.orig/arch/sparc/boot/Makefile linux-3.2.66/arch/sparc/boot/Makefile
---- linux-3.2.66.orig/arch/sparc/boot/Makefile 2014-12-31 19:27:54.000000000 -0600
-+++ linux-3.2.66/arch/sparc/boot/Makefile 2015-02-17 13:21:38.269400789 -0600
-@@ -75,9 +75,6 @@
- $(call if_changed,gzip)
- @echo ' kernel: $@ is ready'
-
--$(obj)/vmlinux.aout: vmlinux FORCE
-- $(call if_changed,elftoaout)
-- @echo ' kernel: $@ is ready'
- else
-
- # The following lines make a readable image for U-Boot.
-@@ -110,6 +107,10 @@
-
- endif
-
-+$(obj)/vmlinux.aout: $(obj)/image FORCE
-+ $(call if_changed,elftoaout)
-+ @echo ' kernel: $@ is ready'
-+
- $(obj)/tftpboot.img: $(obj)/image $(obj)/piggyback System.map $(ROOT_IMG) FORCE
- $(call if_changed,elftoaout)
- $(call if_changed,piggy)
diff --git a/target/linux/patches/4.1.51/cleankernel.patch b/target/linux/patches/4.1.51/cleankernel.patch
deleted file mode 100644
index 59693f426..000000000
--- a/target/linux/patches/4.1.51/cleankernel.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Nur linux-4.1.10.orig/scripts/Makefile.headersinst linux-4.1.10/scripts/Makefile.headersinst
---- linux-4.1.10.orig/scripts/Makefile.headersinst 2015-10-03 13:49:38.000000000 +0200
-+++ linux-4.1.10/scripts/Makefile.headersinst 2015-10-15 11:23:35.000000000 +0200
-@@ -107,7 +107,6 @@
-
- targets += $(install-file)
- $(install-file): scripts/headers_install.sh $(input-files1) $(input-files2) $(input-files3) FORCE
-- $(if $(unwanted),$(call cmd,remove),)
- $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@)))
- $(call if_changed,install)
-
diff --git a/target/linux/patches/4.1.51/cris-header.patch b/target/linux/patches/4.1.51/cris-header.patch
deleted file mode 100644
index 2b5a88461..000000000
--- a/target/linux/patches/4.1.51/cris-header.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur linux-3.16.2.orig/arch/cris/include/arch-v10/arch/Kbuild linux-3.16.2/arch/cris/include/arch-v10/arch/Kbuild
---- linux-3.16.2.orig/arch/cris/include/arch-v10/arch/Kbuild 2014-09-06 01:37:11.000000000 +0200
-+++ linux-3.16.2/arch/cris/include/arch-v10/arch/Kbuild 2014-09-26 19:24:50.000000000 +0200
-@@ -1 +1,2 @@
- # CRISv10 arch
-+header-y += ptrace.h
-diff -Nur linux-3.16.2.orig/arch/cris/include/arch-v32/arch/Kbuild linux-3.16.2/arch/cris/include/arch-v32/arch/Kbuild
---- linux-3.16.2.orig/arch/cris/include/arch-v32/arch/Kbuild 2014-09-06 01:37:11.000000000 +0200
-+++ linux-3.16.2/arch/cris/include/arch-v32/arch/Kbuild 2014-09-26 19:24:31.000000000 +0200
-@@ -1 +1,2 @@
- # CRISv32 arch
-+header-y += ptrace.h
diff --git a/target/linux/patches/4.1.51/j2-core.patch b/target/linux/patches/4.1.51/j2-core.patch
deleted file mode 100644
index 38136df2c..000000000
--- a/target/linux/patches/4.1.51/j2-core.patch
+++ /dev/null
@@ -1,2060 +0,0 @@
-diff -Nur linux-4.1.13.orig/arch/sh/Kconfig linux-4.1.13/arch/sh/Kconfig
---- linux-4.1.13.orig/arch/sh/Kconfig 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/Kconfig 2015-12-05 00:16:48.000000000 +0100
-@@ -66,7 +66,7 @@
- select HAVE_MIXED_BREAKPOINTS_REGS
- select PERF_EVENTS
- select ARCH_HIBERNATION_POSSIBLE if MMU
-- select SPARSE_IRQ
-+ select SPARSE_IRQ if !CPU_SUBTYPE_0PF
- select HAVE_CC_STACKPROTECTOR
-
- config SUPERH64
-@@ -108,6 +108,9 @@
- config ARCH_HIBERNATION_POSSIBLE
- def_bool n
-
-+config ARCH_USES_GETTIMEOFFSET
-+ def_bool n
-+
- config SYS_SUPPORTS_APM_EMULATION
- bool
- select ARCH_SUSPEND_POSSIBLE
-@@ -184,6 +187,11 @@
- select CPU_SH2
- select UNCACHED_MAPPING
-
-+config CPU_SH2J
-+ bool
-+ select CPU_SH2
-+ select ARCH_USES_GETTIMEOFFSET
-+
- config CPU_SH3
- bool
- select CPU_HAS_INTEVT
-@@ -303,6 +311,12 @@
- help
- Select MX-G if running on an R8A03022BG part.
-
-+# SH-2J Processor Support
-+
-+config CPU_SUBTYPE_0PF
-+ bool "Support 0PF J2 SoftCore"
-+ select CPU_SH2J
-+
- # SH-3 Processor Support
-
- config CPU_SUBTYPE_SH7705
-@@ -753,6 +767,7 @@
- SH_7751_SOLUTION_ENGINE
- default "0x00004000" if PAGE_SIZE_16KB || SH_SH03
- default "0x00002000" if PAGE_SIZE_8KB
-+ default "0x0003F000" if CPU_SUBTYPE_0PF
- default "0x00001000"
- help
- This sets the default offset of zero page.
-diff -Nur linux-4.1.13.orig/arch/sh/Makefile linux-4.1.13/arch/sh/Makefile
---- linux-4.1.13.orig/arch/sh/Makefile 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/Makefile 2015-12-05 00:16:48.000000000 +0100
-@@ -4,6 +4,7 @@
- # Copyright (C) 1999 Kaz Kojima
- # Copyright (C) 2002 - 2008 Paul Mundt
- # Copyright (C) 2002 M. R. Brown
-+# Copyright (C) 2012 SEI, Inc. (sh2j)
- #
- # This file is subject to the terms and conditions of the GNU General Public
- # License. See the file "COPYING" in the main directory of this archive
-@@ -19,6 +20,7 @@
- isa-$(CONFIG_SH_DSP) := sh
- isa-$(CONFIG_CPU_SH2) := sh2
- isa-$(CONFIG_CPU_SH2A) := sh2a
-+isa-$(CONFIG_CPU_SH2J) := sh2j
- isa-$(CONFIG_CPU_SH3) := sh3
- isa-$(CONFIG_CPU_SH4) := sh4
- isa-$(CONFIG_CPU_SH4A) := sh4a
-@@ -31,6 +33,8 @@
- endif
-
- cflags-$(CONFIG_CPU_SH2) := $(call cc-option,-m2,)
-+cflags-$(CONFIG_CPU_SH2J) := $(call cc-option,-m2,) \
-+ $(call cc-option,-melf,)
- cflags-$(CONFIG_CPU_SH2A) += $(call cc-option,-m2a,) \
- $(call cc-option,-m2a-nofpu,) \
- $(call cc-option,-m4-nofpu,)
-@@ -91,6 +95,7 @@
- defaultimage-$(CONFIG_SH_7724_SOLUTION_ENGINE) := uImage
- defaultimage-$(CONFIG_SH_7206_SOLUTION_ENGINE) := vmlinux
- defaultimage-$(CONFIG_SH_7619_SOLUTION_ENGINE) := vmlinux
-+defaultimage-$(CONFIG_SH_0PF) := vmlinux
-
- # Set some sensible Kbuild defaults
- KBUILD_IMAGE := $(defaultimage-y)
-@@ -173,6 +178,7 @@
- # As an example, in order of preference, SH-2A > SH-2 > common definitions.
- #
- cpuincdir-$(CONFIG_CPU_SH2A) += cpu-sh2a
-+cpuincdir-$(CONFIG_CPU_SH2J) += cpu-sh2j
- cpuincdir-$(CONFIG_CPU_SH2) += cpu-sh2
- cpuincdir-$(CONFIG_CPU_SH3) += cpu-sh3
- cpuincdir-$(CONFIG_CPU_SH4A) += cpu-sh4a
-diff -Nur linux-4.1.13.orig/arch/sh/boards/Kconfig linux-4.1.13/arch/sh/boards/Kconfig
---- linux-4.1.13.orig/arch/sh/boards/Kconfig 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/boards/Kconfig 2015-12-05 00:16:48.000000000 +0100
-@@ -90,6 +90,13 @@
- Select 7343 SolutionEngine if configuring for a Hitachi
- SH7343 (SH-Mobile 3AS) evaluation board.
-
-+config 0PF_FPGA
-+ bool "0PF FPGA"
-+ depends on CPU_SUBTYPE_0PF
-+ help
-+ Select 0PF_FPGA if you are configuring for an FPGA with
-+ the SH2j-workalike SoftCore from http://0pf.org
-+
- config SH_HP6XX
- bool "HP6XX"
- select SYS_SUPPORTS_APM_EMULATION
-diff -Nur linux-4.1.13.orig/arch/sh/boards/Makefile linux-4.1.13/arch/sh/boards/Makefile
---- linux-4.1.13.orig/arch/sh/boards/Makefile 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/boards/Makefile 2015-12-05 00:16:48.000000000 +0100
-@@ -15,3 +15,4 @@
- obj-$(CONFIG_SH_SH7757LCR) += board-sh7757lcr.o
- obj-$(CONFIG_SH_APSH4A3A) += board-apsh4a3a.o
- obj-$(CONFIG_SH_APSH4AD0A) += board-apsh4ad0a.o
-+obj-$(CONFIG_0PF_FPGA) += board-0pf.o
-diff -Nur linux-4.1.13.orig/arch/sh/boards/board-0pf.c linux-4.1.13/arch/sh/boards/board-0pf.c
---- linux-4.1.13.orig/arch/sh/boards/board-0pf.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.13/arch/sh/boards/board-0pf.c 2015-12-05 00:16:48.000000000 +0100
-@@ -0,0 +1,270 @@
-+/*
-+ * board-0pf.c
-+ *
-+ * Copyright (C) 2006 Yoshinori Sato
-+ * Copyright (C) 2009 D. Jeff Dionne
-+ *
-+ * 0PF j-series CPU on FPGA
-+ */
-+#include <linux/platform_device.h>
-+#include <linux/sched.h>
-+#include <linux/kernel.h>
-+#include <linux/param.h>
-+#include <linux/interrupt.h>
-+#include <linux/profile.h>
-+#include <linux/init.h>
-+#include <linux/irq.h>
-+#include <linux/device.h>
-+#include <linux/module.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/rtc.h>
-+#include <asm/machvec.h>
-+#include <asm/board-0pf.h>
-+
-+int shj_irq_demux(int irq)
-+{
-+ return irq; /* punt.. */
-+}
-+
-+static void shj_ack_noop(struct irq_data *data)
-+{
-+ asm("nop;nop");
-+ /* Dummy function. */
-+}
-+
-+static inline void shj_enable_irq(struct irq_data *data)
-+{
-+ unsigned int irq = data->irq;
-+ volatile unsigned int vui;
-+
-+// printk("%s: IRQ %d (0x%x)\n", __func__, irq, irq);
-+
-+ switch (irq) {
-+ case PIT_IRQ:
-+ //AQ_PIO = 0x0BB;
-+ /* enable, lvl 2, vector 64 */
-+ AQ_SYS = (1 << 26) | /* enable PIT */
-+ (0x02 << 20) | /* interrupt level 2 */
-+ (PIT_IRQ << 12) | /* vector 64 */
-+ 1; /* turn off interval timer */
-+ break;
-+
-+ case Irq_UART0:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_UART0, 0xf); /* clear old setting */
-+ vui |= ID2Pri(EIrqID_UART0, 0x7); /* set interrupt level */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ case Irq_UART1:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_UART1, 0xf); /* clear old setting */
-+ vui |= ID2Pri(EIrqID_UART1, 0x7); /* set interrupt level */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ case Irq_GPS:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_GPS, 0xf); /* clear old setting */
-+ vui |= ID2Pri(EIrqID_GPS, 0x7); /* set interrupt level */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ case Irq_I2C:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_I2C, 0xf); /* clear old setting */
-+ vui |= ID2Pri(EIrqID_I2C, 0x7); /* set interrupt level */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ case Irq_EMAC:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_EMAC, 0xf); /* clear old setting */
-+ vui |= ID2Pri(EIrqID_EMAC, 0x8); /* set interrupt level */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ printk("EMAC prio is: %x\n", vui);
-+ break;
-+
-+ case Irq_GPIO:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_GPIO, 0xf); /* clear old setting */
-+ vui |= ID2Pri(EIrqID_GPIO, 0x7); /* set interrupt level */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ case Irq_1PPS: // prio is higher for 1PPS porposes
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_1PPS, 0xf); /* clear old setting */
-+ vui |= ID2Pri(EIrqID_1PPS, 0x9); /* set interrupt level */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ printk("1PPS prio is: %x\n", vui);
-+ break;
-+
-+ default:
-+ break;
-+
-+ }
-+}
-+
-+static inline void shj_disable_irq(struct irq_data *data)
-+{
-+ volatile unsigned int vui;
-+ unsigned int irq = data->irq;
-+
-+ printk("%s: IRQ %d\n", __func__, irq);
-+
-+ switch (irq) {
-+ case PIT_IRQ:
-+ /* enable, lvl 2, vector 64 */
-+ AQ_SYS = (0 << 26) | /* disable PIT */
-+ (0x02 << 20) | /* interrupt level 2 */
-+ (PIT_IRQ << 12) | /* vector 64 */
-+ 1; /* turn off interval timer */
-+ break;
-+
-+ case Irq_UART0:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_UART0, 0xf); /* clear setting */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ case Irq_UART1:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_UART1, 0xf); /* clear setting */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ case Irq_GPS:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_GPS, 0xf); /* clear setting */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ case Irq_I2C:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_I2C, 0xf); /* clear setting */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ case Irq_EMAC:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_EMAC, 0xf); /* clear setting */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ case Irq_GPIO:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_GPIO, 0xf); /* clear setting */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ case Irq_1PPS:
-+ vui = *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri);
-+ vui &= ~ID2Pri(EIrqID_1PPS, 0xf); /* clear setting */
-+ *(volatile unsigned int *)(sys_SYS_BASE + Sys_IntPri) = vui;
-+ break;
-+
-+ default:
-+ break;
-+ }
-+}
-+
-+static struct irq_chip shj_irq_chip = {
-+ .name = "0PF_INTC",
-+ .irq_enable = shj_enable_irq,
-+ .irq_disable = shj_disable_irq,
-+ .irq_ack = shj_ack_noop,
-+};
-+
-+static void __init shj_irq_init(void)
-+{
-+ int c;
-+
-+ printk(KERN_INFO "0PF FPGA interrupt controller...\n");
-+
-+ for (c = 0; c < NR_IRQS; c++) {
-+ //irq_desc[c].action = NULL;
-+ //irq_desc[c].depth = 1;
-+ irq_set_chip_and_handler_name(c, &shj_irq_chip,
-+ handle_simple_irq, "simple");
-+ }
-+}
-+
-+#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET
-+// Commit 7b1f62076 switched this to a pointer
-+/*
-+ * Should return nanoseconds since last timer tick
-+ */
-+u32 shj_gettimeoffset(void)
-+{
-+ u32 clocks_counter = readl(SHJ_PIT_PCNTR);
-+
-+ return clocks_counter * readl(SHJ_NSEC_PER_CLOCK);
-+}
-+
-+static void __init shj_board_setup(char **cmdline)
-+{
-+ arch_gettimeoffset = shj_gettimeoffset;
-+}
-+#else
-+#define shj_gettimeoffset 0
-+#endif
-+
-+static struct sh_machine_vector mv_se __initmv = {
-+ .mv_name = "0PF_FPGA",
-+ //.mv_nr_irqs = 256,
-+ .mv_irq_demux = shj_irq_demux,
-+ .mv_init_irq = shj_irq_init,
-+ .mv_setup = shj_board_setup,
-+};
-+
-+static irqreturn_t timer_interrupt(int irq, void *dev_id)
-+{
-+ // AQ_PIO = 0x011; // GREEN
-+
-+ if (current->pid)
-+ profile_tick(CPU_PROFILING);
-+
-+ xtime_update(1);
-+ update_process_times(user_mode(get_irq_regs()));
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static void __init start_pit(void)
-+{
-+ if (request_irq
-+ (PIT_IRQ, timer_interrupt, IRQF_TIMER, "pit", NULL))
-+ printk("irq_desc[%p] : fail to register\n", &irq_desc[PIT_IRQ]);
-+
-+ irq_set_chip_and_handler_name(PIT_IRQ, &shj_irq_chip, handle_edge_irq,
-+ "pit");
-+}
-+
-+static int __init shj_initialise(void)
-+{
-+ struct irq_data *data;
-+
-+ pr_info("0PF Machine setup...\n");
-+
-+ start_pit();
-+
-+ data = irq_get_irq_data(Irq_UART0);
-+ shj_enable_irq(data);
-+
-+ data = irq_get_irq_data(Irq_UART1);
-+ shj_enable_irq(data);
-+
-+ data = irq_get_irq_data(Irq_EMAC);
-+ shj_enable_irq(data);
-+
-+ data = irq_get_irq_data(PIT_IRQ);
-+ shj_enable_irq(data);
-+
-+ pr_info("0PF Machine setup done.\n");
-+
-+ return 0;
-+}
-+
-+arch_initcall(shj_initialise);
-diff -Nur linux-4.1.13.orig/arch/sh/configs/0pf_defconfig linux-4.1.13/arch/sh/configs/0pf_defconfig
---- linux-4.1.13.orig/arch/sh/configs/0pf_defconfig 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.13/arch/sh/configs/0pf_defconfig 2015-12-05 00:16:48.000000000 +0100
-@@ -0,0 +1,945 @@
-+#
-+# Automatically generated file; DO NOT EDIT.
-+# Linux/sh 4.1.0-rc6 Kernel Configuration
-+#
-+CONFIG_SUPERH=y
-+CONFIG_SUPERH32=y
-+# CONFIG_SUPERH64 is not set
-+CONFIG_ARCH_DEFCONFIG="arch/sh/configs/shx3_defconfig"
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+CONFIG_GENERIC_BUG=y
-+CONFIG_GENERIC_HWEIGHT=y
-+# CONFIG_ARCH_SUSPEND_POSSIBLE is not set
-+# CONFIG_ARCH_HIBERNATION_POSSIBLE is not set
-+CONFIG_ARCH_USES_GETTIMEOFFSET=y
-+CONFIG_STACKTRACE_SUPPORT=y
-+CONFIG_LOCKDEP_SUPPORT=y
-+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-+CONFIG_NO_IOPORT_MAP=y
-+CONFIG_DMA_NONCOHERENT=y
-+CONFIG_NEED_DMA_MAP_STATE=y
-+CONFIG_NEED_SG_DMA_LENGTH=y
-+CONFIG_PGTABLE_LEVELS=2
-+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-+CONFIG_IRQ_WORK=y
-+
-+#
-+# General setup
-+#
-+CONFIG_BROKEN_ON_SMP=y
-+CONFIG_INIT_ENV_ARG_LIMIT=32
-+CONFIG_CROSS_COMPILE=""
-+# CONFIG_COMPILE_TEST is not set
-+CONFIG_LOCALVERSION=""
-+# CONFIG_LOCALVERSION_AUTO is not set
-+CONFIG_HAVE_KERNEL_GZIP=y
-+CONFIG_HAVE_KERNEL_BZIP2=y
-+CONFIG_HAVE_KERNEL_LZMA=y
-+CONFIG_HAVE_KERNEL_XZ=y
-+CONFIG_HAVE_KERNEL_LZO=y
-+CONFIG_KERNEL_GZIP=y
-+# CONFIG_KERNEL_BZIP2 is not set
-+# CONFIG_KERNEL_LZMA is not set
-+# CONFIG_KERNEL_XZ is not set
-+# CONFIG_KERNEL_LZO is not set
-+CONFIG_DEFAULT_HOSTNAME="(none)"
-+# CONFIG_SYSVIPC is not set
-+# CONFIG_FHANDLE is not set
-+# CONFIG_USELIB is not set
-+CONFIG_HAVE_ARCH_AUDITSYSCALL=y
-+
-+#
-+# IRQ subsystem
-+#
-+CONFIG_MAY_HAVE_SPARSE_IRQ=y
-+CONFIG_GENERIC_IRQ_SHOW=y
-+CONFIG_IRQ_DOMAIN=y
-+CONFIG_IRQ_FORCED_THREADING=y
-+# CONFIG_SPARSE_IRQ is not set
-+CONFIG_GENERIC_CLOCKEVENTS=y
-+
-+#
-+# Timers subsystem
-+#
-+CONFIG_HZ_PERIODIC=y
-+
-+#
-+# CPU/Task time and stats accounting
-+#
-+CONFIG_TICK_CPU_ACCOUNTING=y
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+
-+#
-+# RCU Subsystem
-+#
-+CONFIG_TINY_RCU=y
-+CONFIG_SRCU=y
-+# CONFIG_TASKS_RCU is not set
-+# CONFIG_RCU_STALL_COMMON is not set
-+# CONFIG_TREE_RCU_TRACE is not set
-+CONFIG_RCU_KTHREAD_PRIO=0
-+# CONFIG_RCU_EXPEDITE_BOOT is not set
-+# CONFIG_BUILD_BIN2C is not set
-+# CONFIG_IKCONFIG is not set
-+CONFIG_LOG_BUF_SHIFT=17
-+# CONFIG_CGROUPS is not set
-+# CONFIG_CHECKPOINT_RESTORE is not set
-+CONFIG_NAMESPACES=y
-+# CONFIG_UTS_NS is not set
-+# CONFIG_USER_NS is not set
-+# CONFIG_PID_NS is not set
-+# CONFIG_SCHED_AUTOGROUP is not set
-+# CONFIG_SYSFS_DEPRECATED is not set
-+# CONFIG_RELAY is not set
-+CONFIG_BLK_DEV_INITRD=y
-+CONFIG_INITRAMFS_SOURCE="initrd/root-dev initrd/root-files"
-+CONFIG_INITRAMFS_ROOT_UID=0
-+CONFIG_INITRAMFS_ROOT_GID=0
-+# CONFIG_RD_GZIP is not set
-+# CONFIG_RD_BZIP2 is not set
-+# CONFIG_RD_LZMA is not set
-+# CONFIG_RD_XZ is not set
-+# CONFIG_RD_LZO is not set
-+# CONFIG_RD_LZ4 is not set
-+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-+CONFIG_SYSCTL=y
-+CONFIG_ANON_INODES=y
-+CONFIG_HAVE_UID16=y
-+# CONFIG_EXPERT is not set
-+CONFIG_UID16=y
-+CONFIG_MULTIUSER=y
-+CONFIG_SGETMASK_SYSCALL=y
-+CONFIG_SYSFS_SYSCALL=y
-+# CONFIG_SYSCTL_SYSCALL is not set
-+CONFIG_KALLSYMS=y
-+CONFIG_PRINTK=y
-+CONFIG_BUG=y
-+CONFIG_ELF_CORE=y
-+CONFIG_BASE_FULL=y
-+CONFIG_FUTEX=y
-+CONFIG_EPOLL=y
-+CONFIG_SIGNALFD=y
-+CONFIG_TIMERFD=y
-+CONFIG_EVENTFD=y
-+# CONFIG_BPF_SYSCALL is not set
-+CONFIG_AIO=y
-+CONFIG_ADVISE_SYSCALLS=y
-+# CONFIG_EMBEDDED is not set
-+CONFIG_HAVE_PERF_EVENTS=y
-+CONFIG_PERF_USE_VMALLOC=y
-+
-+#
-+# Kernel Performance Events And Counters
-+#
-+CONFIG_PERF_EVENTS=y
-+CONFIG_VM_EVENT_COUNTERS=y
-+CONFIG_SLUB_DEBUG=y
-+# CONFIG_COMPAT_BRK is not set
-+# CONFIG_SLAB is not set
-+CONFIG_SLUB=y
-+# CONFIG_PROFILING is not set
-+CONFIG_HAVE_OPROFILE=y
-+# CONFIG_UPROBES is not set
-+# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
-+CONFIG_HAVE_KPROBES=y
-+CONFIG_HAVE_KRETPROBES=y
-+CONFIG_HAVE_ARCH_TRACEHOOK=y
-+CONFIG_HAVE_DMA_ATTRS=y
-+CONFIG_GENERIC_SMP_IDLE_THREAD=y
-+CONFIG_GENERIC_IDLE_POLL_SETUP=y
-+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-+CONFIG_HAVE_CLK=y
-+CONFIG_HAVE_DMA_API_DEBUG=y
-+CONFIG_HAVE_HW_BREAKPOINT=y
-+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
-+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-+CONFIG_HAVE_CC_STACKPROTECTOR=y
-+# CONFIG_CC_STACKPROTECTOR is not set
-+CONFIG_CC_STACKPROTECTOR_NONE=y
-+# CONFIG_CC_STACKPROTECTOR_REGULAR is not set
-+# CONFIG_CC_STACKPROTECTOR_STRONG is not set
-+CONFIG_MODULES_USE_ELF_RELA=y
-+CONFIG_OLD_SIGSUSPEND=y
-+CONFIG_OLD_SIGACTION=y
-+
-+#
-+# GCOV-based kernel profiling
-+#
-+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
-+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-+CONFIG_SLABINFO=y
-+CONFIG_RT_MUTEXES=y
-+CONFIG_BASE_SMALL=0
-+# CONFIG_MODULES is not set
-+CONFIG_BLOCK=y
-+# CONFIG_LBDAF is not set
-+# CONFIG_BLK_DEV_BSG is not set
-+# CONFIG_BLK_DEV_BSGLIB is not set
-+# CONFIG_BLK_DEV_INTEGRITY is not set
-+# CONFIG_BLK_CMDLINE_PARSER is not set
-+
-+#
-+# Partition Types
-+#
-+# CONFIG_PARTITION_ADVANCED is not set
-+CONFIG_MSDOS_PARTITION=y
-+CONFIG_EFI_PARTITION=y
-+
-+#
-+# IO Schedulers
-+#
-+CONFIG_IOSCHED_NOOP=y
-+# CONFIG_IOSCHED_DEADLINE is not set
-+# CONFIG_IOSCHED_CFQ is not set
-+CONFIG_DEFAULT_NOOP=y
-+CONFIG_DEFAULT_IOSCHED="noop"
-+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-+CONFIG_INLINE_READ_UNLOCK=y
-+CONFIG_INLINE_READ_UNLOCK_IRQ=y
-+CONFIG_INLINE_WRITE_UNLOCK=y
-+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-+# CONFIG_FREEZER is not set
-+
-+#
-+# System type
-+#
-+CONFIG_CPU_SH2=y
-+CONFIG_CPU_SH2J=y
-+# CONFIG_CPU_SUBTYPE_SH7619 is not set
-+# CONFIG_CPU_SUBTYPE_SH7201 is not set
-+# CONFIG_CPU_SUBTYPE_SH7203 is not set
-+# CONFIG_CPU_SUBTYPE_SH7206 is not set
-+# CONFIG_CPU_SUBTYPE_SH7263 is not set
-+# CONFIG_CPU_SUBTYPE_SH7264 is not set
-+# CONFIG_CPU_SUBTYPE_SH7269 is not set
-+# CONFIG_CPU_SUBTYPE_MXG is not set
-+CONFIG_CPU_SUBTYPE_0PF=y
-+# CONFIG_CPU_SUBTYPE_SH7705 is not set
-+# CONFIG_CPU_SUBTYPE_SH7706 is not set
-+# CONFIG_CPU_SUBTYPE_SH7707 is not set
-+# CONFIG_CPU_SUBTYPE_SH7708 is not set
-+# CONFIG_CPU_SUBTYPE_SH7709 is not set
-+# CONFIG_CPU_SUBTYPE_SH7710 is not set
-+# CONFIG_CPU_SUBTYPE_SH7712 is not set
-+# CONFIG_CPU_SUBTYPE_SH7720 is not set
-+# CONFIG_CPU_SUBTYPE_SH7721 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750 is not set
-+# CONFIG_CPU_SUBTYPE_SH7091 is not set
-+# CONFIG_CPU_SUBTYPE_SH7750R is not set
-+# CONFIG_CPU_SUBTYPE_SH7750S is not set
-+# CONFIG_CPU_SUBTYPE_SH7751 is not set
-+# CONFIG_CPU_SUBTYPE_SH7751R is not set
-+# CONFIG_CPU_SUBTYPE_SH7760 is not set
-+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
-+# CONFIG_CPU_SUBTYPE_SH7723 is not set
-+# CONFIG_CPU_SUBTYPE_SH7724 is not set
-+# CONFIG_CPU_SUBTYPE_SH7734 is not set
-+# CONFIG_CPU_SUBTYPE_SH7757 is not set
-+# CONFIG_CPU_SUBTYPE_SH7763 is not set
-+# CONFIG_CPU_SUBTYPE_SH7770 is not set
-+# CONFIG_CPU_SUBTYPE_SH7780 is not set
-+# CONFIG_CPU_SUBTYPE_SH7785 is not set
-+# CONFIG_CPU_SUBTYPE_SH7786 is not set
-+# CONFIG_CPU_SUBTYPE_SHX3 is not set
-+# CONFIG_CPU_SUBTYPE_SH7343 is not set
-+# CONFIG_CPU_SUBTYPE_SH7722 is not set
-+# CONFIG_CPU_SUBTYPE_SH7366 is not set
-+
-+#
-+# Memory management options
-+#
-+CONFIG_QUICKLIST=y
-+CONFIG_PAGE_OFFSET=0x00000000
-+CONFIG_FORCE_MAX_ZONEORDER=14
-+CONFIG_MEMORY_START=0x10000000
-+CONFIG_MEMORY_SIZE=0x8000000
-+# CONFIG_29BIT is not set
-+CONFIG_32BIT=y
-+CONFIG_ARCH_FLATMEM_ENABLE=y
-+CONFIG_ARCH_SPARSEMEM_ENABLE=y
-+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
-+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-+CONFIG_PAGE_SIZE_4KB=y
-+# CONFIG_PAGE_SIZE_8KB is not set
-+# CONFIG_PAGE_SIZE_16KB is not set
-+# CONFIG_PAGE_SIZE_64KB is not set
-+CONFIG_SELECT_MEMORY_MODEL=y
-+CONFIG_FLATMEM_MANUAL=y
-+# CONFIG_SPARSEMEM_MANUAL is not set
-+CONFIG_FLATMEM=y
-+CONFIG_FLAT_NODE_MEM_MAP=y
-+CONFIG_SPARSEMEM_STATIC=y
-+CONFIG_HAVE_MEMBLOCK=y
-+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
-+CONFIG_ARCH_DISCARD_MEMBLOCK=y
-+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
-+CONFIG_PAGEFLAGS_EXTENDED=y
-+CONFIG_SPLIT_PTLOCK_CPUS=999999
-+# CONFIG_PHYS_ADDR_T_64BIT is not set
-+CONFIG_ZONE_DMA_FLAG=0
-+CONFIG_NR_QUICK=1
-+CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1
-+CONFIG_NEED_PER_CPU_KM=y
-+# CONFIG_CLEANCACHE is not set
-+# CONFIG_ZPOOL is not set
-+# CONFIG_ZBUD is not set
-+
-+#
-+# Cache configuration
-+#
-+# CONFIG_CACHE_WRITEBACK is not set
-+# CONFIG_CACHE_WRITETHROUGH is not set
-+CONFIG_CACHE_OFF=y
-+
-+#
-+# Processor features
-+#
-+# CONFIG_CPU_LITTLE_ENDIAN is not set
-+CONFIG_CPU_BIG_ENDIAN=y
-+# CONFIG_SH_FPU_EMU is not set
-+
-+#
-+# Board support
-+#
-+CONFIG_0PF_FPGA=y
-+
-+#
-+# Timer and clock configuration
-+#
-+CONFIG_SH_PCLK_FREQ=32000000
-+CONFIG_SH_CLK_CPG=y
-+CONFIG_SH_CLK_CPG_LEGACY=y
-+
-+#
-+# CPU Frequency scaling
-+#
-+
-+#
-+# CPU Frequency scaling
-+#
-+# CONFIG_CPU_FREQ is not set
-+
-+#
-+# DMA support
-+#
-+
-+#
-+# Companion Chips
-+#
-+
-+#
-+# Additional SuperH Device Drivers
-+#
-+# CONFIG_HEARTBEAT is not set
-+# CONFIG_PUSH_SWITCH is not set
-+
-+#
-+# Kernel features
-+#
-+CONFIG_HZ_100=y
-+# CONFIG_HZ_250 is not set
-+# CONFIG_HZ_300 is not set
-+# CONFIG_HZ_1000 is not set
-+CONFIG_HZ=100
-+# CONFIG_SCHED_HRTICK is not set
-+# CONFIG_CRASH_DUMP is not set
-+CONFIG_PHYSICAL_START=0x10000000
-+# CONFIG_SECCOMP is not set
-+CONFIG_PREEMPT_NONE=y
-+# CONFIG_PREEMPT_VOLUNTARY is not set
-+# CONFIG_PREEMPT is not set
-+CONFIG_GUSA=y
-+
-+#
-+# SuperH / SH-Mobile Driver Options
-+#
-+CONFIG_SH_INTC=y
-+
-+#
-+# Interrupt controller options
-+#
-+
-+#
-+# Boot options
-+#
-+CONFIG_ZERO_PAGE_OFFSET=0x0003F000
-+CONFIG_BOOT_LINK_OFFSET=0x00800000
-+CONFIG_ENTRY_OFFSET=0x00001000
-+# CONFIG_CMDLINE_OVERWRITE is not set
-+CONFIG_CMDLINE_EXTEND=y
-+CONFIG_CMDLINE="console=ttyUL0"
-+
-+#
-+# Bus options
-+#
-+# CONFIG_PCCARD is not set
-+
-+#
-+# Executable file formats
-+#
-+CONFIG_BINFMT_ELF_FDPIC=y
-+CONFIG_BINFMT_SCRIPT=y
-+CONFIG_BINFMT_FLAT=y
-+# CONFIG_BINFMT_ZFLAT is not set
-+# CONFIG_BINFMT_SHARED_FLAT is not set
-+# CONFIG_HAVE_AOUT is not set
-+# CONFIG_BINFMT_MISC is not set
-+CONFIG_COREDUMP=y
-+
-+#
-+# Power management options (EXPERIMENTAL)
-+#
-+# CONFIG_PM is not set
-+
-+#
-+# CPU Idle
-+#
-+# CONFIG_CPU_IDLE is not set
-+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
-+# CONFIG_NET is not set
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+# CONFIG_UEVENT_HELPER is not set
-+CONFIG_DEVTMPFS=y
-+CONFIG_DEVTMPFS_MOUNT=y
-+# CONFIG_STANDALONE is not set
-+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-+CONFIG_FW_LOADER=y
-+# CONFIG_FIRMWARE_IN_KERNEL is not set
-+CONFIG_EXTRA_FIRMWARE=""
-+# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set
-+CONFIG_ALLOW_DEV_COREDUMP=y
-+# CONFIG_SYS_HYPERVISOR is not set
-+# CONFIG_GENERIC_CPU_DEVICES is not set
-+# CONFIG_DMA_SHARED_BUFFER is not set
-+
-+#
-+# Bus devices
-+#
-+# CONFIG_MTD is not set
-+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
-+# CONFIG_PARPORT is not set
-+# CONFIG_BLK_DEV is not set
-+
-+#
-+# Misc devices
-+#
-+# CONFIG_SENSORS_LIS3LV02D is not set
-+# CONFIG_DUMMY_IRQ is not set
-+# CONFIG_ENCLOSURE_SERVICES is not set
-+# CONFIG_SRAM is not set
-+# CONFIG_C2PORT is not set
-+
-+#
-+# EEPROM support
-+#
-+# CONFIG_EEPROM_93CX6 is not set
-+
-+#
-+# Texas Instruments shared transport line discipline
-+#
-+
-+#
-+# Altera FPGA firmware download module
-+#
-+
-+#
-+# Intel MIC Bus Driver
-+#
-+
-+#
-+# Intel MIC Host Driver
-+#
-+
-+#
-+# Intel MIC Card Driver
-+#
-+# CONFIG_ECHO is not set
-+# CONFIG_CXL_BASE is not set
-+
-+#
-+# SCSI device support
-+#
-+CONFIG_SCSI_MOD=y
-+# CONFIG_RAID_ATTRS is not set
-+# CONFIG_SCSI is not set
-+# CONFIG_SCSI_DMA is not set
-+CONFIG_HAVE_PATA_PLATFORM=y
-+# CONFIG_ATA is not set
-+# CONFIG_MD is not set
-+
-+#
-+# Input device support
-+#
-+CONFIG_INPUT=y
-+# CONFIG_INPUT_FF_MEMLESS is not set
-+# CONFIG_INPUT_POLLDEV is not set
-+# CONFIG_INPUT_SPARSEKMAP is not set
-+# CONFIG_INPUT_MATRIXKMAP is not set
-+
-+#
-+# Userland interfaces
-+#
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+# CONFIG_INPUT_EVBUG is not set
-+
-+#
-+# Input Device Drivers
-+#
-+# CONFIG_INPUT_KEYBOARD is not set
-+# CONFIG_INPUT_MOUSE is not set
-+# CONFIG_INPUT_JOYSTICK is not set
-+# CONFIG_INPUT_TABLET is not set
-+# CONFIG_INPUT_TOUCHSCREEN is not set
-+# CONFIG_INPUT_MISC is not set
-+
-+#
-+# Hardware I/O ports
-+#
-+# CONFIG_SERIO is not set
-+# CONFIG_GAMEPORT is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_TTY=y
-+CONFIG_VT=y
-+CONFIG_CONSOLE_TRANSLATIONS=y
-+CONFIG_VT_CONSOLE=y
-+CONFIG_HW_CONSOLE=y
-+# CONFIG_VT_HW_CONSOLE_BINDING is not set
-+CONFIG_UNIX98_PTYS=y
-+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-+# CONFIG_LEGACY_PTYS is not set
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+# CONFIG_TRACE_SINK is not set
-+CONFIG_DEVMEM=y
-+# CONFIG_DEVKMEM is not set
-+
-+#
-+# Serial drivers
-+#
-+# CONFIG_SERIAL_8250 is not set
-+
-+#
-+# Non-8250 serial port support
-+#
-+CONFIG_SERIAL_UARTLITE=y
-+CONFIG_SERIAL_UARTLITE_CONSOLE=y
-+CONFIG_SERIAL_UARTLITE_0PF=y
-+# CONFIG_SERIAL_SH_SCI is not set
-+CONFIG_SERIAL_CORE=y
-+CONFIG_SERIAL_CORE_CONSOLE=y
-+# CONFIG_SERIAL_SCCNXP is not set
-+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-+# CONFIG_SERIAL_ALTERA_UART is not set
-+# CONFIG_SERIAL_ARC is not set
-+# CONFIG_SERIAL_FSL_LPUART is not set
-+# CONFIG_IPMI_HANDLER is not set
-+# CONFIG_HW_RANDOM is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_RAW_DRIVER is not set
-+# CONFIG_TCG_TPM is not set
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+# CONFIG_SPI is not set
-+# CONFIG_SPMI is not set
-+# CONFIG_HSI is not set
-+
-+#
-+# PPS support
-+#
-+# CONFIG_PPS is not set
-+
-+#
-+# PPS generators support
-+#
-+
-+#
-+# PTP clock support
-+#
-+
-+#
-+# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-+#
-+CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
-+# CONFIG_W1 is not set
-+# CONFIG_POWER_SUPPLY is not set
-+# CONFIG_POWER_AVS is not set
-+# CONFIG_HWMON is not set
-+# CONFIG_THERMAL is not set
-+# CONFIG_WATCHDOG is not set
-+CONFIG_SSB_POSSIBLE=y
-+
-+#
-+# Sonics Silicon Backplane
-+#
-+# CONFIG_SSB is not set
-+CONFIG_BCMA_POSSIBLE=y
-+
-+#
-+# Broadcom specific AMBA
-+#
-+# CONFIG_BCMA is not set
-+
-+#
-+# Multifunction device drivers
-+#
-+# CONFIG_MFD_CORE is not set
-+# CONFIG_MFD_CROS_EC is not set
-+# CONFIG_HTC_PASIC3 is not set
-+# CONFIG_MFD_KEMPLD is not set
-+# CONFIG_MFD_MT6397 is not set
-+# CONFIG_MFD_SM501 is not set
-+# CONFIG_ABX500_CORE is not set
-+# CONFIG_MFD_SYSCON is not set
-+# CONFIG_MFD_TI_AM335X_TSCADC is not set
-+# CONFIG_MFD_TMIO is not set
-+# CONFIG_REGULATOR is not set
-+# CONFIG_MEDIA_SUPPORT is not set
-+
-+#
-+# Graphics support
-+#
-+
-+#
-+# Direct Rendering Manager
-+#
-+
-+#
-+# Frame buffer Devices
-+#
-+# CONFIG_FB is not set
-+# CONFIG_FB_SH_MOBILE_MERAM is not set
-+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-+# CONFIG_VGASTATE is not set
-+
-+#
-+# Console display driver support
-+#
-+CONFIG_DUMMY_CONSOLE=y
-+CONFIG_DUMMY_CONSOLE_COLUMNS=80
-+CONFIG_DUMMY_CONSOLE_ROWS=25
-+# CONFIG_SOUND is not set
-+
-+#
-+# HID support
-+#
-+# CONFIG_HID is not set
-+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-+# CONFIG_USB_SUPPORT is not set
-+# CONFIG_UWB is not set
-+# CONFIG_MMC is not set
-+# CONFIG_MEMSTICK is not set
-+# CONFIG_NEW_LEDS is not set
-+# CONFIG_ACCESSIBILITY is not set
-+CONFIG_RTC_LIB=y
-+# CONFIG_RTC_CLASS is not set
-+# CONFIG_DMADEVICES is not set
-+# CONFIG_AUXDISPLAY is not set
-+# CONFIG_VIRT_DRIVERS is not set
-+
-+#
-+# Virtio drivers
-+#
-+# CONFIG_VIRTIO_MMIO is not set
-+
-+#
-+# Microsoft Hyper-V guest support
-+#
-+# CONFIG_STAGING is not set
-+CONFIG_CLKDEV_LOOKUP=y
-+
-+#
-+# Hardware Spinlock drivers
-+#
-+
-+#
-+# Clock Source drivers
-+#
-+# CONFIG_ATMEL_PIT is not set
-+# CONFIG_SH_TIMER_CMT is not set
-+# CONFIG_SH_TIMER_MTU2 is not set
-+# CONFIG_SH_TIMER_TMU is not set
-+# CONFIG_EM_TIMER_STI is not set
-+# CONFIG_MAILBOX is not set
-+
-+#
-+# Remoteproc drivers
-+#
-+# CONFIG_STE_MODEM_RPROC is not set
-+
-+#
-+# Rpmsg drivers
-+#
-+
-+#
-+# SOC (System On Chip) specific Drivers
-+#
-+# CONFIG_SOC_TI is not set
-+# CONFIG_PM_DEVFREQ is not set
-+# CONFIG_EXTCON is not set
-+# CONFIG_MEMORY is not set
-+# CONFIG_IIO is not set
-+# CONFIG_PWM is not set
-+# CONFIG_IPACK_BUS is not set
-+# CONFIG_RESET_CONTROLLER is not set
-+# CONFIG_FMC is not set
-+
-+#
-+# PHY Subsystem
-+#
-+# CONFIG_GENERIC_PHY is not set
-+# CONFIG_BCM_KONA_USB2_PHY is not set
-+# CONFIG_POWERCAP is not set
-+# CONFIG_MCB is not set
-+
-+#
-+# Android
-+#
-+# CONFIG_ANDROID is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_EXT2_FS is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_EXT4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_BTRFS_FS is not set
-+# CONFIG_NILFS2_FS is not set
-+# CONFIG_F2FS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-+CONFIG_FILE_LOCKING=y
-+# CONFIG_FSNOTIFY is not set
-+# CONFIG_DNOTIFY is not set
-+# CONFIG_INOTIFY_USER is not set
-+# CONFIG_FANOTIFY is not set
-+# CONFIG_QUOTA is not set
-+# CONFIG_QUOTACTL is not set
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_FUSE_FS is not set
-+# CONFIG_OVERLAY_FS is not set
-+
-+#
-+# Caches
-+#
-+# CONFIG_FSCACHE is not set
-+
-+#
-+# CD-ROM/DVD Filesystems
-+#
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_UDF_FS is not set
-+
-+#
-+# DOS/FAT/NT Filesystems
-+#
-+CONFIG_FAT_FS=y
-+# CONFIG_MSDOS_FS is not set
-+CONFIG_VFAT_FS=y
-+CONFIG_FAT_DEFAULT_CODEPAGE=437
-+CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
-+# CONFIG_NTFS_FS is not set
-+
-+#
-+# Pseudo filesystems
-+#
-+CONFIG_PROC_FS=y
-+CONFIG_PROC_SYSCTL=y
-+CONFIG_KERNFS=y
-+CONFIG_SYSFS=y
-+# CONFIG_HUGETLB_PAGE is not set
-+# CONFIG_CONFIGFS_FS is not set
-+# CONFIG_MISC_FILESYSTEMS is not set
-+CONFIG_NLS=y
-+CONFIG_NLS_DEFAULT="utf8"
-+# CONFIG_NLS_CODEPAGE_437 is not set
-+# CONFIG_NLS_CODEPAGE_737 is not set
-+# CONFIG_NLS_CODEPAGE_775 is not set
-+# CONFIG_NLS_CODEPAGE_850 is not set
-+# CONFIG_NLS_CODEPAGE_852 is not set
-+# CONFIG_NLS_CODEPAGE_855 is not set
-+# CONFIG_NLS_CODEPAGE_857 is not set
-+# CONFIG_NLS_CODEPAGE_860 is not set
-+# CONFIG_NLS_CODEPAGE_861 is not set
-+# CONFIG_NLS_CODEPAGE_862 is not set
-+# CONFIG_NLS_CODEPAGE_863 is not set
-+# CONFIG_NLS_CODEPAGE_864 is not set
-+# CONFIG_NLS_CODEPAGE_865 is not set
-+# CONFIG_NLS_CODEPAGE_866 is not set
-+# CONFIG_NLS_CODEPAGE_869 is not set
-+# CONFIG_NLS_CODEPAGE_936 is not set
-+# CONFIG_NLS_CODEPAGE_950 is not set
-+# CONFIG_NLS_CODEPAGE_932 is not set
-+# CONFIG_NLS_CODEPAGE_949 is not set
-+# CONFIG_NLS_CODEPAGE_874 is not set
-+# CONFIG_NLS_ISO8859_8 is not set
-+# CONFIG_NLS_CODEPAGE_1250 is not set
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+# CONFIG_NLS_ASCII is not set
-+# CONFIG_NLS_ISO8859_1 is not set
-+# CONFIG_NLS_ISO8859_2 is not set
-+# CONFIG_NLS_ISO8859_3 is not set
-+# CONFIG_NLS_ISO8859_4 is not set
-+# CONFIG_NLS_ISO8859_5 is not set
-+# CONFIG_NLS_ISO8859_6 is not set
-+# CONFIG_NLS_ISO8859_7 is not set
-+# CONFIG_NLS_ISO8859_9 is not set
-+# CONFIG_NLS_ISO8859_13 is not set
-+# CONFIG_NLS_ISO8859_14 is not set
-+# CONFIG_NLS_ISO8859_15 is not set
-+# CONFIG_NLS_KOI8_R is not set
-+# CONFIG_NLS_KOI8_U is not set
-+# CONFIG_NLS_MAC_ROMAN is not set
-+# CONFIG_NLS_MAC_CELTIC is not set
-+# CONFIG_NLS_MAC_CENTEURO is not set
-+# CONFIG_NLS_MAC_CROATIAN is not set
-+# CONFIG_NLS_MAC_CYRILLIC is not set
-+# CONFIG_NLS_MAC_GAELIC is not set
-+# CONFIG_NLS_MAC_GREEK is not set
-+# CONFIG_NLS_MAC_ICELAND is not set
-+# CONFIG_NLS_MAC_INUIT is not set
-+# CONFIG_NLS_MAC_ROMANIAN is not set
-+# CONFIG_NLS_MAC_TURKISH is not set
-+CONFIG_NLS_UTF8=y
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-+
-+#
-+# printk and dmesg options
-+#
-+# CONFIG_PRINTK_TIME is not set
-+CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-+
-+#
-+# Compile-time checks and compiler options
-+#
-+# CONFIG_ENABLE_WARN_DEPRECATED is not set
-+# CONFIG_ENABLE_MUST_CHECK is not set
-+CONFIG_FRAME_WARN=1024
-+# CONFIG_STRIP_ASM_SYMS is not set
-+# CONFIG_UNUSED_SYMBOLS is not set
-+# CONFIG_DEBUG_FS is not set
-+# CONFIG_HEADERS_CHECK is not set
-+# CONFIG_DEBUG_SECTION_MISMATCH is not set
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_DEBUG_KERNEL is not set
-+
-+#
-+# Memory Debugging
-+#
-+# CONFIG_PAGE_EXTENSION is not set
-+# CONFIG_SLUB_DEBUG_ON is not set
-+# CONFIG_SLUB_STATS is not set
-+CONFIG_HAVE_DEBUG_KMEMLEAK=y
-+CONFIG_DEBUG_MEMORY_INIT=y
-+
-+#
-+# Debug Lockups and Hangs
-+#
-+# CONFIG_PANIC_ON_OOPS is not set
-+CONFIG_PANIC_ON_OOPS_VALUE=0
-+CONFIG_PANIC_TIMEOUT=0
-+# CONFIG_DEBUG_TIMEKEEPING is not set
-+
-+#
-+# Lock Debugging (spinlocks, mutexes, etc...)
-+#
-+# CONFIG_STACKTRACE is not set
-+CONFIG_HAVE_DEBUG_BUGVERBOSE=y
-+CONFIG_DEBUG_BUGVERBOSE=y
-+
-+#
-+# RCU Debugging
-+#
-+# CONFIG_PROVE_RCU is not set
-+# CONFIG_SPARSE_RCU_POINTER is not set
-+# CONFIG_TORTURE_TEST is not set
-+CONFIG_HAVE_FUNCTION_TRACER=y
-+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-+CONFIG_HAVE_DYNAMIC_FTRACE=y
-+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-+CONFIG_TRACING_SUPPORT=y
-+# CONFIG_FTRACE is not set
-+
-+#
-+# Runtime Testing
-+#
-+# CONFIG_ATOMIC64_SELFTEST is not set
-+# CONFIG_TEST_HEXDUMP is not set
-+# CONFIG_TEST_STRING_HELPERS is not set
-+# CONFIG_TEST_KSTRTOX is not set
-+# CONFIG_TEST_RHASHTABLE is not set
-+# CONFIG_DMA_API_DEBUG is not set
-+# CONFIG_TEST_FIRMWARE is not set
-+# CONFIG_TEST_UDELAY is not set
-+# CONFIG_MEMTEST is not set
-+# CONFIG_SAMPLES is not set
-+CONFIG_HAVE_ARCH_KGDB=y
-+# CONFIG_SH_STANDARD_BIOS is not set
-+# CONFIG_DWARF_UNWINDER is not set
-+
-+#
-+# Security options
-+#
-+# CONFIG_KEYS is not set
-+# CONFIG_SECURITY_DMESG_RESTRICT is not set
-+# CONFIG_SECURITY is not set
-+# CONFIG_SECURITYFS is not set
-+CONFIG_DEFAULT_SECURITY_DAC=y
-+CONFIG_DEFAULT_SECURITY=""
-+# CONFIG_CRYPTO is not set
-+# CONFIG_BINARY_PRINTF is not set
-+
-+#
-+# Library routines
-+#
-+CONFIG_BITREVERSE=y
-+# CONFIG_HAVE_ARCH_BITREVERSE is not set
-+CONFIG_GENERIC_STRNCPY_FROM_USER=y
-+CONFIG_GENERIC_STRNLEN_USER=y
-+CONFIG_GENERIC_IO=y
-+# CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
-+# CONFIG_CRC_T10DIF is not set
-+# CONFIG_CRC_ITU_T is not set
-+CONFIG_CRC32=y
-+# CONFIG_CRC32_SELFTEST is not set
-+CONFIG_CRC32_SLICEBY8=y
-+# CONFIG_CRC32_SLICEBY4 is not set
-+# CONFIG_CRC32_SARWATE is not set
-+# CONFIG_CRC32_BIT is not set
-+# CONFIG_CRC7 is not set
-+# CONFIG_LIBCRC32C is not set
-+# CONFIG_CRC8 is not set
-+# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
-+# CONFIG_RANDOM32_SELFTEST is not set
-+# CONFIG_XZ_DEC is not set
-+# CONFIG_XZ_DEC_BCJ is not set
-+CONFIG_HAS_IOMEM=y
-+CONFIG_HAS_DMA=y
-+CONFIG_GENERIC_ATOMIC64=y
-+CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
-+# CONFIG_AVERAGE is not set
-+# CONFIG_CORDIC is not set
-+# CONFIG_DDR is not set
-+# CONFIG_ARCH_HAS_SG_CHAIN is not set
-diff -Nur linux-4.1.13.orig/arch/sh/include/asm/board-0pf.h linux-4.1.13/arch/sh/include/asm/board-0pf.h
---- linux-4.1.13.orig/arch/sh/include/asm/board-0pf.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.13/arch/sh/include/asm/board-0pf.h 2015-12-05 00:16:48.000000000 +0100
-@@ -0,0 +1,247 @@
-+#ifndef SGM_BOARD_H
-+#define SGM_BOARD_H
-+
-+#define sys_IntTable (*(unsigned*)0x0)
-+#define sys_IntVectors 256
-+
-+/* Some of interrupt is fixed vector */
-+#define Irq_MRES 0x02 /* Manual reset */
-+#define Irq_CPUERR 0x09
-+#define Irq_DMAERR 0x0a
-+#define Irq_NMI 0x0b
-+#define Irq_PIT 0x10 /* 100 Hz PIT */
-+#define Irq_EMAC 0x11 /* irqs(0) */
-+#define Irq_UART0 0x12 /* irqs(1) */
-+#define Irq_GPS 0x13 /* irqs(2) */
-+#define Irq_Ext 0x14 /* irqs(3) use by CS42518*/
-+#define Irq_1PPS 0x16 /* irqs(5) */
-+#define Irq_UART1 0x17 /* irqs(6) */
-+#define Irq_I2C 0x18 /* irqs(7) */
-+#define Irq_TMR 0x19 /* a 12 bit countdown counter */
-+#define Irq_GPIO 0x15
-+
-+/* External interrupt IDs */
-+#define EIrqID_EMAC 0
-+#define EIrqID_UART0 1
-+#define EIrqID_GPS 2
-+#define EIrqID_Ext 3
-+#define EIrqID_GPIO 4
-+#define EIrqID_1PPS 5
-+#define EIrqID_UART1 6
-+#define EIrqID_I2C 7
-+
-+/* External Interrupt ID convert to interrupt vector */
-+#define ID2Vect(x) (0x11 + (x))
-+
-+/* Convert external interupt ID to priority value */
-+#define ID2Pri(id, pri) ((pri) << ((id) <<2))
-+
-+/* Convert vector to interrupt entry address */
-+#define Vect2Irq(x) ((x) << 2)
-+
-+#define PIT_IRQ Vect2Irq(Irq_PIT)
-+#define EMAC_IRQ Vect2Irq(Irq_EMAC)
-+#define UART0_IRQ Vect2Irq(Irq_UART0)
-+#define GPS_IRQ Vect2Irq(Irq_GPS)
-+#define EXT_IRQ Vect2Irq(Irq_Ext)
-+#define UART1_IRQ Vect2Irq(Irq_UART1)
-+#define I2C_IRQ Vect2Irq(Irq_I2C)
-+#define TMR_IRQ Vect2Irq(Irq_TMR)
-+
-+
-+/* End of interrupt definations */
-+#define sys_RAM_BASE 0x10000000
-+#define sys_PIO_BASE 0xabcd0000
-+#define sys_SPI_BASE 0xabcd0040
-+#define sys_I2C_BASE 0xabcd0080 // 0xabcd0020
-+#define sys_UART0_BASE 0xabcd0100
-+#define sys_SYS_BASE 0xabcd0200
-+#define sys_UART1_BASE 0xabcd0300
-+#define sys_GPS_BASE 0xabcd0400
-+#define sys_D2A_BASE 0xabcd0500
-+#define sys_EMAC_BASE 0xabce0000
-+
-+#define AQ_PIO (*(volatile unsigned int *)sys_PIO_BASE)
-+#define AQ_I2C (*(volatile unsigned int *)sys_I2C_BASE)
-+#define AQ_SPI (*(volatile unsigned int *)sys_SPI_BASE)
-+#define AQ_UART0 (*(volatile unsigned int *)sys_UART0_BASE)
-+#define AQ_SYS (*(volatile unsigned int *)sys_SYS_BASE)
-+#define AQ_UART1 (*(volatile unsigned int *)sys_UART1_BASE)
-+#define AQ_GPS (*(volatile unsigned int *)sys_GPS_BASE)
-+#define AQ_D2A (*(volatile unsigned int *)sys_D2A_BASE)
-+#define AQ_EMAC (*(volatile unsigned int *)sys_EMAC_BASE)
-+
-+
-+struct st_uart16550
-+{
-+ unsigned int RTX;
-+ unsigned int IER;
-+ unsigned int IIR;
-+ unsigned int LCR;
-+ unsigned int MCR;
-+ unsigned int LSR;
-+ unsigned int MSR;
-+ unsigned int SCR;
-+};
-+#define uLSRDR 0x01
-+#define uLSROE 0x02
-+#define uLSRPE 0x04
-+#define uLSRFE 0x08
-+#define uLSRBI 0x10
-+#define uLSRTHRE 0x20
-+#define uLSRTEMT 0x40
-+#define uLSRRFE 0x80 /* Error in Revr FIFO */
-+
-+#if 0
-+#define B115200 0x000a
-+#define B38400 0x001e
-+#define B19200 0x003c
-+#define B9600 0x0078
-+#define B4800 0x00f0
-+#endif
-+
-+/* the following is belong to sys_SYS_BASE */
-+#define Sys_IntCon 0x0
-+/* When SIC_BRKON is set, BreadAddress will compare with Bus address to generate NMI interrupt */
-+#define Sys_BRKADR 0x04
-+/* Interrupt priority is 4 bits width, irqs(0) is [3,0], irqs(1) is [7,4] ... */
-+#define Sys_IntPri 0x08
-+/* End of offset define of sys_SYS_BASE */
-+/* Refer to Aquarius datasheet Page 12, NMI is lvl16, and lvl0 will not be accept */
-+/* Refer to define.v, IBit in SR [7:4] */
-+#define SIC_ENMI ((unsigned int) 0x1<<31) /* Emulate NMI */
-+#define SIC EIRQ ((unsigned int) 0x1<<30) /* Emulate IRQ */
-+#define SIC_ECER ((unsigned int) 0x1<<29) /* Emulate CPU Address Error */
-+#define SIC_EDER ((unsigned int) 0x1<<28) /* Emulate DMA Address Error */
-+#define SIC_EMRS ((unsigned int) 0x1<<27) /* Emulate Manual Reset */
-+#define SIC_EPIT ((unsigned int) 0x1<<26) /* Enable Periodical interval timer(PIT) */
-+#define SIC_TMRON ((unsigned int) 0x1<<25) /* Enable timer */
-+#define SIC_BRKON ((unsigned int) 0x1<<24) /* Break ON */
-+#define SIC_ILVL ((unsigned int) 0xF<<20) /* interrupt level for PIT */
-+#define SIC_IVEC ((unsigned int) 0xFF<<12) /* Interrupt Vector for PIT */
-+#define SIC_TMR ((unsigned int)0xFFF) /* Interval Timer when 0x0, it request IRQ*/
-+
-+/* PIO registers offset */
-+#define Poffset_IO 0x00
-+#define Poffset_imask 0x04
-+#define Poffset_redge 0x08
-+#define Poffset_changes 0x0c
-+
-+/* Keys are connected to Parallel Input, Active low */
-+#define Pio_KeyEnter 0x0001
-+#define Pio_KeyESC 0x0002
-+#define Pio_KeyNorth 0x0020
-+#define Pio_KeyEast 0x0040
-+#define Pio_KeySouth 0x0080
-+#define Pio_KeyWest 0x0100
-+
-+/* SD_CD is active high of this bit */
-+#define Pio_SD_CD 0x00200000
-+
-+#define Pio_1PPS 0x00800000
-+
-+/* IMPORTANT!!! Pio_LEDPwr is connected with with reset pins of USB, ETH-PHY
-+ * and GPS. DON'T CHANGE IT or use it for now!!!
-+ * TODO: VHDL needs to fix Power LED to other location with set and reset feature
-+ */
-+#define Pio_LEDPwr 0x0010
-+#define Pio_LEDErr 0x0020
-+#define Pio_TP70 0x0040
-+
-+#if 0
-+ #define I2c_busy 0x8000
-+ #define I2c_next 0x4000
-+ #define I2c_ack 0x2000
-+ #define I2c_timeout 0x1000
-+ #define I2c_timer 0x0800
-+ #define I2c_mask 0xf800
-+#else
-+ #define I2cO_ctrl 0x00
-+ #define I2cO_slen 0x04
-+ #define I2cO_word 0x0C
-+
-+ /* for I2cO_ctrl */
-+ #define I2cC_busy 0x01
-+ #define I2cC_timeout 0x02
-+ #define I2cC_complete 0x04
-+ #define I2cC_reset 0x08
-+ #define I2cC_run 0x10
-+ #define I2cC_irqen 0x20
-+ #define I2cC_clk 0x40
-+ #define I2cC_dat 0x80
-+ #define I2cC_MaskDelay 0xff00
-+ #define I2c_delay(x) ((x)<< 8)
-+ #define I2cC_MaskAckTimeout 0xf0000
-+ #define I2c_timeout(x) ((x) << 16)
-+ /* for I2cO_slen */
-+ #define I2cS_MaskXlen 0x1f
-+ #define I2cS_MaxLen 16
-+ #define I2cS_MaskSpeed 0x30000
-+ #define I2cS_100k 0x0
-+ #define I2cS_400k 0x10000
-+ #define I2cS_1m 0x20000
-+ #define I2cS_3m4 0x30000
-+ #define I2cS_Maskwordcount 0xf80000
-+#endif
-+
-+/***********************************************************/
-+/************************************ EMAC **************/
-+/***********************************************************/
-+
-+#define AQ_EMAC_BASE 0xABCE0000
-+#define AQ_EMAC_CONTROL 0xABCE0000
-+#define AQ_EMAC_STATUS 0xABCE0000
-+
-+/* Control bits */
-+#define AQ_EMAC_ENABLE_RX 0x00000002
-+#define AQ_EMAC_ENABLE_TX 0x00000004
-+#define AQ_EMAC_READ 0x00000010
-+#define AQ_EMAC_ENABLE_INT_RX 0x00000020
-+#define AQ_EMAC_ENABLE_INT_TX 0x00000040
-+
-+/* Status bits */
-+#define AQ_EMAC_TX_BUSY 0x00000004
-+#define AQ_EMAC_COMPLETE 0x00000100
-+#define AQ_EMAC_CRC 0x00000200
-+
-+#define AQ_EMAC_TX_LEN 0xABCE0004
-+#define AQ_EMAC_MACL 0xABCE0008
-+#define AQ_EMAC_MACH 0xABCE000C
-+#define AQ_EMAC_RX_BUF 0xABCE1000
-+#define AQ_EMAC_TX_BUF 0xABCE1800
-+
-+#define Emac_Rbuf 0x1000
-+#define Emac_Xbuf 0x1800
-+#define Emac_Ctrl 0x0000
-+#define Emac_xlen 0x0004
-+#define Emac_MACL 0x0008
-+#define Emac_MACH 0x000c
-+#define ECtrl_RecvEnable 0x2 /* Receive enable */
-+#define ECtrl_Xmit 0x4 /* Read: Transmit busy(1); Write: Start transmit(1) */
-+#define ECtrl_MACReset 0x8 /* Reset MAC address */
-+#define ECtrl_Read 0x10 /* complete read from Receive FIFO */
-+#define ECtrl_RIntEnable 0x20 /* Receive interrupt enable(1) */
-+#define ECtrl_XIntEnable 0x40 /* Transmit interrupt enable(1) */
-+#define ECtrl_PROM 0x80 /* Promiscuous Mode enable(1)/disable(0) */
-+#define ECtrl_Complete 0x100 /* Receive packet waiting in FIFO */
-+#define ECtrl_CRC 0x200 /* Receive packet has CRC error */
-+#define ECtrl_getrxlen(x) ((x) >> 16) /* Length of received package, when ECtrl_Complete is set */
-+
-+#define Spi_Ctrl 0x0
-+#define Spi_Data 0x4
-+#define SpiCtrl_ACS 0x01 /* chipselect for applcation data */
-+#define SpiCtrl_CCS 0x04 /* chipselect for FPGA configure */
-+#define SpiCtrl_DCS 0x10 /* chipselect for D2A or extra SPI device */
-+#define SpiCtrl_setDiv(x) ((x) << 27) /* Div contrl SPI_CK = 12.5/(div + 1), Min: 400KHz for now*/
-+#define SpiCtrl_Xmit 0x02
-+#define SpiCtrl_Busy 0x02
-+#define SpiCtrl_Loop 0x08 /* When it assert, mosi will connect to miso */
-+/* by default SPI run at 12.5 MHz,maxium speed for Spartan 3E, for SPI Flash
-+ * We need a DDS delay for different devices
-+ */
-+
-+#define SHJ_PIT_PMR 0xABCD0210
-+#define SHJ_PIT_PCNTR 0xABCD0214
-+#define SHJ_NSEC_PER_CLOCK 0xABCD0218
-+
-+#endif
-diff -Nur linux-4.1.13.orig/arch/sh/include/asm/processor.h linux-4.1.13/arch/sh/include/asm/processor.h
---- linux-4.1.13.orig/arch/sh/include/asm/processor.h 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/include/asm/processor.h 2015-12-05 00:16:49.000000000 +0100
-@@ -15,7 +15,7 @@
- */
- enum cpu_type {
- /* SH-2 types */
-- CPU_SH7619,
-+ CPU_SH7619, CPU_0PF,
-
- /* SH-2A types */
- CPU_SH7201, CPU_SH7203, CPU_SH7206, CPU_SH7263, CPU_SH7264, CPU_SH7269,
-diff -Nur linux-4.1.13.orig/arch/sh/include/cpu-sh2/cpu/cache.h linux-4.1.13/arch/sh/include/cpu-sh2/cpu/cache.h
---- linux-4.1.13.orig/arch/sh/include/cpu-sh2/cpu/cache.h 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/include/cpu-sh2/cpu/cache.h 2015-12-05 00:16:49.000000000 +0100
-@@ -38,6 +38,10 @@
- #define CCR_CACHE_INVALIDATE CCR_CACHE_CF
- #define CACHE_PHYSADDR_MASK 0x1ffffc00
-
-+#elif defined(CONFIG_CPU_SUBTYPE_0PF)
-+#define CCR 0xabcd00c0
-+#define CCR_CACHE_ENABLE 0x80000000
-+#define CCR_CACHE_RESET 0x101
- #endif
-
- #endif /* __ASM_CPU_SH2_CACHE_H */
-diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/init.c linux-4.1.13/arch/sh/kernel/cpu/init.c
---- linux-4.1.13.orig/arch/sh/kernel/cpu/init.c 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/kernel/cpu/init.c 2015-12-05 00:16:49.000000000 +0100
-@@ -106,7 +106,7 @@
- /*
- * Generic first-level cache init
- */
--#ifdef CONFIG_SUPERH32
-+#if defined(CONFIG_SUPERH32) && !defined(CONFIG_CPU_SUBTYPE_0PF)
- static void cache_init(void)
- {
- unsigned long ccr, flags;
-diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/proc.c linux-4.1.13/arch/sh/kernel/cpu/proc.c
---- linux-4.1.13.orig/arch/sh/kernel/cpu/proc.c 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/kernel/cpu/proc.c 2015-12-05 00:16:49.000000000 +0100
-@@ -26,6 +26,7 @@
- [CPU_SH5_101] = "SH5-101", [CPU_SH5_103] = "SH5-103",
- [CPU_MXG] = "MX-G", [CPU_SH7723] = "SH7723",
- [CPU_SH7366] = "SH7366", [CPU_SH7724] = "SH7724",
-+ [CPU_0PF] = "SH2J-0PF",
- [CPU_SH7372] = "SH7372", [CPU_SH7734] = "SH7734",
- [CPU_SH_NONE] = "Unknown"
- };
-diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/Makefile linux-4.1.13/arch/sh/kernel/cpu/sh2/Makefile
---- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/Makefile 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/kernel/cpu/sh2/Makefile 2015-12-05 00:16:49.000000000 +0100
-@@ -5,3 +5,4 @@
- obj-y := ex.o probe.o entry.o
-
- obj-$(CONFIG_CPU_SUBTYPE_SH7619) += setup-sh7619.o clock-sh7619.o
-+obj-$(CONFIG_CPU_SUBTYPE_0PF) += setup-0pf.o clock-0pf.o
-diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/clock-0pf.c linux-4.1.13/arch/sh/kernel/cpu/sh2/clock-0pf.c
---- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/clock-0pf.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.13/arch/sh/kernel/cpu/sh2/clock-0pf.c 2015-12-05 00:16:48.000000000 +0100
-@@ -0,0 +1,80 @@
-+/*
-+ * arch/sh/kernel/cpu/sh2/clock-0pf.c
-+ *
-+ * 0PF FPGA support for the clock framework
-+ *
-+ * Copyright (C) 2012 SEI, Inc.
-+ *
-+ * Based on clock-sh4.c
-+ * Copyright (C) 2005 Paul Mundt
-+ * Copyright (C) 2009 D. Jeff Dionne
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <asm/clock.h>
-+#include <linux/timex.h>
-+#include <linux/profile.h>
-+#include <linux/interrupt.h>
-+#include <linux/irq.h>
-+
-+#include <asm/freq.h>
-+#include <asm/io.h>
-+
-+static void master_clk_init(struct clk *clk)
-+{
-+ clk->rate = CONFIG_SH_PCLK_FREQ; /* Fixed Rate */
-+}
-+
-+static struct sh_clk_ops shj_master_clk_ops = {
-+ .init = master_clk_init,
-+};
-+
-+static unsigned long module_clk_recalc(struct clk *clk)
-+{
-+ return clk->parent->rate;
-+}
-+
-+static struct sh_clk_ops shj_module_clk_ops = {
-+ .recalc = module_clk_recalc,
-+};
-+
-+static unsigned long bus_clk_recalc(struct clk *clk)
-+{
-+ return clk->parent->rate;
-+}
-+
-+static struct sh_clk_ops shj_bus_clk_ops = {
-+ .recalc = bus_clk_recalc,
-+};
-+
-+static struct sh_clk_ops shj_cpu_clk_ops = {
-+ .recalc = followparent_recalc,
-+};
-+
-+static struct sh_clk_ops *shj_clk_ops[] = {
-+ &shj_master_clk_ops,
-+ &shj_module_clk_ops,
-+ &shj_bus_clk_ops,
-+ &shj_cpu_clk_ops,
-+};
-+
-+void __init arch_init_clk_ops(struct sh_clk_ops **ops, int idx)
-+{
-+ if (idx < ARRAY_SIZE(shj_clk_ops))
-+ *ops = shj_clk_ops[idx];
-+}
-+
-+int __init arch_clk_init()
-+{
-+ int ret;
-+
-+ printk("%s(): 0PF Clock init...\n", __func__);
-+
-+ ret = cpg_clk_init(); /* appease Over-engineered "clock infrastructure" */
-+
-+ return ret;
-+}
-diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/entry.S linux-4.1.13/arch/sh/kernel/cpu/sh2/entry.S
---- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/entry.S 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/kernel/cpu/sh2/entry.S 2015-12-05 00:16:49.000000000 +0100
-@@ -3,6 +3,7 @@
- *
- * The SH-2 exception entry
- *
-+ * Copyright (C) 2012 SEI,Inc.
- * Copyright (C) 2005-2008 Yoshinori Sato
- * Copyright (C) 2005 AXE,Inc.
- *
-@@ -147,7 +148,11 @@
- mov #32,r8
- cmp/hs r8,r9
- bt trap_entry ! 64 > vec >= 32 is trap
--
-+#if defined(CONFIG_CPU_SUBTYPE_0PF)
-+ mov #16,r8
-+ cmp/hs r8,r9
-+ bt interrupt_entry ! 32 > vec >= 16 is interrupt
-+#endif
- mov.l 4f,r8
- mov r9,r4
- shll2 r9
-@@ -245,6 +250,19 @@
- .align 2
- 1: .long do_address_error
-
-+#if defined(CONFIG_CPU_SUBTYPE_0PF)
-+ENTRY(pc_address_error_trap_handler)
-+ mov r15,r4 ! regs
-+ mov #OFF_PC,r0
-+ mov.l @(r0,r15),r6 ! pc
-+ mov.l 1f,r0
-+ jmp @r0
-+ mov #0,r5 ! writeaccess is unknown
-+
-+ .align 2
-+1: .long do_pc_address_error
-+#endif // CONFIG_CPU_SUBTYPE_0PF
-+
- restore_all:
- stc sr,r0
- or #0xf0,r0
-diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/probe.c linux-4.1.13/arch/sh/kernel/cpu/sh2/probe.c
---- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/probe.c 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/kernel/cpu/sh2/probe.c 2015-12-05 00:16:49.000000000 +0100
-@@ -24,6 +24,12 @@
- boot_cpu_data.dcache.linesz = L1_CACHE_BYTES;
- boot_cpu_data.dcache.flags = 0;
- #endif
-+
-+#if defined(CONFIG_CPU_SUBTYPE_0PF)
-+ boot_cpu_data.type = CPU_0PF;
-+ boot_cpu_data.dcache.flags = 0;
-+#endif
-+
- /*
- * SH-2 doesn't have separate caches
- */
-diff -Nur linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/setup-0pf.c linux-4.1.13/arch/sh/kernel/cpu/sh2/setup-0pf.c
---- linux-4.1.13.orig/arch/sh/kernel/cpu/sh2/setup-0pf.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.13/arch/sh/kernel/cpu/sh2/setup-0pf.c 2015-12-05 00:16:48.000000000 +0100
-@@ -0,0 +1,82 @@
-+/*
-+ * 0PF-FPGA Setup
-+ *
-+ * Copyright (C) 2006 Yoshinori Sato
-+ * Copyright (C) 2009 Paul Mundt
-+ * Copyright (C) 2009 D. Jeff Dionne
-+ * Copyright (C) 2012 SEI, Inc.
-+ * by Oleksandr Zhadan
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ */
-+#include <linux/platform_device.h>
-+#include <linux/init.h>
-+#include <linux/module.h>
-+#include <linux/io.h>
-+#include <linux/interrupt.h>
-+#include <linux/irq.h>
-+#include <linux/serial_8250.h>
-+#include <asm/board-0pf.h>
-+
-+#if defined(CONFIG_SERIAL_UARTLITE_0PF)
-+static struct resource shj_uartlite_resources[] = {
-+ [0] = DEFINE_RES_MEM(0xABCD0100, 16),
-+ [1] = DEFINE_RES_IRQ(0x12),
-+
-+ [2] = DEFINE_RES_MEM(0xABCD0300, 16),
-+ [3] = DEFINE_RES_IRQ(0x17),
-+
-+ [4] = DEFINE_RES_MEM(0xABCD0400, 16),
-+ [5] = DEFINE_RES_IRQ(0x13),
-+};
-+
-+static struct platform_device shj_uartlite_device[] = {
-+ [0] = { .name = "uartlite", .id = 0 },
-+ [1] = { .name = "uartlite", .id = 1 },
-+ [2] = { .name = "uartlite", .id = 2 },
-+};
-+#endif
-+
-+/*****************************************************************************
-+ * 0PF FPGA platform devices
-+ ****************************************************************************/
-+static struct platform_device *shj_devices[] __initdata = {
-+#if defined(CONFIG_SERIAL_UARTLITE_0PF)
-+ shj_uartlite_device,
-+ shj_uartlite_device + 1,
-+ shj_uartlite_device + 2,
-+#endif
-+};
-+
-+static int __init shj_devices_setup(void)
-+{
-+ int i;
-+ pr_info("%s(): registering device resources\n", __func__);
-+
-+#if defined(CONFIG_SERIAL_UARTLITE_0PF)
-+ for (i = 0; i < ARRAY_SIZE(shj_uartlite_device); i++) {
-+ printk("Register UARTLITE resources %d\n", i);
-+ if (platform_device_add_resources(
-+ shj_uartlite_device + i,
-+ shj_uartlite_resources + 2 * i,
-+ 2))
-+ pr_err("Failed to set uartlite %d IRQ and MEM\n", i);
-+
-+ }
-+#endif
-+ platform_add_devices(shj_devices, ARRAY_SIZE(shj_devices));
-+
-+ return 0;
-+}
-+
-+arch_initcall(shj_devices_setup);
-+
-+void __init native_machine_early_platform_add_devices(void)
-+{
-+}
-+
-+void __init plat_irq_setup(void)
-+{
-+}
-diff -Nur linux-4.1.13.orig/arch/sh/kernel/irq.c linux-4.1.13/arch/sh/kernel/irq.c
---- linux-4.1.13.orig/arch/sh/kernel/irq.c 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/kernel/irq.c 2015-12-05 00:16:49.000000000 +0100
-@@ -20,6 +20,8 @@
- #include <asm/thread_info.h>
- #include <cpu/mmu_context.h>
-
-+#include <asm/board-0pf.h>
-+
- atomic_t irq_err_count;
-
- /*
-@@ -175,11 +177,24 @@
- );
- }
- #else
-+#define noinline __attribute__((noinline))
-+static noinline void handle_irq_UART0(unsigned int irq) { generic_handle_irq(irq); }
-+static noinline void handle_irq_UART1(unsigned int irq) { generic_handle_irq(irq); }
-+static noinline void handle_irq_GPS(unsigned int irq) { generic_handle_irq(irq); }
-+static noinline void handle_irq_EMAC(unsigned int irq) { generic_handle_irq(irq); }
- static inline void handle_one_irq(unsigned int irq)
- {
-- generic_handle_irq(irq);
-+ switch(irq) {
-+ case Irq_UART0: handle_irq_UART0(irq); break;
-+ case Irq_UART1: handle_irq_UART1(irq); break;
-+ case Irq_GPS: handle_irq_GPS(irq); break;
-+ case Irq_EMAC: handle_irq_EMAC(irq); break;
-+ default:
-+ generic_handle_irq(irq);
-+ break;
-+ }
- }
--#endif
-+#endif // CONFIG_IRQSTACKS
-
- asmlinkage __irq_entry int do_IRQ(unsigned int irq, struct pt_regs *regs)
- {
-diff -Nur linux-4.1.13.orig/arch/sh/kernel/traps_32.c linux-4.1.13/arch/sh/kernel/traps_32.c
---- linux-4.1.13.orig/arch/sh/kernel/traps_32.c 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/kernel/traps_32.c 2015-12-05 00:16:49.000000000 +0100
-@@ -34,6 +34,7 @@
- #ifdef CONFIG_CPU_SH2
- # define TRAP_RESERVED_INST 4
- # define TRAP_ILLEGAL_SLOT_INST 6
-+# define TRAP_PC_ADDRESS_ERROR 8 // Aug 20, 2012 ulianov - SEI extension - PC governor
- # define TRAP_ADDRESS_ERROR 9
- # ifdef CONFIG_CPU_SH2A
- # define TRAP_UBC 12
-@@ -458,6 +459,14 @@
- return ret;
- }
-
-+#if defined(CONFIG_CPU_SUBTYPE_0PF)
-+asmlinkage void do_pc_address_error(struct pt_regs *regs,
-+ unsigned long writeaccess,
-+ unsigned long address)
-+{
-+}
-+#endif // CONFIG_CPU_SUBTYPE_0PF
-+
- /*
- * Handle various address error exceptions:
- * - instruction address error:
-@@ -779,6 +788,9 @@
- #endif
-
- #ifdef CONFIG_CPU_SH2
-+ #if defined(CONFIG_CPU_SUBTYPE_0PF)
-+ set_exception_table_vec(TRAP_PC_ADDRESS_ERROR, address_error_trap_handler);
-+ #endif
- set_exception_table_vec(TRAP_ADDRESS_ERROR, address_error_trap_handler);
- #endif
- #ifdef CONFIG_CPU_SH2A
-diff -Nur linux-4.1.13.orig/arch/sh/mm/cache-sh2.c linux-4.1.13/arch/sh/mm/cache-sh2.c
---- linux-4.1.13.orig/arch/sh/mm/cache-sh2.c 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/mm/cache-sh2.c 2015-12-05 00:16:49.000000000 +0100
-@@ -3,6 +3,7 @@
- *
- * Copyright (C) 2002 Paul Mundt
- * Copyright (C) 2008 Yoshinori Sato
-+ * Copyright (C) 2012 SEI, Inc.
- *
- * Released under the terms of the GNU GPL v2.0.
- */
-@@ -16,6 +17,30 @@
- #include <asm/cacheflush.h>
- #include <asm/io.h>
-
-+#if defined(CONFIG_CPU_SUBTYPE_0PF)
-+
-+// Just flush the whole thing each time
-+static void j2_flush_icache_range(void *fwoosh)
-+{
-+ __raw_writel(CCR_CACHE_RESET, CCR);
-+}
-+
-+// This should never happen, but...
-+static void j2_flush_icache_page(void *fwoosh)
-+{
-+ __raw_writel(CCR_CACHE_RESET, CCR);
-+}
-+
-+void __init sh2_cache_init(void)
-+{
-+ local_flush_icache_range = j2_flush_icache_range;
-+ local_flush_icache_page = j2_flush_icache_page;
-+ boot_cpu_data.dcache.n_aliases = 0;
-+
-+ __raw_writel(CCR_CACHE_RESET, CCR);
-+}
-+
-+#else
- static void sh2__flush_wback_region(void *start, int size)
- {
- unsigned long v;
-@@ -89,3 +114,4 @@
- __flush_purge_region = sh2__flush_purge_region;
- __flush_invalidate_region = sh2__flush_invalidate_region;
- }
-+#endif
-diff -Nur linux-4.1.13.orig/arch/sh/mm/cache.c linux-4.1.13/arch/sh/mm/cache.c
---- linux-4.1.13.orig/arch/sh/mm/cache.c 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/mm/cache.c 2015-12-05 00:16:49.000000000 +0100
-@@ -258,14 +258,16 @@
- boot_cpu_data.icache.entry_mask,
- boot_cpu_data.icache.alias_mask,
- boot_cpu_data.icache.n_aliases);
-- printk(KERN_NOTICE "D-cache : n_ways=%d n_sets=%d way_incr=%d\n",
-- boot_cpu_data.dcache.ways,
-- boot_cpu_data.dcache.sets,
-- boot_cpu_data.dcache.way_incr);
-- printk(KERN_NOTICE "D-cache : entry_mask=0x%08x alias_mask=0x%08x n_aliases=%d\n",
-- boot_cpu_data.dcache.entry_mask,
-- boot_cpu_data.dcache.alias_mask,
-- boot_cpu_data.dcache.n_aliases);
-+ if (boot_cpu_data.dcache.n_aliases) {
-+ printk(KERN_NOTICE "D-cache : n_ways=%d n_sets=%d way_incr=%d\n",
-+ boot_cpu_data.dcache.ways,
-+ boot_cpu_data.dcache.sets,
-+ boot_cpu_data.dcache.way_incr);
-+ printk(KERN_NOTICE "D-cache : entry_mask=0x%08x alias_mask=0x%08x n_aliases=%d\n",
-+ boot_cpu_data.dcache.entry_mask,
-+ boot_cpu_data.dcache.alias_mask,
-+ boot_cpu_data.dcache.n_aliases);
-+ }
-
- /*
- * Emit Secondary Cache parameters if the CPU has a probed L2.
-diff -Nur linux-4.1.13.orig/drivers/tty/serial/Kconfig linux-4.1.13/drivers/tty/serial/Kconfig
---- linux-4.1.13.orig/drivers/tty/serial/Kconfig 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/drivers/tty/serial/Kconfig 2015-12-05 00:16:49.000000000 +0100
-@@ -594,7 +594,7 @@
-
- config SERIAL_UARTLITE
- tristate "Xilinx uartlite serial port support"
-- depends on PPC32 || MICROBLAZE || MFD_TIMBERDALE || ARCH_ZYNQ
-+ depends on PPC32 || MICROBLAZE || MFD_TIMBERDALE || ARCH_ZYNQ || CPU_SUBTYPE_0PF
- select SERIAL_CORE
- help
- Say Y here if you want to use the Xilinx uartlite serial controller.
-@@ -611,6 +611,12 @@
- console (the system console is the device which receives all kernel
- messages and warnings and which allows logins in single user mode).
-
-+config SERIAL_UARTLITE_0PF
-+ tristate "Support 0PF UARTLITEs"
-+ depends on SERIAL_UARTLITE = y && CPU_SUBTYPE_0PF
-+ help
-+ Say Y here to set up 0PF's UARTLITEs.
-+
- config SERIAL_SUNCORE
- bool
- depends on SPARC
diff --git a/target/linux/patches/4.1.51/mtd-rootfs.patch b/target/linux/patches/4.1.51/mtd-rootfs.patch
deleted file mode 100644
index 5f6d82b5c..000000000
--- a/target/linux/patches/4.1.51/mtd-rootfs.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff -Nur linux-4.1.15.orig/drivers/mtd/mtdpart.c linux-4.1.15/drivers/mtd/mtdpart.c
---- linux-4.1.15.orig/drivers/mtd/mtdpart.c 2015-12-15 06:24:51.000000000 +0100
-+++ linux-4.1.15/drivers/mtd/mtdpart.c 2015-12-26 21:02:02.766905805 +0100
-@@ -30,6 +30,7 @@
- #include <linux/mtd/mtd.h>
- #include <linux/mtd/partitions.h>
- #include <linux/err.h>
-+#include <linux/root_dev.h>
- #include <linux/kconfig.h>
-
- #include "mtdcore.h"
-@@ -667,6 +668,14 @@
- if (IS_ERR(slave))
- return PTR_ERR(slave);
-
-+ if (strcmp(parts[i].name, "rootfs") == 0) {
-+ if (ROOT_DEV == 0) {
-+ printk(KERN_NOTICE "mtd: partition \"rootfs\" "
-+ "set to be root filesystem\n");
-+ ROOT_DEV = MKDEV(MTD_BLOCK_MAJOR, i);
-+ }
-+ }
-+
- mutex_lock(&mtd_partitions_mutex);
- list_add(&slave->list, &mtd_partitions);
- mutex_unlock(&mtd_partitions_mutex);
diff --git a/target/linux/patches/4.1.51/patch-realtime b/target/linux/patches/4.1.51/patch-realtime
deleted file mode 100644
index 52f9bd3d2..000000000
--- a/target/linux/patches/4.1.51/patch-realtime
+++ /dev/null
@@ -1,30260 +0,0 @@
-diff -Nur linux-4.1.39.orig/arch/alpha/mm/fault.c linux-4.1.39/arch/alpha/mm/fault.c
---- linux-4.1.39.orig/arch/alpha/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/alpha/mm/fault.c 2017-04-18 17:56:30.549394649 +0200
-@@ -23,8 +23,7 @@
- #include <linux/smp.h>
- #include <linux/interrupt.h>
- #include <linux/module.h>
--
--#include <asm/uaccess.h>
-+#include <linux/uaccess.h>
-
- extern void die_if_kernel(char *,struct pt_regs *,long, unsigned long *);
-
-@@ -107,7 +106,7 @@
-
- /* If we're in an interrupt context, or have no user context,
- we must not take the fault. */
-- if (!mm || in_atomic())
-+ if (!mm || faulthandler_disabled())
- goto no_context;
-
- #ifdef CONFIG_ALPHA_LARGE_VMALLOC
-diff -Nur linux-4.1.39.orig/arch/arc/include/asm/futex.h linux-4.1.39/arch/arc/include/asm/futex.h
---- linux-4.1.39.orig/arch/arc/include/asm/futex.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arc/include/asm/futex.h 2017-04-18 17:56:30.549394649 +0200
-@@ -53,7 +53,7 @@
- if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
- return -EFAULT;
-
-- pagefault_disable(); /* implies preempt_disable() */
-+ pagefault_disable();
-
- switch (op) {
- case FUTEX_OP_SET:
-@@ -75,7 +75,7 @@
- ret = -ENOSYS;
- }
-
-- pagefault_enable(); /* subsumes preempt_enable() */
-+ pagefault_enable();
-
- if (!ret) {
- switch (cmp) {
-@@ -104,7 +104,7 @@
- return ret;
- }
-
--/* Compare-xchg with preemption disabled.
-+/* Compare-xchg with pagefaults disabled.
- * Notes:
- * -Best-Effort: Exchg happens only if compare succeeds.
- * If compare fails, returns; leaving retry/looping to upper layers
-@@ -121,7 +121,7 @@
- if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
- return -EFAULT;
-
-- pagefault_disable(); /* implies preempt_disable() */
-+ pagefault_disable();
-
- /* TBD : can use llock/scond */
- __asm__ __volatile__(
-@@ -142,7 +142,7 @@
- : "r"(oldval), "r"(newval), "r"(uaddr), "ir"(-EFAULT)
- : "cc", "memory");
-
-- pagefault_enable(); /* subsumes preempt_enable() */
-+ pagefault_enable();
-
- *uval = val;
- return val;
-diff -Nur linux-4.1.39.orig/arch/arc/mm/fault.c linux-4.1.39/arch/arc/mm/fault.c
---- linux-4.1.39.orig/arch/arc/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arc/mm/fault.c 2017-04-18 17:56:30.549394649 +0200
-@@ -86,7 +86,7 @@
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto no_context;
-
- if (user_mode(regs))
-diff -Nur linux-4.1.39.orig/arch/arm/include/asm/cmpxchg.h linux-4.1.39/arch/arm/include/asm/cmpxchg.h
---- linux-4.1.39.orig/arch/arm/include/asm/cmpxchg.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/include/asm/cmpxchg.h 2017-04-18 17:56:30.549394649 +0200
-@@ -129,6 +129,8 @@
-
- #else /* min ARCH >= ARMv6 */
-
-+#define __HAVE_ARCH_CMPXCHG 1
-+
- extern void __bad_cmpxchg(volatile void *ptr, int size);
-
- /*
-diff -Nur linux-4.1.39.orig/arch/arm/include/asm/futex.h linux-4.1.39/arch/arm/include/asm/futex.h
---- linux-4.1.39.orig/arch/arm/include/asm/futex.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/include/asm/futex.h 2017-04-18 17:56:30.549394649 +0200
-@@ -93,6 +93,7 @@
- if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
- return -EFAULT;
-
-+ preempt_disable();
- __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"
- "1: " TUSER(ldr) " %1, [%4]\n"
- " teq %1, %2\n"
-@@ -104,6 +105,8 @@
- : "cc", "memory");
-
- *uval = val;
-+ preempt_enable();
-+
- return ret;
- }
-
-@@ -124,7 +127,10 @@
- if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
- return -EFAULT;
-
-- pagefault_disable(); /* implies preempt_disable() */
-+#ifndef CONFIG_SMP
-+ preempt_disable();
-+#endif
-+ pagefault_disable();
-
- switch (op) {
- case FUTEX_OP_SET:
-@@ -146,7 +152,10 @@
- ret = -ENOSYS;
- }
-
-- pagefault_enable(); /* subsumes preempt_enable() */
-+ pagefault_enable();
-+#ifndef CONFIG_SMP
-+ preempt_enable();
-+#endif
-
- if (!ret) {
- switch (cmp) {
-diff -Nur linux-4.1.39.orig/arch/arm/include/asm/switch_to.h linux-4.1.39/arch/arm/include/asm/switch_to.h
---- linux-4.1.39.orig/arch/arm/include/asm/switch_to.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/include/asm/switch_to.h 2017-04-18 17:56:30.549394649 +0200
-@@ -3,6 +3,13 @@
-
- #include <linux/thread_info.h>
-
-+#if defined CONFIG_PREEMPT_RT_FULL && defined CONFIG_HIGHMEM
-+void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p);
-+#else
-+static inline void
-+switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p) { }
-+#endif
-+
- /*
- * For v7 SMP cores running a preemptible kernel we may be pre-empted
- * during a TLB maintenance operation, so execute an inner-shareable dsb
-@@ -22,6 +29,7 @@
-
- #define switch_to(prev,next,last) \
- do { \
-+ switch_kmaps(prev, next); \
- last = __switch_to(prev,task_thread_info(prev), task_thread_info(next)); \
- } while (0)
-
-diff -Nur linux-4.1.39.orig/arch/arm/include/asm/thread_info.h linux-4.1.39/arch/arm/include/asm/thread_info.h
---- linux-4.1.39.orig/arch/arm/include/asm/thread_info.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/include/asm/thread_info.h 2017-04-18 17:56:30.549394649 +0200
-@@ -50,6 +50,7 @@
- struct thread_info {
- unsigned long flags; /* low level flags */
- int preempt_count; /* 0 => preemptable, <0 => bug */
-+ int preempt_lazy_count; /* 0 => preemptable, <0 => bug */
- mm_segment_t addr_limit; /* address limit */
- struct task_struct *task; /* main task structure */
- __u32 cpu; /* cpu */
-@@ -147,6 +148,7 @@
- #define TIF_SIGPENDING 0
- #define TIF_NEED_RESCHED 1
- #define TIF_NOTIFY_RESUME 2 /* callback before returning to user */
-+#define TIF_NEED_RESCHED_LAZY 3
- #define TIF_UPROBE 7
- #define TIF_SYSCALL_TRACE 8
- #define TIF_SYSCALL_AUDIT 9
-@@ -160,6 +162,7 @@
- #define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
- #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
- #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
-+#define _TIF_NEED_RESCHED_LAZY (1 << TIF_NEED_RESCHED_LAZY)
- #define _TIF_UPROBE (1 << TIF_UPROBE)
- #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
- #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
-diff -Nur linux-4.1.39.orig/arch/arm/Kconfig linux-4.1.39/arch/arm/Kconfig
---- linux-4.1.39.orig/arch/arm/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/Kconfig 2017-04-18 17:56:30.549394649 +0200
-@@ -31,7 +31,7 @@
- select HARDIRQS_SW_RESEND
- select HAVE_ARCH_AUDITSYSCALL if (AEABI && !OABI_COMPAT)
- select HAVE_ARCH_BITREVERSE if (CPU_32v7M || CPU_32v7) && !CPU_32v6
-- select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL
-+ select HAVE_ARCH_JUMP_LABEL if (!XIP_KERNEL && !PREEMPT_RT_BASE)
- select HAVE_ARCH_KGDB
- select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
- select HAVE_ARCH_TRACEHOOK
-@@ -66,6 +66,7 @@
- select HAVE_PERF_EVENTS
- select HAVE_PERF_REGS
- select HAVE_PERF_USER_STACK_DUMP
-+ select HAVE_PREEMPT_LAZY
- select HAVE_RCU_TABLE_FREE if (SMP && ARM_LPAE)
- select HAVE_REGS_AND_STACK_ACCESS_API
- select HAVE_SYSCALL_TRACEPOINTS
-diff -Nur linux-4.1.39.orig/arch/arm/kernel/asm-offsets.c linux-4.1.39/arch/arm/kernel/asm-offsets.c
---- linux-4.1.39.orig/arch/arm/kernel/asm-offsets.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/kernel/asm-offsets.c 2017-04-18 17:56:30.549394649 +0200
-@@ -65,6 +65,7 @@
- BLANK();
- DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
- DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
-+ DEFINE(TI_PREEMPT_LAZY, offsetof(struct thread_info, preempt_lazy_count));
- DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit));
- DEFINE(TI_TASK, offsetof(struct thread_info, task));
- DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
-diff -Nur linux-4.1.39.orig/arch/arm/kernel/entry-armv.S linux-4.1.39/arch/arm/kernel/entry-armv.S
---- linux-4.1.39.orig/arch/arm/kernel/entry-armv.S 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/kernel/entry-armv.S 2017-04-18 17:56:30.549394649 +0200
-@@ -208,11 +208,18 @@
- #ifdef CONFIG_PREEMPT
- get_thread_info tsk
- ldr r8, [tsk, #TI_PREEMPT] @ get preempt count
-- ldr r0, [tsk, #TI_FLAGS] @ get flags
- teq r8, #0 @ if preempt count != 0
-+ bne 1f @ return from exeption
-+ ldr r0, [tsk, #TI_FLAGS] @ get flags
-+ tst r0, #_TIF_NEED_RESCHED @ if NEED_RESCHED is set
-+ blne svc_preempt @ preempt!
-+
-+ ldr r8, [tsk, #TI_PREEMPT_LAZY] @ get preempt lazy count
-+ teq r8, #0 @ if preempt lazy count != 0
- movne r0, #0 @ force flags to 0
-- tst r0, #_TIF_NEED_RESCHED
-+ tst r0, #_TIF_NEED_RESCHED_LAZY
- blne svc_preempt
-+1:
- #endif
-
- svc_exit r5, irq = 1 @ return from exception
-@@ -227,8 +234,14 @@
- 1: bl preempt_schedule_irq @ irq en/disable is done inside
- ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS
- tst r0, #_TIF_NEED_RESCHED
-+ bne 1b
-+ tst r0, #_TIF_NEED_RESCHED_LAZY
- reteq r8 @ go again
-- b 1b
-+ ldr r0, [tsk, #TI_PREEMPT_LAZY] @ get preempt lazy count
-+ teq r0, #0 @ if preempt lazy count != 0
-+ beq 1b
-+ ret r8 @ go again
-+
- #endif
-
- __und_fault:
-diff -Nur linux-4.1.39.orig/arch/arm/kernel/patch.c linux-4.1.39/arch/arm/kernel/patch.c
---- linux-4.1.39.orig/arch/arm/kernel/patch.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/kernel/patch.c 2017-04-18 17:56:30.549394649 +0200
-@@ -15,7 +15,7 @@
- unsigned int insn;
- };
-
--static DEFINE_SPINLOCK(patch_lock);
-+static DEFINE_RAW_SPINLOCK(patch_lock);
-
- static void __kprobes *patch_map(void *addr, int fixmap, unsigned long *flags)
- __acquires(&patch_lock)
-@@ -32,7 +32,7 @@
- return addr;
-
- if (flags)
-- spin_lock_irqsave(&patch_lock, *flags);
-+ raw_spin_lock_irqsave(&patch_lock, *flags);
- else
- __acquire(&patch_lock);
-
-@@ -47,7 +47,7 @@
- clear_fixmap(fixmap);
-
- if (flags)
-- spin_unlock_irqrestore(&patch_lock, *flags);
-+ raw_spin_unlock_irqrestore(&patch_lock, *flags);
- else
- __release(&patch_lock);
- }
-diff -Nur linux-4.1.39.orig/arch/arm/kernel/process.c linux-4.1.39/arch/arm/kernel/process.c
---- linux-4.1.39.orig/arch/arm/kernel/process.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/kernel/process.c 2017-04-18 17:56:30.549394649 +0200
-@@ -290,6 +290,30 @@
- }
-
- #ifdef CONFIG_MMU
-+/*
-+ * CONFIG_SPLIT_PTLOCK_CPUS results in a page->ptl lock. If the lock is not
-+ * initialized by pgtable_page_ctor() then a coredump of the vector page will
-+ * fail.
-+ */
-+static int __init vectors_user_mapping_init_page(void)
-+{
-+ struct page *page;
-+ unsigned long addr = 0xffff0000;
-+ pgd_t *pgd;
-+ pud_t *pud;
-+ pmd_t *pmd;
-+
-+ pgd = pgd_offset_k(addr);
-+ pud = pud_offset(pgd, addr);
-+ pmd = pmd_offset(pud, addr);
-+ page = pmd_page(*(pmd));
-+
-+ pgtable_page_ctor(page);
-+
-+ return 0;
-+}
-+late_initcall(vectors_user_mapping_init_page);
-+
- #ifdef CONFIG_KUSER_HELPERS
- /*
- * The vectors page is always readable from user space for the
-diff -Nur linux-4.1.39.orig/arch/arm/kernel/signal.c linux-4.1.39/arch/arm/kernel/signal.c
---- linux-4.1.39.orig/arch/arm/kernel/signal.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/kernel/signal.c 2017-04-18 17:56:30.549394649 +0200
-@@ -568,7 +568,8 @@
- do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
- {
- do {
-- if (likely(thread_flags & _TIF_NEED_RESCHED)) {
-+ if (likely(thread_flags & (_TIF_NEED_RESCHED |
-+ _TIF_NEED_RESCHED_LAZY))) {
- schedule();
- } else {
- if (unlikely(!user_mode(regs)))
-diff -Nur linux-4.1.39.orig/arch/arm/kernel/smp.c linux-4.1.39/arch/arm/kernel/smp.c
---- linux-4.1.39.orig/arch/arm/kernel/smp.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/kernel/smp.c 2017-04-18 17:56:30.549394649 +0200
-@@ -213,8 +213,6 @@
- flush_cache_louis();
- local_flush_tlb_all();
-
-- clear_tasks_mm_cpumask(cpu);
--
- return 0;
- }
-
-@@ -230,6 +228,9 @@
- pr_err("CPU%u: cpu didn't die\n", cpu);
- return;
- }
-+
-+ clear_tasks_mm_cpumask(cpu);
-+
- pr_notice("CPU%u: shutdown\n", cpu);
-
- /*
-diff -Nur linux-4.1.39.orig/arch/arm/kernel/unwind.c linux-4.1.39/arch/arm/kernel/unwind.c
---- linux-4.1.39.orig/arch/arm/kernel/unwind.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/kernel/unwind.c 2017-04-18 17:56:30.549394649 +0200
-@@ -93,7 +93,7 @@
- static const struct unwind_idx *__origin_unwind_idx;
- extern const struct unwind_idx __stop_unwind_idx[];
-
--static DEFINE_SPINLOCK(unwind_lock);
-+static DEFINE_RAW_SPINLOCK(unwind_lock);
- static LIST_HEAD(unwind_tables);
-
- /* Convert a prel31 symbol to an absolute address */
-@@ -201,7 +201,7 @@
- /* module unwind tables */
- struct unwind_table *table;
-
-- spin_lock_irqsave(&unwind_lock, flags);
-+ raw_spin_lock_irqsave(&unwind_lock, flags);
- list_for_each_entry(table, &unwind_tables, list) {
- if (addr >= table->begin_addr &&
- addr < table->end_addr) {
-@@ -213,7 +213,7 @@
- break;
- }
- }
-- spin_unlock_irqrestore(&unwind_lock, flags);
-+ raw_spin_unlock_irqrestore(&unwind_lock, flags);
- }
-
- pr_debug("%s: idx = %p\n", __func__, idx);
-@@ -529,9 +529,9 @@
- tab->begin_addr = text_addr;
- tab->end_addr = text_addr + text_size;
-
-- spin_lock_irqsave(&unwind_lock, flags);
-+ raw_spin_lock_irqsave(&unwind_lock, flags);
- list_add_tail(&tab->list, &unwind_tables);
-- spin_unlock_irqrestore(&unwind_lock, flags);
-+ raw_spin_unlock_irqrestore(&unwind_lock, flags);
-
- return tab;
- }
-@@ -543,9 +543,9 @@
- if (!tab)
- return;
-
-- spin_lock_irqsave(&unwind_lock, flags);
-+ raw_spin_lock_irqsave(&unwind_lock, flags);
- list_del(&tab->list);
-- spin_unlock_irqrestore(&unwind_lock, flags);
-+ raw_spin_unlock_irqrestore(&unwind_lock, flags);
-
- kfree(tab);
- }
-diff -Nur linux-4.1.39.orig/arch/arm/kvm/arm.c linux-4.1.39/arch/arm/kvm/arm.c
---- linux-4.1.39.orig/arch/arm/kvm/arm.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/kvm/arm.c 2017-04-18 17:56:30.549394649 +0200
-@@ -473,9 +473,9 @@
-
- static void vcpu_pause(struct kvm_vcpu *vcpu)
- {
-- wait_queue_head_t *wq = kvm_arch_vcpu_wq(vcpu);
-+ struct swait_head *wq = kvm_arch_vcpu_wq(vcpu);
-
-- wait_event_interruptible(*wq, !vcpu->arch.pause);
-+ swait_event_interruptible(*wq, !vcpu->arch.pause);
- }
-
- static int kvm_vcpu_initialized(struct kvm_vcpu *vcpu)
-diff -Nur linux-4.1.39.orig/arch/arm/kvm/psci.c linux-4.1.39/arch/arm/kvm/psci.c
---- linux-4.1.39.orig/arch/arm/kvm/psci.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/kvm/psci.c 2017-04-18 17:56:30.549394649 +0200
-@@ -68,7 +68,7 @@
- {
- struct kvm *kvm = source_vcpu->kvm;
- struct kvm_vcpu *vcpu = NULL;
-- wait_queue_head_t *wq;
-+ struct swait_head *wq;
- unsigned long cpu_id;
- unsigned long context_id;
- phys_addr_t target_pc;
-@@ -117,7 +117,7 @@
- smp_mb(); /* Make sure the above is visible */
-
- wq = kvm_arch_vcpu_wq(vcpu);
-- wake_up_interruptible(wq);
-+ swait_wake_interruptible(wq);
-
- return PSCI_RET_SUCCESS;
- }
-diff -Nur linux-4.1.39.orig/arch/arm/mach-at91/at91rm9200.c linux-4.1.39/arch/arm/mach-at91/at91rm9200.c
---- linux-4.1.39.orig/arch/arm/mach-at91/at91rm9200.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-at91/at91rm9200.c 2017-04-18 17:56:30.549394649 +0200
-@@ -13,7 +13,6 @@
- #include <linux/of_platform.h>
-
- #include <asm/mach/arch.h>
--#include <asm/system_misc.h>
-
- #include "generic.h"
- #include "soc.h"
-@@ -34,7 +33,6 @@
-
- of_platform_populate(NULL, of_default_bus_match_table, NULL, soc_dev);
-
-- arm_pm_idle = at91rm9200_idle;
- at91rm9200_pm_init();
- }
-
-diff -Nur linux-4.1.39.orig/arch/arm/mach-at91/at91sam9.c linux-4.1.39/arch/arm/mach-at91/at91sam9.c
---- linux-4.1.39.orig/arch/arm/mach-at91/at91sam9.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-at91/at91sam9.c 2017-04-18 17:56:30.549394649 +0200
-@@ -62,8 +62,6 @@
- soc_dev = soc_device_to_device(soc);
-
- of_platform_populate(NULL, of_default_bus_match_table, NULL, soc_dev);
--
-- arm_pm_idle = at91sam9_idle;
- }
-
- static void __init at91sam9_dt_device_init(void)
-diff -Nur linux-4.1.39.orig/arch/arm/mach-at91/generic.h linux-4.1.39/arch/arm/mach-at91/generic.h
---- linux-4.1.39.orig/arch/arm/mach-at91/generic.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-at91/generic.h 2017-04-18 17:56:30.549394649 +0200
-@@ -11,27 +11,18 @@
- #ifndef _AT91_GENERIC_H
- #define _AT91_GENERIC_H
-
--#include <linux/of.h>
--#include <linux/reboot.h>
--
-- /* Map io */
--extern void __init at91_map_io(void);
--extern void __init at91_alt_map_io(void);
--
--/* idle */
--extern void at91rm9200_idle(void);
--extern void at91sam9_idle(void);
--
- #ifdef CONFIG_PM
- extern void __init at91rm9200_pm_init(void);
- extern void __init at91sam9260_pm_init(void);
- extern void __init at91sam9g45_pm_init(void);
- extern void __init at91sam9x5_pm_init(void);
-+extern void __init sama5_pm_init(void);
- #else
- static inline void __init at91rm9200_pm_init(void) { }
- static inline void __init at91sam9260_pm_init(void) { }
- static inline void __init at91sam9g45_pm_init(void) { }
- static inline void __init at91sam9x5_pm_init(void) { }
-+static inline void __init sama5_pm_init(void) { }
- #endif
-
- #endif /* _AT91_GENERIC_H */
-diff -Nur linux-4.1.39.orig/arch/arm/mach-at91/pm.c linux-4.1.39/arch/arm/mach-at91/pm.c
---- linux-4.1.39.orig/arch/arm/mach-at91/pm.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-at91/pm.c 2017-04-18 17:56:30.549394649 +0200
-@@ -31,10 +31,13 @@
- #include <asm/mach/irq.h>
- #include <asm/fncpy.h>
- #include <asm/cacheflush.h>
-+#include <asm/system_misc.h>
-
- #include "generic.h"
- #include "pm.h"
-
-+static void __iomem *pmc;
-+
- /*
- * FIXME: this is needed to communicate between the pinctrl driver and
- * the PM implementation in the machine. Possibly part of the PM
-@@ -85,7 +88,7 @@
- unsigned long scsr;
- int i;
-
-- scsr = at91_pmc_read(AT91_PMC_SCSR);
-+ scsr = readl(pmc + AT91_PMC_SCSR);
-
- /* USB must not be using PLLB */
- if ((scsr & at91_pm_data.uhp_udp_mask) != 0) {
-@@ -99,8 +102,7 @@
-
- if ((scsr & (AT91_PMC_PCK0 << i)) == 0)
- continue;
--
-- css = at91_pmc_read(AT91_PMC_PCKR(i)) & AT91_PMC_CSS;
-+ css = readl(pmc + AT91_PMC_PCKR(i)) & AT91_PMC_CSS;
- if (css != AT91_PMC_CSS_SLOW) {
- pr_err("AT91: PM - Suspend-to-RAM with PCK%d src %d\n", i, css);
- return 0;
-@@ -143,8 +145,8 @@
- flush_cache_all();
- outer_disable();
-
-- at91_suspend_sram_fn(at91_pmc_base, at91_ramc_base[0],
-- at91_ramc_base[1], pm_data);
-+ at91_suspend_sram_fn(pmc, at91_ramc_base[0],
-+ at91_ramc_base[1], pm_data);
-
- outer_resume();
- }
-@@ -348,6 +350,21 @@
- at91_pm_set_standby(standby);
- }
-
-+void at91rm9200_idle(void)
-+{
-+ /*
-+ * Disable the processor clock. The processor will be automatically
-+ * re-enabled by an interrupt or by a reset.
-+ */
-+ writel(AT91_PMC_PCK, pmc + AT91_PMC_SCDR);
-+}
-+
-+void at91sam9_idle(void)
-+{
-+ writel(AT91_PMC_PCK, pmc + AT91_PMC_SCDR);
-+ cpu_do_idle();
-+}
-+
- static void __init at91_pm_sram_init(void)
- {
- struct gen_pool *sram_pool;
-@@ -394,13 +411,36 @@
- &at91_pm_suspend_in_sram, at91_pm_suspend_in_sram_sz);
- }
-
--static void __init at91_pm_init(void)
-+static const struct of_device_id atmel_pmc_ids[] __initconst = {
-+ { .compatible = "atmel,at91rm9200-pmc" },
-+ { .compatible = "atmel,at91sam9260-pmc" },
-+ { .compatible = "atmel,at91sam9g45-pmc" },
-+ { .compatible = "atmel,at91sam9n12-pmc" },
-+ { .compatible = "atmel,at91sam9x5-pmc" },
-+ { .compatible = "atmel,sama5d3-pmc" },
-+ { .compatible = "atmel,sama5d2-pmc" },
-+ { /* sentinel */ },
-+};
-+
-+static void __init at91_pm_init(void (*pm_idle)(void))
- {
-- at91_pm_sram_init();
-+ struct device_node *pmc_np;
-
- if (at91_cpuidle_device.dev.platform_data)
- platform_device_register(&at91_cpuidle_device);
-
-+ pmc_np = of_find_matching_node(NULL, atmel_pmc_ids);
-+ pmc = of_iomap(pmc_np, 0);
-+ if (!pmc) {
-+ pr_err("AT91: PM not supported, PMC not found\n");
-+ return;
-+ }
-+
-+ if (pm_idle)
-+ arm_pm_idle = pm_idle;
-+
-+ at91_pm_sram_init();
-+
- if (at91_suspend_sram_fn)
- suspend_set_ops(&at91_pm_ops);
- else
-@@ -419,7 +459,7 @@
- at91_pm_data.uhp_udp_mask = AT91RM9200_PMC_UHP | AT91RM9200_PMC_UDP;
- at91_pm_data.memctrl = AT91_MEMCTRL_MC;
-
-- at91_pm_init();
-+ at91_pm_init(at91rm9200_idle);
- }
-
- void __init at91sam9260_pm_init(void)
-@@ -427,7 +467,7 @@
- at91_dt_ramc();
- at91_pm_data.memctrl = AT91_MEMCTRL_SDRAMC;
- at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP;
-- return at91_pm_init();
-+ at91_pm_init(at91sam9_idle);
- }
-
- void __init at91sam9g45_pm_init(void)
-@@ -435,7 +475,7 @@
- at91_dt_ramc();
- at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP;
- at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
-- return at91_pm_init();
-+ at91_pm_init(at91sam9_idle);
- }
-
- void __init at91sam9x5_pm_init(void)
-@@ -443,5 +483,13 @@
- at91_dt_ramc();
- at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP;
- at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
-- return at91_pm_init();
-+ at91_pm_init(at91sam9_idle);
-+}
-+
-+void __init sama5_pm_init(void)
-+{
-+ at91_dt_ramc();
-+ at91_pm_data.uhp_udp_mask = AT91SAM926x_PMC_UHP | AT91SAM926x_PMC_UDP;
-+ at91_pm_data.memctrl = AT91_MEMCTRL_DDRSDR;
-+ at91_pm_init(NULL);
- }
-diff -Nur linux-4.1.39.orig/arch/arm/mach-at91/sama5.c linux-4.1.39/arch/arm/mach-at91/sama5.c
---- linux-4.1.39.orig/arch/arm/mach-at91/sama5.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-at91/sama5.c 2017-04-18 17:56:30.549394649 +0200
-@@ -49,7 +49,7 @@
- soc_dev = soc_device_to_device(soc);
-
- of_platform_populate(NULL, of_default_bus_match_table, NULL, soc_dev);
-- at91sam9x5_pm_init();
-+ sama5_pm_init();
- }
-
- static const char *sama5_dt_board_compat[] __initconst = {
-diff -Nur linux-4.1.39.orig/arch/arm/mach-exynos/platsmp.c linux-4.1.39/arch/arm/mach-exynos/platsmp.c
---- linux-4.1.39.orig/arch/arm/mach-exynos/platsmp.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-exynos/platsmp.c 2017-04-18 17:56:30.549394649 +0200
-@@ -231,7 +231,7 @@
- return (void __iomem *)(S5P_VA_SCU);
- }
-
--static DEFINE_SPINLOCK(boot_lock);
-+static DEFINE_RAW_SPINLOCK(boot_lock);
-
- static void exynos_secondary_init(unsigned int cpu)
- {
-@@ -244,8 +244,8 @@
- /*
- * Synchronise with the boot thread.
- */
-- spin_lock(&boot_lock);
-- spin_unlock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- }
-
- static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle)
-@@ -259,7 +259,7 @@
- * Set synchronisation state between this boot processor
- * and the secondary one
- */
-- spin_lock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-
- /*
- * The secondary processor is waiting to be released from
-@@ -286,7 +286,7 @@
-
- if (timeout == 0) {
- printk(KERN_ERR "cpu1 power enable failed");
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- return -ETIMEDOUT;
- }
- }
-@@ -342,7 +342,7 @@
- * calibrations, then wait for it to finish
- */
- fail:
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
-
- return pen_release != -1 ? ret : 0;
- }
-diff -Nur linux-4.1.39.orig/arch/arm/mach-hisi/platmcpm.c linux-4.1.39/arch/arm/mach-hisi/platmcpm.c
---- linux-4.1.39.orig/arch/arm/mach-hisi/platmcpm.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-hisi/platmcpm.c 2017-04-18 17:56:30.549394649 +0200
-@@ -57,7 +57,7 @@
-
- static void __iomem *sysctrl, *fabric;
- static int hip04_cpu_table[HIP04_MAX_CLUSTERS][HIP04_MAX_CPUS_PER_CLUSTER];
--static DEFINE_SPINLOCK(boot_lock);
-+static DEFINE_RAW_SPINLOCK(boot_lock);
- static u32 fabric_phys_addr;
- /*
- * [0]: bootwrapper physical address
-@@ -104,7 +104,7 @@
- if (cluster >= HIP04_MAX_CLUSTERS || cpu >= HIP04_MAX_CPUS_PER_CLUSTER)
- return -EINVAL;
-
-- spin_lock_irq(&boot_lock);
-+ raw_spin_lock_irq(&boot_lock);
-
- if (hip04_cpu_table[cluster][cpu])
- goto out;
-@@ -133,7 +133,7 @@
- udelay(20);
- out:
- hip04_cpu_table[cluster][cpu]++;
-- spin_unlock_irq(&boot_lock);
-+ raw_spin_unlock_irq(&boot_lock);
-
- return 0;
- }
-@@ -149,7 +149,7 @@
-
- __mcpm_cpu_going_down(cpu, cluster);
-
-- spin_lock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
- BUG_ON(__mcpm_cluster_state(cluster) != CLUSTER_UP);
- hip04_cpu_table[cluster][cpu]--;
- if (hip04_cpu_table[cluster][cpu] == 1) {
-@@ -162,7 +162,7 @@
-
- last_man = hip04_cluster_is_down(cluster);
- if (last_man && __mcpm_outbound_enter_critical(cpu, cluster)) {
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- /* Since it's Cortex A15, disable L2 prefetching. */
- asm volatile(
- "mcr p15, 1, %0, c15, c0, 3 \n\t"
-@@ -173,7 +173,7 @@
- hip04_set_snoop_filter(cluster, 0);
- __mcpm_outbound_leave_critical(cluster, CLUSTER_DOWN);
- } else {
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- v7_exit_coherency_flush(louis);
- }
-
-@@ -192,7 +192,7 @@
- cpu >= HIP04_MAX_CPUS_PER_CLUSTER);
-
- count = TIMEOUT_MSEC / POLL_MSEC;
-- spin_lock_irq(&boot_lock);
-+ raw_spin_lock_irq(&boot_lock);
- for (tries = 0; tries < count; tries++) {
- if (hip04_cpu_table[cluster][cpu]) {
- ret = -EBUSY;
-@@ -202,10 +202,10 @@
- data = readl_relaxed(sysctrl + SC_CPU_RESET_STATUS(cluster));
- if (data & CORE_WFI_STATUS(cpu))
- break;
-- spin_unlock_irq(&boot_lock);
-+ raw_spin_unlock_irq(&boot_lock);
- /* Wait for clean L2 when the whole cluster is down. */
- msleep(POLL_MSEC);
-- spin_lock_irq(&boot_lock);
-+ raw_spin_lock_irq(&boot_lock);
- }
- if (tries >= count)
- goto err;
-@@ -220,10 +220,10 @@
- }
- if (tries >= count)
- goto err;
-- spin_unlock_irq(&boot_lock);
-+ raw_spin_unlock_irq(&boot_lock);
- return 0;
- err:
-- spin_unlock_irq(&boot_lock);
-+ raw_spin_unlock_irq(&boot_lock);
- return ret;
- }
-
-@@ -235,10 +235,10 @@
- cpu = MPIDR_AFFINITY_LEVEL(mpidr, 0);
- cluster = MPIDR_AFFINITY_LEVEL(mpidr, 1);
-
-- spin_lock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
- if (!hip04_cpu_table[cluster][cpu])
- hip04_cpu_table[cluster][cpu] = 1;
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- }
-
- static void __naked hip04_mcpm_power_up_setup(unsigned int affinity_level)
-diff -Nur linux-4.1.39.orig/arch/arm/mach-omap2/gpio.c linux-4.1.39/arch/arm/mach-omap2/gpio.c
---- linux-4.1.39.orig/arch/arm/mach-omap2/gpio.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-omap2/gpio.c 2017-04-18 17:56:30.549394649 +0200
-@@ -130,7 +130,6 @@
- }
-
- pwrdm = omap_hwmod_get_pwrdm(oh);
-- pdata->loses_context = pwrdm_can_ever_lose_context(pwrdm);
-
- pdev = omap_device_build(name, id - 1, oh, pdata, sizeof(*pdata));
- kfree(pdata);
-diff -Nur linux-4.1.39.orig/arch/arm/mach-omap2/omap-smp.c linux-4.1.39/arch/arm/mach-omap2/omap-smp.c
---- linux-4.1.39.orig/arch/arm/mach-omap2/omap-smp.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-omap2/omap-smp.c 2017-04-18 17:56:30.549394649 +0200
-@@ -43,7 +43,7 @@
- /* SCU base address */
- static void __iomem *scu_base;
-
--static DEFINE_SPINLOCK(boot_lock);
-+static DEFINE_RAW_SPINLOCK(boot_lock);
-
- void __iomem *omap4_get_scu_base(void)
- {
-@@ -74,8 +74,8 @@
- /*
- * Synchronise with the boot thread.
- */
-- spin_lock(&boot_lock);
-- spin_unlock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- }
-
- static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle)
-@@ -89,7 +89,7 @@
- * Set synchronisation state between this boot processor
- * and the secondary one
- */
-- spin_lock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-
- /*
- * Update the AuxCoreBoot0 with boot state for secondary core.
-@@ -166,7 +166,7 @@
- * Now the secondary core is starting up let it run its
- * calibrations, then wait for it to finish
- */
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
-
- return 0;
- }
-diff -Nur linux-4.1.39.orig/arch/arm/mach-omap2/powerdomain.c linux-4.1.39/arch/arm/mach-omap2/powerdomain.c
---- linux-4.1.39.orig/arch/arm/mach-omap2/powerdomain.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-omap2/powerdomain.c 2017-04-18 17:56:30.553394804 +0200
-@@ -1166,43 +1166,3 @@
- return count;
- }
-
--/**
-- * pwrdm_can_ever_lose_context - can this powerdomain ever lose context?
-- * @pwrdm: struct powerdomain *
-- *
-- * Given a struct powerdomain * @pwrdm, returns 1 if the powerdomain
-- * can lose either memory or logic context or if @pwrdm is invalid, or
-- * returns 0 otherwise. This function is not concerned with how the
-- * powerdomain registers are programmed (i.e., to go off or not); it's
-- * concerned with whether it's ever possible for this powerdomain to
-- * go off while some other part of the chip is active. This function
-- * assumes that every powerdomain can go to either ON or INACTIVE.
-- */
--bool pwrdm_can_ever_lose_context(struct powerdomain *pwrdm)
--{
-- int i;
--
-- if (!pwrdm) {
-- pr_debug("powerdomain: %s: invalid powerdomain pointer\n",
-- __func__);
-- return 1;
-- }
--
-- if (pwrdm->pwrsts & PWRSTS_OFF)
-- return 1;
--
-- if (pwrdm->pwrsts & PWRSTS_RET) {
-- if (pwrdm->pwrsts_logic_ret & PWRSTS_OFF)
-- return 1;
--
-- for (i = 0; i < pwrdm->banks; i++)
-- if (pwrdm->pwrsts_mem_ret[i] & PWRSTS_OFF)
-- return 1;
-- }
--
-- for (i = 0; i < pwrdm->banks; i++)
-- if (pwrdm->pwrsts_mem_on[i] & PWRSTS_OFF)
-- return 1;
--
-- return 0;
--}
-diff -Nur linux-4.1.39.orig/arch/arm/mach-omap2/powerdomain.h linux-4.1.39/arch/arm/mach-omap2/powerdomain.h
---- linux-4.1.39.orig/arch/arm/mach-omap2/powerdomain.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-omap2/powerdomain.h 2017-04-18 17:56:30.553394804 +0200
-@@ -244,7 +244,6 @@
- int pwrdm_pre_transition(struct powerdomain *pwrdm);
- int pwrdm_post_transition(struct powerdomain *pwrdm);
- int pwrdm_get_context_loss_count(struct powerdomain *pwrdm);
--bool pwrdm_can_ever_lose_context(struct powerdomain *pwrdm);
-
- extern int omap_set_pwrdm_state(struct powerdomain *pwrdm, u8 state);
-
-diff -Nur linux-4.1.39.orig/arch/arm/mach-prima2/platsmp.c linux-4.1.39/arch/arm/mach-prima2/platsmp.c
---- linux-4.1.39.orig/arch/arm/mach-prima2/platsmp.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-prima2/platsmp.c 2017-04-18 17:56:30.553394804 +0200
-@@ -22,7 +22,7 @@
-
- static void __iomem *clk_base;
-
--static DEFINE_SPINLOCK(boot_lock);
-+static DEFINE_RAW_SPINLOCK(boot_lock);
-
- static void sirfsoc_secondary_init(unsigned int cpu)
- {
-@@ -36,8 +36,8 @@
- /*
- * Synchronise with the boot thread.
- */
-- spin_lock(&boot_lock);
-- spin_unlock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- }
-
- static const struct of_device_id clk_ids[] = {
-@@ -75,7 +75,7 @@
- /* make sure write buffer is drained */
- mb();
-
-- spin_lock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-
- /*
- * The secondary processor is waiting to be released from
-@@ -107,7 +107,7 @@
- * now the secondary core is starting up let it run its
- * calibrations, then wait for it to finish
- */
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
-
- return pen_release != -1 ? -ENOSYS : 0;
- }
-diff -Nur linux-4.1.39.orig/arch/arm/mach-qcom/platsmp.c linux-4.1.39/arch/arm/mach-qcom/platsmp.c
---- linux-4.1.39.orig/arch/arm/mach-qcom/platsmp.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-qcom/platsmp.c 2017-04-18 17:56:30.553394804 +0200
-@@ -46,7 +46,7 @@
-
- extern void secondary_startup_arm(void);
-
--static DEFINE_SPINLOCK(boot_lock);
-+static DEFINE_RAW_SPINLOCK(boot_lock);
-
- #ifdef CONFIG_HOTPLUG_CPU
- static void __ref qcom_cpu_die(unsigned int cpu)
-@@ -60,8 +60,8 @@
- /*
- * Synchronise with the boot thread.
- */
-- spin_lock(&boot_lock);
-- spin_unlock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- }
-
- static int scss_release_secondary(unsigned int cpu)
-@@ -284,7 +284,7 @@
- * set synchronisation state between this boot processor
- * and the secondary one
- */
-- spin_lock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-
- /*
- * Send the secondary CPU a soft interrupt, thereby causing
-@@ -297,7 +297,7 @@
- * now the secondary core is starting up let it run its
- * calibrations, then wait for it to finish
- */
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
-
- return ret;
- }
-diff -Nur linux-4.1.39.orig/arch/arm/mach-spear/platsmp.c linux-4.1.39/arch/arm/mach-spear/platsmp.c
---- linux-4.1.39.orig/arch/arm/mach-spear/platsmp.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-spear/platsmp.c 2017-04-18 17:56:30.553394804 +0200
-@@ -32,7 +32,7 @@
- sync_cache_w(&pen_release);
- }
-
--static DEFINE_SPINLOCK(boot_lock);
-+static DEFINE_RAW_SPINLOCK(boot_lock);
-
- static void __iomem *scu_base = IOMEM(VA_SCU_BASE);
-
-@@ -47,8 +47,8 @@
- /*
- * Synchronise with the boot thread.
- */
-- spin_lock(&boot_lock);
-- spin_unlock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- }
-
- static int spear13xx_boot_secondary(unsigned int cpu, struct task_struct *idle)
-@@ -59,7 +59,7 @@
- * set synchronisation state between this boot processor
- * and the secondary one
- */
-- spin_lock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-
- /*
- * The secondary processor is waiting to be released from
-@@ -84,7 +84,7 @@
- * now the secondary core is starting up let it run its
- * calibrations, then wait for it to finish
- */
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
-
- return pen_release != -1 ? -ENOSYS : 0;
- }
-diff -Nur linux-4.1.39.orig/arch/arm/mach-sti/platsmp.c linux-4.1.39/arch/arm/mach-sti/platsmp.c
---- linux-4.1.39.orig/arch/arm/mach-sti/platsmp.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-sti/platsmp.c 2017-04-18 17:56:30.553394804 +0200
-@@ -34,7 +34,7 @@
- sync_cache_w(&pen_release);
- }
-
--static DEFINE_SPINLOCK(boot_lock);
-+static DEFINE_RAW_SPINLOCK(boot_lock);
-
- static void sti_secondary_init(unsigned int cpu)
- {
-@@ -49,8 +49,8 @@
- /*
- * Synchronise with the boot thread.
- */
-- spin_lock(&boot_lock);
-- spin_unlock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- }
-
- static int sti_boot_secondary(unsigned int cpu, struct task_struct *idle)
-@@ -61,7 +61,7 @@
- * set synchronisation state between this boot processor
- * and the secondary one
- */
-- spin_lock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-
- /*
- * The secondary processor is waiting to be released from
-@@ -92,7 +92,7 @@
- * now the secondary core is starting up let it run its
- * calibrations, then wait for it to finish
- */
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
-
- return pen_release != -1 ? -ENOSYS : 0;
- }
-diff -Nur linux-4.1.39.orig/arch/arm/mach-ux500/platsmp.c linux-4.1.39/arch/arm/mach-ux500/platsmp.c
---- linux-4.1.39.orig/arch/arm/mach-ux500/platsmp.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mach-ux500/platsmp.c 2017-04-18 17:56:30.553394804 +0200
-@@ -51,7 +51,7 @@
- return NULL;
- }
-
--static DEFINE_SPINLOCK(boot_lock);
-+static DEFINE_RAW_SPINLOCK(boot_lock);
-
- static void ux500_secondary_init(unsigned int cpu)
- {
-@@ -64,8 +64,8 @@
- /*
- * Synchronise with the boot thread.
- */
-- spin_lock(&boot_lock);
-- spin_unlock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- }
-
- static int ux500_boot_secondary(unsigned int cpu, struct task_struct *idle)
-@@ -76,7 +76,7 @@
- * set synchronisation state between this boot processor
- * and the secondary one
- */
-- spin_lock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-
- /*
- * The secondary processor is waiting to be released from
-@@ -97,7 +97,7 @@
- * now the secondary core is starting up let it run its
- * calibrations, then wait for it to finish
- */
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
-
- return pen_release != -1 ? -ENOSYS : 0;
- }
-diff -Nur linux-4.1.39.orig/arch/arm/mm/fault.c linux-4.1.39/arch/arm/mm/fault.c
---- linux-4.1.39.orig/arch/arm/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mm/fault.c 2017-04-18 17:56:30.553394804 +0200
-@@ -276,7 +276,7 @@
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto no_context;
-
- if (user_mode(regs))
-@@ -430,6 +430,9 @@
- if (addr < TASK_SIZE)
- return do_page_fault(addr, fsr, regs);
-
-+ if (interrupts_enabled(regs))
-+ local_irq_enable();
-+
- if (user_mode(regs))
- goto bad_area;
-
-@@ -497,6 +500,9 @@
- static int
- do_sect_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
- {
-+ if (interrupts_enabled(regs))
-+ local_irq_enable();
-+
- do_bad_area(addr, fsr, regs);
- return 0;
- }
-diff -Nur linux-4.1.39.orig/arch/arm/mm/highmem.c linux-4.1.39/arch/arm/mm/highmem.c
---- linux-4.1.39.orig/arch/arm/mm/highmem.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/mm/highmem.c 2017-04-18 17:56:30.553394804 +0200
-@@ -54,11 +54,13 @@
-
- void *kmap_atomic(struct page *page)
- {
-+ pte_t pte = mk_pte(page, kmap_prot);
- unsigned int idx;
- unsigned long vaddr;
- void *kmap;
- int type;
-
-+ preempt_disable_nort();
- pagefault_disable();
- if (!PageHighMem(page))
- return page_address(page);
-@@ -92,7 +94,10 @@
- * in place, so the contained TLB flush ensures the TLB is updated
- * with the new mapping.
- */
-- set_fixmap_pte(idx, mk_pte(page, kmap_prot));
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ current->kmap_pte[type] = pte;
-+#endif
-+ set_fixmap_pte(idx, pte);
-
- return (void *)vaddr;
- }
-@@ -109,27 +114,33 @@
-
- if (cache_is_vivt())
- __cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE);
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ current->kmap_pte[type] = __pte(0);
-+#endif
- #ifdef CONFIG_DEBUG_HIGHMEM
- BUG_ON(vaddr != __fix_to_virt(idx));
-- set_fixmap_pte(idx, __pte(0));
- #else
- (void) idx; /* to kill a warning */
- #endif
-+ set_fixmap_pte(idx, __pte(0));
- kmap_atomic_idx_pop();
- } else if (vaddr >= PKMAP_ADDR(0) && vaddr < PKMAP_ADDR(LAST_PKMAP)) {
- /* this address was obtained through kmap_high_get() */
- kunmap_high(pte_page(pkmap_page_table[PKMAP_NR(vaddr)]));
- }
- pagefault_enable();
-+ preempt_enable_nort();
- }
- EXPORT_SYMBOL(__kunmap_atomic);
-
- void *kmap_atomic_pfn(unsigned long pfn)
- {
-+ pte_t pte = pfn_pte(pfn, kmap_prot);
- unsigned long vaddr;
- int idx, type;
- struct page *page = pfn_to_page(pfn);
-
-+ preempt_disable_nort();
- pagefault_disable();
- if (!PageHighMem(page))
- return page_address(page);
-@@ -140,7 +151,10 @@
- #ifdef CONFIG_DEBUG_HIGHMEM
- BUG_ON(!pte_none(get_fixmap_pte(vaddr)));
- #endif
-- set_fixmap_pte(idx, pfn_pte(pfn, kmap_prot));
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ current->kmap_pte[type] = pte;
-+#endif
-+ set_fixmap_pte(idx, pte);
-
- return (void *)vaddr;
- }
-@@ -154,3 +168,28 @@
-
- return pte_page(get_fixmap_pte(vaddr));
- }
-+
-+#if defined CONFIG_PREEMPT_RT_FULL
-+void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p)
-+{
-+ int i;
-+
-+ /*
-+ * Clear @prev's kmap_atomic mappings
-+ */
-+ for (i = 0; i < prev_p->kmap_idx; i++) {
-+ int idx = i + KM_TYPE_NR * smp_processor_id();
-+
-+ set_fixmap_pte(idx, __pte(0));
-+ }
-+ /*
-+ * Restore @next_p's kmap_atomic mappings
-+ */
-+ for (i = 0; i < next_p->kmap_idx; i++) {
-+ int idx = i + KM_TYPE_NR * smp_processor_id();
-+
-+ if (!pte_none(next_p->kmap_pte[i]))
-+ set_fixmap_pte(idx, next_p->kmap_pte[i]);
-+ }
-+}
-+#endif
-diff -Nur linux-4.1.39.orig/arch/arm/plat-versatile/platsmp.c linux-4.1.39/arch/arm/plat-versatile/platsmp.c
---- linux-4.1.39.orig/arch/arm/plat-versatile/platsmp.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm/plat-versatile/platsmp.c 2017-04-18 17:56:30.553394804 +0200
-@@ -30,7 +30,7 @@
- sync_cache_w(&pen_release);
- }
-
--static DEFINE_SPINLOCK(boot_lock);
-+static DEFINE_RAW_SPINLOCK(boot_lock);
-
- void versatile_secondary_init(unsigned int cpu)
- {
-@@ -43,8 +43,8 @@
- /*
- * Synchronise with the boot thread.
- */
-- spin_lock(&boot_lock);
-- spin_unlock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
- }
-
- int versatile_boot_secondary(unsigned int cpu, struct task_struct *idle)
-@@ -55,7 +55,7 @@
- * Set synchronisation state between this boot processor
- * and the secondary one
- */
-- spin_lock(&boot_lock);
-+ raw_spin_lock(&boot_lock);
-
- /*
- * This is really belt and braces; we hold unintended secondary
-@@ -85,7 +85,7 @@
- * now the secondary core is starting up let it run its
- * calibrations, then wait for it to finish
- */
-- spin_unlock(&boot_lock);
-+ raw_spin_unlock(&boot_lock);
-
- return pen_release != -1 ? -ENOSYS : 0;
- }
-diff -Nur linux-4.1.39.orig/arch/arm64/include/asm/futex.h linux-4.1.39/arch/arm64/include/asm/futex.h
---- linux-4.1.39.orig/arch/arm64/include/asm/futex.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm64/include/asm/futex.h 2017-04-18 17:56:30.553394804 +0200
-@@ -58,7 +58,7 @@
- if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
- return -EFAULT;
-
-- pagefault_disable(); /* implies preempt_disable() */
-+ pagefault_disable();
-
- switch (op) {
- case FUTEX_OP_SET:
-@@ -85,7 +85,7 @@
- ret = -ENOSYS;
- }
-
-- pagefault_enable(); /* subsumes preempt_enable() */
-+ pagefault_enable();
-
- if (!ret) {
- switch (cmp) {
-diff -Nur linux-4.1.39.orig/arch/arm64/include/asm/thread_info.h linux-4.1.39/arch/arm64/include/asm/thread_info.h
---- linux-4.1.39.orig/arch/arm64/include/asm/thread_info.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm64/include/asm/thread_info.h 2017-04-18 17:56:30.553394804 +0200
-@@ -47,6 +47,7 @@
- mm_segment_t addr_limit; /* address limit */
- struct task_struct *task; /* main task structure */
- int preempt_count; /* 0 => preemptable, <0 => bug */
-+ int preempt_lazy_count; /* 0 => preemptable, <0 => bug */
- int cpu; /* cpu */
- };
-
-@@ -101,6 +102,7 @@
- #define TIF_NEED_RESCHED 1
- #define TIF_NOTIFY_RESUME 2 /* callback before returning to user */
- #define TIF_FOREIGN_FPSTATE 3 /* CPU's FP state is not current's */
-+#define TIF_NEED_RESCHED_LAZY 4
- #define TIF_NOHZ 7
- #define TIF_SYSCALL_TRACE 8
- #define TIF_SYSCALL_AUDIT 9
-@@ -117,6 +119,7 @@
- #define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
- #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
- #define _TIF_FOREIGN_FPSTATE (1 << TIF_FOREIGN_FPSTATE)
-+#define _TIF_NEED_RESCHED_LAZY (1 << TIF_NEED_RESCHED_LAZY)
- #define _TIF_NOHZ (1 << TIF_NOHZ)
- #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
- #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
-diff -Nur linux-4.1.39.orig/arch/arm64/Kconfig linux-4.1.39/arch/arm64/Kconfig
---- linux-4.1.39.orig/arch/arm64/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm64/Kconfig 2017-04-18 17:56:30.553394804 +0200
-@@ -69,8 +69,10 @@
- select HAVE_PERF_REGS
- select HAVE_PERF_USER_STACK_DUMP
- select HAVE_RCU_TABLE_FREE
-+ select HAVE_PREEMPT_LAZY
- select HAVE_SYSCALL_TRACEPOINTS
- select IRQ_DOMAIN
-+ select IRQ_FORCED_THREADING
- select MODULES_USE_ELF_RELA
- select NO_BOOTMEM
- select OF
-@@ -599,7 +601,7 @@
-
- config XEN
- bool "Xen guest support on ARM64"
-- depends on ARM64 && OF
-+ depends on ARM64 && OF && !PREEMPT_RT_FULL
- select SWIOTLB_XEN
- help
- Say Y if you want to run Linux in a Virtual Machine on Xen on ARM64.
-diff -Nur linux-4.1.39.orig/arch/arm64/kernel/asm-offsets.c linux-4.1.39/arch/arm64/kernel/asm-offsets.c
---- linux-4.1.39.orig/arch/arm64/kernel/asm-offsets.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm64/kernel/asm-offsets.c 2017-04-18 17:56:30.553394804 +0200
-@@ -35,6 +35,7 @@
- BLANK();
- DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
- DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
-+ DEFINE(TI_PREEMPT_LAZY, offsetof(struct thread_info, preempt_lazy_count));
- DEFINE(TI_ADDR_LIMIT, offsetof(struct thread_info, addr_limit));
- DEFINE(TI_TASK, offsetof(struct thread_info, task));
- DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
-diff -Nur linux-4.1.39.orig/arch/arm64/kernel/entry.S linux-4.1.39/arch/arm64/kernel/entry.S
---- linux-4.1.39.orig/arch/arm64/kernel/entry.S 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm64/kernel/entry.S 2017-04-18 17:56:30.553394804 +0200
-@@ -380,11 +380,16 @@
- #ifdef CONFIG_PREEMPT
- get_thread_info tsk
- ldr w24, [tsk, #TI_PREEMPT] // get preempt count
-- cbnz w24, 1f // preempt count != 0
-+ cbnz w24, 2f // preempt count != 0
- ldr x0, [tsk, #TI_FLAGS] // get flags
-- tbz x0, #TIF_NEED_RESCHED, 1f // needs rescheduling?
-- bl el1_preempt
-+ tbnz x0, #TIF_NEED_RESCHED, 1f // needs rescheduling?
-+
-+ ldr w24, [tsk, #TI_PREEMPT_LAZY] // get preempt lazy count
-+ cbnz w24, 2f // preempt lazy count != 0
-+ tbz x0, #TIF_NEED_RESCHED_LAZY, 2f // needs rescheduling?
- 1:
-+ bl el1_preempt
-+2:
- #endif
- #ifdef CONFIG_TRACE_IRQFLAGS
- bl trace_hardirqs_on
-@@ -398,6 +403,7 @@
- 1: bl preempt_schedule_irq // irq en/disable is done inside
- ldr x0, [tsk, #TI_FLAGS] // get new tasks TI_FLAGS
- tbnz x0, #TIF_NEED_RESCHED, 1b // needs rescheduling?
-+ tbnz x0, #TIF_NEED_RESCHED_LAZY, 1b // needs rescheduling?
- ret x24
- #endif
-
-@@ -635,6 +641,7 @@
- str x0, [sp, #S_X0] // returned x0
- work_pending:
- tbnz x1, #TIF_NEED_RESCHED, work_resched
-+ tbnz x1, #TIF_NEED_RESCHED_LAZY, work_resched
- /* TIF_SIGPENDING, TIF_NOTIFY_RESUME or TIF_FOREIGN_FPSTATE case */
- ldr x2, [sp, #S_PSTATE]
- mov x0, sp // 'regs'
-diff -Nur linux-4.1.39.orig/arch/arm64/kernel/insn.c linux-4.1.39/arch/arm64/kernel/insn.c
---- linux-4.1.39.orig/arch/arm64/kernel/insn.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm64/kernel/insn.c 2017-04-18 17:56:30.553394804 +0200
-@@ -77,7 +77,7 @@
- }
- }
-
--static DEFINE_SPINLOCK(patch_lock);
-+static DEFINE_RAW_SPINLOCK(patch_lock);
-
- static void __kprobes *patch_map(void *addr, int fixmap)
- {
-@@ -124,13 +124,13 @@
- unsigned long flags = 0;
- int ret;
-
-- spin_lock_irqsave(&patch_lock, flags);
-+ raw_spin_lock_irqsave(&patch_lock, flags);
- waddr = patch_map(addr, FIX_TEXT_POKE0);
-
- ret = probe_kernel_write(waddr, &insn, AARCH64_INSN_SIZE);
-
- patch_unmap(FIX_TEXT_POKE0);
-- spin_unlock_irqrestore(&patch_lock, flags);
-+ raw_spin_unlock_irqrestore(&patch_lock, flags);
-
- return ret;
- }
-diff -Nur linux-4.1.39.orig/arch/arm64/kernel/perf_event.c linux-4.1.39/arch/arm64/kernel/perf_event.c
---- linux-4.1.39.orig/arch/arm64/kernel/perf_event.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm64/kernel/perf_event.c 2017-04-18 17:56:30.553394804 +0200
-@@ -488,7 +488,7 @@
- }
-
- err = request_irq(irq, armpmu->handle_irq,
-- IRQF_NOBALANCING,
-+ IRQF_NOBALANCING | IRQF_NO_THREAD,
- "arm-pmu", armpmu);
- if (err) {
- pr_err("unable to request IRQ%d for ARM PMU counters\n",
-diff -Nur linux-4.1.39.orig/arch/arm64/mm/fault.c linux-4.1.39/arch/arm64/mm/fault.c
---- linux-4.1.39.orig/arch/arm64/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/arm64/mm/fault.c 2017-04-18 17:56:30.553394804 +0200
-@@ -211,7 +211,7 @@
- * If we're in an interrupt or have no user context, we must not take
- * the fault.
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto no_context;
-
- if (user_mode(regs))
-diff -Nur linux-4.1.39.orig/arch/avr32/include/asm/uaccess.h linux-4.1.39/arch/avr32/include/asm/uaccess.h
---- linux-4.1.39.orig/arch/avr32/include/asm/uaccess.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/avr32/include/asm/uaccess.h 2017-04-18 17:56:30.553394804 +0200
-@@ -106,7 +106,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -125,7 +126,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -145,7 +147,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -167,7 +170,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-diff -Nur linux-4.1.39.orig/arch/avr32/mm/fault.c linux-4.1.39/arch/avr32/mm/fault.c
---- linux-4.1.39.orig/arch/avr32/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/avr32/mm/fault.c 2017-04-18 17:56:30.553394804 +0200
-@@ -14,11 +14,11 @@
- #include <linux/pagemap.h>
- #include <linux/kdebug.h>
- #include <linux/kprobes.h>
-+#include <linux/uaccess.h>
-
- #include <asm/mmu_context.h>
- #include <asm/sysreg.h>
- #include <asm/tlb.h>
--#include <asm/uaccess.h>
-
- #ifdef CONFIG_KPROBES
- static inline int notify_page_fault(struct pt_regs *regs, int trap)
-@@ -81,7 +81,7 @@
- * If we're in an interrupt or have no user context, we must
- * not take the fault...
- */
-- if (in_atomic() || !mm || regs->sr & SYSREG_BIT(GM))
-+ if (faulthandler_disabled() || !mm || regs->sr & SYSREG_BIT(GM))
- goto no_context;
-
- local_irq_enable();
-diff -Nur linux-4.1.39.orig/arch/cris/mm/fault.c linux-4.1.39/arch/cris/mm/fault.c
---- linux-4.1.39.orig/arch/cris/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/cris/mm/fault.c 2017-04-18 17:56:30.553394804 +0200
-@@ -8,7 +8,7 @@
- #include <linux/interrupt.h>
- #include <linux/module.h>
- #include <linux/wait.h>
--#include <asm/uaccess.h>
-+#include <linux/uaccess.h>
- #include <arch/system.h>
-
- extern int find_fixup_code(struct pt_regs *);
-@@ -109,11 +109,11 @@
- info.si_code = SEGV_MAPERR;
-
- /*
-- * If we're in an interrupt or "atomic" operation or have no
-+ * If we're in an interrupt, have pagefaults disabled or have no
- * user context, we must not take the fault.
- */
-
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto no_context;
-
- if (user_mode(regs))
-diff -Nur linux-4.1.39.orig/arch/frv/mm/fault.c linux-4.1.39/arch/frv/mm/fault.c
---- linux-4.1.39.orig/arch/frv/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/frv/mm/fault.c 2017-04-18 17:56:30.553394804 +0200
-@@ -19,9 +19,9 @@
- #include <linux/kernel.h>
- #include <linux/ptrace.h>
- #include <linux/hardirq.h>
-+#include <linux/uaccess.h>
-
- #include <asm/pgtable.h>
--#include <asm/uaccess.h>
- #include <asm/gdb-stub.h>
-
- /*****************************************************************************/
-@@ -78,7 +78,7 @@
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto no_context;
-
- if (user_mode(__frame))
-diff -Nur linux-4.1.39.orig/arch/frv/mm/highmem.c linux-4.1.39/arch/frv/mm/highmem.c
---- linux-4.1.39.orig/arch/frv/mm/highmem.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/frv/mm/highmem.c 2017-04-18 17:56:30.553394804 +0200
-@@ -42,6 +42,7 @@
- unsigned long paddr;
- int type;
-
-+ preempt_disable();
- pagefault_disable();
- type = kmap_atomic_idx_push();
- paddr = page_to_phys(page);
-@@ -85,5 +86,6 @@
- }
- kmap_atomic_idx_pop();
- pagefault_enable();
-+ preempt_enable();
- }
- EXPORT_SYMBOL(__kunmap_atomic);
-diff -Nur linux-4.1.39.orig/arch/hexagon/include/asm/uaccess.h linux-4.1.39/arch/hexagon/include/asm/uaccess.h
---- linux-4.1.39.orig/arch/hexagon/include/asm/uaccess.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/hexagon/include/asm/uaccess.h 2017-04-18 17:56:30.553394804 +0200
-@@ -36,7 +36,8 @@
- * @addr: User space pointer to start of block to check
- * @size: Size of block to check
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Checks if a pointer to a block of memory in user space is valid.
- *
-diff -Nur linux-4.1.39.orig/arch/ia64/mm/fault.c linux-4.1.39/arch/ia64/mm/fault.c
---- linux-4.1.39.orig/arch/ia64/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/ia64/mm/fault.c 2017-04-18 17:56:30.553394804 +0200
-@@ -11,10 +11,10 @@
- #include <linux/kprobes.h>
- #include <linux/kdebug.h>
- #include <linux/prefetch.h>
-+#include <linux/uaccess.h>
-
- #include <asm/pgtable.h>
- #include <asm/processor.h>
--#include <asm/uaccess.h>
-
- extern int die(char *, struct pt_regs *, long);
-
-@@ -96,7 +96,7 @@
- /*
- * If we're in an interrupt or have no user context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto no_context;
-
- #ifdef CONFIG_VIRTUAL_MEM_MAP
-diff -Nur linux-4.1.39.orig/arch/Kconfig linux-4.1.39/arch/Kconfig
---- linux-4.1.39.orig/arch/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/Kconfig 2017-04-18 17:56:30.549394649 +0200
-@@ -6,6 +6,7 @@
- tristate "OProfile system profiling"
- depends on PROFILING
- depends on HAVE_OPROFILE
-+ depends on !PREEMPT_RT_FULL
- select RING_BUFFER
- select RING_BUFFER_ALLOW_SWAP
- help
-@@ -49,6 +50,7 @@
- config JUMP_LABEL
- bool "Optimize very unlikely/likely branches"
- depends on HAVE_ARCH_JUMP_LABEL
-+ depends on (!INTERRUPT_OFF_HIST && !PREEMPT_OFF_HIST && !WAKEUP_LATENCY_HIST && !MISSED_TIMER_OFFSETS_HIST)
- help
- This option enables a transparent branch optimization that
- makes certain almost-always-true or almost-always-false branch
-diff -Nur linux-4.1.39.orig/arch/m32r/include/asm/uaccess.h linux-4.1.39/arch/m32r/include/asm/uaccess.h
---- linux-4.1.39.orig/arch/m32r/include/asm/uaccess.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/m32r/include/asm/uaccess.h 2017-04-18 17:56:30.553394804 +0200
-@@ -91,7 +91,8 @@
- * @addr: User space pointer to start of block to check
- * @size: Size of block to check
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Checks if a pointer to a block of memory in user space is valid.
- *
-@@ -155,7 +156,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -175,7 +177,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -194,7 +197,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -274,7 +278,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -568,7 +573,8 @@
- * @from: Source address, in kernel space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from kernel space to user space. Caller must check
- * the specified block with access_ok() before calling this function.
-@@ -588,7 +594,8 @@
- * @from: Source address, in kernel space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from kernel space to user space.
- *
-@@ -606,7 +613,8 @@
- * @from: Source address, in user space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from user space to kernel space. Caller must check
- * the specified block with access_ok() before calling this function.
-@@ -626,7 +634,8 @@
- * @from: Source address, in user space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from user space to kernel space.
- *
-@@ -677,7 +686,8 @@
- * strlen_user: - Get the size of a string in user space.
- * @str: The string to measure.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Get the size of a NUL-terminated string in user space.
- *
-diff -Nur linux-4.1.39.orig/arch/m32r/mm/fault.c linux-4.1.39/arch/m32r/mm/fault.c
---- linux-4.1.39.orig/arch/m32r/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/m32r/mm/fault.c 2017-04-18 17:56:30.553394804 +0200
-@@ -24,9 +24,9 @@
- #include <linux/vt_kern.h> /* For unblank_screen() */
- #include <linux/highmem.h>
- #include <linux/module.h>
-+#include <linux/uaccess.h>
-
- #include <asm/m32r.h>
--#include <asm/uaccess.h>
- #include <asm/hardirq.h>
- #include <asm/mmu_context.h>
- #include <asm/tlbflush.h>
-@@ -111,10 +111,10 @@
- mm = tsk->mm;
-
- /*
-- * If we're in an interrupt or have no user context or are running in an
-- * atomic region then we must not take the fault..
-+ * If we're in an interrupt or have no user context or have pagefaults
-+ * disabled then we must not take the fault.
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto bad_area_nosemaphore;
-
- if (error_code & ACE_USERMODE)
-diff -Nur linux-4.1.39.orig/arch/m68k/mm/fault.c linux-4.1.39/arch/m68k/mm/fault.c
---- linux-4.1.39.orig/arch/m68k/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/m68k/mm/fault.c 2017-04-18 17:56:30.557394959 +0200
-@@ -10,10 +10,10 @@
- #include <linux/ptrace.h>
- #include <linux/interrupt.h>
- #include <linux/module.h>
-+#include <linux/uaccess.h>
-
- #include <asm/setup.h>
- #include <asm/traps.h>
--#include <asm/uaccess.h>
- #include <asm/pgalloc.h>
-
- extern void die_if_kernel(char *, struct pt_regs *, long);
-@@ -81,7 +81,7 @@
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto no_context;
-
- if (user_mode(regs))
-diff -Nur linux-4.1.39.orig/arch/metag/mm/fault.c linux-4.1.39/arch/metag/mm/fault.c
---- linux-4.1.39.orig/arch/metag/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/metag/mm/fault.c 2017-04-18 17:56:30.557394959 +0200
-@@ -105,7 +105,7 @@
-
- mm = tsk->mm;
-
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto no_context;
-
- if (user_mode(regs))
-diff -Nur linux-4.1.39.orig/arch/metag/mm/highmem.c linux-4.1.39/arch/metag/mm/highmem.c
---- linux-4.1.39.orig/arch/metag/mm/highmem.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/metag/mm/highmem.c 2017-04-18 17:56:30.557394959 +0200
-@@ -43,7 +43,7 @@
- unsigned long vaddr;
- int type;
-
-- /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
-+ preempt_disable();
- pagefault_disable();
- if (!PageHighMem(page))
- return page_address(page);
-@@ -82,6 +82,7 @@
- }
-
- pagefault_enable();
-+ preempt_enable();
- }
- EXPORT_SYMBOL(__kunmap_atomic);
-
-@@ -95,6 +96,7 @@
- unsigned long vaddr;
- int type;
-
-+ preempt_disable();
- pagefault_disable();
-
- type = kmap_atomic_idx_push();
-diff -Nur linux-4.1.39.orig/arch/microblaze/include/asm/uaccess.h linux-4.1.39/arch/microblaze/include/asm/uaccess.h
---- linux-4.1.39.orig/arch/microblaze/include/asm/uaccess.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/microblaze/include/asm/uaccess.h 2017-04-18 17:56:30.557394959 +0200
-@@ -178,7 +178,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -290,7 +291,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-diff -Nur linux-4.1.39.orig/arch/microblaze/mm/fault.c linux-4.1.39/arch/microblaze/mm/fault.c
---- linux-4.1.39.orig/arch/microblaze/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/microblaze/mm/fault.c 2017-04-18 17:56:30.557394959 +0200
-@@ -107,14 +107,14 @@
- if ((error_code & 0x13) == 0x13 || (error_code & 0x11) == 0x11)
- is_write = 0;
-
-- if (unlikely(in_atomic() || !mm)) {
-+ if (unlikely(faulthandler_disabled() || !mm)) {
- if (kernel_mode(regs))
- goto bad_area_nosemaphore;
-
-- /* in_atomic() in user mode is really bad,
-+ /* faulthandler_disabled() in user mode is really bad,
- as is current->mm == NULL. */
-- pr_emerg("Page fault in user mode with in_atomic(), mm = %p\n",
-- mm);
-+ pr_emerg("Page fault in user mode with faulthandler_disabled(), mm = %p\n",
-+ mm);
- pr_emerg("r15 = %lx MSR = %lx\n",
- regs->r15, regs->msr);
- die("Weird page fault", regs, SIGSEGV);
-diff -Nur linux-4.1.39.orig/arch/microblaze/mm/highmem.c linux-4.1.39/arch/microblaze/mm/highmem.c
---- linux-4.1.39.orig/arch/microblaze/mm/highmem.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/microblaze/mm/highmem.c 2017-04-18 17:56:30.557394959 +0200
-@@ -37,7 +37,7 @@
- unsigned long vaddr;
- int idx, type;
-
-- /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
-+ preempt_disable();
- pagefault_disable();
- if (!PageHighMem(page))
- return page_address(page);
-@@ -63,6 +63,7 @@
-
- if (vaddr < __fix_to_virt(FIX_KMAP_END)) {
- pagefault_enable();
-+ preempt_enable();
- return;
- }
-
-@@ -84,5 +85,6 @@
- #endif
- kmap_atomic_idx_pop();
- pagefault_enable();
-+ preempt_enable();
- }
- EXPORT_SYMBOL(__kunmap_atomic);
-diff -Nur linux-4.1.39.orig/arch/mips/include/asm/uaccess.h linux-4.1.39/arch/mips/include/asm/uaccess.h
---- linux-4.1.39.orig/arch/mips/include/asm/uaccess.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/mips/include/asm/uaccess.h 2017-04-18 17:56:30.557394959 +0200
-@@ -104,7 +104,8 @@
- * @addr: User space pointer to start of block to check
- * @size: Size of block to check
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Checks if a pointer to a block of memory in user space is valid.
- *
-@@ -139,7 +140,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -158,7 +160,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -178,7 +181,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -200,7 +204,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -499,7 +504,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -518,7 +524,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -538,7 +545,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -560,7 +568,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -816,7 +825,8 @@
- * @from: Source address, in kernel space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from kernel space to user space. Caller must check
- * the specified block with access_ok() before calling this function.
-@@ -889,7 +899,8 @@
- * @from: Source address, in kernel space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from kernel space to user space.
- *
-@@ -1076,7 +1087,8 @@
- * @from: Source address, in user space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from user space to kernel space. Caller must check
- * the specified block with access_ok() before calling this function.
-@@ -1108,7 +1120,8 @@
- * @from: Source address, in user space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from user space to kernel space.
- *
-@@ -1332,7 +1345,8 @@
- * strlen_user: - Get the size of a string in user space.
- * @str: The string to measure.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Get the size of a NUL-terminated string in user space.
- *
-@@ -1401,7 +1415,8 @@
- * strnlen_user: - Get the size of a string in user space.
- * @str: The string to measure.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Get the size of a NUL-terminated string in user space.
- *
-diff -Nur linux-4.1.39.orig/arch/mips/Kconfig linux-4.1.39/arch/mips/Kconfig
---- linux-4.1.39.orig/arch/mips/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/mips/Kconfig 2017-04-18 17:56:30.557394959 +0200
-@@ -2367,7 +2367,7 @@
- #
- config HIGHMEM
- bool "High Memory Support"
-- depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA
-+ depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM && !CPU_MIPS32_3_5_EVA && !PREEMPT_RT_FULL
-
- config CPU_SUPPORTS_HIGHMEM
- bool
-diff -Nur linux-4.1.39.orig/arch/mips/kernel/signal-common.h linux-4.1.39/arch/mips/kernel/signal-common.h
---- linux-4.1.39.orig/arch/mips/kernel/signal-common.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/mips/kernel/signal-common.h 2017-04-18 17:56:30.557394959 +0200
-@@ -28,12 +28,7 @@
- extern int fpcsr_pending(unsigned int __user *fpcsr);
-
- /* Make sure we will not lose FPU ownership */
--#ifdef CONFIG_PREEMPT
--#define lock_fpu_owner() preempt_disable()
--#define unlock_fpu_owner() preempt_enable()
--#else
--#define lock_fpu_owner() pagefault_disable()
--#define unlock_fpu_owner() pagefault_enable()
--#endif
-+#define lock_fpu_owner() ({ preempt_disable(); pagefault_disable(); })
-+#define unlock_fpu_owner() ({ pagefault_enable(); preempt_enable(); })
-
- #endif /* __SIGNAL_COMMON_H */
-diff -Nur linux-4.1.39.orig/arch/mips/mm/fault.c linux-4.1.39/arch/mips/mm/fault.c
---- linux-4.1.39.orig/arch/mips/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/mips/mm/fault.c 2017-04-18 17:56:30.557394959 +0200
-@@ -21,10 +21,10 @@
- #include <linux/module.h>
- #include <linux/kprobes.h>
- #include <linux/perf_event.h>
-+#include <linux/uaccess.h>
-
- #include <asm/branch.h>
- #include <asm/mmu_context.h>
--#include <asm/uaccess.h>
- #include <asm/ptrace.h>
- #include <asm/highmem.h> /* For VMALLOC_END */
- #include <linux/kdebug.h>
-@@ -94,7 +94,7 @@
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto bad_area_nosemaphore;
-
- if (user_mode(regs))
-diff -Nur linux-4.1.39.orig/arch/mips/mm/highmem.c linux-4.1.39/arch/mips/mm/highmem.c
---- linux-4.1.39.orig/arch/mips/mm/highmem.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/mips/mm/highmem.c 2017-04-18 17:56:30.557394959 +0200
-@@ -47,7 +47,7 @@
- unsigned long vaddr;
- int idx, type;
-
-- /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
-+ preempt_disable();
- pagefault_disable();
- if (!PageHighMem(page))
- return page_address(page);
-@@ -72,6 +72,7 @@
-
- if (vaddr < FIXADDR_START) { // FIXME
- pagefault_enable();
-+ preempt_enable();
- return;
- }
-
-@@ -92,6 +93,7 @@
- #endif
- kmap_atomic_idx_pop();
- pagefault_enable();
-+ preempt_enable();
- }
- EXPORT_SYMBOL(__kunmap_atomic);
-
-@@ -104,6 +106,7 @@
- unsigned long vaddr;
- int idx, type;
-
-+ preempt_disable();
- pagefault_disable();
-
- type = kmap_atomic_idx_push();
-diff -Nur linux-4.1.39.orig/arch/mips/mm/init.c linux-4.1.39/arch/mips/mm/init.c
---- linux-4.1.39.orig/arch/mips/mm/init.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/mips/mm/init.c 2017-04-18 17:56:30.557394959 +0200
-@@ -90,6 +90,7 @@
-
- BUG_ON(Page_dcache_dirty(page));
-
-+ preempt_disable();
- pagefault_disable();
- idx = (addr >> PAGE_SHIFT) & (FIX_N_COLOURS - 1);
- idx += in_interrupt() ? FIX_N_COLOURS : 0;
-@@ -152,6 +153,7 @@
- write_c0_entryhi(old_ctx);
- local_irq_restore(flags);
- pagefault_enable();
-+ preempt_enable();
- }
-
- void copy_user_highpage(struct page *to, struct page *from,
-diff -Nur linux-4.1.39.orig/arch/mn10300/include/asm/highmem.h linux-4.1.39/arch/mn10300/include/asm/highmem.h
---- linux-4.1.39.orig/arch/mn10300/include/asm/highmem.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/mn10300/include/asm/highmem.h 2017-04-18 17:56:30.557394959 +0200
-@@ -75,6 +75,7 @@
- unsigned long vaddr;
- int idx, type;
-
-+ preempt_disable();
- pagefault_disable();
- if (page < highmem_start_page)
- return page_address(page);
-@@ -98,6 +99,7 @@
-
- if (vaddr < FIXADDR_START) { /* FIXME */
- pagefault_enable();
-+ preempt_enable();
- return;
- }
-
-@@ -122,6 +124,7 @@
-
- kmap_atomic_idx_pop();
- pagefault_enable();
-+ preempt_enable();
- }
- #endif /* __KERNEL__ */
-
-diff -Nur linux-4.1.39.orig/arch/mn10300/mm/fault.c linux-4.1.39/arch/mn10300/mm/fault.c
---- linux-4.1.39.orig/arch/mn10300/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/mn10300/mm/fault.c 2017-04-18 17:56:30.557394959 +0200
-@@ -23,8 +23,8 @@
- #include <linux/interrupt.h>
- #include <linux/init.h>
- #include <linux/vt_kern.h> /* For unblank_screen() */
-+#include <linux/uaccess.h>
-
--#include <asm/uaccess.h>
- #include <asm/pgalloc.h>
- #include <asm/hardirq.h>
- #include <asm/cpu-regs.h>
-@@ -168,7 +168,7 @@
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto no_context;
-
- if ((fault_code & MMUFCR_xFC_ACCESS) == MMUFCR_xFC_ACCESS_USR)
-diff -Nur linux-4.1.39.orig/arch/nios2/mm/fault.c linux-4.1.39/arch/nios2/mm/fault.c
---- linux-4.1.39.orig/arch/nios2/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/nios2/mm/fault.c 2017-04-18 17:56:30.557394959 +0200
-@@ -77,7 +77,7 @@
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto bad_area_nosemaphore;
-
- if (user_mode(regs))
-diff -Nur linux-4.1.39.orig/arch/parisc/include/asm/cacheflush.h linux-4.1.39/arch/parisc/include/asm/cacheflush.h
---- linux-4.1.39.orig/arch/parisc/include/asm/cacheflush.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/parisc/include/asm/cacheflush.h 2017-04-18 17:56:30.557394959 +0200
-@@ -142,6 +142,7 @@
-
- static inline void *kmap_atomic(struct page *page)
- {
-+ preempt_disable();
- pagefault_disable();
- return page_address(page);
- }
-@@ -150,6 +151,7 @@
- {
- flush_kernel_dcache_page_addr(addr);
- pagefault_enable();
-+ preempt_enable();
- }
-
- #define kmap_atomic_prot(page, prot) kmap_atomic(page)
-diff -Nur linux-4.1.39.orig/arch/parisc/kernel/traps.c linux-4.1.39/arch/parisc/kernel/traps.c
---- linux-4.1.39.orig/arch/parisc/kernel/traps.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/parisc/kernel/traps.c 2017-04-18 17:56:30.557394959 +0200
-@@ -26,9 +26,9 @@
- #include <linux/console.h>
- #include <linux/bug.h>
- #include <linux/ratelimit.h>
-+#include <linux/uaccess.h>
-
- #include <asm/assembly.h>
--#include <asm/uaccess.h>
- #include <asm/io.h>
- #include <asm/irq.h>
- #include <asm/traps.h>
-@@ -796,7 +796,7 @@
- * unless pagefault_disable() was called before.
- */
-
-- if (fault_space == 0 && !in_atomic())
-+ if (fault_space == 0 && !faulthandler_disabled())
- {
- /* Clean up and return if in exception table. */
- if (fixup_exception(regs))
-diff -Nur linux-4.1.39.orig/arch/parisc/mm/fault.c linux-4.1.39/arch/parisc/mm/fault.c
---- linux-4.1.39.orig/arch/parisc/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/parisc/mm/fault.c 2017-04-18 17:56:30.557394959 +0200
-@@ -15,8 +15,8 @@
- #include <linux/sched.h>
- #include <linux/interrupt.h>
- #include <linux/module.h>
-+#include <linux/uaccess.h>
-
--#include <asm/uaccess.h>
- #include <asm/traps.h>
-
- /* Various important other fields */
-@@ -208,7 +208,7 @@
- int fault;
- unsigned int flags;
-
-- if (in_atomic())
-+ if (pagefault_disabled())
- goto no_context;
-
- tsk = current;
-diff -Nur linux-4.1.39.orig/arch/powerpc/include/asm/kvm_host.h linux-4.1.39/arch/powerpc/include/asm/kvm_host.h
---- linux-4.1.39.orig/arch/powerpc/include/asm/kvm_host.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/include/asm/kvm_host.h 2017-04-18 17:56:30.557394959 +0200
-@@ -280,7 +280,7 @@
- u8 in_guest;
- struct list_head runnable_threads;
- spinlock_t lock;
-- wait_queue_head_t wq;
-+ struct swait_head wq;
- spinlock_t stoltb_lock; /* protects stolen_tb and preempt_tb */
- u64 stolen_tb;
- u64 preempt_tb;
-@@ -614,7 +614,7 @@
- u8 prodded;
- u32 last_inst;
-
-- wait_queue_head_t *wqp;
-+ struct swait_head *wqp;
- struct kvmppc_vcore *vcore;
- int ret;
- int trap;
-diff -Nur linux-4.1.39.orig/arch/powerpc/include/asm/thread_info.h linux-4.1.39/arch/powerpc/include/asm/thread_info.h
---- linux-4.1.39.orig/arch/powerpc/include/asm/thread_info.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/include/asm/thread_info.h 2017-04-18 17:56:30.557394959 +0200
-@@ -42,6 +42,8 @@
- int cpu; /* cpu we're on */
- int preempt_count; /* 0 => preemptable,
- <0 => BUG */
-+ int preempt_lazy_count; /* 0 => preemptable,
-+ <0 => BUG */
- unsigned long local_flags; /* private flags for thread */
-
- /* low level flags - has atomic operations done on it */
-@@ -82,8 +84,7 @@
- #define TIF_SYSCALL_TRACE 0 /* syscall trace active */
- #define TIF_SIGPENDING 1 /* signal pending */
- #define TIF_NEED_RESCHED 2 /* rescheduling necessary */
--#define TIF_POLLING_NRFLAG 3 /* true if poll_idle() is polling
-- TIF_NEED_RESCHED */
-+#define TIF_NEED_RESCHED_LAZY 3 /* lazy rescheduling necessary */
- #define TIF_32BIT 4 /* 32 bit binary */
- #define TIF_RESTORE_TM 5 /* need to restore TM FP/VEC/VSX */
- #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */
-@@ -101,6 +102,8 @@
- #if defined(CONFIG_PPC64)
- #define TIF_ELF2ABI 18 /* function descriptors must die! */
- #endif
-+#define TIF_POLLING_NRFLAG 19 /* true if poll_idle() is polling
-+ TIF_NEED_RESCHED */
-
- /* as above, but as bit values */
- #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
-@@ -119,14 +122,16 @@
- #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
- #define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE)
- #define _TIF_NOHZ (1<<TIF_NOHZ)
-+#define _TIF_NEED_RESCHED_LAZY (1<<TIF_NEED_RESCHED_LAZY)
- #define _TIF_SYSCALL_DOTRACE (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
- _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \
- _TIF_NOHZ)
-
- #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
- _TIF_NOTIFY_RESUME | _TIF_UPROBE | \
-- _TIF_RESTORE_TM)
-+ _TIF_RESTORE_TM | _TIF_NEED_RESCHED_LAZY)
- #define _TIF_PERSYSCALL_MASK (_TIF_RESTOREALL|_TIF_NOERROR)
-+#define _TIF_NEED_RESCHED_MASK (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY)
-
- /* Bits in local_flags */
- /* Don't move TLF_NAPPING without adjusting the code in entry_32.S */
-diff -Nur linux-4.1.39.orig/arch/powerpc/Kconfig linux-4.1.39/arch/powerpc/Kconfig
---- linux-4.1.39.orig/arch/powerpc/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/Kconfig 2017-04-18 17:56:30.557394959 +0200
-@@ -60,10 +60,11 @@
-
- config RWSEM_GENERIC_SPINLOCK
- bool
-+ default y if PREEMPT_RT_FULL
-
- config RWSEM_XCHGADD_ALGORITHM
- bool
-- default y
-+ default y if !PREEMPT_RT_FULL
-
- config GENERIC_LOCKBREAK
- bool
-@@ -138,6 +139,7 @@
- select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST
- select GENERIC_STRNCPY_FROM_USER
- select GENERIC_STRNLEN_USER
-+ select HAVE_PREEMPT_LAZY
- select HAVE_MOD_ARCH_SPECIFIC
- select MODULES_USE_ELF_RELA
- select CLONE_BACKWARDS
-@@ -312,7 +314,7 @@
-
- config HIGHMEM
- bool "High memory support"
-- depends on PPC32
-+ depends on PPC32 && !PREEMPT_RT_FULL
-
- source kernel/Kconfig.hz
- source kernel/Kconfig.preempt
-diff -Nur linux-4.1.39.orig/arch/powerpc/kernel/asm-offsets.c linux-4.1.39/arch/powerpc/kernel/asm-offsets.c
---- linux-4.1.39.orig/arch/powerpc/kernel/asm-offsets.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/kernel/asm-offsets.c 2017-04-18 17:56:30.557394959 +0200
-@@ -160,6 +160,7 @@
- DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
- DEFINE(TI_LOCAL_FLAGS, offsetof(struct thread_info, local_flags));
- DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
-+ DEFINE(TI_PREEMPT_LAZY, offsetof(struct thread_info, preempt_lazy_count));
- DEFINE(TI_TASK, offsetof(struct thread_info, task));
- DEFINE(TI_CPU, offsetof(struct thread_info, cpu));
-
-diff -Nur linux-4.1.39.orig/arch/powerpc/kernel/entry_32.S linux-4.1.39/arch/powerpc/kernel/entry_32.S
---- linux-4.1.39.orig/arch/powerpc/kernel/entry_32.S 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/kernel/entry_32.S 2017-04-18 17:56:30.557394959 +0200
-@@ -813,7 +813,14 @@
- cmpwi 0,r0,0 /* if non-zero, just restore regs and return */
- bne restore
- andi. r8,r8,_TIF_NEED_RESCHED
-+ bne+ 1f
-+ lwz r0,TI_PREEMPT_LAZY(r9)
-+ cmpwi 0,r0,0 /* if non-zero, just restore regs and return */
-+ bne restore
-+ lwz r0,TI_FLAGS(r9)
-+ andi. r0,r0,_TIF_NEED_RESCHED_LAZY
- beq+ restore
-+1:
- lwz r3,_MSR(r1)
- andi. r0,r3,MSR_EE /* interrupts off? */
- beq restore /* don't schedule if so */
-@@ -824,11 +831,11 @@
- */
- bl trace_hardirqs_off
- #endif
--1: bl preempt_schedule_irq
-+2: bl preempt_schedule_irq
- CURRENT_THREAD_INFO(r9, r1)
- lwz r3,TI_FLAGS(r9)
-- andi. r0,r3,_TIF_NEED_RESCHED
-- bne- 1b
-+ andi. r0,r3,_TIF_NEED_RESCHED_MASK
-+ bne- 2b
- #ifdef CONFIG_TRACE_IRQFLAGS
- /* And now, to properly rebalance the above, we tell lockdep they
- * are being turned back on, which will happen when we return
-@@ -1149,7 +1156,7 @@
- #endif /* !(CONFIG_4xx || CONFIG_BOOKE) */
-
- do_work: /* r10 contains MSR_KERNEL here */
-- andi. r0,r9,_TIF_NEED_RESCHED
-+ andi. r0,r9,_TIF_NEED_RESCHED_MASK
- beq do_user_signal
-
- do_resched: /* r10 contains MSR_KERNEL here */
-@@ -1170,7 +1177,7 @@
- MTMSRD(r10) /* disable interrupts */
- CURRENT_THREAD_INFO(r9, r1)
- lwz r9,TI_FLAGS(r9)
-- andi. r0,r9,_TIF_NEED_RESCHED
-+ andi. r0,r9,_TIF_NEED_RESCHED_MASK
- bne- do_resched
- andi. r0,r9,_TIF_USER_WORK_MASK
- beq restore_user
-diff -Nur linux-4.1.39.orig/arch/powerpc/kernel/entry_64.S linux-4.1.39/arch/powerpc/kernel/entry_64.S
---- linux-4.1.39.orig/arch/powerpc/kernel/entry_64.S 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/kernel/entry_64.S 2017-04-18 17:56:30.561395114 +0200
-@@ -636,7 +636,7 @@
- #else
- beq restore
- #endif
--1: andi. r0,r4,_TIF_NEED_RESCHED
-+1: andi. r0,r4,_TIF_NEED_RESCHED_MASK
- beq 2f
- bl restore_interrupts
- SCHEDULE_USER
-@@ -698,10 +698,18 @@
-
- #ifdef CONFIG_PREEMPT
- /* Check if we need to preempt */
-+ lwz r8,TI_PREEMPT(r9)
-+ cmpwi 0,r8,0 /* if non-zero, just restore regs and return */
-+ bne restore
- andi. r0,r4,_TIF_NEED_RESCHED
-+ bne+ check_count
-+
-+ andi. r0,r4,_TIF_NEED_RESCHED_LAZY
- beq+ restore
-+ lwz r8,TI_PREEMPT_LAZY(r9)
-+
- /* Check that preempt_count() == 0 and interrupts are enabled */
-- lwz r8,TI_PREEMPT(r9)
-+check_count:
- cmpwi cr1,r8,0
- ld r0,SOFTE(r1)
- cmpdi r0,0
-@@ -718,7 +726,7 @@
- /* Re-test flags and eventually loop */
- CURRENT_THREAD_INFO(r9, r1)
- ld r4,TI_FLAGS(r9)
-- andi. r0,r4,_TIF_NEED_RESCHED
-+ andi. r0,r4,_TIF_NEED_RESCHED_MASK
- bne 1b
-
- /*
-diff -Nur linux-4.1.39.orig/arch/powerpc/kernel/irq.c linux-4.1.39/arch/powerpc/kernel/irq.c
---- linux-4.1.39.orig/arch/powerpc/kernel/irq.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/kernel/irq.c 2017-04-18 17:56:30.561395114 +0200
-@@ -614,6 +614,7 @@
- }
- }
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- void do_softirq_own_stack(void)
- {
- struct thread_info *curtp, *irqtp;
-@@ -631,6 +632,7 @@
- if (irqtp->flags)
- set_bits(irqtp->flags, &curtp->flags);
- }
-+#endif
-
- irq_hw_number_t virq_to_hw(unsigned int virq)
- {
-diff -Nur linux-4.1.39.orig/arch/powerpc/kernel/misc_32.S linux-4.1.39/arch/powerpc/kernel/misc_32.S
---- linux-4.1.39.orig/arch/powerpc/kernel/misc_32.S 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/kernel/misc_32.S 2017-04-18 17:56:30.561395114 +0200
-@@ -40,6 +40,7 @@
- * We store the saved ksp_limit in the unused part
- * of the STACK_FRAME_OVERHEAD
- */
-+#ifndef CONFIG_PREEMPT_RT_FULL
- _GLOBAL(call_do_softirq)
- mflr r0
- stw r0,4(r1)
-@@ -56,6 +57,7 @@
- stw r10,THREAD+KSP_LIMIT(r2)
- mtlr r0
- blr
-+#endif
-
- /*
- * void call_do_irq(struct pt_regs *regs, struct thread_info *irqtp);
-diff -Nur linux-4.1.39.orig/arch/powerpc/kernel/misc_64.S linux-4.1.39/arch/powerpc/kernel/misc_64.S
---- linux-4.1.39.orig/arch/powerpc/kernel/misc_64.S 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/kernel/misc_64.S 2017-04-18 17:56:30.561395114 +0200
-@@ -29,6 +29,7 @@
-
- .text
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- _GLOBAL(call_do_softirq)
- mflr r0
- std r0,16(r1)
-@@ -39,6 +40,7 @@
- ld r0,16(r1)
- mtlr r0
- blr
-+#endif
-
- _GLOBAL(call_do_irq)
- mflr r0
-diff -Nur linux-4.1.39.orig/arch/powerpc/kvm/book3s_hv.c linux-4.1.39/arch/powerpc/kvm/book3s_hv.c
---- linux-4.1.39.orig/arch/powerpc/kvm/book3s_hv.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/kvm/book3s_hv.c 2017-04-18 17:56:30.561395114 +0200
-@@ -115,11 +115,11 @@
- static void kvmppc_fast_vcpu_kick_hv(struct kvm_vcpu *vcpu)
- {
- int cpu = vcpu->cpu;
-- wait_queue_head_t *wqp;
-+ struct swait_head *wqp;
-
- wqp = kvm_arch_vcpu_wq(vcpu);
-- if (waitqueue_active(wqp)) {
-- wake_up_interruptible(wqp);
-+ if (swaitqueue_active(wqp)) {
-+ swait_wake_interruptible(wqp);
- ++vcpu->stat.halt_wakeup;
- }
-
-@@ -692,8 +692,8 @@
- tvcpu->arch.prodded = 1;
- smp_mb();
- if (vcpu->arch.ceded) {
-- if (waitqueue_active(&vcpu->wq)) {
-- wake_up_interruptible(&vcpu->wq);
-+ if (swaitqueue_active(&vcpu->wq)) {
-+ swait_wake_interruptible(&vcpu->wq);
- vcpu->stat.halt_wakeup++;
- }
- }
-@@ -1438,7 +1438,7 @@
- INIT_LIST_HEAD(&vcore->runnable_threads);
- spin_lock_init(&vcore->lock);
- spin_lock_init(&vcore->stoltb_lock);
-- init_waitqueue_head(&vcore->wq);
-+ init_swait_head(&vcore->wq);
- vcore->preempt_tb = TB_NIL;
- vcore->lpcr = kvm->arch.lpcr;
- vcore->first_vcpuid = core * threads_per_subcore;
-@@ -2085,10 +2085,9 @@
- {
- struct kvm_vcpu *vcpu;
- int do_sleep = 1;
-+ DEFINE_SWAITER(wait);
-
-- DEFINE_WAIT(wait);
--
-- prepare_to_wait(&vc->wq, &wait, TASK_INTERRUPTIBLE);
-+ swait_prepare(&vc->wq, &wait, TASK_INTERRUPTIBLE);
-
- /*
- * Check one last time for pending exceptions and ceded state after
-@@ -2102,7 +2101,7 @@
- }
-
- if (!do_sleep) {
-- finish_wait(&vc->wq, &wait);
-+ swait_finish(&vc->wq, &wait);
- return;
- }
-
-@@ -2110,7 +2109,7 @@
- trace_kvmppc_vcore_blocked(vc, 0);
- spin_unlock(&vc->lock);
- schedule();
-- finish_wait(&vc->wq, &wait);
-+ swait_finish(&vc->wq, &wait);
- spin_lock(&vc->lock);
- vc->vcore_state = VCORE_INACTIVE;
- trace_kvmppc_vcore_blocked(vc, 1);
-@@ -2154,7 +2153,7 @@
- kvmppc_start_thread(vcpu);
- trace_kvm_guest_enter(vcpu);
- } else if (vc->vcore_state == VCORE_SLEEPING) {
-- wake_up(&vc->wq);
-+ swait_wake(&vc->wq);
- }
-
- }
-diff -Nur linux-4.1.39.orig/arch/powerpc/kvm/Kconfig linux-4.1.39/arch/powerpc/kvm/Kconfig
---- linux-4.1.39.orig/arch/powerpc/kvm/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/kvm/Kconfig 2017-04-18 17:56:30.561395114 +0200
-@@ -172,6 +172,7 @@
- config KVM_MPIC
- bool "KVM in-kernel MPIC emulation"
- depends on KVM && E500
-+ depends on !PREEMPT_RT_FULL
- select HAVE_KVM_IRQCHIP
- select HAVE_KVM_IRQFD
- select HAVE_KVM_IRQ_ROUTING
-diff -Nur linux-4.1.39.orig/arch/powerpc/mm/fault.c linux-4.1.39/arch/powerpc/mm/fault.c
---- linux-4.1.39.orig/arch/powerpc/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/mm/fault.c 2017-04-18 17:56:30.561395114 +0200
-@@ -33,13 +33,13 @@
- #include <linux/ratelimit.h>
- #include <linux/context_tracking.h>
- #include <linux/hugetlb.h>
-+#include <linux/uaccess.h>
-
- #include <asm/firmware.h>
- #include <asm/page.h>
- #include <asm/pgtable.h>
- #include <asm/mmu.h>
- #include <asm/mmu_context.h>
--#include <asm/uaccess.h>
- #include <asm/tlbflush.h>
- #include <asm/siginfo.h>
- #include <asm/debug.h>
-@@ -272,15 +272,16 @@
- if (!arch_irq_disabled_regs(regs))
- local_irq_enable();
-
-- if (in_atomic() || mm == NULL) {
-+ if (faulthandler_disabled() || mm == NULL) {
- if (!user_mode(regs)) {
- rc = SIGSEGV;
- goto bail;
- }
-- /* in_atomic() in user mode is really bad,
-+ /* faulthandler_disabled() in user mode is really bad,
- as is current->mm == NULL. */
- printk(KERN_EMERG "Page fault in user mode with "
-- "in_atomic() = %d mm = %p\n", in_atomic(), mm);
-+ "faulthandler_disabled() = %d mm = %p\n",
-+ faulthandler_disabled(), mm);
- printk(KERN_EMERG "NIP = %lx MSR = %lx\n",
- regs->nip, regs->msr);
- die("Weird page fault", regs, SIGSEGV);
-diff -Nur linux-4.1.39.orig/arch/powerpc/mm/highmem.c linux-4.1.39/arch/powerpc/mm/highmem.c
---- linux-4.1.39.orig/arch/powerpc/mm/highmem.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/mm/highmem.c 2017-04-18 17:56:30.561395114 +0200
-@@ -34,7 +34,7 @@
- unsigned long vaddr;
- int idx, type;
-
-- /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
-+ preempt_disable();
- pagefault_disable();
- if (!PageHighMem(page))
- return page_address(page);
-@@ -59,6 +59,7 @@
-
- if (vaddr < __fix_to_virt(FIX_KMAP_END)) {
- pagefault_enable();
-+ preempt_enable();
- return;
- }
-
-@@ -82,5 +83,6 @@
-
- kmap_atomic_idx_pop();
- pagefault_enable();
-+ preempt_enable();
- }
- EXPORT_SYMBOL(__kunmap_atomic);
-diff -Nur linux-4.1.39.orig/arch/powerpc/platforms/ps3/device-init.c linux-4.1.39/arch/powerpc/platforms/ps3/device-init.c
---- linux-4.1.39.orig/arch/powerpc/platforms/ps3/device-init.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/powerpc/platforms/ps3/device-init.c 2017-04-18 17:56:30.561395114 +0200
-@@ -752,7 +752,7 @@
- }
- pr_debug("%s:%u: notification %s issued\n", __func__, __LINE__, op);
-
-- res = wait_event_interruptible(dev->done.wait,
-+ res = swait_event_interruptible(dev->done.wait,
- dev->done.done || kthread_should_stop());
- if (kthread_should_stop())
- res = -EINTR;
-diff -Nur linux-4.1.39.orig/arch/s390/include/asm/kvm_host.h linux-4.1.39/arch/s390/include/asm/kvm_host.h
---- linux-4.1.39.orig/arch/s390/include/asm/kvm_host.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/s390/include/asm/kvm_host.h 2017-04-18 17:56:30.561395114 +0200
-@@ -419,7 +419,7 @@
- struct kvm_s390_local_interrupt {
- spinlock_t lock;
- struct kvm_s390_float_interrupt *float_int;
-- wait_queue_head_t *wq;
-+ struct swait_head *wq;
- atomic_t *cpuflags;
- DECLARE_BITMAP(sigp_emerg_pending, KVM_MAX_VCPUS);
- struct kvm_s390_irq_payload irq;
-diff -Nur linux-4.1.39.orig/arch/s390/include/asm/uaccess.h linux-4.1.39/arch/s390/include/asm/uaccess.h
---- linux-4.1.39.orig/arch/s390/include/asm/uaccess.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/s390/include/asm/uaccess.h 2017-04-18 17:56:30.561395114 +0200
-@@ -98,7 +98,8 @@
- * @from: Source address, in user space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from user space to kernel space. Caller must check
- * the specified block with access_ok() before calling this function.
-@@ -118,7 +119,8 @@
- * @from: Source address, in kernel space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from kernel space to user space. Caller must check
- * the specified block with access_ok() before calling this function.
-@@ -264,7 +266,8 @@
- * @from: Source address, in kernel space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from kernel space to user space.
- *
-@@ -290,7 +293,8 @@
- * @from: Source address, in user space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from user space to kernel space.
- *
-@@ -348,7 +352,8 @@
- * strlen_user: - Get the size of a string in user space.
- * @str: The string to measure.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Get the size of a NUL-terminated string in user space.
- *
-diff -Nur linux-4.1.39.orig/arch/s390/kvm/interrupt.c linux-4.1.39/arch/s390/kvm/interrupt.c
---- linux-4.1.39.orig/arch/s390/kvm/interrupt.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/s390/kvm/interrupt.c 2017-04-18 17:56:30.561395114 +0200
-@@ -875,13 +875,13 @@
-
- void kvm_s390_vcpu_wakeup(struct kvm_vcpu *vcpu)
- {
-- if (waitqueue_active(&vcpu->wq)) {
-+ if (swaitqueue_active(&vcpu->wq)) {
- /*
- * The vcpu gave up the cpu voluntarily, mark it as a good
- * yield-candidate.
- */
- vcpu->preempted = true;
-- wake_up_interruptible(&vcpu->wq);
-+ swait_wake_interruptible(&vcpu->wq);
- vcpu->stat.halt_wakeup++;
- }
- }
-@@ -987,7 +987,7 @@
- spin_lock(&li->lock);
- irq.u.pgm.code = code;
- __inject_prog(vcpu, &irq);
-- BUG_ON(waitqueue_active(li->wq));
-+ BUG_ON(swaitqueue_active(li->wq));
- spin_unlock(&li->lock);
- return 0;
- }
-@@ -1006,7 +1006,7 @@
- spin_lock(&li->lock);
- irq.u.pgm = *pgm_info;
- rc = __inject_prog(vcpu, &irq);
-- BUG_ON(waitqueue_active(li->wq));
-+ BUG_ON(swaitqueue_active(li->wq));
- spin_unlock(&li->lock);
- return rc;
- }
-diff -Nur linux-4.1.39.orig/arch/s390/mm/fault.c linux-4.1.39/arch/s390/mm/fault.c
---- linux-4.1.39.orig/arch/s390/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/s390/mm/fault.c 2017-04-18 17:56:30.561395114 +0200
-@@ -399,7 +399,7 @@
- * user context.
- */
- fault = VM_FAULT_BADCONTEXT;
-- if (unlikely(!user_space_fault(regs) || in_atomic() || !mm))
-+ if (unlikely(!user_space_fault(regs) || faulthandler_disabled() || !mm))
- goto out;
-
- address = trans_exc_code & __FAIL_ADDR_MASK;
-diff -Nur linux-4.1.39.orig/arch/score/include/asm/uaccess.h linux-4.1.39/arch/score/include/asm/uaccess.h
---- linux-4.1.39.orig/arch/score/include/asm/uaccess.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/score/include/asm/uaccess.h 2017-04-18 17:56:30.561395114 +0200
-@@ -36,7 +36,8 @@
- * @addr: User space pointer to start of block to check
- * @size: Size of block to check
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Checks if a pointer to a block of memory in user space is valid.
- *
-@@ -61,7 +62,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -79,7 +81,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -98,7 +101,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -119,7 +123,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-diff -Nur linux-4.1.39.orig/arch/score/mm/fault.c linux-4.1.39/arch/score/mm/fault.c
---- linux-4.1.39.orig/arch/score/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/score/mm/fault.c 2017-04-18 17:56:30.561395114 +0200
-@@ -34,6 +34,7 @@
- #include <linux/string.h>
- #include <linux/types.h>
- #include <linux/ptrace.h>
-+#include <linux/uaccess.h>
-
- /*
- * This routine handles page faults. It determines the address,
-@@ -73,7 +74,7 @@
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (pagefault_disabled() || !mm)
- goto bad_area_nosemaphore;
-
- if (user_mode(regs))
-diff -Nur linux-4.1.39.orig/arch/sh/kernel/irq.c linux-4.1.39/arch/sh/kernel/irq.c
---- linux-4.1.39.orig/arch/sh/kernel/irq.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/sh/kernel/irq.c 2017-04-18 17:56:30.561395114 +0200
-@@ -147,6 +147,7 @@
- hardirq_ctx[cpu] = NULL;
- }
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- void do_softirq_own_stack(void)
- {
- struct thread_info *curctx;
-@@ -174,6 +175,7 @@
- "r5", "r6", "r7", "r8", "r9", "r15", "t", "pr"
- );
- }
-+#endif
- #else
- static inline void handle_one_irq(unsigned int irq)
- {
-diff -Nur linux-4.1.39.orig/arch/sh/mm/fault.c linux-4.1.39/arch/sh/mm/fault.c
---- linux-4.1.39.orig/arch/sh/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/sh/mm/fault.c 2017-04-18 17:56:30.561395114 +0200
-@@ -17,6 +17,7 @@
- #include <linux/kprobes.h>
- #include <linux/perf_event.h>
- #include <linux/kdebug.h>
-+#include <linux/uaccess.h>
- #include <asm/io_trapped.h>
- #include <asm/mmu_context.h>
- #include <asm/tlbflush.h>
-@@ -438,9 +439,9 @@
-
- /*
- * If we're in an interrupt, have no user context or are running
-- * in an atomic region then we must not take the fault:
-+ * with pagefaults disabled then we must not take the fault:
- */
-- if (unlikely(in_atomic() || !mm)) {
-+ if (unlikely(faulthandler_disabled() || !mm)) {
- bad_area_nosemaphore(regs, error_code, address);
- return;
- }
-diff -Nur linux-4.1.39.orig/arch/sparc/Kconfig linux-4.1.39/arch/sparc/Kconfig
---- linux-4.1.39.orig/arch/sparc/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/sparc/Kconfig 2017-04-18 17:56:30.561395114 +0200
-@@ -189,12 +189,10 @@
- source kernel/Kconfig.hz
-
- config RWSEM_GENERIC_SPINLOCK
-- bool
-- default y if SPARC32
-+ def_bool PREEMPT_RT_FULL
-
- config RWSEM_XCHGADD_ALGORITHM
-- bool
-- default y if SPARC64
-+ def_bool !RWSEM_GENERIC_SPINLOCK && !PREEMPT_RT_FULL
-
- config GENERIC_HWEIGHT
- bool
-diff -Nur linux-4.1.39.orig/arch/sparc/kernel/irq_64.c linux-4.1.39/arch/sparc/kernel/irq_64.c
---- linux-4.1.39.orig/arch/sparc/kernel/irq_64.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/sparc/kernel/irq_64.c 2017-04-18 17:56:30.561395114 +0200
-@@ -849,6 +849,7 @@
- set_irq_regs(old_regs);
- }
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- void do_softirq_own_stack(void)
- {
- void *orig_sp, *sp = softirq_stack[smp_processor_id()];
-@@ -863,6 +864,7 @@
- __asm__ __volatile__("mov %0, %%sp"
- : : "r" (orig_sp));
- }
-+#endif
-
- #ifdef CONFIG_HOTPLUG_CPU
- void fixup_irqs(void)
-diff -Nur linux-4.1.39.orig/arch/sparc/mm/fault_32.c linux-4.1.39/arch/sparc/mm/fault_32.c
---- linux-4.1.39.orig/arch/sparc/mm/fault_32.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/sparc/mm/fault_32.c 2017-04-18 17:56:30.561395114 +0200
-@@ -21,6 +21,7 @@
- #include <linux/perf_event.h>
- #include <linux/interrupt.h>
- #include <linux/kdebug.h>
-+#include <linux/uaccess.h>
-
- #include <asm/page.h>
- #include <asm/pgtable.h>
-@@ -29,7 +30,6 @@
- #include <asm/setup.h>
- #include <asm/smp.h>
- #include <asm/traps.h>
--#include <asm/uaccess.h>
-
- #include "mm_32.h"
-
-@@ -196,7 +196,7 @@
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (pagefault_disabled() || !mm)
- goto no_context;
-
- perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
-diff -Nur linux-4.1.39.orig/arch/sparc/mm/fault_64.c linux-4.1.39/arch/sparc/mm/fault_64.c
---- linux-4.1.39.orig/arch/sparc/mm/fault_64.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/sparc/mm/fault_64.c 2017-04-18 17:56:30.561395114 +0200
-@@ -22,12 +22,12 @@
- #include <linux/kdebug.h>
- #include <linux/percpu.h>
- #include <linux/context_tracking.h>
-+#include <linux/uaccess.h>
-
- #include <asm/page.h>
- #include <asm/pgtable.h>
- #include <asm/openprom.h>
- #include <asm/oplib.h>
--#include <asm/uaccess.h>
- #include <asm/asi.h>
- #include <asm/lsu.h>
- #include <asm/sections.h>
-@@ -330,7 +330,7 @@
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto intr_or_no_mm;
-
- perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, regs, address);
-diff -Nur linux-4.1.39.orig/arch/sparc/mm/highmem.c linux-4.1.39/arch/sparc/mm/highmem.c
---- linux-4.1.39.orig/arch/sparc/mm/highmem.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/sparc/mm/highmem.c 2017-04-18 17:56:30.561395114 +0200
-@@ -53,7 +53,7 @@
- unsigned long vaddr;
- long idx, type;
-
-- /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
-+ preempt_disable();
- pagefault_disable();
- if (!PageHighMem(page))
- return page_address(page);
-@@ -91,6 +91,7 @@
-
- if (vaddr < FIXADDR_START) { // FIXME
- pagefault_enable();
-+ preempt_enable();
- return;
- }
-
-@@ -126,5 +127,6 @@
-
- kmap_atomic_idx_pop();
- pagefault_enable();
-+ preempt_enable();
- }
- EXPORT_SYMBOL(__kunmap_atomic);
-diff -Nur linux-4.1.39.orig/arch/sparc/mm/init_64.c linux-4.1.39/arch/sparc/mm/init_64.c
---- linux-4.1.39.orig/arch/sparc/mm/init_64.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/sparc/mm/init_64.c 2017-04-18 17:56:30.565395270 +0200
-@@ -2738,7 +2738,7 @@
- struct mm_struct *mm = current->mm;
- struct tsb_config *tp;
-
-- if (in_atomic() || !mm) {
-+ if (faulthandler_disabled() || !mm) {
- const struct exception_table_entry *entry;
-
- entry = search_exception_tables(regs->tpc);
-diff -Nur linux-4.1.39.orig/arch/tile/include/asm/uaccess.h linux-4.1.39/arch/tile/include/asm/uaccess.h
---- linux-4.1.39.orig/arch/tile/include/asm/uaccess.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/tile/include/asm/uaccess.h 2017-04-18 17:56:30.565395270 +0200
-@@ -78,7 +78,8 @@
- * @addr: User space pointer to start of block to check
- * @size: Size of block to check
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Checks if a pointer to a block of memory in user space is valid.
- *
-@@ -192,7 +193,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -274,7 +276,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -330,7 +333,8 @@
- * @from: Source address, in kernel space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from kernel space to user space. Caller must check
- * the specified block with access_ok() before calling this function.
-@@ -366,7 +370,8 @@
- * @from: Source address, in user space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from user space to kernel space. Caller must check
- * the specified block with access_ok() before calling this function.
-@@ -437,7 +442,8 @@
- * @from: Source address, in user space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from user space to user space. Caller must check
- * the specified blocks with access_ok() before calling this function.
-diff -Nur linux-4.1.39.orig/arch/tile/mm/fault.c linux-4.1.39/arch/tile/mm/fault.c
---- linux-4.1.39.orig/arch/tile/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/tile/mm/fault.c 2017-04-18 17:56:30.565395270 +0200
-@@ -354,9 +354,9 @@
-
- /*
- * If we're in an interrupt, have no user context or are running in an
-- * atomic region then we must not take the fault.
-+ * region with pagefaults disabled then we must not take the fault.
- */
-- if (in_atomic() || !mm) {
-+ if (pagefault_disabled() || !mm) {
- vma = NULL; /* happy compiler */
- goto bad_area_nosemaphore;
- }
-diff -Nur linux-4.1.39.orig/arch/tile/mm/highmem.c linux-4.1.39/arch/tile/mm/highmem.c
---- linux-4.1.39.orig/arch/tile/mm/highmem.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/tile/mm/highmem.c 2017-04-18 17:56:30.565395270 +0200
-@@ -201,7 +201,7 @@
- int idx, type;
- pte_t *pte;
-
-- /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
-+ preempt_disable();
- pagefault_disable();
-
- /* Avoid icache flushes by disallowing atomic executable mappings. */
-@@ -259,6 +259,7 @@
- }
-
- pagefault_enable();
-+ preempt_enable();
- }
- EXPORT_SYMBOL(__kunmap_atomic);
-
-diff -Nur linux-4.1.39.orig/arch/um/kernel/trap.c linux-4.1.39/arch/um/kernel/trap.c
---- linux-4.1.39.orig/arch/um/kernel/trap.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/um/kernel/trap.c 2017-04-18 17:56:30.565395270 +0200
-@@ -35,10 +35,10 @@
- *code_out = SEGV_MAPERR;
-
- /*
-- * If the fault was during atomic operation, don't take the fault, just
-+ * If the fault was with pagefaults disabled, don't take the fault, just
- * fail.
- */
-- if (in_atomic())
-+ if (faulthandler_disabled())
- goto out_nosemaphore;
-
- if (is_user)
-diff -Nur linux-4.1.39.orig/arch/unicore32/mm/fault.c linux-4.1.39/arch/unicore32/mm/fault.c
---- linux-4.1.39.orig/arch/unicore32/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/unicore32/mm/fault.c 2017-04-18 17:56:30.565395270 +0200
-@@ -218,7 +218,7 @@
- * If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm)
-+ if (faulthandler_disabled() || !mm)
- goto no_context;
-
- if (user_mode(regs))
-diff -Nur linux-4.1.39.orig/arch/x86/crypto/aesni-intel_glue.c linux-4.1.39/arch/x86/crypto/aesni-intel_glue.c
---- linux-4.1.39.orig/arch/x86/crypto/aesni-intel_glue.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/crypto/aesni-intel_glue.c 2017-04-18 17:56:30.565395270 +0200
-@@ -382,14 +382,14 @@
- err = blkcipher_walk_virt(desc, &walk);
- desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
-
-- kernel_fpu_begin();
- while ((nbytes = walk.nbytes)) {
-+ kernel_fpu_begin();
- aesni_ecb_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr,
-- nbytes & AES_BLOCK_MASK);
-+ nbytes & AES_BLOCK_MASK);
-+ kernel_fpu_end();
- nbytes &= AES_BLOCK_SIZE - 1;
- err = blkcipher_walk_done(desc, &walk, nbytes);
- }
-- kernel_fpu_end();
-
- return err;
- }
-@@ -406,14 +406,14 @@
- err = blkcipher_walk_virt(desc, &walk);
- desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
-
-- kernel_fpu_begin();
- while ((nbytes = walk.nbytes)) {
-+ kernel_fpu_begin();
- aesni_ecb_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr,
- nbytes & AES_BLOCK_MASK);
-+ kernel_fpu_end();
- nbytes &= AES_BLOCK_SIZE - 1;
- err = blkcipher_walk_done(desc, &walk, nbytes);
- }
-- kernel_fpu_end();
-
- return err;
- }
-@@ -430,14 +430,14 @@
- err = blkcipher_walk_virt(desc, &walk);
- desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
-
-- kernel_fpu_begin();
- while ((nbytes = walk.nbytes)) {
-+ kernel_fpu_begin();
- aesni_cbc_enc(ctx, walk.dst.virt.addr, walk.src.virt.addr,
- nbytes & AES_BLOCK_MASK, walk.iv);
-+ kernel_fpu_end();
- nbytes &= AES_BLOCK_SIZE - 1;
- err = blkcipher_walk_done(desc, &walk, nbytes);
- }
-- kernel_fpu_end();
-
- return err;
- }
-@@ -454,14 +454,14 @@
- err = blkcipher_walk_virt(desc, &walk);
- desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
-
-- kernel_fpu_begin();
- while ((nbytes = walk.nbytes)) {
-+ kernel_fpu_begin();
- aesni_cbc_dec(ctx, walk.dst.virt.addr, walk.src.virt.addr,
- nbytes & AES_BLOCK_MASK, walk.iv);
-+ kernel_fpu_end();
- nbytes &= AES_BLOCK_SIZE - 1;
- err = blkcipher_walk_done(desc, &walk, nbytes);
- }
-- kernel_fpu_end();
-
- return err;
- }
-@@ -513,18 +513,20 @@
- err = blkcipher_walk_virt_block(desc, &walk, AES_BLOCK_SIZE);
- desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
-
-- kernel_fpu_begin();
- while ((nbytes = walk.nbytes) >= AES_BLOCK_SIZE) {
-+ kernel_fpu_begin();
- aesni_ctr_enc_tfm(ctx, walk.dst.virt.addr, walk.src.virt.addr,
- nbytes & AES_BLOCK_MASK, walk.iv);
-+ kernel_fpu_end();
- nbytes &= AES_BLOCK_SIZE - 1;
- err = blkcipher_walk_done(desc, &walk, nbytes);
- }
- if (walk.nbytes) {
-+ kernel_fpu_begin();
- ctr_crypt_final(ctx, &walk);
-+ kernel_fpu_end();
- err = blkcipher_walk_done(desc, &walk, 0);
- }
-- kernel_fpu_end();
-
- return err;
- }
-diff -Nur linux-4.1.39.orig/arch/x86/crypto/cast5_avx_glue.c linux-4.1.39/arch/x86/crypto/cast5_avx_glue.c
---- linux-4.1.39.orig/arch/x86/crypto/cast5_avx_glue.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/crypto/cast5_avx_glue.c 2017-04-18 17:56:30.565395270 +0200
-@@ -60,7 +60,7 @@
- static int ecb_crypt(struct blkcipher_desc *desc, struct blkcipher_walk *walk,
- bool enc)
- {
-- bool fpu_enabled = false;
-+ bool fpu_enabled;
- struct cast5_ctx *ctx = crypto_blkcipher_ctx(desc->tfm);
- const unsigned int bsize = CAST5_BLOCK_SIZE;
- unsigned int nbytes;
-@@ -76,7 +76,7 @@
- u8 *wsrc = walk->src.virt.addr;
- u8 *wdst = walk->dst.virt.addr;
-
-- fpu_enabled = cast5_fpu_begin(fpu_enabled, nbytes);
-+ fpu_enabled = cast5_fpu_begin(false, nbytes);
-
- /* Process multi-block batch */
- if (nbytes >= bsize * CAST5_PARALLEL_BLOCKS) {
-@@ -104,10 +104,9 @@
- } while (nbytes >= bsize);
-
- done:
-+ cast5_fpu_end(fpu_enabled);
- err = blkcipher_walk_done(desc, walk, nbytes);
- }
--
-- cast5_fpu_end(fpu_enabled);
- return err;
- }
-
-@@ -228,7 +227,7 @@
- static int cbc_decrypt(struct blkcipher_desc *desc, struct scatterlist *dst,
- struct scatterlist *src, unsigned int nbytes)
- {
-- bool fpu_enabled = false;
-+ bool fpu_enabled;
- struct blkcipher_walk walk;
- int err;
-
-@@ -237,12 +236,11 @@
- desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
-
- while ((nbytes = walk.nbytes)) {
-- fpu_enabled = cast5_fpu_begin(fpu_enabled, nbytes);
-+ fpu_enabled = cast5_fpu_begin(false, nbytes);
- nbytes = __cbc_decrypt(desc, &walk);
-+ cast5_fpu_end(fpu_enabled);
- err = blkcipher_walk_done(desc, &walk, nbytes);
- }
--
-- cast5_fpu_end(fpu_enabled);
- return err;
- }
-
-@@ -312,7 +310,7 @@
- static int ctr_crypt(struct blkcipher_desc *desc, struct scatterlist *dst,
- struct scatterlist *src, unsigned int nbytes)
- {
-- bool fpu_enabled = false;
-+ bool fpu_enabled;
- struct blkcipher_walk walk;
- int err;
-
-@@ -321,13 +319,12 @@
- desc->flags &= ~CRYPTO_TFM_REQ_MAY_SLEEP;
-
- while ((nbytes = walk.nbytes) >= CAST5_BLOCK_SIZE) {
-- fpu_enabled = cast5_fpu_begin(fpu_enabled, nbytes);
-+ fpu_enabled = cast5_fpu_begin(false, nbytes);
- nbytes = __ctr_crypt(desc, &walk);
-+ cast5_fpu_end(fpu_enabled);
- err = blkcipher_walk_done(desc, &walk, nbytes);
- }
-
-- cast5_fpu_end(fpu_enabled);
--
- if (walk.nbytes) {
- ctr_crypt_final(desc, &walk);
- err = blkcipher_walk_done(desc, &walk, 0);
-diff -Nur linux-4.1.39.orig/arch/x86/crypto/glue_helper.c linux-4.1.39/arch/x86/crypto/glue_helper.c
---- linux-4.1.39.orig/arch/x86/crypto/glue_helper.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/crypto/glue_helper.c 2017-04-18 17:56:30.565395270 +0200
-@@ -39,7 +39,7 @@
- void *ctx = crypto_blkcipher_ctx(desc->tfm);
- const unsigned int bsize = 128 / 8;
- unsigned int nbytes, i, func_bytes;
-- bool fpu_enabled = false;
-+ bool fpu_enabled;
- int err;
-
- err = blkcipher_walk_virt(desc, walk);
-@@ -49,7 +49,7 @@
- u8 *wdst = walk->dst.virt.addr;
-
- fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit,
-- desc, fpu_enabled, nbytes);
-+ desc, false, nbytes);
-
- for (i = 0; i < gctx->num_funcs; i++) {
- func_bytes = bsize * gctx->funcs[i].num_blocks;
-@@ -71,10 +71,10 @@
- }
-
- done:
-+ glue_fpu_end(fpu_enabled);
- err = blkcipher_walk_done(desc, walk, nbytes);
- }
-
-- glue_fpu_end(fpu_enabled);
- return err;
- }
-
-@@ -194,7 +194,7 @@
- struct scatterlist *src, unsigned int nbytes)
- {
- const unsigned int bsize = 128 / 8;
-- bool fpu_enabled = false;
-+ bool fpu_enabled;
- struct blkcipher_walk walk;
- int err;
-
-@@ -203,12 +203,12 @@
-
- while ((nbytes = walk.nbytes)) {
- fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit,
-- desc, fpu_enabled, nbytes);
-+ desc, false, nbytes);
- nbytes = __glue_cbc_decrypt_128bit(gctx, desc, &walk);
-+ glue_fpu_end(fpu_enabled);
- err = blkcipher_walk_done(desc, &walk, nbytes);
- }
-
-- glue_fpu_end(fpu_enabled);
- return err;
- }
- EXPORT_SYMBOL_GPL(glue_cbc_decrypt_128bit);
-@@ -277,7 +277,7 @@
- struct scatterlist *src, unsigned int nbytes)
- {
- const unsigned int bsize = 128 / 8;
-- bool fpu_enabled = false;
-+ bool fpu_enabled;
- struct blkcipher_walk walk;
- int err;
-
-@@ -286,13 +286,12 @@
-
- while ((nbytes = walk.nbytes) >= bsize) {
- fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit,
-- desc, fpu_enabled, nbytes);
-+ desc, false, nbytes);
- nbytes = __glue_ctr_crypt_128bit(gctx, desc, &walk);
-+ glue_fpu_end(fpu_enabled);
- err = blkcipher_walk_done(desc, &walk, nbytes);
- }
-
-- glue_fpu_end(fpu_enabled);
--
- if (walk.nbytes) {
- glue_ctr_crypt_final_128bit(
- gctx->funcs[gctx->num_funcs - 1].fn_u.ctr, desc, &walk);
-@@ -347,7 +346,7 @@
- void *tweak_ctx, void *crypt_ctx)
- {
- const unsigned int bsize = 128 / 8;
-- bool fpu_enabled = false;
-+ bool fpu_enabled;
- struct blkcipher_walk walk;
- int err;
-
-@@ -360,21 +359,21 @@
-
- /* set minimum length to bsize, for tweak_fn */
- fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit,
-- desc, fpu_enabled,
-+ desc, false,
- nbytes < bsize ? bsize : nbytes);
--
- /* calculate first value of T */
- tweak_fn(tweak_ctx, walk.iv, walk.iv);
-+ glue_fpu_end(fpu_enabled);
-
- while (nbytes) {
-+ fpu_enabled = glue_fpu_begin(bsize, gctx->fpu_blocks_limit,
-+ desc, false, nbytes);
- nbytes = __glue_xts_crypt_128bit(gctx, crypt_ctx, desc, &walk);
-
-+ glue_fpu_end(fpu_enabled);
- err = blkcipher_walk_done(desc, &walk, nbytes);
- nbytes = walk.nbytes;
- }
--
-- glue_fpu_end(fpu_enabled);
--
- return err;
- }
- EXPORT_SYMBOL_GPL(glue_xts_crypt_128bit);
-diff -Nur linux-4.1.39.orig/arch/x86/include/asm/preempt.h linux-4.1.39/arch/x86/include/asm/preempt.h
---- linux-4.1.39.orig/arch/x86/include/asm/preempt.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/include/asm/preempt.h 2017-04-18 17:56:30.565395270 +0200
-@@ -82,17 +82,46 @@
- * a decrement which hits zero means we have no preempt_count and should
- * reschedule.
- */
--static __always_inline bool __preempt_count_dec_and_test(void)
-+static __always_inline bool ____preempt_count_dec_and_test(void)
- {
- GEN_UNARY_RMWcc("decl", __preempt_count, __percpu_arg(0), "e");
- }
-
-+static __always_inline bool __preempt_count_dec_and_test(void)
-+{
-+ if (____preempt_count_dec_and_test())
-+ return true;
-+#ifdef CONFIG_PREEMPT_LAZY
-+ if (current_thread_info()->preempt_lazy_count)
-+ return false;
-+ return test_thread_flag(TIF_NEED_RESCHED_LAZY);
-+#else
-+ return false;
-+#endif
-+}
-+
- /*
- * Returns true when we need to resched and can (barring IRQ state).
- */
- static __always_inline bool should_resched(int preempt_offset)
- {
-+#ifdef CONFIG_PREEMPT_LAZY
-+ u32 tmp;
-+
-+ tmp = raw_cpu_read_4(__preempt_count);
-+ if (tmp == preempt_offset)
-+ return true;
-+
-+ /* preempt count == 0 ? */
-+ tmp &= ~PREEMPT_NEED_RESCHED;
-+ if (tmp)
-+ return false;
-+ if (current_thread_info()->preempt_lazy_count)
-+ return false;
-+ return test_thread_flag(TIF_NEED_RESCHED_LAZY);
-+#else
- return unlikely(raw_cpu_read_4(__preempt_count) == preempt_offset);
-+#endif
- }
-
- #ifdef CONFIG_PREEMPT
-diff -Nur linux-4.1.39.orig/arch/x86/include/asm/signal.h linux-4.1.39/arch/x86/include/asm/signal.h
---- linux-4.1.39.orig/arch/x86/include/asm/signal.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/include/asm/signal.h 2017-04-18 17:56:30.565395270 +0200
-@@ -23,6 +23,19 @@
- unsigned long sig[_NSIG_WORDS];
- } sigset_t;
-
-+/*
-+ * Because some traps use the IST stack, we must keep preemption
-+ * disabled while calling do_trap(), but do_trap() may call
-+ * force_sig_info() which will grab the signal spin_locks for the
-+ * task, which in PREEMPT_RT_FULL are mutexes. By defining
-+ * ARCH_RT_DELAYS_SIGNAL_SEND the force_sig_info() will set
-+ * TIF_NOTIFY_RESUME and set up the signal to be sent on exit of the
-+ * trap.
-+ */
-+#if defined(CONFIG_PREEMPT_RT_FULL)
-+#define ARCH_RT_DELAYS_SIGNAL_SEND
-+#endif
-+
- #ifndef CONFIG_COMPAT
- typedef sigset_t compat_sigset_t;
- #endif
-diff -Nur linux-4.1.39.orig/arch/x86/include/asm/stackprotector.h linux-4.1.39/arch/x86/include/asm/stackprotector.h
---- linux-4.1.39.orig/arch/x86/include/asm/stackprotector.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/include/asm/stackprotector.h 2017-04-18 17:56:30.565395270 +0200
-@@ -57,7 +57,7 @@
- */
- static __always_inline void boot_init_stack_canary(void)
- {
-- u64 canary;
-+ u64 uninitialized_var(canary);
- u64 tsc;
-
- #ifdef CONFIG_X86_64
-@@ -68,8 +68,16 @@
- * of randomness. The TSC only matters for very early init,
- * there it already has some randomness on most systems. Later
- * on during the bootup the random pool has true entropy too.
-+ *
-+ * For preempt-rt we need to weaken the randomness a bit, as
-+ * we can't call into the random generator from atomic context
-+ * due to locking constraints. We just leave canary
-+ * uninitialized and use the TSC based randomness on top of
-+ * it.
- */
-+#ifndef CONFIG_PREEMPT_RT_FULL
- get_random_bytes(&canary, sizeof(canary));
-+#endif
- tsc = __native_read_tsc();
- canary += tsc + (tsc << 32UL);
-
-diff -Nur linux-4.1.39.orig/arch/x86/include/asm/thread_info.h linux-4.1.39/arch/x86/include/asm/thread_info.h
---- linux-4.1.39.orig/arch/x86/include/asm/thread_info.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/include/asm/thread_info.h 2017-04-18 17:56:30.565395270 +0200
-@@ -55,6 +55,8 @@
- __u32 status; /* thread synchronous flags */
- __u32 cpu; /* current CPU */
- int saved_preempt_count;
-+ int preempt_lazy_count; /* 0 => lazy preemptable
-+ <0 => BUG */
- mm_segment_t addr_limit;
- void __user *sysenter_return;
- unsigned int sig_on_uaccess_error:1;
-@@ -95,6 +97,7 @@
- #define TIF_SYSCALL_EMU 6 /* syscall emulation active */
- #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */
- #define TIF_SECCOMP 8 /* secure computing */
-+#define TIF_NEED_RESCHED_LAZY 9 /* lazy rescheduling necessary */
- #define TIF_USER_RETURN_NOTIFY 11 /* notify kernel of userspace return */
- #define TIF_UPROBE 12 /* breakpointed or singlestepping */
- #define TIF_NOTSC 16 /* TSC is not accessible in userland */
-@@ -119,6 +122,7 @@
- #define _TIF_SYSCALL_EMU (1 << TIF_SYSCALL_EMU)
- #define _TIF_SYSCALL_AUDIT (1 << TIF_SYSCALL_AUDIT)
- #define _TIF_SECCOMP (1 << TIF_SECCOMP)
-+#define _TIF_NEED_RESCHED_LAZY (1 << TIF_NEED_RESCHED_LAZY)
- #define _TIF_USER_RETURN_NOTIFY (1 << TIF_USER_RETURN_NOTIFY)
- #define _TIF_UPROBE (1 << TIF_UPROBE)
- #define _TIF_NOTSC (1 << TIF_NOTSC)
-@@ -168,6 +172,8 @@
- #define _TIF_WORK_CTXSW_PREV (_TIF_WORK_CTXSW|_TIF_USER_RETURN_NOTIFY)
- #define _TIF_WORK_CTXSW_NEXT (_TIF_WORK_CTXSW)
-
-+#define _TIF_NEED_RESCHED_MASK (_TIF_NEED_RESCHED | _TIF_NEED_RESCHED_LAZY)
-+
- #define STACK_WARN (THREAD_SIZE/8)
-
- /*
-diff -Nur linux-4.1.39.orig/arch/x86/include/asm/uaccess_32.h linux-4.1.39/arch/x86/include/asm/uaccess_32.h
---- linux-4.1.39.orig/arch/x86/include/asm/uaccess_32.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/include/asm/uaccess_32.h 2017-04-18 17:56:30.565395270 +0200
-@@ -70,7 +70,8 @@
- * @from: Source address, in kernel space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from kernel space to user space. Caller must check
- * the specified block with access_ok() before calling this function.
-@@ -117,7 +118,8 @@
- * @from: Source address, in user space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from user space to kernel space. Caller must check
- * the specified block with access_ok() before calling this function.
-diff -Nur linux-4.1.39.orig/arch/x86/include/asm/uaccess.h linux-4.1.39/arch/x86/include/asm/uaccess.h
---- linux-4.1.39.orig/arch/x86/include/asm/uaccess.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/include/asm/uaccess.h 2017-04-18 17:56:30.565395270 +0200
-@@ -74,7 +74,8 @@
- * @addr: User space pointer to start of block to check
- * @size: Size of block to check
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Checks if a pointer to a block of memory in user space is valid.
- *
-@@ -145,7 +146,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -240,7 +242,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-@@ -459,7 +462,8 @@
- * @x: Variable to store result.
- * @ptr: Source address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple variable from user space to kernel
- * space. It supports simple types like char and int, but not larger
-@@ -483,7 +487,8 @@
- * @x: Value to copy to user space.
- * @ptr: Destination address, in user space.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * This macro copies a single simple value from kernel space to user
- * space. It supports simple types like char and int, but not larger
-diff -Nur linux-4.1.39.orig/arch/x86/include/asm/uv/uv_bau.h linux-4.1.39/arch/x86/include/asm/uv/uv_bau.h
---- linux-4.1.39.orig/arch/x86/include/asm/uv/uv_bau.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/include/asm/uv/uv_bau.h 2017-04-18 17:56:30.565395270 +0200
-@@ -615,9 +615,9 @@
- cycles_t send_message;
- cycles_t period_end;
- cycles_t period_time;
-- spinlock_t uvhub_lock;
-- spinlock_t queue_lock;
-- spinlock_t disable_lock;
-+ raw_spinlock_t uvhub_lock;
-+ raw_spinlock_t queue_lock;
-+ raw_spinlock_t disable_lock;
- /* tunables */
- int max_concurr;
- int max_concurr_const;
-@@ -776,15 +776,15 @@
- * to be lowered below the current 'v'. atomic_add_unless can only stop
- * on equal.
- */
--static inline int atomic_inc_unless_ge(spinlock_t *lock, atomic_t *v, int u)
-+static inline int atomic_inc_unless_ge(raw_spinlock_t *lock, atomic_t *v, int u)
- {
-- spin_lock(lock);
-+ raw_spin_lock(lock);
- if (atomic_read(v) >= u) {
-- spin_unlock(lock);
-+ raw_spin_unlock(lock);
- return 0;
- }
- atomic_inc(v);
-- spin_unlock(lock);
-+ raw_spin_unlock(lock);
- return 1;
- }
-
-diff -Nur linux-4.1.39.orig/arch/x86/include/asm/uv/uv_hub.h linux-4.1.39/arch/x86/include/asm/uv/uv_hub.h
---- linux-4.1.39.orig/arch/x86/include/asm/uv/uv_hub.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/include/asm/uv/uv_hub.h 2017-04-18 17:56:30.565395270 +0200
-@@ -492,7 +492,7 @@
- unsigned short nr_online_cpus;
- unsigned short pnode;
- short memory_nid;
-- spinlock_t nmi_lock; /* obsolete, see uv_hub_nmi */
-+ raw_spinlock_t nmi_lock; /* obsolete, see uv_hub_nmi */
- unsigned long nmi_count; /* obsolete, see uv_hub_nmi */
- };
- extern struct uv_blade_info *uv_blade_info;
-diff -Nur linux-4.1.39.orig/arch/x86/Kconfig linux-4.1.39/arch/x86/Kconfig
---- linux-4.1.39.orig/arch/x86/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/Kconfig 2017-04-18 17:56:30.565395270 +0200
-@@ -22,6 +22,7 @@
- ### Arch settings
- config X86
- def_bool y
-+ select HAVE_PREEMPT_LAZY
- select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
- select ARCH_MIGHT_HAVE_ACPI_PDC if ACPI
- select ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
-@@ -203,8 +204,11 @@
- def_bool y
- depends on ISA_DMA_API
-
-+config RWSEM_GENERIC_SPINLOCK
-+ def_bool PREEMPT_RT_FULL
-+
- config RWSEM_XCHGADD_ALGORITHM
-- def_bool y
-+ def_bool !RWSEM_GENERIC_SPINLOCK && !PREEMPT_RT_FULL
-
- config GENERIC_CALIBRATE_DELAY
- def_bool y
-@@ -838,7 +842,7 @@
- config MAXSMP
- bool "Enable Maximum number of SMP Processors and NUMA Nodes"
- depends on X86_64 && SMP && DEBUG_KERNEL
-- select CPUMASK_OFFSTACK
-+ select CPUMASK_OFFSTACK if !PREEMPT_RT_FULL
- ---help---
- Enable maximum number of CPUS and NUMA Nodes for this architecture.
- If unsure, say N.
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/acpi/boot.c linux-4.1.39/arch/x86/kernel/acpi/boot.c
---- linux-4.1.39.orig/arch/x86/kernel/acpi/boot.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/acpi/boot.c 2017-04-18 17:56:30.565395270 +0200
-@@ -87,7 +87,9 @@
- * ->ioapic_mutex
- * ->ioapic_lock
- */
-+#ifdef CONFIG_X86_IO_APIC
- static DEFINE_MUTEX(acpi_ioapic_lock);
-+#endif
-
- /* --------------------------------------------------------------------------
- Boot-time Configuration
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/apic/io_apic.c linux-4.1.39/arch/x86/kernel/apic/io_apic.c
---- linux-4.1.39.orig/arch/x86/kernel/apic/io_apic.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/apic/io_apic.c 2017-04-18 17:56:30.565395270 +0200
-@@ -1891,7 +1891,8 @@
- static inline bool ioapic_irqd_mask(struct irq_data *data, struct irq_cfg *cfg)
- {
- /* If we are moving the irq we need to mask it */
-- if (unlikely(irqd_is_setaffinity_pending(data))) {
-+ if (unlikely(irqd_is_setaffinity_pending(data) &&
-+ !irqd_irq_inprogress(data))) {
- mask_ioapic(cfg);
- return true;
- }
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/apic/x2apic_uv_x.c linux-4.1.39/arch/x86/kernel/apic/x2apic_uv_x.c
---- linux-4.1.39.orig/arch/x86/kernel/apic/x2apic_uv_x.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/apic/x2apic_uv_x.c 2017-04-18 17:56:30.569395424 +0200
-@@ -949,7 +949,7 @@
- uv_blade_info[blade].pnode = pnode;
- uv_blade_info[blade].nr_possible_cpus = 0;
- uv_blade_info[blade].nr_online_cpus = 0;
-- spin_lock_init(&uv_blade_info[blade].nmi_lock);
-+ raw_spin_lock_init(&uv_blade_info[blade].nmi_lock);
- min_pnode = min(pnode, min_pnode);
- max_pnode = max(pnode, max_pnode);
- blade++;
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/asm-offsets.c linux-4.1.39/arch/x86/kernel/asm-offsets.c
---- linux-4.1.39.orig/arch/x86/kernel/asm-offsets.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/asm-offsets.c 2017-04-18 17:56:30.569395424 +0200
-@@ -32,6 +32,7 @@
- OFFSET(TI_flags, thread_info, flags);
- OFFSET(TI_status, thread_info, status);
- OFFSET(TI_addr_limit, thread_info, addr_limit);
-+ OFFSET(TI_preempt_lazy_count, thread_info, preempt_lazy_count);
-
- BLANK();
- OFFSET(crypto_tfm_ctx_offset, crypto_tfm, __crt_ctx);
-@@ -71,4 +72,5 @@
-
- BLANK();
- DEFINE(PTREGS_SIZE, sizeof(struct pt_regs));
-+ DEFINE(_PREEMPT_ENABLED, PREEMPT_ENABLED);
- }
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/cpu/mcheck/mce.c linux-4.1.39/arch/x86/kernel/cpu/mcheck/mce.c
---- linux-4.1.39.orig/arch/x86/kernel/cpu/mcheck/mce.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/cpu/mcheck/mce.c 2017-04-18 17:56:30.569395424 +0200
-@@ -41,6 +41,8 @@
- #include <linux/debugfs.h>
- #include <linux/irq_work.h>
- #include <linux/export.h>
-+#include <linux/jiffies.h>
-+#include <linux/work-simple.h>
-
- #include <asm/processor.h>
- #include <asm/traps.h>
-@@ -1267,7 +1269,7 @@
- static unsigned long check_interval = INITIAL_CHECK_INTERVAL;
-
- static DEFINE_PER_CPU(unsigned long, mce_next_interval); /* in jiffies */
--static DEFINE_PER_CPU(struct timer_list, mce_timer);
-+static DEFINE_PER_CPU(struct hrtimer, mce_timer);
-
- static unsigned long mce_adjust_timer_default(unsigned long interval)
- {
-@@ -1276,32 +1278,18 @@
-
- static unsigned long (*mce_adjust_timer)(unsigned long interval) = mce_adjust_timer_default;
-
--static void __restart_timer(struct timer_list *t, unsigned long interval)
-+static enum hrtimer_restart __restart_timer(struct hrtimer *timer, unsigned long interval)
- {
-- unsigned long when = jiffies + interval;
-- unsigned long flags;
--
-- local_irq_save(flags);
--
-- if (timer_pending(t)) {
-- if (time_before(when, t->expires))
-- mod_timer_pinned(t, when);
-- } else {
-- t->expires = round_jiffies(when);
-- add_timer_on(t, smp_processor_id());
-- }
--
-- local_irq_restore(flags);
-+ if (!interval)
-+ return HRTIMER_NORESTART;
-+ hrtimer_forward_now(timer, ns_to_ktime(jiffies_to_nsecs(interval)));
-+ return HRTIMER_RESTART;
- }
-
--static void mce_timer_fn(unsigned long data)
-+static enum hrtimer_restart mce_timer_fn(struct hrtimer *timer)
- {
-- struct timer_list *t = this_cpu_ptr(&mce_timer);
-- int cpu = smp_processor_id();
- unsigned long iv;
-
-- WARN_ON(cpu != data);
--
- iv = __this_cpu_read(mce_next_interval);
-
- if (mce_available(this_cpu_ptr(&cpu_info))) {
-@@ -1324,7 +1312,7 @@
-
- done:
- __this_cpu_write(mce_next_interval, iv);
-- __restart_timer(t, iv);
-+ return __restart_timer(timer, iv);
- }
-
- /*
-@@ -1332,7 +1320,7 @@
- */
- void mce_timer_kick(unsigned long interval)
- {
-- struct timer_list *t = this_cpu_ptr(&mce_timer);
-+ struct hrtimer *t = this_cpu_ptr(&mce_timer);
- unsigned long iv = __this_cpu_read(mce_next_interval);
-
- __restart_timer(t, interval);
-@@ -1347,7 +1335,7 @@
- int cpu;
-
- for_each_online_cpu(cpu)
-- del_timer_sync(&per_cpu(mce_timer, cpu));
-+ hrtimer_cancel(&per_cpu(mce_timer, cpu));
- }
-
- static void mce_do_trigger(struct work_struct *work)
-@@ -1357,6 +1345,56 @@
-
- static DECLARE_WORK(mce_trigger_work, mce_do_trigger);
-
-+static void __mce_notify_work(struct swork_event *event)
-+{
-+ /* Not more than two messages every minute */
-+ static DEFINE_RATELIMIT_STATE(ratelimit, 60*HZ, 2);
-+
-+ /* wake processes polling /dev/mcelog */
-+ wake_up_interruptible(&mce_chrdev_wait);
-+
-+ /*
-+ * There is no risk of missing notifications because
-+ * work_pending is always cleared before the function is
-+ * executed.
-+ */
-+ if (mce_helper[0] && !work_pending(&mce_trigger_work))
-+ schedule_work(&mce_trigger_work);
-+
-+ if (__ratelimit(&ratelimit))
-+ pr_info(HW_ERR "Machine check events logged\n");
-+}
-+
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+static bool notify_work_ready __read_mostly;
-+static struct swork_event notify_work;
-+
-+static int mce_notify_work_init(void)
-+{
-+ int err;
-+
-+ err = swork_get();
-+ if (err)
-+ return err;
-+
-+ INIT_SWORK(&notify_work, __mce_notify_work);
-+ notify_work_ready = true;
-+ return 0;
-+}
-+
-+static void mce_notify_work(void)
-+{
-+ if (notify_work_ready)
-+ swork_queue(&notify_work);
-+}
-+#else
-+static void mce_notify_work(void)
-+{
-+ __mce_notify_work(NULL);
-+}
-+static inline int mce_notify_work_init(void) { return 0; }
-+#endif
-+
- /*
- * Notify the user(s) about new machine check events.
- * Can be called from interrupt context, but not from machine check/NMI
-@@ -1364,19 +1402,8 @@
- */
- int mce_notify_irq(void)
- {
-- /* Not more than two messages every minute */
-- static DEFINE_RATELIMIT_STATE(ratelimit, 60*HZ, 2);
--
- if (test_and_clear_bit(0, &mce_need_notify)) {
-- /* wake processes polling /dev/mcelog */
-- wake_up_interruptible(&mce_chrdev_wait);
--
-- if (mce_helper[0])
-- schedule_work(&mce_trigger_work);
--
-- if (__ratelimit(&ratelimit))
-- pr_info(HW_ERR "Machine check events logged\n");
--
-+ mce_notify_work();
- return 1;
- }
- return 0;
-@@ -1649,7 +1676,7 @@
- }
- }
-
--static void mce_start_timer(unsigned int cpu, struct timer_list *t)
-+static void mce_start_timer(unsigned int cpu, struct hrtimer *t)
- {
- unsigned long iv = check_interval * HZ;
-
-@@ -1658,16 +1685,17 @@
-
- per_cpu(mce_next_interval, cpu) = iv;
-
-- t->expires = round_jiffies(jiffies + iv);
-- add_timer_on(t, cpu);
-+ hrtimer_start_range_ns(t, ns_to_ktime(jiffies_to_usecs(iv) * 1000ULL),
-+ 0, HRTIMER_MODE_REL_PINNED);
- }
-
- static void __mcheck_cpu_init_timer(void)
- {
-- struct timer_list *t = this_cpu_ptr(&mce_timer);
-+ struct hrtimer *t = this_cpu_ptr(&mce_timer);
- unsigned int cpu = smp_processor_id();
-
-- setup_timer(t, mce_timer_fn, cpu);
-+ hrtimer_init(t, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
-+ t->function = mce_timer_fn;
- mce_start_timer(cpu, t);
- }
-
-@@ -2345,6 +2373,8 @@
- if (!mce_available(raw_cpu_ptr(&cpu_info)))
- return;
-
-+ hrtimer_cancel(this_cpu_ptr(&mce_timer));
-+
- if (!(action & CPU_TASKS_FROZEN))
- cmci_clear();
- for (i = 0; i < mca_cfg.banks; i++) {
-@@ -2371,6 +2401,7 @@
- if (b->init)
- wrmsrl(MSR_IA32_MCx_CTL(i), b->ctl);
- }
-+ __mcheck_cpu_init_timer();
- }
-
- /* Get notified when a cpu comes on/off. Be hotplug friendly. */
-@@ -2378,7 +2409,6 @@
- mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu)
- {
- unsigned int cpu = (unsigned long)hcpu;
-- struct timer_list *t = &per_cpu(mce_timer, cpu);
-
- switch (action & ~CPU_TASKS_FROZEN) {
- case CPU_ONLINE:
-@@ -2398,11 +2428,9 @@
- break;
- case CPU_DOWN_PREPARE:
- smp_call_function_single(cpu, mce_disable_cpu, &action, 1);
-- del_timer_sync(t);
- break;
- case CPU_DOWN_FAILED:
- smp_call_function_single(cpu, mce_reenable_cpu, &action, 1);
-- mce_start_timer(cpu, t);
- break;
- }
-
-@@ -2441,6 +2469,10 @@
- goto err_out;
- }
-
-+ err = mce_notify_work_init();
-+ if (err)
-+ goto err_out;
-+
- if (!zalloc_cpumask_var(&mce_device_initialized, GFP_KERNEL)) {
- err = -ENOMEM;
- goto err_out;
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/cpu/perf_event_intel_rapl.c linux-4.1.39/arch/x86/kernel/cpu/perf_event_intel_rapl.c
---- linux-4.1.39.orig/arch/x86/kernel/cpu/perf_event_intel_rapl.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/cpu/perf_event_intel_rapl.c 2017-04-18 17:56:30.569395424 +0200
-@@ -119,7 +119,7 @@
- };
-
- struct rapl_pmu {
-- spinlock_t lock;
-+ raw_spinlock_t lock;
- int n_active; /* number of active events */
- struct list_head active_list;
- struct pmu *pmu; /* pointer to rapl_pmu_class */
-@@ -223,13 +223,13 @@
- if (!pmu->n_active)
- return HRTIMER_NORESTART;
-
-- spin_lock_irqsave(&pmu->lock, flags);
-+ raw_spin_lock_irqsave(&pmu->lock, flags);
-
- list_for_each_entry(event, &pmu->active_list, active_entry) {
- rapl_event_update(event);
- }
-
-- spin_unlock_irqrestore(&pmu->lock, flags);
-+ raw_spin_unlock_irqrestore(&pmu->lock, flags);
-
- hrtimer_forward_now(hrtimer, pmu->timer_interval);
-
-@@ -266,9 +266,9 @@
- struct rapl_pmu *pmu = __this_cpu_read(rapl_pmu);
- unsigned long flags;
-
-- spin_lock_irqsave(&pmu->lock, flags);
-+ raw_spin_lock_irqsave(&pmu->lock, flags);
- __rapl_pmu_event_start(pmu, event);
-- spin_unlock_irqrestore(&pmu->lock, flags);
-+ raw_spin_unlock_irqrestore(&pmu->lock, flags);
- }
-
- static void rapl_pmu_event_stop(struct perf_event *event, int mode)
-@@ -277,7 +277,7 @@
- struct hw_perf_event *hwc = &event->hw;
- unsigned long flags;
-
-- spin_lock_irqsave(&pmu->lock, flags);
-+ raw_spin_lock_irqsave(&pmu->lock, flags);
-
- /* mark event as deactivated and stopped */
- if (!(hwc->state & PERF_HES_STOPPED)) {
-@@ -302,7 +302,7 @@
- hwc->state |= PERF_HES_UPTODATE;
- }
-
-- spin_unlock_irqrestore(&pmu->lock, flags);
-+ raw_spin_unlock_irqrestore(&pmu->lock, flags);
- }
-
- static int rapl_pmu_event_add(struct perf_event *event, int mode)
-@@ -311,14 +311,14 @@
- struct hw_perf_event *hwc = &event->hw;
- unsigned long flags;
-
-- spin_lock_irqsave(&pmu->lock, flags);
-+ raw_spin_lock_irqsave(&pmu->lock, flags);
-
- hwc->state = PERF_HES_UPTODATE | PERF_HES_STOPPED;
-
- if (mode & PERF_EF_START)
- __rapl_pmu_event_start(pmu, event);
-
-- spin_unlock_irqrestore(&pmu->lock, flags);
-+ raw_spin_unlock_irqrestore(&pmu->lock, flags);
-
- return 0;
- }
-@@ -594,7 +594,7 @@
- pmu = kzalloc_node(sizeof(*pmu), GFP_KERNEL, cpu_to_node(cpu));
- if (!pmu)
- return -1;
-- spin_lock_init(&pmu->lock);
-+ raw_spin_lock_init(&pmu->lock);
-
- INIT_LIST_HEAD(&pmu->active_list);
-
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/dumpstack_32.c linux-4.1.39/arch/x86/kernel/dumpstack_32.c
---- linux-4.1.39.orig/arch/x86/kernel/dumpstack_32.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/dumpstack_32.c 2017-04-18 17:56:30.569395424 +0200
-@@ -42,7 +42,7 @@
- unsigned long *stack, unsigned long bp,
- const struct stacktrace_ops *ops, void *data)
- {
-- const unsigned cpu = get_cpu();
-+ const unsigned cpu = get_cpu_light();
- int graph = 0;
- u32 *prev_esp;
-
-@@ -86,7 +86,7 @@
- break;
- touch_nmi_watchdog();
- }
-- put_cpu();
-+ put_cpu_light();
- }
- EXPORT_SYMBOL(dump_trace);
-
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/dumpstack_64.c linux-4.1.39/arch/x86/kernel/dumpstack_64.c
---- linux-4.1.39.orig/arch/x86/kernel/dumpstack_64.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/dumpstack_64.c 2017-04-18 17:56:30.569395424 +0200
-@@ -152,7 +152,7 @@
- unsigned long *stack, unsigned long bp,
- const struct stacktrace_ops *ops, void *data)
- {
-- const unsigned cpu = get_cpu();
-+ const unsigned cpu = get_cpu_light();
- struct thread_info *tinfo;
- unsigned long *irq_stack = (unsigned long *)per_cpu(irq_stack_ptr, cpu);
- unsigned long dummy;
-@@ -241,7 +241,7 @@
- * This handles the process stack:
- */
- bp = ops->walk_stack(tinfo, stack, bp, ops, data, NULL, &graph);
-- put_cpu();
-+ put_cpu_light();
- }
- EXPORT_SYMBOL(dump_trace);
-
-@@ -255,7 +255,7 @@
- int cpu;
- int i;
-
-- preempt_disable();
-+ migrate_disable();
- cpu = smp_processor_id();
-
- irq_stack_end = (unsigned long *)(per_cpu(irq_stack_ptr, cpu));
-@@ -291,7 +291,7 @@
- pr_cont(" %016lx", *stack++);
- touch_nmi_watchdog();
- }
-- preempt_enable();
-+ migrate_enable();
-
- pr_cont("\n");
- show_trace_log_lvl(task, regs, sp, bp, log_lvl);
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/entry_32.S linux-4.1.39/arch/x86/kernel/entry_32.S
---- linux-4.1.39.orig/arch/x86/kernel/entry_32.S 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/entry_32.S 2017-04-18 17:56:30.569395424 +0200
-@@ -359,8 +359,24 @@
- ENTRY(resume_kernel)
- DISABLE_INTERRUPTS(CLBR_ANY)
- need_resched:
-+ # preempt count == 0 + NEED_RS set?
- cmpl $0,PER_CPU_VAR(__preempt_count)
-+#ifndef CONFIG_PREEMPT_LAZY
- jnz restore_all
-+#else
-+ jz test_int_off
-+
-+ # atleast preempt count == 0 ?
-+ cmpl $_PREEMPT_ENABLED,PER_CPU_VAR(__preempt_count)
-+ jne restore_all
-+
-+ cmpl $0,TI_preempt_lazy_count(%ebp) # non-zero preempt_lazy_count ?
-+ jnz restore_all
-+
-+ testl $_TIF_NEED_RESCHED_LAZY, TI_flags(%ebp)
-+ jz restore_all
-+test_int_off:
-+#endif
- testl $X86_EFLAGS_IF,PT_EFLAGS(%esp) # interrupts off (exception path) ?
- jz restore_all
- call preempt_schedule_irq
-@@ -594,7 +610,7 @@
- ALIGN
- RING0_PTREGS_FRAME # can't unwind into user space anyway
- work_pending:
-- testb $_TIF_NEED_RESCHED, %cl
-+ testl $_TIF_NEED_RESCHED_MASK, %ecx
- jz work_notifysig
- work_resched:
- call schedule
-@@ -607,7 +623,7 @@
- andl $_TIF_WORK_MASK, %ecx # is there any work to be done other
- # than syscall tracing?
- jz restore_all
-- testb $_TIF_NEED_RESCHED, %cl
-+ testl $_TIF_NEED_RESCHED_MASK, %ecx
- jnz work_resched
-
- work_notifysig: # deal with pending signals and
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/entry_64.S linux-4.1.39/arch/x86/kernel/entry_64.S
---- linux-4.1.39.orig/arch/x86/kernel/entry_64.S 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/entry_64.S 2017-04-18 17:56:30.569395424 +0200
-@@ -370,8 +370,8 @@
- /* First do a reschedule test. */
- /* edx: work, edi: workmask */
- int_careful:
-- bt $TIF_NEED_RESCHED,%edx
-- jnc int_very_careful
-+ testl $_TIF_NEED_RESCHED_MASK,%edx
-+ jz int_very_careful
- TRACE_IRQS_ON
- ENABLE_INTERRUPTS(CLBR_NONE)
- pushq_cfi %rdi
-@@ -776,7 +776,23 @@
- bt $9,EFLAGS(%rsp) /* interrupts were off? */
- jnc 1f
- 0: cmpl $0,PER_CPU_VAR(__preempt_count)
-+#ifndef CONFIG_PREEMPT_LAZY
- jnz 1f
-+#else
-+ jz do_preempt_schedule_irq
-+
-+ # atleast preempt count == 0 ?
-+ cmpl $_PREEMPT_ENABLED,PER_CPU_VAR(__preempt_count)
-+ jnz 1f
-+
-+ GET_THREAD_INFO(%rcx)
-+ cmpl $0, TI_preempt_lazy_count(%rcx)
-+ jnz 1f
-+
-+ bt $TIF_NEED_RESCHED_LAZY,TI_flags(%rcx)
-+ jnc 1f
-+do_preempt_schedule_irq:
-+#endif
- call preempt_schedule_irq
- jmp 0b
- 1:
-@@ -844,8 +860,8 @@
- /* edi: workmask, edx: work */
- retint_careful:
- CFI_RESTORE_STATE
-- bt $TIF_NEED_RESCHED,%edx
-- jnc retint_signal
-+ testl $_TIF_NEED_RESCHED_MASK,%edx
-+ jz retint_signal
- TRACE_IRQS_ON
- ENABLE_INTERRUPTS(CLBR_NONE)
- pushq_cfi %rdi
-@@ -1118,6 +1134,7 @@
- jmp 2b
- .previous
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- /* Call softirq on interrupt stack. Interrupts are off. */
- ENTRY(do_softirq_own_stack)
- CFI_STARTPROC
-@@ -1137,6 +1154,7 @@
- ret
- CFI_ENDPROC
- END(do_softirq_own_stack)
-+#endif
-
- #ifdef CONFIG_XEN
- idtentry xen_hypervisor_callback xen_do_hypervisor_callback has_error_code=0
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/irq_32.c linux-4.1.39/arch/x86/kernel/irq_32.c
---- linux-4.1.39.orig/arch/x86/kernel/irq_32.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/irq_32.c 2017-04-18 17:56:30.569395424 +0200
-@@ -135,6 +135,7 @@
- cpu, per_cpu(hardirq_stack, cpu), per_cpu(softirq_stack, cpu));
- }
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- void do_softirq_own_stack(void)
- {
- struct thread_info *curstk;
-@@ -153,6 +154,7 @@
-
- call_on_stack(__do_softirq, isp);
- }
-+#endif
-
- bool handle_irq(unsigned irq, struct pt_regs *regs)
- {
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/kvm.c linux-4.1.39/arch/x86/kernel/kvm.c
---- linux-4.1.39.orig/arch/x86/kernel/kvm.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/kvm.c 2017-04-18 17:56:30.569395424 +0200
-@@ -36,6 +36,7 @@
- #include <linux/kprobes.h>
- #include <linux/debugfs.h>
- #include <linux/nmi.h>
-+#include <linux/wait-simple.h>
- #include <asm/timer.h>
- #include <asm/cpu.h>
- #include <asm/traps.h>
-@@ -91,14 +92,14 @@
-
- struct kvm_task_sleep_node {
- struct hlist_node link;
-- wait_queue_head_t wq;
-+ struct swait_head wq;
- u32 token;
- int cpu;
- bool halted;
- };
-
- static struct kvm_task_sleep_head {
-- spinlock_t lock;
-+ raw_spinlock_t lock;
- struct hlist_head list;
- } async_pf_sleepers[KVM_TASK_SLEEP_HASHSIZE];
-
-@@ -122,17 +123,17 @@
- u32 key = hash_32(token, KVM_TASK_SLEEP_HASHBITS);
- struct kvm_task_sleep_head *b = &async_pf_sleepers[key];
- struct kvm_task_sleep_node n, *e;
-- DEFINE_WAIT(wait);
-+ DEFINE_SWAITER(wait);
-
- rcu_irq_enter();
-
-- spin_lock(&b->lock);
-+ raw_spin_lock(&b->lock);
- e = _find_apf_task(b, token);
- if (e) {
- /* dummy entry exist -> wake up was delivered ahead of PF */
- hlist_del(&e->link);
- kfree(e);
-- spin_unlock(&b->lock);
-+ raw_spin_unlock(&b->lock);
-
- rcu_irq_exit();
- return;
-@@ -141,13 +142,13 @@
- n.token = token;
- n.cpu = smp_processor_id();
- n.halted = is_idle_task(current) || preempt_count() > 1;
-- init_waitqueue_head(&n.wq);
-+ init_swait_head(&n.wq);
- hlist_add_head(&n.link, &b->list);
-- spin_unlock(&b->lock);
-+ raw_spin_unlock(&b->lock);
-
- for (;;) {
- if (!n.halted)
-- prepare_to_wait(&n.wq, &wait, TASK_UNINTERRUPTIBLE);
-+ swait_prepare(&n.wq, &wait, TASK_UNINTERRUPTIBLE);
- if (hlist_unhashed(&n.link))
- break;
-
-@@ -166,7 +167,7 @@
- }
- }
- if (!n.halted)
-- finish_wait(&n.wq, &wait);
-+ swait_finish(&n.wq, &wait);
-
- rcu_irq_exit();
- return;
-@@ -178,8 +179,8 @@
- hlist_del_init(&n->link);
- if (n->halted)
- smp_send_reschedule(n->cpu);
-- else if (waitqueue_active(&n->wq))
-- wake_up(&n->wq);
-+ else if (swaitqueue_active(&n->wq))
-+ swait_wake(&n->wq);
- }
-
- static void apf_task_wake_all(void)
-@@ -189,14 +190,14 @@
- for (i = 0; i < KVM_TASK_SLEEP_HASHSIZE; i++) {
- struct hlist_node *p, *next;
- struct kvm_task_sleep_head *b = &async_pf_sleepers[i];
-- spin_lock(&b->lock);
-+ raw_spin_lock(&b->lock);
- hlist_for_each_safe(p, next, &b->list) {
- struct kvm_task_sleep_node *n =
- hlist_entry(p, typeof(*n), link);
- if (n->cpu == smp_processor_id())
- apf_task_wake_one(n);
- }
-- spin_unlock(&b->lock);
-+ raw_spin_unlock(&b->lock);
- }
- }
-
-@@ -212,7 +213,7 @@
- }
-
- again:
-- spin_lock(&b->lock);
-+ raw_spin_lock(&b->lock);
- n = _find_apf_task(b, token);
- if (!n) {
- /*
-@@ -225,17 +226,17 @@
- * Allocation failed! Busy wait while other cpu
- * handles async PF.
- */
-- spin_unlock(&b->lock);
-+ raw_spin_unlock(&b->lock);
- cpu_relax();
- goto again;
- }
- n->token = token;
- n->cpu = smp_processor_id();
-- init_waitqueue_head(&n->wq);
-+ init_swait_head(&n->wq);
- hlist_add_head(&n->link, &b->list);
- } else
- apf_task_wake_one(n);
-- spin_unlock(&b->lock);
-+ raw_spin_unlock(&b->lock);
- return;
- }
- EXPORT_SYMBOL_GPL(kvm_async_pf_task_wake);
-@@ -486,7 +487,7 @@
- paravirt_ops_setup();
- register_reboot_notifier(&kvm_pv_reboot_nb);
- for (i = 0; i < KVM_TASK_SLEEP_HASHSIZE; i++)
-- spin_lock_init(&async_pf_sleepers[i].lock);
-+ raw_spin_lock_init(&async_pf_sleepers[i].lock);
- if (kvm_para_has_feature(KVM_FEATURE_ASYNC_PF))
- x86_init.irqs.trap_init = kvm_apf_trap_init;
-
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/process_32.c linux-4.1.39/arch/x86/kernel/process_32.c
---- linux-4.1.39.orig/arch/x86/kernel/process_32.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/process_32.c 2017-04-18 17:56:30.569395424 +0200
-@@ -35,6 +35,7 @@
- #include <linux/uaccess.h>
- #include <linux/io.h>
- #include <linux/kdebug.h>
-+#include <linux/highmem.h>
-
- #include <asm/pgtable.h>
- #include <asm/ldt.h>
-@@ -210,6 +211,35 @@
- }
- EXPORT_SYMBOL_GPL(start_thread);
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+static void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p)
-+{
-+ int i;
-+
-+ /*
-+ * Clear @prev's kmap_atomic mappings
-+ */
-+ for (i = 0; i < prev_p->kmap_idx; i++) {
-+ int idx = i + KM_TYPE_NR * smp_processor_id();
-+ pte_t *ptep = kmap_pte - idx;
-+
-+ kpte_clear_flush(ptep, __fix_to_virt(FIX_KMAP_BEGIN + idx));
-+ }
-+ /*
-+ * Restore @next_p's kmap_atomic mappings
-+ */
-+ for (i = 0; i < next_p->kmap_idx; i++) {
-+ int idx = i + KM_TYPE_NR * smp_processor_id();
-+
-+ if (!pte_none(next_p->kmap_pte[i]))
-+ set_pte(kmap_pte - idx, next_p->kmap_pte[i]);
-+ }
-+}
-+#else
-+static inline void
-+switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p) { }
-+#endif
-+
-
- /*
- * switch_to(x,y) should switch tasks from x to y.
-@@ -292,6 +322,8 @@
- task_thread_info(next_p)->flags & _TIF_WORK_CTXSW_NEXT))
- __switch_to_xtra(prev_p, next_p, tss);
-
-+ switch_kmaps(prev_p, next_p);
-+
- /*
- * Leave lazy mode, flushing any hypercalls made here.
- * This must be done before restoring TLS segments so
-diff -Nur linux-4.1.39.orig/arch/x86/kernel/signal.c linux-4.1.39/arch/x86/kernel/signal.c
---- linux-4.1.39.orig/arch/x86/kernel/signal.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kernel/signal.c 2017-04-18 17:56:30.569395424 +0200
-@@ -726,6 +726,14 @@
- {
- user_exit();
-
-+#ifdef ARCH_RT_DELAYS_SIGNAL_SEND
-+ if (unlikely(current->forced_info.si_signo)) {
-+ struct task_struct *t = current;
-+ force_sig_info(t->forced_info.si_signo, &t->forced_info, t);
-+ t->forced_info.si_signo = 0;
-+ }
-+#endif
-+
- if (thread_info_flags & _TIF_UPROBE)
- uprobe_notify_resume(regs);
-
-diff -Nur linux-4.1.39.orig/arch/x86/kvm/lapic.c linux-4.1.39/arch/x86/kvm/lapic.c
---- linux-4.1.39.orig/arch/x86/kvm/lapic.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kvm/lapic.c 2017-04-18 17:56:30.569395424 +0200
-@@ -1106,7 +1106,7 @@
- static void apic_timer_expired(struct kvm_lapic *apic)
- {
- struct kvm_vcpu *vcpu = apic->vcpu;
-- wait_queue_head_t *q = &vcpu->wq;
-+ struct swait_head *q = &vcpu->wq;
- struct kvm_timer *ktimer = &apic->lapic_timer;
-
- if (atomic_read(&apic->lapic_timer.pending))
-@@ -1115,8 +1115,8 @@
- atomic_inc(&apic->lapic_timer.pending);
- kvm_set_pending_timer(vcpu);
-
-- if (waitqueue_active(q))
-- wake_up_interruptible(q);
-+ if (swaitqueue_active(q))
-+ swait_wake_interruptible(q);
-
- if (apic_lvtt_tscdeadline(apic))
- ktimer->expired_tscdeadline = ktimer->tscdeadline;
-@@ -1169,8 +1169,36 @@
- __delay(tsc_deadline - guest_tsc);
- }
-
-+static enum hrtimer_restart apic_timer_fn(struct hrtimer *data);
-+
-+static void __apic_timer_expired(struct hrtimer *data)
-+{
-+ int ret, i = 0;
-+ enum hrtimer_restart r;
-+ struct kvm_timer *ktimer = container_of(data, struct kvm_timer, timer);
-+
-+ r = apic_timer_fn(data);
-+
-+ if (r == HRTIMER_RESTART) {
-+ do {
-+ ret = hrtimer_start_expires(data, HRTIMER_MODE_ABS);
-+ if (ret == -ETIME)
-+ hrtimer_add_expires_ns(&ktimer->timer,
-+ ktimer->period);
-+ i++;
-+ } while (ret == -ETIME && i < 10);
-+
-+ if (ret == -ETIME) {
-+ printk_once(KERN_ERR "%s: failed to reprogram timer\n",
-+ __func__);
-+ WARN_ON_ONCE(1);
-+ }
-+ }
-+}
-+
- static void start_apic_timer(struct kvm_lapic *apic)
- {
-+ int ret;
- ktime_t now;
-
- atomic_set(&apic->lapic_timer.pending, 0);
-@@ -1201,9 +1229,11 @@
- }
- }
-
-- hrtimer_start(&apic->lapic_timer.timer,
-+ ret = hrtimer_start(&apic->lapic_timer.timer,
- ktime_add_ns(now, apic->lapic_timer.period),
- HRTIMER_MODE_ABS);
-+ if (ret == -ETIME)
-+ __apic_timer_expired(&apic->lapic_timer.timer);
-
- apic_debug("%s: bus cycle is %" PRId64 "ns, now 0x%016"
- PRIx64 ", "
-@@ -1235,8 +1265,10 @@
- do_div(ns, this_tsc_khz);
- expire = ktime_add_ns(now, ns);
- expire = ktime_sub_ns(expire, lapic_timer_advance_ns);
-- hrtimer_start(&apic->lapic_timer.timer,
-+ ret = hrtimer_start(&apic->lapic_timer.timer,
- expire, HRTIMER_MODE_ABS);
-+ if (ret == -ETIME)
-+ __apic_timer_expired(&apic->lapic_timer.timer);
- } else
- apic_timer_expired(apic);
-
-@@ -1709,6 +1741,7 @@
- hrtimer_init(&apic->lapic_timer.timer, CLOCK_MONOTONIC,
- HRTIMER_MODE_ABS);
- apic->lapic_timer.timer.function = apic_timer_fn;
-+ apic->lapic_timer.timer.irqsafe = 1;
-
- /*
- * APIC is created enabled. This will prevent kvm_lapic_set_base from
-@@ -1836,7 +1869,8 @@
-
- timer = &vcpu->arch.apic->lapic_timer.timer;
- if (hrtimer_cancel(timer))
-- hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
-+ if (hrtimer_start_expires(timer, HRTIMER_MODE_ABS) == -ETIME)
-+ __apic_timer_expired(timer);
- }
-
- /*
-diff -Nur linux-4.1.39.orig/arch/x86/kvm/x86.c linux-4.1.39/arch/x86/kvm/x86.c
---- linux-4.1.39.orig/arch/x86/kvm/x86.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/kvm/x86.c 2017-04-18 17:56:30.569395424 +0200
-@@ -5837,6 +5837,13 @@
- goto out;
- }
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) {
-+ printk(KERN_ERR "RT requires X86_FEATURE_CONSTANT_TSC\n");
-+ return -EOPNOTSUPP;
-+ }
-+#endif
-+
- r = kvm_mmu_module_init();
- if (r)
- goto out_free_percpu;
-diff -Nur linux-4.1.39.orig/arch/x86/lib/usercopy_32.c linux-4.1.39/arch/x86/lib/usercopy_32.c
---- linux-4.1.39.orig/arch/x86/lib/usercopy_32.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/lib/usercopy_32.c 2017-04-18 17:56:30.573395579 +0200
-@@ -647,7 +647,8 @@
- * @from: Source address, in kernel space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from kernel space to user space.
- *
-@@ -668,7 +669,8 @@
- * @from: Source address, in user space.
- * @n: Number of bytes to copy.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Copy data from user space to kernel space.
- *
-diff -Nur linux-4.1.39.orig/arch/x86/mm/fault.c linux-4.1.39/arch/x86/mm/fault.c
---- linux-4.1.39.orig/arch/x86/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/mm/fault.c 2017-04-18 17:56:30.573395579 +0200
-@@ -13,6 +13,7 @@
- #include <linux/hugetlb.h> /* hstate_index_to_shift */
- #include <linux/prefetch.h> /* prefetchw */
- #include <linux/context_tracking.h> /* exception_enter(), ... */
-+#include <linux/uaccess.h> /* faulthandler_disabled() */
-
- #include <asm/traps.h> /* dotraplinkage, ... */
- #include <asm/pgalloc.h> /* pgd_*(), ... */
-@@ -1133,9 +1134,9 @@
-
- /*
- * If we're in an interrupt, have no user context or are running
-- * in an atomic region then we must not take the fault:
-+ * in a region with pagefaults disabled then we must not take the fault
- */
-- if (unlikely(in_atomic() || !mm)) {
-+ if (unlikely(faulthandler_disabled() || !mm)) {
- bad_area_nosemaphore(regs, error_code, address);
- return;
- }
-diff -Nur linux-4.1.39.orig/arch/x86/mm/highmem_32.c linux-4.1.39/arch/x86/mm/highmem_32.c
---- linux-4.1.39.orig/arch/x86/mm/highmem_32.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/mm/highmem_32.c 2017-04-18 17:56:30.573395579 +0200
-@@ -32,10 +32,11 @@
- */
- void *kmap_atomic_prot(struct page *page, pgprot_t prot)
- {
-+ pte_t pte = mk_pte(page, prot);
- unsigned long vaddr;
- int idx, type;
-
-- /* even !CONFIG_PREEMPT needs this, for in_atomic in do_page_fault */
-+ preempt_disable_nort();
- pagefault_disable();
-
- if (!PageHighMem(page))
-@@ -45,7 +46,10 @@
- idx = type + KM_TYPE_NR*smp_processor_id();
- vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
- BUG_ON(!pte_none(*(kmap_pte-idx)));
-- set_pte(kmap_pte-idx, mk_pte(page, prot));
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ current->kmap_pte[type] = pte;
-+#endif
-+ set_pte(kmap_pte-idx, pte);
- arch_flush_lazy_mmu_mode();
-
- return (void *)vaddr;
-@@ -88,6 +92,9 @@
- * is a bad idea also, in case the page changes cacheability
- * attributes or becomes a protected page in a hypervisor.
- */
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ current->kmap_pte[type] = __pte(0);
-+#endif
- kpte_clear_flush(kmap_pte-idx, vaddr);
- kmap_atomic_idx_pop();
- arch_flush_lazy_mmu_mode();
-@@ -100,6 +107,7 @@
- #endif
-
- pagefault_enable();
-+ preempt_enable_nort();
- }
- EXPORT_SYMBOL(__kunmap_atomic);
-
-diff -Nur linux-4.1.39.orig/arch/x86/mm/iomap_32.c linux-4.1.39/arch/x86/mm/iomap_32.c
---- linux-4.1.39.orig/arch/x86/mm/iomap_32.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/mm/iomap_32.c 2017-04-18 17:56:30.573395579 +0200
-@@ -56,15 +56,22 @@
-
- void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
- {
-+ pte_t pte = pfn_pte(pfn, prot);
- unsigned long vaddr;
- int idx, type;
-
-+ preempt_disable();
- pagefault_disable();
-
- type = kmap_atomic_idx_push();
- idx = type + KM_TYPE_NR * smp_processor_id();
- vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
-- set_pte(kmap_pte - idx, pfn_pte(pfn, prot));
-+ WARN_ON(!pte_none(*(kmap_pte - idx)));
-+
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ current->kmap_pte[type] = pte;
-+#endif
-+ set_pte(kmap_pte - idx, pte);
- arch_flush_lazy_mmu_mode();
-
- return (void *)vaddr;
-@@ -112,10 +119,14 @@
- * is a bad idea also, in case the page changes cacheability
- * attributes or becomes a protected page in a hypervisor.
- */
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ current->kmap_pte[type] = __pte(0);
-+#endif
- kpte_clear_flush(kmap_pte-idx, vaddr);
- kmap_atomic_idx_pop();
- }
-
- pagefault_enable();
-+ preempt_enable();
- }
- EXPORT_SYMBOL_GPL(iounmap_atomic);
-diff -Nur linux-4.1.39.orig/arch/x86/mm/pageattr.c linux-4.1.39/arch/x86/mm/pageattr.c
---- linux-4.1.39.orig/arch/x86/mm/pageattr.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/mm/pageattr.c 2017-04-18 17:56:30.573395579 +0200
-@@ -209,7 +209,15 @@
- int in_flags, struct page **pages)
- {
- unsigned int i, level;
-+#ifdef CONFIG_PREEMPT
-+ /*
-+ * Avoid wbinvd() because it causes latencies on all CPUs,
-+ * regardless of any CPU isolation that may be in effect.
-+ */
-+ unsigned long do_wbinvd = 0;
-+#else
- unsigned long do_wbinvd = cache && numpages >= 1024; /* 4M threshold */
-+#endif
-
- BUG_ON(irqs_disabled());
-
-diff -Nur linux-4.1.39.orig/arch/x86/platform/uv/tlb_uv.c linux-4.1.39/arch/x86/platform/uv/tlb_uv.c
---- linux-4.1.39.orig/arch/x86/platform/uv/tlb_uv.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/platform/uv/tlb_uv.c 2017-04-18 17:56:30.573395579 +0200
-@@ -714,9 +714,9 @@
-
- quiesce_local_uvhub(hmaster);
-
-- spin_lock(&hmaster->queue_lock);
-+ raw_spin_lock(&hmaster->queue_lock);
- reset_with_ipi(&bau_desc->distribution, bcp);
-- spin_unlock(&hmaster->queue_lock);
-+ raw_spin_unlock(&hmaster->queue_lock);
-
- end_uvhub_quiesce(hmaster);
-
-@@ -736,9 +736,9 @@
-
- quiesce_local_uvhub(hmaster);
-
-- spin_lock(&hmaster->queue_lock);
-+ raw_spin_lock(&hmaster->queue_lock);
- reset_with_ipi(&bau_desc->distribution, bcp);
-- spin_unlock(&hmaster->queue_lock);
-+ raw_spin_unlock(&hmaster->queue_lock);
-
- end_uvhub_quiesce(hmaster);
-
-@@ -759,7 +759,7 @@
- cycles_t tm1;
-
- hmaster = bcp->uvhub_master;
-- spin_lock(&hmaster->disable_lock);
-+ raw_spin_lock(&hmaster->disable_lock);
- if (!bcp->baudisabled) {
- stat->s_bau_disabled++;
- tm1 = get_cycles();
-@@ -772,7 +772,7 @@
- }
- }
- }
-- spin_unlock(&hmaster->disable_lock);
-+ raw_spin_unlock(&hmaster->disable_lock);
- }
-
- static void count_max_concurr(int stat, struct bau_control *bcp,
-@@ -835,7 +835,7 @@
- */
- static void uv1_throttle(struct bau_control *hmaster, struct ptc_stats *stat)
- {
-- spinlock_t *lock = &hmaster->uvhub_lock;
-+ raw_spinlock_t *lock = &hmaster->uvhub_lock;
- atomic_t *v;
-
- v = &hmaster->active_descriptor_count;
-@@ -968,7 +968,7 @@
- struct bau_control *hmaster;
-
- hmaster = bcp->uvhub_master;
-- spin_lock(&hmaster->disable_lock);
-+ raw_spin_lock(&hmaster->disable_lock);
- if (bcp->baudisabled && (get_cycles() >= bcp->set_bau_on_time)) {
- stat->s_bau_reenabled++;
- for_each_present_cpu(tcpu) {
-@@ -980,10 +980,10 @@
- tbcp->period_giveups = 0;
- }
- }
-- spin_unlock(&hmaster->disable_lock);
-+ raw_spin_unlock(&hmaster->disable_lock);
- return 0;
- }
-- spin_unlock(&hmaster->disable_lock);
-+ raw_spin_unlock(&hmaster->disable_lock);
- return -1;
- }
-
-@@ -1901,9 +1901,9 @@
- bcp->cong_reps = congested_reps;
- bcp->disabled_period = sec_2_cycles(disabled_period);
- bcp->giveup_limit = giveup_limit;
-- spin_lock_init(&bcp->queue_lock);
-- spin_lock_init(&bcp->uvhub_lock);
-- spin_lock_init(&bcp->disable_lock);
-+ raw_spin_lock_init(&bcp->queue_lock);
-+ raw_spin_lock_init(&bcp->uvhub_lock);
-+ raw_spin_lock_init(&bcp->disable_lock);
- }
- }
-
-diff -Nur linux-4.1.39.orig/arch/x86/platform/uv/uv_time.c linux-4.1.39/arch/x86/platform/uv/uv_time.c
---- linux-4.1.39.orig/arch/x86/platform/uv/uv_time.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/x86/platform/uv/uv_time.c 2017-04-18 17:56:30.573395579 +0200
-@@ -58,7 +58,7 @@
-
- /* There is one of these allocated per node */
- struct uv_rtc_timer_head {
-- spinlock_t lock;
-+ raw_spinlock_t lock;
- /* next cpu waiting for timer, local node relative: */
- int next_cpu;
- /* number of cpus on this node: */
-@@ -178,7 +178,7 @@
- uv_rtc_deallocate_timers();
- return -ENOMEM;
- }
-- spin_lock_init(&head->lock);
-+ raw_spin_lock_init(&head->lock);
- head->ncpus = uv_blade_nr_possible_cpus(bid);
- head->next_cpu = -1;
- blade_info[bid] = head;
-@@ -232,7 +232,7 @@
- unsigned long flags;
- int next_cpu;
-
-- spin_lock_irqsave(&head->lock, flags);
-+ raw_spin_lock_irqsave(&head->lock, flags);
-
- next_cpu = head->next_cpu;
- *t = expires;
-@@ -244,12 +244,12 @@
- if (uv_setup_intr(cpu, expires)) {
- *t = ULLONG_MAX;
- uv_rtc_find_next_timer(head, pnode);
-- spin_unlock_irqrestore(&head->lock, flags);
-+ raw_spin_unlock_irqrestore(&head->lock, flags);
- return -ETIME;
- }
- }
-
-- spin_unlock_irqrestore(&head->lock, flags);
-+ raw_spin_unlock_irqrestore(&head->lock, flags);
- return 0;
- }
-
-@@ -268,7 +268,7 @@
- unsigned long flags;
- int rc = 0;
-
-- spin_lock_irqsave(&head->lock, flags);
-+ raw_spin_lock_irqsave(&head->lock, flags);
-
- if ((head->next_cpu == bcpu && uv_read_rtc(NULL) >= *t) || force)
- rc = 1;
-@@ -280,7 +280,7 @@
- uv_rtc_find_next_timer(head, pnode);
- }
-
-- spin_unlock_irqrestore(&head->lock, flags);
-+ raw_spin_unlock_irqrestore(&head->lock, flags);
-
- return rc;
- }
-@@ -300,13 +300,18 @@
- static cycle_t uv_read_rtc(struct clocksource *cs)
- {
- unsigned long offset;
-+ cycle_t cycles;
-
-+ preempt_disable();
- if (uv_get_min_hub_revision_id() == 1)
- offset = 0;
- else
- offset = (uv_blade_processor_id() * L1_CACHE_BYTES) % PAGE_SIZE;
-
-- return (cycle_t)uv_read_local_mmr(UVH_RTC | offset);
-+ cycles = (cycle_t)uv_read_local_mmr(UVH_RTC | offset);
-+ preempt_enable();
-+
-+ return cycles;
- }
-
- /*
-diff -Nur linux-4.1.39.orig/arch/xtensa/mm/fault.c linux-4.1.39/arch/xtensa/mm/fault.c
---- linux-4.1.39.orig/arch/xtensa/mm/fault.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/xtensa/mm/fault.c 2017-04-18 17:56:30.573395579 +0200
-@@ -15,10 +15,10 @@
- #include <linux/mm.h>
- #include <linux/module.h>
- #include <linux/hardirq.h>
-+#include <linux/uaccess.h>
- #include <asm/mmu_context.h>
- #include <asm/cacheflush.h>
- #include <asm/hardirq.h>
--#include <asm/uaccess.h>
- #include <asm/pgalloc.h>
-
- DEFINE_PER_CPU(unsigned long, asid_cache) = ASID_USER_FIRST;
-@@ -57,7 +57,7 @@
- /* If we're in an interrupt or have no user
- * context, we must not take the fault..
- */
-- if (in_atomic() || !mm) {
-+ if (faulthandler_disabled() || !mm) {
- bad_page_fault(regs, address, SIGSEGV);
- return;
- }
-diff -Nur linux-4.1.39.orig/arch/xtensa/mm/highmem.c linux-4.1.39/arch/xtensa/mm/highmem.c
---- linux-4.1.39.orig/arch/xtensa/mm/highmem.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/arch/xtensa/mm/highmem.c 2017-04-18 17:56:30.573395579 +0200
-@@ -42,6 +42,7 @@
- enum fixed_addresses idx;
- unsigned long vaddr;
-
-+ preempt_disable();
- pagefault_disable();
- if (!PageHighMem(page))
- return page_address(page);
-@@ -79,6 +80,7 @@
- }
-
- pagefault_enable();
-+ preempt_enable();
- }
- EXPORT_SYMBOL(__kunmap_atomic);
-
-diff -Nur linux-4.1.39.orig/block/blk-core.c linux-4.1.39/block/blk-core.c
---- linux-4.1.39.orig/block/blk-core.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/block/blk-core.c 2017-04-18 17:56:30.573395579 +0200
-@@ -100,6 +100,9 @@
-
- INIT_LIST_HEAD(&rq->queuelist);
- INIT_LIST_HEAD(&rq->timeout_list);
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ INIT_WORK(&rq->work, __blk_mq_complete_request_remote_work);
-+#endif
- rq->cpu = -1;
- rq->q = q;
- rq->__sector = (sector_t) -1;
-@@ -194,7 +197,7 @@
- **/
- void blk_start_queue(struct request_queue *q)
- {
-- WARN_ON(!irqs_disabled());
-+ WARN_ON_NONRT(!irqs_disabled());
-
- queue_flag_clear(QUEUE_FLAG_STOPPED, q);
- __blk_run_queue(q);
-@@ -663,7 +666,7 @@
- q->bypass_depth = 1;
- __set_bit(QUEUE_FLAG_BYPASS, &q->queue_flags);
-
-- init_waitqueue_head(&q->mq_freeze_wq);
-+ init_swait_head(&q->mq_freeze_wq);
-
- if (blkcg_init_queue(q))
- goto fail_bdi;
-@@ -3079,7 +3082,7 @@
- blk_run_queue_async(q);
- else
- __blk_run_queue(q);
-- spin_unlock(q->queue_lock);
-+ spin_unlock_irq(q->queue_lock);
- }
-
- static void flush_plug_callbacks(struct blk_plug *plug, bool from_schedule)
-@@ -3127,7 +3130,6 @@
- void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule)
- {
- struct request_queue *q;
-- unsigned long flags;
- struct request *rq;
- LIST_HEAD(list);
- unsigned int depth;
-@@ -3147,11 +3149,6 @@
- q = NULL;
- depth = 0;
-
-- /*
-- * Save and disable interrupts here, to avoid doing it for every
-- * queue lock we have to take.
-- */
-- local_irq_save(flags);
- while (!list_empty(&list)) {
- rq = list_entry_rq(list.next);
- list_del_init(&rq->queuelist);
-@@ -3164,7 +3161,7 @@
- queue_unplugged(q, depth, from_schedule);
- q = rq->q;
- depth = 0;
-- spin_lock(q->queue_lock);
-+ spin_lock_irq(q->queue_lock);
- }
-
- /*
-@@ -3191,8 +3188,6 @@
- */
- if (q)
- queue_unplugged(q, depth, from_schedule);
--
-- local_irq_restore(flags);
- }
-
- void blk_finish_plug(struct blk_plug *plug)
-diff -Nur linux-4.1.39.orig/block/blk-ioc.c linux-4.1.39/block/blk-ioc.c
---- linux-4.1.39.orig/block/blk-ioc.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/block/blk-ioc.c 2017-04-18 17:56:30.573395579 +0200
-@@ -7,6 +7,7 @@
- #include <linux/bio.h>
- #include <linux/blkdev.h>
- #include <linux/slab.h>
-+#include <linux/delay.h>
-
- #include "blk.h"
-
-@@ -109,7 +110,7 @@
- spin_unlock(q->queue_lock);
- } else {
- spin_unlock_irqrestore(&ioc->lock, flags);
-- cpu_relax();
-+ cpu_chill();
- spin_lock_irqsave_nested(&ioc->lock, flags, 1);
- }
- }
-@@ -187,7 +188,7 @@
- spin_unlock(icq->q->queue_lock);
- } else {
- spin_unlock_irqrestore(&ioc->lock, flags);
-- cpu_relax();
-+ cpu_chill();
- goto retry;
- }
- }
-diff -Nur linux-4.1.39.orig/block/blk-iopoll.c linux-4.1.39/block/blk-iopoll.c
---- linux-4.1.39.orig/block/blk-iopoll.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/block/blk-iopoll.c 2017-04-18 17:56:30.573395579 +0200
-@@ -35,6 +35,7 @@
- list_add_tail(&iop->list, this_cpu_ptr(&blk_cpu_iopoll));
- __raise_softirq_irqoff(BLOCK_IOPOLL_SOFTIRQ);
- local_irq_restore(flags);
-+ preempt_check_resched_rt();
- }
- EXPORT_SYMBOL(blk_iopoll_sched);
-
-@@ -132,6 +133,7 @@
- __raise_softirq_irqoff(BLOCK_IOPOLL_SOFTIRQ);
-
- local_irq_enable();
-+ preempt_check_resched_rt();
- }
-
- /**
-@@ -201,6 +203,7 @@
- this_cpu_ptr(&blk_cpu_iopoll));
- __raise_softirq_irqoff(BLOCK_IOPOLL_SOFTIRQ);
- local_irq_enable();
-+ preempt_check_resched_rt();
- }
-
- return NOTIFY_OK;
-diff -Nur linux-4.1.39.orig/block/blk-mq.c linux-4.1.39/block/blk-mq.c
---- linux-4.1.39.orig/block/blk-mq.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/block/blk-mq.c 2017-04-18 17:56:30.573395579 +0200
-@@ -88,7 +88,7 @@
- if (!(gfp & __GFP_WAIT))
- return -EBUSY;
-
-- ret = wait_event_interruptible(q->mq_freeze_wq,
-+ ret = swait_event_interruptible(q->mq_freeze_wq,
- !q->mq_freeze_depth || blk_queue_dying(q));
- if (blk_queue_dying(q))
- return -ENODEV;
-@@ -107,7 +107,7 @@
- struct request_queue *q =
- container_of(ref, struct request_queue, mq_usage_counter);
-
-- wake_up_all(&q->mq_freeze_wq);
-+ swait_wake_all(&q->mq_freeze_wq);
- }
-
- void blk_mq_freeze_queue_start(struct request_queue *q)
-@@ -127,7 +127,7 @@
-
- static void blk_mq_freeze_queue_wait(struct request_queue *q)
- {
-- wait_event(q->mq_freeze_wq, percpu_ref_is_zero(&q->mq_usage_counter));
-+ swait_event(q->mq_freeze_wq, percpu_ref_is_zero(&q->mq_usage_counter));
- }
-
- /*
-@@ -151,7 +151,7 @@
- spin_unlock_irq(q->queue_lock);
- if (wake) {
- percpu_ref_reinit(&q->mq_usage_counter);
-- wake_up_all(&q->mq_freeze_wq);
-+ swait_wake_all(&q->mq_freeze_wq);
- }
- }
- EXPORT_SYMBOL_GPL(blk_mq_unfreeze_queue);
-@@ -170,7 +170,7 @@
- * dying, we need to ensure that processes currently waiting on
- * the queue are notified as well.
- */
-- wake_up_all(&q->mq_freeze_wq);
-+ swait_wake_all(&q->mq_freeze_wq);
- }
-
- bool blk_mq_can_queue(struct blk_mq_hw_ctx *hctx)
-@@ -217,6 +217,9 @@
- rq->resid_len = 0;
- rq->sense = NULL;
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ INIT_WORK(&rq->work, __blk_mq_complete_request_remote_work);
-+#endif
- INIT_LIST_HEAD(&rq->timeout_list);
- rq->timeout = 0;
-
-@@ -346,6 +349,17 @@
- }
- EXPORT_SYMBOL(blk_mq_end_request);
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+
-+void __blk_mq_complete_request_remote_work(struct work_struct *work)
-+{
-+ struct request *rq = container_of(work, struct request, work);
-+
-+ rq->q->softirq_done_fn(rq);
-+}
-+
-+#else
-+
- static void __blk_mq_complete_request_remote(void *data)
- {
- struct request *rq = data;
-@@ -353,6 +367,8 @@
- rq->q->softirq_done_fn(rq);
- }
-
-+#endif
-+
- static void blk_mq_ipi_complete_request(struct request *rq)
- {
- struct blk_mq_ctx *ctx = rq->mq_ctx;
-@@ -364,19 +380,23 @@
- return;
- }
-
-- cpu = get_cpu();
-+ cpu = get_cpu_light();
- if (!test_bit(QUEUE_FLAG_SAME_FORCE, &rq->q->queue_flags))
- shared = cpus_share_cache(cpu, ctx->cpu);
-
- if (cpu != ctx->cpu && !shared && cpu_online(ctx->cpu)) {
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ schedule_work_on(ctx->cpu, &rq->work);
-+#else
- rq->csd.func = __blk_mq_complete_request_remote;
- rq->csd.info = rq;
- rq->csd.flags = 0;
- smp_call_function_single_async(ctx->cpu, &rq->csd);
-+#endif
- } else {
- rq->q->softirq_done_fn(rq);
- }
-- put_cpu();
-+ put_cpu_light();
- }
-
- void __blk_mq_complete_request(struct request *rq)
-@@ -905,14 +925,14 @@
- return;
-
- if (!async) {
-- int cpu = get_cpu();
-+ int cpu = get_cpu_light();
- if (cpumask_test_cpu(cpu, hctx->cpumask)) {
- __blk_mq_run_hw_queue(hctx);
-- put_cpu();
-+ put_cpu_light();
- return;
- }
-
-- put_cpu();
-+ put_cpu_light();
- }
-
- kblockd_schedule_delayed_work_on(blk_mq_hctx_next_cpu(hctx),
-@@ -1589,7 +1609,7 @@
- {
- struct blk_mq_hw_ctx *hctx = data;
-
-- if (action == CPU_DEAD || action == CPU_DEAD_FROZEN)
-+ if (action == CPU_POST_DEAD)
- return blk_mq_hctx_cpu_offline(hctx, cpu);
-
- /*
-diff -Nur linux-4.1.39.orig/block/blk-mq-cpu.c linux-4.1.39/block/blk-mq-cpu.c
---- linux-4.1.39.orig/block/blk-mq-cpu.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/block/blk-mq-cpu.c 2017-04-18 17:56:30.573395579 +0200
-@@ -16,7 +16,7 @@
- #include "blk-mq.h"
-
- static LIST_HEAD(blk_mq_cpu_notify_list);
--static DEFINE_RAW_SPINLOCK(blk_mq_cpu_notify_lock);
-+static DEFINE_SPINLOCK(blk_mq_cpu_notify_lock);
-
- static int blk_mq_main_cpu_notify(struct notifier_block *self,
- unsigned long action, void *hcpu)
-@@ -25,7 +25,10 @@
- struct blk_mq_cpu_notifier *notify;
- int ret = NOTIFY_OK;
-
-- raw_spin_lock(&blk_mq_cpu_notify_lock);
-+ if (action != CPU_POST_DEAD)
-+ return NOTIFY_OK;
-+
-+ spin_lock(&blk_mq_cpu_notify_lock);
-
- list_for_each_entry(notify, &blk_mq_cpu_notify_list, list) {
- ret = notify->notify(notify->data, action, cpu);
-@@ -33,7 +36,7 @@
- break;
- }
-
-- raw_spin_unlock(&blk_mq_cpu_notify_lock);
-+ spin_unlock(&blk_mq_cpu_notify_lock);
- return ret;
- }
-
-@@ -41,16 +44,16 @@
- {
- BUG_ON(!notifier->notify);
-
-- raw_spin_lock(&blk_mq_cpu_notify_lock);
-+ spin_lock(&blk_mq_cpu_notify_lock);
- list_add_tail(&notifier->list, &blk_mq_cpu_notify_list);
-- raw_spin_unlock(&blk_mq_cpu_notify_lock);
-+ spin_unlock(&blk_mq_cpu_notify_lock);
- }
-
- void blk_mq_unregister_cpu_notifier(struct blk_mq_cpu_notifier *notifier)
- {
-- raw_spin_lock(&blk_mq_cpu_notify_lock);
-+ spin_lock(&blk_mq_cpu_notify_lock);
- list_del(&notifier->list);
-- raw_spin_unlock(&blk_mq_cpu_notify_lock);
-+ spin_unlock(&blk_mq_cpu_notify_lock);
- }
-
- void blk_mq_init_cpu_notifier(struct blk_mq_cpu_notifier *notifier,
-diff -Nur linux-4.1.39.orig/block/blk-mq.h linux-4.1.39/block/blk-mq.h
---- linux-4.1.39.orig/block/blk-mq.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/block/blk-mq.h 2017-04-18 17:56:30.573395579 +0200
-@@ -76,7 +76,10 @@
- static inline struct blk_mq_ctx *__blk_mq_get_ctx(struct request_queue *q,
- unsigned int cpu)
- {
-- return per_cpu_ptr(q->queue_ctx, cpu);
-+ struct blk_mq_ctx *ctx;
-+
-+ ctx = per_cpu_ptr(q->queue_ctx, cpu);
-+ return ctx;
- }
-
- /*
-@@ -87,12 +90,12 @@
- */
- static inline struct blk_mq_ctx *blk_mq_get_ctx(struct request_queue *q)
- {
-- return __blk_mq_get_ctx(q, get_cpu());
-+ return __blk_mq_get_ctx(q, get_cpu_light());
- }
-
- static inline void blk_mq_put_ctx(struct blk_mq_ctx *ctx)
- {
-- put_cpu();
-+ put_cpu_light();
- }
-
- struct blk_mq_alloc_data {
-diff -Nur linux-4.1.39.orig/block/blk-softirq.c linux-4.1.39/block/blk-softirq.c
---- linux-4.1.39.orig/block/blk-softirq.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/block/blk-softirq.c 2017-04-18 17:56:30.573395579 +0200
-@@ -51,6 +51,7 @@
- raise_softirq_irqoff(BLOCK_SOFTIRQ);
-
- local_irq_restore(flags);
-+ preempt_check_resched_rt();
- }
-
- /*
-@@ -93,6 +94,7 @@
- this_cpu_ptr(&blk_cpu_done));
- raise_softirq_irqoff(BLOCK_SOFTIRQ);
- local_irq_enable();
-+ preempt_check_resched_rt();
- }
-
- return NOTIFY_OK;
-@@ -150,6 +152,7 @@
- goto do_local;
-
- local_irq_restore(flags);
-+ preempt_check_resched_rt();
- }
-
- /**
-diff -Nur linux-4.1.39.orig/block/bounce.c linux-4.1.39/block/bounce.c
---- linux-4.1.39.orig/block/bounce.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/block/bounce.c 2017-04-18 17:56:30.573395579 +0200
-@@ -54,11 +54,11 @@
- unsigned long flags;
- unsigned char *vto;
-
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- vto = kmap_atomic(to->bv_page);
- memcpy(vto + to->bv_offset, vfrom, to->bv_len);
- kunmap_atomic(vto);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- }
-
- #else /* CONFIG_HIGHMEM */
-diff -Nur linux-4.1.39.orig/crypto/algapi.c linux-4.1.39/crypto/algapi.c
---- linux-4.1.39.orig/crypto/algapi.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/crypto/algapi.c 2017-04-18 17:56:30.573395579 +0200
-@@ -696,13 +696,13 @@
-
- int crypto_register_notifier(struct notifier_block *nb)
- {
-- return blocking_notifier_chain_register(&crypto_chain, nb);
-+ return srcu_notifier_chain_register(&crypto_chain, nb);
- }
- EXPORT_SYMBOL_GPL(crypto_register_notifier);
-
- int crypto_unregister_notifier(struct notifier_block *nb)
- {
-- return blocking_notifier_chain_unregister(&crypto_chain, nb);
-+ return srcu_notifier_chain_unregister(&crypto_chain, nb);
- }
- EXPORT_SYMBOL_GPL(crypto_unregister_notifier);
-
-diff -Nur linux-4.1.39.orig/crypto/api.c linux-4.1.39/crypto/api.c
---- linux-4.1.39.orig/crypto/api.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/crypto/api.c 2017-04-18 17:56:30.573395579 +0200
-@@ -31,7 +31,7 @@
- DECLARE_RWSEM(crypto_alg_sem);
- EXPORT_SYMBOL_GPL(crypto_alg_sem);
-
--BLOCKING_NOTIFIER_HEAD(crypto_chain);
-+SRCU_NOTIFIER_HEAD(crypto_chain);
- EXPORT_SYMBOL_GPL(crypto_chain);
-
- static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg);
-@@ -236,10 +236,10 @@
- {
- int ok;
-
-- ok = blocking_notifier_call_chain(&crypto_chain, val, v);
-+ ok = srcu_notifier_call_chain(&crypto_chain, val, v);
- if (ok == NOTIFY_DONE) {
- request_module("cryptomgr");
-- ok = blocking_notifier_call_chain(&crypto_chain, val, v);
-+ ok = srcu_notifier_call_chain(&crypto_chain, val, v);
- }
-
- return ok;
-diff -Nur linux-4.1.39.orig/crypto/internal.h linux-4.1.39/crypto/internal.h
---- linux-4.1.39.orig/crypto/internal.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/crypto/internal.h 2017-04-18 17:56:30.573395579 +0200
-@@ -48,7 +48,7 @@
-
- extern struct list_head crypto_alg_list;
- extern struct rw_semaphore crypto_alg_sem;
--extern struct blocking_notifier_head crypto_chain;
-+extern struct srcu_notifier_head crypto_chain;
-
- #ifdef CONFIG_PROC_FS
- void __init crypto_init_proc(void);
-@@ -142,7 +142,7 @@
-
- static inline void crypto_notify(unsigned long val, void *v)
- {
-- blocking_notifier_call_chain(&crypto_chain, val, v);
-+ srcu_notifier_call_chain(&crypto_chain, val, v);
- }
-
- #endif /* _CRYPTO_INTERNAL_H */
-diff -Nur linux-4.1.39.orig/Documentation/hwlat_detector.txt linux-4.1.39/Documentation/hwlat_detector.txt
---- linux-4.1.39.orig/Documentation/hwlat_detector.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/Documentation/hwlat_detector.txt 2017-04-18 17:56:30.545394493 +0200
-@@ -0,0 +1,64 @@
-+Introduction:
-+-------------
-+
-+The module hwlat_detector is a special purpose kernel module that is used to
-+detect large system latencies induced by the behavior of certain underlying
-+hardware or firmware, independent of Linux itself. The code was developed
-+originally to detect SMIs (System Management Interrupts) on x86 systems,
-+however there is nothing x86 specific about this patchset. It was
-+originally written for use by the "RT" patch since the Real Time
-+kernel is highly latency sensitive.
-+
-+SMIs are usually not serviced by the Linux kernel, which typically does not
-+even know that they are occuring. SMIs are instead are set up by BIOS code
-+and are serviced by BIOS code, usually for "critical" events such as
-+management of thermal sensors and fans. Sometimes though, SMIs are used for
-+other tasks and those tasks can spend an inordinate amount of time in the
-+handler (sometimes measured in milliseconds). Obviously this is a problem if
-+you are trying to keep event service latencies down in the microsecond range.
-+
-+The hardware latency detector works by hogging all of the cpus for configurable
-+amounts of time (by calling stop_machine()), polling the CPU Time Stamp Counter
-+for some period, then looking for gaps in the TSC data. Any gap indicates a
-+time when the polling was interrupted and since the machine is stopped and
-+interrupts turned off the only thing that could do that would be an SMI.
-+
-+Note that the SMI detector should *NEVER* be used in a production environment.
-+It is intended to be run manually to determine if the hardware platform has a
-+problem with long system firmware service routines.
-+
-+Usage:
-+------
-+
-+Loading the module hwlat_detector passing the parameter "enabled=1" (or by
-+setting the "enable" entry in "hwlat_detector" debugfs toggled on) is the only
-+step required to start the hwlat_detector. It is possible to redefine the
-+threshold in microseconds (us) above which latency spikes will be taken
-+into account (parameter "threshold=").
-+
-+Example:
-+
-+ # modprobe hwlat_detector enabled=1 threshold=100
-+
-+After the module is loaded, it creates a directory named "hwlat_detector" under
-+the debugfs mountpoint, "/debug/hwlat_detector" for this text. It is necessary
-+to have debugfs mounted, which might be on /sys/debug on your system.
-+
-+The /debug/hwlat_detector interface contains the following files:
-+
-+count - number of latency spikes observed since last reset
-+enable - a global enable/disable toggle (0/1), resets count
-+max - maximum hardware latency actually observed (usecs)
-+sample - a pipe from which to read current raw sample data
-+ in the format <timestamp> <latency observed usecs>
-+ (can be opened O_NONBLOCK for a single sample)
-+threshold - minimum latency value to be considered (usecs)
-+width - time period to sample with CPUs held (usecs)
-+ must be less than the total window size (enforced)
-+window - total period of sampling, width being inside (usecs)
-+
-+By default we will set width to 500,000 and window to 1,000,000, meaning that
-+we will sample every 1,000,000 usecs (1s) for 500,000 usecs (0.5s). If we
-+observe any latencies that exceed the threshold (initially 100 usecs),
-+then we write to a global sample ring buffer of 8K samples, which is
-+consumed by reading from the "sample" (pipe) debugfs file interface.
-diff -Nur linux-4.1.39.orig/Documentation/sysrq.txt linux-4.1.39/Documentation/sysrq.txt
---- linux-4.1.39.orig/Documentation/sysrq.txt 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/Documentation/sysrq.txt 2017-04-18 17:56:30.545394493 +0200
-@@ -59,10 +59,17 @@
- On other - If you know of the key combos for other architectures, please
- let me know so I can add them to this section.
-
--On all - write a character to /proc/sysrq-trigger. e.g.:
--
-+On all - write a character to /proc/sysrq-trigger, e.g.:
- echo t > /proc/sysrq-trigger
-
-+On all - Enable network SysRq by writing a cookie to icmp_echo_sysrq, e.g.
-+ echo 0x01020304 >/proc/sys/net/ipv4/icmp_echo_sysrq
-+ Send an ICMP echo request with this pattern plus the particular
-+ SysRq command key. Example:
-+ # ping -c1 -s57 -p0102030468
-+ will trigger the SysRq-H (help) command.
-+
-+
- * What are the 'command' keys?
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 'b' - Will immediately reboot the system without syncing or unmounting
-diff -Nur linux-4.1.39.orig/Documentation/trace/histograms.txt linux-4.1.39/Documentation/trace/histograms.txt
---- linux-4.1.39.orig/Documentation/trace/histograms.txt 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/Documentation/trace/histograms.txt 2017-04-18 17:56:30.545394493 +0200
-@@ -0,0 +1,186 @@
-+ Using the Linux Kernel Latency Histograms
-+
-+
-+This document gives a short explanation how to enable, configure and use
-+latency histograms. Latency histograms are primarily relevant in the
-+context of real-time enabled kernels (CONFIG_PREEMPT/CONFIG_PREEMPT_RT)
-+and are used in the quality management of the Linux real-time
-+capabilities.
-+
-+
-+* Purpose of latency histograms
-+
-+A latency histogram continuously accumulates the frequencies of latency
-+data. There are two types of histograms
-+- potential sources of latencies
-+- effective latencies
-+
-+
-+* Potential sources of latencies
-+
-+Potential sources of latencies are code segments where interrupts,
-+preemption or both are disabled (aka critical sections). To create
-+histograms of potential sources of latency, the kernel stores the time
-+stamp at the start of a critical section, determines the time elapsed
-+when the end of the section is reached, and increments the frequency
-+counter of that latency value - irrespective of whether any concurrently
-+running process is affected by latency or not.
-+- Configuration items (in the Kernel hacking/Tracers submenu)
-+ CONFIG_INTERRUPT_OFF_LATENCY
-+ CONFIG_PREEMPT_OFF_LATENCY
-+
-+
-+* Effective latencies
-+
-+Effective latencies are actually occuring during wakeup of a process. To
-+determine effective latencies, the kernel stores the time stamp when a
-+process is scheduled to be woken up, and determines the duration of the
-+wakeup time shortly before control is passed over to this process. Note
-+that the apparent latency in user space may be somewhat longer, since the
-+process may be interrupted after control is passed over to it but before
-+the execution in user space takes place. Simply measuring the interval
-+between enqueuing and wakeup may also not appropriate in cases when a
-+process is scheduled as a result of a timer expiration. The timer may have
-+missed its deadline, e.g. due to disabled interrupts, but this latency
-+would not be registered. Therefore, the offsets of missed timers are
-+recorded in a separate histogram. If both wakeup latency and missed timer
-+offsets are configured and enabled, a third histogram may be enabled that
-+records the overall latency as a sum of the timer latency, if any, and the
-+wakeup latency. This histogram is called "timerandwakeup".
-+- Configuration items (in the Kernel hacking/Tracers submenu)
-+ CONFIG_WAKEUP_LATENCY
-+ CONFIG_MISSED_TIMER_OFSETS
-+
-+
-+* Usage
-+
-+The interface to the administration of the latency histograms is located
-+in the debugfs file system. To mount it, either enter
-+
-+mount -t sysfs nodev /sys
-+mount -t debugfs nodev /sys/kernel/debug
-+
-+from shell command line level, or add
-+
-+nodev /sys sysfs defaults 0 0
-+nodev /sys/kernel/debug debugfs defaults 0 0
-+
-+to the file /etc/fstab. All latency histogram related files are then
-+available in the directory /sys/kernel/debug/tracing/latency_hist. A
-+particular histogram type is enabled by writing non-zero to the related
-+variable in the /sys/kernel/debug/tracing/latency_hist/enable directory.
-+Select "preemptirqsoff" for the histograms of potential sources of
-+latencies and "wakeup" for histograms of effective latencies etc. The
-+histogram data - one per CPU - are available in the files
-+
-+/sys/kernel/debug/tracing/latency_hist/preemptoff/CPUx
-+/sys/kernel/debug/tracing/latency_hist/irqsoff/CPUx
-+/sys/kernel/debug/tracing/latency_hist/preemptirqsoff/CPUx
-+/sys/kernel/debug/tracing/latency_hist/wakeup/CPUx
-+/sys/kernel/debug/tracing/latency_hist/wakeup/sharedprio/CPUx
-+/sys/kernel/debug/tracing/latency_hist/missed_timer_offsets/CPUx
-+/sys/kernel/debug/tracing/latency_hist/timerandwakeup/CPUx
-+
-+The histograms are reset by writing non-zero to the file "reset" in a
-+particular latency directory. To reset all latency data, use
-+
-+#!/bin/sh
-+
-+TRACINGDIR=/sys/kernel/debug/tracing
-+HISTDIR=$TRACINGDIR/latency_hist
-+
-+if test -d $HISTDIR
-+then
-+ cd $HISTDIR
-+ for i in `find . | grep /reset$`
-+ do
-+ echo 1 >$i
-+ done
-+fi
-+
-+
-+* Data format
-+
-+Latency data are stored with a resolution of one microsecond. The
-+maximum latency is 10,240 microseconds. The data are only valid, if the
-+overflow register is empty. Every output line contains the latency in
-+microseconds in the first row and the number of samples in the second
-+row. To display only lines with a positive latency count, use, for
-+example,
-+
-+grep -v " 0$" /sys/kernel/debug/tracing/latency_hist/preemptoff/CPU0
-+
-+#Minimum latency: 0 microseconds.
-+#Average latency: 0 microseconds.
-+#Maximum latency: 25 microseconds.
-+#Total samples: 3104770694
-+#There are 0 samples greater or equal than 10240 microseconds
-+#usecs samples
-+ 0 2984486876
-+ 1 49843506
-+ 2 58219047
-+ 3 5348126
-+ 4 2187960
-+ 5 3388262
-+ 6 959289
-+ 7 208294
-+ 8 40420
-+ 9 4485
-+ 10 14918
-+ 11 18340
-+ 12 25052
-+ 13 19455
-+ 14 5602
-+ 15 969
-+ 16 47
-+ 17 18
-+ 18 14
-+ 19 1
-+ 20 3
-+ 21 2
-+ 22 5
-+ 23 2
-+ 25 1
-+
-+
-+* Wakeup latency of a selected process
-+
-+To only collect wakeup latency data of a particular process, write the
-+PID of the requested process to
-+
-+/sys/kernel/debug/tracing/latency_hist/wakeup/pid
-+
-+PIDs are not considered, if this variable is set to 0.
-+
-+
-+* Details of the process with the highest wakeup latency so far
-+
-+Selected data of the process that suffered from the highest wakeup
-+latency that occurred in a particular CPU are available in the file
-+
-+/sys/kernel/debug/tracing/latency_hist/wakeup/max_latency-CPUx.
-+
-+In addition, other relevant system data at the time when the
-+latency occurred are given.
-+
-+The format of the data is (all in one line):
-+<PID> <Priority> <Latency> (<Timeroffset>) <Command> \
-+<- <PID> <Priority> <Command> <Timestamp>
-+
-+The value of <Timeroffset> is only relevant in the combined timer
-+and wakeup latency recording. In the wakeup recording, it is
-+always 0, in the missed_timer_offsets recording, it is the same
-+as <Latency>.
-+
-+When retrospectively searching for the origin of a latency and
-+tracing was not enabled, it may be helpful to know the name and
-+some basic data of the task that (finally) was switching to the
-+late real-tlme task. In addition to the victim's data, also the
-+data of the possible culprit are therefore displayed after the
-+"<-" symbol.
-+
-+Finally, the timestamp of the time when the latency occurred
-+in <seconds>.<microseconds> after the most recent system boot
-+is provided.
-+
-+These data are also reset when the wakeup histogram is reset.
-diff -Nur linux-4.1.39.orig/drivers/acpi/acpica/acglobal.h linux-4.1.39/drivers/acpi/acpica/acglobal.h
---- linux-4.1.39.orig/drivers/acpi/acpica/acglobal.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/acpi/acpica/acglobal.h 2017-04-18 17:56:30.573395579 +0200
-@@ -112,7 +112,7 @@
- * interrupt level
- */
- ACPI_GLOBAL(acpi_spinlock, acpi_gbl_gpe_lock); /* For GPE data structs and registers */
--ACPI_GLOBAL(acpi_spinlock, acpi_gbl_hardware_lock); /* For ACPI H/W except GPE registers */
-+ACPI_GLOBAL(acpi_raw_spinlock, acpi_gbl_hardware_lock); /* For ACPI H/W except GPE registers */
- ACPI_GLOBAL(acpi_spinlock, acpi_gbl_reference_count_lock);
-
- /* Mutex for _OSI support */
-diff -Nur linux-4.1.39.orig/drivers/acpi/acpica/hwregs.c linux-4.1.39/drivers/acpi/acpica/hwregs.c
---- linux-4.1.39.orig/drivers/acpi/acpica/hwregs.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/acpi/acpica/hwregs.c 2017-04-18 17:56:30.573395579 +0200
-@@ -269,14 +269,14 @@
- ACPI_BITMASK_ALL_FIXED_STATUS,
- ACPI_FORMAT_UINT64(acpi_gbl_xpm1a_status.address)));
-
-- lock_flags = acpi_os_acquire_lock(acpi_gbl_hardware_lock);
-+ raw_spin_lock_irqsave(acpi_gbl_hardware_lock, lock_flags);
-
- /* Clear the fixed events in PM1 A/B */
-
- status = acpi_hw_register_write(ACPI_REGISTER_PM1_STATUS,
- ACPI_BITMASK_ALL_FIXED_STATUS);
-
-- acpi_os_release_lock(acpi_gbl_hardware_lock, lock_flags);
-+ raw_spin_unlock_irqrestore(acpi_gbl_hardware_lock, lock_flags);
-
- if (ACPI_FAILURE(status)) {
- goto exit;
-diff -Nur linux-4.1.39.orig/drivers/acpi/acpica/hwxface.c linux-4.1.39/drivers/acpi/acpica/hwxface.c
---- linux-4.1.39.orig/drivers/acpi/acpica/hwxface.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/acpi/acpica/hwxface.c 2017-04-18 17:56:30.577395735 +0200
-@@ -374,7 +374,7 @@
- return_ACPI_STATUS(AE_BAD_PARAMETER);
- }
-
-- lock_flags = acpi_os_acquire_lock(acpi_gbl_hardware_lock);
-+ raw_spin_lock_irqsave(acpi_gbl_hardware_lock, lock_flags);
-
- /*
- * At this point, we know that the parent register is one of the
-@@ -435,7 +435,7 @@
-
- unlock_and_exit:
-
-- acpi_os_release_lock(acpi_gbl_hardware_lock, lock_flags);
-+ raw_spin_unlock_irqrestore(acpi_gbl_hardware_lock, lock_flags);
- return_ACPI_STATUS(status);
- }
-
-diff -Nur linux-4.1.39.orig/drivers/acpi/acpica/utmutex.c linux-4.1.39/drivers/acpi/acpica/utmutex.c
---- linux-4.1.39.orig/drivers/acpi/acpica/utmutex.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/acpi/acpica/utmutex.c 2017-04-18 17:56:30.577395735 +0200
-@@ -88,7 +88,7 @@
- return_ACPI_STATUS (status);
- }
-
-- status = acpi_os_create_lock (&acpi_gbl_hardware_lock);
-+ status = acpi_os_create_raw_lock (&acpi_gbl_hardware_lock);
- if (ACPI_FAILURE (status)) {
- return_ACPI_STATUS (status);
- }
-@@ -141,7 +141,7 @@
- /* Delete the spinlocks */
-
- acpi_os_delete_lock(acpi_gbl_gpe_lock);
-- acpi_os_delete_lock(acpi_gbl_hardware_lock);
-+ acpi_os_delete_raw_lock(acpi_gbl_hardware_lock);
- acpi_os_delete_lock(acpi_gbl_reference_count_lock);
-
- /* Delete the reader/writer lock */
-diff -Nur linux-4.1.39.orig/drivers/ata/libata-sff.c linux-4.1.39/drivers/ata/libata-sff.c
---- linux-4.1.39.orig/drivers/ata/libata-sff.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/ata/libata-sff.c 2017-04-18 17:56:30.577395735 +0200
-@@ -678,9 +678,9 @@
- unsigned long flags;
- unsigned int consumed;
-
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- consumed = ata_sff_data_xfer32(dev, buf, buflen, rw);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
-
- return consumed;
- }
-@@ -719,7 +719,7 @@
- unsigned long flags;
-
- /* FIXME: use a bounce buffer */
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- buf = kmap_atomic(page);
-
- /* do the actual data transfer */
-@@ -727,7 +727,7 @@
- do_write);
-
- kunmap_atomic(buf);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- } else {
- buf = page_address(page);
- ap->ops->sff_data_xfer(qc->dev, buf + offset, qc->sect_size,
-@@ -864,7 +864,7 @@
- unsigned long flags;
-
- /* FIXME: use bounce buffer */
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- buf = kmap_atomic(page);
-
- /* do the actual data transfer */
-@@ -872,7 +872,7 @@
- count, rw);
-
- kunmap_atomic(buf);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- } else {
- buf = page_address(page);
- consumed = ap->ops->sff_data_xfer(dev, buf + offset,
-diff -Nur linux-4.1.39.orig/drivers/block/zram/zram_drv.c linux-4.1.39/drivers/block/zram/zram_drv.c
---- linux-4.1.39.orig/drivers/block/zram/zram_drv.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/block/zram/zram_drv.c 2017-04-18 17:56:30.577395735 +0200
-@@ -386,6 +386,8 @@
- goto out_error;
- }
-
-+ zram_meta_init_table_locks(meta, disksize);
-+
- return meta;
-
- out_error:
-@@ -484,12 +486,12 @@
- unsigned long handle;
- size_t size;
-
-- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_lock_table(&meta->table[index]);
- handle = meta->table[index].handle;
- size = zram_get_obj_size(meta, index);
-
- if (!handle || zram_test_flag(meta, index, ZRAM_ZERO)) {
-- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_unlock_table(&meta->table[index]);
- clear_page(mem);
- return 0;
- }
-@@ -500,7 +502,7 @@
- else
- ret = zcomp_decompress(zram->comp, cmem, size, mem);
- zs_unmap_object(meta->mem_pool, handle);
-- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_unlock_table(&meta->table[index]);
-
- /* Should NEVER happen. Return bio error if it does. */
- if (unlikely(ret)) {
-@@ -520,14 +522,14 @@
- struct zram_meta *meta = zram->meta;
- page = bvec->bv_page;
-
-- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_lock_table(&meta->table[index]);
- if (unlikely(!meta->table[index].handle) ||
- zram_test_flag(meta, index, ZRAM_ZERO)) {
-- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_unlock_table(&meta->table[index]);
- handle_zero_page(bvec);
- return 0;
- }
-- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_unlock_table(&meta->table[index]);
-
- if (is_partial_io(bvec))
- /* Use a temporary buffer to decompress the page */
-@@ -622,10 +624,10 @@
- if (user_mem)
- kunmap_atomic(user_mem);
- /* Free memory associated with this sector now. */
-- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_lock_table(&meta->table[index]);
- zram_free_page(zram, index);
- zram_set_flag(meta, index, ZRAM_ZERO);
-- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_unlock_table(&meta->table[index]);
-
- atomic64_inc(&zram->stats.zero_pages);
- ret = 0;
-@@ -685,12 +687,12 @@
- * Free memory associated with this sector
- * before overwriting unused sectors.
- */
-- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_lock_table(&meta->table[index]);
- zram_free_page(zram, index);
-
- meta->table[index].handle = handle;
- zram_set_obj_size(meta, index, clen);
-- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_unlock_table(&meta->table[index]);
-
- /* Update stats */
- atomic64_add(clen, &zram->stats.compr_data_size);
-@@ -762,9 +764,9 @@
- }
-
- while (n >= PAGE_SIZE) {
-- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_lock_table(&meta->table[index]);
- zram_free_page(zram, index);
-- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_unlock_table(&meta->table[index]);
- atomic64_inc(&zram->stats.notify_free);
- index++;
- n -= PAGE_SIZE;
-@@ -1007,9 +1009,9 @@
- zram = bdev->bd_disk->private_data;
- meta = zram->meta;
-
-- bit_spin_lock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_lock_table(&meta->table[index]);
- zram_free_page(zram, index);
-- bit_spin_unlock(ZRAM_ACCESS, &meta->table[index].value);
-+ zram_unlock_table(&meta->table[index]);
- atomic64_inc(&zram->stats.notify_free);
- }
-
-diff -Nur linux-4.1.39.orig/drivers/block/zram/zram_drv.h linux-4.1.39/drivers/block/zram/zram_drv.h
---- linux-4.1.39.orig/drivers/block/zram/zram_drv.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/block/zram/zram_drv.h 2017-04-18 17:56:30.577395735 +0200
-@@ -78,6 +78,9 @@
- struct zram_table_entry {
- unsigned long handle;
- unsigned long value;
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ spinlock_t lock;
-+#endif
- };
-
- struct zram_stats {
-@@ -122,4 +125,42 @@
- u64 disksize; /* bytes */
- char compressor[10];
- };
-+
-+#ifndef CONFIG_PREEMPT_RT_BASE
-+static inline void zram_lock_table(struct zram_table_entry *table)
-+{
-+ bit_spin_lock(ZRAM_ACCESS, &table->value);
-+}
-+
-+static inline void zram_unlock_table(struct zram_table_entry *table)
-+{
-+ bit_spin_unlock(ZRAM_ACCESS, &table->value);
-+}
-+
-+static inline void zram_meta_init_table_locks(struct zram_meta *meta, u64 disksize) { }
-+#else /* CONFIG_PREEMPT_RT_BASE */
-+static inline void zram_lock_table(struct zram_table_entry *table)
-+{
-+ spin_lock(&table->lock);
-+ __set_bit(ZRAM_ACCESS, &table->value);
-+}
-+
-+static inline void zram_unlock_table(struct zram_table_entry *table)
-+{
-+ __clear_bit(ZRAM_ACCESS, &table->value);
-+ spin_unlock(&table->lock);
-+}
-+
-+static inline void zram_meta_init_table_locks(struct zram_meta *meta, u64 disksize)
-+{
-+ size_t num_pages = disksize >> PAGE_SHIFT;
-+ size_t index;
-+
-+ for (index = 0; index < num_pages; index++) {
-+ spinlock_t *lock = &meta->table[index].lock;
-+ spin_lock_init(lock);
-+ }
-+}
-+#endif /* CONFIG_PREEMPT_RT_BASE */
-+
- #endif
-diff -Nur linux-4.1.39.orig/drivers/char/random.c linux-4.1.39/drivers/char/random.c
---- linux-4.1.39.orig/drivers/char/random.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/char/random.c 2017-04-18 17:56:30.577395735 +0200
-@@ -776,8 +776,6 @@
- } sample;
- long delta, delta2, delta3;
-
-- preempt_disable();
--
- sample.jiffies = jiffies;
- sample.cycles = random_get_entropy();
- sample.num = num;
-@@ -818,7 +816,6 @@
- */
- credit_entropy_bits(r, min_t(int, fls(delta>>1), 11));
- }
-- preempt_enable();
- }
-
- void add_input_randomness(unsigned int type, unsigned int code,
-@@ -871,28 +868,27 @@
- return *(ptr + f->reg_idx++);
- }
-
--void add_interrupt_randomness(int irq, int irq_flags)
-+void add_interrupt_randomness(int irq, int irq_flags, __u64 ip)
- {
- struct entropy_store *r;
- struct fast_pool *fast_pool = this_cpu_ptr(&irq_randomness);
-- struct pt_regs *regs = get_irq_regs();
- unsigned long now = jiffies;
- cycles_t cycles = random_get_entropy();
- __u32 c_high, j_high;
-- __u64 ip;
- unsigned long seed;
- int credit = 0;
-
- if (cycles == 0)
-- cycles = get_reg(fast_pool, regs);
-+ cycles = get_reg(fast_pool, NULL);
- c_high = (sizeof(cycles) > 4) ? cycles >> 32 : 0;
- j_high = (sizeof(now) > 4) ? now >> 32 : 0;
- fast_pool->pool[0] ^= cycles ^ j_high ^ irq;
- fast_pool->pool[1] ^= now ^ c_high;
-- ip = regs ? instruction_pointer(regs) : _RET_IP_;
-+ if (!ip)
-+ ip = _RET_IP_;
- fast_pool->pool[2] ^= ip;
- fast_pool->pool[3] ^= (sizeof(ip) > 4) ? ip >> 32 :
-- get_reg(fast_pool, regs);
-+ get_reg(fast_pool, NULL);
-
- fast_mix(fast_pool);
- add_interrupt_bench(cycles);
-diff -Nur linux-4.1.39.orig/drivers/clk/at91/pmc.c linux-4.1.39/drivers/clk/at91/pmc.c
---- linux-4.1.39.orig/drivers/clk/at91/pmc.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/clk/at91/pmc.c 2017-04-18 17:56:30.577395735 +0200
-@@ -27,21 +27,6 @@
- void __iomem *at91_pmc_base;
- EXPORT_SYMBOL_GPL(at91_pmc_base);
-
--void at91rm9200_idle(void)
--{
-- /*
-- * Disable the processor clock. The processor will be automatically
-- * re-enabled by an interrupt or by a reset.
-- */
-- at91_pmc_write(AT91_PMC_SCDR, AT91_PMC_PCK);
--}
--
--void at91sam9_idle(void)
--{
-- at91_pmc_write(AT91_PMC_SCDR, AT91_PMC_PCK);
-- cpu_do_idle();
--}
--
- int of_at91_get_clk_range(struct device_node *np, const char *propname,
- struct clk_range *range)
- {
-diff -Nur linux-4.1.39.orig/drivers/clocksource/tcb_clksrc.c linux-4.1.39/drivers/clocksource/tcb_clksrc.c
---- linux-4.1.39.orig/drivers/clocksource/tcb_clksrc.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/clocksource/tcb_clksrc.c 2017-04-18 17:56:30.577395735 +0200
-@@ -23,8 +23,7 @@
- * this 32 bit free-running counter. the second channel is not used.
- *
- * - The third channel may be used to provide a 16-bit clockevent
-- * source, used in either periodic or oneshot mode. This runs
-- * at 32 KiHZ, and can handle delays of up to two seconds.
-+ * source, used in either periodic or oneshot mode.
- *
- * A boot clocksource and clockevent source are also currently needed,
- * unless the relevant platforms (ARM/AT91, AVR32/AT32) are changed so
-@@ -74,6 +73,7 @@
- struct tc_clkevt_device {
- struct clock_event_device clkevt;
- struct clk *clk;
-+ u32 freq;
- void __iomem *regs;
- };
-
-@@ -82,13 +82,6 @@
- return container_of(clkevt, struct tc_clkevt_device, clkevt);
- }
-
--/* For now, we always use the 32K clock ... this optimizes for NO_HZ,
-- * because using one of the divided clocks would usually mean the
-- * tick rate can never be less than several dozen Hz (vs 0.5 Hz).
-- *
-- * A divided clock could be good for high resolution timers, since
-- * 30.5 usec resolution can seem "low".
-- */
- static u32 timer_clock;
-
- static void tc_mode(enum clock_event_mode m, struct clock_event_device *d)
-@@ -111,11 +104,12 @@
- case CLOCK_EVT_MODE_PERIODIC:
- clk_enable(tcd->clk);
-
-- /* slow clock, count up to RC, then irq and restart */
-+ /* count up to RC, then irq and restart */
- __raw_writel(timer_clock
- | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO,
- regs + ATMEL_TC_REG(2, CMR));
-- __raw_writel((32768 + HZ/2) / HZ, tcaddr + ATMEL_TC_REG(2, RC));
-+ __raw_writel((tcd->freq + HZ / 2) / HZ,
-+ tcaddr + ATMEL_TC_REG(2, RC));
-
- /* Enable clock and interrupts on RC compare */
- __raw_writel(ATMEL_TC_CPCS, regs + ATMEL_TC_REG(2, IER));
-@@ -128,7 +122,7 @@
- case CLOCK_EVT_MODE_ONESHOT:
- clk_enable(tcd->clk);
-
-- /* slow clock, count up to RC, then irq and stop */
-+ /* count up to RC, then irq and stop */
- __raw_writel(timer_clock | ATMEL_TC_CPCSTOP
- | ATMEL_TC_WAVE | ATMEL_TC_WAVESEL_UP_AUTO,
- regs + ATMEL_TC_REG(2, CMR));
-@@ -157,8 +151,12 @@
- .name = "tc_clkevt",
- .features = CLOCK_EVT_FEAT_PERIODIC
- | CLOCK_EVT_FEAT_ONESHOT,
-+#ifdef CONFIG_ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK
- /* Should be lower than at91rm9200's system timer */
- .rating = 125,
-+#else
-+ .rating = 200,
-+#endif
- .set_next_event = tc_next_event,
- .set_mode = tc_mode,
- },
-@@ -178,8 +176,9 @@
- return IRQ_NONE;
- }
-
--static int __init setup_clkevents(struct atmel_tc *tc, int clk32k_divisor_idx)
-+static int __init setup_clkevents(struct atmel_tc *tc, int divisor_idx)
- {
-+ unsigned divisor = atmel_tc_divisors[divisor_idx];
- int ret;
- struct clk *t2_clk = tc->clk[2];
- int irq = tc->irq[2];
-@@ -193,7 +192,11 @@
- clkevt.regs = tc->regs;
- clkevt.clk = t2_clk;
-
-- timer_clock = clk32k_divisor_idx;
-+ timer_clock = divisor_idx;
-+ if (!divisor)
-+ clkevt.freq = 32768;
-+ else
-+ clkevt.freq = clk_get_rate(t2_clk) / divisor;
-
- clkevt.clkevt.cpumask = cpumask_of(0);
-
-@@ -203,7 +206,7 @@
- return ret;
- }
-
-- clockevents_config_and_register(&clkevt.clkevt, 32768, 1, 0xffff);
-+ clockevents_config_and_register(&clkevt.clkevt, clkevt.freq, 1, 0xffff);
-
- return ret;
- }
-@@ -340,7 +343,11 @@
- goto err_disable_t1;
-
- /* channel 2: periodic and oneshot timer support */
-+#ifdef CONFIG_ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK
- ret = setup_clkevents(tc, clk32k_divisor_idx);
-+#else
-+ ret = setup_clkevents(tc, best_divisor_idx);
-+#endif
- if (ret)
- goto err_unregister_clksrc;
-
-diff -Nur linux-4.1.39.orig/drivers/clocksource/timer-atmel-pit.c linux-4.1.39/drivers/clocksource/timer-atmel-pit.c
---- linux-4.1.39.orig/drivers/clocksource/timer-atmel-pit.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/clocksource/timer-atmel-pit.c 2017-04-18 17:56:30.577395735 +0200
-@@ -90,6 +90,7 @@
- return elapsed;
- }
-
-+static struct irqaction at91sam926x_pit_irq;
- /*
- * Clockevent device: interrupts every 1/HZ (== pit_cycles * MCK/16)
- */
-@@ -100,6 +101,8 @@
-
- switch (mode) {
- case CLOCK_EVT_MODE_PERIODIC:
-+ /* Set up irq handler */
-+ setup_irq(at91sam926x_pit_irq.irq, &at91sam926x_pit_irq);
- /* update clocksource counter */
- data->cnt += data->cycle * PIT_PICNT(pit_read(data->base, AT91_PIT_PIVR));
- pit_write(data->base, AT91_PIT_MR,
-@@ -113,6 +116,7 @@
- /* disable irq, leaving the clocksource active */
- pit_write(data->base, AT91_PIT_MR,
- (data->cycle - 1) | AT91_PIT_PITEN);
-+ remove_irq(at91sam926x_pit_irq.irq, &at91sam926x_pit_irq);
- break;
- case CLOCK_EVT_MODE_RESUME:
- break;
-diff -Nur linux-4.1.39.orig/drivers/clocksource/timer-atmel-st.c linux-4.1.39/drivers/clocksource/timer-atmel-st.c
---- linux-4.1.39.orig/drivers/clocksource/timer-atmel-st.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/clocksource/timer-atmel-st.c 2017-04-18 17:56:30.577395735 +0200
-@@ -131,6 +131,7 @@
- break;
- case CLOCK_EVT_MODE_SHUTDOWN:
- case CLOCK_EVT_MODE_UNUSED:
-+ remove_irq(NR_IRQS_LEGACY + AT91_ID_SYS, &at91rm9200_timer_irq);
- case CLOCK_EVT_MODE_RESUME:
- irqmask = 0;
- break;
-diff -Nur linux-4.1.39.orig/drivers/cpufreq/cpufreq.c linux-4.1.39/drivers/cpufreq/cpufreq.c
---- linux-4.1.39.orig/drivers/cpufreq/cpufreq.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/cpufreq/cpufreq.c 2017-04-18 17:56:30.577395735 +0200
-@@ -64,12 +64,6 @@
- return cpufreq_driver->target_index || cpufreq_driver->target;
- }
-
--/*
-- * rwsem to guarantee that cpufreq driver module doesn't unload during critical
-- * sections
-- */
--static DECLARE_RWSEM(cpufreq_rwsem);
--
- /* internal prototypes */
- static int __cpufreq_governor(struct cpufreq_policy *policy,
- unsigned int event);
-@@ -215,9 +209,6 @@
- if (cpu >= nr_cpu_ids)
- return NULL;
-
-- if (!down_read_trylock(&cpufreq_rwsem))
-- return NULL;
--
- /* get the cpufreq driver */
- read_lock_irqsave(&cpufreq_driver_lock, flags);
-
-@@ -230,9 +221,6 @@
-
- read_unlock_irqrestore(&cpufreq_driver_lock, flags);
-
-- if (!policy)
-- up_read(&cpufreq_rwsem);
--
- return policy;
- }
- EXPORT_SYMBOL_GPL(cpufreq_cpu_get);
-@@ -240,7 +228,6 @@
- void cpufreq_cpu_put(struct cpufreq_policy *policy)
- {
- kobject_put(&policy->kobj);
-- up_read(&cpufreq_rwsem);
- }
- EXPORT_SYMBOL_GPL(cpufreq_cpu_put);
-
-@@ -765,9 +752,6 @@
- struct freq_attr *fattr = to_attr(attr);
- ssize_t ret;
-
-- if (!down_read_trylock(&cpufreq_rwsem))
-- return -EINVAL;
--
- down_read(&policy->rwsem);
-
- if (fattr->show)
-@@ -776,7 +760,6 @@
- ret = -EIO;
-
- up_read(&policy->rwsem);
-- up_read(&cpufreq_rwsem);
-
- return ret;
- }
-@@ -793,9 +776,6 @@
- if (!cpu_online(policy->cpu))
- goto unlock;
-
-- if (!down_read_trylock(&cpufreq_rwsem))
-- goto unlock;
--
- down_write(&policy->rwsem);
-
- if (fattr->store)
-@@ -804,8 +784,6 @@
- ret = -EIO;
-
- up_write(&policy->rwsem);
--
-- up_read(&cpufreq_rwsem);
- unlock:
- put_online_cpus();
-
-@@ -1117,16 +1095,12 @@
- if (unlikely(policy))
- return 0;
-
-- if (!down_read_trylock(&cpufreq_rwsem))
-- return 0;
--
- /* Check if this cpu was hot-unplugged earlier and has siblings */
- read_lock_irqsave(&cpufreq_driver_lock, flags);
- for_each_policy(policy) {
- if (cpumask_test_cpu(cpu, policy->related_cpus)) {
- read_unlock_irqrestore(&cpufreq_driver_lock, flags);
- ret = cpufreq_add_policy_cpu(policy, cpu, dev);
-- up_read(&cpufreq_rwsem);
- return ret;
- }
- }
-@@ -1269,8 +1243,6 @@
-
- kobject_uevent(&policy->kobj, KOBJ_ADD);
-
-- up_read(&cpufreq_rwsem);
--
- /* Callback for handling stuff after policy is ready */
- if (cpufreq_driver->ready)
- cpufreq_driver->ready(policy);
-@@ -1304,8 +1276,6 @@
- cpufreq_policy_free(policy);
-
- nomem_out:
-- up_read(&cpufreq_rwsem);
--
- return ret;
- }
-
-@@ -2499,19 +2469,20 @@
-
- pr_debug("unregistering driver %s\n", driver->name);
-
-+ /* Protect against concurrent cpu hotplug */
-+ get_online_cpus();
- subsys_interface_unregister(&cpufreq_interface);
- if (cpufreq_boost_supported())
- cpufreq_sysfs_remove_file(&boost.attr);
-
- unregister_hotcpu_notifier(&cpufreq_cpu_notifier);
-
-- down_write(&cpufreq_rwsem);
- write_lock_irqsave(&cpufreq_driver_lock, flags);
-
- cpufreq_driver = NULL;
-
- write_unlock_irqrestore(&cpufreq_driver_lock, flags);
-- up_write(&cpufreq_rwsem);
-+ put_online_cpus();
-
- return 0;
- }
-diff -Nur linux-4.1.39.orig/drivers/cpufreq/Kconfig.x86 linux-4.1.39/drivers/cpufreq/Kconfig.x86
---- linux-4.1.39.orig/drivers/cpufreq/Kconfig.x86 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/cpufreq/Kconfig.x86 2017-04-18 17:56:30.577395735 +0200
-@@ -123,7 +123,7 @@
-
- config X86_POWERNOW_K8
- tristate "AMD Opteron/Athlon64 PowerNow!"
-- depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
-+ depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ && !PREEMPT_RT_BASE
- help
- This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
- Support for K10 and newer processors is now in acpi-cpufreq.
-diff -Nur linux-4.1.39.orig/drivers/gpio/gpio-omap.c linux-4.1.39/drivers/gpio/gpio-omap.c
---- linux-4.1.39.orig/drivers/gpio/gpio-omap.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/gpio/gpio-omap.c 2017-04-18 17:56:30.577395735 +0200
-@@ -29,6 +29,7 @@
- #include <linux/platform_data/gpio-omap.h>
-
- #define OFF_MODE 1
-+#define OMAP4_GPIO_DEBOUNCINGTIME_MASK 0xFF
-
- static LIST_HEAD(omap_gpio_list);
-
-@@ -50,14 +51,15 @@
- struct gpio_bank {
- struct list_head node;
- void __iomem *base;
-- u16 irq;
-+ int irq;
- u32 non_wakeup_gpios;
- u32 enabled_non_wakeup_gpios;
- struct gpio_regs context;
- u32 saved_datain;
- u32 level_mask;
- u32 toggle_mask;
-- spinlock_t lock;
-+ raw_spinlock_t lock;
-+ raw_spinlock_t wa_lock;
- struct gpio_chip chip;
- struct clk *dbck;
- u32 mod_usage;
-@@ -67,7 +69,7 @@
- struct device *dev;
- bool is_mpuio;
- bool dbck_flag;
-- bool loses_context;
-+
- bool context_valid;
- int stride;
- u32 width;
-@@ -175,7 +177,7 @@
- static inline void omap_gpio_dbck_enable(struct gpio_bank *bank)
- {
- if (bank->dbck_enable_mask && !bank->dbck_enabled) {
-- clk_prepare_enable(bank->dbck);
-+ clk_enable(bank->dbck);
- bank->dbck_enabled = true;
-
- writel_relaxed(bank->dbck_enable_mask,
-@@ -193,7 +195,7 @@
- */
- writel_relaxed(0, bank->base + bank->regs->debounce_en);
-
-- clk_disable_unprepare(bank->dbck);
-+ clk_disable(bank->dbck);
- bank->dbck_enabled = false;
- }
- }
-@@ -204,8 +206,9 @@
- * @offset: the gpio number on this @bank
- * @debounce: debounce time to use
- *
-- * OMAP's debounce time is in 31us steps so we need
-- * to convert and round up to the closest unit.
-+ * OMAP's debounce time is in 31us steps
-+ * <debounce time> = (GPIO_DEBOUNCINGTIME[7:0].DEBOUNCETIME + 1) x 31
-+ * so we need to convert and round up to the closest unit.
- */
- static void omap2_set_gpio_debounce(struct gpio_bank *bank, unsigned offset,
- unsigned debounce)
-@@ -213,34 +216,33 @@
- void __iomem *reg;
- u32 val;
- u32 l;
-+ bool enable = !!debounce;
-
- if (!bank->dbck_flag)
- return;
-
-- if (debounce < 32)
-- debounce = 0x01;
-- else if (debounce > 7936)
-- debounce = 0xff;
-- else
-- debounce = (debounce / 0x1f) - 1;
-+ if (enable) {
-+ debounce = DIV_ROUND_UP(debounce, 31) - 1;
-+ debounce &= OMAP4_GPIO_DEBOUNCINGTIME_MASK;
-+ }
-
- l = BIT(offset);
-
-- clk_prepare_enable(bank->dbck);
-+ clk_enable(bank->dbck);
- reg = bank->base + bank->regs->debounce;
- writel_relaxed(debounce, reg);
-
- reg = bank->base + bank->regs->debounce_en;
- val = readl_relaxed(reg);
-
-- if (debounce)
-+ if (enable)
- val |= l;
- else
- val &= ~l;
- bank->dbck_enable_mask = val;
-
- writel_relaxed(val, reg);
-- clk_disable_unprepare(bank->dbck);
-+ clk_disable(bank->dbck);
- /*
- * Enable debounce clock per module.
- * This call is mandatory because in omap_gpio_request() when
-@@ -285,7 +287,7 @@
- bank->context.debounce = 0;
- writel_relaxed(bank->context.debounce, bank->base +
- bank->regs->debounce);
-- clk_disable_unprepare(bank->dbck);
-+ clk_disable(bank->dbck);
- bank->dbck_enabled = false;
- }
- }
-@@ -488,9 +490,6 @@
- unsigned long flags;
- unsigned offset = d->hwirq;
-
-- if (!BANK_USED(bank))
-- pm_runtime_get_sync(bank->dev);
--
- if (type & ~IRQ_TYPE_SENSE_MASK)
- return -EINVAL;
-
-@@ -498,20 +497,28 @@
- (type & (IRQ_TYPE_LEVEL_LOW|IRQ_TYPE_LEVEL_HIGH)))
- return -EINVAL;
-
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- retval = omap_set_gpio_triggering(bank, offset, type);
-+ if (retval) {
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-+ goto error;
-+ }
- omap_gpio_init_irq(bank, offset);
- if (!omap_gpio_is_input(bank, offset)) {
-- spin_unlock_irqrestore(&bank->lock, flags);
-- return -EINVAL;
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-+ retval = -EINVAL;
-+ goto error;
- }
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-
- if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH))
- __irq_set_handler_locked(d->irq, handle_level_irq);
- else if (type & (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
- __irq_set_handler_locked(d->irq, handle_edge_irq);
-
-+ return 0;
-+
-+error:
- return retval;
- }
-
-@@ -626,34 +633,30 @@
- return -EINVAL;
- }
-
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- if (enable)
- bank->context.wake_en |= gpio_bit;
- else
- bank->context.wake_en &= ~gpio_bit;
-
- writel_relaxed(bank->context.wake_en, bank->base + bank->regs->wkup_en);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-
- return 0;
- }
-
--static void omap_reset_gpio(struct gpio_bank *bank, unsigned offset)
--{
-- omap_set_gpio_direction(bank, offset, 1);
-- omap_set_gpio_irqenable(bank, offset, 0);
-- omap_clear_gpio_irqstatus(bank, offset);
-- omap_set_gpio_triggering(bank, offset, IRQ_TYPE_NONE);
-- omap_clear_gpio_debounce(bank, offset);
--}
--
- /* Use disable_irq_wake() and enable_irq_wake() functions from drivers */
- static int omap_gpio_wake_enable(struct irq_data *d, unsigned int enable)
- {
- struct gpio_bank *bank = omap_irq_data_get_bank(d);
- unsigned offset = d->hwirq;
-+ int ret;
-+
-+ ret = omap_set_gpio_wakeup(bank, offset, enable);
-+ if (!ret)
-+ ret = irq_set_irq_wake(bank->irq, enable);
-
-- return omap_set_gpio_wakeup(bank, offset, enable);
-+ return ret;
- }
-
- static int omap_gpio_request(struct gpio_chip *chip, unsigned offset)
-@@ -668,17 +671,10 @@
- if (!BANK_USED(bank))
- pm_runtime_get_sync(bank->dev);
-
-- spin_lock_irqsave(&bank->lock, flags);
-- /* Set trigger to none. You need to enable the desired trigger with
-- * request_irq() or set_irq_type(). Only do this if the IRQ line has
-- * not already been requested.
-- */
-- if (!LINE_USED(bank->irq_usage, offset)) {
-- omap_set_gpio_triggering(bank, offset, IRQ_TYPE_NONE);
-- omap_enable_gpio_module(bank, offset);
-- }
-+ raw_spin_lock_irqsave(&bank->lock, flags);
-+ omap_enable_gpio_module(bank, offset);
- bank->mod_usage |= BIT(offset);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-
- return 0;
- }
-@@ -688,11 +684,14 @@
- struct gpio_bank *bank = container_of(chip, struct gpio_bank, chip);
- unsigned long flags;
-
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- bank->mod_usage &= ~(BIT(offset));
-+ if (!LINE_USED(bank->irq_usage, offset)) {
-+ omap_set_gpio_direction(bank, offset, 1);
-+ omap_clear_gpio_debounce(bank, offset);
-+ }
- omap_disable_gpio_module(bank, offset);
-- omap_reset_gpio(bank, offset);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-
- /*
- * If this is the last gpio to be freed in the bank,
-@@ -711,29 +710,27 @@
- * line's interrupt handler has been run, we may miss some nested
- * interrupts.
- */
--static void omap_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
-+static irqreturn_t omap_gpio_irq_handler(int irq, void *gpiobank)
- {
- void __iomem *isr_reg = NULL;
- u32 isr;
- unsigned int bit;
-- struct gpio_bank *bank;
-- int unmasked = 0;
-- struct irq_chip *irqchip = irq_desc_get_chip(desc);
-- struct gpio_chip *chip = irq_get_handler_data(irq);
-+ struct gpio_bank *bank = gpiobank;
-+ unsigned long wa_lock_flags;
-+ unsigned long lock_flags;
-
-- chained_irq_enter(irqchip, desc);
--
-- bank = container_of(chip, struct gpio_bank, chip);
- isr_reg = bank->base + bank->regs->irqstatus;
-- pm_runtime_get_sync(bank->dev);
--
- if (WARN_ON(!isr_reg))
- goto exit;
-
-+ pm_runtime_get_sync(bank->dev);
-+
- while (1) {
- u32 isr_saved, level_mask = 0;
- u32 enabled;
-
-+ raw_spin_lock_irqsave(&bank->lock, lock_flags);
-+
- enabled = omap_get_gpio_irqbank_mask(bank);
- isr_saved = isr = readl_relaxed(isr_reg) & enabled;
-
-@@ -747,12 +744,7 @@
- omap_clear_gpio_irqbank(bank, isr_saved & ~level_mask);
- omap_enable_gpio_irqbank(bank, isr_saved & ~level_mask);
-
-- /* if there is only edge sensitive GPIO pin interrupts
-- configured, we could unmask GPIO bank interrupt immediately */
-- if (!level_mask && !unmasked) {
-- unmasked = 1;
-- chained_irq_exit(irqchip, desc);
-- }
-+ raw_spin_unlock_irqrestore(&bank->lock, lock_flags);
-
- if (!isr)
- break;
-@@ -761,6 +753,7 @@
- bit = __ffs(isr);
- isr &= ~(BIT(bit));
-
-+ raw_spin_lock_irqsave(&bank->lock, lock_flags);
- /*
- * Some chips can't respond to both rising and falling
- * at the same time. If this irq was requested with
-@@ -771,18 +764,20 @@
- if (bank->toggle_mask & (BIT(bit)))
- omap_toggle_gpio_edge_triggering(bank, bit);
-
-+ raw_spin_unlock_irqrestore(&bank->lock, lock_flags);
-+
-+ raw_spin_lock_irqsave(&bank->wa_lock, wa_lock_flags);
-+
- generic_handle_irq(irq_find_mapping(bank->chip.irqdomain,
- bit));
-+
-+ raw_spin_unlock_irqrestore(&bank->wa_lock,
-+ wa_lock_flags);
- }
- }
-- /* if bank has any level sensitive GPIO pin interrupt
-- configured, we must unmask the bank interrupt only after
-- handler(s) are executed in order to avoid spurious bank
-- interrupt */
- exit:
-- if (!unmasked)
-- chained_irq_exit(irqchip, desc);
- pm_runtime_put(bank->dev);
-+ return IRQ_HANDLED;
- }
-
- static unsigned int omap_gpio_irq_startup(struct irq_data *d)
-@@ -791,15 +786,22 @@
- unsigned long flags;
- unsigned offset = d->hwirq;
-
-- if (!BANK_USED(bank))
-- pm_runtime_get_sync(bank->dev);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
-
-- spin_lock_irqsave(&bank->lock, flags);
-- omap_gpio_init_irq(bank, offset);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ if (!LINE_USED(bank->mod_usage, offset))
-+ omap_set_gpio_direction(bank, offset, 1);
-+ else if (!omap_gpio_is_input(bank, offset))
-+ goto err;
-+ omap_enable_gpio_module(bank, offset);
-+ bank->irq_usage |= BIT(offset);
-+
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
- omap_gpio_unmask_irq(d);
-
- return 0;
-+err:
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-+ return -EINVAL;
- }
-
- static void omap_gpio_irq_shutdown(struct irq_data *d)
-@@ -808,11 +810,28 @@
- unsigned long flags;
- unsigned offset = d->hwirq;
-
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- bank->irq_usage &= ~(BIT(offset));
-+ omap_set_gpio_irqenable(bank, offset, 0);
-+ omap_clear_gpio_irqstatus(bank, offset);
-+ omap_set_gpio_triggering(bank, offset, IRQ_TYPE_NONE);
-+ if (!LINE_USED(bank->mod_usage, offset))
-+ omap_clear_gpio_debounce(bank, offset);
- omap_disable_gpio_module(bank, offset);
-- omap_reset_gpio(bank, offset);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-+}
-+
-+static void omap_gpio_irq_bus_lock(struct irq_data *data)
-+{
-+ struct gpio_bank *bank = omap_irq_data_get_bank(data);
-+
-+ if (!BANK_USED(bank))
-+ pm_runtime_get_sync(bank->dev);
-+}
-+
-+static void gpio_irq_bus_sync_unlock(struct irq_data *data)
-+{
-+ struct gpio_bank *bank = omap_irq_data_get_bank(data);
-
- /*
- * If this is the last IRQ to be freed in the bank,
-@@ -836,10 +855,10 @@
- unsigned offset = d->hwirq;
- unsigned long flags;
-
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- omap_set_gpio_irqenable(bank, offset, 0);
- omap_set_gpio_triggering(bank, offset, IRQ_TYPE_NONE);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
- }
-
- static void omap_gpio_unmask_irq(struct irq_data *d)
-@@ -849,7 +868,7 @@
- u32 trigger = irqd_get_trigger_type(d);
- unsigned long flags;
-
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- if (trigger)
- omap_set_gpio_triggering(bank, offset, trigger);
-
-@@ -861,7 +880,7 @@
- }
-
- omap_set_gpio_irqenable(bank, offset, 1);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
- }
-
- /*---------------------------------------------------------------------*/
-@@ -874,9 +893,9 @@
- OMAP_MPUIO_GPIO_MASKIT / bank->stride;
- unsigned long flags;
-
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- writel_relaxed(0xffff & ~bank->context.wake_en, mask_reg);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-
- return 0;
- }
-@@ -889,9 +908,9 @@
- OMAP_MPUIO_GPIO_MASKIT / bank->stride;
- unsigned long flags;
-
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- writel_relaxed(bank->context.wake_en, mask_reg);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-
- return 0;
- }
-@@ -937,9 +956,9 @@
-
- bank = container_of(chip, struct gpio_bank, chip);
- reg = bank->base + bank->regs->direction;
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- dir = !!(readl_relaxed(reg) & BIT(offset));
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
- return dir;
- }
-
-@@ -949,9 +968,9 @@
- unsigned long flags;
-
- bank = container_of(chip, struct gpio_bank, chip);
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- omap_set_gpio_direction(bank, offset, 1);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
- return 0;
- }
-
-@@ -973,10 +992,10 @@
- unsigned long flags;
-
- bank = container_of(chip, struct gpio_bank, chip);
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- bank->set_dataout(bank, offset, value);
- omap_set_gpio_direction(bank, offset, 0);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
- return 0;
- }
-
-@@ -988,9 +1007,9 @@
-
- bank = container_of(chip, struct gpio_bank, chip);
-
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- omap2_set_gpio_debounce(bank, offset, debounce);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-
- return 0;
- }
-@@ -1001,9 +1020,9 @@
- unsigned long flags;
-
- bank = container_of(chip, struct gpio_bank, chip);
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
- bank->set_dataout(bank, offset, value);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
- }
-
- /*---------------------------------------------------------------------*/
-@@ -1048,10 +1067,6 @@
- /* Initialize interface clk ungated, module enabled */
- if (bank->regs->ctrl)
- writel_relaxed(0, base + bank->regs->ctrl);
--
-- bank->dbck = clk_get(bank->dev, "dbclk");
-- if (IS_ERR(bank->dbck))
-- dev_err(bank->dev, "Could not get gpio dbck\n");
- }
-
- static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)
-@@ -1080,7 +1095,6 @@
- } else {
- bank->chip.label = "gpio";
- bank->chip.base = gpio;
-- gpio += bank->width;
- }
- bank->chip.ngpio = bank->width;
-
-@@ -1090,6 +1104,9 @@
- return ret;
- }
-
-+ if (!bank->is_mpuio)
-+ gpio += bank->width;
-+
- #ifdef CONFIG_ARCH_OMAP1
- /*
- * REVISIT: Once we have OMAP1 supporting SPARSE_IRQ, we can drop
-@@ -1112,7 +1129,7 @@
- }
-
- ret = gpiochip_irqchip_add(&bank->chip, irqc,
-- irq_base, omap_gpio_irq_handler,
-+ irq_base, handle_bad_irq,
- IRQ_TYPE_NONE);
-
- if (ret) {
-@@ -1121,10 +1138,14 @@
- return -ENODEV;
- }
-
-- gpiochip_set_chained_irqchip(&bank->chip, irqc,
-- bank->irq, omap_gpio_irq_handler);
-+ gpiochip_set_chained_irqchip(&bank->chip, irqc, bank->irq, NULL);
-
-- return 0;
-+ ret = devm_request_irq(bank->dev, bank->irq, omap_gpio_irq_handler,
-+ 0, dev_name(bank->dev), bank);
-+ if (ret)
-+ gpiochip_remove(&bank->chip);
-+
-+ return ret;
- }
-
- static const struct of_device_id omap_gpio_match[];
-@@ -1163,17 +1184,23 @@
- irqc->irq_unmask = omap_gpio_unmask_irq,
- irqc->irq_set_type = omap_gpio_irq_type,
- irqc->irq_set_wake = omap_gpio_wake_enable,
-+ irqc->irq_bus_lock = omap_gpio_irq_bus_lock,
-+ irqc->irq_bus_sync_unlock = gpio_irq_bus_sync_unlock,
- irqc->name = dev_name(&pdev->dev);
-
-- res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-- if (unlikely(!res)) {
-- dev_err(dev, "Invalid IRQ resource\n");
-- return -ENODEV;
-+ bank->irq = platform_get_irq(pdev, 0);
-+ if (bank->irq <= 0) {
-+ if (!bank->irq)
-+ bank->irq = -ENXIO;
-+ if (bank->irq != -EPROBE_DEFER)
-+ dev_err(dev,
-+ "can't get irq resource ret=%d\n", bank->irq);
-+ return bank->irq;
- }
-
-- bank->irq = res->start;
- bank->dev = dev;
- bank->chip.dev = dev;
-+ bank->chip.owner = THIS_MODULE;
- bank->dbck_flag = pdata->dbck_flag;
- bank->stride = pdata->bank_stride;
- bank->width = pdata->bank_width;
-@@ -1183,15 +1210,9 @@
- #ifdef CONFIG_OF_GPIO
- bank->chip.of_node = of_node_get(node);
- #endif
-- if (node) {
-- if (!of_property_read_bool(node, "ti,gpio-always-on"))
-- bank->loses_context = true;
-- } else {
-- bank->loses_context = pdata->loses_context;
--
-- if (bank->loses_context)
-- bank->get_context_loss_count =
-- pdata->get_context_loss_count;
-+ if (!node) {
-+ bank->get_context_loss_count =
-+ pdata->get_context_loss_count;
- }
-
- if (bank->regs->set_dataout && bank->regs->clr_dataout)
-@@ -1199,16 +1220,27 @@
- else
- bank->set_dataout = omap_set_gpio_dataout_mask;
-
-- spin_lock_init(&bank->lock);
-+ raw_spin_lock_init(&bank->lock);
-+ raw_spin_lock_init(&bank->wa_lock);
-
- /* Static mapping, never released */
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- bank->base = devm_ioremap_resource(dev, res);
- if (IS_ERR(bank->base)) {
-- irq_domain_remove(bank->chip.irqdomain);
- return PTR_ERR(bank->base);
- }
-
-+ if (bank->dbck_flag) {
-+ bank->dbck = devm_clk_get(bank->dev, "dbclk");
-+ if (IS_ERR(bank->dbck)) {
-+ dev_err(bank->dev,
-+ "Could not get gpio dbck. Disable debounce\n");
-+ bank->dbck_flag = false;
-+ } else {
-+ clk_prepare(bank->dbck);
-+ }
-+ }
-+
- platform_set_drvdata(pdev, bank);
-
- pm_runtime_enable(bank->dev);
-@@ -1221,8 +1253,11 @@
- omap_gpio_mod_init(bank);
-
- ret = omap_gpio_chip_init(bank, irqc);
-- if (ret)
-+ if (ret) {
-+ pm_runtime_put_sync(bank->dev);
-+ pm_runtime_disable(bank->dev);
- return ret;
-+ }
-
- omap_gpio_show_rev(bank);
-
-@@ -1233,6 +1268,19 @@
- return 0;
- }
-
-+static int omap_gpio_remove(struct platform_device *pdev)
-+{
-+ struct gpio_bank *bank = platform_get_drvdata(pdev);
-+
-+ list_del(&bank->node);
-+ gpiochip_remove(&bank->chip);
-+ pm_runtime_disable(bank->dev);
-+ if (bank->dbck_flag)
-+ clk_unprepare(bank->dbck);
-+
-+ return 0;
-+}
-+
- #ifdef CONFIG_ARCH_OMAP2PLUS
-
- #if defined(CONFIG_PM)
-@@ -1246,7 +1294,7 @@
- unsigned long flags;
- u32 wake_low, wake_hi;
-
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
-
- /*
- * Only edges can generate a wakeup event to the PRCM.
-@@ -1299,7 +1347,7 @@
- bank->get_context_loss_count(bank->dev);
-
- omap_gpio_dbck_disable(bank);
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-
- return 0;
- }
-@@ -1314,14 +1362,14 @@
- unsigned long flags;
- int c;
-
-- spin_lock_irqsave(&bank->lock, flags);
-+ raw_spin_lock_irqsave(&bank->lock, flags);
-
- /*
- * On the first resume during the probe, the context has not
- * been initialised and so initialise it now. Also initialise
- * the context loss count.
- */
-- if (bank->loses_context && !bank->context_valid) {
-+ if (!bank->context_valid) {
- omap_gpio_init_context(bank);
-
- if (bank->get_context_loss_count)
-@@ -1342,22 +1390,20 @@
- writel_relaxed(bank->context.risingdetect,
- bank->base + bank->regs->risingdetect);
-
-- if (bank->loses_context) {
-- if (!bank->get_context_loss_count) {
-+ if (!bank->get_context_loss_count) {
-+ omap_gpio_restore_context(bank);
-+ } else {
-+ c = bank->get_context_loss_count(bank->dev);
-+ if (c != bank->context_loss_count) {
- omap_gpio_restore_context(bank);
- } else {
-- c = bank->get_context_loss_count(bank->dev);
-- if (c != bank->context_loss_count) {
-- omap_gpio_restore_context(bank);
-- } else {
-- spin_unlock_irqrestore(&bank->lock, flags);
-- return 0;
-- }
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-+ return 0;
- }
- }
-
- if (!bank->workaround_enabled) {
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
- return 0;
- }
-
-@@ -1412,18 +1458,19 @@
- }
-
- bank->workaround_enabled = false;
-- spin_unlock_irqrestore(&bank->lock, flags);
-+ raw_spin_unlock_irqrestore(&bank->lock, flags);
-
- return 0;
- }
- #endif /* CONFIG_PM */
-
-+#if IS_BUILTIN(CONFIG_GPIO_OMAP)
- void omap2_gpio_prepare_for_idle(int pwr_mode)
- {
- struct gpio_bank *bank;
-
- list_for_each_entry(bank, &omap_gpio_list, node) {
-- if (!BANK_USED(bank) || !bank->loses_context)
-+ if (!BANK_USED(bank))
- continue;
-
- bank->power_mode = pwr_mode;
-@@ -1437,12 +1484,13 @@
- struct gpio_bank *bank;
-
- list_for_each_entry(bank, &omap_gpio_list, node) {
-- if (!BANK_USED(bank) || !bank->loses_context)
-+ if (!BANK_USED(bank))
- continue;
-
- pm_runtime_get_sync(bank->dev);
- }
- }
-+#endif
-
- #if defined(CONFIG_PM)
- static void omap_gpio_init_context(struct gpio_bank *p)
-@@ -1598,6 +1646,7 @@
-
- static struct platform_driver omap_gpio_driver = {
- .probe = omap_gpio_probe,
-+ .remove = omap_gpio_remove,
- .driver = {
- .name = "omap_gpio",
- .pm = &gpio_pm_ops,
-@@ -1615,3 +1664,13 @@
- return platform_driver_register(&omap_gpio_driver);
- }
- postcore_initcall(omap_gpio_drv_reg);
-+
-+static void __exit omap_gpio_exit(void)
-+{
-+ platform_driver_unregister(&omap_gpio_driver);
-+}
-+module_exit(omap_gpio_exit);
-+
-+MODULE_DESCRIPTION("omap gpio driver");
-+MODULE_ALIAS("platform:gpio-omap");
-+MODULE_LICENSE("GPL v2");
-diff -Nur linux-4.1.39.orig/drivers/gpio/Kconfig linux-4.1.39/drivers/gpio/Kconfig
---- linux-4.1.39.orig/drivers/gpio/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/gpio/Kconfig 2017-04-18 17:56:30.577395735 +0200
-@@ -309,7 +309,7 @@
- family of SOCs.
-
- config GPIO_OMAP
-- bool "TI OMAP GPIO support" if COMPILE_TEST && !ARCH_OMAP2PLUS
-+ tristate "TI OMAP GPIO support" if ARCH_OMAP2PLUS || COMPILE_TEST
- default y if ARCH_OMAP
- depends on ARM
- select GENERIC_IRQ_CHIP
-diff -Nur linux-4.1.39.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c linux-4.1.39/drivers/gpu/drm/i915/i915_gem_execbuffer.c
---- linux-4.1.39.orig/drivers/gpu/drm/i915/i915_gem_execbuffer.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/gpu/drm/i915/i915_gem_execbuffer.c 2017-04-18 17:56:30.577395735 +0200
-@@ -32,6 +32,7 @@
- #include "i915_trace.h"
- #include "intel_drv.h"
- #include <linux/dma_remapping.h>
-+#include <linux/uaccess.h>
-
- #define __EXEC_OBJECT_HAS_PIN (1<<31)
- #define __EXEC_OBJECT_HAS_FENCE (1<<30)
-@@ -465,7 +466,7 @@
- }
-
- /* We can't wait for rendering with pagefaults disabled */
-- if (obj->active && in_atomic())
-+ if (obj->active && pagefault_disabled())
- return -EFAULT;
-
- if (use_cpu_reloc(obj))
-@@ -1338,7 +1339,9 @@
- return ret;
- }
-
-+#ifndef CONFIG_PREEMPT_RT_BASE
- trace_i915_gem_ring_dispatch(intel_ring_get_request(ring), dispatch_flags);
-+#endif
-
- i915_gem_execbuffer_move_to_active(vmas, ring);
- i915_gem_execbuffer_retire_commands(dev, file, ring, batch_obj);
-diff -Nur linux-4.1.39.orig/drivers/gpu/drm/i915/i915_gem_shrinker.c linux-4.1.39/drivers/gpu/drm/i915/i915_gem_shrinker.c
---- linux-4.1.39.orig/drivers/gpu/drm/i915/i915_gem_shrinker.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/gpu/drm/i915/i915_gem_shrinker.c 2017-04-18 17:56:30.577395735 +0200
-@@ -39,7 +39,7 @@
- if (!mutex_is_locked(mutex))
- return false;
-
--#if defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_MUTEX_SPIN_ON_OWNER)
-+#if (defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_MUTEX_SPIN_ON_OWNER)) && !defined(CONFIG_PREEMPT_RT_BASE)
- return mutex->owner == task;
- #else
- /* Since UP may be pre-empted, we cannot assume that we own the lock */
-diff -Nur linux-4.1.39.orig/drivers/gpu/drm/i915/i915_irq.c linux-4.1.39/drivers/gpu/drm/i915/i915_irq.c
---- linux-4.1.39.orig/drivers/gpu/drm/i915/i915_irq.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/gpu/drm/i915/i915_irq.c 2017-04-18 17:56:30.581395889 +0200
-@@ -676,6 +676,7 @@
- spin_lock_irqsave(&dev_priv->uncore.lock, irqflags);
-
- /* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */
-+ preempt_disable_rt();
-
- /* Get optional system timestamp before query. */
- if (stime)
-@@ -727,6 +728,7 @@
- *etime = ktime_get();
-
- /* preempt_enable_rt() should go right here in PREEMPT_RT patchset. */
-+ preempt_enable_rt();
-
- spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags);
-
-diff -Nur linux-4.1.39.orig/drivers/gpu/drm/i915/intel_display.c linux-4.1.39/drivers/gpu/drm/i915/intel_display.c
---- linux-4.1.39.orig/drivers/gpu/drm/i915/intel_display.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/gpu/drm/i915/intel_display.c 2017-04-18 17:56:30.581395889 +0200
-@@ -10084,7 +10084,7 @@
- struct drm_crtc *crtc = dev_priv->pipe_to_crtc_mapping[pipe];
- struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
-
-- WARN_ON(!in_interrupt());
-+ WARN_ON_NONRT(!in_interrupt());
-
- if (crtc == NULL)
- return;
-diff -Nur linux-4.1.39.orig/drivers/gpu/drm/i915/intel_sprite.c linux-4.1.39/drivers/gpu/drm/i915/intel_sprite.c
---- linux-4.1.39.orig/drivers/gpu/drm/i915/intel_sprite.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/gpu/drm/i915/intel_sprite.c 2017-04-18 17:56:30.581395889 +0200
-@@ -37,6 +37,7 @@
- #include "intel_drv.h"
- #include <drm/i915_drm.h>
- #include "i915_drv.h"
-+#include <linux/locallock.h>
-
- static bool
- format_is_yuv(uint32_t format)
-@@ -61,6 +62,8 @@
- return DIV_ROUND_UP(usecs * mode->crtc_clock, 1000 * mode->crtc_htotal);
- }
-
-+static DEFINE_LOCAL_IRQ_LOCK(pipe_update_lock);
-+
- /**
- * intel_pipe_update_start() - start update of a set of display registers
- * @crtc: the crtc of which the registers are going to be updated
-@@ -101,7 +104,7 @@
- if (WARN_ON(drm_crtc_vblank_get(&crtc->base)))
- return false;
-
-- local_irq_disable();
-+ local_lock_irq(pipe_update_lock);
-
- trace_i915_pipe_update_start(crtc, min, max);
-
-@@ -123,11 +126,11 @@
- break;
- }
-
-- local_irq_enable();
-+ local_unlock_irq(pipe_update_lock);
-
- timeout = schedule_timeout(timeout);
-
-- local_irq_disable();
-+ local_lock_irq(pipe_update_lock);
- }
-
- finish_wait(wq, &wait);
-@@ -158,7 +161,7 @@
-
- trace_i915_pipe_update_end(crtc, end_vbl_count);
-
-- local_irq_enable();
-+ local_unlock_irq(pipe_update_lock);
-
- if (start_vbl_count != end_vbl_count)
- DRM_ERROR("Atomic update failure on pipe %c (start=%u end=%u)\n",
-diff -Nur linux-4.1.39.orig/drivers/gpu/drm/radeon/radeon_display.c linux-4.1.39/drivers/gpu/drm/radeon/radeon_display.c
---- linux-4.1.39.orig/drivers/gpu/drm/radeon/radeon_display.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/gpu/drm/radeon/radeon_display.c 2017-04-18 17:56:30.581395889 +0200
-@@ -1798,6 +1798,7 @@
- struct radeon_device *rdev = dev->dev_private;
-
- /* preempt_disable_rt() should go right here in PREEMPT_RT patchset. */
-+ preempt_disable_rt();
-
- /* Get optional system timestamp before query. */
- if (stime)
-@@ -1890,6 +1891,7 @@
- *etime = ktime_get();
-
- /* preempt_enable_rt() should go right here in PREEMPT_RT patchset. */
-+ preempt_enable_rt();
-
- /* Decode into vertical and horizontal scanout position. */
- *vpos = position & 0x1fff;
-diff -Nur linux-4.1.39.orig/drivers/i2c/busses/i2c-omap.c linux-4.1.39/drivers/i2c/busses/i2c-omap.c
---- linux-4.1.39.orig/drivers/i2c/busses/i2c-omap.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/i2c/busses/i2c-omap.c 2017-04-18 17:56:30.581395889 +0200
-@@ -996,15 +996,12 @@
- u16 mask;
- u16 stat;
-
-- spin_lock(&dev->lock);
-- mask = omap_i2c_read_reg(dev, OMAP_I2C_IE_REG);
- stat = omap_i2c_read_reg(dev, OMAP_I2C_STAT_REG);
-+ mask = omap_i2c_read_reg(dev, OMAP_I2C_IE_REG);
-
- if (stat & mask)
- ret = IRQ_WAKE_THREAD;
-
-- spin_unlock(&dev->lock);
--
- return ret;
- }
-
-diff -Nur linux-4.1.39.orig/drivers/ide/alim15x3.c linux-4.1.39/drivers/ide/alim15x3.c
---- linux-4.1.39.orig/drivers/ide/alim15x3.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/ide/alim15x3.c 2017-04-18 17:56:30.581395889 +0200
-@@ -234,7 +234,7 @@
-
- isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL);
-
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
-
- if (m5229_revision < 0xC2) {
- /*
-@@ -325,7 +325,7 @@
- }
- pci_dev_put(north);
- pci_dev_put(isa_dev);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- return 0;
- }
-
-diff -Nur linux-4.1.39.orig/drivers/ide/hpt366.c linux-4.1.39/drivers/ide/hpt366.c
---- linux-4.1.39.orig/drivers/ide/hpt366.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/ide/hpt366.c 2017-04-18 17:56:30.581395889 +0200
-@@ -1241,7 +1241,7 @@
-
- dma_old = inb(base + 2);
-
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
-
- dma_new = dma_old;
- pci_read_config_byte(dev, hwif->channel ? 0x4b : 0x43, &masterdma);
-@@ -1252,7 +1252,7 @@
- if (dma_new != dma_old)
- outb(dma_new, base + 2);
-
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
-
- printk(KERN_INFO " %s: BM-DMA at 0x%04lx-0x%04lx\n",
- hwif->name, base, base + 7);
-diff -Nur linux-4.1.39.orig/drivers/ide/ide-io.c linux-4.1.39/drivers/ide/ide-io.c
---- linux-4.1.39.orig/drivers/ide/ide-io.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/ide/ide-io.c 2017-04-18 17:56:30.581395889 +0200
-@@ -659,7 +659,7 @@
- /* disable_irq_nosync ?? */
- disable_irq(hwif->irq);
- /* local CPU only, as if we were handling an interrupt */
-- local_irq_disable();
-+ local_irq_disable_nort();
- if (hwif->polling) {
- startstop = handler(drive);
- } else if (drive_is_ready(drive)) {
-diff -Nur linux-4.1.39.orig/drivers/ide/ide-iops.c linux-4.1.39/drivers/ide/ide-iops.c
---- linux-4.1.39.orig/drivers/ide/ide-iops.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/ide/ide-iops.c 2017-04-18 17:56:30.585396045 +0200
-@@ -129,12 +129,12 @@
- if ((stat & ATA_BUSY) == 0)
- break;
-
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- *rstat = stat;
- return -EBUSY;
- }
- }
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- }
- /*
- * Allow status to settle, then read it again.
-diff -Nur linux-4.1.39.orig/drivers/ide/ide-io-std.c linux-4.1.39/drivers/ide/ide-io-std.c
---- linux-4.1.39.orig/drivers/ide/ide-io-std.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/ide/ide-io-std.c 2017-04-18 17:56:30.581395889 +0200
-@@ -175,7 +175,7 @@
- unsigned long uninitialized_var(flags);
-
- if ((io_32bit & 2) && !mmio) {
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- ata_vlb_sync(io_ports->nsect_addr);
- }
-
-@@ -186,7 +186,7 @@
- insl(data_addr, buf, words);
-
- if ((io_32bit & 2) && !mmio)
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
-
- if (((len + 1) & 3) < 2)
- return;
-@@ -219,7 +219,7 @@
- unsigned long uninitialized_var(flags);
-
- if ((io_32bit & 2) && !mmio) {
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- ata_vlb_sync(io_ports->nsect_addr);
- }
-
-@@ -230,7 +230,7 @@
- outsl(data_addr, buf, words);
-
- if ((io_32bit & 2) && !mmio)
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
-
- if (((len + 1) & 3) < 2)
- return;
-diff -Nur linux-4.1.39.orig/drivers/ide/ide-probe.c linux-4.1.39/drivers/ide/ide-probe.c
---- linux-4.1.39.orig/drivers/ide/ide-probe.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/ide/ide-probe.c 2017-04-18 17:56:30.585396045 +0200
-@@ -196,10 +196,10 @@
- int bswap = 1;
-
- /* local CPU only; some systems need this */
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- /* read 512 bytes of id info */
- hwif->tp_ops->input_data(drive, NULL, id, SECTOR_SIZE);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
-
- drive->dev_flags |= IDE_DFLAG_ID_READ;
- #ifdef DEBUG
-diff -Nur linux-4.1.39.orig/drivers/ide/ide-taskfile.c linux-4.1.39/drivers/ide/ide-taskfile.c
---- linux-4.1.39.orig/drivers/ide/ide-taskfile.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/ide/ide-taskfile.c 2017-04-18 17:56:30.585396045 +0200
-@@ -250,7 +250,7 @@
-
- page_is_high = PageHighMem(page);
- if (page_is_high)
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
-
- buf = kmap_atomic(page) + offset;
-
-@@ -271,7 +271,7 @@
- kunmap_atomic(buf);
-
- if (page_is_high)
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
-
- len -= nr_bytes;
- }
-@@ -414,7 +414,7 @@
- }
-
- if ((drive->dev_flags & IDE_DFLAG_UNMASK) == 0)
-- local_irq_disable();
-+ local_irq_disable_nort();
-
- ide_set_handler(drive, &task_pio_intr, WAIT_WORSTCASE);
-
-diff -Nur linux-4.1.39.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c linux-4.1.39/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
---- linux-4.1.39.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/infiniband/ulp/ipoib/ipoib_multicast.c 2017-04-18 17:56:30.585396045 +0200
-@@ -824,7 +824,7 @@
-
- ipoib_dbg_mcast(priv, "restarting multicast task\n");
-
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- netif_addr_lock(dev);
- spin_lock(&priv->lock);
-
-@@ -906,7 +906,7 @@
-
- spin_unlock(&priv->lock);
- netif_addr_unlock(dev);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
-
- /*
- * make sure the in-flight joins have finished before we attempt
-diff -Nur linux-4.1.39.orig/drivers/input/gameport/gameport.c linux-4.1.39/drivers/input/gameport/gameport.c
---- linux-4.1.39.orig/drivers/input/gameport/gameport.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/input/gameport/gameport.c 2017-04-18 17:56:30.585396045 +0200
-@@ -124,12 +124,12 @@
- tx = 1 << 30;
-
- for(i = 0; i < 50; i++) {
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- GET_TIME(t1);
- for (t = 0; t < 50; t++) gameport_read(gameport);
- GET_TIME(t2);
- GET_TIME(t3);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- udelay(i * 10);
- if ((t = DELTA(t2,t1) - DELTA(t3,t2)) < tx) tx = t;
- }
-@@ -148,11 +148,11 @@
- tx = 1 << 30;
-
- for(i = 0; i < 50; i++) {
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- rdtscl(t1);
- for (t = 0; t < 50; t++) gameport_read(gameport);
- rdtscl(t2);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- udelay(i * 10);
- if (t2 - t1 < tx) tx = t2 - t1;
- }
-diff -Nur linux-4.1.39.orig/drivers/leds/trigger/Kconfig linux-4.1.39/drivers/leds/trigger/Kconfig
---- linux-4.1.39.orig/drivers/leds/trigger/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/leds/trigger/Kconfig 2017-04-18 17:56:30.585396045 +0200
-@@ -61,7 +61,7 @@
-
- config LEDS_TRIGGER_CPU
- bool "LED CPU Trigger"
-- depends on LEDS_TRIGGERS
-+ depends on LEDS_TRIGGERS && !PREEMPT_RT_BASE
- help
- This allows LEDs to be controlled by active CPUs. This shows
- the active CPUs across an array of LEDs so you can see which
-diff -Nur linux-4.1.39.orig/drivers/md/bcache/Kconfig linux-4.1.39/drivers/md/bcache/Kconfig
---- linux-4.1.39.orig/drivers/md/bcache/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/md/bcache/Kconfig 2017-04-18 17:56:30.585396045 +0200
-@@ -1,6 +1,7 @@
-
- config BCACHE
- tristate "Block device as cache"
-+ depends on !PREEMPT_RT_FULL
- ---help---
- Allows a block device to be used as cache for other devices; uses
- a btree for indexing and the layout is optimized for SSDs.
-diff -Nur linux-4.1.39.orig/drivers/md/dm.c linux-4.1.39/drivers/md/dm.c
---- linux-4.1.39.orig/drivers/md/dm.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/md/dm.c 2017-04-18 17:56:30.585396045 +0200
-@@ -2141,7 +2141,7 @@
- /* Establish tio->ti before queuing work (map_tio_request) */
- tio->ti = ti;
- queue_kthread_work(&md->kworker, &tio->work);
-- BUG_ON(!irqs_disabled());
-+ BUG_ON_NONRT(!irqs_disabled());
- }
-
- goto out;
-diff -Nur linux-4.1.39.orig/drivers/md/raid5.c linux-4.1.39/drivers/md/raid5.c
---- linux-4.1.39.orig/drivers/md/raid5.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/md/raid5.c 2017-04-18 17:56:30.585396045 +0200
-@@ -1918,8 +1918,9 @@
- struct raid5_percpu *percpu;
- unsigned long cpu;
-
-- cpu = get_cpu();
-+ cpu = get_cpu_light();
- percpu = per_cpu_ptr(conf->percpu, cpu);
-+ spin_lock(&percpu->lock);
- if (test_bit(STRIPE_OP_BIOFILL, &ops_request)) {
- ops_run_biofill(sh);
- overlap_clear++;
-@@ -1975,7 +1976,8 @@
- if (test_and_clear_bit(R5_Overlap, &dev->flags))
- wake_up(&sh->raid_conf->wait_for_overlap);
- }
-- put_cpu();
-+ spin_unlock(&percpu->lock);
-+ put_cpu_light();
- }
-
- static struct stripe_head *alloc_stripe(struct kmem_cache *sc, gfp_t gfp)
-@@ -6375,6 +6377,7 @@
- __func__, cpu);
- break;
- }
-+ spin_lock_init(&per_cpu_ptr(conf->percpu, cpu)->lock);
- }
- put_online_cpus();
-
-diff -Nur linux-4.1.39.orig/drivers/md/raid5.h linux-4.1.39/drivers/md/raid5.h
---- linux-4.1.39.orig/drivers/md/raid5.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/md/raid5.h 2017-04-18 17:56:30.585396045 +0200
-@@ -495,6 +495,7 @@
- int recovery_disabled;
- /* per cpu variables */
- struct raid5_percpu {
-+ spinlock_t lock; /* Protection for -RT */
- struct page *spare_page; /* Used when checking P/Q in raid6 */
- struct flex_array *scribble; /* space for constructing buffer
- * lists and performing address
-diff -Nur linux-4.1.39.orig/drivers/misc/hwlat_detector.c linux-4.1.39/drivers/misc/hwlat_detector.c
---- linux-4.1.39.orig/drivers/misc/hwlat_detector.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/drivers/misc/hwlat_detector.c 2017-04-18 17:56:30.585396045 +0200
-@@ -0,0 +1,1240 @@
-+/*
-+ * hwlat_detector.c - A simple Hardware Latency detector.
-+ *
-+ * Use this module to detect large system latencies induced by the behavior of
-+ * certain underlying system hardware or firmware, independent of Linux itself.
-+ * The code was developed originally to detect the presence of SMIs on Intel
-+ * and AMD systems, although there is no dependency upon x86 herein.
-+ *
-+ * The classical example usage of this module is in detecting the presence of
-+ * SMIs or System Management Interrupts on Intel and AMD systems. An SMI is a
-+ * somewhat special form of hardware interrupt spawned from earlier CPU debug
-+ * modes in which the (BIOS/EFI/etc.) firmware arranges for the South Bridge
-+ * LPC (or other device) to generate a special interrupt under certain
-+ * circumstances, for example, upon expiration of a special SMI timer device,
-+ * due to certain external thermal readings, on certain I/O address accesses,
-+ * and other situations. An SMI hits a special CPU pin, triggers a special
-+ * SMI mode (complete with special memory map), and the OS is unaware.
-+ *
-+ * Although certain hardware-inducing latencies are necessary (for example,
-+ * a modern system often requires an SMI handler for correct thermal control
-+ * and remote management) they can wreak havoc upon any OS-level performance
-+ * guarantees toward low-latency, especially when the OS is not even made
-+ * aware of the presence of these interrupts. For this reason, we need a
-+ * somewhat brute force mechanism to detect these interrupts. In this case,
-+ * we do it by hogging all of the CPU(s) for configurable timer intervals,
-+ * sampling the built-in CPU timer, looking for discontiguous readings.
-+ *
-+ * WARNING: This implementation necessarily introduces latencies. Therefore,
-+ * you should NEVER use this module in a production environment
-+ * requiring any kind of low-latency performance guarantee(s).
-+ *
-+ * Copyright (C) 2008-2009 Jon Masters, Red Hat, Inc. <jcm@redhat.com>
-+ *
-+ * Includes useful feedback from Clark Williams <clark@redhat.com>
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2. This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/ring_buffer.h>
-+#include <linux/time.h>
-+#include <linux/hrtimer.h>
-+#include <linux/kthread.h>
-+#include <linux/debugfs.h>
-+#include <linux/seq_file.h>
-+#include <linux/uaccess.h>
-+#include <linux/version.h>
-+#include <linux/delay.h>
-+#include <linux/slab.h>
-+#include <linux/trace_clock.h>
-+
-+#define BUF_SIZE_DEFAULT 262144UL /* 8K*(sizeof(entry)) */
-+#define BUF_FLAGS (RB_FL_OVERWRITE) /* no block on full */
-+#define U64STR_SIZE 22 /* 20 digits max */
-+
-+#define VERSION "1.0.0"
-+#define BANNER "hwlat_detector: "
-+#define DRVNAME "hwlat_detector"
-+#define DEFAULT_SAMPLE_WINDOW 1000000 /* 1s */
-+#define DEFAULT_SAMPLE_WIDTH 500000 /* 0.5s */
-+#define DEFAULT_LAT_THRESHOLD 10 /* 10us */
-+
-+/* Module metadata */
-+
-+MODULE_LICENSE("GPL");
-+MODULE_AUTHOR("Jon Masters <jcm@redhat.com>");
-+MODULE_DESCRIPTION("A simple hardware latency detector");
-+MODULE_VERSION(VERSION);
-+
-+/* Module parameters */
-+
-+static int debug;
-+static int enabled;
-+static int threshold;
-+
-+module_param(debug, int, 0); /* enable debug */
-+module_param(enabled, int, 0); /* enable detector */
-+module_param(threshold, int, 0); /* latency threshold */
-+
-+/* Buffering and sampling */
-+
-+static struct ring_buffer *ring_buffer; /* sample buffer */
-+static DEFINE_MUTEX(ring_buffer_mutex); /* lock changes */
-+static unsigned long buf_size = BUF_SIZE_DEFAULT;
-+static struct task_struct *kthread; /* sampling thread */
-+
-+/* DebugFS filesystem entries */
-+
-+static struct dentry *debug_dir; /* debugfs directory */
-+static struct dentry *debug_max; /* maximum TSC delta */
-+static struct dentry *debug_count; /* total detect count */
-+static struct dentry *debug_sample_width; /* sample width us */
-+static struct dentry *debug_sample_window; /* sample window us */
-+static struct dentry *debug_sample; /* raw samples us */
-+static struct dentry *debug_threshold; /* threshold us */
-+static struct dentry *debug_enable; /* enable/disable */
-+
-+/* Individual samples and global state */
-+
-+struct sample; /* latency sample */
-+struct data; /* Global state */
-+
-+/* Sampling functions */
-+static int __buffer_add_sample(struct sample *sample);
-+static struct sample *buffer_get_sample(struct sample *sample);
-+
-+/* Threading and state */
-+static int kthread_fn(void *unused);
-+static int start_kthread(void);
-+static int stop_kthread(void);
-+static void __reset_stats(void);
-+static int init_stats(void);
-+
-+/* Debugfs interface */
-+static ssize_t simple_data_read(struct file *filp, char __user *ubuf,
-+ size_t cnt, loff_t *ppos, const u64 *entry);
-+static ssize_t simple_data_write(struct file *filp, const char __user *ubuf,
-+ size_t cnt, loff_t *ppos, u64 *entry);
-+static int debug_sample_fopen(struct inode *inode, struct file *filp);
-+static ssize_t debug_sample_fread(struct file *filp, char __user *ubuf,
-+ size_t cnt, loff_t *ppos);
-+static int debug_sample_release(struct inode *inode, struct file *filp);
-+static int debug_enable_fopen(struct inode *inode, struct file *filp);
-+static ssize_t debug_enable_fread(struct file *filp, char __user *ubuf,
-+ size_t cnt, loff_t *ppos);
-+static ssize_t debug_enable_fwrite(struct file *file,
-+ const char __user *user_buffer,
-+ size_t user_size, loff_t *offset);
-+
-+/* Initialization functions */
-+static int init_debugfs(void);
-+static void free_debugfs(void);
-+static int detector_init(void);
-+static void detector_exit(void);
-+
-+/* Individual latency samples are stored here when detected and packed into
-+ * the ring_buffer circular buffer, where they are overwritten when
-+ * more than buf_size/sizeof(sample) samples are received. */
-+struct sample {
-+ u64 seqnum; /* unique sequence */
-+ u64 duration; /* ktime delta */
-+ u64 outer_duration; /* ktime delta (outer loop) */
-+ struct timespec timestamp; /* wall time */
-+ unsigned long lost;
-+};
-+
-+/* keep the global state somewhere. */
-+static struct data {
-+
-+ struct mutex lock; /* protect changes */
-+
-+ u64 count; /* total since reset */
-+ u64 max_sample; /* max hardware latency */
-+ u64 threshold; /* sample threshold level */
-+
-+ u64 sample_window; /* total sampling window (on+off) */
-+ u64 sample_width; /* active sampling portion of window */
-+
-+ atomic_t sample_open; /* whether the sample file is open */
-+
-+ wait_queue_head_t wq; /* waitqeue for new sample values */
-+
-+} data;
-+
-+/**
-+ * __buffer_add_sample - add a new latency sample recording to the ring buffer
-+ * @sample: The new latency sample value
-+ *
-+ * This receives a new latency sample and records it in a global ring buffer.
-+ * No additional locking is used in this case.
-+ */
-+static int __buffer_add_sample(struct sample *sample)
-+{
-+ return ring_buffer_write(ring_buffer,
-+ sizeof(struct sample), sample);
-+}
-+
-+/**
-+ * buffer_get_sample - remove a hardware latency sample from the ring buffer
-+ * @sample: Pre-allocated storage for the sample
-+ *
-+ * This retrieves a hardware latency sample from the global circular buffer
-+ */
-+static struct sample *buffer_get_sample(struct sample *sample)
-+{
-+ struct ring_buffer_event *e = NULL;
-+ struct sample *s = NULL;
-+ unsigned int cpu = 0;
-+
-+ if (!sample)
-+ return NULL;
-+
-+ mutex_lock(&ring_buffer_mutex);
-+ for_each_online_cpu(cpu) {
-+ e = ring_buffer_consume(ring_buffer, cpu, NULL, &sample->lost);
-+ if (e)
-+ break;
-+ }
-+
-+ if (e) {
-+ s = ring_buffer_event_data(e);
-+ memcpy(sample, s, sizeof(struct sample));
-+ } else
-+ sample = NULL;
-+ mutex_unlock(&ring_buffer_mutex);
-+
-+ return sample;
-+}
-+
-+#ifndef CONFIG_TRACING
-+#define time_type ktime_t
-+#define time_get() ktime_get()
-+#define time_to_us(x) ktime_to_us(x)
-+#define time_sub(a, b) ktime_sub(a, b)
-+#define init_time(a, b) (a).tv64 = b
-+#define time_u64(a) ((a).tv64)
-+#else
-+#define time_type u64
-+#define time_get() trace_clock_local()
-+#define time_to_us(x) div_u64(x, 1000)
-+#define time_sub(a, b) ((a) - (b))
-+#define init_time(a, b) (a = b)
-+#define time_u64(a) a
-+#endif
-+/**
-+ * get_sample - sample the CPU TSC and look for likely hardware latencies
-+ *
-+ * Used to repeatedly capture the CPU TSC (or similar), looking for potential
-+ * hardware-induced latency. Called with interrupts disabled and with
-+ * data.lock held.
-+ */
-+static int get_sample(void)
-+{
-+ time_type start, t1, t2, last_t2;
-+ s64 diff, total = 0;
-+ u64 sample = 0;
-+ u64 outer_sample = 0;
-+ int ret = -1;
-+
-+ init_time(last_t2, 0);
-+ start = time_get(); /* start timestamp */
-+
-+ do {
-+
-+ t1 = time_get(); /* we'll look for a discontinuity */
-+ t2 = time_get();
-+
-+ if (time_u64(last_t2)) {
-+ /* Check the delta from outer loop (t2 to next t1) */
-+ diff = time_to_us(time_sub(t1, last_t2));
-+ /* This shouldn't happen */
-+ if (diff < 0) {
-+ pr_err(BANNER "time running backwards\n");
-+ goto out;
-+ }
-+ if (diff > outer_sample)
-+ outer_sample = diff;
-+ }
-+ last_t2 = t2;
-+
-+ total = time_to_us(time_sub(t2, start)); /* sample width */
-+
-+ /* This checks the inner loop (t1 to t2) */
-+ diff = time_to_us(time_sub(t2, t1)); /* current diff */
-+
-+ /* This shouldn't happen */
-+ if (diff < 0) {
-+ pr_err(BANNER "time running backwards\n");
-+ goto out;
-+ }
-+
-+ if (diff > sample)
-+ sample = diff; /* only want highest value */
-+
-+ } while (total <= data.sample_width);
-+
-+ ret = 0;
-+
-+ /* If we exceed the threshold value, we have found a hardware latency */
-+ if (sample > data.threshold || outer_sample > data.threshold) {
-+ struct sample s;
-+
-+ ret = 1;
-+
-+ data.count++;
-+ s.seqnum = data.count;
-+ s.duration = sample;
-+ s.outer_duration = outer_sample;
-+ s.timestamp = CURRENT_TIME;
-+ __buffer_add_sample(&s);
-+
-+ /* Keep a running maximum ever recorded hardware latency */
-+ if (sample > data.max_sample)
-+ data.max_sample = sample;
-+ }
-+
-+out:
-+ return ret;
-+}
-+
-+/*
-+ * kthread_fn - The CPU time sampling/hardware latency detection kernel thread
-+ * @unused: A required part of the kthread API.
-+ *
-+ * Used to periodically sample the CPU TSC via a call to get_sample. We
-+ * disable interrupts, which does (intentionally) introduce latency since we
-+ * need to ensure nothing else might be running (and thus pre-empting).
-+ * Obviously this should never be used in production environments.
-+ *
-+ * Currently this runs on which ever CPU it was scheduled on, but most
-+ * real-worald hardware latency situations occur across several CPUs,
-+ * but we might later generalize this if we find there are any actualy
-+ * systems with alternate SMI delivery or other hardware latencies.
-+ */
-+static int kthread_fn(void *unused)
-+{
-+ int ret;
-+ u64 interval;
-+
-+ while (!kthread_should_stop()) {
-+
-+ mutex_lock(&data.lock);
-+
-+ local_irq_disable();
-+ ret = get_sample();
-+ local_irq_enable();
-+
-+ if (ret > 0)
-+ wake_up(&data.wq); /* wake up reader(s) */
-+
-+ interval = data.sample_window - data.sample_width;
-+ do_div(interval, USEC_PER_MSEC); /* modifies interval value */
-+
-+ mutex_unlock(&data.lock);
-+
-+ if (msleep_interruptible(interval))
-+ break;
-+ }
-+
-+ return 0;
-+}
-+
-+/**
-+ * start_kthread - Kick off the hardware latency sampling/detector kthread
-+ *
-+ * This starts a kernel thread that will sit and sample the CPU timestamp
-+ * counter (TSC or similar) and look for potential hardware latencies.
-+ */
-+static int start_kthread(void)
-+{
-+ kthread = kthread_run(kthread_fn, NULL,
-+ DRVNAME);
-+ if (IS_ERR(kthread)) {
-+ pr_err(BANNER "could not start sampling thread\n");
-+ enabled = 0;
-+ return -ENOMEM;
-+ }
-+
-+ return 0;
-+}
-+
-+/**
-+ * stop_kthread - Inform the hardware latency samping/detector kthread to stop
-+ *
-+ * This kicks the running hardware latency sampling/detector kernel thread and
-+ * tells it to stop sampling now. Use this on unload and at system shutdown.
-+ */
-+static int stop_kthread(void)
-+{
-+ int ret;
-+
-+ ret = kthread_stop(kthread);
-+
-+ return ret;
-+}
-+
-+/**
-+ * __reset_stats - Reset statistics for the hardware latency detector
-+ *
-+ * We use data to store various statistics and global state. We call this
-+ * function in order to reset those when "enable" is toggled on or off, and
-+ * also at initialization. Should be called with data.lock held.
-+ */
-+static void __reset_stats(void)
-+{
-+ data.count = 0;
-+ data.max_sample = 0;
-+ ring_buffer_reset(ring_buffer); /* flush out old sample entries */
-+}
-+
-+/**
-+ * init_stats - Setup global state statistics for the hardware latency detector
-+ *
-+ * We use data to store various statistics and global state. We also use
-+ * a global ring buffer (ring_buffer) to keep raw samples of detected hardware
-+ * induced system latencies. This function initializes these structures and
-+ * allocates the global ring buffer also.
-+ */
-+static int init_stats(void)
-+{
-+ int ret = -ENOMEM;
-+
-+ mutex_init(&data.lock);
-+ init_waitqueue_head(&data.wq);
-+ atomic_set(&data.sample_open, 0);
-+
-+ ring_buffer = ring_buffer_alloc(buf_size, BUF_FLAGS);
-+
-+ if (WARN(!ring_buffer, KERN_ERR BANNER
-+ "failed to allocate ring buffer!\n"))
-+ goto out;
-+
-+ __reset_stats();
-+ data.threshold = threshold ?: DEFAULT_LAT_THRESHOLD; /* threshold us */
-+ data.sample_window = DEFAULT_SAMPLE_WINDOW; /* window us */
-+ data.sample_width = DEFAULT_SAMPLE_WIDTH; /* width us */
-+
-+ ret = 0;
-+
-+out:
-+ return ret;
-+
-+}
-+
-+/*
-+ * simple_data_read - Wrapper read function for global state debugfs entries
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The userspace provided buffer to read value into
-+ * @cnt: The maximum number of bytes to read
-+ * @ppos: The current "file" position
-+ * @entry: The entry to read from
-+ *
-+ * This function provides a generic read implementation for the global state
-+ * "data" structure debugfs filesystem entries. It would be nice to use
-+ * simple_attr_read directly, but we need to make sure that the data.lock
-+ * is held during the actual read.
-+ */
-+static ssize_t simple_data_read(struct file *filp, char __user *ubuf,
-+ size_t cnt, loff_t *ppos, const u64 *entry)
-+{
-+ char buf[U64STR_SIZE];
-+ u64 val = 0;
-+ int len = 0;
-+
-+ memset(buf, 0, sizeof(buf));
-+
-+ if (!entry)
-+ return -EFAULT;
-+
-+ mutex_lock(&data.lock);
-+ val = *entry;
-+ mutex_unlock(&data.lock);
-+
-+ len = snprintf(buf, sizeof(buf), "%llu\n", (unsigned long long)val);
-+
-+ return simple_read_from_buffer(ubuf, cnt, ppos, buf, len);
-+
-+}
-+
-+/*
-+ * simple_data_write - Wrapper write function for global state debugfs entries
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The userspace provided buffer to write value from
-+ * @cnt: The maximum number of bytes to write
-+ * @ppos: The current "file" position
-+ * @entry: The entry to write to
-+ *
-+ * This function provides a generic write implementation for the global state
-+ * "data" structure debugfs filesystem entries. It would be nice to use
-+ * simple_attr_write directly, but we need to make sure that the data.lock
-+ * is held during the actual write.
-+ */
-+static ssize_t simple_data_write(struct file *filp, const char __user *ubuf,
-+ size_t cnt, loff_t *ppos, u64 *entry)
-+{
-+ char buf[U64STR_SIZE];
-+ int csize = min(cnt, sizeof(buf));
-+ u64 val = 0;
-+ int err = 0;
-+
-+ memset(buf, '\0', sizeof(buf));
-+ if (copy_from_user(buf, ubuf, csize))
-+ return -EFAULT;
-+
-+ buf[U64STR_SIZE-1] = '\0'; /* just in case */
-+ err = kstrtoull(buf, 10, &val);
-+ if (err)
-+ return -EINVAL;
-+
-+ mutex_lock(&data.lock);
-+ *entry = val;
-+ mutex_unlock(&data.lock);
-+
-+ return csize;
-+}
-+
-+/**
-+ * debug_count_fopen - Open function for "count" debugfs entry
-+ * @inode: The in-kernel inode representation of the debugfs "file"
-+ * @filp: The active open file structure for the debugfs "file"
-+ *
-+ * This function provides an open implementation for the "count" debugfs
-+ * interface to the hardware latency detector.
-+ */
-+static int debug_count_fopen(struct inode *inode, struct file *filp)
-+{
-+ return 0;
-+}
-+
-+/**
-+ * debug_count_fread - Read function for "count" debugfs entry
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The userspace provided buffer to read value into
-+ * @cnt: The maximum number of bytes to read
-+ * @ppos: The current "file" position
-+ *
-+ * This function provides a read implementation for the "count" debugfs
-+ * interface to the hardware latency detector. Can be used to read the
-+ * number of latency readings exceeding the configured threshold since
-+ * the detector was last reset (e.g. by writing a zero into "count").
-+ */
-+static ssize_t debug_count_fread(struct file *filp, char __user *ubuf,
-+ size_t cnt, loff_t *ppos)
-+{
-+ return simple_data_read(filp, ubuf, cnt, ppos, &data.count);
-+}
-+
-+/**
-+ * debug_count_fwrite - Write function for "count" debugfs entry
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The user buffer that contains the value to write
-+ * @cnt: The maximum number of bytes to write to "file"
-+ * @ppos: The current position in the debugfs "file"
-+ *
-+ * This function provides a write implementation for the "count" debugfs
-+ * interface to the hardware latency detector. Can be used to write a
-+ * desired value, especially to zero the total count.
-+ */
-+static ssize_t debug_count_fwrite(struct file *filp,
-+ const char __user *ubuf,
-+ size_t cnt,
-+ loff_t *ppos)
-+{
-+ return simple_data_write(filp, ubuf, cnt, ppos, &data.count);
-+}
-+
-+/**
-+ * debug_enable_fopen - Dummy open function for "enable" debugfs interface
-+ * @inode: The in-kernel inode representation of the debugfs "file"
-+ * @filp: The active open file structure for the debugfs "file"
-+ *
-+ * This function provides an open implementation for the "enable" debugfs
-+ * interface to the hardware latency detector.
-+ */
-+static int debug_enable_fopen(struct inode *inode, struct file *filp)
-+{
-+ return 0;
-+}
-+
-+/**
-+ * debug_enable_fread - Read function for "enable" debugfs interface
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The userspace provided buffer to read value into
-+ * @cnt: The maximum number of bytes to read
-+ * @ppos: The current "file" position
-+ *
-+ * This function provides a read implementation for the "enable" debugfs
-+ * interface to the hardware latency detector. Can be used to determine
-+ * whether the detector is currently enabled ("0\n" or "1\n" returned).
-+ */
-+static ssize_t debug_enable_fread(struct file *filp, char __user *ubuf,
-+ size_t cnt, loff_t *ppos)
-+{
-+ char buf[4];
-+
-+ if ((cnt < sizeof(buf)) || (*ppos))
-+ return 0;
-+
-+ buf[0] = enabled ? '1' : '0';
-+ buf[1] = '\n';
-+ buf[2] = '\0';
-+ if (copy_to_user(ubuf, buf, strlen(buf)))
-+ return -EFAULT;
-+ return *ppos = strlen(buf);
-+}
-+
-+/**
-+ * debug_enable_fwrite - Write function for "enable" debugfs interface
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The user buffer that contains the value to write
-+ * @cnt: The maximum number of bytes to write to "file"
-+ * @ppos: The current position in the debugfs "file"
-+ *
-+ * This function provides a write implementation for the "enable" debugfs
-+ * interface to the hardware latency detector. Can be used to enable or
-+ * disable the detector, which will have the side-effect of possibly
-+ * also resetting the global stats and kicking off the measuring
-+ * kthread (on an enable) or the converse (upon a disable).
-+ */
-+static ssize_t debug_enable_fwrite(struct file *filp,
-+ const char __user *ubuf,
-+ size_t cnt,
-+ loff_t *ppos)
-+{
-+ char buf[4];
-+ int csize = min(cnt, sizeof(buf));
-+ long val = 0;
-+ int err = 0;
-+
-+ memset(buf, '\0', sizeof(buf));
-+ if (copy_from_user(buf, ubuf, csize))
-+ return -EFAULT;
-+
-+ buf[sizeof(buf)-1] = '\0'; /* just in case */
-+ err = kstrtoul(buf, 10, &val);
-+ if (0 != err)
-+ return -EINVAL;
-+
-+ if (val) {
-+ if (enabled)
-+ goto unlock;
-+ enabled = 1;
-+ __reset_stats();
-+ if (start_kthread())
-+ return -EFAULT;
-+ } else {
-+ if (!enabled)
-+ goto unlock;
-+ enabled = 0;
-+ err = stop_kthread();
-+ if (err) {
-+ pr_err(BANNER "cannot stop kthread\n");
-+ return -EFAULT;
-+ }
-+ wake_up(&data.wq); /* reader(s) should return */
-+ }
-+unlock:
-+ return csize;
-+}
-+
-+/**
-+ * debug_max_fopen - Open function for "max" debugfs entry
-+ * @inode: The in-kernel inode representation of the debugfs "file"
-+ * @filp: The active open file structure for the debugfs "file"
-+ *
-+ * This function provides an open implementation for the "max" debugfs
-+ * interface to the hardware latency detector.
-+ */
-+static int debug_max_fopen(struct inode *inode, struct file *filp)
-+{
-+ return 0;
-+}
-+
-+/**
-+ * debug_max_fread - Read function for "max" debugfs entry
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The userspace provided buffer to read value into
-+ * @cnt: The maximum number of bytes to read
-+ * @ppos: The current "file" position
-+ *
-+ * This function provides a read implementation for the "max" debugfs
-+ * interface to the hardware latency detector. Can be used to determine
-+ * the maximum latency value observed since it was last reset.
-+ */
-+static ssize_t debug_max_fread(struct file *filp, char __user *ubuf,
-+ size_t cnt, loff_t *ppos)
-+{
-+ return simple_data_read(filp, ubuf, cnt, ppos, &data.max_sample);
-+}
-+
-+/**
-+ * debug_max_fwrite - Write function for "max" debugfs entry
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The user buffer that contains the value to write
-+ * @cnt: The maximum number of bytes to write to "file"
-+ * @ppos: The current position in the debugfs "file"
-+ *
-+ * This function provides a write implementation for the "max" debugfs
-+ * interface to the hardware latency detector. Can be used to reset the
-+ * maximum or set it to some other desired value - if, then, subsequent
-+ * measurements exceed this value, the maximum will be updated.
-+ */
-+static ssize_t debug_max_fwrite(struct file *filp,
-+ const char __user *ubuf,
-+ size_t cnt,
-+ loff_t *ppos)
-+{
-+ return simple_data_write(filp, ubuf, cnt, ppos, &data.max_sample);
-+}
-+
-+
-+/**
-+ * debug_sample_fopen - An open function for "sample" debugfs interface
-+ * @inode: The in-kernel inode representation of this debugfs "file"
-+ * @filp: The active open file structure for the debugfs "file"
-+ *
-+ * This function handles opening the "sample" file within the hardware
-+ * latency detector debugfs directory interface. This file is used to read
-+ * raw samples from the global ring_buffer and allows the user to see a
-+ * running latency history. Can be opened blocking or non-blocking,
-+ * affecting whether it behaves as a buffer read pipe, or does not.
-+ * Implements simple locking to prevent multiple simultaneous use.
-+ */
-+static int debug_sample_fopen(struct inode *inode, struct file *filp)
-+{
-+ if (!atomic_add_unless(&data.sample_open, 1, 1))
-+ return -EBUSY;
-+ else
-+ return 0;
-+}
-+
-+/**
-+ * debug_sample_fread - A read function for "sample" debugfs interface
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The user buffer that will contain the samples read
-+ * @cnt: The maximum bytes to read from the debugfs "file"
-+ * @ppos: The current position in the debugfs "file"
-+ *
-+ * This function handles reading from the "sample" file within the hardware
-+ * latency detector debugfs directory interface. This file is used to read
-+ * raw samples from the global ring_buffer and allows the user to see a
-+ * running latency history. By default this will block pending a new
-+ * value written into the sample buffer, unless there are already a
-+ * number of value(s) waiting in the buffer, or the sample file was
-+ * previously opened in a non-blocking mode of operation.
-+ */
-+static ssize_t debug_sample_fread(struct file *filp, char __user *ubuf,
-+ size_t cnt, loff_t *ppos)
-+{
-+ int len = 0;
-+ char buf[64];
-+ struct sample *sample = NULL;
-+
-+ if (!enabled)
-+ return 0;
-+
-+ sample = kzalloc(sizeof(struct sample), GFP_KERNEL);
-+ if (!sample)
-+ return -ENOMEM;
-+
-+ while (!buffer_get_sample(sample)) {
-+
-+ DEFINE_WAIT(wait);
-+
-+ if (filp->f_flags & O_NONBLOCK) {
-+ len = -EAGAIN;
-+ goto out;
-+ }
-+
-+ prepare_to_wait(&data.wq, &wait, TASK_INTERRUPTIBLE);
-+ schedule();
-+ finish_wait(&data.wq, &wait);
-+
-+ if (signal_pending(current)) {
-+ len = -EINTR;
-+ goto out;
-+ }
-+
-+ if (!enabled) { /* enable was toggled */
-+ len = 0;
-+ goto out;
-+ }
-+ }
-+
-+ len = snprintf(buf, sizeof(buf), "%010lu.%010lu\t%llu\t%llu\n",
-+ sample->timestamp.tv_sec,
-+ sample->timestamp.tv_nsec,
-+ sample->duration,
-+ sample->outer_duration);
-+
-+
-+ /* handling partial reads is more trouble than it's worth */
-+ if (len > cnt)
-+ goto out;
-+
-+ if (copy_to_user(ubuf, buf, len))
-+ len = -EFAULT;
-+
-+out:
-+ kfree(sample);
-+ return len;
-+}
-+
-+/**
-+ * debug_sample_release - Release function for "sample" debugfs interface
-+ * @inode: The in-kernel inode represenation of the debugfs "file"
-+ * @filp: The active open file structure for the debugfs "file"
-+ *
-+ * This function completes the close of the debugfs interface "sample" file.
-+ * Frees the sample_open "lock" so that other users may open the interface.
-+ */
-+static int debug_sample_release(struct inode *inode, struct file *filp)
-+{
-+ atomic_dec(&data.sample_open);
-+
-+ return 0;
-+}
-+
-+/**
-+ * debug_threshold_fopen - Open function for "threshold" debugfs entry
-+ * @inode: The in-kernel inode representation of the debugfs "file"
-+ * @filp: The active open file structure for the debugfs "file"
-+ *
-+ * This function provides an open implementation for the "threshold" debugfs
-+ * interface to the hardware latency detector.
-+ */
-+static int debug_threshold_fopen(struct inode *inode, struct file *filp)
-+{
-+ return 0;
-+}
-+
-+/**
-+ * debug_threshold_fread - Read function for "threshold" debugfs entry
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The userspace provided buffer to read value into
-+ * @cnt: The maximum number of bytes to read
-+ * @ppos: The current "file" position
-+ *
-+ * This function provides a read implementation for the "threshold" debugfs
-+ * interface to the hardware latency detector. It can be used to determine
-+ * the current threshold level at which a latency will be recorded in the
-+ * global ring buffer, typically on the order of 10us.
-+ */
-+static ssize_t debug_threshold_fread(struct file *filp, char __user *ubuf,
-+ size_t cnt, loff_t *ppos)
-+{
-+ return simple_data_read(filp, ubuf, cnt, ppos, &data.threshold);
-+}
-+
-+/**
-+ * debug_threshold_fwrite - Write function for "threshold" debugfs entry
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The user buffer that contains the value to write
-+ * @cnt: The maximum number of bytes to write to "file"
-+ * @ppos: The current position in the debugfs "file"
-+ *
-+ * This function provides a write implementation for the "threshold" debugfs
-+ * interface to the hardware latency detector. It can be used to configure
-+ * the threshold level at which any subsequently detected latencies will
-+ * be recorded into the global ring buffer.
-+ */
-+static ssize_t debug_threshold_fwrite(struct file *filp,
-+ const char __user *ubuf,
-+ size_t cnt,
-+ loff_t *ppos)
-+{
-+ int ret;
-+
-+ ret = simple_data_write(filp, ubuf, cnt, ppos, &data.threshold);
-+
-+ if (enabled)
-+ wake_up_process(kthread);
-+
-+ return ret;
-+}
-+
-+/**
-+ * debug_width_fopen - Open function for "width" debugfs entry
-+ * @inode: The in-kernel inode representation of the debugfs "file"
-+ * @filp: The active open file structure for the debugfs "file"
-+ *
-+ * This function provides an open implementation for the "width" debugfs
-+ * interface to the hardware latency detector.
-+ */
-+static int debug_width_fopen(struct inode *inode, struct file *filp)
-+{
-+ return 0;
-+}
-+
-+/**
-+ * debug_width_fread - Read function for "width" debugfs entry
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The userspace provided buffer to read value into
-+ * @cnt: The maximum number of bytes to read
-+ * @ppos: The current "file" position
-+ *
-+ * This function provides a read implementation for the "width" debugfs
-+ * interface to the hardware latency detector. It can be used to determine
-+ * for how many us of the total window us we will actively sample for any
-+ * hardware-induced latecy periods. Obviously, it is not possible to
-+ * sample constantly and have the system respond to a sample reader, or,
-+ * worse, without having the system appear to have gone out to lunch.
-+ */
-+static ssize_t debug_width_fread(struct file *filp, char __user *ubuf,
-+ size_t cnt, loff_t *ppos)
-+{
-+ return simple_data_read(filp, ubuf, cnt, ppos, &data.sample_width);
-+}
-+
-+/**
-+ * debug_width_fwrite - Write function for "width" debugfs entry
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The user buffer that contains the value to write
-+ * @cnt: The maximum number of bytes to write to "file"
-+ * @ppos: The current position in the debugfs "file"
-+ *
-+ * This function provides a write implementation for the "width" debugfs
-+ * interface to the hardware latency detector. It can be used to configure
-+ * for how many us of the total window us we will actively sample for any
-+ * hardware-induced latency periods. Obviously, it is not possible to
-+ * sample constantly and have the system respond to a sample reader, or,
-+ * worse, without having the system appear to have gone out to lunch. It
-+ * is enforced that width is less that the total window size.
-+ */
-+static ssize_t debug_width_fwrite(struct file *filp,
-+ const char __user *ubuf,
-+ size_t cnt,
-+ loff_t *ppos)
-+{
-+ char buf[U64STR_SIZE];
-+ int csize = min(cnt, sizeof(buf));
-+ u64 val = 0;
-+ int err = 0;
-+
-+ memset(buf, '\0', sizeof(buf));
-+ if (copy_from_user(buf, ubuf, csize))
-+ return -EFAULT;
-+
-+ buf[U64STR_SIZE-1] = '\0'; /* just in case */
-+ err = kstrtoull(buf, 10, &val);
-+ if (0 != err)
-+ return -EINVAL;
-+
-+ mutex_lock(&data.lock);
-+ if (val < data.sample_window)
-+ data.sample_width = val;
-+ else {
-+ mutex_unlock(&data.lock);
-+ return -EINVAL;
-+ }
-+ mutex_unlock(&data.lock);
-+
-+ if (enabled)
-+ wake_up_process(kthread);
-+
-+ return csize;
-+}
-+
-+/**
-+ * debug_window_fopen - Open function for "window" debugfs entry
-+ * @inode: The in-kernel inode representation of the debugfs "file"
-+ * @filp: The active open file structure for the debugfs "file"
-+ *
-+ * This function provides an open implementation for the "window" debugfs
-+ * interface to the hardware latency detector. The window is the total time
-+ * in us that will be considered one sample period. Conceptually, windows
-+ * occur back-to-back and contain a sample width period during which
-+ * actual sampling occurs.
-+ */
-+static int debug_window_fopen(struct inode *inode, struct file *filp)
-+{
-+ return 0;
-+}
-+
-+/**
-+ * debug_window_fread - Read function for "window" debugfs entry
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The userspace provided buffer to read value into
-+ * @cnt: The maximum number of bytes to read
-+ * @ppos: The current "file" position
-+ *
-+ * This function provides a read implementation for the "window" debugfs
-+ * interface to the hardware latency detector. The window is the total time
-+ * in us that will be considered one sample period. Conceptually, windows
-+ * occur back-to-back and contain a sample width period during which
-+ * actual sampling occurs. Can be used to read the total window size.
-+ */
-+static ssize_t debug_window_fread(struct file *filp, char __user *ubuf,
-+ size_t cnt, loff_t *ppos)
-+{
-+ return simple_data_read(filp, ubuf, cnt, ppos, &data.sample_window);
-+}
-+
-+/**
-+ * debug_window_fwrite - Write function for "window" debugfs entry
-+ * @filp: The active open file structure for the debugfs "file"
-+ * @ubuf: The user buffer that contains the value to write
-+ * @cnt: The maximum number of bytes to write to "file"
-+ * @ppos: The current position in the debugfs "file"
-+ *
-+ * This function provides a write implementation for the "window" debufds
-+ * interface to the hardware latency detetector. The window is the total time
-+ * in us that will be considered one sample period. Conceptually, windows
-+ * occur back-to-back and contain a sample width period during which
-+ * actual sampling occurs. Can be used to write a new total window size. It
-+ * is enfoced that any value written must be greater than the sample width
-+ * size, or an error results.
-+ */
-+static ssize_t debug_window_fwrite(struct file *filp,
-+ const char __user *ubuf,
-+ size_t cnt,
-+ loff_t *ppos)
-+{
-+ char buf[U64STR_SIZE];
-+ int csize = min(cnt, sizeof(buf));
-+ u64 val = 0;
-+ int err = 0;
-+
-+ memset(buf, '\0', sizeof(buf));
-+ if (copy_from_user(buf, ubuf, csize))
-+ return -EFAULT;
-+
-+ buf[U64STR_SIZE-1] = '\0'; /* just in case */
-+ err = kstrtoull(buf, 10, &val);
-+ if (0 != err)
-+ return -EINVAL;
-+
-+ mutex_lock(&data.lock);
-+ if (data.sample_width < val)
-+ data.sample_window = val;
-+ else {
-+ mutex_unlock(&data.lock);
-+ return -EINVAL;
-+ }
-+ mutex_unlock(&data.lock);
-+
-+ return csize;
-+}
-+
-+/*
-+ * Function pointers for the "count" debugfs file operations
-+ */
-+static const struct file_operations count_fops = {
-+ .open = debug_count_fopen,
-+ .read = debug_count_fread,
-+ .write = debug_count_fwrite,
-+ .owner = THIS_MODULE,
-+};
-+
-+/*
-+ * Function pointers for the "enable" debugfs file operations
-+ */
-+static const struct file_operations enable_fops = {
-+ .open = debug_enable_fopen,
-+ .read = debug_enable_fread,
-+ .write = debug_enable_fwrite,
-+ .owner = THIS_MODULE,
-+};
-+
-+/*
-+ * Function pointers for the "max" debugfs file operations
-+ */
-+static const struct file_operations max_fops = {
-+ .open = debug_max_fopen,
-+ .read = debug_max_fread,
-+ .write = debug_max_fwrite,
-+ .owner = THIS_MODULE,
-+};
-+
-+/*
-+ * Function pointers for the "sample" debugfs file operations
-+ */
-+static const struct file_operations sample_fops = {
-+ .open = debug_sample_fopen,
-+ .read = debug_sample_fread,
-+ .release = debug_sample_release,
-+ .owner = THIS_MODULE,
-+};
-+
-+/*
-+ * Function pointers for the "threshold" debugfs file operations
-+ */
-+static const struct file_operations threshold_fops = {
-+ .open = debug_threshold_fopen,
-+ .read = debug_threshold_fread,
-+ .write = debug_threshold_fwrite,
-+ .owner = THIS_MODULE,
-+};
-+
-+/*
-+ * Function pointers for the "width" debugfs file operations
-+ */
-+static const struct file_operations width_fops = {
-+ .open = debug_width_fopen,
-+ .read = debug_width_fread,
-+ .write = debug_width_fwrite,
-+ .owner = THIS_MODULE,
-+};
-+
-+/*
-+ * Function pointers for the "window" debugfs file operations
-+ */
-+static const struct file_operations window_fops = {
-+ .open = debug_window_fopen,
-+ .read = debug_window_fread,
-+ .write = debug_window_fwrite,
-+ .owner = THIS_MODULE,
-+};
-+
-+/**
-+ * init_debugfs - A function to initialize the debugfs interface files
-+ *
-+ * This function creates entries in debugfs for "hwlat_detector", including
-+ * files to read values from the detector, current samples, and the
-+ * maximum sample that has been captured since the hardware latency
-+ * dectector was started.
-+ */
-+static int init_debugfs(void)
-+{
-+ int ret = -ENOMEM;
-+
-+ debug_dir = debugfs_create_dir(DRVNAME, NULL);
-+ if (!debug_dir)
-+ goto err_debug_dir;
-+
-+ debug_sample = debugfs_create_file("sample", 0444,
-+ debug_dir, NULL,
-+ &sample_fops);
-+ if (!debug_sample)
-+ goto err_sample;
-+
-+ debug_count = debugfs_create_file("count", 0444,
-+ debug_dir, NULL,
-+ &count_fops);
-+ if (!debug_count)
-+ goto err_count;
-+
-+ debug_max = debugfs_create_file("max", 0444,
-+ debug_dir, NULL,
-+ &max_fops);
-+ if (!debug_max)
-+ goto err_max;
-+
-+ debug_sample_window = debugfs_create_file("window", 0644,
-+ debug_dir, NULL,
-+ &window_fops);
-+ if (!debug_sample_window)
-+ goto err_window;
-+
-+ debug_sample_width = debugfs_create_file("width", 0644,
-+ debug_dir, NULL,
-+ &width_fops);
-+ if (!debug_sample_width)
-+ goto err_width;
-+
-+ debug_threshold = debugfs_create_file("threshold", 0644,
-+ debug_dir, NULL,
-+ &threshold_fops);
-+ if (!debug_threshold)
-+ goto err_threshold;
-+
-+ debug_enable = debugfs_create_file("enable", 0644,
-+ debug_dir, &enabled,
-+ &enable_fops);
-+ if (!debug_enable)
-+ goto err_enable;
-+
-+ else {
-+ ret = 0;
-+ goto out;
-+ }
-+
-+err_enable:
-+ debugfs_remove(debug_threshold);
-+err_threshold:
-+ debugfs_remove(debug_sample_width);
-+err_width:
-+ debugfs_remove(debug_sample_window);
-+err_window:
-+ debugfs_remove(debug_max);
-+err_max:
-+ debugfs_remove(debug_count);
-+err_count:
-+ debugfs_remove(debug_sample);
-+err_sample:
-+ debugfs_remove(debug_dir);
-+err_debug_dir:
-+out:
-+ return ret;
-+}
-+
-+/**
-+ * free_debugfs - A function to cleanup the debugfs file interface
-+ */
-+static void free_debugfs(void)
-+{
-+ /* could also use a debugfs_remove_recursive */
-+ debugfs_remove(debug_enable);
-+ debugfs_remove(debug_threshold);
-+ debugfs_remove(debug_sample_width);
-+ debugfs_remove(debug_sample_window);
-+ debugfs_remove(debug_max);
-+ debugfs_remove(debug_count);
-+ debugfs_remove(debug_sample);
-+ debugfs_remove(debug_dir);
-+}
-+
-+/**
-+ * detector_init - Standard module initialization code
-+ */
-+static int detector_init(void)
-+{
-+ int ret = -ENOMEM;
-+
-+ pr_info(BANNER "version %s\n", VERSION);
-+
-+ ret = init_stats();
-+ if (0 != ret)
-+ goto out;
-+
-+ ret = init_debugfs();
-+ if (0 != ret)
-+ goto err_stats;
-+
-+ if (enabled)
-+ ret = start_kthread();
-+
-+ goto out;
-+
-+err_stats:
-+ ring_buffer_free(ring_buffer);
-+out:
-+ return ret;
-+
-+}
-+
-+/**
-+ * detector_exit - Standard module cleanup code
-+ */
-+static void detector_exit(void)
-+{
-+ int err;
-+
-+ if (enabled) {
-+ enabled = 0;
-+ err = stop_kthread();
-+ if (err)
-+ pr_err(BANNER "cannot stop kthread\n");
-+ }
-+
-+ free_debugfs();
-+ ring_buffer_free(ring_buffer); /* free up the ring buffer */
-+
-+}
-+
-+module_init(detector_init);
-+module_exit(detector_exit);
-diff -Nur linux-4.1.39.orig/drivers/misc/Kconfig linux-4.1.39/drivers/misc/Kconfig
---- linux-4.1.39.orig/drivers/misc/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/misc/Kconfig 2017-04-18 17:56:30.585396045 +0200
-@@ -54,6 +54,7 @@
- config ATMEL_TCLIB
- bool "Atmel AT32/AT91 Timer/Counter Library"
- depends on (AVR32 || ARCH_AT91)
-+ default y if PREEMPT_RT_FULL
- help
- Select this if you want a library to allocate the Timer/Counter
- blocks found on many Atmel processors. This facilitates using
-@@ -69,8 +70,7 @@
- are combined to make a single 32-bit timer.
-
- When GENERIC_CLOCKEVENTS is defined, the third timer channel
-- may be used as a clock event device supporting oneshot mode
-- (delays of up to two seconds) based on the 32 KiHz clock.
-+ may be used as a clock event device supporting oneshot mode.
-
- config ATMEL_TCB_CLKSRC_BLOCK
- int
-@@ -84,6 +84,15 @@
- TC can be used for other purposes, such as PWM generation and
- interval timing.
-
-+config ATMEL_TCB_CLKSRC_USE_SLOW_CLOCK
-+ bool "TC Block use 32 KiHz clock"
-+ depends on ATMEL_TCB_CLKSRC
-+ default y if !PREEMPT_RT_FULL
-+ help
-+ Select this to use 32 KiHz base clock rate as TC block clock
-+ source for clock events.
-+
-+
- config DUMMY_IRQ
- tristate "Dummy IRQ handler"
- default n
-@@ -113,6 +122,35 @@
- for information on the specific driver level and support statement
- for your IBM server.
-
-+config HWLAT_DETECTOR
-+ tristate "Testing module to detect hardware-induced latencies"
-+ depends on DEBUG_FS
-+ depends on RING_BUFFER
-+ default m
-+ ---help---
-+ A simple hardware latency detector. Use this module to detect
-+ large latencies introduced by the behavior of the underlying
-+ system firmware external to Linux. We do this using periodic
-+ use of stop_machine to grab all available CPUs and measure
-+ for unexplainable gaps in the CPU timestamp counter(s). By
-+ default, the module is not enabled until the "enable" file
-+ within the "hwlat_detector" debugfs directory is toggled.
-+
-+ This module is often used to detect SMI (System Management
-+ Interrupts) on x86 systems, though is not x86 specific. To
-+ this end, we default to using a sample window of 1 second,
-+ during which we will sample for 0.5 seconds. If an SMI or
-+ similar event occurs during that time, it is recorded
-+ into an 8K samples global ring buffer until retreived.
-+
-+ WARNING: This software should never be enabled (it can be built
-+ but should not be turned on after it is loaded) in a production
-+ environment where high latencies are a concern since the
-+ sampling mechanism actually introduces latencies for
-+ regular tasks while the CPU(s) are being held.
-+
-+ If unsure, say N
-+
- config PHANTOM
- tristate "Sensable PHANToM (PCI)"
- depends on PCI
-diff -Nur linux-4.1.39.orig/drivers/misc/Makefile linux-4.1.39/drivers/misc/Makefile
---- linux-4.1.39.orig/drivers/misc/Makefile 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/misc/Makefile 2017-04-18 17:56:30.585396045 +0200
-@@ -38,6 +38,7 @@
- obj-$(CONFIG_HMC6352) += hmc6352.o
- obj-y += eeprom/
- obj-y += cb710/
-+obj-$(CONFIG_HWLAT_DETECTOR) += hwlat_detector.o
- obj-$(CONFIG_SPEAR13XX_PCIE_GADGET) += spear13xx_pcie_gadget.o
- obj-$(CONFIG_VMWARE_BALLOON) += vmw_balloon.o
- obj-$(CONFIG_ARM_CHARLCD) += arm-charlcd.o
-diff -Nur linux-4.1.39.orig/drivers/mmc/host/mmci.c linux-4.1.39/drivers/mmc/host/mmci.c
---- linux-4.1.39.orig/drivers/mmc/host/mmci.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/mmc/host/mmci.c 2017-04-18 17:56:30.589396200 +0200
-@@ -1155,15 +1155,12 @@
- struct sg_mapping_iter *sg_miter = &host->sg_miter;
- struct variant_data *variant = host->variant;
- void __iomem *base = host->base;
-- unsigned long flags;
- u32 status;
-
- status = readl(base + MMCISTATUS);
-
- dev_dbg(mmc_dev(host->mmc), "irq1 (pio) %08x\n", status);
-
-- local_irq_save(flags);
--
- do {
- unsigned int remain, len;
- char *buffer;
-@@ -1203,8 +1200,6 @@
-
- sg_miter_stop(sg_miter);
-
-- local_irq_restore(flags);
--
- /*
- * If we have less than the fifo 'half-full' threshold to transfer,
- * trigger a PIO interrupt as soon as any data is available.
-diff -Nur linux-4.1.39.orig/drivers/net/ethernet/3com/3c59x.c linux-4.1.39/drivers/net/ethernet/3com/3c59x.c
---- linux-4.1.39.orig/drivers/net/ethernet/3com/3c59x.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/net/ethernet/3com/3c59x.c 2017-04-18 17:56:30.589396200 +0200
-@@ -842,9 +842,9 @@
- {
- struct vortex_private *vp = netdev_priv(dev);
- unsigned long flags;
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- (vp->full_bus_master_rx ? boomerang_interrupt:vortex_interrupt)(dev->irq,dev);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- }
- #endif
-
-@@ -1916,12 +1916,12 @@
- * Block interrupts because vortex_interrupt does a bare spin_lock()
- */
- unsigned long flags;
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- if (vp->full_bus_master_tx)
- boomerang_interrupt(dev->irq, dev);
- else
- vortex_interrupt(dev->irq, dev);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- }
- }
-
-diff -Nur linux-4.1.39.orig/drivers/net/ethernet/atheros/atl1c/atl1c_main.c linux-4.1.39/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
---- linux-4.1.39.orig/drivers/net/ethernet/atheros/atl1c/atl1c_main.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/net/ethernet/atheros/atl1c/atl1c_main.c 2017-04-18 17:56:30.589396200 +0200
-@@ -2212,11 +2212,7 @@
- }
-
- tpd_req = atl1c_cal_tpd_req(skb);
-- if (!spin_trylock_irqsave(&adapter->tx_lock, flags)) {
-- if (netif_msg_pktdata(adapter))
-- dev_info(&adapter->pdev->dev, "tx locked\n");
-- return NETDEV_TX_LOCKED;
-- }
-+ spin_lock_irqsave(&adapter->tx_lock, flags);
-
- if (atl1c_tpd_avail(adapter, type) < tpd_req) {
- /* no enough descriptor, just stop queue */
-diff -Nur linux-4.1.39.orig/drivers/net/ethernet/atheros/atl1e/atl1e_main.c linux-4.1.39/drivers/net/ethernet/atheros/atl1e/atl1e_main.c
---- linux-4.1.39.orig/drivers/net/ethernet/atheros/atl1e/atl1e_main.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/net/ethernet/atheros/atl1e/atl1e_main.c 2017-04-18 17:56:30.589396200 +0200
-@@ -1880,8 +1880,7 @@
- return NETDEV_TX_OK;
- }
- tpd_req = atl1e_cal_tdp_req(skb);
-- if (!spin_trylock_irqsave(&adapter->tx_lock, flags))
-- return NETDEV_TX_LOCKED;
-+ spin_lock_irqsave(&adapter->tx_lock, flags);
-
- if (atl1e_tpd_avail(adapter) < tpd_req) {
- /* no enough descriptor, just stop queue */
-diff -Nur linux-4.1.39.orig/drivers/net/ethernet/chelsio/cxgb/sge.c linux-4.1.39/drivers/net/ethernet/chelsio/cxgb/sge.c
---- linux-4.1.39.orig/drivers/net/ethernet/chelsio/cxgb/sge.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/net/ethernet/chelsio/cxgb/sge.c 2017-04-18 17:56:30.589396200 +0200
-@@ -1664,8 +1664,7 @@
- struct cmdQ *q = &sge->cmdQ[qid];
- unsigned int credits, pidx, genbit, count, use_sched_skb = 0;
-
-- if (!spin_trylock(&q->lock))
-- return NETDEV_TX_LOCKED;
-+ spin_lock(&q->lock);
-
- reclaim_completed_tx(sge, q);
-
-diff -Nur linux-4.1.39.orig/drivers/net/ethernet/freescale/gianfar.c linux-4.1.39/drivers/net/ethernet/freescale/gianfar.c
---- linux-4.1.39.orig/drivers/net/ethernet/freescale/gianfar.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/net/ethernet/freescale/gianfar.c 2017-04-18 17:56:30.589396200 +0200
-@@ -1540,7 +1540,7 @@
-
- if (netif_running(ndev)) {
-
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- lock_tx_qs(priv);
-
- gfar_halt_nodisable(priv);
-@@ -1556,7 +1556,7 @@
- gfar_write(&regs->maccfg1, tempval);
-
- unlock_tx_qs(priv);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
-
- disable_napi(priv);
-
-@@ -1598,7 +1598,7 @@
- /* Disable Magic Packet mode, in case something
- * else woke us up.
- */
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- lock_tx_qs(priv);
-
- tempval = gfar_read(&regs->maccfg2);
-@@ -1608,7 +1608,7 @@
- gfar_start(priv);
-
- unlock_tx_qs(priv);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
-
- netif_device_attach(ndev);
-
-@@ -3418,14 +3418,14 @@
- dev->stats.tx_dropped++;
- atomic64_inc(&priv->extra_stats.tx_underrun);
-
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- lock_tx_qs(priv);
-
- /* Reactivate the Tx Queues */
- gfar_write(&regs->tstat, gfargrp->tstat);
-
- unlock_tx_qs(priv);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- }
- netif_dbg(priv, tx_err, dev, "Transmit Error\n");
- }
-diff -Nur linux-4.1.39.orig/drivers/net/ethernet/neterion/s2io.c linux-4.1.39/drivers/net/ethernet/neterion/s2io.c
---- linux-4.1.39.orig/drivers/net/ethernet/neterion/s2io.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/net/ethernet/neterion/s2io.c 2017-04-18 17:56:30.589396200 +0200
-@@ -4084,12 +4084,7 @@
- [skb->priority & (MAX_TX_FIFOS - 1)];
- fifo = &mac_control->fifos[queue];
-
-- if (do_spin_lock)
-- spin_lock_irqsave(&fifo->tx_lock, flags);
-- else {
-- if (unlikely(!spin_trylock_irqsave(&fifo->tx_lock, flags)))
-- return NETDEV_TX_LOCKED;
-- }
-+ spin_lock_irqsave(&fifo->tx_lock, flags);
-
- if (sp->config.multiq) {
- if (__netif_subqueue_stopped(dev, fifo->fifo_no)) {
-diff -Nur linux-4.1.39.orig/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c linux-4.1.39/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
---- linux-4.1.39.orig/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c 2017-04-18 17:56:30.589396200 +0200
-@@ -2137,10 +2137,8 @@
- struct pch_gbe_tx_ring *tx_ring = adapter->tx_ring;
- unsigned long flags;
-
-- if (!spin_trylock_irqsave(&tx_ring->tx_lock, flags)) {
-- /* Collision - tell upper layer to requeue */
-- return NETDEV_TX_LOCKED;
-- }
-+ spin_lock_irqsave(&tx_ring->tx_lock, flags);
-+
- if (unlikely(!PCH_GBE_DESC_UNUSED(tx_ring))) {
- netif_stop_queue(netdev);
- spin_unlock_irqrestore(&tx_ring->tx_lock, flags);
-diff -Nur linux-4.1.39.orig/drivers/net/ethernet/realtek/8139too.c linux-4.1.39/drivers/net/ethernet/realtek/8139too.c
---- linux-4.1.39.orig/drivers/net/ethernet/realtek/8139too.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/net/ethernet/realtek/8139too.c 2017-04-18 17:56:30.593396355 +0200
-@@ -2229,7 +2229,7 @@
- struct rtl8139_private *tp = netdev_priv(dev);
- const int irq = tp->pci_dev->irq;
-
-- disable_irq(irq);
-+ disable_irq_nosync(irq);
- rtl8139_interrupt(irq, dev);
- enable_irq(irq);
- }
-diff -Nur linux-4.1.39.orig/drivers/net/ethernet/tehuti/tehuti.c linux-4.1.39/drivers/net/ethernet/tehuti/tehuti.c
---- linux-4.1.39.orig/drivers/net/ethernet/tehuti/tehuti.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/net/ethernet/tehuti/tehuti.c 2017-04-18 17:56:30.593396355 +0200
-@@ -1629,13 +1629,8 @@
- unsigned long flags;
-
- ENTER;
-- local_irq_save(flags);
-- if (!spin_trylock(&priv->tx_lock)) {
-- local_irq_restore(flags);
-- DBG("%s[%s]: TX locked, returning NETDEV_TX_LOCKED\n",
-- BDX_DRV_NAME, ndev->name);
-- return NETDEV_TX_LOCKED;
-- }
-+
-+ spin_lock_irqsave(&priv->tx_lock, flags);
-
- /* build tx descriptor */
- BDX_ASSERT(f->m.wptr >= f->m.memsz); /* started with valid wptr */
-diff -Nur linux-4.1.39.orig/drivers/net/rionet.c linux-4.1.39/drivers/net/rionet.c
---- linux-4.1.39.orig/drivers/net/rionet.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/net/rionet.c 2017-04-18 17:56:30.593396355 +0200
-@@ -174,11 +174,7 @@
- unsigned long flags;
- int add_num = 1;
-
-- local_irq_save(flags);
-- if (!spin_trylock(&rnet->tx_lock)) {
-- local_irq_restore(flags);
-- return NETDEV_TX_LOCKED;
-- }
-+ spin_lock_irqsave(&rnet->tx_lock, flags);
-
- if (is_multicast_ether_addr(eth->h_dest))
- add_num = nets[rnet->mport->id].nact;
-diff -Nur linux-4.1.39.orig/drivers/net/wireless/orinoco/orinoco_usb.c linux-4.1.39/drivers/net/wireless/orinoco/orinoco_usb.c
---- linux-4.1.39.orig/drivers/net/wireless/orinoco/orinoco_usb.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/net/wireless/orinoco/orinoco_usb.c 2017-04-18 17:56:30.593396355 +0200
-@@ -697,7 +697,7 @@
- while (!ctx->done.done && msecs--)
- udelay(1000);
- } else {
-- wait_event_interruptible(ctx->done.wait,
-+ swait_event_interruptible(ctx->done.wait,
- ctx->done.done);
- }
- break;
-diff -Nur linux-4.1.39.orig/drivers/pci/access.c linux-4.1.39/drivers/pci/access.c
---- linux-4.1.39.orig/drivers/pci/access.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/pci/access.c 2017-04-18 17:56:30.593396355 +0200
-@@ -561,7 +561,7 @@
- WARN_ON(!dev->block_cfg_access);
-
- dev->block_cfg_access = 0;
-- wake_up_all(&pci_cfg_wait);
-+ wake_up_all_locked(&pci_cfg_wait);
- raw_spin_unlock_irqrestore(&pci_lock, flags);
- }
- EXPORT_SYMBOL_GPL(pci_cfg_access_unlock);
-diff -Nur linux-4.1.39.orig/drivers/pinctrl/qcom/pinctrl-msm.c linux-4.1.39/drivers/pinctrl/qcom/pinctrl-msm.c
---- linux-4.1.39.orig/drivers/pinctrl/qcom/pinctrl-msm.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/pinctrl/qcom/pinctrl-msm.c 2017-04-18 17:56:30.593396355 +0200
-@@ -59,7 +59,7 @@
- struct notifier_block restart_nb;
- int irq;
-
-- spinlock_t lock;
-+ raw_spinlock_t lock;
-
- DECLARE_BITMAP(dual_edge_irqs, MAX_NR_GPIO);
- DECLARE_BITMAP(enabled_irqs, MAX_NR_GPIO);
-@@ -155,14 +155,14 @@
- if (WARN_ON(i == g->nfuncs))
- return -EINVAL;
-
-- spin_lock_irqsave(&pctrl->lock, flags);
-+ raw_spin_lock_irqsave(&pctrl->lock, flags);
-
- val = readl(pctrl->regs + g->ctl_reg);
- val &= ~(0x7 << g->mux_bit);
- val |= i << g->mux_bit;
- writel(val, pctrl->regs + g->ctl_reg);
-
-- spin_unlock_irqrestore(&pctrl->lock, flags);
-+ raw_spin_unlock_irqrestore(&pctrl->lock, flags);
-
- return 0;
- }
-@@ -325,14 +325,14 @@
- break;
- case PIN_CONFIG_OUTPUT:
- /* set output value */
-- spin_lock_irqsave(&pctrl->lock, flags);
-+ raw_spin_lock_irqsave(&pctrl->lock, flags);
- val = readl(pctrl->regs + g->io_reg);
- if (arg)
- val |= BIT(g->out_bit);
- else
- val &= ~BIT(g->out_bit);
- writel(val, pctrl->regs + g->io_reg);
-- spin_unlock_irqrestore(&pctrl->lock, flags);
-+ raw_spin_unlock_irqrestore(&pctrl->lock, flags);
-
- /* enable output */
- arg = 1;
-@@ -353,12 +353,12 @@
- return -EINVAL;
- }
-
-- spin_lock_irqsave(&pctrl->lock, flags);
-+ raw_spin_lock_irqsave(&pctrl->lock, flags);
- val = readl(pctrl->regs + g->ctl_reg);
- val &= ~(mask << bit);
- val |= arg << bit;
- writel(val, pctrl->regs + g->ctl_reg);
-- spin_unlock_irqrestore(&pctrl->lock, flags);
-+ raw_spin_unlock_irqrestore(&pctrl->lock, flags);
- }
-
- return 0;
-@@ -386,13 +386,13 @@
-
- g = &pctrl->soc->groups[offset];
-
-- spin_lock_irqsave(&pctrl->lock, flags);
-+ raw_spin_lock_irqsave(&pctrl->lock, flags);
-
- val = readl(pctrl->regs + g->ctl_reg);
- val &= ~BIT(g->oe_bit);
- writel(val, pctrl->regs + g->ctl_reg);
-
-- spin_unlock_irqrestore(&pctrl->lock, flags);
-+ raw_spin_unlock_irqrestore(&pctrl->lock, flags);
-
- return 0;
- }
-@@ -406,7 +406,7 @@
-
- g = &pctrl->soc->groups[offset];
-
-- spin_lock_irqsave(&pctrl->lock, flags);
-+ raw_spin_lock_irqsave(&pctrl->lock, flags);
-
- val = readl(pctrl->regs + g->io_reg);
- if (value)
-@@ -419,7 +419,7 @@
- val |= BIT(g->oe_bit);
- writel(val, pctrl->regs + g->ctl_reg);
-
-- spin_unlock_irqrestore(&pctrl->lock, flags);
-+ raw_spin_unlock_irqrestore(&pctrl->lock, flags);
-
- return 0;
- }
-@@ -445,7 +445,7 @@
-
- g = &pctrl->soc->groups[offset];
-
-- spin_lock_irqsave(&pctrl->lock, flags);
-+ raw_spin_lock_irqsave(&pctrl->lock, flags);
-
- val = readl(pctrl->regs + g->io_reg);
- if (value)
-@@ -454,7 +454,7 @@
- val &= ~BIT(g->out_bit);
- writel(val, pctrl->regs + g->io_reg);
-
-- spin_unlock_irqrestore(&pctrl->lock, flags);
-+ raw_spin_unlock_irqrestore(&pctrl->lock, flags);
- }
-
- static int msm_gpio_request(struct gpio_chip *chip, unsigned offset)
-@@ -585,7 +585,7 @@
-
- g = &pctrl->soc->groups[d->hwirq];
-
-- spin_lock_irqsave(&pctrl->lock, flags);
-+ raw_spin_lock_irqsave(&pctrl->lock, flags);
-
- val = readl(pctrl->regs + g->intr_cfg_reg);
- val &= ~BIT(g->intr_enable_bit);
-@@ -593,7 +593,7 @@
-
- clear_bit(d->hwirq, pctrl->enabled_irqs);
-
-- spin_unlock_irqrestore(&pctrl->lock, flags);
-+ raw_spin_unlock_irqrestore(&pctrl->lock, flags);
- }
-
- static void msm_gpio_irq_unmask(struct irq_data *d)
-@@ -606,7 +606,7 @@
-
- g = &pctrl->soc->groups[d->hwirq];
-
-- spin_lock_irqsave(&pctrl->lock, flags);
-+ raw_spin_lock_irqsave(&pctrl->lock, flags);
-
- val = readl(pctrl->regs + g->intr_status_reg);
- val &= ~BIT(g->intr_status_bit);
-@@ -618,7 +618,7 @@
-
- set_bit(d->hwirq, pctrl->enabled_irqs);
-
-- spin_unlock_irqrestore(&pctrl->lock, flags);
-+ raw_spin_unlock_irqrestore(&pctrl->lock, flags);
- }
-
- static void msm_gpio_irq_ack(struct irq_data *d)
-@@ -631,7 +631,7 @@
-
- g = &pctrl->soc->groups[d->hwirq];
-
-- spin_lock_irqsave(&pctrl->lock, flags);
-+ raw_spin_lock_irqsave(&pctrl->lock, flags);
-
- val = readl(pctrl->regs + g->intr_status_reg);
- if (g->intr_ack_high)
-@@ -643,7 +643,7 @@
- if (test_bit(d->hwirq, pctrl->dual_edge_irqs))
- msm_gpio_update_dual_edge_pos(pctrl, g, d);
-
-- spin_unlock_irqrestore(&pctrl->lock, flags);
-+ raw_spin_unlock_irqrestore(&pctrl->lock, flags);
- }
-
- static int msm_gpio_irq_set_type(struct irq_data *d, unsigned int type)
-@@ -656,7 +656,7 @@
-
- g = &pctrl->soc->groups[d->hwirq];
-
-- spin_lock_irqsave(&pctrl->lock, flags);
-+ raw_spin_lock_irqsave(&pctrl->lock, flags);
-
- /*
- * For hw without possibility of detecting both edges
-@@ -730,7 +730,7 @@
- if (test_bit(d->hwirq, pctrl->dual_edge_irqs))
- msm_gpio_update_dual_edge_pos(pctrl, g, d);
-
-- spin_unlock_irqrestore(&pctrl->lock, flags);
-+ raw_spin_unlock_irqrestore(&pctrl->lock, flags);
-
- if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH))
- __irq_set_handler_locked(d->irq, handle_level_irq);
-@@ -746,11 +746,11 @@
- struct msm_pinctrl *pctrl = to_msm_pinctrl(gc);
- unsigned long flags;
-
-- spin_lock_irqsave(&pctrl->lock, flags);
-+ raw_spin_lock_irqsave(&pctrl->lock, flags);
-
- irq_set_irq_wake(pctrl->irq, on);
-
-- spin_unlock_irqrestore(&pctrl->lock, flags);
-+ raw_spin_unlock_irqrestore(&pctrl->lock, flags);
-
- return 0;
- }
-@@ -887,7 +887,7 @@
- pctrl->soc = soc_data;
- pctrl->chip = msm_gpio_template;
-
-- spin_lock_init(&pctrl->lock);
-+ raw_spin_lock_init(&pctrl->lock);
-
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- pctrl->regs = devm_ioremap_resource(&pdev->dev, res);
-diff -Nur linux-4.1.39.orig/drivers/scsi/fcoe/fcoe.c linux-4.1.39/drivers/scsi/fcoe/fcoe.c
---- linux-4.1.39.orig/drivers/scsi/fcoe/fcoe.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/scsi/fcoe/fcoe.c 2017-04-18 17:56:30.593396355 +0200
-@@ -1287,7 +1287,7 @@
- struct sk_buff *skb;
- #ifdef CONFIG_SMP
- struct fcoe_percpu_s *p0;
-- unsigned targ_cpu = get_cpu();
-+ unsigned targ_cpu = get_cpu_light();
- #endif /* CONFIG_SMP */
-
- FCOE_DBG("Destroying receive thread for CPU %d\n", cpu);
-@@ -1343,7 +1343,7 @@
- kfree_skb(skb);
- spin_unlock_bh(&p->fcoe_rx_list.lock);
- }
-- put_cpu();
-+ put_cpu_light();
- #else
- /*
- * This a non-SMP scenario where the singular Rx thread is
-@@ -1567,11 +1567,11 @@
- static int fcoe_alloc_paged_crc_eof(struct sk_buff *skb, int tlen)
- {
- struct fcoe_percpu_s *fps;
-- int rc;
-+ int rc, cpu = get_cpu_light();
-
-- fps = &get_cpu_var(fcoe_percpu);
-+ fps = &per_cpu(fcoe_percpu, cpu);
- rc = fcoe_get_paged_crc_eof(skb, tlen, fps);
-- put_cpu_var(fcoe_percpu);
-+ put_cpu_light();
-
- return rc;
- }
-@@ -1767,11 +1767,11 @@
- return 0;
- }
-
-- stats = per_cpu_ptr(lport->stats, get_cpu());
-+ stats = per_cpu_ptr(lport->stats, get_cpu_light());
- stats->InvalidCRCCount++;
- if (stats->InvalidCRCCount < 5)
- printk(KERN_WARNING "fcoe: dropping frame with CRC error\n");
-- put_cpu();
-+ put_cpu_light();
- return -EINVAL;
- }
-
-@@ -1815,7 +1815,7 @@
- */
- hp = (struct fcoe_hdr *) skb_network_header(skb);
-
-- stats = per_cpu_ptr(lport->stats, get_cpu());
-+ stats = per_cpu_ptr(lport->stats, get_cpu_light());
- if (unlikely(FC_FCOE_DECAPS_VER(hp) != FC_FCOE_VER)) {
- if (stats->ErrorFrames < 5)
- printk(KERN_WARNING "fcoe: FCoE version "
-@@ -1847,13 +1847,13 @@
- goto drop;
-
- if (!fcoe_filter_frames(lport, fp)) {
-- put_cpu();
-+ put_cpu_light();
- fc_exch_recv(lport, fp);
- return;
- }
- drop:
- stats->ErrorFrames++;
-- put_cpu();
-+ put_cpu_light();
- kfree_skb(skb);
- }
-
-diff -Nur linux-4.1.39.orig/drivers/scsi/fcoe/fcoe_ctlr.c linux-4.1.39/drivers/scsi/fcoe/fcoe_ctlr.c
---- linux-4.1.39.orig/drivers/scsi/fcoe/fcoe_ctlr.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/scsi/fcoe/fcoe_ctlr.c 2017-04-18 17:56:30.593396355 +0200
-@@ -831,7 +831,7 @@
-
- INIT_LIST_HEAD(&del_list);
-
-- stats = per_cpu_ptr(fip->lp->stats, get_cpu());
-+ stats = per_cpu_ptr(fip->lp->stats, get_cpu_light());
-
- list_for_each_entry_safe(fcf, next, &fip->fcfs, list) {
- deadline = fcf->time + fcf->fka_period + fcf->fka_period / 2;
-@@ -867,7 +867,7 @@
- sel_time = fcf->time;
- }
- }
-- put_cpu();
-+ put_cpu_light();
-
- list_for_each_entry_safe(fcf, next, &del_list, list) {
- /* Removes fcf from current list */
-diff -Nur linux-4.1.39.orig/drivers/scsi/libfc/fc_exch.c linux-4.1.39/drivers/scsi/libfc/fc_exch.c
---- linux-4.1.39.orig/drivers/scsi/libfc/fc_exch.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/scsi/libfc/fc_exch.c 2017-04-18 17:56:30.593396355 +0200
-@@ -814,10 +814,10 @@
- }
- memset(ep, 0, sizeof(*ep));
-
-- cpu = get_cpu();
-+ cpu = get_cpu_light();
- pool = per_cpu_ptr(mp->pool, cpu);
- spin_lock_bh(&pool->lock);
-- put_cpu();
-+ put_cpu_light();
-
- /* peek cache of free slot */
- if (pool->left != FC_XID_UNKNOWN) {
-diff -Nur linux-4.1.39.orig/drivers/scsi/libsas/sas_ata.c linux-4.1.39/drivers/scsi/libsas/sas_ata.c
---- linux-4.1.39.orig/drivers/scsi/libsas/sas_ata.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/scsi/libsas/sas_ata.c 2017-04-18 17:56:30.593396355 +0200
-@@ -190,7 +190,7 @@
- /* TODO: audit callers to ensure they are ready for qc_issue to
- * unconditionally re-enable interrupts
- */
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- spin_unlock(ap->lock);
-
- /* If the device fell off, no sense in issuing commands */
-@@ -255,7 +255,7 @@
-
- out:
- spin_lock(ap->lock);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- return ret;
- }
-
-diff -Nur linux-4.1.39.orig/drivers/scsi/qla2xxx/qla_inline.h linux-4.1.39/drivers/scsi/qla2xxx/qla_inline.h
---- linux-4.1.39.orig/drivers/scsi/qla2xxx/qla_inline.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/scsi/qla2xxx/qla_inline.h 2017-04-18 17:56:30.593396355 +0200
-@@ -59,12 +59,12 @@
- {
- unsigned long flags;
- struct qla_hw_data *ha = rsp->hw;
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- if (IS_P3P_TYPE(ha))
- qla82xx_poll(0, rsp);
- else
- ha->isp_ops->intr_handler(0, rsp);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- }
-
- static inline uint8_t *
-diff -Nur linux-4.1.39.orig/drivers/thermal/x86_pkg_temp_thermal.c linux-4.1.39/drivers/thermal/x86_pkg_temp_thermal.c
---- linux-4.1.39.orig/drivers/thermal/x86_pkg_temp_thermal.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/thermal/x86_pkg_temp_thermal.c 2017-04-18 17:56:30.593396355 +0200
-@@ -29,6 +29,7 @@
- #include <linux/pm.h>
- #include <linux/thermal.h>
- #include <linux/debugfs.h>
-+#include <linux/work-simple.h>
- #include <asm/cpu_device_id.h>
- #include <asm/mce.h>
-
-@@ -352,7 +353,7 @@
- }
- }
-
--static int pkg_temp_thermal_platform_thermal_notify(__u64 msr_val)
-+static void platform_thermal_notify_work(struct swork_event *event)
- {
- unsigned long flags;
- int cpu = smp_processor_id();
-@@ -369,7 +370,7 @@
- pkg_work_scheduled[phy_id]) {
- disable_pkg_thres_interrupt();
- spin_unlock_irqrestore(&pkg_work_lock, flags);
-- return -EINVAL;
-+ return;
- }
- pkg_work_scheduled[phy_id] = 1;
- spin_unlock_irqrestore(&pkg_work_lock, flags);
-@@ -378,9 +379,48 @@
- schedule_delayed_work_on(cpu,
- &per_cpu(pkg_temp_thermal_threshold_work, cpu),
- msecs_to_jiffies(notify_delay_ms));
-+}
-+
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+static struct swork_event notify_work;
-+
-+static int thermal_notify_work_init(void)
-+{
-+ int err;
-+
-+ err = swork_get();
-+ if (err)
-+ return err;
-+
-+ INIT_SWORK(&notify_work, platform_thermal_notify_work);
- return 0;
- }
-
-+static void thermal_notify_work_cleanup(void)
-+{
-+ swork_put();
-+}
-+
-+static int pkg_temp_thermal_platform_thermal_notify(__u64 msr_val)
-+{
-+ swork_queue(&notify_work);
-+ return 0;
-+}
-+
-+#else /* !CONFIG_PREEMPT_RT_FULL */
-+
-+static int thermal_notify_work_init(void) { return 0; }
-+
-+static void thermal_notify_work_cleanup(void) { }
-+
-+static int pkg_temp_thermal_platform_thermal_notify(__u64 msr_val)
-+{
-+ platform_thermal_notify_work(NULL);
-+
-+ return 0;
-+}
-+#endif /* CONFIG_PREEMPT_RT_FULL */
-+
- static int find_siblings_cpu(int cpu)
- {
- int i;
-@@ -584,6 +624,9 @@
- if (!x86_match_cpu(pkg_temp_thermal_ids))
- return -ENODEV;
-
-+ if (!thermal_notify_work_init())
-+ return -ENODEV;
-+
- spin_lock_init(&pkg_work_lock);
- platform_thermal_package_notify =
- pkg_temp_thermal_platform_thermal_notify;
-@@ -608,7 +651,7 @@
- kfree(pkg_work_scheduled);
- platform_thermal_package_notify = NULL;
- platform_thermal_package_rate_control = NULL;
--
-+ thermal_notify_work_cleanup();
- return -ENODEV;
- }
-
-@@ -633,6 +676,7 @@
- mutex_unlock(&phy_dev_list_mutex);
- platform_thermal_package_notify = NULL;
- platform_thermal_package_rate_control = NULL;
-+ thermal_notify_work_cleanup();
- for_each_online_cpu(i)
- cancel_delayed_work_sync(
- &per_cpu(pkg_temp_thermal_threshold_work, i));
-diff -Nur linux-4.1.39.orig/drivers/tty/serial/8250/8250_core.c linux-4.1.39/drivers/tty/serial/8250/8250_core.c
---- linux-4.1.39.orig/drivers/tty/serial/8250/8250_core.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/tty/serial/8250/8250_core.c 2017-04-18 17:56:30.593396355 +0200
-@@ -36,6 +36,7 @@
- #include <linux/nmi.h>
- #include <linux/mutex.h>
- #include <linux/slab.h>
-+#include <linux/kdb.h>
- #include <linux/uaccess.h>
- #include <linux/pm_runtime.h>
- #ifdef CONFIG_SPARC
-@@ -80,7 +81,16 @@
- #define DEBUG_INTR(fmt...) do { } while (0)
- #endif
-
--#define PASS_LIMIT 512
-+/*
-+ * On -rt we can have a more delays, and legitimately
-+ * so - so don't drop work spuriously and spam the
-+ * syslog:
-+ */
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+# define PASS_LIMIT 1000000
-+#else
-+# define PASS_LIMIT 512
-+#endif
-
- #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
-
-@@ -3366,7 +3376,7 @@
-
- if (port->sysrq)
- locked = 0;
-- else if (oops_in_progress)
-+ else if (oops_in_progress || in_kdb_printk())
- locked = spin_trylock_irqsave(&port->lock, flags);
- else
- spin_lock_irqsave(&port->lock, flags);
-diff -Nur linux-4.1.39.orig/drivers/tty/serial/amba-pl011.c linux-4.1.39/drivers/tty/serial/amba-pl011.c
---- linux-4.1.39.orig/drivers/tty/serial/amba-pl011.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/tty/serial/amba-pl011.c 2017-04-18 17:56:30.597396510 +0200
-@@ -2000,13 +2000,19 @@
-
- clk_enable(uap->clk);
-
-- local_irq_save(flags);
-+ /*
-+ * local_irq_save(flags);
-+ *
-+ * This local_irq_save() is nonsense. If we come in via sysrq
-+ * handling then interrupts are already disabled. Aside of
-+ * that the port.sysrq check is racy on SMP regardless.
-+ */
- if (uap->port.sysrq)
- locked = 0;
- else if (oops_in_progress)
-- locked = spin_trylock(&uap->port.lock);
-+ locked = spin_trylock_irqsave(&uap->port.lock, flags);
- else
-- spin_lock(&uap->port.lock);
-+ spin_lock_irqsave(&uap->port.lock, flags);
-
- /*
- * First save the CR then disable the interrupts
-@@ -2028,8 +2034,7 @@
- writew(old_cr, uap->port.membase + UART011_CR);
-
- if (locked)
-- spin_unlock(&uap->port.lock);
-- local_irq_restore(flags);
-+ spin_unlock_irqrestore(&uap->port.lock, flags);
-
- clk_disable(uap->clk);
- }
-diff -Nur linux-4.1.39.orig/drivers/tty/serial/omap-serial.c linux-4.1.39/drivers/tty/serial/omap-serial.c
---- linux-4.1.39.orig/drivers/tty/serial/omap-serial.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/tty/serial/omap-serial.c 2017-04-18 17:56:30.597396510 +0200
-@@ -1282,13 +1282,10 @@
-
- pm_runtime_get_sync(up->dev);
-
-- local_irq_save(flags);
-- if (up->port.sysrq)
-- locked = 0;
-- else if (oops_in_progress)
-- locked = spin_trylock(&up->port.lock);
-+ if (up->port.sysrq || oops_in_progress)
-+ locked = spin_trylock_irqsave(&up->port.lock, flags);
- else
-- spin_lock(&up->port.lock);
-+ spin_lock_irqsave(&up->port.lock, flags);
-
- /*
- * First save the IER then disable the interrupts
-@@ -1317,8 +1314,7 @@
- pm_runtime_mark_last_busy(up->dev);
- pm_runtime_put_autosuspend(up->dev);
- if (locked)
-- spin_unlock(&up->port.lock);
-- local_irq_restore(flags);
-+ spin_unlock_irqrestore(&up->port.lock, flags);
- }
-
- static int __init
-diff -Nur linux-4.1.39.orig/drivers/usb/core/hcd.c linux-4.1.39/drivers/usb/core/hcd.c
---- linux-4.1.39.orig/drivers/usb/core/hcd.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/usb/core/hcd.c 2017-04-18 17:56:30.597396510 +0200
-@@ -1684,9 +1684,9 @@
- * and no one may trigger the above deadlock situation when
- * running complete() in tasklet.
- */
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- urb->complete(urb);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
-
- usb_anchor_resume_wakeups(anchor);
- atomic_dec(&urb->use_count);
-diff -Nur linux-4.1.39.orig/drivers/usb/gadget/function/f_fs.c linux-4.1.39/drivers/usb/gadget/function/f_fs.c
---- linux-4.1.39.orig/drivers/usb/gadget/function/f_fs.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/usb/gadget/function/f_fs.c 2017-04-18 17:56:30.597396510 +0200
-@@ -1404,7 +1404,7 @@
- pr_info("%s(): freeing\n", __func__);
- ffs_data_clear(ffs);
- BUG_ON(waitqueue_active(&ffs->ev.waitq) ||
-- waitqueue_active(&ffs->ep0req_completion.wait));
-+ swaitqueue_active(&ffs->ep0req_completion.wait));
- kfree(ffs->dev_name);
- kfree(ffs);
- }
-diff -Nur linux-4.1.39.orig/drivers/usb/gadget/legacy/inode.c linux-4.1.39/drivers/usb/gadget/legacy/inode.c
---- linux-4.1.39.orig/drivers/usb/gadget/legacy/inode.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/usb/gadget/legacy/inode.c 2017-04-18 17:56:30.597396510 +0200
-@@ -345,7 +345,7 @@
- spin_unlock_irq (&epdata->dev->lock);
-
- if (likely (value == 0)) {
-- value = wait_event_interruptible (done.wait, done.done);
-+ value = swait_event_interruptible (done.wait, done.done);
- if (value != 0) {
- spin_lock_irq (&epdata->dev->lock);
- if (likely (epdata->ep != NULL)) {
-@@ -354,7 +354,7 @@
- usb_ep_dequeue (epdata->ep, epdata->req);
- spin_unlock_irq (&epdata->dev->lock);
-
-- wait_event (done.wait, done.done);
-+ swait_event (done.wait, done.done);
- if (epdata->status == -ECONNRESET)
- epdata->status = -EINTR;
- } else {
-diff -Nur linux-4.1.39.orig/drivers/usb/gadget/udc/atmel_usba_udc.c linux-4.1.39/drivers/usb/gadget/udc/atmel_usba_udc.c
---- linux-4.1.39.orig/drivers/usb/gadget/udc/atmel_usba_udc.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/usb/gadget/udc/atmel_usba_udc.c 2017-04-18 17:56:30.597396510 +0200
-@@ -17,7 +17,9 @@
- #include <linux/device.h>
- #include <linux/dma-mapping.h>
- #include <linux/list.h>
-+#include <linux/mfd/syscon.h>
- #include <linux/platform_device.h>
-+#include <linux/regmap.h>
- #include <linux/usb/ch9.h>
- #include <linux/usb/gadget.h>
- #include <linux/usb/atmel_usba_udc.h>
-@@ -1889,20 +1891,15 @@
- #ifdef CONFIG_OF
- static void at91sam9rl_toggle_bias(struct usba_udc *udc, int is_on)
- {
-- unsigned int uckr = at91_pmc_read(AT91_CKGR_UCKR);
--
-- if (is_on)
-- at91_pmc_write(AT91_CKGR_UCKR, uckr | AT91_PMC_BIASEN);
-- else
-- at91_pmc_write(AT91_CKGR_UCKR, uckr & ~(AT91_PMC_BIASEN));
-+ regmap_update_bits(udc->pmc, AT91_CKGR_UCKR, AT91_PMC_BIASEN,
-+ is_on ? AT91_PMC_BIASEN : 0);
- }
-
- static void at91sam9g45_pulse_bias(struct usba_udc *udc)
- {
-- unsigned int uckr = at91_pmc_read(AT91_CKGR_UCKR);
--
-- at91_pmc_write(AT91_CKGR_UCKR, uckr & ~(AT91_PMC_BIASEN));
-- at91_pmc_write(AT91_CKGR_UCKR, uckr | AT91_PMC_BIASEN);
-+ regmap_update_bits(udc->pmc, AT91_CKGR_UCKR, AT91_PMC_BIASEN, 0);
-+ regmap_update_bits(udc->pmc, AT91_CKGR_UCKR, AT91_PMC_BIASEN,
-+ AT91_PMC_BIASEN);
- }
-
- static const struct usba_udc_errata at91sam9rl_errata = {
-@@ -1939,6 +1936,9 @@
- return ERR_PTR(-EINVAL);
-
- udc->errata = match->data;
-+ udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9g45-pmc");
-+ if (udc->errata && IS_ERR(udc->pmc))
-+ return ERR_CAST(udc->pmc);
-
- udc->num_ep = 0;
-
-diff -Nur linux-4.1.39.orig/drivers/usb/gadget/udc/atmel_usba_udc.h linux-4.1.39/drivers/usb/gadget/udc/atmel_usba_udc.h
---- linux-4.1.39.orig/drivers/usb/gadget/udc/atmel_usba_udc.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/drivers/usb/gadget/udc/atmel_usba_udc.h 2017-04-18 17:56:30.597396510 +0200
-@@ -354,6 +354,8 @@
- struct dentry *debugfs_root;
- struct dentry *debugfs_regs;
- #endif
-+
-+ struct regmap *pmc;
- };
-
- static inline struct usba_ep *to_usba_ep(struct usb_ep *ep)
-diff -Nur linux-4.1.39.orig/fs/aio.c linux-4.1.39/fs/aio.c
---- linux-4.1.39.orig/fs/aio.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/aio.c 2017-04-18 17:56:30.597396510 +0200
-@@ -40,6 +40,7 @@
- #include <linux/ramfs.h>
- #include <linux/percpu-refcount.h>
- #include <linux/mount.h>
-+#include <linux/work-simple.h>
-
- #include <asm/kmap_types.h>
- #include <asm/uaccess.h>
-@@ -115,7 +116,7 @@
- struct page **ring_pages;
- long nr_pages;
-
-- struct work_struct free_work;
-+ struct swork_event free_work;
-
- /*
- * signals when all in-flight requests are done
-@@ -253,6 +254,7 @@
- .mount = aio_mount,
- .kill_sb = kill_anon_super,
- };
-+ BUG_ON(swork_get());
- aio_mnt = kern_mount(&aio_fs);
- if (IS_ERR(aio_mnt))
- panic("Failed to create aio fs mount.");
-@@ -559,9 +561,9 @@
- return cancel(&kiocb->common);
- }
-
--static void free_ioctx(struct work_struct *work)
-+static void free_ioctx(struct swork_event *sev)
- {
-- struct kioctx *ctx = container_of(work, struct kioctx, free_work);
-+ struct kioctx *ctx = container_of(sev, struct kioctx, free_work);
-
- pr_debug("freeing %p\n", ctx);
-
-@@ -580,8 +582,8 @@
- if (ctx->rq_wait && atomic_dec_and_test(&ctx->rq_wait->count))
- complete(&ctx->rq_wait->comp);
-
-- INIT_WORK(&ctx->free_work, free_ioctx);
-- schedule_work(&ctx->free_work);
-+ INIT_SWORK(&ctx->free_work, free_ioctx);
-+ swork_queue(&ctx->free_work);
- }
-
- /*
-@@ -589,9 +591,9 @@
- * and ctx->users has dropped to 0, so we know no more kiocbs can be submitted -
- * now it's safe to cancel any that need to be.
- */
--static void free_ioctx_users(struct percpu_ref *ref)
-+static void free_ioctx_users_work(struct swork_event *sev)
- {
-- struct kioctx *ctx = container_of(ref, struct kioctx, users);
-+ struct kioctx *ctx = container_of(sev, struct kioctx, free_work);
- struct aio_kiocb *req;
-
- spin_lock_irq(&ctx->ctx_lock);
-@@ -610,6 +612,14 @@
- percpu_ref_put(&ctx->reqs);
- }
-
-+static void free_ioctx_users(struct percpu_ref *ref)
-+{
-+ struct kioctx *ctx = container_of(ref, struct kioctx, users);
-+
-+ INIT_SWORK(&ctx->free_work, free_ioctx_users_work);
-+ swork_queue(&ctx->free_work);
-+}
-+
- static int ioctx_add_table(struct kioctx *ctx, struct mm_struct *mm)
- {
- unsigned i, new_nr;
-diff -Nur linux-4.1.39.orig/fs/autofs4/autofs_i.h linux-4.1.39/fs/autofs4/autofs_i.h
---- linux-4.1.39.orig/fs/autofs4/autofs_i.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/autofs4/autofs_i.h 2017-04-18 17:56:30.597396510 +0200
-@@ -34,6 +34,7 @@
- #include <linux/sched.h>
- #include <linux/mount.h>
- #include <linux/namei.h>
-+#include <linux/delay.h>
- #include <asm/current.h>
- #include <asm/uaccess.h>
-
-diff -Nur linux-4.1.39.orig/fs/autofs4/expire.c linux-4.1.39/fs/autofs4/expire.c
---- linux-4.1.39.orig/fs/autofs4/expire.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/autofs4/expire.c 2017-04-18 17:56:30.597396510 +0200
-@@ -150,7 +150,7 @@
- parent = p->d_parent;
- if (!spin_trylock(&parent->d_lock)) {
- spin_unlock(&p->d_lock);
-- cpu_relax();
-+ cpu_chill();
- goto relock;
- }
- spin_unlock(&p->d_lock);
-diff -Nur linux-4.1.39.orig/fs/buffer.c linux-4.1.39/fs/buffer.c
---- linux-4.1.39.orig/fs/buffer.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/buffer.c 2017-04-18 17:56:30.597396510 +0200
-@@ -301,8 +301,7 @@
- * decide that the page is now completely done.
- */
- first = page_buffers(page);
-- local_irq_save(flags);
-- bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
-+ flags = bh_uptodate_lock_irqsave(first);
- clear_buffer_async_read(bh);
- unlock_buffer(bh);
- tmp = bh;
-@@ -315,8 +314,7 @@
- }
- tmp = tmp->b_this_page;
- } while (tmp != bh);
-- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
-- local_irq_restore(flags);
-+ bh_uptodate_unlock_irqrestore(first, flags);
-
- /*
- * If none of the buffers had errors and they are all
-@@ -328,9 +326,7 @@
- return;
-
- still_busy:
-- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
-- local_irq_restore(flags);
-- return;
-+ bh_uptodate_unlock_irqrestore(first, flags);
- }
-
- /*
-@@ -358,8 +354,7 @@
- }
-
- first = page_buffers(page);
-- local_irq_save(flags);
-- bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
-+ flags = bh_uptodate_lock_irqsave(first);
-
- clear_buffer_async_write(bh);
- unlock_buffer(bh);
-@@ -371,15 +366,12 @@
- }
- tmp = tmp->b_this_page;
- }
-- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
-- local_irq_restore(flags);
-+ bh_uptodate_unlock_irqrestore(first, flags);
- end_page_writeback(page);
- return;
-
- still_busy:
-- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
-- local_irq_restore(flags);
-- return;
-+ bh_uptodate_unlock_irqrestore(first, flags);
- }
- EXPORT_SYMBOL(end_buffer_async_write);
-
-@@ -3325,6 +3317,7 @@
- struct buffer_head *ret = kmem_cache_zalloc(bh_cachep, gfp_flags);
- if (ret) {
- INIT_LIST_HEAD(&ret->b_assoc_buffers);
-+ buffer_head_init_locks(ret);
- preempt_disable();
- __this_cpu_inc(bh_accounting.nr);
- recalc_bh_state();
-diff -Nur linux-4.1.39.orig/fs/dcache.c linux-4.1.39/fs/dcache.c
---- linux-4.1.39.orig/fs/dcache.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/dcache.c 2017-04-18 17:56:30.597396510 +0200
-@@ -19,6 +19,7 @@
- #include <linux/mm.h>
- #include <linux/fs.h>
- #include <linux/fsnotify.h>
-+#include <linux/delay.h>
- #include <linux/slab.h>
- #include <linux/init.h>
- #include <linux/hash.h>
-@@ -747,6 +748,8 @@
- */
- void dput(struct dentry *dentry)
- {
-+ struct dentry *parent;
-+
- if (unlikely(!dentry))
- return;
-
-@@ -783,9 +786,18 @@
- return;
-
- kill_it:
-- dentry = dentry_kill(dentry);
-- if (dentry) {
-- cond_resched();
-+ parent = dentry_kill(dentry);
-+ if (parent) {
-+ int r;
-+
-+ if (parent == dentry) {
-+ /* the task with the highest priority won't schedule */
-+ r = cond_resched();
-+ if (!r)
-+ cpu_chill();
-+ } else {
-+ dentry = parent;
-+ }
- goto repeat;
- }
- }
-@@ -2394,7 +2406,7 @@
- if (dentry->d_lockref.count == 1) {
- if (!spin_trylock(&inode->i_lock)) {
- spin_unlock(&dentry->d_lock);
-- cpu_relax();
-+ cpu_chill();
- goto again;
- }
- dentry->d_flags &= ~DCACHE_CANT_MOUNT;
-diff -Nur linux-4.1.39.orig/fs/eventpoll.c linux-4.1.39/fs/eventpoll.c
---- linux-4.1.39.orig/fs/eventpoll.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/eventpoll.c 2017-04-18 17:56:30.601396665 +0200
-@@ -505,12 +505,12 @@
- */
- static void ep_poll_safewake(wait_queue_head_t *wq)
- {
-- int this_cpu = get_cpu();
-+ int this_cpu = get_cpu_light();
-
- ep_call_nested(&poll_safewake_ncalls, EP_MAX_NESTS,
- ep_poll_wakeup_proc, NULL, wq, (void *) (long) this_cpu);
-
-- put_cpu();
-+ put_cpu_light();
- }
-
- static void ep_remove_wait_queue(struct eppoll_entry *pwq)
-diff -Nur linux-4.1.39.orig/fs/exec.c linux-4.1.39/fs/exec.c
---- linux-4.1.39.orig/fs/exec.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/exec.c 2017-04-18 17:56:30.601396665 +0200
-@@ -859,12 +859,14 @@
- }
- }
- task_lock(tsk);
-+ preempt_disable_rt();
- active_mm = tsk->active_mm;
- tsk->mm = mm;
- tsk->active_mm = mm;
- activate_mm(active_mm, mm);
- tsk->mm->vmacache_seqnum = 0;
- vmacache_flush(tsk);
-+ preempt_enable_rt();
- task_unlock(tsk);
- if (old_mm) {
- up_read(&old_mm->mmap_sem);
-diff -Nur linux-4.1.39.orig/fs/f2fs/f2fs.h linux-4.1.39/fs/f2fs/f2fs.h
---- linux-4.1.39.orig/fs/f2fs/f2fs.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/f2fs/f2fs.h 2017-04-18 17:56:30.601396665 +0200
-@@ -22,7 +22,6 @@
-
- #ifdef CONFIG_F2FS_CHECK_FS
- #define f2fs_bug_on(sbi, condition) BUG_ON(condition)
--#define f2fs_down_write(x, y) down_write_nest_lock(x, y)
- #else
- #define f2fs_bug_on(sbi, condition) \
- do { \
-@@ -31,7 +30,6 @@
- set_sbi_flag(sbi, SBI_NEED_FSCK); \
- } \
- } while (0)
--#define f2fs_down_write(x, y) down_write(x)
- #endif
-
- /*
-@@ -838,7 +836,7 @@
-
- static inline void f2fs_lock_all(struct f2fs_sb_info *sbi)
- {
-- f2fs_down_write(&sbi->cp_rwsem, &sbi->cp_mutex);
-+ down_write(&sbi->cp_rwsem);
- }
-
- static inline void f2fs_unlock_all(struct f2fs_sb_info *sbi)
-diff -Nur linux-4.1.39.orig/fs/jbd/checkpoint.c linux-4.1.39/fs/jbd/checkpoint.c
---- linux-4.1.39.orig/fs/jbd/checkpoint.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/jbd/checkpoint.c 2017-04-18 17:56:30.601396665 +0200
-@@ -129,6 +129,8 @@
- if (journal->j_flags & JFS_ABORT)
- return;
- spin_unlock(&journal->j_state_lock);
-+ if (current->plug)
-+ io_schedule();
- mutex_lock(&journal->j_checkpoint_mutex);
-
- /*
-diff -Nur linux-4.1.39.orig/fs/jbd2/checkpoint.c linux-4.1.39/fs/jbd2/checkpoint.c
---- linux-4.1.39.orig/fs/jbd2/checkpoint.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/jbd2/checkpoint.c 2017-04-18 17:56:30.601396665 +0200
-@@ -116,6 +116,8 @@
- nblocks = jbd2_space_needed(journal);
- while (jbd2_log_space_left(journal) < nblocks) {
- write_unlock(&journal->j_state_lock);
-+ if (current->plug)
-+ io_schedule();
- mutex_lock(&journal->j_checkpoint_mutex);
-
- /*
-diff -Nur linux-4.1.39.orig/fs/namespace.c linux-4.1.39/fs/namespace.c
---- linux-4.1.39.orig/fs/namespace.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/namespace.c 2017-04-18 17:56:30.601396665 +0200
-@@ -14,6 +14,7 @@
- #include <linux/mnt_namespace.h>
- #include <linux/user_namespace.h>
- #include <linux/namei.h>
-+#include <linux/delay.h>
- #include <linux/security.h>
- #include <linux/idr.h>
- #include <linux/init.h> /* init_rootfs */
-@@ -356,8 +357,11 @@
- * incremented count after it has set MNT_WRITE_HOLD.
- */
- smp_mb();
-- while (ACCESS_ONCE(mnt->mnt.mnt_flags) & MNT_WRITE_HOLD)
-- cpu_relax();
-+ while (ACCESS_ONCE(mnt->mnt.mnt_flags) & MNT_WRITE_HOLD) {
-+ preempt_enable();
-+ cpu_chill();
-+ preempt_disable();
-+ }
- /*
- * After the slowpath clears MNT_WRITE_HOLD, mnt_is_readonly will
- * be set to match its requirements. So we must not load that until
-diff -Nur linux-4.1.39.orig/fs/ntfs/aops.c linux-4.1.39/fs/ntfs/aops.c
---- linux-4.1.39.orig/fs/ntfs/aops.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/ntfs/aops.c 2017-04-18 17:56:30.601396665 +0200
-@@ -107,8 +107,7 @@
- "0x%llx.", (unsigned long long)bh->b_blocknr);
- }
- first = page_buffers(page);
-- local_irq_save(flags);
-- bit_spin_lock(BH_Uptodate_Lock, &first->b_state);
-+ flags = bh_uptodate_lock_irqsave(first);
- clear_buffer_async_read(bh);
- unlock_buffer(bh);
- tmp = bh;
-@@ -123,8 +122,7 @@
- }
- tmp = tmp->b_this_page;
- } while (tmp != bh);
-- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
-- local_irq_restore(flags);
-+ bh_uptodate_unlock_irqrestore(first, flags);
- /*
- * If none of the buffers had errors then we can set the page uptodate,
- * but we first have to perform the post read mst fixups, if the
-@@ -145,13 +143,13 @@
- recs = PAGE_CACHE_SIZE / rec_size;
- /* Should have been verified before we got here... */
- BUG_ON(!recs);
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- kaddr = kmap_atomic(page);
- for (i = 0; i < recs; i++)
- post_read_mst_fixup((NTFS_RECORD*)(kaddr +
- i * rec_size), rec_size);
- kunmap_atomic(kaddr);
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- flush_dcache_page(page);
- if (likely(page_uptodate && !PageError(page)))
- SetPageUptodate(page);
-@@ -159,9 +157,7 @@
- unlock_page(page);
- return;
- still_busy:
-- bit_spin_unlock(BH_Uptodate_Lock, &first->b_state);
-- local_irq_restore(flags);
-- return;
-+ bh_uptodate_unlock_irqrestore(first, flags);
- }
-
- /**
-diff -Nur linux-4.1.39.orig/fs/timerfd.c linux-4.1.39/fs/timerfd.c
---- linux-4.1.39.orig/fs/timerfd.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/timerfd.c 2017-04-18 17:56:30.601396665 +0200
-@@ -450,7 +450,10 @@
- break;
- }
- spin_unlock_irq(&ctx->wqh.lock);
-- cpu_relax();
-+ if (isalarm(ctx))
-+ hrtimer_wait_for_timer(&ctx->t.alarm.timer);
-+ else
-+ hrtimer_wait_for_timer(&ctx->t.tmr);
- }
-
- /*
-diff -Nur linux-4.1.39.orig/fs/xfs/xfs_inode.c linux-4.1.39/fs/xfs/xfs_inode.c
---- linux-4.1.39.orig/fs/xfs/xfs_inode.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/xfs/xfs_inode.c 2017-04-18 17:56:30.601396665 +0200
-@@ -164,7 +164,7 @@
- (XFS_MMAPLOCK_SHARED | XFS_MMAPLOCK_EXCL));
- ASSERT((lock_flags & (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL)) !=
- (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL));
-- ASSERT((lock_flags & ~(XFS_LOCK_MASK | XFS_LOCK_DEP_MASK)) == 0);
-+ ASSERT((lock_flags & ~(XFS_LOCK_MASK | XFS_LOCK_SUBCLASS_MASK)) == 0);
-
- if (lock_flags & XFS_IOLOCK_EXCL)
- mrupdate_nested(&ip->i_iolock, XFS_IOLOCK_DEP(lock_flags));
-@@ -212,7 +212,7 @@
- (XFS_MMAPLOCK_SHARED | XFS_MMAPLOCK_EXCL));
- ASSERT((lock_flags & (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL)) !=
- (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL));
-- ASSERT((lock_flags & ~(XFS_LOCK_MASK | XFS_LOCK_DEP_MASK)) == 0);
-+ ASSERT((lock_flags & ~(XFS_LOCK_MASK | XFS_LOCK_SUBCLASS_MASK)) == 0);
-
- if (lock_flags & XFS_IOLOCK_EXCL) {
- if (!mrtryupdate(&ip->i_iolock))
-@@ -281,7 +281,7 @@
- (XFS_MMAPLOCK_SHARED | XFS_MMAPLOCK_EXCL));
- ASSERT((lock_flags & (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL)) !=
- (XFS_ILOCK_SHARED | XFS_ILOCK_EXCL));
-- ASSERT((lock_flags & ~(XFS_LOCK_MASK | XFS_LOCK_DEP_MASK)) == 0);
-+ ASSERT((lock_flags & ~(XFS_LOCK_MASK | XFS_LOCK_SUBCLASS_MASK)) == 0);
- ASSERT(lock_flags != 0);
-
- if (lock_flags & XFS_IOLOCK_EXCL)
-@@ -364,30 +364,38 @@
-
- /*
- * Bump the subclass so xfs_lock_inodes() acquires each lock with a different
-- * value. This shouldn't be called for page fault locking, but we also need to
-- * ensure we don't overrun the number of lockdep subclasses for the iolock or
-- * mmaplock as that is limited to 12 by the mmap lock lockdep annotations.
-+ * value. This can be called for any type of inode lock combination, including
-+ * parent locking. Care must be taken to ensure we don't overrun the subclass
-+ * storage fields in the class mask we build.
- */
- static inline int
- xfs_lock_inumorder(int lock_mode, int subclass)
- {
-+ int class = 0;
-+
-+ ASSERT(!(lock_mode & (XFS_ILOCK_PARENT | XFS_ILOCK_RTBITMAP |
-+ XFS_ILOCK_RTSUM)));
-+
- if (lock_mode & (XFS_IOLOCK_SHARED|XFS_IOLOCK_EXCL)) {
-- ASSERT(subclass + XFS_LOCK_INUMORDER <
-- (1 << (XFS_MMAPLOCK_SHIFT - XFS_IOLOCK_SHIFT)));
-- lock_mode |= (subclass + XFS_LOCK_INUMORDER) << XFS_IOLOCK_SHIFT;
-+ ASSERT(subclass <= XFS_IOLOCK_MAX_SUBCLASS);
-+ ASSERT(subclass + XFS_IOLOCK_PARENT_VAL <
-+ MAX_LOCKDEP_SUBCLASSES);
-+ class += subclass << XFS_IOLOCK_SHIFT;
-+ if (lock_mode & XFS_IOLOCK_PARENT)
-+ class += XFS_IOLOCK_PARENT_VAL << XFS_IOLOCK_SHIFT;
- }
-
- if (lock_mode & (XFS_MMAPLOCK_SHARED|XFS_MMAPLOCK_EXCL)) {
-- ASSERT(subclass + XFS_LOCK_INUMORDER <
-- (1 << (XFS_ILOCK_SHIFT - XFS_MMAPLOCK_SHIFT)));
-- lock_mode |= (subclass + XFS_LOCK_INUMORDER) <<
-- XFS_MMAPLOCK_SHIFT;
-+ ASSERT(subclass <= XFS_MMAPLOCK_MAX_SUBCLASS);
-+ class += subclass << XFS_MMAPLOCK_SHIFT;
- }
-
-- if (lock_mode & (XFS_ILOCK_SHARED|XFS_ILOCK_EXCL))
-- lock_mode |= (subclass + XFS_LOCK_INUMORDER) << XFS_ILOCK_SHIFT;
-+ if (lock_mode & (XFS_ILOCK_SHARED|XFS_ILOCK_EXCL)) {
-+ ASSERT(subclass <= XFS_ILOCK_MAX_SUBCLASS);
-+ class += subclass << XFS_ILOCK_SHIFT;
-+ }
-
-- return lock_mode;
-+ return (lock_mode & ~XFS_LOCK_SUBCLASS_MASK) | class;
- }
-
- /*
-@@ -399,6 +407,11 @@
- * transaction (such as truncate). This can result in deadlock since the long
- * running trans might need to wait for the inode we just locked in order to
- * push the tail and free space in the log.
-+ *
-+ * xfs_lock_inodes() can only be used to lock one type of lock at a time -
-+ * the iolock, the mmaplock or the ilock, but not more than one at a time. If we
-+ * lock more than one at a time, lockdep will report false positives saying we
-+ * have violated locking orders.
- */
- void
- xfs_lock_inodes(
-@@ -409,8 +422,29 @@
- int attempts = 0, i, j, try_lock;
- xfs_log_item_t *lp;
-
-- /* currently supports between 2 and 5 inodes */
-+ /*
-+ * Currently supports between 2 and 5 inodes with exclusive locking. We
-+ * support an arbitrary depth of locking here, but absolute limits on
-+ * inodes depend on the the type of locking and the limits placed by
-+ * lockdep annotations in xfs_lock_inumorder. These are all checked by
-+ * the asserts.
-+ */
- ASSERT(ips && inodes >= 2 && inodes <= 5);
-+ ASSERT(lock_mode & (XFS_IOLOCK_EXCL | XFS_MMAPLOCK_EXCL |
-+ XFS_ILOCK_EXCL));
-+ ASSERT(!(lock_mode & (XFS_IOLOCK_SHARED | XFS_MMAPLOCK_SHARED |
-+ XFS_ILOCK_SHARED)));
-+ ASSERT(!(lock_mode & XFS_IOLOCK_EXCL) ||
-+ inodes <= XFS_IOLOCK_MAX_SUBCLASS + 1);
-+ ASSERT(!(lock_mode & XFS_MMAPLOCK_EXCL) ||
-+ inodes <= XFS_MMAPLOCK_MAX_SUBCLASS + 1);
-+ ASSERT(!(lock_mode & XFS_ILOCK_EXCL) ||
-+ inodes <= XFS_ILOCK_MAX_SUBCLASS + 1);
-+
-+ if (lock_mode & XFS_IOLOCK_EXCL) {
-+ ASSERT(!(lock_mode & (XFS_MMAPLOCK_EXCL | XFS_ILOCK_EXCL)));
-+ } else if (lock_mode & XFS_MMAPLOCK_EXCL)
-+ ASSERT(!(lock_mode & XFS_ILOCK_EXCL));
-
- try_lock = 0;
- i = 0;
-diff -Nur linux-4.1.39.orig/fs/xfs/xfs_inode.h linux-4.1.39/fs/xfs/xfs_inode.h
---- linux-4.1.39.orig/fs/xfs/xfs_inode.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/fs/xfs/xfs_inode.h 2017-04-18 17:56:30.601396665 +0200
-@@ -284,9 +284,9 @@
- * Flags for lockdep annotations.
- *
- * XFS_LOCK_PARENT - for directory operations that require locking a
-- * parent directory inode and a child entry inode. The parent gets locked
-- * with this flag so it gets a lockdep subclass of 1 and the child entry
-- * lock will have a lockdep subclass of 0.
-+ * parent directory inode and a child entry inode. IOLOCK requires nesting,
-+ * MMAPLOCK does not support this class, ILOCK requires a single subclass
-+ * to differentiate parent from child.
- *
- * XFS_LOCK_RTBITMAP/XFS_LOCK_RTSUM - the realtime device bitmap and summary
- * inodes do not participate in the normal lock order, and thus have their
-@@ -295,30 +295,63 @@
- * XFS_LOCK_INUMORDER - for locking several inodes at the some time
- * with xfs_lock_inodes(). This flag is used as the starting subclass
- * and each subsequent lock acquired will increment the subclass by one.
-- * So the first lock acquired will have a lockdep subclass of 4, the
-- * second lock will have a lockdep subclass of 5, and so on. It is
-- * the responsibility of the class builder to shift this to the correct
-- * portion of the lock_mode lockdep mask.
-+ * However, MAX_LOCKDEP_SUBCLASSES == 8, which means we are greatly
-+ * limited to the subclasses we can represent via nesting. We need at least
-+ * 5 inodes nest depth for the ILOCK through rename, and we also have to support
-+ * XFS_ILOCK_PARENT, which gives 6 subclasses. Then we have XFS_ILOCK_RTBITMAP
-+ * and XFS_ILOCK_RTSUM, which are another 2 unique subclasses, so that's all
-+ * 8 subclasses supported by lockdep.
-+ *
-+ * This also means we have to number the sub-classes in the lowest bits of
-+ * the mask we keep, and we have to ensure we never exceed 3 bits of lockdep
-+ * mask and we can't use bit-masking to build the subclasses. What a mess.
-+ *
-+ * Bit layout:
-+ *
-+ * Bit Lock Region
-+ * 16-19 XFS_IOLOCK_SHIFT dependencies
-+ * 20-23 XFS_MMAPLOCK_SHIFT dependencies
-+ * 24-31 XFS_ILOCK_SHIFT dependencies
-+ *
-+ * IOLOCK values
-+ *
-+ * 0-3 subclass value
-+ * 4-7 PARENT subclass values
-+ *
-+ * MMAPLOCK values
-+ *
-+ * 0-3 subclass value
-+ * 4-7 unused
-+ *
-+ * ILOCK values
-+ * 0-4 subclass values
-+ * 5 PARENT subclass (not nestable)
-+ * 6 RTBITMAP subclass (not nestable)
-+ * 7 RTSUM subclass (not nestable)
-+ *
- */
--#define XFS_LOCK_PARENT 1
--#define XFS_LOCK_RTBITMAP 2
--#define XFS_LOCK_RTSUM 3
--#define XFS_LOCK_INUMORDER 4
--
--#define XFS_IOLOCK_SHIFT 16
--#define XFS_IOLOCK_PARENT (XFS_LOCK_PARENT << XFS_IOLOCK_SHIFT)
-+#define XFS_IOLOCK_SHIFT 16
-+#define XFS_IOLOCK_PARENT_VAL 4
-+#define XFS_IOLOCK_MAX_SUBCLASS (XFS_IOLOCK_PARENT_VAL - 1)
-+#define XFS_IOLOCK_DEP_MASK 0x000f0000
-+#define XFS_IOLOCK_PARENT (XFS_IOLOCK_PARENT_VAL << XFS_IOLOCK_SHIFT)
-
--#define XFS_MMAPLOCK_SHIFT 20
-+#define XFS_MMAPLOCK_SHIFT 20
-+#define XFS_MMAPLOCK_NUMORDER 0
-+#define XFS_MMAPLOCK_MAX_SUBCLASS 3
-+#define XFS_MMAPLOCK_DEP_MASK 0x00f00000
-
--#define XFS_ILOCK_SHIFT 24
--#define XFS_ILOCK_PARENT (XFS_LOCK_PARENT << XFS_ILOCK_SHIFT)
--#define XFS_ILOCK_RTBITMAP (XFS_LOCK_RTBITMAP << XFS_ILOCK_SHIFT)
--#define XFS_ILOCK_RTSUM (XFS_LOCK_RTSUM << XFS_ILOCK_SHIFT)
-+#define XFS_ILOCK_SHIFT 24
-+#define XFS_ILOCK_PARENT_VAL 5
-+#define XFS_ILOCK_MAX_SUBCLASS (XFS_ILOCK_PARENT_VAL - 1)
-+#define XFS_ILOCK_RTBITMAP_VAL 6
-+#define XFS_ILOCK_RTSUM_VAL 7
-+#define XFS_ILOCK_DEP_MASK 0xff000000
-+#define XFS_ILOCK_PARENT (XFS_ILOCK_PARENT_VAL << XFS_ILOCK_SHIFT)
-+#define XFS_ILOCK_RTBITMAP (XFS_ILOCK_RTBITMAP_VAL << XFS_ILOCK_SHIFT)
-+#define XFS_ILOCK_RTSUM (XFS_ILOCK_RTSUM_VAL << XFS_ILOCK_SHIFT)
-
--#define XFS_IOLOCK_DEP_MASK 0x000f0000
--#define XFS_MMAPLOCK_DEP_MASK 0x00f00000
--#define XFS_ILOCK_DEP_MASK 0xff000000
--#define XFS_LOCK_DEP_MASK (XFS_IOLOCK_DEP_MASK | \
-+#define XFS_LOCK_SUBCLASS_MASK (XFS_IOLOCK_DEP_MASK | \
- XFS_MMAPLOCK_DEP_MASK | \
- XFS_ILOCK_DEP_MASK)
-
-diff -Nur linux-4.1.39.orig/include/acpi/platform/aclinux.h linux-4.1.39/include/acpi/platform/aclinux.h
---- linux-4.1.39.orig/include/acpi/platform/aclinux.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/acpi/platform/aclinux.h 2017-04-18 17:56:30.601396665 +0200
-@@ -123,6 +123,7 @@
-
- #define acpi_cache_t struct kmem_cache
- #define acpi_spinlock spinlock_t *
-+#define acpi_raw_spinlock raw_spinlock_t *
- #define acpi_cpu_flags unsigned long
-
- /* Use native linux version of acpi_os_allocate_zeroed */
-@@ -141,6 +142,20 @@
- #define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_get_thread_id
- #define ACPI_USE_ALTERNATE_PROTOTYPE_acpi_os_create_lock
-
-+#define acpi_os_create_raw_lock(__handle) \
-+({ \
-+ raw_spinlock_t *lock = ACPI_ALLOCATE(sizeof(*lock)); \
-+ \
-+ if (lock) { \
-+ *(__handle) = lock; \
-+ raw_spin_lock_init(*(__handle)); \
-+ } \
-+ lock ? AE_OK : AE_NO_MEMORY; \
-+ })
-+
-+#define acpi_os_delete_raw_lock(__handle) kfree(__handle)
-+
-+
- /*
- * OSL interfaces used by debugger/disassembler
- */
-diff -Nur linux-4.1.39.orig/include/asm-generic/bug.h linux-4.1.39/include/asm-generic/bug.h
---- linux-4.1.39.orig/include/asm-generic/bug.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/asm-generic/bug.h 2017-04-18 17:56:30.601396665 +0200
-@@ -206,6 +206,20 @@
- # define WARN_ON_SMP(x) ({0;})
- #endif
-
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+# define BUG_ON_RT(c) BUG_ON(c)
-+# define BUG_ON_NONRT(c) do { } while (0)
-+# define WARN_ON_RT(condition) WARN_ON(condition)
-+# define WARN_ON_NONRT(condition) do { } while (0)
-+# define WARN_ON_ONCE_NONRT(condition) do { } while (0)
-+#else
-+# define BUG_ON_RT(c) do { } while (0)
-+# define BUG_ON_NONRT(c) BUG_ON(c)
-+# define WARN_ON_RT(condition) do { } while (0)
-+# define WARN_ON_NONRT(condition) WARN_ON(condition)
-+# define WARN_ON_ONCE_NONRT(condition) WARN_ON_ONCE(condition)
-+#endif
-+
- #endif /* __ASSEMBLY__ */
-
- #endif
-diff -Nur linux-4.1.39.orig/include/asm-generic/futex.h linux-4.1.39/include/asm-generic/futex.h
---- linux-4.1.39.orig/include/asm-generic/futex.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/asm-generic/futex.h 2017-04-18 17:56:30.601396665 +0200
-@@ -8,8 +8,7 @@
- #ifndef CONFIG_SMP
- /*
- * The following implementation only for uniprocessor machines.
-- * For UP, it's relies on the fact that pagefault_disable() also disables
-- * preemption to ensure mutual exclusion.
-+ * It relies on preempt_disable() ensuring mutual exclusion.
- *
- */
-
-@@ -38,6 +37,7 @@
- if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
- oparg = 1 << oparg;
-
-+ preempt_disable();
- pagefault_disable();
-
- ret = -EFAULT;
-@@ -72,6 +72,7 @@
-
- out_pagefault_enable:
- pagefault_enable();
-+ preempt_enable();
-
- if (ret == 0) {
- switch (cmp) {
-@@ -106,6 +107,7 @@
- {
- u32 val;
-
-+ preempt_disable();
- if (unlikely(get_user(val, uaddr) != 0))
- return -EFAULT;
-
-@@ -113,6 +115,7 @@
- return -EFAULT;
-
- *uval = val;
-+ preempt_enable();
-
- return 0;
- }
-diff -Nur linux-4.1.39.orig/include/asm-generic/preempt.h linux-4.1.39/include/asm-generic/preempt.h
---- linux-4.1.39.orig/include/asm-generic/preempt.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/asm-generic/preempt.h 2017-04-18 17:56:30.601396665 +0200
-@@ -7,10 +7,10 @@
-
- static __always_inline int preempt_count(void)
- {
-- return current_thread_info()->preempt_count;
-+ return READ_ONCE(current_thread_info()->preempt_count);
- }
-
--static __always_inline int *preempt_count_ptr(void)
-+static __always_inline volatile int *preempt_count_ptr(void)
- {
- return &current_thread_info()->preempt_count;
- }
-diff -Nur linux-4.1.39.orig/include/linux/blkdev.h linux-4.1.39/include/linux/blkdev.h
---- linux-4.1.39.orig/include/linux/blkdev.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/blkdev.h 2017-04-18 17:56:30.601396665 +0200
-@@ -101,6 +101,7 @@
- struct list_head queuelist;
- union {
- struct call_single_data csd;
-+ struct work_struct work;
- unsigned long fifo_time;
- };
-
-@@ -482,7 +483,7 @@
- struct throtl_data *td;
- #endif
- struct rcu_head rcu_head;
-- wait_queue_head_t mq_freeze_wq;
-+ struct swait_head mq_freeze_wq;
- struct percpu_ref mq_usage_counter;
- struct list_head all_q_node;
-
-diff -Nur linux-4.1.39.orig/include/linux/blk-mq.h linux-4.1.39/include/linux/blk-mq.h
---- linux-4.1.39.orig/include/linux/blk-mq.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/blk-mq.h 2017-04-18 17:56:30.601396665 +0200
-@@ -202,6 +202,7 @@
-
- struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue *, const int ctx_index);
- struct blk_mq_hw_ctx *blk_mq_alloc_single_hw_queue(struct blk_mq_tag_set *, unsigned int, int);
-+void __blk_mq_complete_request_remote_work(struct work_struct *work);
-
- int blk_mq_request_started(struct request *rq);
- void blk_mq_start_request(struct request *rq);
-diff -Nur linux-4.1.39.orig/include/linux/bottom_half.h linux-4.1.39/include/linux/bottom_half.h
---- linux-4.1.39.orig/include/linux/bottom_half.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/bottom_half.h 2017-04-18 17:56:30.601396665 +0200
-@@ -4,6 +4,39 @@
- #include <linux/preempt.h>
- #include <linux/preempt_mask.h>
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+
-+extern void __local_bh_disable(void);
-+extern void _local_bh_enable(void);
-+extern void __local_bh_enable(void);
-+
-+static inline void local_bh_disable(void)
-+{
-+ __local_bh_disable();
-+}
-+
-+static inline void __local_bh_disable_ip(unsigned long ip, unsigned int cnt)
-+{
-+ __local_bh_disable();
-+}
-+
-+static inline void local_bh_enable(void)
-+{
-+ __local_bh_enable();
-+}
-+
-+static inline void __local_bh_enable_ip(unsigned long ip, unsigned int cnt)
-+{
-+ __local_bh_enable();
-+}
-+
-+static inline void local_bh_enable_ip(unsigned long ip)
-+{
-+ __local_bh_enable();
-+}
-+
-+#else
-+
- #ifdef CONFIG_TRACE_IRQFLAGS
- extern void __local_bh_disable_ip(unsigned long ip, unsigned int cnt);
- #else
-@@ -31,5 +64,6 @@
- {
- __local_bh_enable_ip(_THIS_IP_, SOFTIRQ_DISABLE_OFFSET);
- }
-+#endif
-
- #endif /* _LINUX_BH_H */
-diff -Nur linux-4.1.39.orig/include/linux/buffer_head.h linux-4.1.39/include/linux/buffer_head.h
---- linux-4.1.39.orig/include/linux/buffer_head.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/buffer_head.h 2017-04-18 17:56:30.601396665 +0200
-@@ -75,8 +75,52 @@
- struct address_space *b_assoc_map; /* mapping this buffer is
- associated with */
- atomic_t b_count; /* users using this buffer_head */
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ spinlock_t b_uptodate_lock;
-+#if defined(CONFIG_JBD) || defined(CONFIG_JBD_MODULE) || \
-+ defined(CONFIG_JBD2) || defined(CONFIG_JBD2_MODULE)
-+ spinlock_t b_state_lock;
-+ spinlock_t b_journal_head_lock;
-+#endif
-+#endif
- };
-
-+static inline unsigned long bh_uptodate_lock_irqsave(struct buffer_head *bh)
-+{
-+ unsigned long flags;
-+
-+#ifndef CONFIG_PREEMPT_RT_BASE
-+ local_irq_save(flags);
-+ bit_spin_lock(BH_Uptodate_Lock, &bh->b_state);
-+#else
-+ spin_lock_irqsave(&bh->b_uptodate_lock, flags);
-+#endif
-+ return flags;
-+}
-+
-+static inline void
-+bh_uptodate_unlock_irqrestore(struct buffer_head *bh, unsigned long flags)
-+{
-+#ifndef CONFIG_PREEMPT_RT_BASE
-+ bit_spin_unlock(BH_Uptodate_Lock, &bh->b_state);
-+ local_irq_restore(flags);
-+#else
-+ spin_unlock_irqrestore(&bh->b_uptodate_lock, flags);
-+#endif
-+}
-+
-+static inline void buffer_head_init_locks(struct buffer_head *bh)
-+{
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ spin_lock_init(&bh->b_uptodate_lock);
-+#if defined(CONFIG_JBD) || defined(CONFIG_JBD_MODULE) || \
-+ defined(CONFIG_JBD2) || defined(CONFIG_JBD2_MODULE)
-+ spin_lock_init(&bh->b_state_lock);
-+ spin_lock_init(&bh->b_journal_head_lock);
-+#endif
-+#endif
-+}
-+
- /*
- * macro tricks to expand the set_buffer_foo(), clear_buffer_foo()
- * and buffer_foo() functions.
-diff -Nur linux-4.1.39.orig/include/linux/cgroup-defs.h linux-4.1.39/include/linux/cgroup-defs.h
---- linux-4.1.39.orig/include/linux/cgroup-defs.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/cgroup-defs.h 2017-04-18 17:56:30.601396665 +0200
-@@ -124,6 +124,7 @@
- /* percpu_ref killing and RCU release */
- struct rcu_head rcu_head;
- struct work_struct destroy_work;
-+ struct swork_event destroy_swork;
- };
-
- /*
-diff -Nur linux-4.1.39.orig/include/linux/cgroup.h linux-4.1.39/include/linux/cgroup.h
---- linux-4.1.39.orig/include/linux/cgroup.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/cgroup.h 2017-04-18 17:56:30.605396820 +0200
-@@ -17,6 +17,8 @@
- #include <linux/fs.h>
- #include <linux/seq_file.h>
- #include <linux/kernfs.h>
-+#include <linux/wait.h>
-+#include <linux/work-simple.h>
-
- #include <linux/cgroup-defs.h>
-
-diff -Nur linux-4.1.39.orig/include/linux/completion.h linux-4.1.39/include/linux/completion.h
---- linux-4.1.39.orig/include/linux/completion.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/completion.h 2017-04-18 17:56:30.605396820 +0200
-@@ -7,8 +7,7 @@
- * Atomic wait-for-completion handler data structures.
- * See kernel/sched/completion.c for details.
- */
--
--#include <linux/wait.h>
-+#include <linux/wait-simple.h>
-
- /*
- * struct completion - structure used to maintain state for a "completion"
-@@ -24,11 +23,11 @@
- */
- struct completion {
- unsigned int done;
-- wait_queue_head_t wait;
-+ struct swait_head wait;
- };
-
- #define COMPLETION_INITIALIZER(work) \
-- { 0, __WAIT_QUEUE_HEAD_INITIALIZER((work).wait) }
-+ { 0, SWAIT_HEAD_INITIALIZER((work).wait) }
-
- #define COMPLETION_INITIALIZER_ONSTACK(work) \
- ({ init_completion(&work); work; })
-@@ -73,7 +72,7 @@
- static inline void init_completion(struct completion *x)
- {
- x->done = 0;
-- init_waitqueue_head(&x->wait);
-+ init_swait_head(&x->wait);
- }
-
- /**
-diff -Nur linux-4.1.39.orig/include/linux/cpu.h linux-4.1.39/include/linux/cpu.h
---- linux-4.1.39.orig/include/linux/cpu.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/cpu.h 2017-04-18 17:56:30.605396820 +0200
-@@ -231,6 +231,8 @@
- extern void put_online_cpus(void);
- extern void cpu_hotplug_disable(void);
- extern void cpu_hotplug_enable(void);
-+extern void pin_current_cpu(void);
-+extern void unpin_current_cpu(void);
- #define hotcpu_notifier(fn, pri) cpu_notifier(fn, pri)
- #define __hotcpu_notifier(fn, pri) __cpu_notifier(fn, pri)
- #define register_hotcpu_notifier(nb) register_cpu_notifier(nb)
-@@ -249,6 +251,8 @@
- #define put_online_cpus() do { } while (0)
- #define cpu_hotplug_disable() do { } while (0)
- #define cpu_hotplug_enable() do { } while (0)
-+static inline void pin_current_cpu(void) { }
-+static inline void unpin_current_cpu(void) { }
- #define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)
- #define __hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)
- /* These aren't inline functions due to a GCC bug. */
-diff -Nur linux-4.1.39.orig/include/linux/delay.h linux-4.1.39/include/linux/delay.h
---- linux-4.1.39.orig/include/linux/delay.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/delay.h 2017-04-18 17:56:30.605396820 +0200
-@@ -52,4 +52,10 @@
- msleep(seconds * 1000);
- }
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+extern void cpu_chill(void);
-+#else
-+# define cpu_chill() cpu_relax()
-+#endif
-+
- #endif /* defined(_LINUX_DELAY_H) */
-diff -Nur linux-4.1.39.orig/include/linux/ftrace_event.h linux-4.1.39/include/linux/ftrace_event.h
---- linux-4.1.39.orig/include/linux/ftrace_event.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/ftrace_event.h 2017-04-18 17:56:30.605396820 +0200
-@@ -66,6 +66,9 @@
- unsigned char flags;
- unsigned char preempt_count;
- int pid;
-+ unsigned short migrate_disable;
-+ unsigned short padding;
-+ unsigned char preempt_lazy_count;
- };
-
- #define FTRACE_MAX_EVENT \
-diff -Nur linux-4.1.39.orig/include/linux/ftrace.h linux-4.1.39/include/linux/ftrace.h
---- linux-4.1.39.orig/include/linux/ftrace.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/ftrace.h 2017-04-18 17:56:30.605396820 +0200
-@@ -682,6 +682,18 @@
- #define CALLER_ADDR5 ((unsigned long)ftrace_return_address(5))
- #define CALLER_ADDR6 ((unsigned long)ftrace_return_address(6))
-
-+static inline unsigned long get_lock_parent_ip(void)
-+{
-+ unsigned long addr = CALLER_ADDR0;
-+
-+ if (!in_lock_functions(addr))
-+ return addr;
-+ addr = CALLER_ADDR1;
-+ if (!in_lock_functions(addr))
-+ return addr;
-+ return CALLER_ADDR2;
-+}
-+
- #ifdef CONFIG_IRQSOFF_TRACER
- extern void time_hardirqs_on(unsigned long a0, unsigned long a1);
- extern void time_hardirqs_off(unsigned long a0, unsigned long a1);
-diff -Nur linux-4.1.39.orig/include/linux/highmem.h linux-4.1.39/include/linux/highmem.h
---- linux-4.1.39.orig/include/linux/highmem.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/highmem.h 2017-04-18 17:56:30.605396820 +0200
-@@ -7,6 +7,7 @@
- #include <linux/mm.h>
- #include <linux/uaccess.h>
- #include <linux/hardirq.h>
-+#include <linux/sched.h>
-
- #include <asm/cacheflush.h>
-
-@@ -65,6 +66,7 @@
-
- static inline void *kmap_atomic(struct page *page)
- {
-+ preempt_disable_nort();
- pagefault_disable();
- return page_address(page);
- }
-@@ -73,6 +75,7 @@
- static inline void __kunmap_atomic(void *addr)
- {
- pagefault_enable();
-+ preempt_enable_nort();
- }
-
- #define kmap_atomic_pfn(pfn) kmap_atomic(pfn_to_page(pfn))
-@@ -85,32 +88,51 @@
-
- #if defined(CONFIG_HIGHMEM) || defined(CONFIG_X86_32)
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- DECLARE_PER_CPU(int, __kmap_atomic_idx);
-+#endif
-
- static inline int kmap_atomic_idx_push(void)
- {
-+#ifndef CONFIG_PREEMPT_RT_FULL
- int idx = __this_cpu_inc_return(__kmap_atomic_idx) - 1;
-
--#ifdef CONFIG_DEBUG_HIGHMEM
-+# ifdef CONFIG_DEBUG_HIGHMEM
- WARN_ON_ONCE(in_irq() && !irqs_disabled());
- BUG_ON(idx >= KM_TYPE_NR);
--#endif
-+# endif
- return idx;
-+#else
-+ current->kmap_idx++;
-+ BUG_ON(current->kmap_idx > KM_TYPE_NR);
-+ return current->kmap_idx - 1;
-+#endif
- }
-
- static inline int kmap_atomic_idx(void)
- {
-+#ifndef CONFIG_PREEMPT_RT_FULL
- return __this_cpu_read(__kmap_atomic_idx) - 1;
-+#else
-+ return current->kmap_idx - 1;
-+#endif
- }
-
- static inline void kmap_atomic_idx_pop(void)
- {
--#ifdef CONFIG_DEBUG_HIGHMEM
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+# ifdef CONFIG_DEBUG_HIGHMEM
- int idx = __this_cpu_dec_return(__kmap_atomic_idx);
-
- BUG_ON(idx < 0);
--#else
-+# else
- __this_cpu_dec(__kmap_atomic_idx);
-+# endif
-+#else
-+ current->kmap_idx--;
-+# ifdef CONFIG_DEBUG_HIGHMEM
-+ BUG_ON(current->kmap_idx < 0);
-+# endif
- #endif
- }
-
-diff -Nur linux-4.1.39.orig/include/linux/hrtimer.h linux-4.1.39/include/linux/hrtimer.h
---- linux-4.1.39.orig/include/linux/hrtimer.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/hrtimer.h 2017-04-18 17:56:30.605396820 +0200
-@@ -111,6 +111,11 @@
- enum hrtimer_restart (*function)(struct hrtimer *);
- struct hrtimer_clock_base *base;
- unsigned long state;
-+ struct list_head cb_entry;
-+ int irqsafe;
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+ ktime_t praecox;
-+#endif
- #ifdef CONFIG_TIMER_STATS
- int start_pid;
- void *start_site;
-@@ -147,6 +152,7 @@
- int index;
- clockid_t clockid;
- struct timerqueue_head active;
-+ struct list_head expired;
- ktime_t resolution;
- ktime_t (*get_time)(void);
- ktime_t softirq_time;
-@@ -194,6 +200,9 @@
- unsigned long nr_hangs;
- ktime_t max_hang_time;
- #endif
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ wait_queue_head_t wait;
-+#endif
- struct hrtimer_clock_base clock_base[HRTIMER_MAX_CLOCK_BASES];
- };
-
-@@ -381,6 +390,13 @@
- return hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
- }
-
-+/* Softirq preemption could deadlock timer removal */
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ extern void hrtimer_wait_for_timer(const struct hrtimer *timer);
-+#else
-+# define hrtimer_wait_for_timer(timer) do { cpu_relax(); } while (0)
-+#endif
-+
- /* Query timers: */
- extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
- extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
-diff -Nur linux-4.1.39.orig/include/linux/idr.h linux-4.1.39/include/linux/idr.h
---- linux-4.1.39.orig/include/linux/idr.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/idr.h 2017-04-18 17:56:30.605396820 +0200
-@@ -95,10 +95,14 @@
- * Each idr_preload() should be matched with an invocation of this
- * function. See idr_preload() for details.
- */
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+void idr_preload_end(void);
-+#else
- static inline void idr_preload_end(void)
- {
- preempt_enable();
- }
-+#endif
-
- /**
- * idr_find - return pointer for given id
-diff -Nur linux-4.1.39.orig/include/linux/init_task.h linux-4.1.39/include/linux/init_task.h
---- linux-4.1.39.orig/include/linux/init_task.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/init_task.h 2017-04-18 17:56:30.605396820 +0200
-@@ -147,9 +147,16 @@
- # define INIT_PERF_EVENTS(tsk)
- #endif
-
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+# define INIT_TIMER_LIST .posix_timer_list = NULL,
-+#else
-+# define INIT_TIMER_LIST
-+#endif
-+
- #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
- # define INIT_VTIME(tsk) \
-- .vtime_seqlock = __SEQLOCK_UNLOCKED(tsk.vtime_seqlock), \
-+ .vtime_lock = __RAW_SPIN_LOCK_UNLOCKED(tsk.vtime_lock), \
-+ .vtime_seq = SEQCNT_ZERO(tsk.vtime_seq), \
- .vtime_snap = 0, \
- .vtime_snap_whence = VTIME_SYS,
- #else
-@@ -238,6 +245,7 @@
- .cpu_timers = INIT_CPU_TIMERS(tsk.cpu_timers), \
- .pi_lock = __RAW_SPIN_LOCK_UNLOCKED(tsk.pi_lock), \
- .timer_slack_ns = 50000, /* 50 usec default slack */ \
-+ INIT_TIMER_LIST \
- .pids = { \
- [PIDTYPE_PID] = INIT_PID_LINK(PIDTYPE_PID), \
- [PIDTYPE_PGID] = INIT_PID_LINK(PIDTYPE_PGID), \
-diff -Nur linux-4.1.39.orig/include/linux/interrupt.h linux-4.1.39/include/linux/interrupt.h
---- linux-4.1.39.orig/include/linux/interrupt.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/interrupt.h 2017-04-18 17:56:30.605396820 +0200
-@@ -61,6 +61,7 @@
- * interrupt handler after suspending interrupts. For system
- * wakeup devices users need to implement wakeup detection in
- * their interrupt handlers.
-+ * IRQF_NO_SOFTIRQ_CALL - Do not process softirqs in the irq thread context (RT)
- */
- #define IRQF_SHARED 0x00000080
- #define IRQF_PROBE_SHARED 0x00000100
-@@ -74,6 +75,7 @@
- #define IRQF_NO_THREAD 0x00010000
- #define IRQF_EARLY_RESUME 0x00020000
- #define IRQF_COND_SUSPEND 0x00040000
-+#define IRQF_NO_SOFTIRQ_CALL 0x00080000
-
- #define IRQF_TIMER (__IRQF_TIMER | IRQF_NO_SUSPEND | IRQF_NO_THREAD)
-
-@@ -102,6 +104,7 @@
- * @flags: flags (see IRQF_* above)
- * @thread_fn: interrupt handler function for threaded interrupts
- * @thread: thread pointer for threaded interrupts
-+ * @secondary: pointer to secondary irqaction (force threading)
- * @thread_flags: flags related to @thread
- * @thread_mask: bitmask for keeping track of @thread activity
- * @dir: pointer to the proc/irq/NN/name entry
-@@ -113,6 +116,7 @@
- struct irqaction *next;
- irq_handler_t thread_fn;
- struct task_struct *thread;
-+ struct irqaction *secondary;
- unsigned int irq;
- unsigned int flags;
- unsigned long thread_flags;
-@@ -184,7 +188,7 @@
- #ifdef CONFIG_LOCKDEP
- # define local_irq_enable_in_hardirq() do { } while (0)
- #else
--# define local_irq_enable_in_hardirq() local_irq_enable()
-+# define local_irq_enable_in_hardirq() local_irq_enable_nort()
- #endif
-
- extern void disable_irq_nosync(unsigned int irq);
-@@ -215,6 +219,7 @@
- unsigned int irq;
- struct kref kref;
- struct work_struct work;
-+ struct list_head list;
- void (*notify)(struct irq_affinity_notify *, const cpumask_t *mask);
- void (*release)(struct kref *ref);
- };
-@@ -377,9 +382,13 @@
- bool state);
-
- #ifdef CONFIG_IRQ_FORCED_THREADING
-+# ifndef CONFIG_PREEMPT_RT_BASE
- extern bool force_irqthreads;
-+# else
-+# define force_irqthreads (true)
-+# endif
- #else
--#define force_irqthreads (0)
-+#define force_irqthreads (false)
- #endif
-
- #ifndef __ARCH_SET_SOFTIRQ_PENDING
-@@ -435,9 +444,10 @@
- void (*action)(struct softirq_action *);
- };
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- asmlinkage void do_softirq(void);
- asmlinkage void __do_softirq(void);
--
-+static inline void thread_do_softirq(void) { do_softirq(); }
- #ifdef __ARCH_HAS_DO_SOFTIRQ
- void do_softirq_own_stack(void);
- #else
-@@ -446,13 +456,25 @@
- __do_softirq();
- }
- #endif
-+#else
-+extern void thread_do_softirq(void);
-+#endif
-
- extern void open_softirq(int nr, void (*action)(struct softirq_action *));
- extern void softirq_init(void);
- extern void __raise_softirq_irqoff(unsigned int nr);
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+extern void __raise_softirq_irqoff_ksoft(unsigned int nr);
-+#else
-+static inline void __raise_softirq_irqoff_ksoft(unsigned int nr)
-+{
-+ __raise_softirq_irqoff(nr);
-+}
-+#endif
-
- extern void raise_softirq_irqoff(unsigned int nr);
- extern void raise_softirq(unsigned int nr);
-+extern void softirq_check_pending_idle(void);
-
- DECLARE_PER_CPU(struct task_struct *, ksoftirqd);
-
-@@ -474,8 +496,9 @@
- to be executed on some cpu at least once after this.
- * If the tasklet is already scheduled, but its execution is still not
- started, it will be executed only once.
-- * If this tasklet is already running on another CPU (or schedule is called
-- from tasklet itself), it is rescheduled for later.
-+ * If this tasklet is already running on another CPU, it is rescheduled
-+ for later.
-+ * Schedule must not be called from the tasklet itself (a lockup occurs)
- * Tasklet is strictly serialized wrt itself, but not
- wrt another tasklets. If client needs some intertask synchronization,
- he makes it with spinlocks.
-@@ -500,27 +523,36 @@
- enum
- {
- TASKLET_STATE_SCHED, /* Tasklet is scheduled for execution */
-- TASKLET_STATE_RUN /* Tasklet is running (SMP only) */
-+ TASKLET_STATE_RUN, /* Tasklet is running (SMP only) */
-+ TASKLET_STATE_PENDING /* Tasklet is pending */
- };
-
--#ifdef CONFIG_SMP
-+#define TASKLET_STATEF_SCHED (1 << TASKLET_STATE_SCHED)
-+#define TASKLET_STATEF_RUN (1 << TASKLET_STATE_RUN)
-+#define TASKLET_STATEF_PENDING (1 << TASKLET_STATE_PENDING)
-+
-+#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
- static inline int tasklet_trylock(struct tasklet_struct *t)
- {
- return !test_and_set_bit(TASKLET_STATE_RUN, &(t)->state);
- }
-
-+static inline int tasklet_tryunlock(struct tasklet_struct *t)
-+{
-+ return cmpxchg(&t->state, TASKLET_STATEF_RUN, 0) == TASKLET_STATEF_RUN;
-+}
-+
- static inline void tasklet_unlock(struct tasklet_struct *t)
- {
- smp_mb__before_atomic();
- clear_bit(TASKLET_STATE_RUN, &(t)->state);
- }
-
--static inline void tasklet_unlock_wait(struct tasklet_struct *t)
--{
-- while (test_bit(TASKLET_STATE_RUN, &(t)->state)) { barrier(); }
--}
-+extern void tasklet_unlock_wait(struct tasklet_struct *t);
-+
- #else
- #define tasklet_trylock(t) 1
-+#define tasklet_tryunlock(t) 1
- #define tasklet_unlock_wait(t) do { } while (0)
- #define tasklet_unlock(t) do { } while (0)
- #endif
-@@ -569,12 +601,7 @@
- smp_mb();
- }
-
--static inline void tasklet_enable(struct tasklet_struct *t)
--{
-- smp_mb__before_atomic();
-- atomic_dec(&t->count);
--}
--
-+extern void tasklet_enable(struct tasklet_struct *t);
- extern void tasklet_kill(struct tasklet_struct *t);
- extern void tasklet_kill_immediate(struct tasklet_struct *t, unsigned int cpu);
- extern void tasklet_init(struct tasklet_struct *t,
-@@ -605,6 +632,12 @@
- tasklet_kill(&ttimer->tasklet);
- }
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+extern void softirq_early_init(void);
-+#else
-+static inline void softirq_early_init(void) { }
-+#endif
-+
- /*
- * Autoprobing for irqs:
- *
-diff -Nur linux-4.1.39.orig/include/linux/io-mapping.h linux-4.1.39/include/linux/io-mapping.h
---- linux-4.1.39.orig/include/linux/io-mapping.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/io-mapping.h 2017-04-18 17:56:30.605396820 +0200
-@@ -141,6 +141,7 @@
- io_mapping_map_atomic_wc(struct io_mapping *mapping,
- unsigned long offset)
- {
-+ preempt_disable();
- pagefault_disable();
- return ((char __force __iomem *) mapping) + offset;
- }
-@@ -149,6 +150,7 @@
- io_mapping_unmap_atomic(void __iomem *vaddr)
- {
- pagefault_enable();
-+ preempt_enable();
- }
-
- /* Non-atomic map/unmap */
-diff -Nur linux-4.1.39.orig/include/linux/irqdesc.h linux-4.1.39/include/linux/irqdesc.h
---- linux-4.1.39.orig/include/linux/irqdesc.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/irqdesc.h 2017-04-18 17:56:30.605396820 +0200
-@@ -63,6 +63,7 @@
- unsigned int irqs_unhandled;
- atomic_t threads_handled;
- int threads_handled_last;
-+ u64 random_ip;
- raw_spinlock_t lock;
- struct cpumask *percpu_enabled;
- #ifdef CONFIG_SMP
-diff -Nur linux-4.1.39.orig/include/linux/irqflags.h linux-4.1.39/include/linux/irqflags.h
---- linux-4.1.39.orig/include/linux/irqflags.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/irqflags.h 2017-04-18 17:56:30.605396820 +0200
-@@ -25,8 +25,6 @@
- # define trace_softirqs_enabled(p) ((p)->softirqs_enabled)
- # define trace_hardirq_enter() do { current->hardirq_context++; } while (0)
- # define trace_hardirq_exit() do { current->hardirq_context--; } while (0)
--# define lockdep_softirq_enter() do { current->softirq_context++; } while (0)
--# define lockdep_softirq_exit() do { current->softirq_context--; } while (0)
- # define INIT_TRACE_IRQFLAGS .softirqs_enabled = 1,
- #else
- # define trace_hardirqs_on() do { } while (0)
-@@ -39,9 +37,15 @@
- # define trace_softirqs_enabled(p) 0
- # define trace_hardirq_enter() do { } while (0)
- # define trace_hardirq_exit() do { } while (0)
-+# define INIT_TRACE_IRQFLAGS
-+#endif
-+
-+#if defined(CONFIG_TRACE_IRQFLAGS) && !defined(CONFIG_PREEMPT_RT_FULL)
-+# define lockdep_softirq_enter() do { current->softirq_context++; } while (0)
-+# define lockdep_softirq_exit() do { current->softirq_context--; } while (0)
-+#else
- # define lockdep_softirq_enter() do { } while (0)
- # define lockdep_softirq_exit() do { } while (0)
--# define INIT_TRACE_IRQFLAGS
- #endif
-
- #if defined(CONFIG_IRQSOFF_TRACER) || \
-@@ -148,4 +152,23 @@
-
- #define irqs_disabled_flags(flags) raw_irqs_disabled_flags(flags)
-
-+/*
-+ * local_irq* variants depending on RT/!RT
-+ */
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+# define local_irq_disable_nort() do { } while (0)
-+# define local_irq_enable_nort() do { } while (0)
-+# define local_irq_save_nort(flags) local_save_flags(flags)
-+# define local_irq_restore_nort(flags) (void)(flags)
-+# define local_irq_disable_rt() local_irq_disable()
-+# define local_irq_enable_rt() local_irq_enable()
-+#else
-+# define local_irq_disable_nort() local_irq_disable()
-+# define local_irq_enable_nort() local_irq_enable()
-+# define local_irq_save_nort(flags) local_irq_save(flags)
-+# define local_irq_restore_nort(flags) local_irq_restore(flags)
-+# define local_irq_disable_rt() do { } while (0)
-+# define local_irq_enable_rt() do { } while (0)
-+#endif
-+
- #endif
-diff -Nur linux-4.1.39.orig/include/linux/irq.h linux-4.1.39/include/linux/irq.h
---- linux-4.1.39.orig/include/linux/irq.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/irq.h 2017-04-18 17:56:30.605396820 +0200
-@@ -72,6 +72,7 @@
- * IRQ_IS_POLLED - Always polled by another interrupt. Exclude
- * it from the spurious interrupt detection
- * mechanism and from core side polling.
-+ * IRQ_NO_SOFTIRQ_CALL - No softirq processing in the irq thread context (RT)
- */
- enum {
- IRQ_TYPE_NONE = 0x00000000,
-@@ -97,13 +98,14 @@
- IRQ_NOTHREAD = (1 << 16),
- IRQ_PER_CPU_DEVID = (1 << 17),
- IRQ_IS_POLLED = (1 << 18),
-+ IRQ_NO_SOFTIRQ_CALL = (1 << 19),
- };
-
- #define IRQF_MODIFY_MASK \
- (IRQ_TYPE_SENSE_MASK | IRQ_NOPROBE | IRQ_NOREQUEST | \
- IRQ_NOAUTOEN | IRQ_MOVE_PCNTXT | IRQ_LEVEL | IRQ_NO_BALANCING | \
- IRQ_PER_CPU | IRQ_NESTED_THREAD | IRQ_NOTHREAD | IRQ_PER_CPU_DEVID | \
-- IRQ_IS_POLLED)
-+ IRQ_IS_POLLED | IRQ_NO_SOFTIRQ_CALL)
-
- #define IRQ_NO_BALANCING_MASK (IRQ_PER_CPU | IRQ_NO_BALANCING)
-
-diff -Nur linux-4.1.39.orig/include/linux/irq_work.h linux-4.1.39/include/linux/irq_work.h
---- linux-4.1.39.orig/include/linux/irq_work.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/irq_work.h 2017-04-18 17:56:30.605396820 +0200
-@@ -16,6 +16,7 @@
- #define IRQ_WORK_BUSY 2UL
- #define IRQ_WORK_FLAGS 3UL
- #define IRQ_WORK_LAZY 4UL /* Doesn't want IPI, wait for tick */
-+#define IRQ_WORK_HARD_IRQ 8UL /* Run hard IRQ context, even on RT */
-
- struct irq_work {
- unsigned long flags;
-@@ -51,4 +52,10 @@
- static inline void irq_work_run(void) { }
- #endif
-
-+#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL)
-+void irq_work_tick_soft(void);
-+#else
-+static inline void irq_work_tick_soft(void) { }
-+#endif
-+
- #endif /* _LINUX_IRQ_WORK_H */
-diff -Nur linux-4.1.39.orig/include/linux/jbd_common.h linux-4.1.39/include/linux/jbd_common.h
---- linux-4.1.39.orig/include/linux/jbd_common.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/jbd_common.h 2017-04-18 17:56:30.605396820 +0200
-@@ -15,32 +15,56 @@
-
- static inline void jbd_lock_bh_state(struct buffer_head *bh)
- {
-+#ifndef CONFIG_PREEMPT_RT_BASE
- bit_spin_lock(BH_State, &bh->b_state);
-+#else
-+ spin_lock(&bh->b_state_lock);
-+#endif
- }
-
- static inline int jbd_trylock_bh_state(struct buffer_head *bh)
- {
-+#ifndef CONFIG_PREEMPT_RT_BASE
- return bit_spin_trylock(BH_State, &bh->b_state);
-+#else
-+ return spin_trylock(&bh->b_state_lock);
-+#endif
- }
-
- static inline int jbd_is_locked_bh_state(struct buffer_head *bh)
- {
-+#ifndef CONFIG_PREEMPT_RT_BASE
- return bit_spin_is_locked(BH_State, &bh->b_state);
-+#else
-+ return spin_is_locked(&bh->b_state_lock);
-+#endif
- }
-
- static inline void jbd_unlock_bh_state(struct buffer_head *bh)
- {
-+#ifndef CONFIG_PREEMPT_RT_BASE
- bit_spin_unlock(BH_State, &bh->b_state);
-+#else
-+ spin_unlock(&bh->b_state_lock);
-+#endif
- }
-
- static inline void jbd_lock_bh_journal_head(struct buffer_head *bh)
- {
-+#ifndef CONFIG_PREEMPT_RT_BASE
- bit_spin_lock(BH_JournalHead, &bh->b_state);
-+#else
-+ spin_lock(&bh->b_journal_head_lock);
-+#endif
- }
-
- static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
- {
-+#ifndef CONFIG_PREEMPT_RT_BASE
- bit_spin_unlock(BH_JournalHead, &bh->b_state);
-+#else
-+ spin_unlock(&bh->b_journal_head_lock);
-+#endif
- }
-
- #endif
-diff -Nur linux-4.1.39.orig/include/linux/kdb.h linux-4.1.39/include/linux/kdb.h
---- linux-4.1.39.orig/include/linux/kdb.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/kdb.h 2017-04-18 17:56:30.605396820 +0200
-@@ -167,6 +167,7 @@
- extern __printf(1, 2) int kdb_printf(const char *, ...);
- typedef __printf(1, 2) int (*kdb_printf_t)(const char *, ...);
-
-+#define in_kdb_printk() (kdb_trap_printk)
- extern void kdb_init(int level);
-
- /* Access to kdb specific polling devices */
-@@ -201,6 +202,7 @@
- extern int kdb_unregister(char *);
- #else /* ! CONFIG_KGDB_KDB */
- static inline __printf(1, 2) int kdb_printf(const char *fmt, ...) { return 0; }
-+#define in_kdb_printk() (0)
- static inline void kdb_init(int level) {}
- static inline int kdb_register(char *cmd, kdb_func_t func, char *usage,
- char *help, short minlen) { return 0; }
-diff -Nur linux-4.1.39.orig/include/linux/kernel.h linux-4.1.39/include/linux/kernel.h
---- linux-4.1.39.orig/include/linux/kernel.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/kernel.h 2017-04-18 17:56:30.605396820 +0200
-@@ -188,6 +188,9 @@
- */
- # define might_sleep() \
- do { __might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0)
-+
-+# define might_sleep_no_state_check() \
-+ do { ___might_sleep(__FILE__, __LINE__, 0); might_resched(); } while (0)
- # define sched_annotate_sleep() (current->task_state_change = 0)
- #else
- static inline void ___might_sleep(const char *file, int line,
-@@ -195,6 +198,7 @@
- static inline void __might_sleep(const char *file, int line,
- int preempt_offset) { }
- # define might_sleep() do { might_resched(); } while (0)
-+# define might_sleep_no_state_check() do { might_resched(); } while (0)
- # define sched_annotate_sleep() do { } while (0)
- #endif
-
-@@ -244,7 +248,8 @@
-
- #if defined(CONFIG_MMU) && \
- (defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_DEBUG_ATOMIC_SLEEP))
--void might_fault(void);
-+#define might_fault() __might_fault(__FILE__, __LINE__)
-+void __might_fault(const char *file, int line);
- #else
- static inline void might_fault(void) { }
- #endif
-@@ -466,6 +471,7 @@
- SYSTEM_HALT,
- SYSTEM_POWER_OFF,
- SYSTEM_RESTART,
-+ SYSTEM_SUSPEND,
- } system_state;
-
- #define TAINT_PROPRIETARY_MODULE 0
-diff -Nur linux-4.1.39.orig/include/linux/kvm_host.h linux-4.1.39/include/linux/kvm_host.h
---- linux-4.1.39.orig/include/linux/kvm_host.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/kvm_host.h 2017-04-18 17:56:30.605396820 +0200
-@@ -230,7 +230,7 @@
-
- int fpu_active;
- int guest_fpu_loaded, guest_xcr0_loaded;
-- wait_queue_head_t wq;
-+ struct swait_head wq;
- struct pid *pid;
- int sigset_active;
- sigset_t sigset;
-@@ -701,7 +701,7 @@
- }
- #endif
-
--static inline wait_queue_head_t *kvm_arch_vcpu_wq(struct kvm_vcpu *vcpu)
-+static inline struct swait_head *kvm_arch_vcpu_wq(struct kvm_vcpu *vcpu)
- {
- #ifdef __KVM_HAVE_ARCH_WQP
- return vcpu->arch.wqp;
-diff -Nur linux-4.1.39.orig/include/linux/lglock.h linux-4.1.39/include/linux/lglock.h
---- linux-4.1.39.orig/include/linux/lglock.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/lglock.h 2017-04-18 17:56:30.605396820 +0200
-@@ -34,22 +34,39 @@
- #endif
-
- struct lglock {
-+#ifndef CONFIG_PREEMPT_RT_FULL
- arch_spinlock_t __percpu *lock;
-+#else
-+ struct rt_mutex __percpu *lock;
-+#endif
- #ifdef CONFIG_DEBUG_LOCK_ALLOC
- struct lock_class_key lock_key;
- struct lockdep_map lock_dep_map;
- #endif
- };
-
--#define DEFINE_LGLOCK(name) \
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+# define DEFINE_LGLOCK(name) \
- static DEFINE_PER_CPU(arch_spinlock_t, name ## _lock) \
- = __ARCH_SPIN_LOCK_UNLOCKED; \
- struct lglock name = { .lock = &name ## _lock }
-
--#define DEFINE_STATIC_LGLOCK(name) \
-+# define DEFINE_STATIC_LGLOCK(name) \
- static DEFINE_PER_CPU(arch_spinlock_t, name ## _lock) \
- = __ARCH_SPIN_LOCK_UNLOCKED; \
- static struct lglock name = { .lock = &name ## _lock }
-+#else
-+
-+# define DEFINE_LGLOCK(name) \
-+ static DEFINE_PER_CPU(struct rt_mutex, name ## _lock) \
-+ = __RT_MUTEX_INITIALIZER( name ## _lock); \
-+ struct lglock name = { .lock = &name ## _lock }
-+
-+# define DEFINE_STATIC_LGLOCK(name) \
-+ static DEFINE_PER_CPU(struct rt_mutex, name ## _lock) \
-+ = __RT_MUTEX_INITIALIZER( name ## _lock); \
-+ static struct lglock name = { .lock = &name ## _lock }
-+#endif
-
- void lg_lock_init(struct lglock *lg, char *name);
- void lg_local_lock(struct lglock *lg);
-@@ -59,6 +76,12 @@
- void lg_global_lock(struct lglock *lg);
- void lg_global_unlock(struct lglock *lg);
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+#define lg_global_trylock_relax(name) lg_global_lock(name)
-+#else
-+void lg_global_trylock_relax(struct lglock *lg);
-+#endif
-+
- #else
- /* When !CONFIG_SMP, map lglock to spinlock */
- #define lglock spinlock
-diff -Nur linux-4.1.39.orig/include/linux/list_bl.h linux-4.1.39/include/linux/list_bl.h
---- linux-4.1.39.orig/include/linux/list_bl.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/list_bl.h 2017-04-18 17:56:30.605396820 +0200
-@@ -2,6 +2,7 @@
- #define _LINUX_LIST_BL_H
-
- #include <linux/list.h>
-+#include <linux/spinlock.h>
- #include <linux/bit_spinlock.h>
-
- /*
-@@ -32,13 +33,24 @@
-
- struct hlist_bl_head {
- struct hlist_bl_node *first;
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ raw_spinlock_t lock;
-+#endif
- };
-
- struct hlist_bl_node {
- struct hlist_bl_node *next, **pprev;
- };
--#define INIT_HLIST_BL_HEAD(ptr) \
-- ((ptr)->first = NULL)
-+
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+#define INIT_HLIST_BL_HEAD(h) \
-+do { \
-+ (h)->first = NULL; \
-+ raw_spin_lock_init(&(h)->lock); \
-+} while (0)
-+#else
-+#define INIT_HLIST_BL_HEAD(h) (h)->first = NULL
-+#endif
-
- static inline void INIT_HLIST_BL_NODE(struct hlist_bl_node *h)
- {
-@@ -117,12 +129,26 @@
-
- static inline void hlist_bl_lock(struct hlist_bl_head *b)
- {
-+#ifndef CONFIG_PREEMPT_RT_BASE
- bit_spin_lock(0, (unsigned long *)b);
-+#else
-+ raw_spin_lock(&b->lock);
-+#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
-+ __set_bit(0, (unsigned long *)b);
-+#endif
-+#endif
- }
-
- static inline void hlist_bl_unlock(struct hlist_bl_head *b)
- {
-+#ifndef CONFIG_PREEMPT_RT_BASE
- __bit_spin_unlock(0, (unsigned long *)b);
-+#else
-+#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
-+ __clear_bit(0, (unsigned long *)b);
-+#endif
-+ raw_spin_unlock(&b->lock);
-+#endif
- }
-
- static inline bool hlist_bl_is_locked(struct hlist_bl_head *b)
-diff -Nur linux-4.1.39.orig/include/linux/locallock.h linux-4.1.39/include/linux/locallock.h
---- linux-4.1.39.orig/include/linux/locallock.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/linux/locallock.h 2017-04-18 17:56:30.605396820 +0200
-@@ -0,0 +1,276 @@
-+#ifndef _LINUX_LOCALLOCK_H
-+#define _LINUX_LOCALLOCK_H
-+
-+#include <linux/percpu.h>
-+#include <linux/spinlock.h>
-+
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+
-+#ifdef CONFIG_DEBUG_SPINLOCK
-+# define LL_WARN(cond) WARN_ON(cond)
-+#else
-+# define LL_WARN(cond) do { } while (0)
-+#endif
-+
-+/*
-+ * per cpu lock based substitute for local_irq_*()
-+ */
-+struct local_irq_lock {
-+ spinlock_t lock;
-+ struct task_struct *owner;
-+ int nestcnt;
-+ unsigned long flags;
-+};
-+
-+#define DEFINE_LOCAL_IRQ_LOCK(lvar) \
-+ DEFINE_PER_CPU(struct local_irq_lock, lvar) = { \
-+ .lock = __SPIN_LOCK_UNLOCKED((lvar).lock) }
-+
-+#define DECLARE_LOCAL_IRQ_LOCK(lvar) \
-+ DECLARE_PER_CPU(struct local_irq_lock, lvar)
-+
-+#define local_irq_lock_init(lvar) \
-+ do { \
-+ int __cpu; \
-+ for_each_possible_cpu(__cpu) \
-+ spin_lock_init(&per_cpu(lvar, __cpu).lock); \
-+ } while (0)
-+
-+/*
-+ * spin_lock|trylock|unlock_local flavour that does not migrate disable
-+ * used for __local_lock|trylock|unlock where get_local_var/put_local_var
-+ * already takes care of the migrate_disable/enable
-+ * for CONFIG_PREEMPT_BASE map to the normal spin_* calls.
-+ */
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+# define spin_lock_local(lock) rt_spin_lock(lock)
-+# define spin_trylock_local(lock) rt_spin_trylock(lock)
-+# define spin_unlock_local(lock) rt_spin_unlock(lock)
-+#else
-+# define spin_lock_local(lock) spin_lock(lock)
-+# define spin_trylock_local(lock) spin_trylock(lock)
-+# define spin_unlock_local(lock) spin_unlock(lock)
-+#endif
-+
-+static inline void __local_lock(struct local_irq_lock *lv)
-+{
-+ if (lv->owner != current) {
-+ spin_lock_local(&lv->lock);
-+ LL_WARN(lv->owner);
-+ LL_WARN(lv->nestcnt);
-+ lv->owner = current;
-+ }
-+ lv->nestcnt++;
-+}
-+
-+#define local_lock(lvar) \
-+ do { __local_lock(&get_local_var(lvar)); } while (0)
-+
-+#define local_lock_on(lvar, cpu) \
-+ do { __local_lock(&per_cpu(lvar, cpu)); } while (0)
-+
-+static inline int __local_trylock(struct local_irq_lock *lv)
-+{
-+ if (lv->owner != current && spin_trylock_local(&lv->lock)) {
-+ LL_WARN(lv->owner);
-+ LL_WARN(lv->nestcnt);
-+ lv->owner = current;
-+ lv->nestcnt = 1;
-+ return 1;
-+ }
-+ return 0;
-+}
-+
-+#define local_trylock(lvar) \
-+ ({ \
-+ int __locked; \
-+ __locked = __local_trylock(&get_local_var(lvar)); \
-+ if (!__locked) \
-+ put_local_var(lvar); \
-+ __locked; \
-+ })
-+
-+static inline void __local_unlock(struct local_irq_lock *lv)
-+{
-+ LL_WARN(lv->nestcnt == 0);
-+ LL_WARN(lv->owner != current);
-+ if (--lv->nestcnt)
-+ return;
-+
-+ lv->owner = NULL;
-+ spin_unlock_local(&lv->lock);
-+}
-+
-+#define local_unlock(lvar) \
-+ do { \
-+ __local_unlock(this_cpu_ptr(&lvar)); \
-+ put_local_var(lvar); \
-+ } while (0)
-+
-+#define local_unlock_on(lvar, cpu) \
-+ do { __local_unlock(&per_cpu(lvar, cpu)); } while (0)
-+
-+static inline void __local_lock_irq(struct local_irq_lock *lv)
-+{
-+ spin_lock_irqsave(&lv->lock, lv->flags);
-+ LL_WARN(lv->owner);
-+ LL_WARN(lv->nestcnt);
-+ lv->owner = current;
-+ lv->nestcnt = 1;
-+}
-+
-+#define local_lock_irq(lvar) \
-+ do { __local_lock_irq(&get_local_var(lvar)); } while (0)
-+
-+#define local_lock_irq_on(lvar, cpu) \
-+ do { __local_lock_irq(&per_cpu(lvar, cpu)); } while (0)
-+
-+static inline void __local_unlock_irq(struct local_irq_lock *lv)
-+{
-+ LL_WARN(!lv->nestcnt);
-+ LL_WARN(lv->owner != current);
-+ lv->owner = NULL;
-+ lv->nestcnt = 0;
-+ spin_unlock_irq(&lv->lock);
-+}
-+
-+#define local_unlock_irq(lvar) \
-+ do { \
-+ __local_unlock_irq(this_cpu_ptr(&lvar)); \
-+ put_local_var(lvar); \
-+ } while (0)
-+
-+#define local_unlock_irq_on(lvar, cpu) \
-+ do { \
-+ __local_unlock_irq(&per_cpu(lvar, cpu)); \
-+ } while (0)
-+
-+static inline int __local_lock_irqsave(struct local_irq_lock *lv)
-+{
-+ if (lv->owner != current) {
-+ __local_lock_irq(lv);
-+ return 0;
-+ } else {
-+ lv->nestcnt++;
-+ return 1;
-+ }
-+}
-+
-+#define local_lock_irqsave(lvar, _flags) \
-+ do { \
-+ if (__local_lock_irqsave(&get_local_var(lvar))) \
-+ put_local_var(lvar); \
-+ _flags = __this_cpu_read(lvar.flags); \
-+ } while (0)
-+
-+#define local_lock_irqsave_on(lvar, _flags, cpu) \
-+ do { \
-+ __local_lock_irqsave(&per_cpu(lvar, cpu)); \
-+ _flags = per_cpu(lvar, cpu).flags; \
-+ } while (0)
-+
-+static inline int __local_unlock_irqrestore(struct local_irq_lock *lv,
-+ unsigned long flags)
-+{
-+ LL_WARN(!lv->nestcnt);
-+ LL_WARN(lv->owner != current);
-+ if (--lv->nestcnt)
-+ return 0;
-+
-+ lv->owner = NULL;
-+ spin_unlock_irqrestore(&lv->lock, lv->flags);
-+ return 1;
-+}
-+
-+#define local_unlock_irqrestore(lvar, flags) \
-+ do { \
-+ if (__local_unlock_irqrestore(this_cpu_ptr(&lvar), flags)) \
-+ put_local_var(lvar); \
-+ } while (0)
-+
-+#define local_unlock_irqrestore_on(lvar, flags, cpu) \
-+ do { \
-+ __local_unlock_irqrestore(&per_cpu(lvar, cpu), flags); \
-+ } while (0)
-+
-+#define local_spin_trylock_irq(lvar, lock) \
-+ ({ \
-+ int __locked; \
-+ local_lock_irq(lvar); \
-+ __locked = spin_trylock(lock); \
-+ if (!__locked) \
-+ local_unlock_irq(lvar); \
-+ __locked; \
-+ })
-+
-+#define local_spin_lock_irq(lvar, lock) \
-+ do { \
-+ local_lock_irq(lvar); \
-+ spin_lock(lock); \
-+ } while (0)
-+
-+#define local_spin_unlock_irq(lvar, lock) \
-+ do { \
-+ spin_unlock(lock); \
-+ local_unlock_irq(lvar); \
-+ } while (0)
-+
-+#define local_spin_lock_irqsave(lvar, lock, flags) \
-+ do { \
-+ local_lock_irqsave(lvar, flags); \
-+ spin_lock(lock); \
-+ } while (0)
-+
-+#define local_spin_unlock_irqrestore(lvar, lock, flags) \
-+ do { \
-+ spin_unlock(lock); \
-+ local_unlock_irqrestore(lvar, flags); \
-+ } while (0)
-+
-+#define get_locked_var(lvar, var) \
-+ (*({ \
-+ local_lock(lvar); \
-+ this_cpu_ptr(&var); \
-+ }))
-+
-+#define put_locked_var(lvar, var) local_unlock(lvar);
-+
-+#define local_lock_cpu(lvar) \
-+ ({ \
-+ local_lock(lvar); \
-+ smp_processor_id(); \
-+ })
-+
-+#define local_unlock_cpu(lvar) local_unlock(lvar)
-+
-+#else /* PREEMPT_RT_BASE */
-+
-+#define DEFINE_LOCAL_IRQ_LOCK(lvar) __typeof__(const int) lvar
-+#define DECLARE_LOCAL_IRQ_LOCK(lvar) extern __typeof__(const int) lvar
-+
-+static inline void local_irq_lock_init(int lvar) { }
-+
-+#define local_lock(lvar) preempt_disable()
-+#define local_unlock(lvar) preempt_enable()
-+#define local_lock_irq(lvar) local_irq_disable()
-+#define local_unlock_irq(lvar) local_irq_enable()
-+#define local_lock_irqsave(lvar, flags) local_irq_save(flags)
-+#define local_unlock_irqrestore(lvar, flags) local_irq_restore(flags)
-+
-+#define local_spin_trylock_irq(lvar, lock) spin_trylock_irq(lock)
-+#define local_spin_lock_irq(lvar, lock) spin_lock_irq(lock)
-+#define local_spin_unlock_irq(lvar, lock) spin_unlock_irq(lock)
-+#define local_spin_lock_irqsave(lvar, lock, flags) \
-+ spin_lock_irqsave(lock, flags)
-+#define local_spin_unlock_irqrestore(lvar, lock, flags) \
-+ spin_unlock_irqrestore(lock, flags)
-+
-+#define get_locked_var(lvar, var) get_cpu_var(var)
-+#define put_locked_var(lvar, var) put_cpu_var(var)
-+
-+#define local_lock_cpu(lvar) get_cpu()
-+#define local_unlock_cpu(lvar) put_cpu()
-+
-+#endif
-+
-+#endif
-diff -Nur linux-4.1.39.orig/include/linux/mm_types.h linux-4.1.39/include/linux/mm_types.h
---- linux-4.1.39.orig/include/linux/mm_types.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/mm_types.h 2017-04-18 17:56:30.605396820 +0200
-@@ -11,6 +11,7 @@
- #include <linux/completion.h>
- #include <linux/cpumask.h>
- #include <linux/uprobes.h>
-+#include <linux/rcupdate.h>
- #include <linux/page-flags-layout.h>
- #include <asm/page.h>
- #include <asm/mmu.h>
-@@ -453,6 +454,9 @@
- bool tlb_flush_pending;
- #endif
- struct uprobes_state uprobes_state;
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ struct rcu_head delayed_drop;
-+#endif
- #ifdef CONFIG_X86_INTEL_MPX
- /* address of the bounds directory */
- void __user *bd_addr;
-diff -Nur linux-4.1.39.orig/include/linux/module.h linux-4.1.39/include/linux/module.h
---- linux-4.1.39.orig/include/linux/module.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/module.h 2017-04-18 17:56:30.605396820 +0200
-@@ -386,6 +386,7 @@
- struct module *__module_text_address(unsigned long addr);
- struct module *__module_address(unsigned long addr);
- bool is_module_address(unsigned long addr);
-+bool __is_module_percpu_address(unsigned long addr, unsigned long *can_addr);
- bool is_module_percpu_address(unsigned long addr);
- bool is_module_text_address(unsigned long addr);
-
-@@ -537,6 +538,11 @@
- {
- return false;
- }
-+
-+static inline bool __is_module_percpu_address(unsigned long addr, unsigned long *can_addr)
-+{
-+ return false;
-+}
-
- static inline bool is_module_text_address(unsigned long addr)
- {
-diff -Nur linux-4.1.39.orig/include/linux/mutex.h linux-4.1.39/include/linux/mutex.h
---- linux-4.1.39.orig/include/linux/mutex.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/mutex.h 2017-04-18 17:56:30.605396820 +0200
-@@ -19,6 +19,17 @@
- #include <asm/processor.h>
- #include <linux/osq_lock.h>
-
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+# define __DEP_MAP_MUTEX_INITIALIZER(lockname) \
-+ , .dep_map = { .name = #lockname }
-+#else
-+# define __DEP_MAP_MUTEX_INITIALIZER(lockname)
-+#endif
-+
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+# include <linux/mutex_rt.h>
-+#else
-+
- /*
- * Simple, straightforward mutexes with strict semantics:
- *
-@@ -99,13 +110,6 @@
- static inline void mutex_destroy(struct mutex *lock) {}
- #endif
-
--#ifdef CONFIG_DEBUG_LOCK_ALLOC
--# define __DEP_MAP_MUTEX_INITIALIZER(lockname) \
-- , .dep_map = { .name = #lockname }
--#else
--# define __DEP_MAP_MUTEX_INITIALIZER(lockname)
--#endif
--
- #define __MUTEX_INITIALIZER(lockname) \
- { .count = ATOMIC_INIT(1) \
- , .wait_lock = __SPIN_LOCK_UNLOCKED(lockname.wait_lock) \
-@@ -173,6 +177,8 @@
- extern int mutex_trylock(struct mutex *lock);
- extern void mutex_unlock(struct mutex *lock);
-
-+#endif /* !PREEMPT_RT_FULL */
-+
- extern int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock);
-
- #endif /* __LINUX_MUTEX_H */
-diff -Nur linux-4.1.39.orig/include/linux/mutex_rt.h linux-4.1.39/include/linux/mutex_rt.h
---- linux-4.1.39.orig/include/linux/mutex_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/linux/mutex_rt.h 2017-04-18 17:56:30.605396820 +0200
-@@ -0,0 +1,89 @@
-+#ifndef __LINUX_MUTEX_RT_H
-+#define __LINUX_MUTEX_RT_H
-+
-+#ifndef __LINUX_MUTEX_H
-+#error "Please include mutex.h"
-+#endif
-+
-+#include <linux/rtmutex.h>
-+
-+/* FIXME: Just for __lockfunc */
-+#include <linux/spinlock.h>
-+
-+struct mutex {
-+ struct rt_mutex lock;
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+ struct lockdep_map dep_map;
-+#endif
-+};
-+
-+#define __MUTEX_INITIALIZER(mutexname) \
-+ { \
-+ .lock = __RT_MUTEX_INITIALIZER(mutexname.lock) \
-+ __DEP_MAP_MUTEX_INITIALIZER(mutexname) \
-+ }
-+
-+#define DEFINE_MUTEX(mutexname) \
-+ struct mutex mutexname = __MUTEX_INITIALIZER(mutexname)
-+
-+extern void __mutex_do_init(struct mutex *lock, const char *name, struct lock_class_key *key);
-+extern void __lockfunc _mutex_lock(struct mutex *lock);
-+extern int __lockfunc _mutex_lock_interruptible(struct mutex *lock);
-+extern int __lockfunc _mutex_lock_killable(struct mutex *lock);
-+extern void __lockfunc _mutex_lock_nested(struct mutex *lock, int subclass);
-+extern void __lockfunc _mutex_lock_nest_lock(struct mutex *lock, struct lockdep_map *nest_lock);
-+extern int __lockfunc _mutex_lock_interruptible_nested(struct mutex *lock, int subclass);
-+extern int __lockfunc _mutex_lock_killable_nested(struct mutex *lock, int subclass);
-+extern int __lockfunc _mutex_trylock(struct mutex *lock);
-+extern void __lockfunc _mutex_unlock(struct mutex *lock);
-+
-+#define mutex_is_locked(l) rt_mutex_is_locked(&(l)->lock)
-+#define mutex_lock(l) _mutex_lock(l)
-+#define mutex_lock_interruptible(l) _mutex_lock_interruptible(l)
-+#define mutex_lock_killable(l) _mutex_lock_killable(l)
-+#define mutex_trylock(l) _mutex_trylock(l)
-+#define mutex_unlock(l) _mutex_unlock(l)
-+
-+#ifdef CONFIG_DEBUG_MUTEXES
-+#define mutex_destroy(l) rt_mutex_destroy(&(l)->lock)
-+#else
-+static inline void mutex_destroy(struct mutex *lock) {}
-+#endif
-+
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+# define mutex_lock_nested(l, s) _mutex_lock_nested(l, s)
-+# define mutex_lock_interruptible_nested(l, s) \
-+ _mutex_lock_interruptible_nested(l, s)
-+# define mutex_lock_killable_nested(l, s) \
-+ _mutex_lock_killable_nested(l, s)
-+
-+# define mutex_lock_nest_lock(lock, nest_lock) \
-+do { \
-+ typecheck(struct lockdep_map *, &(nest_lock)->dep_map); \
-+ _mutex_lock_nest_lock(lock, &(nest_lock)->dep_map); \
-+} while (0)
-+
-+#else
-+# define mutex_lock_nested(l, s) _mutex_lock(l)
-+# define mutex_lock_interruptible_nested(l, s) \
-+ _mutex_lock_interruptible(l)
-+# define mutex_lock_killable_nested(l, s) \
-+ _mutex_lock_killable(l)
-+# define mutex_lock_nest_lock(lock, nest_lock) mutex_lock(lock)
-+#endif
-+
-+# define mutex_init(mutex) \
-+do { \
-+ static struct lock_class_key __key; \
-+ \
-+ rt_mutex_init(&(mutex)->lock); \
-+ __mutex_do_init((mutex), #mutex, &__key); \
-+} while (0)
-+
-+# define __mutex_init(mutex, name, key) \
-+do { \
-+ rt_mutex_init(&(mutex)->lock); \
-+ __mutex_do_init((mutex), name, key); \
-+} while (0)
-+
-+#endif
-diff -Nur linux-4.1.39.orig/include/linux/netdevice.h linux-4.1.39/include/linux/netdevice.h
---- linux-4.1.39.orig/include/linux/netdevice.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/netdevice.h 2017-04-18 17:56:30.609396976 +0200
-@@ -390,7 +390,19 @@
- typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **pskb);
-
- void __napi_schedule(struct napi_struct *n);
-+
-+/*
-+ * When PREEMPT_RT_FULL is defined, all device interrupt handlers
-+ * run as threads, and they can also be preempted (without PREEMPT_RT
-+ * interrupt threads can not be preempted). Which means that calling
-+ * __napi_schedule_irqoff() from an interrupt handler can be preempted
-+ * and can corrupt the napi->poll_list.
-+ */
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+#define __napi_schedule_irqoff(n) __napi_schedule(n)
-+#else
- void __napi_schedule_irqoff(struct napi_struct *n);
-+#endif
-
- static inline bool napi_disable_pending(struct napi_struct *n)
- {
-@@ -2215,11 +2227,20 @@
- void synchronize_net(void);
- int init_dummy_netdev(struct net_device *dev);
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+static inline int dev_recursion_level(void)
-+{
-+ return current->xmit_recursion;
-+}
-+
-+#else
-+
- DECLARE_PER_CPU(int, xmit_recursion);
- static inline int dev_recursion_level(void)
- {
- return this_cpu_read(xmit_recursion);
- }
-+#endif
-
- struct net_device *dev_get_by_index(struct net *net, int ifindex);
- struct net_device *__dev_get_by_index(struct net *net, int ifindex);
-@@ -2510,6 +2531,7 @@
- unsigned int dropped;
- struct sk_buff_head input_pkt_queue;
- struct napi_struct backlog;
-+ struct sk_buff_head tofree_queue;
-
- };
-
-diff -Nur linux-4.1.39.orig/include/linux/netfilter/x_tables.h linux-4.1.39/include/linux/netfilter/x_tables.h
---- linux-4.1.39.orig/include/linux/netfilter/x_tables.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/netfilter/x_tables.h 2017-04-18 17:56:30.609396976 +0200
-@@ -3,6 +3,7 @@
-
-
- #include <linux/netdevice.h>
-+#include <linux/locallock.h>
- #include <uapi/linux/netfilter/x_tables.h>
-
- /**
-@@ -293,6 +294,8 @@
- */
- DECLARE_PER_CPU(seqcount_t, xt_recseq);
-
-+DECLARE_LOCAL_IRQ_LOCK(xt_write_lock);
-+
- /**
- * xt_write_recseq_begin - start of a write section
- *
-@@ -307,6 +310,9 @@
- {
- unsigned int addend;
-
-+ /* RT protection */
-+ local_lock(xt_write_lock);
-+
- /*
- * Low order bit of sequence is set if we already
- * called xt_write_recseq_begin().
-@@ -337,6 +343,7 @@
- /* this is kind of a write_seqcount_end(), but addend is 0 or 1 */
- smp_wmb();
- __this_cpu_add(xt_recseq.sequence, addend);
-+ local_unlock(xt_write_lock);
- }
-
- /*
-diff -Nur linux-4.1.39.orig/include/linux/notifier.h linux-4.1.39/include/linux/notifier.h
---- linux-4.1.39.orig/include/linux/notifier.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/notifier.h 2017-04-18 17:56:30.609396976 +0200
-@@ -6,7 +6,7 @@
- *
- * Alan Cox <Alan.Cox@linux.org>
- */
--
-+
- #ifndef _LINUX_NOTIFIER_H
- #define _LINUX_NOTIFIER_H
- #include <linux/errno.h>
-@@ -42,9 +42,7 @@
- * in srcu_notifier_call_chain(): no cache bounces and no memory barriers.
- * As compensation, srcu_notifier_chain_unregister() is rather expensive.
- * SRCU notifier chains should be used when the chain will be called very
-- * often but notifier_blocks will seldom be removed. Also, SRCU notifier
-- * chains are slightly more difficult to use because they require special
-- * runtime initialization.
-+ * often but notifier_blocks will seldom be removed.
- */
-
- typedef int (*notifier_fn_t)(struct notifier_block *nb,
-@@ -88,7 +86,7 @@
- (name)->head = NULL; \
- } while (0)
-
--/* srcu_notifier_heads must be initialized and cleaned up dynamically */
-+/* srcu_notifier_heads must be cleaned up dynamically */
- extern void srcu_init_notifier_head(struct srcu_notifier_head *nh);
- #define srcu_cleanup_notifier_head(name) \
- cleanup_srcu_struct(&(name)->srcu);
-@@ -101,7 +99,13 @@
- .head = NULL }
- #define RAW_NOTIFIER_INIT(name) { \
- .head = NULL }
--/* srcu_notifier_heads cannot be initialized statically */
-+
-+#define SRCU_NOTIFIER_INIT(name, pcpu) \
-+ { \
-+ .mutex = __MUTEX_INITIALIZER(name.mutex), \
-+ .head = NULL, \
-+ .srcu = __SRCU_STRUCT_INIT(name.srcu, pcpu), \
-+ }
-
- #define ATOMIC_NOTIFIER_HEAD(name) \
- struct atomic_notifier_head name = \
-@@ -113,6 +117,18 @@
- struct raw_notifier_head name = \
- RAW_NOTIFIER_INIT(name)
-
-+#define _SRCU_NOTIFIER_HEAD(name, mod) \
-+ static DEFINE_PER_CPU(struct srcu_struct_array, \
-+ name##_head_srcu_array); \
-+ mod struct srcu_notifier_head name = \
-+ SRCU_NOTIFIER_INIT(name, name##_head_srcu_array)
-+
-+#define SRCU_NOTIFIER_HEAD(name) \
-+ _SRCU_NOTIFIER_HEAD(name, )
-+
-+#define SRCU_NOTIFIER_HEAD_STATIC(name) \
-+ _SRCU_NOTIFIER_HEAD(name, static)
-+
- #ifdef __KERNEL__
-
- extern int atomic_notifier_chain_register(struct atomic_notifier_head *nh,
-@@ -182,12 +198,12 @@
-
- /*
- * Declared notifiers so far. I can imagine quite a few more chains
-- * over time (eg laptop power reset chains, reboot chain (to clean
-+ * over time (eg laptop power reset chains, reboot chain (to clean
- * device units up), device [un]mount chain, module load/unload chain,
-- * low memory chain, screenblank chain (for plug in modular screenblankers)
-+ * low memory chain, screenblank chain (for plug in modular screenblankers)
- * VC switch chains (for loadable kernel svgalib VC switch helpers) etc...
- */
--
-+
- /* CPU notfiers are defined in include/linux/cpu.h. */
-
- /* netdevice notifiers are defined in include/linux/netdevice.h */
-diff -Nur linux-4.1.39.orig/include/linux/percpu.h linux-4.1.39/include/linux/percpu.h
---- linux-4.1.39.orig/include/linux/percpu.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/percpu.h 2017-04-18 17:56:30.609396976 +0200
-@@ -24,6 +24,35 @@
- PERCPU_MODULE_RESERVE)
- #endif
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+
-+#define get_local_var(var) (*({ \
-+ migrate_disable(); \
-+ this_cpu_ptr(&var); }))
-+
-+#define put_local_var(var) do { \
-+ (void)&(var); \
-+ migrate_enable(); \
-+} while (0)
-+
-+# define get_local_ptr(var) ({ \
-+ migrate_disable(); \
-+ this_cpu_ptr(var); })
-+
-+# define put_local_ptr(var) do { \
-+ (void)(var); \
-+ migrate_enable(); \
-+} while (0)
-+
-+#else
-+
-+#define get_local_var(var) get_cpu_var(var)
-+#define put_local_var(var) put_cpu_var(var)
-+#define get_local_ptr(var) get_cpu_ptr(var)
-+#define put_local_ptr(var) put_cpu_ptr(var)
-+
-+#endif
-+
- /* minimum unit size, also is the maximum supported allocation size */
- #define PCPU_MIN_UNIT_SIZE PFN_ALIGN(32 << 10)
-
-@@ -116,6 +145,7 @@
- #endif
-
- extern void __percpu *__alloc_reserved_percpu(size_t size, size_t align);
-+extern bool __is_kernel_percpu_address(unsigned long addr, unsigned long *can_addr);
- extern bool is_kernel_percpu_address(unsigned long addr);
-
- #if !defined(CONFIG_SMP) || !defined(CONFIG_HAVE_SETUP_PER_CPU_AREA)
-diff -Nur linux-4.1.39.orig/include/linux/pid.h linux-4.1.39/include/linux/pid.h
---- linux-4.1.39.orig/include/linux/pid.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/pid.h 2017-04-18 17:56:30.609396976 +0200
-@@ -2,6 +2,7 @@
- #define _LINUX_PID_H
-
- #include <linux/rcupdate.h>
-+#include <linux/atomic.h>
-
- enum pid_type
- {
-diff -Nur linux-4.1.39.orig/include/linux/platform_data/gpio-omap.h linux-4.1.39/include/linux/platform_data/gpio-omap.h
---- linux-4.1.39.orig/include/linux/platform_data/gpio-omap.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/platform_data/gpio-omap.h 2017-04-18 17:56:30.609396976 +0200
-@@ -198,7 +198,6 @@
- int bank_width; /* GPIO bank width */
- int bank_stride; /* Only needed for omap1 MPUIO */
- bool dbck_flag; /* dbck required or not - True for OMAP3&4 */
-- bool loses_context; /* whether the bank would ever lose context */
- bool is_mpuio; /* whether the bank is of type MPUIO */
- u32 non_wakeup_gpios;
-
-@@ -208,9 +207,17 @@
- int (*get_context_loss_count)(struct device *dev);
- };
-
-+#if IS_BUILTIN(CONFIG_GPIO_OMAP)
- extern void omap2_gpio_prepare_for_idle(int off_mode);
- extern void omap2_gpio_resume_after_idle(void);
--extern void omap_set_gpio_debounce(int gpio, int enable);
--extern void omap_set_gpio_debounce_time(int gpio, int enable);
-+#else
-+static inline void omap2_gpio_prepare_for_idle(int off_mode)
-+{
-+}
-+
-+static inline void omap2_gpio_resume_after_idle(void)
-+{
-+}
-+#endif
-
- #endif
-diff -Nur linux-4.1.39.orig/include/linux/preempt.h linux-4.1.39/include/linux/preempt.h
---- linux-4.1.39.orig/include/linux/preempt.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/preempt.h 2017-04-18 17:56:30.609396976 +0200
-@@ -34,6 +34,20 @@
- #define preempt_count_inc() preempt_count_add(1)
- #define preempt_count_dec() preempt_count_sub(1)
-
-+#ifdef CONFIG_PREEMPT_LAZY
-+#define add_preempt_lazy_count(val) do { preempt_lazy_count() += (val); } while (0)
-+#define sub_preempt_lazy_count(val) do { preempt_lazy_count() -= (val); } while (0)
-+#define inc_preempt_lazy_count() add_preempt_lazy_count(1)
-+#define dec_preempt_lazy_count() sub_preempt_lazy_count(1)
-+#define preempt_lazy_count() (current_thread_info()->preempt_lazy_count)
-+#else
-+#define add_preempt_lazy_count(val) do { } while (0)
-+#define sub_preempt_lazy_count(val) do { } while (0)
-+#define inc_preempt_lazy_count() do { } while (0)
-+#define dec_preempt_lazy_count() do { } while (0)
-+#define preempt_lazy_count() (0)
-+#endif
-+
- #ifdef CONFIG_PREEMPT_COUNT
-
- #define preempt_disable() \
-@@ -42,13 +56,25 @@
- barrier(); \
- } while (0)
-
-+#define preempt_lazy_disable() \
-+do { \
-+ inc_preempt_lazy_count(); \
-+ barrier(); \
-+} while (0)
-+
- #define sched_preempt_enable_no_resched() \
- do { \
- barrier(); \
- preempt_count_dec(); \
- } while (0)
-
--#define preempt_enable_no_resched() sched_preempt_enable_no_resched()
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+# define preempt_enable_no_resched() sched_preempt_enable_no_resched()
-+# define preempt_check_resched_rt() preempt_check_resched()
-+#else
-+# define preempt_enable_no_resched() preempt_enable()
-+# define preempt_check_resched_rt() barrier();
-+#endif
-
- #ifdef CONFIG_PREEMPT
- #define preempt_enable() \
-@@ -64,6 +90,13 @@
- __preempt_schedule(); \
- } while (0)
-
-+#define preempt_lazy_enable() \
-+do { \
-+ dec_preempt_lazy_count(); \
-+ barrier(); \
-+ preempt_check_resched(); \
-+} while (0)
-+
- #else
- #define preempt_enable() \
- do { \
-@@ -122,6 +155,7 @@
- #define preempt_disable_notrace() barrier()
- #define preempt_enable_no_resched_notrace() barrier()
- #define preempt_enable_notrace() barrier()
-+#define preempt_check_resched_rt() barrier()
-
- #endif /* CONFIG_PREEMPT_COUNT */
-
-@@ -141,10 +175,31 @@
- } while (0)
- #define preempt_fold_need_resched() \
- do { \
-- if (tif_need_resched()) \
-+ if (tif_need_resched_now()) \
- set_preempt_need_resched(); \
- } while (0)
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+# define preempt_disable_rt() preempt_disable()
-+# define preempt_enable_rt() preempt_enable()
-+# define preempt_disable_nort() barrier()
-+# define preempt_enable_nort() barrier()
-+# ifdef CONFIG_SMP
-+ extern void migrate_disable(void);
-+ extern void migrate_enable(void);
-+# else /* CONFIG_SMP */
-+# define migrate_disable() barrier()
-+# define migrate_enable() barrier()
-+# endif /* CONFIG_SMP */
-+#else
-+# define preempt_disable_rt() barrier()
-+# define preempt_enable_rt() barrier()
-+# define preempt_disable_nort() preempt_disable()
-+# define preempt_enable_nort() preempt_enable()
-+# define migrate_disable() preempt_disable()
-+# define migrate_enable() preempt_enable()
-+#endif
-+
- #ifdef CONFIG_PREEMPT_NOTIFIERS
-
- struct preempt_notifier;
-diff -Nur linux-4.1.39.orig/include/linux/preempt_mask.h linux-4.1.39/include/linux/preempt_mask.h
---- linux-4.1.39.orig/include/linux/preempt_mask.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/preempt_mask.h 2017-04-18 17:56:30.609396976 +0200
-@@ -44,16 +44,26 @@
- #define HARDIRQ_OFFSET (1UL << HARDIRQ_SHIFT)
- #define NMI_OFFSET (1UL << NMI_SHIFT)
-
--#define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET)
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+# define SOFTIRQ_DISABLE_OFFSET (2 * SOFTIRQ_OFFSET)
-+#else
-+# define SOFTIRQ_DISABLE_OFFSET (0)
-+#endif
-
- #define PREEMPT_ACTIVE_BITS 1
- #define PREEMPT_ACTIVE_SHIFT (NMI_SHIFT + NMI_BITS)
- #define PREEMPT_ACTIVE (__IRQ_MASK(PREEMPT_ACTIVE_BITS) << PREEMPT_ACTIVE_SHIFT)
-
- #define hardirq_count() (preempt_count() & HARDIRQ_MASK)
--#define softirq_count() (preempt_count() & SOFTIRQ_MASK)
- #define irq_count() (preempt_count() & (HARDIRQ_MASK | SOFTIRQ_MASK \
- | NMI_MASK))
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+# define softirq_count() (preempt_count() & SOFTIRQ_MASK)
-+# define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET)
-+#else
-+# define softirq_count() (0UL)
-+extern int in_serving_softirq(void);
-+#endif
-
- /*
- * Are we doing bottom half or hardware interrupt processing?
-@@ -64,7 +74,6 @@
- #define in_irq() (hardirq_count())
- #define in_softirq() (softirq_count())
- #define in_interrupt() (irq_count())
--#define in_serving_softirq() (softirq_count() & SOFTIRQ_OFFSET)
-
- /*
- * Are we in NMI context?
-@@ -83,7 +92,11 @@
- /*
- * The preempt_count offset after spin_lock()
- */
-+#if !defined(CONFIG_PREEMPT_RT_FULL)
- #define PREEMPT_LOCK_OFFSET PREEMPT_DISABLE_OFFSET
-+#else
-+#define PREEMPT_LOCK_OFFSET 0
-+#endif
-
- /*
- * The preempt_count offset needed for things like:
-diff -Nur linux-4.1.39.orig/include/linux/printk.h linux-4.1.39/include/linux/printk.h
---- linux-4.1.39.orig/include/linux/printk.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/printk.h 2017-04-18 17:56:30.609396976 +0200
-@@ -115,9 +115,11 @@
- #ifdef CONFIG_EARLY_PRINTK
- extern asmlinkage __printf(1, 2)
- void early_printk(const char *fmt, ...);
-+extern void printk_kill(void);
- #else
- static inline __printf(1, 2) __cold
- void early_printk(const char *s, ...) { }
-+static inline void printk_kill(void) { }
- #endif
-
- typedef int(*printk_func_t)(const char *fmt, va_list args);
-diff -Nur linux-4.1.39.orig/include/linux/radix-tree.h linux-4.1.39/include/linux/radix-tree.h
---- linux-4.1.39.orig/include/linux/radix-tree.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/radix-tree.h 2017-04-18 17:56:30.609396976 +0200
-@@ -279,6 +279,8 @@
- unsigned long first_index, unsigned int max_items);
- int radix_tree_preload(gfp_t gfp_mask);
- int radix_tree_maybe_preload(gfp_t gfp_mask);
-+void radix_tree_preload_end(void);
-+
- void radix_tree_init(void);
- void *radix_tree_tag_set(struct radix_tree_root *root,
- unsigned long index, unsigned int tag);
-@@ -301,11 +303,6 @@
- int radix_tree_tagged(struct radix_tree_root *root, unsigned int tag);
- unsigned long radix_tree_locate_item(struct radix_tree_root *root, void *item);
-
--static inline void radix_tree_preload_end(void)
--{
-- preempt_enable();
--}
--
- /**
- * struct radix_tree_iter - radix tree iterator state
- *
-diff -Nur linux-4.1.39.orig/include/linux/random.h linux-4.1.39/include/linux/random.h
---- linux-4.1.39.orig/include/linux/random.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/random.h 2017-04-18 17:56:30.609396976 +0200
-@@ -11,7 +11,7 @@
- extern void add_device_randomness(const void *, unsigned int);
- extern void add_input_randomness(unsigned int type, unsigned int code,
- unsigned int value);
--extern void add_interrupt_randomness(int irq, int irq_flags);
-+extern void add_interrupt_randomness(int irq, int irq_flags, __u64 ip);
-
- extern void get_random_bytes(void *buf, int nbytes);
- extern void get_random_bytes_arch(void *buf, int nbytes);
-diff -Nur linux-4.1.39.orig/include/linux/rcupdate.h linux-4.1.39/include/linux/rcupdate.h
---- linux-4.1.39.orig/include/linux/rcupdate.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/rcupdate.h 2017-04-18 17:56:30.609396976 +0200
-@@ -167,6 +167,9 @@
-
- #endif /* #else #ifdef CONFIG_PREEMPT_RCU */
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+#define call_rcu_bh call_rcu
-+#else
- /**
- * call_rcu_bh() - Queue an RCU for invocation after a quicker grace period.
- * @head: structure to be used for queueing the RCU updates.
-@@ -190,6 +193,7 @@
- */
- void call_rcu_bh(struct rcu_head *head,
- void (*func)(struct rcu_head *head));
-+#endif
-
- /**
- * call_rcu_sched() - Queue an RCU for invocation after sched grace period.
-@@ -260,6 +264,11 @@
- * types of kernel builds, the rcu_read_lock() nesting depth is unknowable.
- */
- #define rcu_preempt_depth() (current->rcu_read_lock_nesting)
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+#define sched_rcu_preempt_depth() rcu_preempt_depth()
-+#else
-+static inline int sched_rcu_preempt_depth(void) { return 0; }
-+#endif
-
- #else /* #ifdef CONFIG_PREEMPT_RCU */
-
-@@ -283,6 +292,8 @@
- return 0;
- }
-
-+#define sched_rcu_preempt_depth() rcu_preempt_depth()
-+
- #endif /* #else #ifdef CONFIG_PREEMPT_RCU */
-
- /* Internal to kernel */
-@@ -463,7 +474,14 @@
- int debug_lockdep_rcu_enabled(void);
-
- int rcu_read_lock_held(void);
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+static inline int rcu_read_lock_bh_held(void)
-+{
-+ return rcu_read_lock_held();
-+}
-+#else
- int rcu_read_lock_bh_held(void);
-+#endif
-
- /**
- * rcu_read_lock_sched_held() - might we be in RCU-sched read-side critical section?
-@@ -990,10 +1008,14 @@
- static inline void rcu_read_lock_bh(void)
- {
- local_bh_disable();
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ rcu_read_lock();
-+#else
- __acquire(RCU_BH);
- rcu_lock_acquire(&rcu_bh_lock_map);
- rcu_lockdep_assert(rcu_is_watching(),
- "rcu_read_lock_bh() used illegally while idle");
-+#endif
- }
-
- /*
-@@ -1003,10 +1025,14 @@
- */
- static inline void rcu_read_unlock_bh(void)
- {
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ rcu_read_unlock();
-+#else
- rcu_lockdep_assert(rcu_is_watching(),
- "rcu_read_unlock_bh() used illegally while idle");
- rcu_lock_release(&rcu_bh_lock_map);
- __release(RCU_BH);
-+#endif
- local_bh_enable();
- }
-
-diff -Nur linux-4.1.39.orig/include/linux/rcutree.h linux-4.1.39/include/linux/rcutree.h
---- linux-4.1.39.orig/include/linux/rcutree.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/rcutree.h 2017-04-18 17:56:30.609396976 +0200
-@@ -46,7 +46,11 @@
- rcu_note_context_switch();
- }
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+# define synchronize_rcu_bh synchronize_rcu
-+#else
- void synchronize_rcu_bh(void);
-+#endif
- void synchronize_sched_expedited(void);
- void synchronize_rcu_expedited(void);
-
-@@ -74,7 +78,11 @@
- }
-
- void rcu_barrier(void);
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+# define rcu_barrier_bh rcu_barrier
-+#else
- void rcu_barrier_bh(void);
-+#endif
- void rcu_barrier_sched(void);
- unsigned long get_state_synchronize_rcu(void);
- void cond_synchronize_rcu(unsigned long oldstate);
-@@ -85,12 +93,10 @@
- unsigned long rcu_batches_started_bh(void);
- unsigned long rcu_batches_started_sched(void);
- unsigned long rcu_batches_completed(void);
--unsigned long rcu_batches_completed_bh(void);
- unsigned long rcu_batches_completed_sched(void);
- void show_rcu_gp_kthreads(void);
-
- void rcu_force_quiescent_state(void);
--void rcu_bh_force_quiescent_state(void);
- void rcu_sched_force_quiescent_state(void);
-
- void exit_rcu(void);
-@@ -100,6 +106,14 @@
-
- bool rcu_is_watching(void);
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+void rcu_bh_force_quiescent_state(void);
-+unsigned long rcu_batches_completed_bh(void);
-+#else
-+# define rcu_bh_force_quiescent_state rcu_force_quiescent_state
-+# define rcu_batches_completed_bh rcu_batches_completed
-+#endif
-+
- void rcu_all_qs(void);
-
- #endif /* __LINUX_RCUTREE_H */
-diff -Nur linux-4.1.39.orig/include/linux/rtmutex.h linux-4.1.39/include/linux/rtmutex.h
---- linux-4.1.39.orig/include/linux/rtmutex.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/rtmutex.h 2017-04-18 17:56:30.609396976 +0200
-@@ -14,10 +14,14 @@
-
- #include <linux/linkage.h>
- #include <linux/rbtree.h>
--#include <linux/spinlock_types.h>
-+#include <linux/spinlock_types_raw.h>
-
- extern int max_lock_depth; /* for sysctl */
-
-+#ifdef CONFIG_DEBUG_MUTEXES
-+#include <linux/debug_locks.h>
-+#endif
-+
- /**
- * The rt_mutex structure
- *
-@@ -31,8 +35,8 @@
- struct rb_root waiters;
- struct rb_node *waiters_leftmost;
- struct task_struct *owner;
--#ifdef CONFIG_DEBUG_RT_MUTEXES
- int save_state;
-+#ifdef CONFIG_DEBUG_RT_MUTEXES
- const char *name, *file;
- int line;
- void *magic;
-@@ -55,22 +59,33 @@
- # define rt_mutex_debug_check_no_locks_held(task) do { } while (0)
- #endif
-
-+# define rt_mutex_init(mutex) \
-+ do { \
-+ raw_spin_lock_init(&(mutex)->wait_lock); \
-+ __rt_mutex_init(mutex, #mutex); \
-+ } while (0)
-+
- #ifdef CONFIG_DEBUG_RT_MUTEXES
- # define __DEBUG_RT_MUTEX_INITIALIZER(mutexname) \
- , .name = #mutexname, .file = __FILE__, .line = __LINE__
--# define rt_mutex_init(mutex) __rt_mutex_init(mutex, __func__)
- extern void rt_mutex_debug_task_free(struct task_struct *tsk);
- #else
- # define __DEBUG_RT_MUTEX_INITIALIZER(mutexname)
--# define rt_mutex_init(mutex) __rt_mutex_init(mutex, NULL)
- # define rt_mutex_debug_task_free(t) do { } while (0)
- #endif
-
--#define __RT_MUTEX_INITIALIZER(mutexname) \
-- { .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(mutexname.wait_lock) \
-+#define __RT_MUTEX_INITIALIZER_PLAIN(mutexname) \
-+ .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(mutexname.wait_lock) \
- , .waiters = RB_ROOT \
- , .owner = NULL \
-- __DEBUG_RT_MUTEX_INITIALIZER(mutexname)}
-+ __DEBUG_RT_MUTEX_INITIALIZER(mutexname)
-+
-+#define __RT_MUTEX_INITIALIZER(mutexname) \
-+ { __RT_MUTEX_INITIALIZER_PLAIN(mutexname) }
-+
-+#define __RT_MUTEX_INITIALIZER_SAVE_STATE(mutexname) \
-+ { __RT_MUTEX_INITIALIZER_PLAIN(mutexname) \
-+ , .save_state = 1 }
-
- #define DEFINE_RT_MUTEX(mutexname) \
- struct rt_mutex mutexname = __RT_MUTEX_INITIALIZER(mutexname)
-@@ -91,6 +106,7 @@
-
- extern void rt_mutex_lock(struct rt_mutex *lock);
- extern int rt_mutex_lock_interruptible(struct rt_mutex *lock);
-+extern int rt_mutex_lock_killable(struct rt_mutex *lock);
- extern int rt_mutex_timed_lock(struct rt_mutex *lock,
- struct hrtimer_sleeper *timeout);
-
-diff -Nur linux-4.1.39.orig/include/linux/rwlock_rt.h linux-4.1.39/include/linux/rwlock_rt.h
---- linux-4.1.39.orig/include/linux/rwlock_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/linux/rwlock_rt.h 2017-04-18 17:56:30.609396976 +0200
-@@ -0,0 +1,99 @@
-+#ifndef __LINUX_RWLOCK_RT_H
-+#define __LINUX_RWLOCK_RT_H
-+
-+#ifndef __LINUX_SPINLOCK_H
-+#error Do not include directly. Use spinlock.h
-+#endif
-+
-+#define rwlock_init(rwl) \
-+do { \
-+ static struct lock_class_key __key; \
-+ \
-+ rt_mutex_init(&(rwl)->lock); \
-+ __rt_rwlock_init(rwl, #rwl, &__key); \
-+} while (0)
-+
-+extern void __lockfunc rt_write_lock(rwlock_t *rwlock);
-+extern void __lockfunc rt_read_lock(rwlock_t *rwlock);
-+extern int __lockfunc rt_write_trylock(rwlock_t *rwlock);
-+extern int __lockfunc rt_write_trylock_irqsave(rwlock_t *trylock, unsigned long *flags);
-+extern int __lockfunc rt_read_trylock(rwlock_t *rwlock);
-+extern void __lockfunc rt_write_unlock(rwlock_t *rwlock);
-+extern void __lockfunc rt_read_unlock(rwlock_t *rwlock);
-+extern unsigned long __lockfunc rt_write_lock_irqsave(rwlock_t *rwlock);
-+extern unsigned long __lockfunc rt_read_lock_irqsave(rwlock_t *rwlock);
-+extern void __rt_rwlock_init(rwlock_t *rwlock, char *name, struct lock_class_key *key);
-+
-+#define read_trylock(lock) __cond_lock(lock, rt_read_trylock(lock))
-+#define write_trylock(lock) __cond_lock(lock, rt_write_trylock(lock))
-+
-+#define write_trylock_irqsave(lock, flags) \
-+ __cond_lock(lock, rt_write_trylock_irqsave(lock, &flags))
-+
-+#define read_lock_irqsave(lock, flags) \
-+ do { \
-+ typecheck(unsigned long, flags); \
-+ flags = rt_read_lock_irqsave(lock); \
-+ } while (0)
-+
-+#define write_lock_irqsave(lock, flags) \
-+ do { \
-+ typecheck(unsigned long, flags); \
-+ flags = rt_write_lock_irqsave(lock); \
-+ } while (0)
-+
-+#define read_lock(lock) rt_read_lock(lock)
-+
-+#define read_lock_bh(lock) \
-+ do { \
-+ local_bh_disable(); \
-+ rt_read_lock(lock); \
-+ } while (0)
-+
-+#define read_lock_irq(lock) read_lock(lock)
-+
-+#define write_lock(lock) rt_write_lock(lock)
-+
-+#define write_lock_bh(lock) \
-+ do { \
-+ local_bh_disable(); \
-+ rt_write_lock(lock); \
-+ } while (0)
-+
-+#define write_lock_irq(lock) write_lock(lock)
-+
-+#define read_unlock(lock) rt_read_unlock(lock)
-+
-+#define read_unlock_bh(lock) \
-+ do { \
-+ rt_read_unlock(lock); \
-+ local_bh_enable(); \
-+ } while (0)
-+
-+#define read_unlock_irq(lock) read_unlock(lock)
-+
-+#define write_unlock(lock) rt_write_unlock(lock)
-+
-+#define write_unlock_bh(lock) \
-+ do { \
-+ rt_write_unlock(lock); \
-+ local_bh_enable(); \
-+ } while (0)
-+
-+#define write_unlock_irq(lock) write_unlock(lock)
-+
-+#define read_unlock_irqrestore(lock, flags) \
-+ do { \
-+ typecheck(unsigned long, flags); \
-+ (void) flags; \
-+ rt_read_unlock(lock); \
-+ } while (0)
-+
-+#define write_unlock_irqrestore(lock, flags) \
-+ do { \
-+ typecheck(unsigned long, flags); \
-+ (void) flags; \
-+ rt_write_unlock(lock); \
-+ } while (0)
-+
-+#endif
-diff -Nur linux-4.1.39.orig/include/linux/rwlock_types.h linux-4.1.39/include/linux/rwlock_types.h
---- linux-4.1.39.orig/include/linux/rwlock_types.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/rwlock_types.h 2017-04-18 17:56:30.609396976 +0200
-@@ -1,6 +1,10 @@
- #ifndef __LINUX_RWLOCK_TYPES_H
- #define __LINUX_RWLOCK_TYPES_H
-
-+#if !defined(__LINUX_SPINLOCK_TYPES_H)
-+# error "Do not include directly, include spinlock_types.h"
-+#endif
-+
- /*
- * include/linux/rwlock_types.h - generic rwlock type definitions
- * and initializers
-@@ -43,6 +47,7 @@
- RW_DEP_MAP_INIT(lockname) }
- #endif
-
--#define DEFINE_RWLOCK(x) rwlock_t x = __RW_LOCK_UNLOCKED(x)
-+#define DEFINE_RWLOCK(name) \
-+ rwlock_t name __cacheline_aligned_in_smp = __RW_LOCK_UNLOCKED(name)
-
- #endif /* __LINUX_RWLOCK_TYPES_H */
-diff -Nur linux-4.1.39.orig/include/linux/rwlock_types_rt.h linux-4.1.39/include/linux/rwlock_types_rt.h
---- linux-4.1.39.orig/include/linux/rwlock_types_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/linux/rwlock_types_rt.h 2017-04-18 17:56:30.609396976 +0200
-@@ -0,0 +1,33 @@
-+#ifndef __LINUX_RWLOCK_TYPES_RT_H
-+#define __LINUX_RWLOCK_TYPES_RT_H
-+
-+#ifndef __LINUX_SPINLOCK_TYPES_H
-+#error "Do not include directly. Include spinlock_types.h instead"
-+#endif
-+
-+/*
-+ * rwlocks - rtmutex which allows single reader recursion
-+ */
-+typedef struct {
-+ struct rt_mutex lock;
-+ int read_depth;
-+ unsigned int break_lock;
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+ struct lockdep_map dep_map;
-+#endif
-+} rwlock_t;
-+
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+# define RW_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname }
-+#else
-+# define RW_DEP_MAP_INIT(lockname)
-+#endif
-+
-+#define __RW_LOCK_UNLOCKED(name) \
-+ { .lock = __RT_MUTEX_INITIALIZER_SAVE_STATE(name.lock), \
-+ RW_DEP_MAP_INIT(name) }
-+
-+#define DEFINE_RWLOCK(name) \
-+ rwlock_t name __cacheline_aligned_in_smp = __RW_LOCK_UNLOCKED(name)
-+
-+#endif
-diff -Nur linux-4.1.39.orig/include/linux/rwsem.h linux-4.1.39/include/linux/rwsem.h
---- linux-4.1.39.orig/include/linux/rwsem.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/rwsem.h 2017-04-18 17:56:30.609396976 +0200
-@@ -18,6 +18,10 @@
- #include <linux/osq_lock.h>
- #endif
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+#include <linux/rwsem_rt.h>
-+#else /* PREEMPT_RT_FULL */
-+
- struct rw_semaphore;
-
- #ifdef CONFIG_RWSEM_GENERIC_SPINLOCK
-@@ -177,4 +181,6 @@
- # define up_read_non_owner(sem) up_read(sem)
- #endif
-
-+#endif /* !PREEMPT_RT_FULL */
-+
- #endif /* _LINUX_RWSEM_H */
-diff -Nur linux-4.1.39.orig/include/linux/rwsem_rt.h linux-4.1.39/include/linux/rwsem_rt.h
---- linux-4.1.39.orig/include/linux/rwsem_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/linux/rwsem_rt.h 2017-04-18 17:56:30.609396976 +0200
-@@ -0,0 +1,140 @@
-+#ifndef _LINUX_RWSEM_RT_H
-+#define _LINUX_RWSEM_RT_H
-+
-+#ifndef _LINUX_RWSEM_H
-+#error "Include rwsem.h"
-+#endif
-+
-+/*
-+ * RW-semaphores are a spinlock plus a reader-depth count.
-+ *
-+ * Note that the semantics are different from the usual
-+ * Linux rw-sems, in PREEMPT_RT mode we do not allow
-+ * multiple readers to hold the lock at once, we only allow
-+ * a read-lock owner to read-lock recursively. This is
-+ * better for latency, makes the implementation inherently
-+ * fair and makes it simpler as well.
-+ */
-+
-+#include <linux/rtmutex.h>
-+
-+struct rw_semaphore {
-+ struct rt_mutex lock;
-+ int read_depth;
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+ struct lockdep_map dep_map;
-+#endif
-+};
-+
-+#define __RWSEM_INITIALIZER(name) \
-+ { .lock = __RT_MUTEX_INITIALIZER(name.lock), \
-+ RW_DEP_MAP_INIT(name) }
-+
-+#define DECLARE_RWSEM(lockname) \
-+ struct rw_semaphore lockname = __RWSEM_INITIALIZER(lockname)
-+
-+extern void __rt_rwsem_init(struct rw_semaphore *rwsem, const char *name,
-+ struct lock_class_key *key);
-+
-+#define __rt_init_rwsem(sem, name, key) \
-+ do { \
-+ rt_mutex_init(&(sem)->lock); \
-+ __rt_rwsem_init((sem), (name), (key));\
-+ } while (0)
-+
-+#define __init_rwsem(sem, name, key) __rt_init_rwsem(sem, name, key)
-+
-+# define rt_init_rwsem(sem) \
-+do { \
-+ static struct lock_class_key __key; \
-+ \
-+ __rt_init_rwsem((sem), #sem, &__key); \
-+} while (0)
-+
-+extern void rt_down_write(struct rw_semaphore *rwsem);
-+extern void rt_down_read_nested(struct rw_semaphore *rwsem, int subclass);
-+extern void rt_down_write_nested(struct rw_semaphore *rwsem, int subclass);
-+extern void rt_down_write_nested_lock(struct rw_semaphore *rwsem,
-+ struct lockdep_map *nest);
-+extern void rt_down_read(struct rw_semaphore *rwsem);
-+extern int rt_down_write_trylock(struct rw_semaphore *rwsem);
-+extern int rt_down_read_trylock(struct rw_semaphore *rwsem);
-+extern void __rt_up_read(struct rw_semaphore *rwsem);
-+extern void rt_up_read(struct rw_semaphore *rwsem);
-+extern void rt_up_write(struct rw_semaphore *rwsem);
-+extern void rt_downgrade_write(struct rw_semaphore *rwsem);
-+
-+#define init_rwsem(sem) rt_init_rwsem(sem)
-+#define rwsem_is_locked(s) rt_mutex_is_locked(&(s)->lock)
-+
-+static inline int rwsem_is_contended(struct rw_semaphore *sem)
-+{
-+ /* rt_mutex_has_waiters() */
-+ return !RB_EMPTY_ROOT(&sem->lock.waiters);
-+}
-+
-+static inline void down_read(struct rw_semaphore *sem)
-+{
-+ rt_down_read(sem);
-+}
-+
-+static inline int down_read_trylock(struct rw_semaphore *sem)
-+{
-+ return rt_down_read_trylock(sem);
-+}
-+
-+static inline void down_write(struct rw_semaphore *sem)
-+{
-+ rt_down_write(sem);
-+}
-+
-+static inline int down_write_trylock(struct rw_semaphore *sem)
-+{
-+ return rt_down_write_trylock(sem);
-+}
-+
-+static inline void __up_read(struct rw_semaphore *sem)
-+{
-+ __rt_up_read(sem);
-+}
-+
-+static inline void up_read(struct rw_semaphore *sem)
-+{
-+ rt_up_read(sem);
-+}
-+
-+static inline void up_write(struct rw_semaphore *sem)
-+{
-+ rt_up_write(sem);
-+}
-+
-+static inline void downgrade_write(struct rw_semaphore *sem)
-+{
-+ rt_downgrade_write(sem);
-+}
-+
-+static inline void down_read_nested(struct rw_semaphore *sem, int subclass)
-+{
-+ return rt_down_read_nested(sem, subclass);
-+}
-+
-+static inline void down_write_nested(struct rw_semaphore *sem, int subclass)
-+{
-+ rt_down_write_nested(sem, subclass);
-+}
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+static inline void down_write_nest_lock(struct rw_semaphore *sem,
-+ struct rw_semaphore *nest_lock)
-+{
-+ rt_down_write_nested_lock(sem, &nest_lock->dep_map);
-+}
-+
-+#else
-+
-+static inline void down_write_nest_lock(struct rw_semaphore *sem,
-+ struct rw_semaphore *nest_lock)
-+{
-+ rt_down_write_nested_lock(sem, NULL);
-+}
-+#endif
-+#endif
-diff -Nur linux-4.1.39.orig/include/linux/sched.h linux-4.1.39/include/linux/sched.h
---- linux-4.1.39.orig/include/linux/sched.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/sched.h 2017-04-18 17:56:30.609396976 +0200
-@@ -26,6 +26,7 @@
- #include <linux/nodemask.h>
- #include <linux/mm_types.h>
- #include <linux/preempt_mask.h>
-+#include <asm/kmap_types.h>
-
- #include <asm/page.h>
- #include <asm/ptrace.h>
-@@ -175,8 +176,6 @@
- extern void calc_global_load(unsigned long ticks);
- extern void update_cpu_load_nohz(void);
-
--extern unsigned long get_parent_ip(unsigned long addr);
--
- extern void dump_cpu_task(int cpu);
-
- struct seq_file;
-@@ -234,10 +233,7 @@
- TASK_UNINTERRUPTIBLE | __TASK_STOPPED | \
- __TASK_TRACED | EXIT_ZOMBIE | EXIT_DEAD)
-
--#define task_is_traced(task) ((task->state & __TASK_TRACED) != 0)
- #define task_is_stopped(task) ((task->state & __TASK_STOPPED) != 0)
--#define task_is_stopped_or_traced(task) \
-- ((task->state & (__TASK_STOPPED | __TASK_TRACED)) != 0)
- #define task_contributes_to_load(task) \
- ((task->state & TASK_UNINTERRUPTIBLE) != 0 && \
- (task->flags & PF_FROZEN) == 0)
-@@ -302,6 +298,11 @@
-
- #endif
-
-+#define __set_current_state_no_track(state_value) \
-+ do { current->state = (state_value); } while (0)
-+#define set_current_state_no_track(state_value) \
-+ set_mb(current->state, (state_value))
-+
- /* Task command name length */
- #define TASK_COMM_LEN 16
-
-@@ -902,6 +903,50 @@
- #define SCHED_CAPACITY_SCALE (1L << SCHED_CAPACITY_SHIFT)
-
- /*
-+ * Wake-queues are lists of tasks with a pending wakeup, whose
-+ * callers have already marked the task as woken internally,
-+ * and can thus carry on. A common use case is being able to
-+ * do the wakeups once the corresponding user lock as been
-+ * released.
-+ *
-+ * We hold reference to each task in the list across the wakeup,
-+ * thus guaranteeing that the memory is still valid by the time
-+ * the actual wakeups are performed in wake_up_q().
-+ *
-+ * One per task suffices, because there's never a need for a task to be
-+ * in two wake queues simultaneously; it is forbidden to abandon a task
-+ * in a wake queue (a call to wake_up_q() _must_ follow), so if a task is
-+ * already in a wake queue, the wakeup will happen soon and the second
-+ * waker can just skip it.
-+ *
-+ * The WAKE_Q macro declares and initializes the list head.
-+ * wake_up_q() does NOT reinitialize the list; it's expected to be
-+ * called near the end of a function, where the fact that the queue is
-+ * not used again will be easy to see by inspection.
-+ *
-+ * Note that this can cause spurious wakeups. schedule() callers
-+ * must ensure the call is done inside a loop, confirming that the
-+ * wakeup condition has in fact occurred.
-+ */
-+struct wake_q_node {
-+ struct wake_q_node *next;
-+};
-+
-+struct wake_q_head {
-+ struct wake_q_node *first;
-+ struct wake_q_node **lastp;
-+};
-+
-+#define WAKE_Q_TAIL ((struct wake_q_node *) 0x01)
-+
-+#define WAKE_Q(name) \
-+ struct wake_q_head name = { WAKE_Q_TAIL, &name.first }
-+
-+extern void wake_q_add(struct wake_q_head *head,
-+ struct task_struct *task);
-+extern void wake_up_q(struct wake_q_head *head);
-+
-+/*
- * sched-domains (multiprocessor balancing) declarations:
- */
- #ifdef CONFIG_SMP
-@@ -1293,6 +1338,7 @@
-
- struct task_struct {
- volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
-+ volatile long saved_state; /* saved state for "spinlock sleepers" */
- void *stack;
- atomic_t usage;
- unsigned int flags; /* per process flags, defined below */
-@@ -1329,6 +1375,12 @@
- #endif
-
- unsigned int policy;
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ int migrate_disable;
-+# ifdef CONFIG_SCHED_DEBUG
-+ int migrate_disable_atomic;
-+# endif
-+#endif
- int nr_cpus_allowed;
- cpumask_t cpus_allowed;
-
-@@ -1436,7 +1488,8 @@
- struct cputime prev_cputime;
- #endif
- #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
-- seqlock_t vtime_seqlock;
-+ raw_spinlock_t vtime_lock;
-+ seqcount_t vtime_seq;
- unsigned long long vtime_snap;
- enum {
- VTIME_SLEEPING = 0,
-@@ -1452,6 +1505,9 @@
-
- struct task_cputime cputime_expires;
- struct list_head cpu_timers[3];
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ struct task_struct *posix_timer_list;
-+#endif
-
- /* process credentials */
- const struct cred __rcu *ptracer_cred; /* Tracer's credentials at attach */
-@@ -1485,10 +1541,15 @@
- /* signal handlers */
- struct signal_struct *signal;
- struct sighand_struct *sighand;
-+ struct sigqueue *sigqueue_cache;
-
- sigset_t blocked, real_blocked;
- sigset_t saved_sigmask; /* restored if set_restore_sigmask() was used */
- struct sigpending pending;
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ /* TODO: move me into ->restart_block ? */
-+ struct siginfo forced_info;
-+#endif
-
- unsigned long sas_ss_sp;
- size_t sas_ss_size;
-@@ -1514,6 +1575,8 @@
- /* Protection of the PI data structures: */
- raw_spinlock_t pi_lock;
-
-+ struct wake_q_node wake_q;
-+
- #ifdef CONFIG_RT_MUTEXES
- /* PI waiters blocked on a rt_mutex held by this task */
- struct rb_root pi_waiters;
-@@ -1708,6 +1771,12 @@
- unsigned long trace;
- /* bitmask and counter of trace recursion */
- unsigned long trace_recursion;
-+#ifdef CONFIG_WAKEUP_LATENCY_HIST
-+ u64 preempt_timestamp_hist;
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+ long timer_offset;
-+#endif
-+#endif
- #endif /* CONFIG_TRACING */
- #ifdef CONFIG_MEMCG
- struct memcg_oom_info {
-@@ -1724,14 +1793,26 @@
- unsigned int sequential_io;
- unsigned int sequential_io_avg;
- #endif
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ struct rcu_head put_rcu;
-+ int softirq_nestcnt;
-+ unsigned int softirqs_raised;
-+#endif
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+# if defined CONFIG_HIGHMEM || defined CONFIG_X86_32
-+ int kmap_idx;
-+ pte_t kmap_pte[KM_TYPE_NR];
-+# endif
-+#endif
- #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
- unsigned long task_state_change;
- #endif
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ int xmit_recursion;
-+#endif
-+ int pagefault_disabled;
- };
-
--/* Future-safe accessor for struct task_struct's cpus_allowed. */
--#define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
--
- #define TNF_MIGRATED 0x01
- #define TNF_NO_GROUP 0x02
- #define TNF_SHARED 0x04
-@@ -1920,6 +2001,15 @@
- extern void free_task(struct task_struct *tsk);
- #define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0)
-
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+extern void __put_task_struct_cb(struct rcu_head *rhp);
-+
-+static inline void put_task_struct(struct task_struct *t)
-+{
-+ if (atomic_dec_and_test(&t->usage))
-+ call_rcu(&t->put_rcu, __put_task_struct_cb);
-+}
-+#else
- extern void __put_task_struct(struct task_struct *t);
-
- static inline void put_task_struct(struct task_struct *t)
-@@ -1927,6 +2017,7 @@
- if (atomic_dec_and_test(&t->usage))
- __put_task_struct(t);
- }
-+#endif
-
- #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
- extern void task_cputime(struct task_struct *t,
-@@ -1965,6 +2056,7 @@
- /*
- * Per process flags
- */
-+#define PF_IN_SOFTIRQ 0x00000001 /* Task is serving softirq */
- #define PF_EXITING 0x00000004 /* getting shut down */
- #define PF_EXITPIDONE 0x00000008 /* pi exit done on shut down */
- #define PF_VCPU 0x00000010 /* I'm a virtual CPU */
-@@ -2129,6 +2221,10 @@
-
- extern int set_cpus_allowed_ptr(struct task_struct *p,
- const struct cpumask *new_mask);
-+int migrate_me(void);
-+void tell_sched_cpu_down_begin(int cpu);
-+void tell_sched_cpu_down_done(int cpu);
-+
- #else
- static inline void do_set_cpus_allowed(struct task_struct *p,
- const struct cpumask *new_mask)
-@@ -2141,6 +2237,9 @@
- return -EINVAL;
- return 0;
- }
-+static inline int migrate_me(void) { return 0; }
-+static inline void tell_sched_cpu_down_begin(int cpu) { }
-+static inline void tell_sched_cpu_down_done(int cpu) { }
- #endif
-
- #ifdef CONFIG_NO_HZ_COMMON
-@@ -2357,6 +2456,7 @@
-
- extern int wake_up_state(struct task_struct *tsk, unsigned int state);
- extern int wake_up_process(struct task_struct *tsk);
-+extern int wake_up_lock_sleeper(struct task_struct * tsk);
- extern void wake_up_new_task(struct task_struct *tsk);
- #ifdef CONFIG_SMP
- extern void kick_process(struct task_struct *tsk);
-@@ -2473,12 +2573,24 @@
-
- /* mmdrop drops the mm and the page tables */
- extern void __mmdrop(struct mm_struct *);
-+
- static inline void mmdrop(struct mm_struct * mm)
- {
- if (unlikely(atomic_dec_and_test(&mm->mm_count)))
- __mmdrop(mm);
- }
-
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+extern void __mmdrop_delayed(struct rcu_head *rhp);
-+static inline void mmdrop_delayed(struct mm_struct *mm)
-+{
-+ if (atomic_dec_and_test(&mm->mm_count))
-+ call_rcu(&mm->delayed_drop, __mmdrop_delayed);
-+}
-+#else
-+# define mmdrop_delayed(mm) mmdrop(mm)
-+#endif
-+
- /* mmput gets rid of the mappings and all user-space */
- extern void mmput(struct mm_struct *);
- /* Grab a reference to a task's mm, if it is not already going away */
-@@ -2790,6 +2902,43 @@
- return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED));
- }
-
-+#ifdef CONFIG_PREEMPT_LAZY
-+static inline void set_tsk_need_resched_lazy(struct task_struct *tsk)
-+{
-+ set_tsk_thread_flag(tsk,TIF_NEED_RESCHED_LAZY);
-+}
-+
-+static inline void clear_tsk_need_resched_lazy(struct task_struct *tsk)
-+{
-+ clear_tsk_thread_flag(tsk,TIF_NEED_RESCHED_LAZY);
-+}
-+
-+static inline int test_tsk_need_resched_lazy(struct task_struct *tsk)
-+{
-+ return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED_LAZY));
-+}
-+
-+static inline int need_resched_lazy(void)
-+{
-+ return test_thread_flag(TIF_NEED_RESCHED_LAZY);
-+}
-+
-+static inline int need_resched_now(void)
-+{
-+ return test_thread_flag(TIF_NEED_RESCHED);
-+}
-+
-+#else
-+static inline void clear_tsk_need_resched_lazy(struct task_struct *tsk) { }
-+static inline int need_resched_lazy(void) { return 0; }
-+
-+static inline int need_resched_now(void)
-+{
-+ return test_thread_flag(TIF_NEED_RESCHED);
-+}
-+
-+#endif
-+
- static inline int restart_syscall(void)
- {
- set_tsk_thread_flag(current, TIF_SIGPENDING);
-@@ -2821,6 +2970,51 @@
- return (state & TASK_INTERRUPTIBLE) || __fatal_signal_pending(p);
- }
-
-+static inline bool __task_is_stopped_or_traced(struct task_struct *task)
-+{
-+ if (task->state & (__TASK_STOPPED | __TASK_TRACED))
-+ return true;
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ if (task->saved_state & (__TASK_STOPPED | __TASK_TRACED))
-+ return true;
-+#endif
-+ return false;
-+}
-+
-+static inline bool task_is_stopped_or_traced(struct task_struct *task)
-+{
-+ bool traced_stopped;
-+
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ unsigned long flags;
-+
-+ raw_spin_lock_irqsave(&task->pi_lock, flags);
-+ traced_stopped = __task_is_stopped_or_traced(task);
-+ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
-+#else
-+ traced_stopped = __task_is_stopped_or_traced(task);
-+#endif
-+ return traced_stopped;
-+}
-+
-+static inline bool task_is_traced(struct task_struct *task)
-+{
-+ bool traced = false;
-+
-+ if (task->state & __TASK_TRACED)
-+ return true;
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ /* in case the task is sleeping on tasklist_lock */
-+ raw_spin_lock_irq(&task->pi_lock);
-+ if (task->state & __TASK_TRACED)
-+ traced = true;
-+ else if (task->saved_state & __TASK_TRACED)
-+ traced = true;
-+ raw_spin_unlock_irq(&task->pi_lock);
-+#endif
-+ return traced;
-+}
-+
- /*
- * cond_resched() and cond_resched_lock(): latency reduction via
- * explicit rescheduling in places that are safe. The return
-@@ -2842,12 +3036,16 @@
- __cond_resched_lock(lock); \
- })
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- extern int __cond_resched_softirq(void);
-
- #define cond_resched_softirq() ({ \
- ___might_sleep(__FILE__, __LINE__, SOFTIRQ_DISABLE_OFFSET); \
- __cond_resched_softirq(); \
- })
-+#else
-+# define cond_resched_softirq() cond_resched()
-+#endif
-
- static inline void cond_resched_rcu(void)
- {
-@@ -3014,6 +3212,26 @@
-
- #endif /* CONFIG_SMP */
-
-+static inline int __migrate_disabled(struct task_struct *p)
-+{
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ return p->migrate_disable;
-+#else
-+ return 0;
-+#endif
-+}
-+
-+/* Future-safe accessor for struct task_struct's cpus_allowed. */
-+static inline const struct cpumask *tsk_cpus_allowed(struct task_struct *p)
-+{
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ if (p->migrate_disable)
-+ return cpumask_of(task_cpu(p));
-+#endif
-+
-+ return &p->cpus_allowed;
-+}
-+
- extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask);
- extern long sched_getaffinity(pid_t pid, struct cpumask *mask);
-
-diff -Nur linux-4.1.39.orig/include/linux/seqlock.h linux-4.1.39/include/linux/seqlock.h
---- linux-4.1.39.orig/include/linux/seqlock.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/seqlock.h 2017-04-18 17:56:30.609396976 +0200
-@@ -219,20 +219,30 @@
- return __read_seqcount_retry(s, start);
- }
-
--
--
--static inline void raw_write_seqcount_begin(seqcount_t *s)
-+static inline void __raw_write_seqcount_begin(seqcount_t *s)
- {
- s->sequence++;
- smp_wmb();
- }
-
--static inline void raw_write_seqcount_end(seqcount_t *s)
-+static inline void raw_write_seqcount_begin(seqcount_t *s)
-+{
-+ preempt_disable_rt();
-+ __raw_write_seqcount_begin(s);
-+}
-+
-+static inline void __raw_write_seqcount_end(seqcount_t *s)
- {
- smp_wmb();
- s->sequence++;
- }
-
-+static inline void raw_write_seqcount_end(seqcount_t *s)
-+{
-+ __raw_write_seqcount_end(s);
-+ preempt_enable_rt();
-+}
-+
- /*
- * raw_write_seqcount_latch - redirect readers to even/odd copy
- * @s: pointer to seqcount_t
-@@ -305,10 +315,32 @@
- /*
- * Read side functions for starting and finalizing a read side section.
- */
-+#ifndef CONFIG_PREEMPT_RT_FULL
- static inline unsigned read_seqbegin(const seqlock_t *sl)
- {
- return read_seqcount_begin(&sl->seqcount);
- }
-+#else
-+/*
-+ * Starvation safe read side for RT
-+ */
-+static inline unsigned read_seqbegin(seqlock_t *sl)
-+{
-+ unsigned ret;
-+
-+repeat:
-+ ret = ACCESS_ONCE(sl->seqcount.sequence);
-+ if (unlikely(ret & 1)) {
-+ /*
-+ * Take the lock and let the writer proceed (i.e. evtl
-+ * boost it), otherwise we could loop here forever.
-+ */
-+ spin_unlock_wait(&sl->lock);
-+ goto repeat;
-+ }
-+ return ret;
-+}
-+#endif
-
- static inline unsigned read_seqretry(const seqlock_t *sl, unsigned start)
- {
-@@ -323,36 +355,36 @@
- static inline void write_seqlock(seqlock_t *sl)
- {
- spin_lock(&sl->lock);
-- write_seqcount_begin(&sl->seqcount);
-+ __raw_write_seqcount_begin(&sl->seqcount);
- }
-
- static inline void write_sequnlock(seqlock_t *sl)
- {
-- write_seqcount_end(&sl->seqcount);
-+ __raw_write_seqcount_end(&sl->seqcount);
- spin_unlock(&sl->lock);
- }
-
- static inline void write_seqlock_bh(seqlock_t *sl)
- {
- spin_lock_bh(&sl->lock);
-- write_seqcount_begin(&sl->seqcount);
-+ __raw_write_seqcount_begin(&sl->seqcount);
- }
-
- static inline void write_sequnlock_bh(seqlock_t *sl)
- {
-- write_seqcount_end(&sl->seqcount);
-+ __raw_write_seqcount_end(&sl->seqcount);
- spin_unlock_bh(&sl->lock);
- }
-
- static inline void write_seqlock_irq(seqlock_t *sl)
- {
- spin_lock_irq(&sl->lock);
-- write_seqcount_begin(&sl->seqcount);
-+ __raw_write_seqcount_begin(&sl->seqcount);
- }
-
- static inline void write_sequnlock_irq(seqlock_t *sl)
- {
-- write_seqcount_end(&sl->seqcount);
-+ __raw_write_seqcount_end(&sl->seqcount);
- spin_unlock_irq(&sl->lock);
- }
-
-@@ -361,7 +393,7 @@
- unsigned long flags;
-
- spin_lock_irqsave(&sl->lock, flags);
-- write_seqcount_begin(&sl->seqcount);
-+ __raw_write_seqcount_begin(&sl->seqcount);
- return flags;
- }
-
-@@ -371,7 +403,7 @@
- static inline void
- write_sequnlock_irqrestore(seqlock_t *sl, unsigned long flags)
- {
-- write_seqcount_end(&sl->seqcount);
-+ __raw_write_seqcount_end(&sl->seqcount);
- spin_unlock_irqrestore(&sl->lock, flags);
- }
-
-diff -Nur linux-4.1.39.orig/include/linux/signal.h linux-4.1.39/include/linux/signal.h
---- linux-4.1.39.orig/include/linux/signal.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/signal.h 2017-04-18 17:56:30.609396976 +0200
-@@ -233,6 +233,7 @@
- }
-
- extern void flush_sigqueue(struct sigpending *queue);
-+extern void flush_task_sigqueue(struct task_struct *tsk);
-
- /* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */
- static inline int valid_signal(unsigned long sig)
-diff -Nur linux-4.1.39.orig/include/linux/skbuff.h linux-4.1.39/include/linux/skbuff.h
---- linux-4.1.39.orig/include/linux/skbuff.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/skbuff.h 2017-04-18 17:56:30.613397130 +0200
-@@ -187,6 +187,7 @@
-
- __u32 qlen;
- spinlock_t lock;
-+ raw_spinlock_t raw_lock;
- };
-
- struct sk_buff;
-@@ -1337,6 +1338,12 @@
- __skb_queue_head_init(list);
- }
-
-+static inline void skb_queue_head_init_raw(struct sk_buff_head *list)
-+{
-+ raw_spin_lock_init(&list->raw_lock);
-+ __skb_queue_head_init(list);
-+}
-+
- static inline void skb_queue_head_init_class(struct sk_buff_head *list,
- struct lock_class_key *class)
- {
-diff -Nur linux-4.1.39.orig/include/linux/smp.h linux-4.1.39/include/linux/smp.h
---- linux-4.1.39.orig/include/linux/smp.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/smp.h 2017-04-18 17:56:30.613397130 +0200
-@@ -185,6 +185,9 @@
- #define get_cpu() ({ preempt_disable(); smp_processor_id(); })
- #define put_cpu() preempt_enable()
-
-+#define get_cpu_light() ({ migrate_disable(); smp_processor_id(); })
-+#define put_cpu_light() migrate_enable()
-+
- /*
- * Callback to arch code if there's nosmp or maxcpus=0 on the
- * boot command line:
-diff -Nur linux-4.1.39.orig/include/linux/spinlock_api_smp.h linux-4.1.39/include/linux/spinlock_api_smp.h
---- linux-4.1.39.orig/include/linux/spinlock_api_smp.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/spinlock_api_smp.h 2017-04-18 17:56:30.613397130 +0200
-@@ -189,6 +189,8 @@
- return 0;
- }
-
--#include <linux/rwlock_api_smp.h>
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+# include <linux/rwlock_api_smp.h>
-+#endif
-
- #endif /* __LINUX_SPINLOCK_API_SMP_H */
-diff -Nur linux-4.1.39.orig/include/linux/spinlock.h linux-4.1.39/include/linux/spinlock.h
---- linux-4.1.39.orig/include/linux/spinlock.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/spinlock.h 2017-04-18 17:56:30.613397130 +0200
-@@ -281,7 +281,11 @@
- #define raw_spin_can_lock(lock) (!raw_spin_is_locked(lock))
-
- /* Include rwlock functions */
--#include <linux/rwlock.h>
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+# include <linux/rwlock_rt.h>
-+#else
-+# include <linux/rwlock.h>
-+#endif
-
- /*
- * Pull the _spin_*()/_read_*()/_write_*() functions/declarations:
-@@ -292,6 +296,10 @@
- # include <linux/spinlock_api_up.h>
- #endif
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+# include <linux/spinlock_rt.h>
-+#else /* PREEMPT_RT_FULL */
-+
- /*
- * Map the spin_lock functions to the raw variants for PREEMPT_RT=n
- */
-@@ -426,4 +434,6 @@
- #define atomic_dec_and_lock(atomic, lock) \
- __cond_lock(lock, _atomic_dec_and_lock(atomic, lock))
-
-+#endif /* !PREEMPT_RT_FULL */
-+
- #endif /* __LINUX_SPINLOCK_H */
-diff -Nur linux-4.1.39.orig/include/linux/spinlock_rt.h linux-4.1.39/include/linux/spinlock_rt.h
---- linux-4.1.39.orig/include/linux/spinlock_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/linux/spinlock_rt.h 2017-04-18 17:56:30.613397130 +0200
-@@ -0,0 +1,174 @@
-+#ifndef __LINUX_SPINLOCK_RT_H
-+#define __LINUX_SPINLOCK_RT_H
-+
-+#ifndef __LINUX_SPINLOCK_H
-+#error Do not include directly. Use spinlock.h
-+#endif
-+
-+#include <linux/bug.h>
-+
-+extern void
-+__rt_spin_lock_init(spinlock_t *lock, char *name, struct lock_class_key *key);
-+
-+#define spin_lock_init(slock) \
-+do { \
-+ static struct lock_class_key __key; \
-+ \
-+ rt_mutex_init(&(slock)->lock); \
-+ __rt_spin_lock_init(slock, #slock, &__key); \
-+} while (0)
-+
-+extern void __lockfunc rt_spin_lock(spinlock_t *lock);
-+extern unsigned long __lockfunc rt_spin_lock_trace_flags(spinlock_t *lock);
-+extern void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass);
-+extern void __lockfunc rt_spin_unlock(spinlock_t *lock);
-+extern void __lockfunc rt_spin_unlock_wait(spinlock_t *lock);
-+extern int __lockfunc rt_spin_trylock_irqsave(spinlock_t *lock, unsigned long *flags);
-+extern int __lockfunc rt_spin_trylock_bh(spinlock_t *lock);
-+extern int __lockfunc rt_spin_trylock(spinlock_t *lock);
-+extern int atomic_dec_and_spin_lock(atomic_t *atomic, spinlock_t *lock);
-+
-+/*
-+ * lockdep-less calls, for derived types like rwlock:
-+ * (for trylock they can use rt_mutex_trylock() directly.
-+ */
-+extern void __lockfunc __rt_spin_lock(struct rt_mutex *lock);
-+extern void __lockfunc __rt_spin_unlock(struct rt_mutex *lock);
-+extern int __lockfunc __rt_spin_trylock(struct rt_mutex *lock);
-+
-+#define spin_lock(lock) \
-+ do { \
-+ migrate_disable(); \
-+ rt_spin_lock(lock); \
-+ } while (0)
-+
-+#define spin_lock_bh(lock) \
-+ do { \
-+ local_bh_disable(); \
-+ migrate_disable(); \
-+ rt_spin_lock(lock); \
-+ } while (0)
-+
-+#define spin_lock_irq(lock) spin_lock(lock)
-+
-+#define spin_do_trylock(lock) __cond_lock(lock, rt_spin_trylock(lock))
-+
-+#define spin_trylock(lock) \
-+({ \
-+ int __locked; \
-+ migrate_disable(); \
-+ __locked = spin_do_trylock(lock); \
-+ if (!__locked) \
-+ migrate_enable(); \
-+ __locked; \
-+})
-+
-+#ifdef CONFIG_LOCKDEP
-+# define spin_lock_nested(lock, subclass) \
-+ do { \
-+ migrate_disable(); \
-+ rt_spin_lock_nested(lock, subclass); \
-+ } while (0)
-+
-+#define spin_lock_bh_nested(lock, subclass) \
-+ do { \
-+ local_bh_disable(); \
-+ migrate_disable(); \
-+ rt_spin_lock_nested(lock, subclass); \
-+ } while (0)
-+
-+# define spin_lock_irqsave_nested(lock, flags, subclass) \
-+ do { \
-+ typecheck(unsigned long, flags); \
-+ flags = 0; \
-+ migrate_disable(); \
-+ rt_spin_lock_nested(lock, subclass); \
-+ } while (0)
-+#else
-+# define spin_lock_nested(lock, subclass) spin_lock(lock)
-+# define spin_lock_bh_nested(lock, subclass) spin_lock_bh(lock)
-+
-+# define spin_lock_irqsave_nested(lock, flags, subclass) \
-+ do { \
-+ typecheck(unsigned long, flags); \
-+ flags = 0; \
-+ spin_lock(lock); \
-+ } while (0)
-+#endif
-+
-+#define spin_lock_irqsave(lock, flags) \
-+ do { \
-+ typecheck(unsigned long, flags); \
-+ flags = 0; \
-+ spin_lock(lock); \
-+ } while (0)
-+
-+static inline unsigned long spin_lock_trace_flags(spinlock_t *lock)
-+{
-+ unsigned long flags = 0;
-+#ifdef CONFIG_TRACE_IRQFLAGS
-+ flags = rt_spin_lock_trace_flags(lock);
-+#else
-+ spin_lock(lock); /* lock_local */
-+#endif
-+ return flags;
-+}
-+
-+/* FIXME: we need rt_spin_lock_nest_lock */
-+#define spin_lock_nest_lock(lock, nest_lock) spin_lock_nested(lock, 0)
-+
-+#define spin_unlock(lock) \
-+ do { \
-+ rt_spin_unlock(lock); \
-+ migrate_enable(); \
-+ } while (0)
-+
-+#define spin_unlock_bh(lock) \
-+ do { \
-+ rt_spin_unlock(lock); \
-+ migrate_enable(); \
-+ local_bh_enable(); \
-+ } while (0)
-+
-+#define spin_unlock_irq(lock) spin_unlock(lock)
-+
-+#define spin_unlock_irqrestore(lock, flags) \
-+ do { \
-+ typecheck(unsigned long, flags); \
-+ (void) flags; \
-+ spin_unlock(lock); \
-+ } while (0)
-+
-+#define spin_trylock_bh(lock) __cond_lock(lock, rt_spin_trylock_bh(lock))
-+#define spin_trylock_irq(lock) spin_trylock(lock)
-+
-+#define spin_trylock_irqsave(lock, flags) \
-+ rt_spin_trylock_irqsave(lock, &(flags))
-+
-+#define spin_unlock_wait(lock) rt_spin_unlock_wait(lock)
-+
-+#ifdef CONFIG_GENERIC_LOCKBREAK
-+# define spin_is_contended(lock) ((lock)->break_lock)
-+#else
-+# define spin_is_contended(lock) (((void)(lock), 0))
-+#endif
-+
-+static inline int spin_can_lock(spinlock_t *lock)
-+{
-+ return !rt_mutex_is_locked(&lock->lock);
-+}
-+
-+static inline int spin_is_locked(spinlock_t *lock)
-+{
-+ return rt_mutex_is_locked(&lock->lock);
-+}
-+
-+static inline void assert_spin_locked(spinlock_t *lock)
-+{
-+ BUG_ON(!spin_is_locked(lock));
-+}
-+
-+#define atomic_dec_and_lock(atomic, lock) \
-+ atomic_dec_and_spin_lock(atomic, lock)
-+
-+#endif
-diff -Nur linux-4.1.39.orig/include/linux/spinlock_types.h linux-4.1.39/include/linux/spinlock_types.h
---- linux-4.1.39.orig/include/linux/spinlock_types.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/spinlock_types.h 2017-04-18 17:56:30.613397130 +0200
-@@ -9,80 +9,15 @@
- * Released under the General Public License (GPL).
- */
-
--#if defined(CONFIG_SMP)
--# include <asm/spinlock_types.h>
--#else
--# include <linux/spinlock_types_up.h>
--#endif
--
--#include <linux/lockdep.h>
--
--typedef struct raw_spinlock {
-- arch_spinlock_t raw_lock;
--#ifdef CONFIG_GENERIC_LOCKBREAK
-- unsigned int break_lock;
--#endif
--#ifdef CONFIG_DEBUG_SPINLOCK
-- unsigned int magic, owner_cpu;
-- void *owner;
--#endif
--#ifdef CONFIG_DEBUG_LOCK_ALLOC
-- struct lockdep_map dep_map;
--#endif
--} raw_spinlock_t;
--
--#define SPINLOCK_MAGIC 0xdead4ead
--
--#define SPINLOCK_OWNER_INIT ((void *)-1L)
--
--#ifdef CONFIG_DEBUG_LOCK_ALLOC
--# define SPIN_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname }
--#else
--# define SPIN_DEP_MAP_INIT(lockname)
--#endif
-+#include <linux/spinlock_types_raw.h>
-
--#ifdef CONFIG_DEBUG_SPINLOCK
--# define SPIN_DEBUG_INIT(lockname) \
-- .magic = SPINLOCK_MAGIC, \
-- .owner_cpu = -1, \
-- .owner = SPINLOCK_OWNER_INIT,
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+# include <linux/spinlock_types_nort.h>
-+# include <linux/rwlock_types.h>
- #else
--# define SPIN_DEBUG_INIT(lockname)
-+# include <linux/rtmutex.h>
-+# include <linux/spinlock_types_rt.h>
-+# include <linux/rwlock_types_rt.h>
- #endif
-
--#define __RAW_SPIN_LOCK_INITIALIZER(lockname) \
-- { \
-- .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \
-- SPIN_DEBUG_INIT(lockname) \
-- SPIN_DEP_MAP_INIT(lockname) }
--
--#define __RAW_SPIN_LOCK_UNLOCKED(lockname) \
-- (raw_spinlock_t) __RAW_SPIN_LOCK_INITIALIZER(lockname)
--
--#define DEFINE_RAW_SPINLOCK(x) raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x)
--
--typedef struct spinlock {
-- union {
-- struct raw_spinlock rlock;
--
--#ifdef CONFIG_DEBUG_LOCK_ALLOC
--# define LOCK_PADSIZE (offsetof(struct raw_spinlock, dep_map))
-- struct {
-- u8 __padding[LOCK_PADSIZE];
-- struct lockdep_map dep_map;
-- };
--#endif
-- };
--} spinlock_t;
--
--#define __SPIN_LOCK_INITIALIZER(lockname) \
-- { { .rlock = __RAW_SPIN_LOCK_INITIALIZER(lockname) } }
--
--#define __SPIN_LOCK_UNLOCKED(lockname) \
-- (spinlock_t ) __SPIN_LOCK_INITIALIZER(lockname)
--
--#define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
--
--#include <linux/rwlock_types.h>
--
- #endif /* __LINUX_SPINLOCK_TYPES_H */
-diff -Nur linux-4.1.39.orig/include/linux/spinlock_types_nort.h linux-4.1.39/include/linux/spinlock_types_nort.h
---- linux-4.1.39.orig/include/linux/spinlock_types_nort.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/linux/spinlock_types_nort.h 2017-04-18 17:56:30.613397130 +0200
-@@ -0,0 +1,33 @@
-+#ifndef __LINUX_SPINLOCK_TYPES_NORT_H
-+#define __LINUX_SPINLOCK_TYPES_NORT_H
-+
-+#ifndef __LINUX_SPINLOCK_TYPES_H
-+#error "Do not include directly. Include spinlock_types.h instead"
-+#endif
-+
-+/*
-+ * The non RT version maps spinlocks to raw_spinlocks
-+ */
-+typedef struct spinlock {
-+ union {
-+ struct raw_spinlock rlock;
-+
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+# define LOCK_PADSIZE (offsetof(struct raw_spinlock, dep_map))
-+ struct {
-+ u8 __padding[LOCK_PADSIZE];
-+ struct lockdep_map dep_map;
-+ };
-+#endif
-+ };
-+} spinlock_t;
-+
-+#define __SPIN_LOCK_INITIALIZER(lockname) \
-+ { { .rlock = __RAW_SPIN_LOCK_INITIALIZER(lockname) } }
-+
-+#define __SPIN_LOCK_UNLOCKED(lockname) \
-+ (spinlock_t ) __SPIN_LOCK_INITIALIZER(lockname)
-+
-+#define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
-+
-+#endif
-diff -Nur linux-4.1.39.orig/include/linux/spinlock_types_raw.h linux-4.1.39/include/linux/spinlock_types_raw.h
---- linux-4.1.39.orig/include/linux/spinlock_types_raw.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/linux/spinlock_types_raw.h 2017-04-18 17:56:30.613397130 +0200
-@@ -0,0 +1,56 @@
-+#ifndef __LINUX_SPINLOCK_TYPES_RAW_H
-+#define __LINUX_SPINLOCK_TYPES_RAW_H
-+
-+#if defined(CONFIG_SMP)
-+# include <asm/spinlock_types.h>
-+#else
-+# include <linux/spinlock_types_up.h>
-+#endif
-+
-+#include <linux/lockdep.h>
-+
-+typedef struct raw_spinlock {
-+ arch_spinlock_t raw_lock;
-+#ifdef CONFIG_GENERIC_LOCKBREAK
-+ unsigned int break_lock;
-+#endif
-+#ifdef CONFIG_DEBUG_SPINLOCK
-+ unsigned int magic, owner_cpu;
-+ void *owner;
-+#endif
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+ struct lockdep_map dep_map;
-+#endif
-+} raw_spinlock_t;
-+
-+#define SPINLOCK_MAGIC 0xdead4ead
-+
-+#define SPINLOCK_OWNER_INIT ((void *)-1L)
-+
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+# define SPIN_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname }
-+#else
-+# define SPIN_DEP_MAP_INIT(lockname)
-+#endif
-+
-+#ifdef CONFIG_DEBUG_SPINLOCK
-+# define SPIN_DEBUG_INIT(lockname) \
-+ .magic = SPINLOCK_MAGIC, \
-+ .owner_cpu = -1, \
-+ .owner = SPINLOCK_OWNER_INIT,
-+#else
-+# define SPIN_DEBUG_INIT(lockname)
-+#endif
-+
-+#define __RAW_SPIN_LOCK_INITIALIZER(lockname) \
-+ { \
-+ .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \
-+ SPIN_DEBUG_INIT(lockname) \
-+ SPIN_DEP_MAP_INIT(lockname) }
-+
-+#define __RAW_SPIN_LOCK_UNLOCKED(lockname) \
-+ (raw_spinlock_t) __RAW_SPIN_LOCK_INITIALIZER(lockname)
-+
-+#define DEFINE_RAW_SPINLOCK(x) raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x)
-+
-+#endif
-diff -Nur linux-4.1.39.orig/include/linux/spinlock_types_rt.h linux-4.1.39/include/linux/spinlock_types_rt.h
---- linux-4.1.39.orig/include/linux/spinlock_types_rt.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/linux/spinlock_types_rt.h 2017-04-18 17:56:30.613397130 +0200
-@@ -0,0 +1,51 @@
-+#ifndef __LINUX_SPINLOCK_TYPES_RT_H
-+#define __LINUX_SPINLOCK_TYPES_RT_H
-+
-+#ifndef __LINUX_SPINLOCK_TYPES_H
-+#error "Do not include directly. Include spinlock_types.h instead"
-+#endif
-+
-+#include <linux/cache.h>
-+
-+/*
-+ * PREEMPT_RT: spinlocks - an RT mutex plus lock-break field:
-+ */
-+typedef struct spinlock {
-+ struct rt_mutex lock;
-+ unsigned int break_lock;
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+ struct lockdep_map dep_map;
-+#endif
-+} spinlock_t;
-+
-+#ifdef CONFIG_DEBUG_RT_MUTEXES
-+# define __RT_SPIN_INITIALIZER(name) \
-+ { \
-+ .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \
-+ .save_state = 1, \
-+ .file = __FILE__, \
-+ .line = __LINE__ , \
-+ }
-+#else
-+# define __RT_SPIN_INITIALIZER(name) \
-+ { \
-+ .wait_lock = __RAW_SPIN_LOCK_UNLOCKED(name.wait_lock), \
-+ .save_state = 1, \
-+ }
-+#endif
-+
-+/*
-+.wait_list = PLIST_HEAD_INIT_RAW((name).lock.wait_list, (name).lock.wait_lock)
-+*/
-+
-+#define __SPIN_LOCK_UNLOCKED(name) \
-+ { .lock = __RT_SPIN_INITIALIZER(name.lock), \
-+ SPIN_DEP_MAP_INIT(name) }
-+
-+#define __DEFINE_SPINLOCK(name) \
-+ spinlock_t name = __SPIN_LOCK_UNLOCKED(name)
-+
-+#define DEFINE_SPINLOCK(name) \
-+ spinlock_t name __cacheline_aligned_in_smp = __SPIN_LOCK_UNLOCKED(name)
-+
-+#endif
-diff -Nur linux-4.1.39.orig/include/linux/srcu.h linux-4.1.39/include/linux/srcu.h
---- linux-4.1.39.orig/include/linux/srcu.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/srcu.h 2017-04-18 17:56:30.613397130 +0200
-@@ -84,10 +84,10 @@
-
- void process_srcu(struct work_struct *work);
-
--#define __SRCU_STRUCT_INIT(name) \
-+#define __SRCU_STRUCT_INIT(name, pcpu_name) \
- { \
- .completed = -300, \
-- .per_cpu_ref = &name##_srcu_array, \
-+ .per_cpu_ref = &pcpu_name, \
- .queue_lock = __SPIN_LOCK_UNLOCKED(name.queue_lock), \
- .running = false, \
- .batch_queue = RCU_BATCH_INIT(name.batch_queue), \
-@@ -104,7 +104,7 @@
- */
- #define __DEFINE_SRCU(name, is_static) \
- static DEFINE_PER_CPU(struct srcu_struct_array, name##_srcu_array);\
-- is_static struct srcu_struct name = __SRCU_STRUCT_INIT(name)
-+ is_static struct srcu_struct name = __SRCU_STRUCT_INIT(name, name##_srcu_array)
- #define DEFINE_SRCU(name) __DEFINE_SRCU(name, /* not static */)
- #define DEFINE_STATIC_SRCU(name) __DEFINE_SRCU(name, static)
-
-diff -Nur linux-4.1.39.orig/include/linux/swap.h linux-4.1.39/include/linux/swap.h
---- linux-4.1.39.orig/include/linux/swap.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/swap.h 2017-04-18 17:56:30.613397130 +0200
-@@ -11,6 +11,7 @@
- #include <linux/fs.h>
- #include <linux/atomic.h>
- #include <linux/page-flags.h>
-+#include <linux/locallock.h>
- #include <asm/page.h>
-
- struct notifier_block;
-@@ -252,7 +253,8 @@
- void *workingset_eviction(struct address_space *mapping, struct page *page);
- bool workingset_refault(void *shadow);
- void workingset_activation(struct page *page);
--extern struct list_lru workingset_shadow_nodes;
-+extern struct list_lru __workingset_shadow_nodes;
-+DECLARE_LOCAL_IRQ_LOCK(workingset_shadow_lock);
-
- static inline unsigned int workingset_node_pages(struct radix_tree_node *node)
- {
-@@ -296,6 +298,7 @@
-
-
- /* linux/mm/swap.c */
-+DECLARE_LOCAL_IRQ_LOCK(swapvec_lock);
- extern void lru_cache_add(struct page *);
- extern void lru_cache_add_anon(struct page *page);
- extern void lru_cache_add_file(struct page *page);
-diff -Nur linux-4.1.39.orig/include/linux/thread_info.h linux-4.1.39/include/linux/thread_info.h
---- linux-4.1.39.orig/include/linux/thread_info.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/thread_info.h 2017-04-18 17:56:30.613397130 +0200
-@@ -102,7 +102,17 @@
- #define test_thread_flag(flag) \
- test_ti_thread_flag(current_thread_info(), flag)
-
--#define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED)
-+#ifdef CONFIG_PREEMPT_LAZY
-+#define tif_need_resched() (test_thread_flag(TIF_NEED_RESCHED) || \
-+ test_thread_flag(TIF_NEED_RESCHED_LAZY))
-+#define tif_need_resched_now() (test_thread_flag(TIF_NEED_RESCHED))
-+#define tif_need_resched_lazy() test_thread_flag(TIF_NEED_RESCHED_LAZY))
-+
-+#else
-+#define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED)
-+#define tif_need_resched_now() test_thread_flag(TIF_NEED_RESCHED)
-+#define tif_need_resched_lazy() 0
-+#endif
-
- #if defined TIF_RESTORE_SIGMASK && !defined HAVE_SET_RESTORE_SIGMASK
- /*
-diff -Nur linux-4.1.39.orig/include/linux/timer.h linux-4.1.39/include/linux/timer.h
---- linux-4.1.39.orig/include/linux/timer.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/timer.h 2017-04-18 17:56:30.613397130 +0200
-@@ -241,7 +241,7 @@
-
- extern int try_to_del_timer_sync(struct timer_list *timer);
-
--#ifdef CONFIG_SMP
-+#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
- extern int del_timer_sync(struct timer_list *timer);
- #else
- # define del_timer_sync(t) del_timer(t)
-diff -Nur linux-4.1.39.orig/include/linux/uaccess.h linux-4.1.39/include/linux/uaccess.h
---- linux-4.1.39.orig/include/linux/uaccess.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/uaccess.h 2017-04-18 17:56:30.613397130 +0200
-@@ -1,21 +1,31 @@
- #ifndef __LINUX_UACCESS_H__
- #define __LINUX_UACCESS_H__
-
--#include <linux/preempt.h>
-+#include <linux/sched.h>
- #include <asm/uaccess.h>
-
-+static __always_inline void pagefault_disabled_inc(void)
-+{
-+ current->pagefault_disabled++;
-+}
-+
-+static __always_inline void pagefault_disabled_dec(void)
-+{
-+ current->pagefault_disabled--;
-+ WARN_ON(current->pagefault_disabled < 0);
-+}
-+
- /*
-- * These routines enable/disable the pagefault handler in that
-- * it will not take any locks and go straight to the fixup table.
-+ * These routines enable/disable the pagefault handler. If disabled, it will
-+ * not take any locks and go straight to the fixup table.
- *
-- * They have great resemblance to the preempt_disable/enable calls
-- * and in fact they are identical; this is because currently there is
-- * no other way to make the pagefault handlers do this. So we do
-- * disable preemption but we don't necessarily care about that.
-+ * User access methods will not sleep when called from a pagefault_disabled()
-+ * environment.
- */
- static inline void pagefault_disable(void)
- {
-- preempt_count_inc();
-+ migrate_disable();
-+ pagefault_disabled_inc();
- /*
- * make sure to have issued the store before a pagefault
- * can hit.
-@@ -25,18 +35,32 @@
-
- static inline void pagefault_enable(void)
- {
--#ifndef CONFIG_PREEMPT
- /*
- * make sure to issue those last loads/stores before enabling
- * the pagefault handler again.
- */
- barrier();
-- preempt_count_dec();
--#else
-- preempt_enable();
--#endif
-+ pagefault_disabled_dec();
-+ migrate_enable();
- }
-
-+/*
-+ * Is the pagefault handler disabled? If so, user access methods will not sleep.
-+ */
-+#define pagefault_disabled() (current->pagefault_disabled != 0)
-+
-+/*
-+ * The pagefault handler is in general disabled by pagefault_disable() or
-+ * when in irq context (via in_atomic()).
-+ *
-+ * This function should only be used by the fault handlers. Other users should
-+ * stick to pagefault_disabled().
-+ * Please NEVER use preempt_disable() to disable the fault handler. With
-+ * !CONFIG_PREEMPT_COUNT, this is like a NOP. So the handler won't be disabled.
-+ * in_atomic() will report different values based on !CONFIG_PREEMPT_COUNT.
-+ */
-+#define faulthandler_disabled() (pagefault_disabled() || in_atomic())
-+
- #ifndef ARCH_HAS_NOCACHE_UACCESS
-
- static inline unsigned long __copy_from_user_inatomic_nocache(void *to,
-diff -Nur linux-4.1.39.orig/include/linux/uprobes.h linux-4.1.39/include/linux/uprobes.h
---- linux-4.1.39.orig/include/linux/uprobes.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/uprobes.h 2017-04-18 17:56:30.613397130 +0200
-@@ -27,6 +27,7 @@
- #include <linux/errno.h>
- #include <linux/rbtree.h>
- #include <linux/types.h>
-+#include <linux/wait.h>
-
- struct vm_area_struct;
- struct mm_struct;
-diff -Nur linux-4.1.39.orig/include/linux/vmstat.h linux-4.1.39/include/linux/vmstat.h
---- linux-4.1.39.orig/include/linux/vmstat.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/vmstat.h 2017-04-18 17:56:30.613397130 +0200
-@@ -33,7 +33,9 @@
- */
- static inline void __count_vm_event(enum vm_event_item item)
- {
-+ preempt_disable_rt();
- raw_cpu_inc(vm_event_states.event[item]);
-+ preempt_enable_rt();
- }
-
- static inline void count_vm_event(enum vm_event_item item)
-@@ -43,7 +45,9 @@
-
- static inline void __count_vm_events(enum vm_event_item item, long delta)
- {
-+ preempt_disable_rt();
- raw_cpu_add(vm_event_states.event[item], delta);
-+ preempt_enable_rt();
- }
-
- static inline void count_vm_events(enum vm_event_item item, long delta)
-diff -Nur linux-4.1.39.orig/include/linux/wait.h linux-4.1.39/include/linux/wait.h
---- linux-4.1.39.orig/include/linux/wait.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/linux/wait.h 2017-04-18 17:56:30.613397130 +0200
-@@ -8,6 +8,7 @@
- #include <linux/spinlock.h>
- #include <asm/current.h>
- #include <uapi/linux/wait.h>
-+#include <linux/atomic.h>
-
- typedef struct __wait_queue wait_queue_t;
- typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int flags, void *key);
-diff -Nur linux-4.1.39.orig/include/linux/wait-simple.h linux-4.1.39/include/linux/wait-simple.h
---- linux-4.1.39.orig/include/linux/wait-simple.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/linux/wait-simple.h 2017-04-18 17:56:30.613397130 +0200
-@@ -0,0 +1,207 @@
-+#ifndef _LINUX_WAIT_SIMPLE_H
-+#define _LINUX_WAIT_SIMPLE_H
-+
-+#include <linux/spinlock.h>
-+#include <linux/list.h>
-+
-+#include <asm/current.h>
-+
-+struct swaiter {
-+ struct task_struct *task;
-+ struct list_head node;
-+};
-+
-+#define DEFINE_SWAITER(name) \
-+ struct swaiter name = { \
-+ .task = current, \
-+ .node = LIST_HEAD_INIT((name).node), \
-+ }
-+
-+struct swait_head {
-+ raw_spinlock_t lock;
-+ struct list_head list;
-+};
-+
-+#define SWAIT_HEAD_INITIALIZER(name) { \
-+ .lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \
-+ .list = LIST_HEAD_INIT((name).list), \
-+ }
-+
-+#define DEFINE_SWAIT_HEAD(name) \
-+ struct swait_head name = SWAIT_HEAD_INITIALIZER(name)
-+
-+extern void __init_swait_head(struct swait_head *h, struct lock_class_key *key);
-+
-+#define init_swait_head(swh) \
-+ do { \
-+ static struct lock_class_key __key; \
-+ \
-+ __init_swait_head((swh), &__key); \
-+ } while (0)
-+
-+/*
-+ * Waiter functions
-+ */
-+extern void swait_prepare_locked(struct swait_head *head, struct swaiter *w);
-+extern void swait_prepare(struct swait_head *head, struct swaiter *w, int state);
-+extern void swait_finish_locked(struct swait_head *head, struct swaiter *w);
-+extern void swait_finish(struct swait_head *head, struct swaiter *w);
-+
-+/* Check whether a head has waiters enqueued */
-+static inline bool swaitqueue_active(struct swait_head *h)
-+{
-+ /* Make sure the condition is visible before checking list_empty() */
-+ smp_mb();
-+ return !list_empty(&h->list);
-+}
-+
-+/*
-+ * Wakeup functions
-+ */
-+extern unsigned int __swait_wake(struct swait_head *head, unsigned int state, unsigned int num);
-+extern unsigned int __swait_wake_locked(struct swait_head *head, unsigned int state, unsigned int num);
-+
-+#define swait_wake(head) __swait_wake(head, TASK_NORMAL, 1)
-+#define swait_wake_interruptible(head) __swait_wake(head, TASK_INTERRUPTIBLE, 1)
-+#define swait_wake_all(head) __swait_wake(head, TASK_NORMAL, 0)
-+#define swait_wake_all_interruptible(head) __swait_wake(head, TASK_INTERRUPTIBLE, 0)
-+
-+/*
-+ * Event API
-+ */
-+#define __swait_event(wq, condition) \
-+do { \
-+ DEFINE_SWAITER(__wait); \
-+ \
-+ for (;;) { \
-+ swait_prepare(&wq, &__wait, TASK_UNINTERRUPTIBLE); \
-+ if (condition) \
-+ break; \
-+ schedule(); \
-+ } \
-+ swait_finish(&wq, &__wait); \
-+} while (0)
-+
-+/**
-+ * swait_event - sleep until a condition gets true
-+ * @wq: the waitqueue to wait on
-+ * @condition: a C expression for the event to wait for
-+ *
-+ * The process is put to sleep (TASK_UNINTERRUPTIBLE) until the
-+ * @condition evaluates to true. The @condition is checked each time
-+ * the waitqueue @wq is woken up.
-+ *
-+ * wake_up() has to be called after changing any variable that could
-+ * change the result of the wait condition.
-+ */
-+#define swait_event(wq, condition) \
-+do { \
-+ if (condition) \
-+ break; \
-+ __swait_event(wq, condition); \
-+} while (0)
-+
-+#define __swait_event_interruptible(wq, condition, ret) \
-+do { \
-+ DEFINE_SWAITER(__wait); \
-+ \
-+ for (;;) { \
-+ swait_prepare(&wq, &__wait, TASK_INTERRUPTIBLE); \
-+ if (condition) \
-+ break; \
-+ if (signal_pending(current)) { \
-+ ret = -ERESTARTSYS; \
-+ break; \
-+ } \
-+ schedule(); \
-+ } \
-+ swait_finish(&wq, &__wait); \
-+} while (0)
-+
-+#define __swait_event_interruptible_timeout(wq, condition, ret) \
-+do { \
-+ DEFINE_SWAITER(__wait); \
-+ \
-+ for (;;) { \
-+ swait_prepare(&wq, &__wait, TASK_INTERRUPTIBLE); \
-+ if (condition) \
-+ break; \
-+ if (signal_pending(current)) { \
-+ ret = -ERESTARTSYS; \
-+ break; \
-+ } \
-+ ret = schedule_timeout(ret); \
-+ if (!ret) \
-+ break; \
-+ } \
-+ swait_finish(&wq, &__wait); \
-+} while (0)
-+
-+/**
-+ * swait_event_interruptible - sleep until a condition gets true
-+ * @wq: the waitqueue to wait on
-+ * @condition: a C expression for the event to wait for
-+ *
-+ * The process is put to sleep (TASK_INTERRUPTIBLE) until the
-+ * @condition evaluates to true. The @condition is checked each time
-+ * the waitqueue @wq is woken up.
-+ *
-+ * wake_up() has to be called after changing any variable that could
-+ * change the result of the wait condition.
-+ */
-+#define swait_event_interruptible(wq, condition) \
-+({ \
-+ int __ret = 0; \
-+ if (!(condition)) \
-+ __swait_event_interruptible(wq, condition, __ret); \
-+ __ret; \
-+})
-+
-+#define swait_event_interruptible_timeout(wq, condition, timeout) \
-+({ \
-+ int __ret = timeout; \
-+ if (!(condition)) \
-+ __swait_event_interruptible_timeout(wq, condition, __ret); \
-+ __ret; \
-+})
-+
-+#define __swait_event_timeout(wq, condition, ret) \
-+do { \
-+ DEFINE_SWAITER(__wait); \
-+ \
-+ for (;;) { \
-+ swait_prepare(&wq, &__wait, TASK_UNINTERRUPTIBLE); \
-+ if (condition) \
-+ break; \
-+ ret = schedule_timeout(ret); \
-+ if (!ret) \
-+ break; \
-+ } \
-+ swait_finish(&wq, &__wait); \
-+} while (0)
-+
-+/**
-+ * swait_event_timeout - sleep until a condition gets true or a timeout elapses
-+ * @wq: the waitqueue to wait on
-+ * @condition: a C expression for the event to wait for
-+ * @timeout: timeout, in jiffies
-+ *
-+ * The process is put to sleep (TASK_UNINTERRUPTIBLE) until the
-+ * @condition evaluates to true. The @condition is checked each time
-+ * the waitqueue @wq is woken up.
-+ *
-+ * wake_up() has to be called after changing any variable that could
-+ * change the result of the wait condition.
-+ *
-+ * The function returns 0 if the @timeout elapsed, and the remaining
-+ * jiffies if the condition evaluated to true before the timeout elapsed.
-+ */
-+#define swait_event_timeout(wq, condition, timeout) \
-+({ \
-+ long __ret = timeout; \
-+ if (!(condition)) \
-+ __swait_event_timeout(wq, condition, __ret); \
-+ __ret; \
-+})
-+
-+#endif
-diff -Nur linux-4.1.39.orig/include/linux/work-simple.h linux-4.1.39/include/linux/work-simple.h
---- linux-4.1.39.orig/include/linux/work-simple.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/linux/work-simple.h 2017-04-18 17:56:30.613397130 +0200
-@@ -0,0 +1,24 @@
-+#ifndef _LINUX_SWORK_H
-+#define _LINUX_SWORK_H
-+
-+#include <linux/list.h>
-+
-+struct swork_event {
-+ struct list_head item;
-+ unsigned long flags;
-+ void (*func)(struct swork_event *);
-+};
-+
-+static inline void INIT_SWORK(struct swork_event *event,
-+ void (*func)(struct swork_event *))
-+{
-+ event->flags = 0;
-+ event->func = func;
-+}
-+
-+bool swork_queue(struct swork_event *sev);
-+
-+int swork_get(void);
-+void swork_put(void);
-+
-+#endif /* _LINUX_SWORK_H */
-diff -Nur linux-4.1.39.orig/include/net/dst.h linux-4.1.39/include/net/dst.h
---- linux-4.1.39.orig/include/net/dst.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/net/dst.h 2017-04-18 17:56:30.613397130 +0200
-@@ -436,7 +436,7 @@
- static inline int dst_neigh_output(struct dst_entry *dst, struct neighbour *n,
- struct sk_buff *skb)
- {
-- const struct hh_cache *hh;
-+ struct hh_cache *hh;
-
- if (dst->pending_confirm) {
- unsigned long now = jiffies;
-diff -Nur linux-4.1.39.orig/include/net/neighbour.h linux-4.1.39/include/net/neighbour.h
---- linux-4.1.39.orig/include/net/neighbour.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/net/neighbour.h 2017-04-18 17:56:30.613397130 +0200
-@@ -445,7 +445,7 @@
- }
- #endif
-
--static inline int neigh_hh_output(const struct hh_cache *hh, struct sk_buff *skb)
-+static inline int neigh_hh_output(struct hh_cache *hh, struct sk_buff *skb)
- {
- unsigned int seq;
- int hh_len;
-@@ -500,7 +500,7 @@
-
- #define NEIGH_CB(skb) ((struct neighbour_cb *)(skb)->cb)
-
--static inline void neigh_ha_snapshot(char *dst, const struct neighbour *n,
-+static inline void neigh_ha_snapshot(char *dst, struct neighbour *n,
- const struct net_device *dev)
- {
- unsigned int seq;
-diff -Nur linux-4.1.39.orig/include/net/netns/ipv4.h linux-4.1.39/include/net/netns/ipv4.h
---- linux-4.1.39.orig/include/net/netns/ipv4.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/net/netns/ipv4.h 2017-04-18 17:56:30.613397130 +0200
-@@ -69,6 +69,7 @@
-
- int sysctl_icmp_echo_ignore_all;
- int sysctl_icmp_echo_ignore_broadcasts;
-+ int sysctl_icmp_echo_sysrq;
- int sysctl_icmp_ignore_bogus_error_responses;
- int sysctl_icmp_ratelimit;
- int sysctl_icmp_ratemask;
-diff -Nur linux-4.1.39.orig/include/trace/events/hist.h linux-4.1.39/include/trace/events/hist.h
---- linux-4.1.39.orig/include/trace/events/hist.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/trace/events/hist.h 2017-04-18 17:56:30.613397130 +0200
-@@ -0,0 +1,74 @@
-+#undef TRACE_SYSTEM
-+#define TRACE_SYSTEM hist
-+
-+#if !defined(_TRACE_HIST_H) || defined(TRACE_HEADER_MULTI_READ)
-+#define _TRACE_HIST_H
-+
-+#include "latency_hist.h"
-+#include <linux/tracepoint.h>
-+
-+#if !defined(CONFIG_PREEMPT_OFF_HIST) && !defined(CONFIG_INTERRUPT_OFF_HIST)
-+#define trace_preemptirqsoff_hist(a, b)
-+#define trace_preemptirqsoff_hist_rcuidle(a, b)
-+#else
-+TRACE_EVENT(preemptirqsoff_hist,
-+
-+ TP_PROTO(int reason, int starthist),
-+
-+ TP_ARGS(reason, starthist),
-+
-+ TP_STRUCT__entry(
-+ __field(int, reason)
-+ __field(int, starthist)
-+ ),
-+
-+ TP_fast_assign(
-+ __entry->reason = reason;
-+ __entry->starthist = starthist;
-+ ),
-+
-+ TP_printk("reason=%s starthist=%s", getaction(__entry->reason),
-+ __entry->starthist ? "start" : "stop")
-+);
-+#endif
-+
-+#ifndef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+#define trace_hrtimer_interrupt(a, b, c, d)
-+#define trace_hrtimer_interrupt_rcuidle(a, b, c, d)
-+#else
-+TRACE_EVENT(hrtimer_interrupt,
-+
-+ TP_PROTO(int cpu, long long offset, struct task_struct *curr,
-+ struct task_struct *task),
-+
-+ TP_ARGS(cpu, offset, curr, task),
-+
-+ TP_STRUCT__entry(
-+ __field(int, cpu)
-+ __field(long long, offset)
-+ __array(char, ccomm, TASK_COMM_LEN)
-+ __field(int, cprio)
-+ __array(char, tcomm, TASK_COMM_LEN)
-+ __field(int, tprio)
-+ ),
-+
-+ TP_fast_assign(
-+ __entry->cpu = cpu;
-+ __entry->offset = offset;
-+ memcpy(__entry->ccomm, curr->comm, TASK_COMM_LEN);
-+ __entry->cprio = curr->prio;
-+ memcpy(__entry->tcomm, task != NULL ? task->comm : "<none>",
-+ task != NULL ? TASK_COMM_LEN : 7);
-+ __entry->tprio = task != NULL ? task->prio : -1;
-+ ),
-+
-+ TP_printk("cpu=%d offset=%lld curr=%s[%d] thread=%s[%d]",
-+ __entry->cpu, __entry->offset, __entry->ccomm,
-+ __entry->cprio, __entry->tcomm, __entry->tprio)
-+);
-+#endif
-+
-+#endif /* _TRACE_HIST_H */
-+
-+/* This part must be outside protection */
-+#include <trace/define_trace.h>
-diff -Nur linux-4.1.39.orig/include/trace/events/latency_hist.h linux-4.1.39/include/trace/events/latency_hist.h
---- linux-4.1.39.orig/include/trace/events/latency_hist.h 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/include/trace/events/latency_hist.h 2017-04-18 17:56:30.613397130 +0200
-@@ -0,0 +1,29 @@
-+#ifndef _LATENCY_HIST_H
-+#define _LATENCY_HIST_H
-+
-+enum hist_action {
-+ IRQS_ON,
-+ PREEMPT_ON,
-+ TRACE_STOP,
-+ IRQS_OFF,
-+ PREEMPT_OFF,
-+ TRACE_START,
-+};
-+
-+static char *actions[] = {
-+ "IRQS_ON",
-+ "PREEMPT_ON",
-+ "TRACE_STOP",
-+ "IRQS_OFF",
-+ "PREEMPT_OFF",
-+ "TRACE_START",
-+};
-+
-+static inline char *getaction(int action)
-+{
-+ if (action >= 0 && action <= sizeof(actions)/sizeof(actions[0]))
-+ return actions[action];
-+ return "unknown";
-+}
-+
-+#endif /* _LATENCY_HIST_H */
-diff -Nur linux-4.1.39.orig/include/trace/events/sched.h linux-4.1.39/include/trace/events/sched.h
---- linux-4.1.39.orig/include/trace/events/sched.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/include/trace/events/sched.h 2017-04-18 17:56:30.613397130 +0200
-@@ -55,9 +55,9 @@
- */
- DECLARE_EVENT_CLASS(sched_wakeup_template,
-
-- TP_PROTO(struct task_struct *p, int success),
-+ TP_PROTO(struct task_struct *p),
-
-- TP_ARGS(__perf_task(p), success),
-+ TP_ARGS(__perf_task(p)),
-
- TP_STRUCT__entry(
- __array( char, comm, TASK_COMM_LEN )
-@@ -71,25 +71,37 @@
- memcpy(__entry->comm, p->comm, TASK_COMM_LEN);
- __entry->pid = p->pid;
- __entry->prio = p->prio;
-- __entry->success = success;
-+ __entry->success = 1; /* rudiment, kill when possible */
- __entry->target_cpu = task_cpu(p);
- ),
-
-- TP_printk("comm=%s pid=%d prio=%d success=%d target_cpu=%03d",
-+ TP_printk("comm=%s pid=%d prio=%d target_cpu=%03d",
- __entry->comm, __entry->pid, __entry->prio,
-- __entry->success, __entry->target_cpu)
-+ __entry->target_cpu)
- );
-
-+/*
-+ * Tracepoint called when waking a task; this tracepoint is guaranteed to be
-+ * called from the waking context.
-+ */
-+DEFINE_EVENT(sched_wakeup_template, sched_waking,
-+ TP_PROTO(struct task_struct *p),
-+ TP_ARGS(p));
-+
-+/*
-+ * Tracepoint called when the task is actually woken; p->state == TASK_RUNNNG.
-+ * It it not always called from the waking context.
-+ */
- DEFINE_EVENT(sched_wakeup_template, sched_wakeup,
-- TP_PROTO(struct task_struct *p, int success),
-- TP_ARGS(p, success));
-+ TP_PROTO(struct task_struct *p),
-+ TP_ARGS(p));
-
- /*
- * Tracepoint for waking up a new task:
- */
- DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new,
-- TP_PROTO(struct task_struct *p, int success),
-- TP_ARGS(p, success));
-+ TP_PROTO(struct task_struct *p),
-+ TP_ARGS(p));
-
- #ifdef CREATE_TRACE_POINTS
- static inline long __trace_sched_switch_state(struct task_struct *p)
-diff -Nur linux-4.1.39.orig/init/Kconfig linux-4.1.39/init/Kconfig
---- linux-4.1.39.orig/init/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/init/Kconfig 2017-04-18 17:56:30.613397130 +0200
-@@ -637,7 +637,7 @@
-
- config RCU_FAST_NO_HZ
- bool "Accelerate last non-dyntick-idle CPU's grace periods"
-- depends on NO_HZ_COMMON && SMP
-+ depends on NO_HZ_COMMON && SMP && !PREEMPT_RT_FULL
- default n
- help
- This option permits CPUs to enter dynticks-idle state even if
-@@ -664,7 +664,7 @@
- config RCU_BOOST
- bool "Enable RCU priority boosting"
- depends on RT_MUTEXES && PREEMPT_RCU
-- default n
-+ default y if PREEMPT_RT_FULL
- help
- This option boosts the priority of preempted RCU readers that
- block the current preemptible RCU grace period for too long.
-@@ -1101,6 +1101,7 @@
- config RT_GROUP_SCHED
- bool "Group scheduling for SCHED_RR/FIFO"
- depends on CGROUP_SCHED
-+ depends on !PREEMPT_RT_FULL
- default n
- help
- This feature lets you explicitly allocate real CPU bandwidth
-@@ -1688,6 +1689,7 @@
-
- config SLAB
- bool "SLAB"
-+ depends on !PREEMPT_RT_FULL
- help
- The regular slab allocator that is established and known to work
- well in all environments. It organizes cache hot objects in
-@@ -1706,6 +1708,7 @@
- config SLOB
- depends on EXPERT
- bool "SLOB (Simple Allocator)"
-+ depends on !PREEMPT_RT_FULL
- help
- SLOB replaces the stock allocator with a drastically simpler
- allocator. SLOB is generally more space efficient but
-@@ -1715,7 +1718,7 @@
-
- config SLUB_CPU_PARTIAL
- default y
-- depends on SLUB && SMP
-+ depends on SLUB && SMP && !PREEMPT_RT_FULL
- bool "SLUB per cpu partial cache"
- help
- Per cpu partial caches accellerate objects allocation and freeing
-diff -Nur linux-4.1.39.orig/init/main.c linux-4.1.39/init/main.c
---- linux-4.1.39.orig/init/main.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/init/main.c 2017-04-18 17:56:30.617397286 +0200
-@@ -525,6 +525,7 @@
- setup_command_line(command_line);
- setup_nr_cpu_ids();
- setup_per_cpu_areas();
-+ softirq_early_init();
- smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
-
- build_all_zonelists(NULL, NULL);
-diff -Nur linux-4.1.39.orig/init/Makefile linux-4.1.39/init/Makefile
---- linux-4.1.39.orig/init/Makefile 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/init/Makefile 2017-04-18 17:56:30.613397130 +0200
-@@ -33,4 +33,4 @@
- include/generated/compile.h: FORCE
- @$($(quiet)chk_compile.h)
- $(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
-- "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)"
-+ "$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CONFIG_PREEMPT_RT_FULL)" "$(CC) $(KBUILD_CFLAGS)"
-diff -Nur linux-4.1.39.orig/ipc/mqueue.c linux-4.1.39/ipc/mqueue.c
---- linux-4.1.39.orig/ipc/mqueue.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/ipc/mqueue.c 2017-04-18 17:56:30.617397286 +0200
-@@ -47,8 +47,7 @@
- #define RECV 1
-
- #define STATE_NONE 0
--#define STATE_PENDING 1
--#define STATE_READY 2
-+#define STATE_READY 1
-
- struct posix_msg_tree_node {
- struct rb_node rb_node;
-@@ -568,15 +567,12 @@
- wq_add(info, sr, ewp);
-
- for (;;) {
-- set_current_state(TASK_INTERRUPTIBLE);
-+ __set_current_state(TASK_INTERRUPTIBLE);
-
- spin_unlock(&info->lock);
- time = schedule_hrtimeout_range_clock(timeout, 0,
- HRTIMER_MODE_ABS, CLOCK_REALTIME);
-
-- while (ewp->state == STATE_PENDING)
-- cpu_relax();
--
- if (ewp->state == STATE_READY) {
- retval = 0;
- goto out;
-@@ -904,11 +900,15 @@
- * list of waiting receivers. A sender checks that list before adding the new
- * message into the message array. If there is a waiting receiver, then it
- * bypasses the message array and directly hands the message over to the
-- * receiver.
-- * The receiver accepts the message and returns without grabbing the queue
-- * spinlock. Therefore an intermediate STATE_PENDING state and memory barriers
-- * are necessary. The same algorithm is used for sysv semaphores, see
-- * ipc/sem.c for more details.
-+ * receiver. The receiver accepts the message and returns without grabbing the
-+ * queue spinlock:
-+ *
-+ * - Set pointer to message.
-+ * - Queue the receiver task for later wakeup (without the info->lock).
-+ * - Update its state to STATE_READY. Now the receiver can continue.
-+ * - Wake up the process after the lock is dropped. Should the process wake up
-+ * before this wakeup (due to a timeout or a signal) it will either see
-+ * STATE_READY and continue or acquire the lock to check the state again.
- *
- * The same algorithm is used for senders.
- */
-@@ -916,21 +916,29 @@
- /* pipelined_send() - send a message directly to the task waiting in
- * sys_mq_timedreceive() (without inserting message into a queue).
- */
--static inline void pipelined_send(struct mqueue_inode_info *info,
-+static inline void pipelined_send(struct wake_q_head *wake_q,
-+ struct mqueue_inode_info *info,
- struct msg_msg *message,
- struct ext_wait_queue *receiver)
- {
- receiver->msg = message;
- list_del(&receiver->list);
-- receiver->state = STATE_PENDING;
-- wake_up_process(receiver->task);
-- smp_wmb();
-+ wake_q_add(wake_q, receiver->task);
-+ /*
-+ * Rely on the implicit cmpxchg barrier from wake_q_add such
-+ * that we can ensure that updating receiver->state is the last
-+ * write operation: As once set, the receiver can continue,
-+ * and if we don't have the reference count from the wake_q,
-+ * yet, at that point we can later have a use-after-free
-+ * condition and bogus wakeup.
-+ */
- receiver->state = STATE_READY;
- }
-
- /* pipelined_receive() - if there is task waiting in sys_mq_timedsend()
- * gets its message and put to the queue (we have one free place for sure). */
--static inline void pipelined_receive(struct mqueue_inode_info *info)
-+static inline void pipelined_receive(struct wake_q_head *wake_q,
-+ struct mqueue_inode_info *info)
- {
- struct ext_wait_queue *sender = wq_get_first_waiter(info, SEND);
-
-@@ -941,10 +949,9 @@
- }
- if (msg_insert(sender->msg, info))
- return;
-+
- list_del(&sender->list);
-- sender->state = STATE_PENDING;
-- wake_up_process(sender->task);
-- smp_wmb();
-+ wake_q_add(wake_q, sender->task);
- sender->state = STATE_READY;
- }
-
-@@ -962,6 +969,7 @@
- struct timespec ts;
- struct posix_msg_tree_node *new_leaf = NULL;
- int ret = 0;
-+ WAKE_Q(wake_q);
-
- if (u_abs_timeout) {
- int res = prepare_timeout(u_abs_timeout, &expires, &ts);
-@@ -1045,7 +1053,7 @@
- } else {
- receiver = wq_get_first_waiter(info, RECV);
- if (receiver) {
-- pipelined_send(info, msg_ptr, receiver);
-+ pipelined_send(&wake_q, info, msg_ptr, receiver);
- } else {
- /* adds message to the queue */
- ret = msg_insert(msg_ptr, info);
-@@ -1058,6 +1066,7 @@
- }
- out_unlock:
- spin_unlock(&info->lock);
-+ wake_up_q(&wake_q);
- out_free:
- if (ret)
- free_msg(msg_ptr);
-@@ -1144,14 +1153,17 @@
- msg_ptr = wait.msg;
- }
- } else {
-+ WAKE_Q(wake_q);
-+
- msg_ptr = msg_get(info);
-
- inode->i_atime = inode->i_mtime = inode->i_ctime =
- CURRENT_TIME;
-
- /* There is now free space in queue. */
-- pipelined_receive(info);
-+ pipelined_receive(&wake_q, info);
- spin_unlock(&info->lock);
-+ wake_up_q(&wake_q);
- ret = 0;
- }
- if (ret == 0) {
-diff -Nur linux-4.1.39.orig/ipc/msg.c linux-4.1.39/ipc/msg.c
---- linux-4.1.39.orig/ipc/msg.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/ipc/msg.c 2017-04-18 17:56:30.617397286 +0200
-@@ -188,6 +188,12 @@
- struct msg_receiver *msr, *t;
-
- list_for_each_entry_safe(msr, t, &msq->q_receivers, r_list) {
-+ /*
-+ * Make sure that the wakeup doesnt preempt
-+ * this CPU prematurely. (on PREEMPT_RT)
-+ */
-+ preempt_disable_rt();
-+
- msr->r_msg = NULL; /* initialize expunge ordering */
- wake_up_process(msr->r_tsk);
- /*
-@@ -198,6 +204,8 @@
- */
- smp_mb();
- msr->r_msg = ERR_PTR(res);
-+
-+ preempt_enable_rt();
- }
- }
-
-@@ -574,6 +582,11 @@
- if (testmsg(msg, msr->r_msgtype, msr->r_mode) &&
- !security_msg_queue_msgrcv(msq, msg, msr->r_tsk,
- msr->r_msgtype, msr->r_mode)) {
-+ /*
-+ * Make sure that the wakeup doesnt preempt
-+ * this CPU prematurely. (on PREEMPT_RT)
-+ */
-+ preempt_disable_rt();
-
- list_del(&msr->r_list);
- if (msr->r_maxsize < msg->m_ts) {
-@@ -595,12 +608,13 @@
- */
- smp_mb();
- msr->r_msg = msg;
-+ preempt_enable_rt();
-
- return 1;
- }
-+ preempt_enable_rt();
- }
- }
--
- return 0;
- }
-
-diff -Nur linux-4.1.39.orig/ipc/sem.c linux-4.1.39/ipc/sem.c
---- linux-4.1.39.orig/ipc/sem.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/ipc/sem.c 2017-04-18 17:56:30.617397286 +0200
-@@ -690,6 +690,13 @@
- static void wake_up_sem_queue_prepare(struct list_head *pt,
- struct sem_queue *q, int error)
- {
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ struct task_struct *p = q->sleeper;
-+ get_task_struct(p);
-+ q->status = error;
-+ wake_up_process(p);
-+ put_task_struct(p);
-+#else
- if (list_empty(pt)) {
- /*
- * Hold preempt off so that we don't get preempted and have the
-@@ -701,6 +708,7 @@
- q->pid = error;
-
- list_add_tail(&q->list, pt);
-+#endif
- }
-
- /**
-@@ -714,6 +722,7 @@
- */
- static void wake_up_sem_queue_do(struct list_head *pt)
- {
-+#ifndef CONFIG_PREEMPT_RT_BASE
- struct sem_queue *q, *t;
- int did_something;
-
-@@ -726,6 +735,7 @@
- }
- if (did_something)
- preempt_enable();
-+#endif
- }
-
- static void unlink_queue(struct sem_array *sma, struct sem_queue *q)
-diff -Nur linux-4.1.39.orig/kernel/bpf/hashtab.c linux-4.1.39/kernel/bpf/hashtab.c
---- linux-4.1.39.orig/kernel/bpf/hashtab.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/bpf/hashtab.c 2017-04-18 17:56:30.617397286 +0200
-@@ -17,7 +17,7 @@
- struct bpf_htab {
- struct bpf_map map;
- struct hlist_head *buckets;
-- spinlock_t lock;
-+ raw_spinlock_t lock;
- u32 count; /* number of elements in this hashtable */
- u32 n_buckets; /* number of hash buckets */
- u32 elem_size; /* size of each element in bytes */
-@@ -82,7 +82,7 @@
- for (i = 0; i < htab->n_buckets; i++)
- INIT_HLIST_HEAD(&htab->buckets[i]);
-
-- spin_lock_init(&htab->lock);
-+ raw_spin_lock_init(&htab->lock);
- htab->count = 0;
-
- htab->elem_size = sizeof(struct htab_elem) +
-@@ -230,7 +230,7 @@
- l_new->hash = htab_map_hash(l_new->key, key_size);
-
- /* bpf_map_update_elem() can be called in_irq() */
-- spin_lock_irqsave(&htab->lock, flags);
-+ raw_spin_lock_irqsave(&htab->lock, flags);
-
- head = select_bucket(htab, l_new->hash);
-
-@@ -266,11 +266,11 @@
- } else {
- htab->count++;
- }
-- spin_unlock_irqrestore(&htab->lock, flags);
-+ raw_spin_unlock_irqrestore(&htab->lock, flags);
-
- return 0;
- err:
-- spin_unlock_irqrestore(&htab->lock, flags);
-+ raw_spin_unlock_irqrestore(&htab->lock, flags);
- kfree(l_new);
- return ret;
- }
-@@ -291,7 +291,7 @@
-
- hash = htab_map_hash(key, key_size);
-
-- spin_lock_irqsave(&htab->lock, flags);
-+ raw_spin_lock_irqsave(&htab->lock, flags);
-
- head = select_bucket(htab, hash);
-
-@@ -304,7 +304,7 @@
- ret = 0;
- }
-
-- spin_unlock_irqrestore(&htab->lock, flags);
-+ raw_spin_unlock_irqrestore(&htab->lock, flags);
- return ret;
- }
-
-diff -Nur linux-4.1.39.orig/kernel/cgroup.c linux-4.1.39/kernel/cgroup.c
---- linux-4.1.39.orig/kernel/cgroup.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/cgroup.c 2017-04-18 17:56:30.617397286 +0200
-@@ -4423,10 +4423,10 @@
- queue_work(cgroup_destroy_wq, &css->destroy_work);
- }
-
--static void css_release_work_fn(struct work_struct *work)
-+static void css_release_work_fn(struct swork_event *sev)
- {
- struct cgroup_subsys_state *css =
-- container_of(work, struct cgroup_subsys_state, destroy_work);
-+ container_of(sev, struct cgroup_subsys_state, destroy_swork);
- struct cgroup_subsys *ss = css->ss;
- struct cgroup *cgrp = css->cgroup;
-
-@@ -4465,8 +4465,8 @@
- struct cgroup_subsys_state *css =
- container_of(ref, struct cgroup_subsys_state, refcnt);
-
-- INIT_WORK(&css->destroy_work, css_release_work_fn);
-- queue_work(cgroup_destroy_wq, &css->destroy_work);
-+ INIT_SWORK(&css->destroy_swork, css_release_work_fn);
-+ swork_queue(&css->destroy_swork);
- }
-
- static void init_and_link_css(struct cgroup_subsys_state *css,
-@@ -5080,6 +5080,7 @@
- */
- cgroup_destroy_wq = alloc_workqueue("cgroup_destroy", 0, 1);
- BUG_ON(!cgroup_destroy_wq);
-+ BUG_ON(swork_get());
-
- /*
- * Used to destroy pidlists and separate to serve as flush domain.
-diff -Nur linux-4.1.39.orig/kernel/cpu.c linux-4.1.39/kernel/cpu.c
---- linux-4.1.39.orig/kernel/cpu.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/cpu.c 2017-04-18 17:56:30.617397286 +0200
-@@ -74,8 +74,8 @@
- #endif
- } cpu_hotplug = {
- .active_writer = NULL,
-- .wq = __WAIT_QUEUE_HEAD_INITIALIZER(cpu_hotplug.wq),
- .lock = __MUTEX_INITIALIZER(cpu_hotplug.lock),
-+ .wq = __WAIT_QUEUE_HEAD_INITIALIZER(cpu_hotplug.wq),
- #ifdef CONFIG_DEBUG_LOCK_ALLOC
- .dep_map = {.name = "cpu_hotplug.lock" },
- #endif
-@@ -88,6 +88,289 @@
- #define cpuhp_lock_acquire() lock_map_acquire(&cpu_hotplug.dep_map)
- #define cpuhp_lock_release() lock_map_release(&cpu_hotplug.dep_map)
-
-+/**
-+ * hotplug_pcp - per cpu hotplug descriptor
-+ * @unplug: set when pin_current_cpu() needs to sync tasks
-+ * @sync_tsk: the task that waits for tasks to finish pinned sections
-+ * @refcount: counter of tasks in pinned sections
-+ * @grab_lock: set when the tasks entering pinned sections should wait
-+ * @synced: notifier for @sync_tsk to tell cpu_down it's finished
-+ * @mutex: the mutex to make tasks wait (used when @grab_lock is true)
-+ * @mutex_init: zero if the mutex hasn't been initialized yet.
-+ *
-+ * Although @unplug and @sync_tsk may point to the same task, the @unplug
-+ * is used as a flag and still exists after @sync_tsk has exited and
-+ * @sync_tsk set to NULL.
-+ */
-+struct hotplug_pcp {
-+ struct task_struct *unplug;
-+ struct task_struct *sync_tsk;
-+ int refcount;
-+ int grab_lock;
-+ struct completion synced;
-+ struct completion unplug_wait;
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ /*
-+ * Note, on PREEMPT_RT, the hotplug lock must save the state of
-+ * the task, otherwise the mutex will cause the task to fail
-+ * to sleep when required. (Because it's called from migrate_disable())
-+ *
-+ * The spinlock_t on PREEMPT_RT is a mutex that saves the task's
-+ * state.
-+ */
-+ spinlock_t lock;
-+#else
-+ struct mutex mutex;
-+#endif
-+ int mutex_init;
-+};
-+
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+# define hotplug_lock(hp) rt_spin_lock(&(hp)->lock)
-+# define hotplug_unlock(hp) rt_spin_unlock(&(hp)->lock)
-+#else
-+# define hotplug_lock(hp) mutex_lock(&(hp)->mutex)
-+# define hotplug_unlock(hp) mutex_unlock(&(hp)->mutex)
-+#endif
-+
-+static DEFINE_PER_CPU(struct hotplug_pcp, hotplug_pcp);
-+
-+/**
-+ * pin_current_cpu - Prevent the current cpu from being unplugged
-+ *
-+ * Lightweight version of get_online_cpus() to prevent cpu from being
-+ * unplugged when code runs in a migration disabled region.
-+ *
-+ * Must be called with preemption disabled (preempt_count = 1)!
-+ */
-+void pin_current_cpu(void)
-+{
-+ struct hotplug_pcp *hp;
-+ int force = 0;
-+
-+retry:
-+ hp = this_cpu_ptr(&hotplug_pcp);
-+
-+ if (!hp->unplug || hp->refcount || force || preempt_count() > 1 ||
-+ hp->unplug == current) {
-+ hp->refcount++;
-+ return;
-+ }
-+ if (hp->grab_lock) {
-+ preempt_enable();
-+ hotplug_lock(hp);
-+ hotplug_unlock(hp);
-+ } else {
-+ preempt_enable();
-+ /*
-+ * Try to push this task off of this CPU.
-+ */
-+ if (!migrate_me()) {
-+ preempt_disable();
-+ hp = this_cpu_ptr(&hotplug_pcp);
-+ if (!hp->grab_lock) {
-+ /*
-+ * Just let it continue it's already pinned
-+ * or about to sleep.
-+ */
-+ force = 1;
-+ goto retry;
-+ }
-+ preempt_enable();
-+ }
-+ }
-+ preempt_disable();
-+ goto retry;
-+}
-+
-+/**
-+ * unpin_current_cpu - Allow unplug of current cpu
-+ *
-+ * Must be called with preemption or interrupts disabled!
-+ */
-+void unpin_current_cpu(void)
-+{
-+ struct hotplug_pcp *hp = this_cpu_ptr(&hotplug_pcp);
-+
-+ WARN_ON(hp->refcount <= 0);
-+
-+ /* This is safe. sync_unplug_thread is pinned to this cpu */
-+ if (!--hp->refcount && hp->unplug && hp->unplug != current)
-+ wake_up_process(hp->unplug);
-+}
-+
-+static void wait_for_pinned_cpus(struct hotplug_pcp *hp)
-+{
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ while (hp->refcount) {
-+ schedule_preempt_disabled();
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ }
-+}
-+
-+static int sync_unplug_thread(void *data)
-+{
-+ struct hotplug_pcp *hp = data;
-+
-+ wait_for_completion(&hp->unplug_wait);
-+ preempt_disable();
-+ hp->unplug = current;
-+ wait_for_pinned_cpus(hp);
-+
-+ /*
-+ * This thread will synchronize the cpu_down() with threads
-+ * that have pinned the CPU. When the pinned CPU count reaches
-+ * zero, we inform the cpu_down code to continue to the next step.
-+ */
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ preempt_enable();
-+ complete(&hp->synced);
-+
-+ /*
-+ * If all succeeds, the next step will need tasks to wait till
-+ * the CPU is offline before continuing. To do this, the grab_lock
-+ * is set and tasks going into pin_current_cpu() will block on the
-+ * mutex. But we still need to wait for those that are already in
-+ * pinned CPU sections. If the cpu_down() failed, the kthread_should_stop()
-+ * will kick this thread out.
-+ */
-+ while (!hp->grab_lock && !kthread_should_stop()) {
-+ schedule();
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ }
-+
-+ /* Make sure grab_lock is seen before we see a stale completion */
-+ smp_mb();
-+
-+ /*
-+ * Now just before cpu_down() enters stop machine, we need to make
-+ * sure all tasks that are in pinned CPU sections are out, and new
-+ * tasks will now grab the lock, keeping them from entering pinned
-+ * CPU sections.
-+ */
-+ if (!kthread_should_stop()) {
-+ preempt_disable();
-+ wait_for_pinned_cpus(hp);
-+ preempt_enable();
-+ complete(&hp->synced);
-+ }
-+
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ while (!kthread_should_stop()) {
-+ schedule();
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ }
-+ set_current_state(TASK_RUNNING);
-+
-+ /*
-+ * Force this thread off this CPU as it's going down and
-+ * we don't want any more work on this CPU.
-+ */
-+ current->flags &= ~PF_NO_SETAFFINITY;
-+ set_cpus_allowed_ptr(current, cpu_present_mask);
-+ migrate_me();
-+ return 0;
-+}
-+
-+static void __cpu_unplug_sync(struct hotplug_pcp *hp)
-+{
-+ wake_up_process(hp->sync_tsk);
-+ wait_for_completion(&hp->synced);
-+}
-+
-+static void __cpu_unplug_wait(unsigned int cpu)
-+{
-+ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu);
-+
-+ complete(&hp->unplug_wait);
-+ wait_for_completion(&hp->synced);
-+}
-+
-+/*
-+ * Start the sync_unplug_thread on the target cpu and wait for it to
-+ * complete.
-+ */
-+static int cpu_unplug_begin(unsigned int cpu)
-+{
-+ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu);
-+ int err;
-+
-+ /* Protected by cpu_hotplug.lock */
-+ if (!hp->mutex_init) {
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ spin_lock_init(&hp->lock);
-+#else
-+ mutex_init(&hp->mutex);
-+#endif
-+ hp->mutex_init = 1;
-+ }
-+
-+ /* Inform the scheduler to migrate tasks off this CPU */
-+ tell_sched_cpu_down_begin(cpu);
-+
-+ init_completion(&hp->synced);
-+ init_completion(&hp->unplug_wait);
-+
-+ hp->sync_tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d", cpu);
-+ if (IS_ERR(hp->sync_tsk)) {
-+ err = PTR_ERR(hp->sync_tsk);
-+ hp->sync_tsk = NULL;
-+ return err;
-+ }
-+ kthread_bind(hp->sync_tsk, cpu);
-+
-+ /*
-+ * Wait for tasks to get out of the pinned sections,
-+ * it's still OK if new tasks enter. Some CPU notifiers will
-+ * wait for tasks that are going to enter these sections and
-+ * we must not have them block.
-+ */
-+ wake_up_process(hp->sync_tsk);
-+ return 0;
-+}
-+
-+static void cpu_unplug_sync(unsigned int cpu)
-+{
-+ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu);
-+
-+ init_completion(&hp->synced);
-+ /* The completion needs to be initialzied before setting grab_lock */
-+ smp_wmb();
-+
-+ /* Grab the mutex before setting grab_lock */
-+ hotplug_lock(hp);
-+ hp->grab_lock = 1;
-+
-+ /*
-+ * The CPU notifiers have been completed.
-+ * Wait for tasks to get out of pinned CPU sections and have new
-+ * tasks block until the CPU is completely down.
-+ */
-+ __cpu_unplug_sync(hp);
-+
-+ /* All done with the sync thread */
-+ kthread_stop(hp->sync_tsk);
-+ hp->sync_tsk = NULL;
-+}
-+
-+static void cpu_unplug_done(unsigned int cpu)
-+{
-+ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu);
-+
-+ hp->unplug = NULL;
-+ /* Let all tasks know cpu unplug is finished before cleaning up */
-+ smp_wmb();
-+
-+ if (hp->sync_tsk)
-+ kthread_stop(hp->sync_tsk);
-+
-+ if (hp->grab_lock) {
-+ hotplug_unlock(hp);
-+ /* protected by cpu_hotplug.lock */
-+ hp->grab_lock = 0;
-+ }
-+ tell_sched_cpu_down_done(cpu);
-+}
-
- void get_online_cpus(void)
- {
-@@ -349,13 +632,15 @@
- /* Requires cpu_add_remove_lock to be held */
- static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
- {
-- int err, nr_calls = 0;
-+ int mycpu, err, nr_calls = 0;
- void *hcpu = (void *)(long)cpu;
- unsigned long mod = tasks_frozen ? CPU_TASKS_FROZEN : 0;
- struct take_cpu_down_param tcd_param = {
- .mod = mod,
- .hcpu = hcpu,
- };
-+ cpumask_var_t cpumask;
-+ cpumask_var_t cpumask_org;
-
- if (num_online_cpus() == 1)
- return -EBUSY;
-@@ -363,7 +648,34 @@
- if (!cpu_online(cpu))
- return -EINVAL;
-
-+ /* Move the downtaker off the unplug cpu */
-+ if (!alloc_cpumask_var(&cpumask, GFP_KERNEL))
-+ return -ENOMEM;
-+ if (!alloc_cpumask_var(&cpumask_org, GFP_KERNEL)) {
-+ free_cpumask_var(cpumask);
-+ return -ENOMEM;
-+ }
-+
-+ cpumask_copy(cpumask_org, tsk_cpus_allowed(current));
-+ cpumask_andnot(cpumask, cpu_online_mask, cpumask_of(cpu));
-+ set_cpus_allowed_ptr(current, cpumask);
-+ free_cpumask_var(cpumask);
-+ migrate_disable();
-+ mycpu = smp_processor_id();
-+ if (mycpu == cpu) {
-+ printk(KERN_ERR "Yuck! Still on unplug CPU\n!");
-+ migrate_enable();
-+ err = -EBUSY;
-+ goto restore_cpus;
-+ }
-+ migrate_enable();
-+
- cpu_hotplug_begin();
-+ err = cpu_unplug_begin(cpu);
-+ if (err) {
-+ printk("cpu_unplug_begin(%d) failed\n", cpu);
-+ goto out_cancel;
-+ }
-
- err = __cpu_notify(CPU_DOWN_PREPARE | mod, hcpu, -1, &nr_calls);
- if (err) {
-@@ -389,8 +701,12 @@
- #endif
- synchronize_rcu();
-
-+ __cpu_unplug_wait(cpu);
- smpboot_park_threads(cpu);
-
-+ /* Notifiers are done. Don't let any more tasks pin this CPU. */
-+ cpu_unplug_sync(cpu);
-+
- /*
- * So now all preempt/rcu users must observe !cpu_active().
- */
-@@ -427,9 +743,14 @@
- check_for_tasks(cpu);
-
- out_release:
-+ cpu_unplug_done(cpu);
-+out_cancel:
- cpu_hotplug_done();
- if (!err)
- cpu_notify_nofail(CPU_POST_DEAD | mod, hcpu);
-+restore_cpus:
-+ set_cpus_allowed_ptr(current, cpumask_org);
-+ free_cpumask_var(cpumask_org);
- return err;
- }
-
-diff -Nur linux-4.1.39.orig/kernel/cpuset.c linux-4.1.39/kernel/cpuset.c
---- linux-4.1.39.orig/kernel/cpuset.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/cpuset.c 2017-04-18 17:56:30.617397286 +0200
-@@ -284,7 +284,7 @@
- */
-
- static DEFINE_MUTEX(cpuset_mutex);
--static DEFINE_SPINLOCK(callback_lock);
-+static DEFINE_RAW_SPINLOCK(callback_lock);
-
- /*
- * CPU / memory hotplug is handled asynchronously.
-@@ -903,9 +903,9 @@
- continue;
- rcu_read_unlock();
-
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
- cpumask_copy(cp->effective_cpus, new_cpus);
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
-
- WARN_ON(!cgroup_on_dfl(cp->css.cgroup) &&
- !cpumask_equal(cp->cpus_allowed, cp->effective_cpus));
-@@ -970,9 +970,9 @@
- if (retval < 0)
- return retval;
-
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
- cpumask_copy(cs->cpus_allowed, trialcs->cpus_allowed);
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
-
- /* use trialcs->cpus_allowed as a temp variable */
- update_cpumasks_hier(cs, trialcs->cpus_allowed);
-@@ -1159,9 +1159,9 @@
- continue;
- rcu_read_unlock();
-
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
- cp->effective_mems = *new_mems;
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
-
- WARN_ON(!cgroup_on_dfl(cp->css.cgroup) &&
- !nodes_equal(cp->mems_allowed, cp->effective_mems));
-@@ -1229,9 +1229,9 @@
- if (retval < 0)
- goto done;
-
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
- cs->mems_allowed = trialcs->mems_allowed;
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
-
- /* use trialcs->mems_allowed as a temp variable */
- update_nodemasks_hier(cs, &trialcs->mems_allowed);
-@@ -1322,9 +1322,9 @@
- spread_flag_changed = ((is_spread_slab(cs) != is_spread_slab(trialcs))
- || (is_spread_page(cs) != is_spread_page(trialcs)));
-
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
- cs->flags = trialcs->flags;
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
-
- if (!cpumask_empty(trialcs->cpus_allowed) && balance_flag_changed)
- rebuild_sched_domains_locked();
-@@ -1726,7 +1726,7 @@
- cpuset_filetype_t type = seq_cft(sf)->private;
- int ret = 0;
-
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
-
- switch (type) {
- case FILE_CPULIST:
-@@ -1745,7 +1745,7 @@
- ret = -EINVAL;
- }
-
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
- return ret;
- }
-
-@@ -1962,12 +1962,12 @@
-
- cpuset_inc();
-
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
- if (cgroup_on_dfl(cs->css.cgroup)) {
- cpumask_copy(cs->effective_cpus, parent->effective_cpus);
- cs->effective_mems = parent->effective_mems;
- }
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
-
- if (!test_bit(CGRP_CPUSET_CLONE_CHILDREN, &css->cgroup->flags))
- goto out_unlock;
-@@ -1994,12 +1994,12 @@
- }
- rcu_read_unlock();
-
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
- cs->mems_allowed = parent->mems_allowed;
- cs->effective_mems = parent->mems_allowed;
- cpumask_copy(cs->cpus_allowed, parent->cpus_allowed);
- cpumask_copy(cs->effective_cpus, parent->cpus_allowed);
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
- out_unlock:
- mutex_unlock(&cpuset_mutex);
- return 0;
-@@ -2038,7 +2038,7 @@
- static void cpuset_bind(struct cgroup_subsys_state *root_css)
- {
- mutex_lock(&cpuset_mutex);
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
-
- if (cgroup_on_dfl(root_css->cgroup)) {
- cpumask_copy(top_cpuset.cpus_allowed, cpu_possible_mask);
-@@ -2049,7 +2049,7 @@
- top_cpuset.mems_allowed = top_cpuset.effective_mems;
- }
-
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
- mutex_unlock(&cpuset_mutex);
- }
-
-@@ -2149,12 +2149,12 @@
- {
- bool is_empty;
-
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
- cpumask_copy(cs->cpus_allowed, new_cpus);
- cpumask_copy(cs->effective_cpus, new_cpus);
- cs->mems_allowed = *new_mems;
- cs->effective_mems = *new_mems;
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
-
- /*
- * Don't call update_tasks_cpumask() if the cpuset becomes empty,
-@@ -2191,10 +2191,10 @@
- if (nodes_empty(*new_mems))
- *new_mems = parent_cs(cs)->effective_mems;
-
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
- cpumask_copy(cs->effective_cpus, new_cpus);
- cs->effective_mems = *new_mems;
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
-
- if (cpus_updated)
- update_tasks_cpumask(cs);
-@@ -2280,21 +2280,21 @@
-
- /* synchronize cpus_allowed to cpu_active_mask */
- if (cpus_updated) {
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
- if (!on_dfl)
- cpumask_copy(top_cpuset.cpus_allowed, &new_cpus);
- cpumask_copy(top_cpuset.effective_cpus, &new_cpus);
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
- /* we don't mess with cpumasks of tasks in top_cpuset */
- }
-
- /* synchronize mems_allowed to N_MEMORY */
- if (mems_updated) {
-- spin_lock_irq(&callback_lock);
-+ raw_spin_lock_irq(&callback_lock);
- if (!on_dfl)
- top_cpuset.mems_allowed = new_mems;
- top_cpuset.effective_mems = new_mems;
-- spin_unlock_irq(&callback_lock);
-+ raw_spin_unlock_irq(&callback_lock);
- update_tasks_nodemask(&top_cpuset);
- }
-
-@@ -2389,11 +2389,11 @@
- {
- unsigned long flags;
-
-- spin_lock_irqsave(&callback_lock, flags);
-+ raw_spin_lock_irqsave(&callback_lock, flags);
- rcu_read_lock();
- guarantee_online_cpus(task_cs(tsk), pmask);
- rcu_read_unlock();
-- spin_unlock_irqrestore(&callback_lock, flags);
-+ raw_spin_unlock_irqrestore(&callback_lock, flags);
- }
-
- void cpuset_cpus_allowed_fallback(struct task_struct *tsk)
-@@ -2441,11 +2441,11 @@
- nodemask_t mask;
- unsigned long flags;
-
-- spin_lock_irqsave(&callback_lock, flags);
-+ raw_spin_lock_irqsave(&callback_lock, flags);
- rcu_read_lock();
- guarantee_online_mems(task_cs(tsk), &mask);
- rcu_read_unlock();
-- spin_unlock_irqrestore(&callback_lock, flags);
-+ raw_spin_unlock_irqrestore(&callback_lock, flags);
-
- return mask;
- }
-@@ -2537,14 +2537,14 @@
- return 1;
-
- /* Not hardwall and node outside mems_allowed: scan up cpusets */
-- spin_lock_irqsave(&callback_lock, flags);
-+ raw_spin_lock_irqsave(&callback_lock, flags);
-
- rcu_read_lock();
- cs = nearest_hardwall_ancestor(task_cs(current));
- allowed = node_isset(node, cs->mems_allowed);
- rcu_read_unlock();
-
-- spin_unlock_irqrestore(&callback_lock, flags);
-+ raw_spin_unlock_irqrestore(&callback_lock, flags);
- return allowed;
- }
-
-diff -Nur linux-4.1.39.orig/kernel/debug/kdb/kdb_io.c linux-4.1.39/kernel/debug/kdb/kdb_io.c
---- linux-4.1.39.orig/kernel/debug/kdb/kdb_io.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/debug/kdb/kdb_io.c 2017-04-18 17:56:30.617397286 +0200
-@@ -554,7 +554,6 @@
- int linecount;
- int colcount;
- int logging, saved_loglevel = 0;
-- int saved_trap_printk;
- int got_printf_lock = 0;
- int retlen = 0;
- int fnd, len;
-@@ -565,8 +564,6 @@
- unsigned long uninitialized_var(flags);
-
- preempt_disable();
-- saved_trap_printk = kdb_trap_printk;
-- kdb_trap_printk = 0;
-
- /* Serialize kdb_printf if multiple cpus try to write at once.
- * But if any cpu goes recursive in kdb, just print the output,
-@@ -855,7 +852,6 @@
- } else {
- __release(kdb_printf_lock);
- }
-- kdb_trap_printk = saved_trap_printk;
- preempt_enable();
- return retlen;
- }
-@@ -865,9 +861,11 @@
- va_list ap;
- int r;
-
-+ kdb_trap_printk++;
- va_start(ap, fmt);
- r = vkdb_printf(KDB_MSGSRC_INTERNAL, fmt, ap);
- va_end(ap);
-+ kdb_trap_printk--;
-
- return r;
- }
-diff -Nur linux-4.1.39.orig/kernel/events/core.c linux-4.1.39/kernel/events/core.c
---- linux-4.1.39.orig/kernel/events/core.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/events/core.c 2017-04-18 17:56:30.621397441 +0200
-@@ -6948,6 +6948,7 @@
-
- hrtimer_init(&hwc->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
- hwc->hrtimer.function = perf_swevent_hrtimer;
-+ hwc->hrtimer.irqsafe = 1;
-
- /*
- * Since hrtimers have a fixed rate, we can do a static freq->period
-diff -Nur linux-4.1.39.orig/kernel/exit.c linux-4.1.39/kernel/exit.c
---- linux-4.1.39.orig/kernel/exit.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/exit.c 2017-04-18 17:56:30.621397441 +0200
-@@ -144,7 +144,7 @@
- * Do this under ->siglock, we can race with another thread
- * doing sigqueue_free() if we have SIGQUEUE_PREALLOC signals.
- */
-- flush_sigqueue(&tsk->pending);
-+ flush_task_sigqueue(tsk);
- tsk->sighand = NULL;
- spin_unlock(&sighand->siglock);
-
-diff -Nur linux-4.1.39.orig/kernel/fork.c linux-4.1.39/kernel/fork.c
---- linux-4.1.39.orig/kernel/fork.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/fork.c 2017-04-18 17:56:30.621397441 +0200
-@@ -108,7 +108,7 @@
-
- DEFINE_PER_CPU(unsigned long, process_counts) = 0;
-
--__cacheline_aligned DEFINE_RWLOCK(tasklist_lock); /* outer */
-+DEFINE_RWLOCK(tasklist_lock); /* outer */
-
- #ifdef CONFIG_PROVE_RCU
- int lockdep_tasklist_lock_is_held(void)
-@@ -244,7 +244,9 @@
- if (atomic_dec_and_test(&sig->sigcnt))
- free_signal_struct(sig);
- }
--
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+static
-+#endif
- void __put_task_struct(struct task_struct *tsk)
- {
- WARN_ON(!tsk->exit_state);
-@@ -260,7 +262,18 @@
- if (!profile_handoff_task(tsk))
- free_task(tsk);
- }
-+#ifndef CONFIG_PREEMPT_RT_BASE
- EXPORT_SYMBOL_GPL(__put_task_struct);
-+#else
-+void __put_task_struct_cb(struct rcu_head *rhp)
-+{
-+ struct task_struct *tsk = container_of(rhp, struct task_struct, put_rcu);
-+
-+ __put_task_struct(tsk);
-+
-+}
-+EXPORT_SYMBOL_GPL(__put_task_struct_cb);
-+#endif
-
- void __init __weak arch_task_cache_init(void) { }
-
-@@ -374,6 +387,7 @@
- #endif
- tsk->splice_pipe = NULL;
- tsk->task_frag.page = NULL;
-+ tsk->wake_q.next = NULL;
-
- account_kernel_stack(ti, 1);
-
-@@ -680,6 +694,19 @@
- }
- EXPORT_SYMBOL_GPL(__mmdrop);
-
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+/*
-+ * RCU callback for delayed mm drop. Not strictly rcu, but we don't
-+ * want another facility to make this work.
-+ */
-+void __mmdrop_delayed(struct rcu_head *rhp)
-+{
-+ struct mm_struct *mm = container_of(rhp, struct mm_struct, delayed_drop);
-+
-+ __mmdrop(mm);
-+}
-+#endif
-+
- /*
- * Decrement the use count and release all resources for an mm.
- */
-@@ -1214,6 +1241,9 @@
- */
- static void posix_cpu_timers_init(struct task_struct *tsk)
- {
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ tsk->posix_timer_list = NULL;
-+#endif
- tsk->cputime_expires.prof_exp = 0;
- tsk->cputime_expires.virt_exp = 0;
- tsk->cputime_expires.sched_exp = 0;
-@@ -1338,6 +1368,7 @@
- spin_lock_init(&p->alloc_lock);
-
- init_sigpending(&p->pending);
-+ p->sigqueue_cache = NULL;
-
- p->utime = p->stime = p->gtime = 0;
- p->utimescaled = p->stimescaled = 0;
-@@ -1345,7 +1376,8 @@
- p->prev_cputime.utime = p->prev_cputime.stime = 0;
- #endif
- #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
-- seqlock_init(&p->vtime_seqlock);
-+ raw_spin_lock_init(&p->vtime_lock);
-+ seqcount_init(&p->vtime_seq);
- p->vtime_snap = 0;
- p->vtime_snap_whence = VTIME_SLEEPING;
- #endif
-@@ -1396,6 +1428,9 @@
- p->hardirq_context = 0;
- p->softirq_context = 0;
- #endif
-+
-+ p->pagefault_disabled = 0;
-+
- #ifdef CONFIG_LOCKDEP
- p->lockdep_depth = 0; /* no locks held yet */
- p->curr_chain_key = 0;
-diff -Nur linux-4.1.39.orig/kernel/futex.c linux-4.1.39/kernel/futex.c
---- linux-4.1.39.orig/kernel/futex.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/futex.c 2017-04-18 17:56:30.621397441 +0200
-@@ -738,7 +738,9 @@
- * task still owns the PI-state:
- */
- if (head->next != next) {
-+ raw_spin_unlock_irq(&curr->pi_lock);
- spin_unlock(&hb->lock);
-+ raw_spin_lock_irq(&curr->pi_lock);
- continue;
- }
-
-@@ -1090,9 +1092,11 @@
-
- /*
- * The hash bucket lock must be held when this is called.
-- * Afterwards, the futex_q must not be accessed.
-+ * Afterwards, the futex_q must not be accessed. Callers
-+ * must ensure to later call wake_up_q() for the actual
-+ * wakeups to occur.
- */
--static void wake_futex(struct futex_q *q)
-+static void mark_wake_futex(struct wake_q_head *wake_q, struct futex_q *q)
- {
- struct task_struct *p = q->task;
-
-@@ -1100,14 +1104,10 @@
- return;
-
- /*
-- * We set q->lock_ptr = NULL _before_ we wake up the task. If
-- * a non-futex wake up happens on another CPU then the task
-- * might exit and p would dereference a non-existing task
-- * struct. Prevent this by holding a reference on p across the
-- * wake up.
-+ * Queue the task for later wakeup for after we've released
-+ * the hb->lock. wake_q_add() grabs reference to p.
- */
-- get_task_struct(p);
--
-+ wake_q_add(wake_q, p);
- __unqueue_futex(q);
- /*
- * The waiting task can free the futex_q as soon as
-@@ -1117,16 +1117,15 @@
- */
- smp_wmb();
- q->lock_ptr = NULL;
--
-- wake_up_state(p, TASK_NORMAL);
-- put_task_struct(p);
- }
-
--static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_q *this)
-+static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_q *this,
-+ struct futex_hash_bucket *hb)
- {
- struct task_struct *new_owner;
- struct futex_pi_state *pi_state = this->pi_state;
- u32 uninitialized_var(curval), newval;
-+ bool deboost;
- int ret = 0;
-
- if (!pi_state)
-@@ -1188,7 +1187,17 @@
- raw_spin_unlock_irq(&new_owner->pi_lock);
-
- raw_spin_unlock(&pi_state->pi_mutex.wait_lock);
-- rt_mutex_unlock(&pi_state->pi_mutex);
-+
-+ deboost = rt_mutex_futex_unlock(&pi_state->pi_mutex);
-+
-+ /*
-+ * We deboost after dropping hb->lock. That prevents a double
-+ * wakeup on RT.
-+ */
-+ spin_unlock(&hb->lock);
-+
-+ if (deboost)
-+ rt_mutex_adjust_prio(current);
-
- return 0;
- }
-@@ -1227,6 +1236,7 @@
- struct futex_q *this, *next;
- union futex_key key = FUTEX_KEY_INIT;
- int ret;
-+ WAKE_Q(wake_q);
-
- if (!bitset)
- return -EINVAL;
-@@ -1254,13 +1264,14 @@
- if (!(this->bitset & bitset))
- continue;
-
-- wake_futex(this);
-+ mark_wake_futex(&wake_q, this);
- if (++ret >= nr_wake)
- break;
- }
- }
-
- spin_unlock(&hb->lock);
-+ wake_up_q(&wake_q);
- out_put_key:
- put_futex_key(&key);
- out:
-@@ -1279,6 +1290,7 @@
- struct futex_hash_bucket *hb1, *hb2;
- struct futex_q *this, *next;
- int ret, op_ret;
-+ WAKE_Q(wake_q);
-
- retry:
- ret = get_futex_key(uaddr1, flags & FLAGS_SHARED, &key1, VERIFY_READ);
-@@ -1330,7 +1342,7 @@
- ret = -EINVAL;
- goto out_unlock;
- }
-- wake_futex(this);
-+ mark_wake_futex(&wake_q, this);
- if (++ret >= nr_wake)
- break;
- }
-@@ -1344,7 +1356,7 @@
- ret = -EINVAL;
- goto out_unlock;
- }
-- wake_futex(this);
-+ mark_wake_futex(&wake_q, this);
- if (++op_ret >= nr_wake2)
- break;
- }
-@@ -1354,6 +1366,7 @@
-
- out_unlock:
- double_unlock_hb(hb1, hb2);
-+ wake_up_q(&wake_q);
- out_put_keys:
- put_futex_key(&key2);
- out_put_key1:
-@@ -1513,6 +1526,7 @@
- struct futex_pi_state *pi_state = NULL;
- struct futex_hash_bucket *hb1, *hb2;
- struct futex_q *this, *next;
-+ WAKE_Q(wake_q);
-
- if (requeue_pi) {
- /*
-@@ -1689,7 +1703,7 @@
- * woken by futex_unlock_pi().
- */
- if (++task_count <= nr_wake && !requeue_pi) {
-- wake_futex(this);
-+ mark_wake_futex(&wake_q, this);
- continue;
- }
-
-@@ -1715,6 +1729,16 @@
- requeue_pi_wake_futex(this, &key2, hb2);
- drop_count++;
- continue;
-+ } else if (ret == -EAGAIN) {
-+ /*
-+ * Waiter was woken by timeout or
-+ * signal and has set pi_blocked_on to
-+ * PI_WAKEUP_INPROGRESS before we
-+ * tried to enqueue it on the rtmutex.
-+ */
-+ this->pi_state = NULL;
-+ free_pi_state(pi_state);
-+ continue;
- } else if (ret) {
- /* -EDEADLK */
- this->pi_state = NULL;
-@@ -1729,6 +1753,7 @@
- out_unlock:
- free_pi_state(pi_state);
- double_unlock_hb(hb1, hb2);
-+ wake_up_q(&wake_q);
- hb_waiters_dec(hb2);
-
- /*
-@@ -2422,13 +2447,22 @@
- */
- match = futex_top_waiter(hb, &key);
- if (match) {
-- ret = wake_futex_pi(uaddr, uval, match);
-+ ret = wake_futex_pi(uaddr, uval, match, hb);
-+
-+ /*
-+ * In case of success wake_futex_pi dropped the hash
-+ * bucket lock.
-+ */
-+ if (!ret)
-+ goto out_putkey;
-+
- /*
- * The atomic access to the futex value generated a
- * pagefault, so retry the user-access and the wakeup:
- */
- if (ret == -EFAULT)
- goto pi_faulted;
-+
- /*
- * A unconditional UNLOCK_PI op raced against a waiter
- * setting the FUTEX_WAITERS bit. Try again.
-@@ -2438,6 +2472,11 @@
- put_futex_key(&key);
- goto retry;
- }
-+
-+ /*
-+ * wake_futex_pi has detected invalid state. Tell user
-+ * space.
-+ */
- goto out_unlock;
- }
-
-@@ -2458,6 +2497,7 @@
-
- out_unlock:
- spin_unlock(&hb->lock);
-+out_putkey:
- put_futex_key(&key);
- return ret;
-
-@@ -2568,7 +2608,7 @@
- struct hrtimer_sleeper timeout, *to = NULL;
- struct rt_mutex_waiter rt_waiter;
- struct rt_mutex *pi_mutex = NULL;
-- struct futex_hash_bucket *hb;
-+ struct futex_hash_bucket *hb, *hb2;
- union futex_key key2 = FUTEX_KEY_INIT;
- struct futex_q q = futex_q_init;
- int res, ret;
-@@ -2593,10 +2633,7 @@
- * The waiter is allocated on our stack, manipulated by the requeue
- * code while we sleep on uaddr.
- */
-- debug_rt_mutex_init_waiter(&rt_waiter);
-- RB_CLEAR_NODE(&rt_waiter.pi_tree_entry);
-- RB_CLEAR_NODE(&rt_waiter.tree_entry);
-- rt_waiter.task = NULL;
-+ rt_mutex_init_waiter(&rt_waiter, false);
-
- ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, VERIFY_WRITE);
- if (unlikely(ret != 0))
-@@ -2627,20 +2664,55 @@
- /* Queue the futex_q, drop the hb lock, wait for wakeup. */
- futex_wait_queue_me(hb, &q, to);
-
-- spin_lock(&hb->lock);
-- ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to);
-- spin_unlock(&hb->lock);
-- if (ret)
-- goto out_put_keys;
-+ /*
-+ * On RT we must avoid races with requeue and trying to block
-+ * on two mutexes (hb->lock and uaddr2's rtmutex) by
-+ * serializing access to pi_blocked_on with pi_lock.
-+ */
-+ raw_spin_lock_irq(&current->pi_lock);
-+ if (current->pi_blocked_on) {
-+ /*
-+ * We have been requeued or are in the process of
-+ * being requeued.
-+ */
-+ raw_spin_unlock_irq(&current->pi_lock);
-+ } else {
-+ /*
-+ * Setting pi_blocked_on to PI_WAKEUP_INPROGRESS
-+ * prevents a concurrent requeue from moving us to the
-+ * uaddr2 rtmutex. After that we can safely acquire
-+ * (and possibly block on) hb->lock.
-+ */
-+ current->pi_blocked_on = PI_WAKEUP_INPROGRESS;
-+ raw_spin_unlock_irq(&current->pi_lock);
-+
-+ spin_lock(&hb->lock);
-+
-+ /*
-+ * Clean up pi_blocked_on. We might leak it otherwise
-+ * when we succeeded with the hb->lock in the fast
-+ * path.
-+ */
-+ raw_spin_lock_irq(&current->pi_lock);
-+ current->pi_blocked_on = NULL;
-+ raw_spin_unlock_irq(&current->pi_lock);
-+
-+ ret = handle_early_requeue_pi_wakeup(hb, &q, &key2, to);
-+ spin_unlock(&hb->lock);
-+ if (ret)
-+ goto out_put_keys;
-+ }
-
- /*
-- * In order for us to be here, we know our q.key == key2, and since
-- * we took the hb->lock above, we also know that futex_requeue() has
-- * completed and we no longer have to concern ourselves with a wakeup
-- * race with the atomic proxy lock acquisition by the requeue code. The
-- * futex_requeue dropped our key1 reference and incremented our key2
-- * reference count.
-+ * In order to be here, we have either been requeued, are in
-+ * the process of being requeued, or requeue successfully
-+ * acquired uaddr2 on our behalf. If pi_blocked_on was
-+ * non-null above, we may be racing with a requeue. Do not
-+ * rely on q->lock_ptr to be hb2->lock until after blocking on
-+ * hb->lock or hb2->lock. The futex_requeue dropped our key1
-+ * reference and incremented our key2 reference count.
- */
-+ hb2 = hash_futex(&key2);
-
- /* Check if the requeue code acquired the second futex for us. */
- if (!q.rt_waiter) {
-@@ -2649,14 +2721,15 @@
- * did a lock-steal - fix up the PI-state in that case.
- */
- if (q.pi_state && (q.pi_state->owner != current)) {
-- spin_lock(q.lock_ptr);
-+ spin_lock(&hb2->lock);
-+ BUG_ON(&hb2->lock != q.lock_ptr);
- ret = fixup_pi_state_owner(uaddr2, &q, current);
- /*
- * Drop the reference to the pi state which
- * the requeue_pi() code acquired for us.
- */
- free_pi_state(q.pi_state);
-- spin_unlock(q.lock_ptr);
-+ spin_unlock(&hb2->lock);
- }
- } else {
- /*
-@@ -2669,7 +2742,8 @@
- ret = rt_mutex_finish_proxy_lock(pi_mutex, to, &rt_waiter);
- debug_rt_mutex_free_waiter(&rt_waiter);
-
-- spin_lock(q.lock_ptr);
-+ spin_lock(&hb2->lock);
-+ BUG_ON(&hb2->lock != q.lock_ptr);
- /*
- * Fixup the pi_state owner and possibly acquire the lock if we
- * haven't already.
-diff -Nur linux-4.1.39.orig/kernel/irq/handle.c linux-4.1.39/kernel/irq/handle.c
---- linux-4.1.39.orig/kernel/irq/handle.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/irq/handle.c 2017-04-18 17:56:30.621397441 +0200
-@@ -133,6 +133,8 @@
- irqreturn_t
- handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action)
- {
-+ struct pt_regs *regs = get_irq_regs();
-+ u64 ip = regs ? instruction_pointer(regs) : 0;
- irqreturn_t retval = IRQ_NONE;
- unsigned int flags = 0, irq = desc->irq_data.irq;
-
-@@ -173,7 +175,11 @@
- action = action->next;
- } while (action);
-
-- add_interrupt_randomness(irq, flags);
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+ add_interrupt_randomness(irq, flags, ip);
-+#else
-+ desc->random_ip = ip;
-+#endif
-
- if (!noirqdebug)
- note_interrupt(irq, desc, retval);
-diff -Nur linux-4.1.39.orig/kernel/irq/manage.c linux-4.1.39/kernel/irq/manage.c
---- linux-4.1.39.orig/kernel/irq/manage.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/irq/manage.c 2017-04-18 17:56:30.621397441 +0200
-@@ -22,6 +22,7 @@
- #include "internals.h"
-
- #ifdef CONFIG_IRQ_FORCED_THREADING
-+# ifndef CONFIG_PREEMPT_RT_BASE
- __read_mostly bool force_irqthreads;
-
- static int __init setup_forced_irqthreads(char *arg)
-@@ -30,6 +31,7 @@
- return 0;
- }
- early_param("threadirqs", setup_forced_irqthreads);
-+# endif
- #endif
-
- static void __synchronize_hardirq(struct irq_desc *desc)
-@@ -179,6 +181,62 @@
- irq_get_pending(struct cpumask *mask, struct irq_desc *desc) { }
- #endif
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+static void _irq_affinity_notify(struct irq_affinity_notify *notify);
-+static struct task_struct *set_affinity_helper;
-+static LIST_HEAD(affinity_list);
-+static DEFINE_RAW_SPINLOCK(affinity_list_lock);
-+
-+static int set_affinity_thread(void *unused)
-+{
-+ while (1) {
-+ struct irq_affinity_notify *notify;
-+ int empty;
-+
-+ set_current_state(TASK_INTERRUPTIBLE);
-+
-+ raw_spin_lock_irq(&affinity_list_lock);
-+ empty = list_empty(&affinity_list);
-+ raw_spin_unlock_irq(&affinity_list_lock);
-+
-+ if (empty)
-+ schedule();
-+ if (kthread_should_stop())
-+ break;
-+ set_current_state(TASK_RUNNING);
-+try_next:
-+ notify = NULL;
-+
-+ raw_spin_lock_irq(&affinity_list_lock);
-+ if (!list_empty(&affinity_list)) {
-+ notify = list_first_entry(&affinity_list,
-+ struct irq_affinity_notify, list);
-+ list_del_init(&notify->list);
-+ }
-+ raw_spin_unlock_irq(&affinity_list_lock);
-+
-+ if (!notify)
-+ continue;
-+ _irq_affinity_notify(notify);
-+ goto try_next;
-+ }
-+ return 0;
-+}
-+
-+static void init_helper_thread(void)
-+{
-+ if (set_affinity_helper)
-+ return;
-+ set_affinity_helper = kthread_run(set_affinity_thread, NULL,
-+ "affinity-cb");
-+ WARN_ON(IS_ERR(set_affinity_helper));
-+}
-+#else
-+
-+static inline void init_helper_thread(void) { }
-+
-+#endif
-+
- int irq_do_set_affinity(struct irq_data *data, const struct cpumask *mask,
- bool force)
- {
-@@ -218,7 +276,17 @@
-
- if (desc->affinity_notify) {
- kref_get(&desc->affinity_notify->kref);
-+
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ raw_spin_lock(&affinity_list_lock);
-+ if (list_empty(&desc->affinity_notify->list))
-+ list_add_tail(&affinity_list,
-+ &desc->affinity_notify->list);
-+ raw_spin_unlock(&affinity_list_lock);
-+ wake_up_process(set_affinity_helper);
-+#else
- schedule_work(&desc->affinity_notify->work);
-+#endif
- }
- irqd_set(data, IRQD_AFFINITY_SET);
-
-@@ -256,10 +324,8 @@
- }
- EXPORT_SYMBOL_GPL(irq_set_affinity_hint);
-
--static void irq_affinity_notify(struct work_struct *work)
-+static void _irq_affinity_notify(struct irq_affinity_notify *notify)
- {
-- struct irq_affinity_notify *notify =
-- container_of(work, struct irq_affinity_notify, work);
- struct irq_desc *desc = irq_to_desc(notify->irq);
- cpumask_var_t cpumask;
- unsigned long flags;
-@@ -281,6 +347,13 @@
- kref_put(&notify->kref, notify->release);
- }
-
-+static void irq_affinity_notify(struct work_struct *work)
-+{
-+ struct irq_affinity_notify *notify =
-+ container_of(work, struct irq_affinity_notify, work);
-+ _irq_affinity_notify(notify);
-+}
-+
- /**
- * irq_set_affinity_notifier - control notification of IRQ affinity changes
- * @irq: Interrupt for which to enable/disable notification
-@@ -310,6 +383,8 @@
- notify->irq = irq;
- kref_init(&notify->kref);
- INIT_WORK(&notify->work, irq_affinity_notify);
-+ INIT_LIST_HEAD(&notify->list);
-+ init_helper_thread();
- }
-
- raw_spin_lock_irqsave(&desc->lock, flags);
-@@ -697,6 +772,12 @@
- return IRQ_NONE;
- }
-
-+static irqreturn_t irq_forced_secondary_handler(int irq, void *dev_id)
-+{
-+ WARN(1, "Secondary action handler called for irq %d\n", irq);
-+ return IRQ_NONE;
-+}
-+
- static int irq_wait_for_interrupt(struct irqaction *action)
- {
- set_current_state(TASK_INTERRUPTIBLE);
-@@ -723,7 +804,8 @@
- static void irq_finalize_oneshot(struct irq_desc *desc,
- struct irqaction *action)
- {
-- if (!(desc->istate & IRQS_ONESHOT))
-+ if (!(desc->istate & IRQS_ONESHOT) ||
-+ action->handler == irq_forced_secondary_handler)
- return;
- again:
- chip_bus_lock(desc);
-@@ -825,7 +907,15 @@
- local_bh_disable();
- ret = action->thread_fn(action->irq, action->dev_id);
- irq_finalize_oneshot(desc, action);
-- local_bh_enable();
-+ /*
-+ * Interrupts which have real time requirements can be set up
-+ * to avoid softirq processing in the thread handler. This is
-+ * safe as these interrupts do not raise soft interrupts.
-+ */
-+ if (irq_settings_no_softirq_call(desc))
-+ _local_bh_enable();
-+ else
-+ local_bh_enable();
- return ret;
- }
-
-@@ -877,6 +967,18 @@
- irq_finalize_oneshot(desc, action);
- }
-
-+static void irq_wake_secondary(struct irq_desc *desc, struct irqaction *action)
-+{
-+ struct irqaction *secondary = action->secondary;
-+
-+ if (WARN_ON_ONCE(!secondary))
-+ return;
-+
-+ raw_spin_lock_irq(&desc->lock);
-+ __irq_wake_thread(desc, secondary);
-+ raw_spin_unlock_irq(&desc->lock);
-+}
-+
- /*
- * Interrupt handler thread
- */
-@@ -907,7 +1009,15 @@
- action_ret = handler_fn(desc, action);
- if (action_ret == IRQ_HANDLED)
- atomic_inc(&desc->threads_handled);
-+ if (action_ret == IRQ_WAKE_THREAD)
-+ irq_wake_secondary(desc, action);
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ migrate_disable();
-+ add_interrupt_randomness(action->irq, 0,
-+ desc->random_ip ^ (unsigned long) action);
-+ migrate_enable();
-+#endif
- wake_threads_waitq(desc);
- }
-
-@@ -951,20 +1061,36 @@
- }
- EXPORT_SYMBOL_GPL(irq_wake_thread);
-
--static void irq_setup_forced_threading(struct irqaction *new)
-+static int irq_setup_forced_threading(struct irqaction *new)
- {
- if (!force_irqthreads)
-- return;
-+ return 0;
- if (new->flags & (IRQF_NO_THREAD | IRQF_PERCPU | IRQF_ONESHOT))
-- return;
-+ return 0;
-
- new->flags |= IRQF_ONESHOT;
-
-- if (!new->thread_fn) {
-- set_bit(IRQTF_FORCED_THREAD, &new->thread_flags);
-- new->thread_fn = new->handler;
-- new->handler = irq_default_primary_handler;
-- }
-+ /*
-+ * Handle the case where we have a real primary handler and a
-+ * thread handler. We force thread them as well by creating a
-+ * secondary action.
-+ */
-+ if (new->handler != irq_default_primary_handler && new->thread_fn) {
-+ /* Allocate the secondary action */
-+ new->secondary = kzalloc(sizeof(struct irqaction), GFP_KERNEL);
-+ if (!new->secondary)
-+ return -ENOMEM;
-+ new->secondary->handler = irq_forced_secondary_handler;
-+ new->secondary->thread_fn = new->thread_fn;
-+ new->secondary->dev_id = new->dev_id;
-+ new->secondary->irq = new->irq;
-+ new->secondary->name = new->name;
-+ }
-+ /* Deal with the primary handler */
-+ set_bit(IRQTF_FORCED_THREAD, &new->thread_flags);
-+ new->thread_fn = new->handler;
-+ new->handler = irq_default_primary_handler;
-+ return 0;
- }
-
- static int irq_request_resources(struct irq_desc *desc)
-@@ -984,6 +1110,48 @@
- c->irq_release_resources(d);
- }
-
-+static int
-+setup_irq_thread(struct irqaction *new, unsigned int irq, bool secondary)
-+{
-+ struct task_struct *t;
-+ struct sched_param param = {
-+ .sched_priority = MAX_USER_RT_PRIO/2,
-+ };
-+
-+ if (!secondary) {
-+ t = kthread_create(irq_thread, new, "irq/%d-%s", irq,
-+ new->name);
-+ } else {
-+ t = kthread_create(irq_thread, new, "irq/%d-s-%s", irq,
-+ new->name);
-+ param.sched_priority += 1;
-+ }
-+
-+ if (IS_ERR(t))
-+ return PTR_ERR(t);
-+
-+ sched_setscheduler_nocheck(t, SCHED_FIFO, &param);
-+
-+ /*
-+ * We keep the reference to the task struct even if
-+ * the thread dies to avoid that the interrupt code
-+ * references an already freed task_struct.
-+ */
-+ get_task_struct(t);
-+ new->thread = t;
-+ /*
-+ * Tell the thread to set its affinity. This is
-+ * important for shared interrupt handlers as we do
-+ * not invoke setup_affinity() for the secondary
-+ * handlers as everything is already set up. Even for
-+ * interrupts marked with IRQF_NO_BALANCE this is
-+ * correct as we want the thread to move to the cpu(s)
-+ * on which the requesting code placed the interrupt.
-+ */
-+ set_bit(IRQTF_AFFINITY, &new->thread_flags);
-+ return 0;
-+}
-+
- /*
- * Internal function to register an irqaction - typically used to
- * allocate special interrupts that are part of the architecture.
-@@ -1004,6 +1172,8 @@
- if (!try_module_get(desc->owner))
- return -ENODEV;
-
-+ new->irq = irq;
-+
- /*
- * Check whether the interrupt nests into another interrupt
- * thread.
-@@ -1021,8 +1191,11 @@
- */
- new->handler = irq_nested_primary_handler;
- } else {
-- if (irq_settings_can_thread(desc))
-- irq_setup_forced_threading(new);
-+ if (irq_settings_can_thread(desc)) {
-+ ret = irq_setup_forced_threading(new);
-+ if (ret)
-+ goto out_mput;
-+ }
- }
-
- /*
-@@ -1031,37 +1204,14 @@
- * thread.
- */
- if (new->thread_fn && !nested) {
-- struct task_struct *t;
-- static const struct sched_param param = {
-- .sched_priority = MAX_USER_RT_PRIO/2,
-- };
--
-- t = kthread_create(irq_thread, new, "irq/%d-%s", irq,
-- new->name);
-- if (IS_ERR(t)) {
-- ret = PTR_ERR(t);
-+ ret = setup_irq_thread(new, irq, false);
-+ if (ret)
- goto out_mput;
-+ if (new->secondary) {
-+ ret = setup_irq_thread(new->secondary, irq, true);
-+ if (ret)
-+ goto out_thread;
- }
--
-- sched_setscheduler_nocheck(t, SCHED_FIFO, &param);
--
-- /*
-- * We keep the reference to the task struct even if
-- * the thread dies to avoid that the interrupt code
-- * references an already freed task_struct.
-- */
-- get_task_struct(t);
-- new->thread = t;
-- /*
-- * Tell the thread to set its affinity. This is
-- * important for shared interrupt handlers as we do
-- * not invoke setup_affinity() for the secondary
-- * handlers as everything is already set up. Even for
-- * interrupts marked with IRQF_NO_BALANCE this is
-- * correct as we want the thread to move to the cpu(s)
-- * on which the requesting code placed the interrupt.
-- */
-- set_bit(IRQTF_AFFINITY, &new->thread_flags);
- }
-
- if (!alloc_cpumask_var(&mask, GFP_KERNEL)) {
-@@ -1221,6 +1371,9 @@
- irqd_set(&desc->irq_data, IRQD_NO_BALANCING);
- }
-
-+ if (new->flags & IRQF_NO_SOFTIRQ_CALL)
-+ irq_settings_set_no_softirq_call(desc);
-+
- /* Set default affinity mask once everything is setup */
- setup_affinity(irq, desc, mask);
-
-@@ -1234,7 +1387,6 @@
- irq, nmsk, omsk);
- }
-
-- new->irq = irq;
- *old_ptr = new;
-
- irq_pm_install_action(desc, new);
-@@ -1260,6 +1412,8 @@
- */
- if (new->thread)
- wake_up_process(new->thread);
-+ if (new->secondary)
-+ wake_up_process(new->secondary->thread);
-
- register_irq_proc(irq, desc);
- new->dir = NULL;
-@@ -1290,6 +1444,13 @@
- kthread_stop(t);
- put_task_struct(t);
- }
-+ if (new->secondary && new->secondary->thread) {
-+ struct task_struct *t = new->secondary->thread;
-+
-+ new->secondary->thread = NULL;
-+ kthread_stop(t);
-+ put_task_struct(t);
-+ }
- out_mput:
- module_put(desc->owner);
- return ret;
-@@ -1397,9 +1558,14 @@
- if (action->thread) {
- kthread_stop(action->thread);
- put_task_struct(action->thread);
-+ if (action->secondary && action->secondary->thread) {
-+ kthread_stop(action->secondary->thread);
-+ put_task_struct(action->secondary->thread);
-+ }
- }
-
- module_put(desc->owner);
-+ kfree(action->secondary);
- return action;
- }
-
-@@ -1543,8 +1709,10 @@
- retval = __setup_irq(irq, desc, action);
- chip_bus_sync_unlock(desc);
-
-- if (retval)
-+ if (retval) {
-+ kfree(action->secondary);
- kfree(action);
-+ }
-
- #ifdef CONFIG_DEBUG_SHIRQ_FIXME
- if (!retval && (irqflags & IRQF_SHARED)) {
-diff -Nur linux-4.1.39.orig/kernel/irq/settings.h linux-4.1.39/kernel/irq/settings.h
---- linux-4.1.39.orig/kernel/irq/settings.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/irq/settings.h 2017-04-18 17:56:30.621397441 +0200
-@@ -15,6 +15,7 @@
- _IRQ_NESTED_THREAD = IRQ_NESTED_THREAD,
- _IRQ_PER_CPU_DEVID = IRQ_PER_CPU_DEVID,
- _IRQ_IS_POLLED = IRQ_IS_POLLED,
-+ _IRQ_NO_SOFTIRQ_CALL = IRQ_NO_SOFTIRQ_CALL,
- _IRQF_MODIFY_MASK = IRQF_MODIFY_MASK,
- };
-
-@@ -28,6 +29,7 @@
- #define IRQ_NESTED_THREAD GOT_YOU_MORON
- #define IRQ_PER_CPU_DEVID GOT_YOU_MORON
- #define IRQ_IS_POLLED GOT_YOU_MORON
-+#define IRQ_NO_SOFTIRQ_CALL GOT_YOU_MORON
- #undef IRQF_MODIFY_MASK
- #define IRQF_MODIFY_MASK GOT_YOU_MORON
-
-@@ -38,6 +40,16 @@
- desc->status_use_accessors |= (set & _IRQF_MODIFY_MASK);
- }
-
-+static inline bool irq_settings_no_softirq_call(struct irq_desc *desc)
-+{
-+ return desc->status_use_accessors & _IRQ_NO_SOFTIRQ_CALL;
-+}
-+
-+static inline void irq_settings_set_no_softirq_call(struct irq_desc *desc)
-+{
-+ desc->status_use_accessors |= _IRQ_NO_SOFTIRQ_CALL;
-+}
-+
- static inline bool irq_settings_is_per_cpu(struct irq_desc *desc)
- {
- return desc->status_use_accessors & _IRQ_PER_CPU;
-diff -Nur linux-4.1.39.orig/kernel/irq/spurious.c linux-4.1.39/kernel/irq/spurious.c
---- linux-4.1.39.orig/kernel/irq/spurious.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/irq/spurious.c 2017-04-18 17:56:30.621397441 +0200
-@@ -444,6 +444,10 @@
-
- static int __init irqfixup_setup(char *str)
- {
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ pr_warn("irqfixup boot option not supported w/ CONFIG_PREEMPT_RT_BASE\n");
-+ return 1;
-+#endif
- irqfixup = 1;
- printk(KERN_WARNING "Misrouted IRQ fixup support enabled.\n");
- printk(KERN_WARNING "This may impact system performance.\n");
-@@ -456,6 +460,10 @@
-
- static int __init irqpoll_setup(char *str)
- {
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ pr_warn("irqpoll boot option not supported w/ CONFIG_PREEMPT_RT_BASE\n");
-+ return 1;
-+#endif
- irqfixup = 2;
- printk(KERN_WARNING "Misrouted IRQ fixup and polling support "
- "enabled\n");
-diff -Nur linux-4.1.39.orig/kernel/irq_work.c linux-4.1.39/kernel/irq_work.c
---- linux-4.1.39.orig/kernel/irq_work.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/irq_work.c 2017-04-18 17:56:30.621397441 +0200
-@@ -17,6 +17,7 @@
- #include <linux/cpu.h>
- #include <linux/notifier.h>
- #include <linux/smp.h>
-+#include <linux/interrupt.h>
- #include <asm/processor.h>
-
-
-@@ -65,6 +66,8 @@
- */
- bool irq_work_queue_on(struct irq_work *work, int cpu)
- {
-+ struct llist_head *list;
-+
- /* All work should have been flushed before going offline */
- WARN_ON_ONCE(cpu_is_offline(cpu));
-
-@@ -75,7 +78,12 @@
- if (!irq_work_claim(work))
- return false;
-
-- if (llist_add(&work->llnode, &per_cpu(raised_list, cpu)))
-+ if (IS_ENABLED(CONFIG_PREEMPT_RT_FULL) && !(work->flags & IRQ_WORK_HARD_IRQ))
-+ list = &per_cpu(lazy_list, cpu);
-+ else
-+ list = &per_cpu(raised_list, cpu);
-+
-+ if (llist_add(&work->llnode, list))
- arch_send_call_function_single_ipi(cpu);
-
- return true;
-@@ -86,6 +94,9 @@
- /* Enqueue the irq work @work on the current CPU */
- bool irq_work_queue(struct irq_work *work)
- {
-+ struct llist_head *list;
-+ bool lazy_work, realtime = IS_ENABLED(CONFIG_PREEMPT_RT_FULL);
-+
- /* Only queue if not already pending */
- if (!irq_work_claim(work))
- return false;
-@@ -93,13 +104,15 @@
- /* Queue the entry and raise the IPI if needed. */
- preempt_disable();
-
-- /* If the work is "lazy", handle it from next tick if any */
-- if (work->flags & IRQ_WORK_LAZY) {
-- if (llist_add(&work->llnode, this_cpu_ptr(&lazy_list)) &&
-- tick_nohz_tick_stopped())
-- arch_irq_work_raise();
-- } else {
-- if (llist_add(&work->llnode, this_cpu_ptr(&raised_list)))
-+ lazy_work = work->flags & IRQ_WORK_LAZY;
-+
-+ if (lazy_work || (realtime && !(work->flags & IRQ_WORK_HARD_IRQ)))
-+ list = this_cpu_ptr(&lazy_list);
-+ else
-+ list = this_cpu_ptr(&raised_list);
-+
-+ if (llist_add(&work->llnode, list)) {
-+ if (!lazy_work || tick_nohz_tick_stopped())
- arch_irq_work_raise();
- }
-
-@@ -116,9 +129,8 @@
- raised = this_cpu_ptr(&raised_list);
- lazy = this_cpu_ptr(&lazy_list);
-
-- if (llist_empty(raised) || arch_irq_work_has_interrupt())
-- if (llist_empty(lazy))
-- return false;
-+ if (llist_empty(raised) && llist_empty(lazy))
-+ return false;
-
- /* All work should have been flushed before going offline */
- WARN_ON_ONCE(cpu_is_offline(smp_processor_id()));
-@@ -132,7 +144,7 @@
- struct irq_work *work;
- struct llist_node *llnode;
-
-- BUG_ON(!irqs_disabled());
-+ BUG_ON_NONRT(!irqs_disabled());
-
- if (llist_empty(list))
- return;
-@@ -169,7 +181,16 @@
- void irq_work_run(void)
- {
- irq_work_run_list(this_cpu_ptr(&raised_list));
-- irq_work_run_list(this_cpu_ptr(&lazy_list));
-+ if (IS_ENABLED(CONFIG_PREEMPT_RT_FULL)) {
-+ /*
-+ * NOTE: we raise softirq via IPI for safety,
-+ * and execute in irq_work_tick() to move the
-+ * overhead from hard to soft irq context.
-+ */
-+ if (!llist_empty(this_cpu_ptr(&lazy_list)))
-+ raise_softirq(TIMER_SOFTIRQ);
-+ } else
-+ irq_work_run_list(this_cpu_ptr(&lazy_list));
- }
- EXPORT_SYMBOL_GPL(irq_work_run);
-
-@@ -179,8 +200,17 @@
-
- if (!llist_empty(raised) && !arch_irq_work_has_interrupt())
- irq_work_run_list(raised);
-+
-+ if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL))
-+ irq_work_run_list(this_cpu_ptr(&lazy_list));
-+}
-+
-+#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL)
-+void irq_work_tick_soft(void)
-+{
- irq_work_run_list(this_cpu_ptr(&lazy_list));
- }
-+#endif
-
- /*
- * Synchronize against the irq_work @entry, ensures the entry is not
-diff -Nur linux-4.1.39.orig/kernel/Kconfig.locks linux-4.1.39/kernel/Kconfig.locks
---- linux-4.1.39.orig/kernel/Kconfig.locks 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/Kconfig.locks 2017-04-18 17:56:30.617397286 +0200
-@@ -225,11 +225,11 @@
-
- config MUTEX_SPIN_ON_OWNER
- def_bool y
-- depends on SMP && !DEBUG_MUTEXES && ARCH_SUPPORTS_ATOMIC_RMW
-+ depends on SMP && !DEBUG_MUTEXES && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL
-
- config RWSEM_SPIN_ON_OWNER
- def_bool y
-- depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW
-+ depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW && !PREEMPT_RT_FULL
-
- config LOCK_SPIN_ON_OWNER
- def_bool y
-diff -Nur linux-4.1.39.orig/kernel/Kconfig.preempt linux-4.1.39/kernel/Kconfig.preempt
---- linux-4.1.39.orig/kernel/Kconfig.preempt 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/Kconfig.preempt 2017-04-18 17:56:30.617397286 +0200
-@@ -1,3 +1,16 @@
-+config PREEMPT
-+ bool
-+ select PREEMPT_COUNT
-+
-+config PREEMPT_RT_BASE
-+ bool
-+ select PREEMPT
-+
-+config HAVE_PREEMPT_LAZY
-+ bool
-+
-+config PREEMPT_LAZY
-+ def_bool y if HAVE_PREEMPT_LAZY && PREEMPT_RT_FULL
-
- choice
- prompt "Preemption Model"
-@@ -33,9 +46,9 @@
-
- Select this if you are building a kernel for a desktop system.
-
--config PREEMPT
-+config PREEMPT__LL
- bool "Preemptible Kernel (Low-Latency Desktop)"
-- select PREEMPT_COUNT
-+ select PREEMPT
- select UNINLINE_SPIN_UNLOCK if !ARCH_INLINE_SPIN_UNLOCK
- help
- This option reduces the latency of the kernel by making
-@@ -52,6 +65,22 @@
- embedded system with latency requirements in the milliseconds
- range.
-
-+config PREEMPT_RTB
-+ bool "Preemptible Kernel (Basic RT)"
-+ select PREEMPT_RT_BASE
-+ help
-+ This option is basically the same as (Low-Latency Desktop) but
-+ enables changes which are preliminary for the full preemptible
-+ RT kernel.
-+
-+config PREEMPT_RT_FULL
-+ bool "Fully Preemptible Kernel (RT)"
-+ depends on IRQ_FORCED_THREADING
-+ select PREEMPT_RT_BASE
-+ select PREEMPT_RCU
-+ help
-+ All and everything
-+
- endchoice
-
- config PREEMPT_COUNT
-diff -Nur linux-4.1.39.orig/kernel/ksysfs.c linux-4.1.39/kernel/ksysfs.c
---- linux-4.1.39.orig/kernel/ksysfs.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/ksysfs.c 2017-04-18 17:56:30.621397441 +0200
-@@ -136,6 +136,15 @@
-
- #endif /* CONFIG_KEXEC */
-
-+#if defined(CONFIG_PREEMPT_RT_FULL)
-+static ssize_t realtime_show(struct kobject *kobj,
-+ struct kobj_attribute *attr, char *buf)
-+{
-+ return sprintf(buf, "%d\n", 1);
-+}
-+KERNEL_ATTR_RO(realtime);
-+#endif
-+
- /* whether file capabilities are enabled */
- static ssize_t fscaps_show(struct kobject *kobj,
- struct kobj_attribute *attr, char *buf)
-@@ -203,6 +212,9 @@
- &vmcoreinfo_attr.attr,
- #endif
- &rcu_expedited_attr.attr,
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ &realtime_attr.attr,
-+#endif
- NULL
- };
-
-diff -Nur linux-4.1.39.orig/kernel/locking/lglock.c linux-4.1.39/kernel/locking/lglock.c
---- linux-4.1.39.orig/kernel/locking/lglock.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/locking/lglock.c 2017-04-18 17:56:30.621397441 +0200
-@@ -4,6 +4,15 @@
- #include <linux/cpu.h>
- #include <linux/string.h>
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+# define lg_lock_ptr arch_spinlock_t
-+# define lg_do_lock(l) arch_spin_lock(l)
-+# define lg_do_unlock(l) arch_spin_unlock(l)
-+#else
-+# define lg_lock_ptr struct rt_mutex
-+# define lg_do_lock(l) __rt_spin_lock(l)
-+# define lg_do_unlock(l) __rt_spin_unlock(l)
-+#endif
- /*
- * Note there is no uninit, so lglocks cannot be defined in
- * modules (but it's fine to use them from there)
-@@ -12,51 +21,60 @@
-
- void lg_lock_init(struct lglock *lg, char *name)
- {
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ int i;
-+
-+ for_each_possible_cpu(i) {
-+ struct rt_mutex *lock = per_cpu_ptr(lg->lock, i);
-+
-+ rt_mutex_init(lock);
-+ }
-+#endif
- LOCKDEP_INIT_MAP(&lg->lock_dep_map, name, &lg->lock_key, 0);
- }
- EXPORT_SYMBOL(lg_lock_init);
-
- void lg_local_lock(struct lglock *lg)
- {
-- arch_spinlock_t *lock;
-+ lg_lock_ptr *lock;
-
-- preempt_disable();
-+ migrate_disable();
- lock_acquire_shared(&lg->lock_dep_map, 0, 0, NULL, _RET_IP_);
- lock = this_cpu_ptr(lg->lock);
-- arch_spin_lock(lock);
-+ lg_do_lock(lock);
- }
- EXPORT_SYMBOL(lg_local_lock);
-
- void lg_local_unlock(struct lglock *lg)
- {
-- arch_spinlock_t *lock;
-+ lg_lock_ptr *lock;
-
- lock_release(&lg->lock_dep_map, 1, _RET_IP_);
- lock = this_cpu_ptr(lg->lock);
-- arch_spin_unlock(lock);
-- preempt_enable();
-+ lg_do_unlock(lock);
-+ migrate_enable();
- }
- EXPORT_SYMBOL(lg_local_unlock);
-
- void lg_local_lock_cpu(struct lglock *lg, int cpu)
- {
-- arch_spinlock_t *lock;
-+ lg_lock_ptr *lock;
-
-- preempt_disable();
-+ preempt_disable_nort();
- lock_acquire_shared(&lg->lock_dep_map, 0, 0, NULL, _RET_IP_);
- lock = per_cpu_ptr(lg->lock, cpu);
-- arch_spin_lock(lock);
-+ lg_do_lock(lock);
- }
- EXPORT_SYMBOL(lg_local_lock_cpu);
-
- void lg_local_unlock_cpu(struct lglock *lg, int cpu)
- {
-- arch_spinlock_t *lock;
-+ lg_lock_ptr *lock;
-
- lock_release(&lg->lock_dep_map, 1, _RET_IP_);
- lock = per_cpu_ptr(lg->lock, cpu);
-- arch_spin_unlock(lock);
-- preempt_enable();
-+ lg_do_unlock(lock);
-+ preempt_enable_nort();
- }
- EXPORT_SYMBOL(lg_local_unlock_cpu);
-
-@@ -64,12 +82,12 @@
- {
- int i;
-
-- preempt_disable();
-+ preempt_disable_nort();
- lock_acquire_exclusive(&lg->lock_dep_map, 0, 0, NULL, _RET_IP_);
- for_each_possible_cpu(i) {
-- arch_spinlock_t *lock;
-+ lg_lock_ptr *lock;
- lock = per_cpu_ptr(lg->lock, i);
-- arch_spin_lock(lock);
-+ lg_do_lock(lock);
- }
- }
- EXPORT_SYMBOL(lg_global_lock);
-@@ -80,10 +98,35 @@
-
- lock_release(&lg->lock_dep_map, 1, _RET_IP_);
- for_each_possible_cpu(i) {
-- arch_spinlock_t *lock;
-+ lg_lock_ptr *lock;
- lock = per_cpu_ptr(lg->lock, i);
-- arch_spin_unlock(lock);
-+ lg_do_unlock(lock);
- }
-- preempt_enable();
-+ preempt_enable_nort();
- }
- EXPORT_SYMBOL(lg_global_unlock);
-+
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+/*
-+ * HACK: If you use this, you get to keep the pieces.
-+ * Used in queue_stop_cpus_work() when stop machinery
-+ * is called from inactive CPU, so we can't schedule.
-+ */
-+# define lg_do_trylock_relax(l) \
-+ do { \
-+ while (!__rt_spin_trylock(l)) \
-+ cpu_relax(); \
-+ } while (0)
-+
-+void lg_global_trylock_relax(struct lglock *lg)
-+{
-+ int i;
-+
-+ lock_acquire_exclusive(&lg->lock_dep_map, 0, 0, NULL, _RET_IP_);
-+ for_each_possible_cpu(i) {
-+ lg_lock_ptr *lock;
-+ lock = per_cpu_ptr(lg->lock, i);
-+ lg_do_trylock_relax(lock);
-+ }
-+}
-+#endif
-diff -Nur linux-4.1.39.orig/kernel/locking/lockdep.c linux-4.1.39/kernel/locking/lockdep.c
---- linux-4.1.39.orig/kernel/locking/lockdep.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/locking/lockdep.c 2017-04-18 17:56:30.621397441 +0200
-@@ -668,6 +668,7 @@
- struct lockdep_subclass_key *key;
- struct list_head *hash_head;
- struct lock_class *class;
-+ bool is_static = false;
-
- #ifdef CONFIG_DEBUG_LOCKDEP
- /*
-@@ -695,10 +696,23 @@
-
- /*
- * Static locks do not have their class-keys yet - for them the key
-- * is the lock object itself:
-- */
-- if (unlikely(!lock->key))
-- lock->key = (void *)lock;
-+ * is the lock object itself. If the lock is in the per cpu area,
-+ * the canonical address of the lock (per cpu offset removed) is
-+ * used.
-+ */
-+ if (unlikely(!lock->key)) {
-+ unsigned long can_addr, addr = (unsigned long)lock;
-+
-+ if (__is_kernel_percpu_address(addr, &can_addr))
-+ lock->key = (void *)can_addr;
-+ else if (__is_module_percpu_address(addr, &can_addr))
-+ lock->key = (void *)can_addr;
-+ else if (static_obj(lock))
-+ lock->key = (void *)lock;
-+ else
-+ return ERR_PTR(-EINVAL);
-+ is_static = true;
-+ }
-
- /*
- * NOTE: the class-key must be unique. For dynamic locks, a static
-@@ -730,7 +744,7 @@
- }
- }
-
-- return NULL;
-+ return is_static || static_obj(lock->key) ? NULL : ERR_PTR(-EINVAL);
- }
-
- /*
-@@ -748,19 +762,18 @@
- DEBUG_LOCKS_WARN_ON(!irqs_disabled());
-
- class = look_up_lock_class(lock, subclass);
-- if (likely(class))
-+ if (likely(!IS_ERR_OR_NULL(class)))
- goto out_set_class_cache;
-
- /*
- * Debug-check: all keys must be persistent!
-- */
-- if (!static_obj(lock->key)) {
-+ */
-+ if (IS_ERR(class)) {
- debug_locks_off();
- printk("INFO: trying to register non-static key.\n");
- printk("the code is fine but needs lockdep annotation.\n");
- printk("turning off the locking correctness validator.\n");
- dump_stack();
--
- return NULL;
- }
-
-@@ -3297,7 +3310,7 @@
- * Clearly if the lock hasn't been acquired _ever_, we're not
- * holding it either, so report failure.
- */
-- if (!class)
-+ if (IS_ERR_OR_NULL(class))
- return 0;
-
- /*
-@@ -3563,6 +3576,7 @@
- }
- }
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- /*
- * We dont accurately track softirq state in e.g.
- * hardirq contexts (such as on 4KSTACKS), so only
-@@ -3577,6 +3591,7 @@
- DEBUG_LOCKS_WARN_ON(!current->softirqs_enabled);
- }
- }
-+#endif
-
- if (!debug_locks)
- print_irqtrace_events(current);
-@@ -3980,7 +3995,7 @@
- * If the class exists we look it up and zap it:
- */
- class = look_up_lock_class(lock, j);
-- if (class)
-+ if (!IS_ERR_OR_NULL(class))
- zap_class(class);
- }
- /*
-diff -Nur linux-4.1.39.orig/kernel/locking/locktorture.c linux-4.1.39/kernel/locking/locktorture.c
---- linux-4.1.39.orig/kernel/locking/locktorture.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/locking/locktorture.c 2017-04-18 17:56:30.621397441 +0200
-@@ -24,7 +24,6 @@
- #include <linux/module.h>
- #include <linux/kthread.h>
- #include <linux/spinlock.h>
--#include <linux/rwlock.h>
- #include <linux/mutex.h>
- #include <linux/rwsem.h>
- #include <linux/smp.h>
-diff -Nur linux-4.1.39.orig/kernel/locking/Makefile linux-4.1.39/kernel/locking/Makefile
---- linux-4.1.39.orig/kernel/locking/Makefile 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/locking/Makefile 2017-04-18 17:56:30.621397441 +0200
-@@ -1,5 +1,5 @@
-
--obj-y += mutex.o semaphore.o rwsem.o
-+obj-y += semaphore.o
-
- ifdef CONFIG_FUNCTION_TRACER
- CFLAGS_REMOVE_lockdep.o = $(CC_FLAGS_FTRACE)
-@@ -8,7 +8,11 @@
- CFLAGS_REMOVE_rtmutex-debug.o = $(CC_FLAGS_FTRACE)
- endif
-
-+ifneq ($(CONFIG_PREEMPT_RT_FULL),y)
-+obj-y += mutex.o
- obj-$(CONFIG_DEBUG_MUTEXES) += mutex-debug.o
-+obj-y += rwsem.o
-+endif
- obj-$(CONFIG_LOCKDEP) += lockdep.o
- ifeq ($(CONFIG_PROC_FS),y)
- obj-$(CONFIG_LOCKDEP) += lockdep_proc.o
-@@ -22,8 +26,11 @@
- obj-$(CONFIG_RT_MUTEX_TESTER) += rtmutex-tester.o
- obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock.o
- obj-$(CONFIG_DEBUG_SPINLOCK) += spinlock_debug.o
-+ifneq ($(CONFIG_PREEMPT_RT_FULL),y)
- obj-$(CONFIG_RWSEM_GENERIC_SPINLOCK) += rwsem-spinlock.o
- obj-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += rwsem-xadd.o
-+endif
- obj-$(CONFIG_PERCPU_RWSEM) += percpu-rwsem.o
-+obj-$(CONFIG_PREEMPT_RT_FULL) += rt.o
- obj-$(CONFIG_QUEUE_RWLOCK) += qrwlock.o
- obj-$(CONFIG_LOCK_TORTURE_TEST) += locktorture.o
-diff -Nur linux-4.1.39.orig/kernel/locking/rt.c linux-4.1.39/kernel/locking/rt.c
---- linux-4.1.39.orig/kernel/locking/rt.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/kernel/locking/rt.c 2017-04-18 17:56:30.621397441 +0200
-@@ -0,0 +1,461 @@
-+/*
-+ * kernel/rt.c
-+ *
-+ * Real-Time Preemption Support
-+ *
-+ * started by Ingo Molnar:
-+ *
-+ * Copyright (C) 2004-2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
-+ * Copyright (C) 2006, Timesys Corp., Thomas Gleixner <tglx@timesys.com>
-+ *
-+ * historic credit for proving that Linux spinlocks can be implemented via
-+ * RT-aware mutexes goes to many people: The Pmutex project (Dirk Grambow
-+ * and others) who prototyped it on 2.4 and did lots of comparative
-+ * research and analysis; TimeSys, for proving that you can implement a
-+ * fully preemptible kernel via the use of IRQ threading and mutexes;
-+ * Bill Huey for persuasively arguing on lkml that the mutex model is the
-+ * right one; and to MontaVista, who ported pmutexes to 2.6.
-+ *
-+ * This code is a from-scratch implementation and is not based on pmutexes,
-+ * but the idea of converting spinlocks to mutexes is used here too.
-+ *
-+ * lock debugging, locking tree, deadlock detection:
-+ *
-+ * Copyright (C) 2004, LynuxWorks, Inc., Igor Manyilov, Bill Huey
-+ * Released under the General Public License (GPL).
-+ *
-+ * Includes portions of the generic R/W semaphore implementation from:
-+ *
-+ * Copyright (c) 2001 David Howells (dhowells@redhat.com).
-+ * - Derived partially from idea by Andrea Arcangeli <andrea@suse.de>
-+ * - Derived also from comments by Linus
-+ *
-+ * Pending ownership of locks and ownership stealing:
-+ *
-+ * Copyright (C) 2005, Kihon Technologies Inc., Steven Rostedt
-+ *
-+ * (also by Steven Rostedt)
-+ * - Converted single pi_lock to individual task locks.
-+ *
-+ * By Esben Nielsen:
-+ * Doing priority inheritance with help of the scheduler.
-+ *
-+ * Copyright (C) 2006, Timesys Corp., Thomas Gleixner <tglx@timesys.com>
-+ * - major rework based on Esben Nielsens initial patch
-+ * - replaced thread_info references by task_struct refs
-+ * - removed task->pending_owner dependency
-+ * - BKL drop/reacquire for semaphore style locks to avoid deadlocks
-+ * in the scheduler return path as discussed with Steven Rostedt
-+ *
-+ * Copyright (C) 2006, Kihon Technologies Inc.
-+ * Steven Rostedt <rostedt@goodmis.org>
-+ * - debugged and patched Thomas Gleixner's rework.
-+ * - added back the cmpxchg to the rework.
-+ * - turned atomic require back on for SMP.
-+ */
-+
-+#include <linux/spinlock.h>
-+#include <linux/rtmutex.h>
-+#include <linux/sched.h>
-+#include <linux/delay.h>
-+#include <linux/module.h>
-+#include <linux/kallsyms.h>
-+#include <linux/syscalls.h>
-+#include <linux/interrupt.h>
-+#include <linux/plist.h>
-+#include <linux/fs.h>
-+#include <linux/futex.h>
-+#include <linux/hrtimer.h>
-+
-+#include "rtmutex_common.h"
-+
-+/*
-+ * struct mutex functions
-+ */
-+void __mutex_do_init(struct mutex *mutex, const char *name,
-+ struct lock_class_key *key)
-+{
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+ /*
-+ * Make sure we are not reinitializing a held lock:
-+ */
-+ debug_check_no_locks_freed((void *)mutex, sizeof(*mutex));
-+ lockdep_init_map(&mutex->dep_map, name, key, 0);
-+#endif
-+ mutex->lock.save_state = 0;
-+}
-+EXPORT_SYMBOL(__mutex_do_init);
-+
-+void __lockfunc _mutex_lock(struct mutex *lock)
-+{
-+ mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_);
-+ rt_mutex_lock(&lock->lock);
-+}
-+EXPORT_SYMBOL(_mutex_lock);
-+
-+int __lockfunc _mutex_lock_interruptible(struct mutex *lock)
-+{
-+ int ret;
-+
-+ mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_);
-+ ret = rt_mutex_lock_interruptible(&lock->lock);
-+ if (ret)
-+ mutex_release(&lock->dep_map, 1, _RET_IP_);
-+ return ret;
-+}
-+EXPORT_SYMBOL(_mutex_lock_interruptible);
-+
-+int __lockfunc _mutex_lock_killable(struct mutex *lock)
-+{
-+ int ret;
-+
-+ mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_);
-+ ret = rt_mutex_lock_killable(&lock->lock);
-+ if (ret)
-+ mutex_release(&lock->dep_map, 1, _RET_IP_);
-+ return ret;
-+}
-+EXPORT_SYMBOL(_mutex_lock_killable);
-+
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+void __lockfunc _mutex_lock_nested(struct mutex *lock, int subclass)
-+{
-+ mutex_acquire_nest(&lock->dep_map, subclass, 0, NULL, _RET_IP_);
-+ rt_mutex_lock(&lock->lock);
-+}
-+EXPORT_SYMBOL(_mutex_lock_nested);
-+
-+void __lockfunc _mutex_lock_nest_lock(struct mutex *lock, struct lockdep_map *nest)
-+{
-+ mutex_acquire_nest(&lock->dep_map, 0, 0, nest, _RET_IP_);
-+ rt_mutex_lock(&lock->lock);
-+}
-+EXPORT_SYMBOL(_mutex_lock_nest_lock);
-+
-+int __lockfunc _mutex_lock_interruptible_nested(struct mutex *lock, int subclass)
-+{
-+ int ret;
-+
-+ mutex_acquire_nest(&lock->dep_map, subclass, 0, NULL, _RET_IP_);
-+ ret = rt_mutex_lock_interruptible(&lock->lock);
-+ if (ret)
-+ mutex_release(&lock->dep_map, 1, _RET_IP_);
-+ return ret;
-+}
-+EXPORT_SYMBOL(_mutex_lock_interruptible_nested);
-+
-+int __lockfunc _mutex_lock_killable_nested(struct mutex *lock, int subclass)
-+{
-+ int ret;
-+
-+ mutex_acquire(&lock->dep_map, subclass, 0, _RET_IP_);
-+ ret = rt_mutex_lock_killable(&lock->lock);
-+ if (ret)
-+ mutex_release(&lock->dep_map, 1, _RET_IP_);
-+ return ret;
-+}
-+EXPORT_SYMBOL(_mutex_lock_killable_nested);
-+#endif
-+
-+int __lockfunc _mutex_trylock(struct mutex *lock)
-+{
-+ int ret = rt_mutex_trylock(&lock->lock);
-+
-+ if (ret)
-+ mutex_acquire(&lock->dep_map, 0, 1, _RET_IP_);
-+
-+ return ret;
-+}
-+EXPORT_SYMBOL(_mutex_trylock);
-+
-+void __lockfunc _mutex_unlock(struct mutex *lock)
-+{
-+ mutex_release(&lock->dep_map, 1, _RET_IP_);
-+ rt_mutex_unlock(&lock->lock);
-+}
-+EXPORT_SYMBOL(_mutex_unlock);
-+
-+/*
-+ * rwlock_t functions
-+ */
-+int __lockfunc rt_write_trylock(rwlock_t *rwlock)
-+{
-+ int ret;
-+
-+ migrate_disable();
-+ ret = rt_mutex_trylock(&rwlock->lock);
-+ if (ret)
-+ rwlock_acquire(&rwlock->dep_map, 0, 1, _RET_IP_);
-+ else
-+ migrate_enable();
-+
-+ return ret;
-+}
-+EXPORT_SYMBOL(rt_write_trylock);
-+
-+int __lockfunc rt_write_trylock_irqsave(rwlock_t *rwlock, unsigned long *flags)
-+{
-+ int ret;
-+
-+ *flags = 0;
-+ ret = rt_write_trylock(rwlock);
-+ return ret;
-+}
-+EXPORT_SYMBOL(rt_write_trylock_irqsave);
-+
-+int __lockfunc rt_read_trylock(rwlock_t *rwlock)
-+{
-+ struct rt_mutex *lock = &rwlock->lock;
-+ int ret = 1;
-+
-+ /*
-+ * recursive read locks succeed when current owns the lock,
-+ * but not when read_depth == 0 which means that the lock is
-+ * write locked.
-+ */
-+ if (rt_mutex_owner(lock) != current) {
-+ migrate_disable();
-+ ret = rt_mutex_trylock(lock);
-+ if (ret)
-+ rwlock_acquire(&rwlock->dep_map, 0, 1, _RET_IP_);
-+ else
-+ migrate_enable();
-+
-+ } else if (!rwlock->read_depth) {
-+ ret = 0;
-+ }
-+
-+ if (ret)
-+ rwlock->read_depth++;
-+
-+ return ret;
-+}
-+EXPORT_SYMBOL(rt_read_trylock);
-+
-+void __lockfunc rt_write_lock(rwlock_t *rwlock)
-+{
-+ rwlock_acquire(&rwlock->dep_map, 0, 0, _RET_IP_);
-+ migrate_disable();
-+ __rt_spin_lock(&rwlock->lock);
-+}
-+EXPORT_SYMBOL(rt_write_lock);
-+
-+void __lockfunc rt_read_lock(rwlock_t *rwlock)
-+{
-+ struct rt_mutex *lock = &rwlock->lock;
-+
-+
-+ /*
-+ * recursive read locks succeed when current owns the lock
-+ */
-+ if (rt_mutex_owner(lock) != current) {
-+ migrate_disable();
-+ rwlock_acquire(&rwlock->dep_map, 0, 0, _RET_IP_);
-+ __rt_spin_lock(lock);
-+ }
-+ rwlock->read_depth++;
-+}
-+
-+EXPORT_SYMBOL(rt_read_lock);
-+
-+void __lockfunc rt_write_unlock(rwlock_t *rwlock)
-+{
-+ /* NOTE: we always pass in '1' for nested, for simplicity */
-+ rwlock_release(&rwlock->dep_map, 1, _RET_IP_);
-+ __rt_spin_unlock(&rwlock->lock);
-+ migrate_enable();
-+}
-+EXPORT_SYMBOL(rt_write_unlock);
-+
-+void __lockfunc rt_read_unlock(rwlock_t *rwlock)
-+{
-+ /* Release the lock only when read_depth is down to 0 */
-+ if (--rwlock->read_depth == 0) {
-+ rwlock_release(&rwlock->dep_map, 1, _RET_IP_);
-+ __rt_spin_unlock(&rwlock->lock);
-+ migrate_enable();
-+ }
-+}
-+EXPORT_SYMBOL(rt_read_unlock);
-+
-+unsigned long __lockfunc rt_write_lock_irqsave(rwlock_t *rwlock)
-+{
-+ rt_write_lock(rwlock);
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL(rt_write_lock_irqsave);
-+
-+unsigned long __lockfunc rt_read_lock_irqsave(rwlock_t *rwlock)
-+{
-+ rt_read_lock(rwlock);
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL(rt_read_lock_irqsave);
-+
-+void __rt_rwlock_init(rwlock_t *rwlock, char *name, struct lock_class_key *key)
-+{
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+ /*
-+ * Make sure we are not reinitializing a held lock:
-+ */
-+ debug_check_no_locks_freed((void *)rwlock, sizeof(*rwlock));
-+ lockdep_init_map(&rwlock->dep_map, name, key, 0);
-+#endif
-+ rwlock->lock.save_state = 1;
-+ rwlock->read_depth = 0;
-+}
-+EXPORT_SYMBOL(__rt_rwlock_init);
-+
-+/*
-+ * rw_semaphores
-+ */
-+
-+void rt_up_write(struct rw_semaphore *rwsem)
-+{
-+ rwsem_release(&rwsem->dep_map, 1, _RET_IP_);
-+ rt_mutex_unlock(&rwsem->lock);
-+}
-+EXPORT_SYMBOL(rt_up_write);
-+
-+void __rt_up_read(struct rw_semaphore *rwsem)
-+{
-+ if (--rwsem->read_depth == 0)
-+ rt_mutex_unlock(&rwsem->lock);
-+}
-+
-+void rt_up_read(struct rw_semaphore *rwsem)
-+{
-+ rwsem_release(&rwsem->dep_map, 1, _RET_IP_);
-+ __rt_up_read(rwsem);
-+}
-+EXPORT_SYMBOL(rt_up_read);
-+
-+/*
-+ * downgrade a write lock into a read lock
-+ * - just wake up any readers at the front of the queue
-+ */
-+void rt_downgrade_write(struct rw_semaphore *rwsem)
-+{
-+ BUG_ON(rt_mutex_owner(&rwsem->lock) != current);
-+ rwsem->read_depth = 1;
-+}
-+EXPORT_SYMBOL(rt_downgrade_write);
-+
-+int rt_down_write_trylock(struct rw_semaphore *rwsem)
-+{
-+ int ret = rt_mutex_trylock(&rwsem->lock);
-+
-+ if (ret)
-+ rwsem_acquire(&rwsem->dep_map, 0, 1, _RET_IP_);
-+ return ret;
-+}
-+EXPORT_SYMBOL(rt_down_write_trylock);
-+
-+void rt_down_write(struct rw_semaphore *rwsem)
-+{
-+ rwsem_acquire(&rwsem->dep_map, 0, 0, _RET_IP_);
-+ rt_mutex_lock(&rwsem->lock);
-+}
-+EXPORT_SYMBOL(rt_down_write);
-+
-+void rt_down_write_nested(struct rw_semaphore *rwsem, int subclass)
-+{
-+ rwsem_acquire(&rwsem->dep_map, subclass, 0, _RET_IP_);
-+ rt_mutex_lock(&rwsem->lock);
-+}
-+EXPORT_SYMBOL(rt_down_write_nested);
-+
-+void rt_down_write_nested_lock(struct rw_semaphore *rwsem,
-+ struct lockdep_map *nest)
-+{
-+ rwsem_acquire_nest(&rwsem->dep_map, 0, 0, nest, _RET_IP_);
-+ rt_mutex_lock(&rwsem->lock);
-+}
-+EXPORT_SYMBOL(rt_down_write_nested_lock);
-+
-+int rt_down_read_trylock(struct rw_semaphore *rwsem)
-+{
-+ struct rt_mutex *lock = &rwsem->lock;
-+ int ret = 1;
-+
-+ /*
-+ * recursive read locks succeed when current owns the rwsem,
-+ * but not when read_depth == 0 which means that the rwsem is
-+ * write locked.
-+ */
-+ if (rt_mutex_owner(lock) != current)
-+ ret = rt_mutex_trylock(&rwsem->lock);
-+ else if (!rwsem->read_depth)
-+ ret = 0;
-+
-+ if (ret) {
-+ rwsem->read_depth++;
-+ rwsem_acquire(&rwsem->dep_map, 0, 1, _RET_IP_);
-+ }
-+ return ret;
-+}
-+EXPORT_SYMBOL(rt_down_read_trylock);
-+
-+static void __rt_down_read(struct rw_semaphore *rwsem, int subclass)
-+{
-+ struct rt_mutex *lock = &rwsem->lock;
-+
-+ rwsem_acquire_read(&rwsem->dep_map, subclass, 0, _RET_IP_);
-+
-+ if (rt_mutex_owner(lock) != current)
-+ rt_mutex_lock(&rwsem->lock);
-+ rwsem->read_depth++;
-+}
-+
-+void rt_down_read(struct rw_semaphore *rwsem)
-+{
-+ __rt_down_read(rwsem, 0);
-+}
-+EXPORT_SYMBOL(rt_down_read);
-+
-+void rt_down_read_nested(struct rw_semaphore *rwsem, int subclass)
-+{
-+ __rt_down_read(rwsem, subclass);
-+}
-+EXPORT_SYMBOL(rt_down_read_nested);
-+
-+void __rt_rwsem_init(struct rw_semaphore *rwsem, const char *name,
-+ struct lock_class_key *key)
-+{
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+ /*
-+ * Make sure we are not reinitializing a held lock:
-+ */
-+ debug_check_no_locks_freed((void *)rwsem, sizeof(*rwsem));
-+ lockdep_init_map(&rwsem->dep_map, name, key, 0);
-+#endif
-+ rwsem->read_depth = 0;
-+ rwsem->lock.save_state = 0;
-+}
-+EXPORT_SYMBOL(__rt_rwsem_init);
-+
-+/**
-+ * atomic_dec_and_mutex_lock - return holding mutex if we dec to 0
-+ * @cnt: the atomic which we are to dec
-+ * @lock: the mutex to return holding if we dec to 0
-+ *
-+ * return true and hold lock if we dec to 0, return false otherwise
-+ */
-+int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock)
-+{
-+ /* dec if we can't possibly hit 0 */
-+ if (atomic_add_unless(cnt, -1, 1))
-+ return 0;
-+ /* we might hit 0, so take the lock */
-+ mutex_lock(lock);
-+ if (!atomic_dec_and_test(cnt)) {
-+ /* when we actually did the dec, we didn't hit 0 */
-+ mutex_unlock(lock);
-+ return 0;
-+ }
-+ /* we hit 0, and we hold the lock */
-+ return 1;
-+}
-+EXPORT_SYMBOL(atomic_dec_and_mutex_lock);
-diff -Nur linux-4.1.39.orig/kernel/locking/rtmutex.c linux-4.1.39/kernel/locking/rtmutex.c
---- linux-4.1.39.orig/kernel/locking/rtmutex.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/locking/rtmutex.c 2017-04-18 17:56:30.625397596 +0200
-@@ -7,6 +7,11 @@
- * Copyright (C) 2005-2006 Timesys Corp., Thomas Gleixner <tglx@timesys.com>
- * Copyright (C) 2005 Kihon Technologies Inc., Steven Rostedt
- * Copyright (C) 2006 Esben Nielsen
-+ * Adaptive Spinlocks:
-+ * Copyright (C) 2008 Novell, Inc., Gregory Haskins, Sven Dietrich,
-+ * and Peter Morreale,
-+ * Adaptive Spinlocks simplification:
-+ * Copyright (C) 2008 Red Hat, Inc., Steven Rostedt <srostedt@redhat.com>
- *
- * See Documentation/locking/rt-mutex-design.txt for details.
- */
-@@ -16,6 +21,7 @@
- #include <linux/sched/rt.h>
- #include <linux/sched/deadline.h>
- #include <linux/timer.h>
-+#include <linux/ww_mutex.h>
-
- #include "rtmutex_common.h"
-
-@@ -69,6 +75,12 @@
- clear_rt_mutex_waiters(lock);
- }
-
-+static int rt_mutex_real_waiter(struct rt_mutex_waiter *waiter)
-+{
-+ return waiter && waiter != PI_WAKEUP_INPROGRESS &&
-+ waiter != PI_REQUEUE_INPROGRESS;
-+}
-+
- /*
- * We can speed up the acquire/release, if the architecture
- * supports cmpxchg and if there's no debugging state to be set up
-@@ -300,7 +312,7 @@
- * of task. We do not use the spin_xx_mutex() variants here as we are
- * outside of the debug path.)
- */
--static void rt_mutex_adjust_prio(struct task_struct *task)
-+void rt_mutex_adjust_prio(struct task_struct *task)
- {
- unsigned long flags;
-
-@@ -335,6 +347,14 @@
- return debug_rt_mutex_detect_deadlock(waiter, chwalk);
- }
-
-+static void rt_mutex_wake_waiter(struct rt_mutex_waiter *waiter)
-+{
-+ if (waiter->savestate)
-+ wake_up_lock_sleeper(waiter->task);
-+ else
-+ wake_up_process(waiter->task);
-+}
-+
- /*
- * Max number of times we'll walk the boosting chain:
- */
-@@ -342,7 +362,8 @@
-
- static inline struct rt_mutex *task_blocked_on_lock(struct task_struct *p)
- {
-- return p->pi_blocked_on ? p->pi_blocked_on->lock : NULL;
-+ return rt_mutex_real_waiter(p->pi_blocked_on) ?
-+ p->pi_blocked_on->lock : NULL;
- }
-
- /*
-@@ -479,7 +500,7 @@
- * reached or the state of the chain has changed while we
- * dropped the locks.
- */
-- if (!waiter)
-+ if (!rt_mutex_real_waiter(waiter))
- goto out_unlock_pi;
-
- /*
-@@ -641,13 +662,16 @@
- * follow here. This is the end of the chain we are walking.
- */
- if (!rt_mutex_owner(lock)) {
-+ struct rt_mutex_waiter *lock_top_waiter;
-+
- /*
- * If the requeue [7] above changed the top waiter,
- * then we need to wake the new top waiter up to try
- * to get the lock.
- */
-- if (prerequeue_top_waiter != rt_mutex_top_waiter(lock))
-- wake_up_process(rt_mutex_top_waiter(lock)->task);
-+ lock_top_waiter = rt_mutex_top_waiter(lock);
-+ if (prerequeue_top_waiter != lock_top_waiter)
-+ rt_mutex_wake_waiter(lock_top_waiter);
- raw_spin_unlock(&lock->wait_lock);
- return 0;
- }
-@@ -740,6 +764,25 @@
- return ret;
- }
-
-+
-+#define STEAL_NORMAL 0
-+#define STEAL_LATERAL 1
-+
-+/*
-+ * Note that RT tasks are excluded from lateral-steals to prevent the
-+ * introduction of an unbounded latency
-+ */
-+static inline int lock_is_stealable(struct task_struct *task,
-+ struct task_struct *pendowner, int mode)
-+{
-+ if (mode == STEAL_NORMAL || rt_task(task)) {
-+ if (task->prio >= pendowner->prio)
-+ return 0;
-+ } else if (task->prio > pendowner->prio)
-+ return 0;
-+ return 1;
-+}
-+
- /*
- * Try to take an rt-mutex
- *
-@@ -750,8 +793,9 @@
- * @waiter: The waiter that is queued to the lock's wait list if the
- * callsite called task_blocked_on_lock(), otherwise NULL
- */
--static int try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task,
-- struct rt_mutex_waiter *waiter)
-+static int __try_to_take_rt_mutex(struct rt_mutex *lock,
-+ struct task_struct *task,
-+ struct rt_mutex_waiter *waiter, int mode)
- {
- unsigned long flags;
-
-@@ -790,8 +834,10 @@
- * If waiter is not the highest priority waiter of
- * @lock, give up.
- */
-- if (waiter != rt_mutex_top_waiter(lock))
-+ if (waiter != rt_mutex_top_waiter(lock)) {
-+ /* XXX lock_is_stealable() ? */
- return 0;
-+ }
-
- /*
- * We can acquire the lock. Remove the waiter from the
-@@ -809,14 +855,10 @@
- * not need to be dequeued.
- */
- if (rt_mutex_has_waiters(lock)) {
-- /*
-- * If @task->prio is greater than or equal to
-- * the top waiter priority (kernel view),
-- * @task lost.
-- */
-- if (task->prio >= rt_mutex_top_waiter(lock)->prio)
-- return 0;
-+ struct task_struct *pown = rt_mutex_top_waiter(lock)->task;
-
-+ if (task != pown && !lock_is_stealable(task, pown, mode))
-+ return 0;
- /*
- * The current top waiter stays enqueued. We
- * don't have to change anything in the lock
-@@ -865,6 +907,347 @@
- return 1;
- }
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+/*
-+ * preemptible spin_lock functions:
-+ */
-+static inline void rt_spin_lock_fastlock(struct rt_mutex *lock,
-+ void (*slowfn)(struct rt_mutex *lock))
-+{
-+ might_sleep_no_state_check();
-+
-+ if (likely(rt_mutex_cmpxchg(lock, NULL, current)))
-+ rt_mutex_deadlock_account_lock(lock, current);
-+ else
-+ slowfn(lock);
-+}
-+
-+static inline void rt_spin_lock_fastunlock(struct rt_mutex *lock,
-+ void (*slowfn)(struct rt_mutex *lock))
-+{
-+ if (likely(rt_mutex_cmpxchg(lock, current, NULL)))
-+ rt_mutex_deadlock_account_unlock(current);
-+ else
-+ slowfn(lock);
-+}
-+#ifdef CONFIG_SMP
-+/*
-+ * Note that owner is a speculative pointer and dereferencing relies
-+ * on rcu_read_lock() and the check against the lock owner.
-+ */
-+static int adaptive_wait(struct rt_mutex *lock,
-+ struct task_struct *owner)
-+{
-+ int res = 0;
-+
-+ rcu_read_lock();
-+ for (;;) {
-+ if (owner != rt_mutex_owner(lock))
-+ break;
-+ /*
-+ * Ensure that owner->on_cpu is dereferenced _after_
-+ * checking the above to be valid.
-+ */
-+ barrier();
-+ if (!owner->on_cpu) {
-+ res = 1;
-+ break;
-+ }
-+ cpu_relax();
-+ }
-+ rcu_read_unlock();
-+ return res;
-+}
-+#else
-+static int adaptive_wait(struct rt_mutex *lock,
-+ struct task_struct *orig_owner)
-+{
-+ return 1;
-+}
-+#endif
-+
-+# define pi_lock(lock) raw_spin_lock_irq(lock)
-+# define pi_unlock(lock) raw_spin_unlock_irq(lock)
-+
-+static int task_blocks_on_rt_mutex(struct rt_mutex *lock,
-+ struct rt_mutex_waiter *waiter,
-+ struct task_struct *task,
-+ enum rtmutex_chainwalk chwalk);
-+/*
-+ * Slow path lock function spin_lock style: this variant is very
-+ * careful not to miss any non-lock wakeups.
-+ *
-+ * We store the current state under p->pi_lock in p->saved_state and
-+ * the try_to_wake_up() code handles this accordingly.
-+ */
-+static void noinline __sched rt_spin_lock_slowlock(struct rt_mutex *lock)
-+{
-+ struct task_struct *lock_owner, *self = current;
-+ struct rt_mutex_waiter waiter, *top_waiter;
-+ int ret;
-+
-+ rt_mutex_init_waiter(&waiter, true);
-+
-+ raw_spin_lock(&lock->wait_lock);
-+
-+ if (__try_to_take_rt_mutex(lock, self, NULL, STEAL_LATERAL)) {
-+ raw_spin_unlock(&lock->wait_lock);
-+ return;
-+ }
-+
-+ BUG_ON(rt_mutex_owner(lock) == self);
-+
-+ /*
-+ * We save whatever state the task is in and we'll restore it
-+ * after acquiring the lock taking real wakeups into account
-+ * as well. We are serialized via pi_lock against wakeups. See
-+ * try_to_wake_up().
-+ */
-+ pi_lock(&self->pi_lock);
-+ self->saved_state = self->state;
-+ __set_current_state_no_track(TASK_UNINTERRUPTIBLE);
-+ pi_unlock(&self->pi_lock);
-+
-+ ret = task_blocks_on_rt_mutex(lock, &waiter, self, RT_MUTEX_MIN_CHAINWALK);
-+ BUG_ON(ret);
-+
-+ for (;;) {
-+ /* Try to acquire the lock again. */
-+ if (__try_to_take_rt_mutex(lock, self, &waiter, STEAL_LATERAL))
-+ break;
-+
-+ top_waiter = rt_mutex_top_waiter(lock);
-+ lock_owner = rt_mutex_owner(lock);
-+
-+ raw_spin_unlock(&lock->wait_lock);
-+
-+ debug_rt_mutex_print_deadlock(&waiter);
-+
-+ if (top_waiter != &waiter || adaptive_wait(lock, lock_owner))
-+ schedule_rt_mutex(lock);
-+
-+ raw_spin_lock(&lock->wait_lock);
-+
-+ pi_lock(&self->pi_lock);
-+ __set_current_state_no_track(TASK_UNINTERRUPTIBLE);
-+ pi_unlock(&self->pi_lock);
-+ }
-+
-+ /*
-+ * Restore the task state to current->saved_state. We set it
-+ * to the original state above and the try_to_wake_up() code
-+ * has possibly updated it when a real (non-rtmutex) wakeup
-+ * happened while we were blocked. Clear saved_state so
-+ * try_to_wakeup() does not get confused.
-+ */
-+ pi_lock(&self->pi_lock);
-+ __set_current_state_no_track(self->saved_state);
-+ self->saved_state = TASK_RUNNING;
-+ pi_unlock(&self->pi_lock);
-+
-+ /*
-+ * try_to_take_rt_mutex() sets the waiter bit
-+ * unconditionally. We might have to fix that up:
-+ */
-+ fixup_rt_mutex_waiters(lock);
-+
-+ BUG_ON(rt_mutex_has_waiters(lock) && &waiter == rt_mutex_top_waiter(lock));
-+ BUG_ON(!RB_EMPTY_NODE(&waiter.tree_entry));
-+
-+ raw_spin_unlock(&lock->wait_lock);
-+
-+ debug_rt_mutex_free_waiter(&waiter);
-+}
-+
-+static void wakeup_next_waiter(struct rt_mutex *lock);
-+/*
-+ * Slow path to release a rt_mutex spin_lock style
-+ */
-+static void noinline __sched rt_spin_lock_slowunlock(struct rt_mutex *lock)
-+{
-+ raw_spin_lock(&lock->wait_lock);
-+
-+ debug_rt_mutex_unlock(lock);
-+
-+ rt_mutex_deadlock_account_unlock(current);
-+
-+ if (!rt_mutex_has_waiters(lock)) {
-+ lock->owner = NULL;
-+ raw_spin_unlock(&lock->wait_lock);
-+ return;
-+ }
-+
-+ wakeup_next_waiter(lock);
-+
-+ raw_spin_unlock(&lock->wait_lock);
-+
-+ /* Undo pi boosting.when necessary */
-+ rt_mutex_adjust_prio(current);
-+}
-+
-+void __lockfunc rt_spin_lock(spinlock_t *lock)
-+{
-+ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock);
-+ spin_acquire(&lock->dep_map, 0, 0, _RET_IP_);
-+}
-+EXPORT_SYMBOL(rt_spin_lock);
-+
-+void __lockfunc __rt_spin_lock(struct rt_mutex *lock)
-+{
-+ rt_spin_lock_fastlock(lock, rt_spin_lock_slowlock);
-+}
-+EXPORT_SYMBOL(__rt_spin_lock);
-+
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass)
-+{
-+ rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock);
-+ spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_);
-+}
-+EXPORT_SYMBOL(rt_spin_lock_nested);
-+#endif
-+
-+void __lockfunc rt_spin_unlock(spinlock_t *lock)
-+{
-+ /* NOTE: we always pass in '1' for nested, for simplicity */
-+ spin_release(&lock->dep_map, 1, _RET_IP_);
-+ rt_spin_lock_fastunlock(&lock->lock, rt_spin_lock_slowunlock);
-+}
-+EXPORT_SYMBOL(rt_spin_unlock);
-+
-+void __lockfunc __rt_spin_unlock(struct rt_mutex *lock)
-+{
-+ rt_spin_lock_fastunlock(lock, rt_spin_lock_slowunlock);
-+}
-+EXPORT_SYMBOL(__rt_spin_unlock);
-+
-+/*
-+ * Wait for the lock to get unlocked: instead of polling for an unlock
-+ * (like raw spinlocks do), we lock and unlock, to force the kernel to
-+ * schedule if there's contention:
-+ */
-+void __lockfunc rt_spin_unlock_wait(spinlock_t *lock)
-+{
-+ spin_lock(lock);
-+ spin_unlock(lock);
-+}
-+EXPORT_SYMBOL(rt_spin_unlock_wait);
-+
-+int __lockfunc __rt_spin_trylock(struct rt_mutex *lock)
-+{
-+ return rt_mutex_trylock(lock);
-+}
-+
-+int __lockfunc rt_spin_trylock(spinlock_t *lock)
-+{
-+ int ret = rt_mutex_trylock(&lock->lock);
-+
-+ if (ret)
-+ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
-+ return ret;
-+}
-+EXPORT_SYMBOL(rt_spin_trylock);
-+
-+int __lockfunc rt_spin_trylock_bh(spinlock_t *lock)
-+{
-+ int ret;
-+
-+ local_bh_disable();
-+ ret = rt_mutex_trylock(&lock->lock);
-+ if (ret) {
-+ migrate_disable();
-+ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
-+ } else
-+ local_bh_enable();
-+ return ret;
-+}
-+EXPORT_SYMBOL(rt_spin_trylock_bh);
-+
-+int __lockfunc rt_spin_trylock_irqsave(spinlock_t *lock, unsigned long *flags)
-+{
-+ int ret;
-+
-+ *flags = 0;
-+ ret = rt_mutex_trylock(&lock->lock);
-+ if (ret) {
-+ migrate_disable();
-+ spin_acquire(&lock->dep_map, 0, 1, _RET_IP_);
-+ }
-+ return ret;
-+}
-+EXPORT_SYMBOL(rt_spin_trylock_irqsave);
-+
-+int atomic_dec_and_spin_lock(atomic_t *atomic, spinlock_t *lock)
-+{
-+ /* Subtract 1 from counter unless that drops it to 0 (ie. it was 1) */
-+ if (atomic_add_unless(atomic, -1, 1))
-+ return 0;
-+ migrate_disable();
-+ rt_spin_lock(lock);
-+ if (atomic_dec_and_test(atomic))
-+ return 1;
-+ rt_spin_unlock(lock);
-+ migrate_enable();
-+ return 0;
-+}
-+EXPORT_SYMBOL(atomic_dec_and_spin_lock);
-+
-+ void
-+__rt_spin_lock_init(spinlock_t *lock, char *name, struct lock_class_key *key)
-+{
-+#ifdef CONFIG_DEBUG_LOCK_ALLOC
-+ /*
-+ * Make sure we are not reinitializing a held lock:
-+ */
-+ debug_check_no_locks_freed((void *)lock, sizeof(*lock));
-+ lockdep_init_map(&lock->dep_map, name, key, 0);
-+#endif
-+}
-+EXPORT_SYMBOL(__rt_spin_lock_init);
-+
-+#endif /* PREEMPT_RT_FULL */
-+
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ static inline int __sched
-+__mutex_lock_check_stamp(struct rt_mutex *lock, struct ww_acquire_ctx *ctx)
-+{
-+ struct ww_mutex *ww = container_of(lock, struct ww_mutex, base.lock);
-+ struct ww_acquire_ctx *hold_ctx = ACCESS_ONCE(ww->ctx);
-+
-+ if (!hold_ctx)
-+ return 0;
-+
-+ if (unlikely(ctx == hold_ctx))
-+ return -EALREADY;
-+
-+ if (ctx->stamp - hold_ctx->stamp <= LONG_MAX &&
-+ (ctx->stamp != hold_ctx->stamp || ctx > hold_ctx)) {
-+#ifdef CONFIG_DEBUG_MUTEXES
-+ DEBUG_LOCKS_WARN_ON(ctx->contending_lock);
-+ ctx->contending_lock = ww;
-+#endif
-+ return -EDEADLK;
-+ }
-+
-+ return 0;
-+}
-+#else
-+ static inline int __sched
-+__mutex_lock_check_stamp(struct rt_mutex *lock, struct ww_acquire_ctx *ctx)
-+{
-+ BUG();
-+ return 0;
-+}
-+
-+#endif
-+
-+static inline int
-+try_to_take_rt_mutex(struct rt_mutex *lock, struct task_struct *task,
-+ struct rt_mutex_waiter *waiter)
-+{
-+ return __try_to_take_rt_mutex(lock, task, waiter, STEAL_NORMAL);
-+}
-+
- /*
- * Task blocks on lock.
- *
-@@ -896,6 +1279,23 @@
- return -EDEADLK;
-
- raw_spin_lock_irqsave(&task->pi_lock, flags);
-+
-+ /*
-+ * In the case of futex requeue PI, this will be a proxy
-+ * lock. The task will wake unaware that it is enqueueed on
-+ * this lock. Avoid blocking on two locks and corrupting
-+ * pi_blocked_on via the PI_WAKEUP_INPROGRESS
-+ * flag. futex_wait_requeue_pi() sets this when it wakes up
-+ * before requeue (due to a signal or timeout). Do not enqueue
-+ * the task if PI_WAKEUP_INPROGRESS is set.
-+ */
-+ if (task != current && task->pi_blocked_on == PI_WAKEUP_INPROGRESS) {
-+ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
-+ return -EAGAIN;
-+ }
-+
-+ BUG_ON(rt_mutex_real_waiter(task->pi_blocked_on));
-+
- __rt_mutex_adjust_prio(task);
- waiter->task = task;
- waiter->lock = lock;
-@@ -919,7 +1319,7 @@
- rt_mutex_enqueue_pi(owner, waiter);
-
- __rt_mutex_adjust_prio(owner);
-- if (owner->pi_blocked_on)
-+ if (rt_mutex_real_waiter(owner->pi_blocked_on))
- chain_walk = 1;
- } else if (rt_mutex_cond_detect_deadlock(waiter, chwalk)) {
- chain_walk = 1;
-@@ -957,8 +1357,9 @@
- /*
- * Wake up the next waiter on the lock.
- *
-- * Remove the top waiter from the current tasks pi waiter list and
-- * wake it up.
-+ * Remove the top waiter from the current tasks pi waiter list,
-+ * wake it up and return whether the current task needs to undo
-+ * a potential priority boosting.
- *
- * Called with lock->wait_lock held.
- */
-@@ -996,7 +1397,7 @@
- * long as we hold lock->wait_lock. The waiter task needs to
- * acquire it in order to dequeue the waiter.
- */
-- wake_up_process(waiter->task);
-+ rt_mutex_wake_waiter(waiter);
- }
-
- /*
-@@ -1010,7 +1411,7 @@
- {
- bool is_top_waiter = (waiter == rt_mutex_top_waiter(lock));
- struct task_struct *owner = rt_mutex_owner(lock);
-- struct rt_mutex *next_lock;
-+ struct rt_mutex *next_lock = NULL;
- unsigned long flags;
-
- raw_spin_lock_irqsave(&current->pi_lock, flags);
-@@ -1035,7 +1436,8 @@
- __rt_mutex_adjust_prio(owner);
-
- /* Store the lock on which owner is blocked or NULL */
-- next_lock = task_blocked_on_lock(owner);
-+ if (rt_mutex_real_waiter(owner->pi_blocked_on))
-+ next_lock = task_blocked_on_lock(owner);
-
- raw_spin_unlock_irqrestore(&owner->pi_lock, flags);
-
-@@ -1071,17 +1473,17 @@
- raw_spin_lock_irqsave(&task->pi_lock, flags);
-
- waiter = task->pi_blocked_on;
-- if (!waiter || (waiter->prio == task->prio &&
-+ if (!rt_mutex_real_waiter(waiter) || (waiter->prio == task->prio &&
- !dl_prio(task->prio))) {
- raw_spin_unlock_irqrestore(&task->pi_lock, flags);
- return;
- }
- next_lock = waiter->lock;
-- raw_spin_unlock_irqrestore(&task->pi_lock, flags);
-
- /* gets dropped in rt_mutex_adjust_prio_chain()! */
- get_task_struct(task);
-
-+ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
- rt_mutex_adjust_prio_chain(task, RT_MUTEX_MIN_CHAINWALK, NULL,
- next_lock, NULL, task);
- }
-@@ -1099,7 +1501,8 @@
- static int __sched
- __rt_mutex_slowlock(struct rt_mutex *lock, int state,
- struct hrtimer_sleeper *timeout,
-- struct rt_mutex_waiter *waiter)
-+ struct rt_mutex_waiter *waiter,
-+ struct ww_acquire_ctx *ww_ctx)
- {
- int ret = 0;
-
-@@ -1122,6 +1525,12 @@
- break;
- }
-
-+ if (ww_ctx && ww_ctx->acquired > 0) {
-+ ret = __mutex_lock_check_stamp(lock, ww_ctx);
-+ if (ret)
-+ break;
-+ }
-+
- raw_spin_unlock(&lock->wait_lock);
-
- debug_rt_mutex_print_deadlock(waiter);
-@@ -1156,25 +1565,102 @@
- }
- }
-
-+static __always_inline void ww_mutex_lock_acquired(struct ww_mutex *ww,
-+ struct ww_acquire_ctx *ww_ctx)
-+{
-+#ifdef CONFIG_DEBUG_MUTEXES
-+ /*
-+ * If this WARN_ON triggers, you used ww_mutex_lock to acquire,
-+ * but released with a normal mutex_unlock in this call.
-+ *
-+ * This should never happen, always use ww_mutex_unlock.
-+ */
-+ DEBUG_LOCKS_WARN_ON(ww->ctx);
-+
-+ /*
-+ * Not quite done after calling ww_acquire_done() ?
-+ */
-+ DEBUG_LOCKS_WARN_ON(ww_ctx->done_acquire);
-+
-+ if (ww_ctx->contending_lock) {
-+ /*
-+ * After -EDEADLK you tried to
-+ * acquire a different ww_mutex? Bad!
-+ */
-+ DEBUG_LOCKS_WARN_ON(ww_ctx->contending_lock != ww);
-+
-+ /*
-+ * You called ww_mutex_lock after receiving -EDEADLK,
-+ * but 'forgot' to unlock everything else first?
-+ */
-+ DEBUG_LOCKS_WARN_ON(ww_ctx->acquired > 0);
-+ ww_ctx->contending_lock = NULL;
-+ }
-+
-+ /*
-+ * Naughty, using a different class will lead to undefined behavior!
-+ */
-+ DEBUG_LOCKS_WARN_ON(ww_ctx->ww_class != ww->ww_class);
-+#endif
-+ ww_ctx->acquired++;
-+}
-+
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+static void ww_mutex_account_lock(struct rt_mutex *lock,
-+ struct ww_acquire_ctx *ww_ctx)
-+{
-+ struct ww_mutex *ww = container_of(lock, struct ww_mutex, base.lock);
-+ struct rt_mutex_waiter *waiter, *n;
-+
-+ /*
-+ * This branch gets optimized out for the common case,
-+ * and is only important for ww_mutex_lock.
-+ */
-+ ww_mutex_lock_acquired(ww, ww_ctx);
-+ ww->ctx = ww_ctx;
-+
-+ /*
-+ * Give any possible sleeping processes the chance to wake up,
-+ * so they can recheck if they have to back off.
-+ */
-+ rbtree_postorder_for_each_entry_safe(waiter, n, &lock->waiters,
-+ tree_entry) {
-+ /* XXX debug rt mutex waiter wakeup */
-+
-+ BUG_ON(waiter->lock != lock);
-+ rt_mutex_wake_waiter(waiter);
-+ }
-+}
-+
-+#else
-+
-+static void ww_mutex_account_lock(struct rt_mutex *lock,
-+ struct ww_acquire_ctx *ww_ctx)
-+{
-+ BUG();
-+}
-+#endif
-+
- /*
- * Slow path lock function:
- */
- static int __sched
- rt_mutex_slowlock(struct rt_mutex *lock, int state,
- struct hrtimer_sleeper *timeout,
-- enum rtmutex_chainwalk chwalk)
-+ enum rtmutex_chainwalk chwalk,
-+ struct ww_acquire_ctx *ww_ctx)
- {
- struct rt_mutex_waiter waiter;
- int ret = 0;
-
-- debug_rt_mutex_init_waiter(&waiter);
-- RB_CLEAR_NODE(&waiter.pi_tree_entry);
-- RB_CLEAR_NODE(&waiter.tree_entry);
-+ rt_mutex_init_waiter(&waiter, false);
-
- raw_spin_lock(&lock->wait_lock);
-
- /* Try to acquire the lock again: */
- if (try_to_take_rt_mutex(lock, current, NULL)) {
-+ if (ww_ctx)
-+ ww_mutex_account_lock(lock, ww_ctx);
- raw_spin_unlock(&lock->wait_lock);
- return 0;
- }
-@@ -1192,13 +1678,23 @@
-
- if (likely(!ret))
- /* sleep on the mutex */
-- ret = __rt_mutex_slowlock(lock, state, timeout, &waiter);
-+ ret = __rt_mutex_slowlock(lock, state, timeout, &waiter,
-+ ww_ctx);
-+ else if (ww_ctx) {
-+ /* ww_mutex received EDEADLK, let it become EALREADY */
-+ ret = __mutex_lock_check_stamp(lock, ww_ctx);
-+ BUG_ON(!ret);
-+ }
-
- if (unlikely(ret)) {
- __set_current_state(TASK_RUNNING);
- if (rt_mutex_has_waiters(lock))
- remove_waiter(lock, &waiter);
-- rt_mutex_handle_deadlock(ret, chwalk, &waiter);
-+ /* ww_mutex want to report EDEADLK/EALREADY, let them */
-+ if (!ww_ctx)
-+ rt_mutex_handle_deadlock(ret, chwalk, &waiter);
-+ } else if (ww_ctx) {
-+ ww_mutex_account_lock(lock, ww_ctx);
- }
-
- /*
-@@ -1255,7 +1751,7 @@
- /*
- * Slow path to release a rt-mutex:
- */
--static void __sched
-+static bool __sched
- rt_mutex_slowunlock(struct rt_mutex *lock)
- {
- raw_spin_lock(&lock->wait_lock);
-@@ -1298,7 +1794,7 @@
- while (!rt_mutex_has_waiters(lock)) {
- /* Drops lock->wait_lock ! */
- if (unlock_rt_mutex_safe(lock) == true)
-- return;
-+ return false;
- /* Relock the rtmutex and try again */
- raw_spin_lock(&lock->wait_lock);
- }
-@@ -1311,8 +1807,7 @@
-
- raw_spin_unlock(&lock->wait_lock);
-
-- /* Undo pi boosting if necessary: */
-- rt_mutex_adjust_prio(current);
-+ return true;
- }
-
- /*
-@@ -1323,31 +1818,36 @@
- */
- static inline int
- rt_mutex_fastlock(struct rt_mutex *lock, int state,
-+ struct ww_acquire_ctx *ww_ctx,
- int (*slowfn)(struct rt_mutex *lock, int state,
- struct hrtimer_sleeper *timeout,
-- enum rtmutex_chainwalk chwalk))
-+ enum rtmutex_chainwalk chwalk,
-+ struct ww_acquire_ctx *ww_ctx))
- {
- if (likely(rt_mutex_cmpxchg(lock, NULL, current))) {
- rt_mutex_deadlock_account_lock(lock, current);
- return 0;
- } else
-- return slowfn(lock, state, NULL, RT_MUTEX_MIN_CHAINWALK);
-+ return slowfn(lock, state, NULL, RT_MUTEX_MIN_CHAINWALK,
-+ ww_ctx);
- }
-
- static inline int
- rt_mutex_timed_fastlock(struct rt_mutex *lock, int state,
- struct hrtimer_sleeper *timeout,
- enum rtmutex_chainwalk chwalk,
-+ struct ww_acquire_ctx *ww_ctx,
- int (*slowfn)(struct rt_mutex *lock, int state,
- struct hrtimer_sleeper *timeout,
-- enum rtmutex_chainwalk chwalk))
-+ enum rtmutex_chainwalk chwalk,
-+ struct ww_acquire_ctx *ww_ctx))
- {
- if (chwalk == RT_MUTEX_MIN_CHAINWALK &&
- likely(rt_mutex_cmpxchg(lock, NULL, current))) {
- rt_mutex_deadlock_account_lock(lock, current);
- return 0;
- } else
-- return slowfn(lock, state, timeout, chwalk);
-+ return slowfn(lock, state, timeout, chwalk, ww_ctx);
- }
-
- static inline int
-@@ -1363,12 +1863,14 @@
-
- static inline void
- rt_mutex_fastunlock(struct rt_mutex *lock,
-- void (*slowfn)(struct rt_mutex *lock))
-+ bool (*slowfn)(struct rt_mutex *lock))
- {
-- if (likely(rt_mutex_cmpxchg(lock, current, NULL)))
-+ if (likely(rt_mutex_cmpxchg(lock, current, NULL))) {
- rt_mutex_deadlock_account_unlock(current);
-- else
-- slowfn(lock);
-+ } else if (slowfn(lock)) {
-+ /* Undo pi boosting if necessary: */
-+ rt_mutex_adjust_prio(current);
-+ }
- }
-
- /**
-@@ -1380,7 +1882,7 @@
- {
- might_sleep();
-
-- rt_mutex_fastlock(lock, TASK_UNINTERRUPTIBLE, rt_mutex_slowlock);
-+ rt_mutex_fastlock(lock, TASK_UNINTERRUPTIBLE, NULL, rt_mutex_slowlock);
- }
- EXPORT_SYMBOL_GPL(rt_mutex_lock);
-
-@@ -1397,7 +1899,7 @@
- {
- might_sleep();
-
-- return rt_mutex_fastlock(lock, TASK_INTERRUPTIBLE, rt_mutex_slowlock);
-+ return rt_mutex_fastlock(lock, TASK_INTERRUPTIBLE, NULL, rt_mutex_slowlock);
- }
- EXPORT_SYMBOL_GPL(rt_mutex_lock_interruptible);
-
-@@ -1410,11 +1912,30 @@
- might_sleep();
-
- return rt_mutex_timed_fastlock(lock, TASK_INTERRUPTIBLE, timeout,
-- RT_MUTEX_FULL_CHAINWALK,
-+ RT_MUTEX_FULL_CHAINWALK, NULL,
- rt_mutex_slowlock);
- }
-
- /**
-+ * rt_mutex_lock_killable - lock a rt_mutex killable
-+ *
-+ * @lock: the rt_mutex to be locked
-+ * @detect_deadlock: deadlock detection on/off
-+ *
-+ * Returns:
-+ * 0 on success
-+ * -EINTR when interrupted by a signal
-+ * -EDEADLK when the lock would deadlock (when deadlock detection is on)
-+ */
-+int __sched rt_mutex_lock_killable(struct rt_mutex *lock)
-+{
-+ might_sleep();
-+
-+ return rt_mutex_fastlock(lock, TASK_KILLABLE, NULL, rt_mutex_slowlock);
-+}
-+EXPORT_SYMBOL_GPL(rt_mutex_lock_killable);
-+
-+/**
- * rt_mutex_timed_lock - lock a rt_mutex interruptible
- * the timeout structure is provided
- * by the caller
-@@ -1434,6 +1955,7 @@
-
- return rt_mutex_timed_fastlock(lock, TASK_INTERRUPTIBLE, timeout,
- RT_MUTEX_MIN_CHAINWALK,
-+ NULL,
- rt_mutex_slowlock);
- }
- EXPORT_SYMBOL_GPL(rt_mutex_timed_lock);
-@@ -1463,6 +1985,22 @@
- EXPORT_SYMBOL_GPL(rt_mutex_unlock);
-
- /**
-+ * rt_mutex_futex_unlock - Futex variant of rt_mutex_unlock
-+ * @lock: the rt_mutex to be unlocked
-+ *
-+ * Returns: true/false indicating whether priority adjustment is
-+ * required or not.
-+ */
-+bool __sched rt_mutex_futex_unlock(struct rt_mutex *lock)
-+{
-+ if (likely(rt_mutex_cmpxchg(lock, current, NULL))) {
-+ rt_mutex_deadlock_account_unlock(current);
-+ return false;
-+ }
-+ return rt_mutex_slowunlock(lock);
-+}
-+
-+/**
- * rt_mutex_destroy - mark a mutex unusable
- * @lock: the mutex to be destroyed
- *
-@@ -1492,13 +2030,12 @@
- void __rt_mutex_init(struct rt_mutex *lock, const char *name)
- {
- lock->owner = NULL;
-- raw_spin_lock_init(&lock->wait_lock);
- lock->waiters = RB_ROOT;
- lock->waiters_leftmost = NULL;
-
- debug_rt_mutex_init(lock, name);
- }
--EXPORT_SYMBOL_GPL(__rt_mutex_init);
-+EXPORT_SYMBOL(__rt_mutex_init);
-
- /**
- * rt_mutex_init_proxy_locked - initialize and lock a rt_mutex on behalf of a
-@@ -1513,7 +2050,7 @@
- void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
- struct task_struct *proxy_owner)
- {
-- __rt_mutex_init(lock, NULL);
-+ rt_mutex_init(lock);
- debug_rt_mutex_proxy_lock(lock, proxy_owner);
- rt_mutex_set_owner(lock, proxy_owner);
- rt_mutex_deadlock_account_lock(lock, proxy_owner);
-@@ -1561,6 +2098,35 @@
- return 1;
- }
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ /*
-+ * In PREEMPT_RT there's an added race.
-+ * If the task, that we are about to requeue, times out,
-+ * it can set the PI_WAKEUP_INPROGRESS. This tells the requeue
-+ * to skip this task. But right after the task sets
-+ * its pi_blocked_on to PI_WAKEUP_INPROGRESS it can then
-+ * block on the spin_lock(&hb->lock), which in RT is an rtmutex.
-+ * This will replace the PI_WAKEUP_INPROGRESS with the actual
-+ * lock that it blocks on. We *must not* place this task
-+ * on this proxy lock in that case.
-+ *
-+ * To prevent this race, we first take the task's pi_lock
-+ * and check if it has updated its pi_blocked_on. If it has,
-+ * we assume that it woke up and we return -EAGAIN.
-+ * Otherwise, we set the task's pi_blocked_on to
-+ * PI_REQUEUE_INPROGRESS, so that if the task is waking up
-+ * it will know that we are in the process of requeuing it.
-+ */
-+ raw_spin_lock_irq(&task->pi_lock);
-+ if (task->pi_blocked_on) {
-+ raw_spin_unlock_irq(&task->pi_lock);
-+ raw_spin_unlock(&lock->wait_lock);
-+ return -EAGAIN;
-+ }
-+ task->pi_blocked_on = PI_REQUEUE_INPROGRESS;
-+ raw_spin_unlock_irq(&task->pi_lock);
-+#endif
-+
- /* We enforce deadlock detection for futexes */
- ret = task_blocks_on_rt_mutex(lock, waiter, task,
- RT_MUTEX_FULL_CHAINWALK);
-@@ -1575,7 +2141,7 @@
- ret = 0;
- }
-
-- if (unlikely(ret))
-+ if (ret && rt_mutex_has_waiters(lock))
- remove_waiter(lock, waiter);
-
- raw_spin_unlock(&lock->wait_lock);
-@@ -1631,7 +2197,7 @@
- set_current_state(TASK_INTERRUPTIBLE);
-
- /* sleep on the mutex */
-- ret = __rt_mutex_slowlock(lock, TASK_INTERRUPTIBLE, to, waiter);
-+ ret = __rt_mutex_slowlock(lock, TASK_INTERRUPTIBLE, to, waiter, NULL);
-
- if (unlikely(ret))
- remove_waiter(lock, waiter);
-@@ -1646,3 +2212,89 @@
-
- return ret;
- }
-+
-+static inline int
-+ww_mutex_deadlock_injection(struct ww_mutex *lock, struct ww_acquire_ctx *ctx)
-+{
-+#ifdef CONFIG_DEBUG_WW_MUTEX_SLOWPATH
-+ unsigned tmp;
-+
-+ if (ctx->deadlock_inject_countdown-- == 0) {
-+ tmp = ctx->deadlock_inject_interval;
-+ if (tmp > UINT_MAX/4)
-+ tmp = UINT_MAX;
-+ else
-+ tmp = tmp*2 + tmp + tmp/2;
-+
-+ ctx->deadlock_inject_interval = tmp;
-+ ctx->deadlock_inject_countdown = tmp;
-+ ctx->contending_lock = lock;
-+
-+ ww_mutex_unlock(lock);
-+
-+ return -EDEADLK;
-+ }
-+#endif
-+
-+ return 0;
-+}
-+
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+int __sched
-+__ww_mutex_lock_interruptible(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx)
-+{
-+ int ret;
-+
-+ might_sleep();
-+
-+ mutex_acquire_nest(&lock->base.dep_map, 0, 0, &ww_ctx->dep_map, _RET_IP_);
-+ ret = rt_mutex_slowlock(&lock->base.lock, TASK_INTERRUPTIBLE, NULL, 0, ww_ctx);
-+ if (ret)
-+ mutex_release(&lock->base.dep_map, 1, _RET_IP_);
-+ else if (!ret && ww_ctx->acquired > 1)
-+ return ww_mutex_deadlock_injection(lock, ww_ctx);
-+
-+ return ret;
-+}
-+EXPORT_SYMBOL_GPL(__ww_mutex_lock_interruptible);
-+
-+int __sched
-+__ww_mutex_lock(struct ww_mutex *lock, struct ww_acquire_ctx *ww_ctx)
-+{
-+ int ret;
-+
-+ might_sleep();
-+
-+ mutex_acquire_nest(&lock->base.dep_map, 0, 0, &ww_ctx->dep_map, _RET_IP_);
-+ ret = rt_mutex_slowlock(&lock->base.lock, TASK_UNINTERRUPTIBLE, NULL, 0, ww_ctx);
-+ if (ret)
-+ mutex_release(&lock->base.dep_map, 1, _RET_IP_);
-+ else if (!ret && ww_ctx->acquired > 1)
-+ return ww_mutex_deadlock_injection(lock, ww_ctx);
-+
-+ return ret;
-+}
-+EXPORT_SYMBOL_GPL(__ww_mutex_lock);
-+
-+void __sched ww_mutex_unlock(struct ww_mutex *lock)
-+{
-+ int nest = !!lock->ctx;
-+
-+ /*
-+ * The unlocking fastpath is the 0->1 transition from 'locked'
-+ * into 'unlocked' state:
-+ */
-+ if (nest) {
-+#ifdef CONFIG_DEBUG_MUTEXES
-+ DEBUG_LOCKS_WARN_ON(!lock->ctx->acquired);
-+#endif
-+ if (lock->ctx->acquired > 0)
-+ lock->ctx->acquired--;
-+ lock->ctx = NULL;
-+ }
-+
-+ mutex_release(&lock->base.dep_map, nest, _RET_IP_);
-+ rt_mutex_unlock(&lock->base.lock);
-+}
-+EXPORT_SYMBOL(ww_mutex_unlock);
-+#endif
-diff -Nur linux-4.1.39.orig/kernel/locking/rtmutex_common.h linux-4.1.39/kernel/locking/rtmutex_common.h
---- linux-4.1.39.orig/kernel/locking/rtmutex_common.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/locking/rtmutex_common.h 2017-04-18 17:56:30.625397596 +0200
-@@ -49,6 +49,7 @@
- struct rb_node pi_tree_entry;
- struct task_struct *task;
- struct rt_mutex *lock;
-+ bool savestate;
- #ifdef CONFIG_DEBUG_RT_MUTEXES
- unsigned long ip;
- struct pid *deadlock_task_pid;
-@@ -119,6 +120,9 @@
- /*
- * PI-futex support (proxy locking functions, etc.):
- */
-+#define PI_WAKEUP_INPROGRESS ((struct rt_mutex_waiter *) 1)
-+#define PI_REQUEUE_INPROGRESS ((struct rt_mutex_waiter *) 2)
-+
- extern struct task_struct *rt_mutex_next_owner(struct rt_mutex *lock);
- extern void rt_mutex_init_proxy_locked(struct rt_mutex *lock,
- struct task_struct *proxy_owner);
-@@ -132,10 +136,24 @@
- struct rt_mutex_waiter *waiter);
- extern int rt_mutex_timed_futex_lock(struct rt_mutex *l, struct hrtimer_sleeper *to);
-
-+extern bool rt_mutex_futex_unlock(struct rt_mutex *lock);
-+
-+extern void rt_mutex_adjust_prio(struct task_struct *task);
-+
- #ifdef CONFIG_DEBUG_RT_MUTEXES
- # include "rtmutex-debug.h"
- #else
- # include "rtmutex.h"
- #endif
-
-+static inline void
-+rt_mutex_init_waiter(struct rt_mutex_waiter *waiter, bool savestate)
-+{
-+ debug_rt_mutex_init_waiter(waiter);
-+ waiter->task = NULL;
-+ waiter->savestate = savestate;
-+ RB_CLEAR_NODE(&waiter->pi_tree_entry);
-+ RB_CLEAR_NODE(&waiter->tree_entry);
-+}
-+
- #endif
-diff -Nur linux-4.1.39.orig/kernel/locking/spinlock.c linux-4.1.39/kernel/locking/spinlock.c
---- linux-4.1.39.orig/kernel/locking/spinlock.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/locking/spinlock.c 2017-04-18 17:56:30.625397596 +0200
-@@ -124,8 +124,11 @@
- * __[spin|read|write]_lock_bh()
- */
- BUILD_LOCK_OPS(spin, raw_spinlock);
-+
-+#ifndef CONFIG_PREEMPT_RT_FULL
- BUILD_LOCK_OPS(read, rwlock);
- BUILD_LOCK_OPS(write, rwlock);
-+#endif
-
- #endif
-
-@@ -209,6 +212,8 @@
- EXPORT_SYMBOL(_raw_spin_unlock_bh);
- #endif
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+
- #ifndef CONFIG_INLINE_READ_TRYLOCK
- int __lockfunc _raw_read_trylock(rwlock_t *lock)
- {
-@@ -353,6 +358,8 @@
- EXPORT_SYMBOL(_raw_write_unlock_bh);
- #endif
-
-+#endif /* !PREEMPT_RT_FULL */
-+
- #ifdef CONFIG_DEBUG_LOCK_ALLOC
-
- void __lockfunc _raw_spin_lock_nested(raw_spinlock_t *lock, int subclass)
-diff -Nur linux-4.1.39.orig/kernel/locking/spinlock_debug.c linux-4.1.39/kernel/locking/spinlock_debug.c
---- linux-4.1.39.orig/kernel/locking/spinlock_debug.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/locking/spinlock_debug.c 2017-04-18 17:56:30.625397596 +0200
-@@ -31,6 +31,7 @@
-
- EXPORT_SYMBOL(__raw_spin_lock_init);
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- void __rwlock_init(rwlock_t *lock, const char *name,
- struct lock_class_key *key)
- {
-@@ -48,6 +49,7 @@
- }
-
- EXPORT_SYMBOL(__rwlock_init);
-+#endif
-
- static void spin_dump(raw_spinlock_t *lock, const char *msg)
- {
-@@ -159,6 +161,7 @@
- arch_spin_unlock(&lock->raw_lock);
- }
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- static void rwlock_bug(rwlock_t *lock, const char *msg)
- {
- if (!debug_locks_off())
-@@ -300,3 +303,5 @@
- debug_write_unlock(lock);
- arch_write_unlock(&lock->raw_lock);
- }
-+
-+#endif
-diff -Nur linux-4.1.39.orig/kernel/module.c linux-4.1.39/kernel/module.c
---- linux-4.1.39.orig/kernel/module.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/module.c 2017-04-18 17:56:30.625397596 +0200
-@@ -525,16 +525,7 @@
- memcpy(per_cpu_ptr(mod->percpu, cpu), from, size);
- }
-
--/**
-- * is_module_percpu_address - test whether address is from module static percpu
-- * @addr: address to test
-- *
-- * Test whether @addr belongs to module static percpu area.
-- *
-- * RETURNS:
-- * %true if @addr is from module static percpu area
-- */
--bool is_module_percpu_address(unsigned long addr)
-+bool __is_module_percpu_address(unsigned long addr, unsigned long *can_addr)
- {
- struct module *mod;
- unsigned int cpu;
-@@ -548,9 +539,11 @@
- continue;
- for_each_possible_cpu(cpu) {
- void *start = per_cpu_ptr(mod->percpu, cpu);
-+ void *va = (void *)addr;
-
-- if ((void *)addr >= start &&
-- (void *)addr < start + mod->percpu_size) {
-+ if (va >= start && va < start + mod->percpu_size) {
-+ if (can_addr)
-+ *can_addr = (unsigned long) (va - start);
- preempt_enable();
- return true;
- }
-@@ -561,6 +554,20 @@
- return false;
- }
-
-+/**
-+ * is_module_percpu_address - test whether address is from module static percpu
-+ * @addr: address to test
-+ *
-+ * Test whether @addr belongs to module static percpu area.
-+ *
-+ * RETURNS:
-+ * %true if @addr is from module static percpu area
-+ */
-+bool is_module_percpu_address(unsigned long addr)
-+{
-+ return __is_module_percpu_address(addr, NULL);
-+}
-+
- #else /* ... !CONFIG_SMP */
-
- static inline void __percpu *mod_percpu(struct module *mod)
-@@ -591,6 +598,11 @@
- {
- return false;
- }
-+
-+bool __is_module_percpu_address(unsigned long addr, unsigned long *can_addr)
-+{
-+ return false;
-+}
-
- #endif /* CONFIG_SMP */
-
-diff -Nur linux-4.1.39.orig/kernel/panic.c linux-4.1.39/kernel/panic.c
---- linux-4.1.39.orig/kernel/panic.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/panic.c 2017-04-18 17:56:30.625397596 +0200
-@@ -399,9 +399,11 @@
-
- static int init_oops_id(void)
- {
-+#ifndef CONFIG_PREEMPT_RT_FULL
- if (!oops_id)
- get_random_bytes(&oops_id, sizeof(oops_id));
- else
-+#endif
- oops_id++;
-
- return 0;
-diff -Nur linux-4.1.39.orig/kernel/power/hibernate.c linux-4.1.39/kernel/power/hibernate.c
---- linux-4.1.39.orig/kernel/power/hibernate.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/power/hibernate.c 2017-04-18 17:56:30.625397596 +0200
-@@ -285,6 +285,8 @@
-
- local_irq_disable();
-
-+ system_state = SYSTEM_SUSPEND;
-+
- error = syscore_suspend();
- if (error) {
- printk(KERN_ERR "PM: Some system devices failed to power down, "
-@@ -314,6 +316,7 @@
- syscore_resume();
-
- Enable_irqs:
-+ system_state = SYSTEM_RUNNING;
- local_irq_enable();
-
- Enable_cpus:
-@@ -437,6 +440,7 @@
- goto Enable_cpus;
-
- local_irq_disable();
-+ system_state = SYSTEM_SUSPEND;
-
- error = syscore_suspend();
- if (error)
-@@ -470,6 +474,7 @@
- syscore_resume();
-
- Enable_irqs:
-+ system_state = SYSTEM_RUNNING;
- local_irq_enable();
-
- Enable_cpus:
-@@ -555,6 +560,7 @@
- goto Platform_finish;
-
- local_irq_disable();
-+ system_state = SYSTEM_SUSPEND;
- syscore_suspend();
- if (pm_wakeup_pending()) {
- error = -EAGAIN;
-@@ -567,6 +573,7 @@
-
- Power_up:
- syscore_resume();
-+ system_state = SYSTEM_RUNNING;
- local_irq_enable();
- enable_nonboot_cpus();
-
-diff -Nur linux-4.1.39.orig/kernel/power/suspend.c linux-4.1.39/kernel/power/suspend.c
---- linux-4.1.39.orig/kernel/power/suspend.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/power/suspend.c 2017-04-18 17:56:30.625397596 +0200
-@@ -356,6 +356,8 @@
- arch_suspend_disable_irqs();
- BUG_ON(!irqs_disabled());
-
-+ system_state = SYSTEM_SUSPEND;
-+
- error = syscore_suspend();
- if (!error) {
- *wakeup = pm_wakeup_pending();
-@@ -370,6 +372,8 @@
- syscore_resume();
- }
-
-+ system_state = SYSTEM_RUNNING;
-+
- arch_suspend_enable_irqs();
- BUG_ON(irqs_disabled());
-
-diff -Nur linux-4.1.39.orig/kernel/printk/printk.c linux-4.1.39/kernel/printk/printk.c
---- linux-4.1.39.orig/kernel/printk/printk.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/printk/printk.c 2017-04-18 17:56:30.625397596 +0200
-@@ -1163,6 +1163,7 @@
- {
- char *text;
- int len = 0;
-+ int attempts = 0;
-
- text = kmalloc(LOG_LINE_MAX + PREFIX_MAX, GFP_KERNEL);
- if (!text)
-@@ -1174,7 +1175,14 @@
- u64 seq;
- u32 idx;
- enum log_flags prev;
--
-+ int num_msg;
-+try_again:
-+ attempts++;
-+ if (attempts > 10) {
-+ len = -EBUSY;
-+ goto out;
-+ }
-+ num_msg = 0;
- if (clear_seq < log_first_seq) {
- /* messages are gone, move to first available one */
- clear_seq = log_first_seq;
-@@ -1195,6 +1203,14 @@
- prev = msg->flags;
- idx = log_next(idx);
- seq++;
-+ num_msg++;
-+ if (num_msg > 5) {
-+ num_msg = 0;
-+ raw_spin_unlock_irq(&logbuf_lock);
-+ raw_spin_lock_irq(&logbuf_lock);
-+ if (clear_seq < log_first_seq)
-+ goto try_again;
-+ }
- }
-
- /* move first record forward until length fits into the buffer */
-@@ -1208,6 +1224,14 @@
- prev = msg->flags;
- idx = log_next(idx);
- seq++;
-+ num_msg++;
-+ if (num_msg > 5) {
-+ num_msg = 0;
-+ raw_spin_unlock_irq(&logbuf_lock);
-+ raw_spin_lock_irq(&logbuf_lock);
-+ if (clear_seq < log_first_seq)
-+ goto try_again;
-+ }
- }
-
- /* last message fitting into this dump */
-@@ -1248,6 +1272,7 @@
- clear_seq = log_next_seq;
- clear_idx = log_next_idx;
- }
-+out:
- raw_spin_unlock_irq(&logbuf_lock);
-
- kfree(text);
-@@ -1401,6 +1426,12 @@
- if (!console_drivers)
- return;
-
-+ if (IS_ENABLED(CONFIG_PREEMPT_RT_BASE)) {
-+ if (in_irq() || in_nmi())
-+ return;
-+ }
-+
-+ migrate_disable();
- for_each_console(con) {
- if (exclusive_console && con != exclusive_console)
- continue;
-@@ -1413,6 +1444,7 @@
- continue;
- con->write(con, text, len);
- }
-+ migrate_enable();
- }
-
- /*
-@@ -1473,6 +1505,15 @@
- static int console_trylock_for_printk(void)
- {
- unsigned int cpu = smp_processor_id();
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ int lock = !early_boot_irqs_disabled && (preempt_count() == 0) &&
-+ !irqs_disabled();
-+#else
-+ int lock = 1;
-+#endif
-+
-+ if (!lock)
-+ return 0;
-
- if (!console_trylock())
- return 0;
-@@ -1607,6 +1648,62 @@
- return textlen;
- }
-
-+#ifdef CONFIG_EARLY_PRINTK
-+struct console *early_console;
-+
-+static void early_vprintk(const char *fmt, va_list ap)
-+{
-+ if (early_console) {
-+ char buf[512];
-+ int n = vscnprintf(buf, sizeof(buf), fmt, ap);
-+
-+ early_console->write(early_console, buf, n);
-+ }
-+}
-+
-+asmlinkage void early_printk(const char *fmt, ...)
-+{
-+ va_list ap;
-+
-+ va_start(ap, fmt);
-+ early_vprintk(fmt, ap);
-+ va_end(ap);
-+}
-+
-+/*
-+ * This is independent of any log levels - a global
-+ * kill switch that turns off all of printk.
-+ *
-+ * Used by the NMI watchdog if early-printk is enabled.
-+ */
-+static bool __read_mostly printk_killswitch;
-+
-+static int __init force_early_printk_setup(char *str)
-+{
-+ printk_killswitch = true;
-+ return 0;
-+}
-+early_param("force_early_printk", force_early_printk_setup);
-+
-+void printk_kill(void)
-+{
-+ printk_killswitch = true;
-+}
-+
-+static int forced_early_printk(const char *fmt, va_list ap)
-+{
-+ if (!printk_killswitch)
-+ return 0;
-+ early_vprintk(fmt, ap);
-+ return 1;
-+}
-+#else
-+static inline int forced_early_printk(const char *fmt, va_list ap)
-+{
-+ return 0;
-+}
-+#endif
-+
- asmlinkage int vprintk_emit(int facility, int level,
- const char *dict, size_t dictlen,
- const char *fmt, va_list args)
-@@ -1623,6 +1720,13 @@
- /* cpu currently holding logbuf_lock in this function */
- static unsigned int logbuf_cpu = UINT_MAX;
-
-+ /*
-+ * Fall back to early_printk if a debugging subsystem has
-+ * killed printk output
-+ */
-+ if (unlikely(forced_early_printk(fmt, args)))
-+ return 1;
-+
- if (level == LOGLEVEL_SCHED) {
- level = LOGLEVEL_DEFAULT;
- in_sched = true;
-@@ -1764,8 +1868,7 @@
- * console_sem which would prevent anyone from printing to
- * console
- */
-- preempt_disable();
--
-+ migrate_disable();
- /*
- * Try to acquire and then immediately release the console
- * semaphore. The release will print out buffers and wake up
-@@ -1773,7 +1876,7 @@
- */
- if (console_trylock_for_printk())
- console_unlock();
-- preempt_enable();
-+ migrate_enable();
- lockdep_on();
- }
-
-@@ -1902,26 +2005,6 @@
-
- #endif /* CONFIG_PRINTK */
-
--#ifdef CONFIG_EARLY_PRINTK
--struct console *early_console;
--
--asmlinkage __visible void early_printk(const char *fmt, ...)
--{
-- va_list ap;
-- char buf[512];
-- int n;
--
-- if (!early_console)
-- return;
--
-- va_start(ap, fmt);
-- n = vscnprintf(buf, sizeof(buf), fmt, ap);
-- va_end(ap);
--
-- early_console->write(early_console, buf, n);
--}
--#endif
--
- static int __add_preferred_console(char *name, int idx, char *options,
- char *brl_options)
- {
-@@ -2143,11 +2226,16 @@
- goto out;
-
- len = cont_print_text(text, size);
-+#ifndef CONFIG_PREEMPT_RT_FULL
- raw_spin_unlock(&logbuf_lock);
- stop_critical_timings();
- call_console_drivers(cont.level, text, len);
- start_critical_timings();
- local_irq_restore(flags);
-+#else
-+ raw_spin_unlock_irqrestore(&logbuf_lock, flags);
-+ call_console_drivers(cont.level, text, len);
-+#endif
- return;
- out:
- raw_spin_unlock_irqrestore(&logbuf_lock, flags);
-@@ -2246,12 +2334,17 @@
- console_idx = log_next(console_idx);
- console_seq++;
- console_prev = msg->flags;
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ raw_spin_unlock_irqrestore(&logbuf_lock, flags);
-+ call_console_drivers(level, text, len);
-+#else
- raw_spin_unlock(&logbuf_lock);
-
- stop_critical_timings(); /* don't trace print latency */
- call_console_drivers(level, text, len);
- start_critical_timings();
- local_irq_restore(flags);
-+#endif
-
- if (do_cond_resched)
- cond_resched();
-@@ -2304,6 +2397,11 @@
- {
- struct console *c;
-
-+ if (IS_ENABLED(CONFIG_PREEMPT_RT_BASE)) {
-+ if (in_irq() || in_nmi())
-+ return;
-+ }
-+
- /*
- * console_unblank can no longer be called in interrupt context unless
- * oops_in_progress is set to 1..
-diff -Nur linux-4.1.39.orig/kernel/ptrace.c linux-4.1.39/kernel/ptrace.c
---- linux-4.1.39.orig/kernel/ptrace.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/ptrace.c 2017-04-18 17:56:30.625397596 +0200
-@@ -137,7 +137,14 @@
-
- spin_lock_irq(&task->sighand->siglock);
- if (task_is_traced(task) && !__fatal_signal_pending(task)) {
-- task->state = __TASK_TRACED;
-+ unsigned long flags;
-+
-+ raw_spin_lock_irqsave(&task->pi_lock, flags);
-+ if (task->state & __TASK_TRACED)
-+ task->state = __TASK_TRACED;
-+ else
-+ task->saved_state = __TASK_TRACED;
-+ raw_spin_unlock_irqrestore(&task->pi_lock, flags);
- ret = true;
- }
- spin_unlock_irq(&task->sighand->siglock);
-diff -Nur linux-4.1.39.orig/kernel/rcu/rcutorture.c linux-4.1.39/kernel/rcu/rcutorture.c
---- linux-4.1.39.orig/kernel/rcu/rcutorture.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/rcu/rcutorture.c 2017-04-18 17:56:30.625397596 +0200
-@@ -389,6 +389,7 @@
- .name = "rcu"
- };
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- /*
- * Definitions for rcu_bh torture testing.
- */
-@@ -428,6 +429,12 @@
- .name = "rcu_bh"
- };
-
-+#else
-+static struct rcu_torture_ops rcu_bh_ops = {
-+ .ttype = INVALID_RCU_FLAVOR,
-+};
-+#endif
-+
- /*
- * Don't even think about trying any of these in real life!!!
- * The names includes "busted", and they really means it!
-diff -Nur linux-4.1.39.orig/kernel/rcu/tree.c linux-4.1.39/kernel/rcu/tree.c
---- linux-4.1.39.orig/kernel/rcu/tree.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/rcu/tree.c 2017-04-18 17:56:30.625397596 +0200
-@@ -56,6 +56,11 @@
- #include <linux/random.h>
- #include <linux/ftrace_event.h>
- #include <linux/suspend.h>
-+#include <linux/delay.h>
-+#include <linux/gfp.h>
-+#include <linux/oom.h>
-+#include <linux/smpboot.h>
-+#include "../time/tick-internal.h"
-
- #include "tree.h"
- #include "rcu.h"
-@@ -220,6 +225,19 @@
- }
- }
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+static void rcu_preempt_qs(void);
-+
-+void rcu_bh_qs(void)
-+{
-+ unsigned long flags;
-+
-+ /* Callers to this function, rcu_preempt_qs(), must disable irqs. */
-+ local_irq_save(flags);
-+ rcu_preempt_qs();
-+ local_irq_restore(flags);
-+}
-+#else
- void rcu_bh_qs(void)
- {
- if (!__this_cpu_read(rcu_bh_data.passed_quiesce)) {
-@@ -229,6 +247,7 @@
- __this_cpu_write(rcu_bh_data.passed_quiesce, 1);
- }
- }
-+#endif
-
- static DEFINE_PER_CPU(int, rcu_sched_qs_mask);
-
-@@ -404,6 +423,7 @@
- }
- EXPORT_SYMBOL_GPL(rcu_batches_completed_sched);
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- /*
- * Return the number of RCU BH batches completed thus far for debug & stats.
- */
-@@ -431,6 +451,13 @@
- }
- EXPORT_SYMBOL_GPL(rcu_bh_force_quiescent_state);
-
-+#else
-+void rcu_force_quiescent_state(void)
-+{
-+}
-+EXPORT_SYMBOL_GPL(rcu_force_quiescent_state);
-+#endif
-+
- /*
- * Force a quiescent state for RCU-sched.
- */
-@@ -1545,7 +1572,7 @@
- !ACCESS_ONCE(rsp->gp_flags) ||
- !rsp->gp_kthread)
- return;
-- wake_up(&rsp->gp_wq);
-+ swait_wake(&rsp->gp_wq);
- }
-
- /*
-@@ -1986,7 +2013,7 @@
- ACCESS_ONCE(rsp->gpnum),
- TPS("reqwait"));
- rsp->gp_state = RCU_GP_WAIT_GPS;
-- wait_event_interruptible(rsp->gp_wq,
-+ swait_event_interruptible(rsp->gp_wq,
- ACCESS_ONCE(rsp->gp_flags) &
- RCU_GP_FLAG_INIT);
- /* Locking provides needed memory barrier. */
-@@ -2015,7 +2042,7 @@
- ACCESS_ONCE(rsp->gpnum),
- TPS("fqswait"));
- rsp->gp_state = RCU_GP_WAIT_FQS;
-- ret = wait_event_interruptible_timeout(rsp->gp_wq,
-+ ret = swait_event_interruptible_timeout(rsp->gp_wq,
- ((gf = ACCESS_ONCE(rsp->gp_flags)) &
- RCU_GP_FLAG_FQS) ||
- (!ACCESS_ONCE(rnp->qsmask) &&
-@@ -2860,18 +2887,17 @@
- /*
- * Do RCU core processing for the current CPU.
- */
--static void rcu_process_callbacks(struct softirq_action *unused)
-+static void rcu_process_callbacks(void)
- {
- struct rcu_state *rsp;
-
- if (cpu_is_offline(smp_processor_id()))
- return;
-- trace_rcu_utilization(TPS("Start RCU core"));
- for_each_rcu_flavor(rsp)
- __rcu_process_callbacks(rsp);
-- trace_rcu_utilization(TPS("End RCU core"));
- }
-
-+static DEFINE_PER_CPU(struct task_struct *, rcu_cpu_kthread_task);
- /*
- * Schedule RCU callback invocation. If the specified type of RCU
- * does not support RCU priority boosting, just do a direct call,
-@@ -2883,18 +2909,105 @@
- {
- if (unlikely(!ACCESS_ONCE(rcu_scheduler_fully_active)))
- return;
-- if (likely(!rsp->boost)) {
-- rcu_do_batch(rsp, rdp);
-+ rcu_do_batch(rsp, rdp);
-+}
-+
-+static void rcu_wake_cond(struct task_struct *t, int status)
-+{
-+ /*
-+ * If the thread is yielding, only wake it when this
-+ * is invoked from idle
-+ */
-+ if (t && (status != RCU_KTHREAD_YIELDING || is_idle_task(current)))
-+ wake_up_process(t);
-+}
-+
-+/*
-+ * Wake up this CPU's rcuc kthread to do RCU core processing.
-+ */
-+static void invoke_rcu_core(void)
-+{
-+ unsigned long flags;
-+ struct task_struct *t;
-+
-+ if (!cpu_online(smp_processor_id()))
- return;
-+ local_irq_save(flags);
-+ __this_cpu_write(rcu_cpu_has_work, 1);
-+ t = __this_cpu_read(rcu_cpu_kthread_task);
-+ if (t != NULL && current != t)
-+ rcu_wake_cond(t, __this_cpu_read(rcu_cpu_kthread_status));
-+ local_irq_restore(flags);
-+}
-+
-+static void rcu_cpu_kthread_park(unsigned int cpu)
-+{
-+ per_cpu(rcu_cpu_kthread_status, cpu) = RCU_KTHREAD_OFFCPU;
-+}
-+
-+static int rcu_cpu_kthread_should_run(unsigned int cpu)
-+{
-+ return __this_cpu_read(rcu_cpu_has_work);
-+}
-+
-+/*
-+ * Per-CPU kernel thread that invokes RCU callbacks. This replaces the
-+ * RCU softirq used in flavors and configurations of RCU that do not
-+ * support RCU priority boosting.
-+ */
-+static void rcu_cpu_kthread(unsigned int cpu)
-+{
-+ unsigned int *statusp = this_cpu_ptr(&rcu_cpu_kthread_status);
-+ char work, *workp = this_cpu_ptr(&rcu_cpu_has_work);
-+ int spincnt;
-+
-+ for (spincnt = 0; spincnt < 10; spincnt++) {
-+ trace_rcu_utilization(TPS("Start CPU kthread@rcu_wait"));
-+ local_bh_disable();
-+ *statusp = RCU_KTHREAD_RUNNING;
-+ this_cpu_inc(rcu_cpu_kthread_loops);
-+ local_irq_disable();
-+ work = *workp;
-+ *workp = 0;
-+ local_irq_enable();
-+ if (work)
-+ rcu_process_callbacks();
-+ local_bh_enable();
-+ if (*workp == 0) {
-+ trace_rcu_utilization(TPS("End CPU kthread@rcu_wait"));
-+ *statusp = RCU_KTHREAD_WAITING;
-+ return;
-+ }
- }
-- invoke_rcu_callbacks_kthread();
-+ *statusp = RCU_KTHREAD_YIELDING;
-+ trace_rcu_utilization(TPS("Start CPU kthread@rcu_yield"));
-+ schedule_timeout_interruptible(2);
-+ trace_rcu_utilization(TPS("End CPU kthread@rcu_yield"));
-+ *statusp = RCU_KTHREAD_WAITING;
- }
-
--static void invoke_rcu_core(void)
-+static struct smp_hotplug_thread rcu_cpu_thread_spec = {
-+ .store = &rcu_cpu_kthread_task,
-+ .thread_should_run = rcu_cpu_kthread_should_run,
-+ .thread_fn = rcu_cpu_kthread,
-+ .thread_comm = "rcuc/%u",
-+ .setup = rcu_cpu_kthread_setup,
-+ .park = rcu_cpu_kthread_park,
-+};
-+
-+/*
-+ * Spawn per-CPU RCU core processing kthreads.
-+ */
-+static int __init rcu_spawn_core_kthreads(void)
- {
-- if (cpu_online(smp_processor_id()))
-- raise_softirq(RCU_SOFTIRQ);
-+ int cpu;
-+
-+ for_each_possible_cpu(cpu)
-+ per_cpu(rcu_cpu_has_work, cpu) = 0;
-+ BUG_ON(smpboot_register_percpu_thread(&rcu_cpu_thread_spec));
-+ return 0;
- }
-+early_initcall(rcu_spawn_core_kthreads);
-
- /*
- * Handle any core-RCU processing required by a call_rcu() invocation.
-@@ -3040,6 +3153,7 @@
- }
- EXPORT_SYMBOL_GPL(call_rcu_sched);
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- /*
- * Queue an RCU callback for invocation after a quicker grace period.
- */
-@@ -3048,6 +3162,7 @@
- __call_rcu(head, func, &rcu_bh_state, -1, 0);
- }
- EXPORT_SYMBOL_GPL(call_rcu_bh);
-+#endif
-
- /*
- * Queue an RCU callback for lazy invocation after a grace period.
-@@ -3139,6 +3254,7 @@
- }
- EXPORT_SYMBOL_GPL(synchronize_sched);
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- /**
- * synchronize_rcu_bh - wait until an rcu_bh grace period has elapsed.
- *
-@@ -3165,6 +3281,7 @@
- wait_rcu_gp(call_rcu_bh);
- }
- EXPORT_SYMBOL_GPL(synchronize_rcu_bh);
-+#endif
-
- /**
- * get_state_synchronize_rcu - Snapshot current RCU state
-@@ -3677,6 +3794,7 @@
- mutex_unlock(&rsp->barrier_mutex);
- }
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- /**
- * rcu_barrier_bh - Wait until all in-flight call_rcu_bh() callbacks complete.
- */
-@@ -3685,6 +3803,7 @@
- _rcu_barrier(&rcu_bh_state);
- }
- EXPORT_SYMBOL_GPL(rcu_barrier_bh);
-+#endif
-
- /**
- * rcu_barrier_sched - Wait for in-flight call_rcu_sched() callbacks.
-@@ -4021,7 +4140,7 @@
- }
- }
-
-- init_waitqueue_head(&rsp->gp_wq);
-+ init_swait_head(&rsp->gp_wq);
- rnp = rsp->level[rcu_num_lvls - 1];
- for_each_possible_cpu(i) {
- while (i > rnp->grphi)
-@@ -4120,7 +4239,6 @@
- rcu_init_one(&rcu_bh_state, &rcu_bh_data);
- rcu_init_one(&rcu_sched_state, &rcu_sched_data);
- __rcu_init_preempt();
-- open_softirq(RCU_SOFTIRQ, rcu_process_callbacks);
-
- /*
- * We don't need protection against CPU-hotplug here because
-diff -Nur linux-4.1.39.orig/kernel/rcu/tree.h linux-4.1.39/kernel/rcu/tree.h
---- linux-4.1.39.orig/kernel/rcu/tree.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/rcu/tree.h 2017-04-18 17:56:30.629397751 +0200
-@@ -27,6 +27,7 @@
- #include <linux/threads.h>
- #include <linux/cpumask.h>
- #include <linux/seqlock.h>
-+#include <linux/wait-simple.h>
-
- /*
- * Define shape of hierarchy based on NR_CPUS, CONFIG_RCU_FANOUT, and
-@@ -210,7 +211,7 @@
- /* This can happen due to race conditions. */
- #endif /* #ifdef CONFIG_RCU_BOOST */
- #ifdef CONFIG_RCU_NOCB_CPU
-- wait_queue_head_t nocb_gp_wq[2];
-+ struct swait_head nocb_gp_wq[2];
- /* Place for rcu_nocb_kthread() to wait GP. */
- #endif /* #ifdef CONFIG_RCU_NOCB_CPU */
- int need_future_gp[2];
-@@ -349,7 +350,7 @@
- atomic_long_t nocb_q_count_lazy; /* invocation (all stages). */
- struct rcu_head *nocb_follower_head; /* CBs ready to invoke. */
- struct rcu_head **nocb_follower_tail;
-- wait_queue_head_t nocb_wq; /* For nocb kthreads to sleep on. */
-+ struct swait_head nocb_wq; /* For nocb kthreads to sleep on. */
- struct task_struct *nocb_kthread;
- int nocb_defer_wakeup; /* Defer wakeup of nocb_kthread. */
-
-@@ -438,7 +439,7 @@
- unsigned long gpnum; /* Current gp number. */
- unsigned long completed; /* # of last completed gp. */
- struct task_struct *gp_kthread; /* Task for grace periods. */
-- wait_queue_head_t gp_wq; /* Where GP task waits. */
-+ struct swait_head gp_wq; /* Where GP task waits. */
- short gp_flags; /* Commands for GP task. */
- short gp_state; /* GP kthread sleep state. */
-
-@@ -529,12 +530,10 @@
- DECLARE_PER_CPU(struct rcu_data, rcu_preempt_data);
- #endif /* #ifdef CONFIG_PREEMPT_RCU */
-
--#ifdef CONFIG_RCU_BOOST
- DECLARE_PER_CPU(unsigned int, rcu_cpu_kthread_status);
- DECLARE_PER_CPU(int, rcu_cpu_kthread_cpu);
- DECLARE_PER_CPU(unsigned int, rcu_cpu_kthread_loops);
- DECLARE_PER_CPU(char, rcu_cpu_has_work);
--#endif /* #ifdef CONFIG_RCU_BOOST */
-
- #ifndef RCU_TREE_NONCORE
-
-@@ -553,10 +552,9 @@
- static void __init __rcu_init_preempt(void);
- static void rcu_initiate_boost(struct rcu_node *rnp, unsigned long flags);
- static void rcu_preempt_boost_start_gp(struct rcu_node *rnp);
--static void invoke_rcu_callbacks_kthread(void);
- static bool rcu_is_callbacks_kthread(void);
-+static void rcu_cpu_kthread_setup(unsigned int cpu);
- #ifdef CONFIG_RCU_BOOST
--static void rcu_preempt_do_callbacks(void);
- static int rcu_spawn_one_boost_kthread(struct rcu_state *rsp,
- struct rcu_node *rnp);
- #endif /* #ifdef CONFIG_RCU_BOOST */
-diff -Nur linux-4.1.39.orig/kernel/rcu/tree_plugin.h linux-4.1.39/kernel/rcu/tree_plugin.h
---- linux-4.1.39.orig/kernel/rcu/tree_plugin.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/rcu/tree_plugin.h 2017-04-18 17:56:30.629397751 +0200
-@@ -24,27 +24,20 @@
- * Paul E. McKenney <paulmck@linux.vnet.ibm.com>
- */
-
--#include <linux/delay.h>
--#include <linux/gfp.h>
--#include <linux/oom.h>
--#include <linux/smpboot.h>
--#include "../time/tick-internal.h"
--
- #ifdef CONFIG_RCU_BOOST
-
- #include "../locking/rtmutex_common.h"
-
-+#endif /* #ifdef CONFIG_RCU_BOOST */
-+
- /*
- * Control variables for per-CPU and per-rcu_node kthreads. These
- * handle all flavors of RCU.
- */
--static DEFINE_PER_CPU(struct task_struct *, rcu_cpu_kthread_task);
- DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_status);
- DEFINE_PER_CPU(unsigned int, rcu_cpu_kthread_loops);
- DEFINE_PER_CPU(char, rcu_cpu_has_work);
-
--#endif /* #ifdef CONFIG_RCU_BOOST */
--
- #ifdef CONFIG_RCU_NOCB_CPU
- static cpumask_var_t rcu_nocb_mask; /* CPUs to have callbacks offloaded. */
- static bool have_rcu_nocb_mask; /* Was rcu_nocb_mask allocated? */
-@@ -291,7 +284,7 @@
- }
-
- /* Hardware IRQ handlers cannot block, complain if they get here. */
-- if (in_irq() || in_serving_softirq()) {
-+ if (preempt_count() & (HARDIRQ_MASK | SOFTIRQ_OFFSET)) {
- lockdep_rcu_suspicious(__FILE__, __LINE__,
- "rcu_read_unlock() from irq or softirq with blocking in critical section!!!\n");
- pr_alert("->rcu_read_unlock_special: %#x (b: %d, nq: %d)\n",
-@@ -496,15 +489,6 @@
- t->rcu_read_unlock_special.b.need_qs = true;
- }
-
--#ifdef CONFIG_RCU_BOOST
--
--static void rcu_preempt_do_callbacks(void)
--{
-- rcu_do_batch(&rcu_preempt_state, this_cpu_ptr(&rcu_preempt_data));
--}
--
--#endif /* #ifdef CONFIG_RCU_BOOST */
--
- /*
- * Queue a preemptible-RCU callback for invocation after a grace period.
- */
-@@ -939,6 +923,19 @@
-
- #endif /* #else #ifdef CONFIG_PREEMPT_RCU */
-
-+/*
-+ * If boosting, set rcuc kthreads to realtime priority.
-+ */
-+static void rcu_cpu_kthread_setup(unsigned int cpu)
-+{
-+#ifdef CONFIG_RCU_BOOST
-+ struct sched_param sp;
-+
-+ sp.sched_priority = kthread_prio;
-+ sched_setscheduler_nocheck(current, SCHED_FIFO, &sp);
-+#endif /* #ifdef CONFIG_RCU_BOOST */
-+}
-+
- #ifdef CONFIG_RCU_BOOST
-
- #include "../locking/rtmutex_common.h"
-@@ -970,16 +967,6 @@
-
- #endif /* #else #ifdef CONFIG_RCU_TRACE */
-
--static void rcu_wake_cond(struct task_struct *t, int status)
--{
-- /*
-- * If the thread is yielding, only wake it when this
-- * is invoked from idle
-- */
-- if (status != RCU_KTHREAD_YIELDING || is_idle_task(current))
-- wake_up_process(t);
--}
--
- /*
- * Carry out RCU priority boosting on the task indicated by ->exp_tasks
- * or ->boost_tasks, advancing the pointer to the next task in the
-@@ -1125,23 +1112,6 @@
- }
-
- /*
-- * Wake up the per-CPU kthread to invoke RCU callbacks.
-- */
--static void invoke_rcu_callbacks_kthread(void)
--{
-- unsigned long flags;
--
-- local_irq_save(flags);
-- __this_cpu_write(rcu_cpu_has_work, 1);
-- if (__this_cpu_read(rcu_cpu_kthread_task) != NULL &&
-- current != __this_cpu_read(rcu_cpu_kthread_task)) {
-- rcu_wake_cond(__this_cpu_read(rcu_cpu_kthread_task),
-- __this_cpu_read(rcu_cpu_kthread_status));
-- }
-- local_irq_restore(flags);
--}
--
--/*
- * Is the current CPU running the RCU-callbacks kthread?
- * Caller must have preemption disabled.
- */
-@@ -1196,67 +1166,6 @@
- return 0;
- }
-
--static void rcu_kthread_do_work(void)
--{
-- rcu_do_batch(&rcu_sched_state, this_cpu_ptr(&rcu_sched_data));
-- rcu_do_batch(&rcu_bh_state, this_cpu_ptr(&rcu_bh_data));
-- rcu_preempt_do_callbacks();
--}
--
--static void rcu_cpu_kthread_setup(unsigned int cpu)
--{
-- struct sched_param sp;
--
-- sp.sched_priority = kthread_prio;
-- sched_setscheduler_nocheck(current, SCHED_FIFO, &sp);
--}
--
--static void rcu_cpu_kthread_park(unsigned int cpu)
--{
-- per_cpu(rcu_cpu_kthread_status, cpu) = RCU_KTHREAD_OFFCPU;
--}
--
--static int rcu_cpu_kthread_should_run(unsigned int cpu)
--{
-- return __this_cpu_read(rcu_cpu_has_work);
--}
--
--/*
-- * Per-CPU kernel thread that invokes RCU callbacks. This replaces the
-- * RCU softirq used in flavors and configurations of RCU that do not
-- * support RCU priority boosting.
-- */
--static void rcu_cpu_kthread(unsigned int cpu)
--{
-- unsigned int *statusp = this_cpu_ptr(&rcu_cpu_kthread_status);
-- char work, *workp = this_cpu_ptr(&rcu_cpu_has_work);
-- int spincnt;
--
-- for (spincnt = 0; spincnt < 10; spincnt++) {
-- trace_rcu_utilization(TPS("Start CPU kthread@rcu_wait"));
-- local_bh_disable();
-- *statusp = RCU_KTHREAD_RUNNING;
-- this_cpu_inc(rcu_cpu_kthread_loops);
-- local_irq_disable();
-- work = *workp;
-- *workp = 0;
-- local_irq_enable();
-- if (work)
-- rcu_kthread_do_work();
-- local_bh_enable();
-- if (*workp == 0) {
-- trace_rcu_utilization(TPS("End CPU kthread@rcu_wait"));
-- *statusp = RCU_KTHREAD_WAITING;
-- return;
-- }
-- }
-- *statusp = RCU_KTHREAD_YIELDING;
-- trace_rcu_utilization(TPS("Start CPU kthread@rcu_yield"));
-- schedule_timeout_interruptible(2);
-- trace_rcu_utilization(TPS("End CPU kthread@rcu_yield"));
-- *statusp = RCU_KTHREAD_WAITING;
--}
--
- /*
- * Set the per-rcu_node kthread's affinity to cover all CPUs that are
- * served by the rcu_node in question. The CPU hotplug lock is still
-@@ -1286,26 +1195,12 @@
- free_cpumask_var(cm);
- }
-
--static struct smp_hotplug_thread rcu_cpu_thread_spec = {
-- .store = &rcu_cpu_kthread_task,
-- .thread_should_run = rcu_cpu_kthread_should_run,
-- .thread_fn = rcu_cpu_kthread,
-- .thread_comm = "rcuc/%u",
-- .setup = rcu_cpu_kthread_setup,
-- .park = rcu_cpu_kthread_park,
--};
--
- /*
- * Spawn boost kthreads -- called as soon as the scheduler is running.
- */
- static void __init rcu_spawn_boost_kthreads(void)
- {
- struct rcu_node *rnp;
-- int cpu;
--
-- for_each_possible_cpu(cpu)
-- per_cpu(rcu_cpu_has_work, cpu) = 0;
-- BUG_ON(smpboot_register_percpu_thread(&rcu_cpu_thread_spec));
- rcu_for_each_leaf_node(rcu_state_p, rnp)
- (void)rcu_spawn_one_boost_kthread(rcu_state_p, rnp);
- }
-@@ -1328,11 +1223,6 @@
- raw_spin_unlock_irqrestore(&rnp->lock, flags);
- }
-
--static void invoke_rcu_callbacks_kthread(void)
--{
-- WARN_ON_ONCE(1);
--}
--
- static bool rcu_is_callbacks_kthread(void)
- {
- return false;
-@@ -1356,7 +1246,7 @@
-
- #endif /* #else #ifdef CONFIG_RCU_BOOST */
-
--#if !defined(CONFIG_RCU_FAST_NO_HZ)
-+#if !defined(CONFIG_RCU_FAST_NO_HZ) || defined(CONFIG_PREEMPT_RT_FULL)
-
- /*
- * Check to see if any future RCU-related work will need to be done
-@@ -1374,7 +1264,9 @@
- return rcu_cpu_has_callbacks(NULL);
- }
- #endif /* #ifndef CONFIG_RCU_NOCB_CPU_ALL */
-+#endif /* !defined(CONFIG_RCU_FAST_NO_HZ) || defined(CONFIG_PREEMPT_RT_FULL) */
-
-+#if !defined(CONFIG_RCU_FAST_NO_HZ)
- /*
- * Because we do not have RCU_FAST_NO_HZ, don't bother cleaning up
- * after it.
-@@ -1472,6 +1364,8 @@
- return cbs_ready;
- }
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+
- /*
- * Allow the CPU to enter dyntick-idle mode unless it has callbacks ready
- * to invoke. If the CPU has callbacks, try to advance them. Tell the
-@@ -1512,7 +1406,7 @@
- return 0;
- }
- #endif /* #ifndef CONFIG_RCU_NOCB_CPU_ALL */
--
-+#endif /* #ifndef CONFIG_PREEMPT_RT_FULL */
- /*
- * Prepare a CPU for idle from an RCU perspective. The first major task
- * is to sense whether nohz mode has been enabled or disabled via sysfs.
-@@ -1859,7 +1753,7 @@
- */
- static void rcu_nocb_gp_cleanup(struct rcu_state *rsp, struct rcu_node *rnp)
- {
-- wake_up_all(&rnp->nocb_gp_wq[rnp->completed & 0x1]);
-+ swait_wake_all(&rnp->nocb_gp_wq[rnp->completed & 0x1]);
- }
-
- /*
-@@ -1877,8 +1771,8 @@
-
- static void rcu_init_one_nocb(struct rcu_node *rnp)
- {
-- init_waitqueue_head(&rnp->nocb_gp_wq[0]);
-- init_waitqueue_head(&rnp->nocb_gp_wq[1]);
-+ init_swait_head(&rnp->nocb_gp_wq[0]);
-+ init_swait_head(&rnp->nocb_gp_wq[1]);
- }
-
- #ifndef CONFIG_RCU_NOCB_CPU_ALL
-@@ -1903,7 +1797,7 @@
- if (ACCESS_ONCE(rdp_leader->nocb_leader_sleep) || force) {
- /* Prior smp_mb__after_atomic() orders against prior enqueue. */
- ACCESS_ONCE(rdp_leader->nocb_leader_sleep) = false;
-- wake_up(&rdp_leader->nocb_wq);
-+ swait_wake(&rdp_leader->nocb_wq);
- }
- }
-
-@@ -2116,7 +2010,7 @@
- */
- trace_rcu_future_gp(rnp, rdp, c, TPS("StartWait"));
- for (;;) {
-- wait_event_interruptible(
-+ swait_event_interruptible(
- rnp->nocb_gp_wq[c & 0x1],
- (d = ULONG_CMP_GE(ACCESS_ONCE(rnp->completed), c)));
- if (likely(d))
-@@ -2144,7 +2038,7 @@
- /* Wait for callbacks to appear. */
- if (!rcu_nocb_poll) {
- trace_rcu_nocb_wake(my_rdp->rsp->name, my_rdp->cpu, "Sleep");
-- wait_event_interruptible(my_rdp->nocb_wq,
-+ swait_event_interruptible(my_rdp->nocb_wq,
- !ACCESS_ONCE(my_rdp->nocb_leader_sleep));
- /* Memory barrier handled by smp_mb() calls below and repoll. */
- } else if (firsttime) {
-@@ -2219,7 +2113,7 @@
- * List was empty, wake up the follower.
- * Memory barriers supplied by atomic_long_add().
- */
-- wake_up(&rdp->nocb_wq);
-+ swait_wake(&rdp->nocb_wq);
- }
- }
-
-@@ -2240,7 +2134,7 @@
- if (!rcu_nocb_poll) {
- trace_rcu_nocb_wake(rdp->rsp->name, rdp->cpu,
- "FollowerSleep");
-- wait_event_interruptible(rdp->nocb_wq,
-+ swait_event_interruptible(rdp->nocb_wq,
- ACCESS_ONCE(rdp->nocb_follower_head));
- } else if (firsttime) {
- /* Don't drown trace log with "Poll"! */
-@@ -2399,7 +2293,7 @@
- static void __init rcu_boot_init_nocb_percpu_data(struct rcu_data *rdp)
- {
- rdp->nocb_tail = &rdp->nocb_head;
-- init_waitqueue_head(&rdp->nocb_wq);
-+ init_swait_head(&rdp->nocb_wq);
- rdp->nocb_follower_tail = &rdp->nocb_follower_head;
- }
-
-diff -Nur linux-4.1.39.orig/kernel/rcu/update.c linux-4.1.39/kernel/rcu/update.c
---- linux-4.1.39.orig/kernel/rcu/update.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/rcu/update.c 2017-04-18 17:56:30.629397751 +0200
-@@ -227,6 +227,7 @@
- }
- EXPORT_SYMBOL_GPL(rcu_read_lock_held);
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- /**
- * rcu_read_lock_bh_held() - might we be in RCU-bh read-side critical section?
- *
-@@ -253,6 +254,7 @@
- return in_softirq() || irqs_disabled();
- }
- EXPORT_SYMBOL_GPL(rcu_read_lock_bh_held);
-+#endif
-
- #endif /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
-
-diff -Nur linux-4.1.39.orig/kernel/relay.c linux-4.1.39/kernel/relay.c
---- linux-4.1.39.orig/kernel/relay.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/relay.c 2017-04-18 17:56:30.629397751 +0200
-@@ -339,6 +339,10 @@
- {
- struct rchan_buf *buf = (struct rchan_buf *)data;
- wake_up_interruptible(&buf->read_wait);
-+ /*
-+ * Stupid polling for now:
-+ */
-+ mod_timer(&buf->timer, jiffies + 1);
- }
-
- /**
-@@ -356,6 +360,7 @@
- init_waitqueue_head(&buf->read_wait);
- kref_init(&buf->kref);
- setup_timer(&buf->timer, wakeup_readers, (unsigned long)buf);
-+ mod_timer(&buf->timer, jiffies + 1);
- } else
- del_timer_sync(&buf->timer);
-
-@@ -739,15 +744,6 @@
- else
- buf->early_bytes += buf->chan->subbuf_size -
- buf->padding[old_subbuf];
-- smp_mb();
-- if (waitqueue_active(&buf->read_wait))
-- /*
-- * Calling wake_up_interruptible() from here
-- * will deadlock if we happen to be logging
-- * from the scheduler (trying to re-grab
-- * rq->lock), so defer it.
-- */
-- mod_timer(&buf->timer, jiffies + 1);
- }
-
- old = buf->data;
-diff -Nur linux-4.1.39.orig/kernel/sched/completion.c linux-4.1.39/kernel/sched/completion.c
---- linux-4.1.39.orig/kernel/sched/completion.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/sched/completion.c 2017-04-18 17:56:30.633397907 +0200
-@@ -30,10 +30,10 @@
- {
- unsigned long flags;
-
-- spin_lock_irqsave(&x->wait.lock, flags);
-+ raw_spin_lock_irqsave(&x->wait.lock, flags);
- x->done++;
-- __wake_up_locked(&x->wait, TASK_NORMAL, 1);
-- spin_unlock_irqrestore(&x->wait.lock, flags);
-+ __swait_wake_locked(&x->wait, TASK_NORMAL, 1);
-+ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
- }
- EXPORT_SYMBOL(complete);
-
-@@ -50,10 +50,10 @@
- {
- unsigned long flags;
-
-- spin_lock_irqsave(&x->wait.lock, flags);
-+ raw_spin_lock_irqsave(&x->wait.lock, flags);
- x->done += UINT_MAX/2;
-- __wake_up_locked(&x->wait, TASK_NORMAL, 0);
-- spin_unlock_irqrestore(&x->wait.lock, flags);
-+ __swait_wake_locked(&x->wait, TASK_NORMAL, 0);
-+ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
- }
- EXPORT_SYMBOL(complete_all);
-
-@@ -62,20 +62,20 @@
- long (*action)(long), long timeout, int state)
- {
- if (!x->done) {
-- DECLARE_WAITQUEUE(wait, current);
-+ DEFINE_SWAITER(wait);
-
-- __add_wait_queue_tail_exclusive(&x->wait, &wait);
-+ swait_prepare_locked(&x->wait, &wait);
- do {
- if (signal_pending_state(state, current)) {
- timeout = -ERESTARTSYS;
- break;
- }
- __set_current_state(state);
-- spin_unlock_irq(&x->wait.lock);
-+ raw_spin_unlock_irq(&x->wait.lock);
- timeout = action(timeout);
-- spin_lock_irq(&x->wait.lock);
-+ raw_spin_lock_irq(&x->wait.lock);
- } while (!x->done && timeout);
-- __remove_wait_queue(&x->wait, &wait);
-+ swait_finish_locked(&x->wait, &wait);
- if (!x->done)
- return timeout;
- }
-@@ -89,9 +89,9 @@
- {
- might_sleep();
-
-- spin_lock_irq(&x->wait.lock);
-+ raw_spin_lock_irq(&x->wait.lock);
- timeout = do_wait_for_common(x, action, timeout, state);
-- spin_unlock_irq(&x->wait.lock);
-+ raw_spin_unlock_irq(&x->wait.lock);
- return timeout;
- }
-
-@@ -277,12 +277,12 @@
- if (!READ_ONCE(x->done))
- return 0;
-
-- spin_lock_irqsave(&x->wait.lock, flags);
-+ raw_spin_lock_irqsave(&x->wait.lock, flags);
- if (!x->done)
- ret = 0;
- else
- x->done--;
-- spin_unlock_irqrestore(&x->wait.lock, flags);
-+ raw_spin_unlock_irqrestore(&x->wait.lock, flags);
- return ret;
- }
- EXPORT_SYMBOL(try_wait_for_completion);
-@@ -311,7 +311,7 @@
- * after it's acquired the lock.
- */
- smp_rmb();
-- spin_unlock_wait(&x->wait.lock);
-+ raw_spin_unlock_wait(&x->wait.lock);
- return true;
- }
- EXPORT_SYMBOL(completion_done);
-diff -Nur linux-4.1.39.orig/kernel/sched/core.c linux-4.1.39/kernel/sched/core.c
---- linux-4.1.39.orig/kernel/sched/core.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/sched/core.c 2017-04-18 17:56:30.633397907 +0200
-@@ -282,7 +282,11 @@
- * Number of tasks to iterate in a single balance run.
- * Limited because this is done with IRQs disabled.
- */
-+#ifndef CONFIG_PREEMPT_RT_FULL
- const_debug unsigned int sysctl_sched_nr_migrate = 32;
-+#else
-+const_debug unsigned int sysctl_sched_nr_migrate = 8;
-+#endif
-
- /*
- * period over which we average the RT time consumption, measured
-@@ -461,6 +465,7 @@
-
- hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
- rq->hrtick_timer.function = hrtick;
-+ rq->hrtick_timer.irqsafe = 1;
- }
- #else /* CONFIG_SCHED_HRTICK */
- static inline void hrtick_clear(struct rq *rq)
-@@ -541,6 +546,52 @@
- #endif
- #endif
-
-+void wake_q_add(struct wake_q_head *head, struct task_struct *task)
-+{
-+ struct wake_q_node *node = &task->wake_q;
-+
-+ /*
-+ * Atomically grab the task, if ->wake_q is !nil already it means
-+ * its already queued (either by us or someone else) and will get the
-+ * wakeup due to that.
-+ *
-+ * This cmpxchg() implies a full barrier, which pairs with the write
-+ * barrier implied by the wakeup in wake_up_list().
-+ */
-+ if (cmpxchg(&node->next, NULL, WAKE_Q_TAIL))
-+ return;
-+
-+ get_task_struct(task);
-+
-+ /*
-+ * The head is context local, there can be no concurrency.
-+ */
-+ *head->lastp = node;
-+ head->lastp = &node->next;
-+}
-+
-+void wake_up_q(struct wake_q_head *head)
-+{
-+ struct wake_q_node *node = head->first;
-+
-+ while (node != WAKE_Q_TAIL) {
-+ struct task_struct *task;
-+
-+ task = container_of(node, struct task_struct, wake_q);
-+ BUG_ON(!task);
-+ /* task can safely be re-inserted now */
-+ node = node->next;
-+ task->wake_q.next = NULL;
-+
-+ /*
-+ * wake_up_process() implies a wmb() to pair with the queueing
-+ * in wake_q_add() so as not to miss wakeups.
-+ */
-+ wake_up_process(task);
-+ put_task_struct(task);
-+ }
-+}
-+
- /*
- * resched_curr - mark rq's current task 'to be rescheduled now'.
- *
-@@ -572,6 +623,38 @@
- trace_sched_wake_idle_without_ipi(cpu);
- }
-
-+#ifdef CONFIG_PREEMPT_LAZY
-+void resched_curr_lazy(struct rq *rq)
-+{
-+ struct task_struct *curr = rq->curr;
-+ int cpu;
-+
-+ if (!sched_feat(PREEMPT_LAZY)) {
-+ resched_curr(rq);
-+ return;
-+ }
-+
-+ lockdep_assert_held(&rq->lock);
-+
-+ if (test_tsk_need_resched(curr))
-+ return;
-+
-+ if (test_tsk_need_resched_lazy(curr))
-+ return;
-+
-+ set_tsk_need_resched_lazy(curr);
-+
-+ cpu = cpu_of(rq);
-+ if (cpu == smp_processor_id())
-+ return;
-+
-+ /* NEED_RESCHED_LAZY must be visible before we test polling */
-+ smp_mb();
-+ if (!tsk_is_polling(curr))
-+ smp_send_reschedule(cpu);
-+}
-+#endif
-+
- void resched_cpu(int cpu)
- {
- struct rq *rq = cpu_rq(cpu);
-@@ -595,12 +678,14 @@
- */
- int get_nohz_timer_target(int pinned)
- {
-- int cpu = smp_processor_id();
-+ int cpu;
- int i;
- struct sched_domain *sd;
-
-+ preempt_disable_rt();
-+ cpu = smp_processor_id();
- if (pinned || !get_sysctl_timer_migration() || !idle_cpu(cpu))
-- return cpu;
-+ goto preempt_en_rt;
-
- rcu_read_lock();
- for_each_domain(cpu, sd) {
-@@ -613,6 +698,8 @@
- }
- unlock:
- rcu_read_unlock();
-+preempt_en_rt:
-+ preempt_enable_rt();
- return cpu;
- }
- /*
-@@ -1164,6 +1251,18 @@
-
- static int migration_cpu_stop(void *data);
-
-+static bool check_task_state(struct task_struct *p, long match_state)
-+{
-+ bool match = false;
-+
-+ raw_spin_lock_irq(&p->pi_lock);
-+ if (p->state == match_state || p->saved_state == match_state)
-+ match = true;
-+ raw_spin_unlock_irq(&p->pi_lock);
-+
-+ return match;
-+}
-+
- /*
- * wait_task_inactive - wait for a thread to unschedule.
- *
-@@ -1208,7 +1307,7 @@
- * is actually now running somewhere else!
- */
- while (task_running(rq, p)) {
-- if (match_state && unlikely(p->state != match_state))
-+ if (match_state && !check_task_state(p, match_state))
- return 0;
- cpu_relax();
- }
-@@ -1223,7 +1322,8 @@
- running = task_running(rq, p);
- queued = task_on_rq_queued(p);
- ncsw = 0;
-- if (!match_state || p->state == match_state)
-+ if (!match_state || p->state == match_state ||
-+ p->saved_state == match_state)
- ncsw = p->nvcsw | LONG_MIN; /* sets MSB */
- task_rq_unlock(rq, p, &flags);
-
-@@ -1449,10 +1549,6 @@
- {
- activate_task(rq, p, en_flags);
- p->on_rq = TASK_ON_RQ_QUEUED;
--
-- /* if a worker is waking up, notify workqueue */
-- if (p->flags & PF_WQ_WORKER)
-- wq_worker_waking_up(p, cpu_of(rq));
- }
-
- /*
-@@ -1462,9 +1558,9 @@
- ttwu_do_wakeup(struct rq *rq, struct task_struct *p, int wake_flags)
- {
- check_preempt_curr(rq, p, wake_flags);
-- trace_sched_wakeup(p, true);
--
- p->state = TASK_RUNNING;
-+ trace_sched_wakeup(p);
-+
- #ifdef CONFIG_SMP
- if (p->sched_class->task_woken)
- p->sched_class->task_woken(rq, p);
-@@ -1666,8 +1762,29 @@
- */
- smp_mb__before_spinlock();
- raw_spin_lock_irqsave(&p->pi_lock, flags);
-- if (!(p->state & state))
-+ if (!(p->state & state)) {
-+ /*
-+ * The task might be running due to a spinlock sleeper
-+ * wakeup. Check the saved state and set it to running
-+ * if the wakeup condition is true.
-+ */
-+ if (!(wake_flags & WF_LOCK_SLEEPER)) {
-+ if (p->saved_state & state) {
-+ p->saved_state = TASK_RUNNING;
-+ success = 1;
-+ }
-+ }
- goto out;
-+ }
-+
-+ /*
-+ * If this is a regular wakeup, then we can unconditionally
-+ * clear the saved state of a "lock sleeper".
-+ */
-+ if (!(wake_flags & WF_LOCK_SLEEPER))
-+ p->saved_state = TASK_RUNNING;
-+
-+ trace_sched_waking(p);
-
- success = 1; /* we're going to change ->state */
- cpu = task_cpu(p);
-@@ -1732,42 +1849,6 @@
- }
-
- /**
-- * try_to_wake_up_local - try to wake up a local task with rq lock held
-- * @p: the thread to be awakened
-- *
-- * Put @p on the run-queue if it's not already there. The caller must
-- * ensure that this_rq() is locked, @p is bound to this_rq() and not
-- * the current task.
-- */
--static void try_to_wake_up_local(struct task_struct *p)
--{
-- struct rq *rq = task_rq(p);
--
-- if (WARN_ON_ONCE(rq != this_rq()) ||
-- WARN_ON_ONCE(p == current))
-- return;
--
-- lockdep_assert_held(&rq->lock);
--
-- if (!raw_spin_trylock(&p->pi_lock)) {
-- raw_spin_unlock(&rq->lock);
-- raw_spin_lock(&p->pi_lock);
-- raw_spin_lock(&rq->lock);
-- }
--
-- if (!(p->state & TASK_NORMAL))
-- goto out;
--
-- if (!task_on_rq_queued(p))
-- ttwu_activate(rq, p, ENQUEUE_WAKEUP);
--
-- ttwu_do_wakeup(rq, p, 0);
-- ttwu_stat(p, smp_processor_id(), 0);
--out:
-- raw_spin_unlock(&p->pi_lock);
--}
--
--/**
- * wake_up_process - Wake up a specific process
- * @p: The process to be woken up.
- *
-@@ -1781,11 +1862,23 @@
- */
- int wake_up_process(struct task_struct *p)
- {
-- WARN_ON(task_is_stopped_or_traced(p));
-+ WARN_ON(__task_is_stopped_or_traced(p));
- return try_to_wake_up(p, TASK_NORMAL, 0);
- }
- EXPORT_SYMBOL(wake_up_process);
-
-+/**
-+ * wake_up_lock_sleeper - Wake up a specific process blocked on a "sleeping lock"
-+ * @p: The process to be woken up.
-+ *
-+ * Same as wake_up_process() above, but wake_flags=WF_LOCK_SLEEPER to indicate
-+ * the nature of the wakeup.
-+ */
-+int wake_up_lock_sleeper(struct task_struct *p)
-+{
-+ return try_to_wake_up(p, TASK_ALL, WF_LOCK_SLEEPER);
-+}
-+
- int wake_up_state(struct task_struct *p, unsigned int state)
- {
- return try_to_wake_up(p, state, 0);
-@@ -1981,6 +2074,9 @@
- p->on_cpu = 0;
- #endif
- init_task_preempt_count(p);
-+#ifdef CONFIG_HAVE_PREEMPT_LAZY
-+ task_thread_info(p)->preempt_lazy_count = 0;
-+#endif
- #ifdef CONFIG_SMP
- plist_node_init(&p->pushable_tasks, MAX_PRIO);
- RB_CLEAR_NODE(&p->pushable_dl_tasks);
-@@ -2116,7 +2212,7 @@
- rq = __task_rq_lock(p);
- activate_task(rq, p, 0);
- p->on_rq = TASK_ON_RQ_QUEUED;
-- trace_sched_wakeup_new(p, true);
-+ trace_sched_wakeup_new(p);
- check_preempt_curr(rq, p, WF_FORK);
- #ifdef CONFIG_SMP
- if (p->sched_class->task_woken)
-@@ -2253,8 +2349,12 @@
- finish_arch_post_lock_switch();
-
- fire_sched_in_preempt_notifiers(current);
-+ /*
-+ * We use mmdrop_delayed() here so we don't have to do the
-+ * full __mmdrop() when we are the last user.
-+ */
- if (mm)
-- mmdrop(mm);
-+ mmdrop_delayed(mm);
- if (unlikely(prev_state == TASK_DEAD)) {
- if (prev->sched_class->task_dead)
- prev->sched_class->task_dead(prev);
-@@ -2565,16 +2665,6 @@
- }
- #endif
-
--notrace unsigned long get_parent_ip(unsigned long addr)
--{
-- if (in_lock_functions(addr)) {
-- addr = CALLER_ADDR2;
-- if (in_lock_functions(addr))
-- addr = CALLER_ADDR3;
-- }
-- return addr;
--}
--
- #if defined(CONFIG_PREEMPT) && (defined(CONFIG_DEBUG_PREEMPT) || \
- defined(CONFIG_PREEMPT_TRACER))
-
-@@ -2596,7 +2686,7 @@
- PREEMPT_MASK - 10);
- #endif
- if (preempt_count() == val) {
-- unsigned long ip = get_parent_ip(CALLER_ADDR1);
-+ unsigned long ip = get_lock_parent_ip();
- #ifdef CONFIG_DEBUG_PREEMPT
- current->preempt_disable_ip = ip;
- #endif
-@@ -2623,7 +2713,7 @@
- #endif
-
- if (preempt_count() == val)
-- trace_preempt_on(CALLER_ADDR0, get_parent_ip(CALLER_ADDR1));
-+ trace_preempt_on(CALLER_ADDR0, get_lock_parent_ip());
- __preempt_count_sub(val);
- }
- EXPORT_SYMBOL(preempt_count_sub);
-@@ -2679,6 +2769,133 @@
- schedstat_inc(this_rq(), sched_count);
- }
-
-+#if defined(CONFIG_PREEMPT_RT_FULL) && defined(CONFIG_SMP)
-+#define MIGRATE_DISABLE_SET_AFFIN (1<<30) /* Can't make a negative */
-+#define migrate_disabled_updated(p) ((p)->migrate_disable & MIGRATE_DISABLE_SET_AFFIN)
-+#define migrate_disable_count(p) ((p)->migrate_disable & ~MIGRATE_DISABLE_SET_AFFIN)
-+
-+static inline void update_migrate_disable(struct task_struct *p)
-+{
-+ const struct cpumask *mask;
-+
-+ if (likely(!p->migrate_disable))
-+ return;
-+
-+ /* Did we already update affinity? */
-+ if (unlikely(migrate_disabled_updated(p)))
-+ return;
-+
-+ /*
-+ * Since this is always current we can get away with only locking
-+ * rq->lock, the ->cpus_allowed value can normally only be changed
-+ * while holding both p->pi_lock and rq->lock, but seeing that this
-+ * is current, we cannot actually be waking up, so all code that
-+ * relies on serialization against p->pi_lock is out of scope.
-+ *
-+ * Having rq->lock serializes us against things like
-+ * set_cpus_allowed_ptr() that can still happen concurrently.
-+ */
-+ mask = tsk_cpus_allowed(p);
-+
-+ if (p->sched_class->set_cpus_allowed)
-+ p->sched_class->set_cpus_allowed(p, mask);
-+ /* mask==cpumask_of(task_cpu(p)) which has a cpumask_weight==1 */
-+ p->nr_cpus_allowed = 1;
-+
-+ /* Let migrate_enable know to fix things back up */
-+ p->migrate_disable |= MIGRATE_DISABLE_SET_AFFIN;
-+}
-+
-+void migrate_disable(void)
-+{
-+ struct task_struct *p = current;
-+
-+ if (in_atomic() || irqs_disabled()) {
-+#ifdef CONFIG_SCHED_DEBUG
-+ p->migrate_disable_atomic++;
-+#endif
-+ return;
-+ }
-+
-+#ifdef CONFIG_SCHED_DEBUG
-+ if (unlikely(p->migrate_disable_atomic)) {
-+ tracing_off();
-+ WARN_ON_ONCE(1);
-+ }
-+#endif
-+
-+ if (p->migrate_disable) {
-+ p->migrate_disable++;
-+ return;
-+ }
-+
-+ preempt_disable();
-+ preempt_lazy_disable();
-+ pin_current_cpu();
-+ p->migrate_disable = 1;
-+ preempt_enable();
-+}
-+EXPORT_SYMBOL(migrate_disable);
-+
-+void migrate_enable(void)
-+{
-+ struct task_struct *p = current;
-+ const struct cpumask *mask;
-+ unsigned long flags;
-+ struct rq *rq;
-+
-+ if (in_atomic() || irqs_disabled()) {
-+#ifdef CONFIG_SCHED_DEBUG
-+ p->migrate_disable_atomic--;
-+#endif
-+ return;
-+ }
-+
-+#ifdef CONFIG_SCHED_DEBUG
-+ if (unlikely(p->migrate_disable_atomic)) {
-+ tracing_off();
-+ WARN_ON_ONCE(1);
-+ }
-+#endif
-+ WARN_ON_ONCE(p->migrate_disable <= 0);
-+
-+ if (migrate_disable_count(p) > 1) {
-+ p->migrate_disable--;
-+ return;
-+ }
-+
-+ preempt_disable();
-+ if (unlikely(migrate_disabled_updated(p))) {
-+ /*
-+ * Undo whatever update_migrate_disable() did, also see there
-+ * about locking.
-+ */
-+ rq = this_rq();
-+ raw_spin_lock_irqsave(&rq->lock, flags);
-+
-+ /*
-+ * Clearing migrate_disable causes tsk_cpus_allowed to
-+ * show the tasks original cpu affinity.
-+ */
-+ p->migrate_disable = 0;
-+ mask = tsk_cpus_allowed(p);
-+ if (p->sched_class->set_cpus_allowed)
-+ p->sched_class->set_cpus_allowed(p, mask);
-+ p->nr_cpus_allowed = cpumask_weight(mask);
-+ raw_spin_unlock_irqrestore(&rq->lock, flags);
-+ } else
-+ p->migrate_disable = 0;
-+
-+ unpin_current_cpu();
-+ preempt_enable();
-+ preempt_lazy_enable();
-+}
-+EXPORT_SYMBOL(migrate_enable);
-+#else
-+static inline void update_migrate_disable(struct task_struct *p) { }
-+#define migrate_disabled_updated(p) 0
-+#endif
-+
- /*
- * Pick up the highest-prio task:
- */
-@@ -2785,6 +3002,8 @@
- smp_mb__before_spinlock();
- raw_spin_lock_irq(&rq->lock);
-
-+ update_migrate_disable(prev);
-+
- rq->clock_skip_update <<= 1; /* promote REQ to ACT */
-
- switch_count = &prev->nivcsw;
-@@ -2794,19 +3013,6 @@
- } else {
- deactivate_task(rq, prev, DEQUEUE_SLEEP);
- prev->on_rq = 0;
--
-- /*
-- * If a worker went to sleep, notify and ask workqueue
-- * whether it wants to wake up a task to maintain
-- * concurrency.
-- */
-- if (prev->flags & PF_WQ_WORKER) {
-- struct task_struct *to_wakeup;
--
-- to_wakeup = wq_worker_sleeping(prev, cpu);
-- if (to_wakeup)
-- try_to_wake_up_local(to_wakeup);
-- }
- }
- switch_count = &prev->nvcsw;
- }
-@@ -2816,6 +3022,7 @@
-
- next = pick_next_task(rq, prev);
- clear_tsk_need_resched(prev);
-+ clear_tsk_need_resched_lazy(prev);
- clear_preempt_need_resched();
- rq->clock_skip_update = 0;
-
-@@ -2836,8 +3043,19 @@
-
- static inline void sched_submit_work(struct task_struct *tsk)
- {
-- if (!tsk->state || tsk_is_pi_blocked(tsk))
-+ if (!tsk->state)
-+ return;
-+ /*
-+ * If a worker went to sleep, notify and ask workqueue whether
-+ * it wants to wake up a task to maintain concurrency.
-+ */
-+ if (tsk->flags & PF_WQ_WORKER)
-+ wq_worker_sleeping(tsk);
-+
-+
-+ if (tsk_is_pi_blocked(tsk))
- return;
-+
- /*
- * If we are going to sleep and we have plugged IO queued,
- * make sure to submit it to avoid deadlocks.
-@@ -2846,6 +3064,12 @@
- blk_schedule_flush_plug(tsk);
- }
-
-+static void sched_update_worker(struct task_struct *tsk)
-+{
-+ if (tsk->flags & PF_WQ_WORKER)
-+ wq_worker_running(tsk);
-+}
-+
- asmlinkage __visible void __sched schedule(void)
- {
- struct task_struct *tsk = current;
-@@ -2854,6 +3078,7 @@
- do {
- __schedule();
- } while (need_resched());
-+ sched_update_worker(tsk);
- }
- EXPORT_SYMBOL(schedule);
-
-@@ -2903,6 +3128,30 @@
- } while (need_resched());
- }
-
-+#ifdef CONFIG_PREEMPT_LAZY
-+/*
-+ * If TIF_NEED_RESCHED is then we allow to be scheduled away since this is
-+ * set by a RT task. Oterwise we try to avoid beeing scheduled out as long as
-+ * preempt_lazy_count counter >0.
-+ */
-+static __always_inline int preemptible_lazy(void)
-+{
-+ if (test_thread_flag(TIF_NEED_RESCHED))
-+ return 1;
-+ if (current_thread_info()->preempt_lazy_count)
-+ return 0;
-+ return 1;
-+}
-+
-+#else
-+
-+static inline int preemptible_lazy(void)
-+{
-+ return 1;
-+}
-+
-+#endif
-+
- #ifdef CONFIG_PREEMPT
- /*
- * this is the entry point to schedule() from in-kernel preemption
-@@ -2917,6 +3166,8 @@
- */
- if (likely(!preemptible()))
- return;
-+ if (!preemptible_lazy())
-+ return;
-
- preempt_schedule_common();
- }
-@@ -2944,6 +3195,8 @@
-
- if (likely(!preemptible()))
- return;
-+ if (!preemptible_lazy())
-+ return;
-
- do {
- __preempt_count_add(PREEMPT_ACTIVE);
-@@ -2953,7 +3206,16 @@
- * an infinite recursion.
- */
- prev_ctx = exception_enter();
-+ /*
-+ * The add/subtract must not be traced by the function
-+ * tracer. But we still want to account for the
-+ * preempt off latency tracer. Since the _notrace versions
-+ * of add/subtract skip the accounting for latency tracer
-+ * we must force it manually.
-+ */
-+ start_critical_timings();
- __schedule();
-+ stop_critical_timings();
- exception_exit(prev_ctx);
-
- __preempt_count_sub(PREEMPT_ACTIVE);
-@@ -4290,6 +4552,7 @@
- }
- EXPORT_SYMBOL(__cond_resched_lock);
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- int __sched __cond_resched_softirq(void)
- {
- BUG_ON(!in_softirq());
-@@ -4303,6 +4566,7 @@
- return 0;
- }
- EXPORT_SYMBOL(__cond_resched_softirq);
-+#endif
-
- /**
- * yield - yield the current processor to other threads.
-@@ -4659,7 +4923,9 @@
-
- /* Set the preempt count _outside_ the spinlocks! */
- init_idle_preempt_count(idle, cpu);
--
-+#ifdef CONFIG_HAVE_PREEMPT_LAZY
-+ task_thread_info(idle)->preempt_lazy_count = 0;
-+#endif
- /*
- * The idle tasks have their own, simple scheduling class:
- */
-@@ -4779,11 +5045,91 @@
-
- void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
- {
-- if (p->sched_class->set_cpus_allowed)
-- p->sched_class->set_cpus_allowed(p, new_mask);
-+ if (!migrate_disabled_updated(p)) {
-+ if (p->sched_class->set_cpus_allowed)
-+ p->sched_class->set_cpus_allowed(p, new_mask);
-+ p->nr_cpus_allowed = cpumask_weight(new_mask);
-+ }
-
- cpumask_copy(&p->cpus_allowed, new_mask);
-- p->nr_cpus_allowed = cpumask_weight(new_mask);
-+}
-+
-+static DEFINE_PER_CPU(struct cpumask, sched_cpumasks);
-+static DEFINE_MUTEX(sched_down_mutex);
-+static cpumask_t sched_down_cpumask;
-+
-+void tell_sched_cpu_down_begin(int cpu)
-+{
-+ mutex_lock(&sched_down_mutex);
-+ cpumask_set_cpu(cpu, &sched_down_cpumask);
-+ mutex_unlock(&sched_down_mutex);
-+}
-+
-+void tell_sched_cpu_down_done(int cpu)
-+{
-+ mutex_lock(&sched_down_mutex);
-+ cpumask_clear_cpu(cpu, &sched_down_cpumask);
-+ mutex_unlock(&sched_down_mutex);
-+}
-+
-+/**
-+ * migrate_me - try to move the current task off this cpu
-+ *
-+ * Used by the pin_current_cpu() code to try to get tasks
-+ * to move off the current CPU as it is going down.
-+ * It will only move the task if the task isn't pinned to
-+ * the CPU (with migrate_disable, affinity or NO_SETAFFINITY)
-+ * and the task has to be in a RUNNING state. Otherwise the
-+ * movement of the task will wake it up (change its state
-+ * to running) when the task did not expect it.
-+ *
-+ * Returns 1 if it succeeded in moving the current task
-+ * 0 otherwise.
-+ */
-+int migrate_me(void)
-+{
-+ struct task_struct *p = current;
-+ struct migration_arg arg;
-+ struct cpumask *cpumask;
-+ struct cpumask *mask;
-+ unsigned long flags;
-+ unsigned int dest_cpu;
-+ struct rq *rq;
-+
-+ /*
-+ * We can not migrate tasks bounded to a CPU or tasks not
-+ * running. The movement of the task will wake it up.
-+ */
-+ if (p->flags & PF_NO_SETAFFINITY || p->state)
-+ return 0;
-+
-+ mutex_lock(&sched_down_mutex);
-+ rq = task_rq_lock(p, &flags);
-+
-+ cpumask = this_cpu_ptr(&sched_cpumasks);
-+ mask = &p->cpus_allowed;
-+
-+ cpumask_andnot(cpumask, mask, &sched_down_cpumask);
-+
-+ if (!cpumask_weight(cpumask)) {
-+ /* It's only on this CPU? */
-+ task_rq_unlock(rq, p, &flags);
-+ mutex_unlock(&sched_down_mutex);
-+ return 0;
-+ }
-+
-+ dest_cpu = cpumask_any_and(cpu_active_mask, cpumask);
-+
-+ arg.task = p;
-+ arg.dest_cpu = dest_cpu;
-+
-+ task_rq_unlock(rq, p, &flags);
-+
-+ stop_one_cpu(cpu_of(rq), migration_cpu_stop, &arg);
-+ tlb_migrate_finish(p->mm);
-+ mutex_unlock(&sched_down_mutex);
-+
-+ return 1;
- }
-
- /*
-@@ -4829,7 +5175,7 @@
- do_set_cpus_allowed(p, new_mask);
-
- /* Can the task run on the task's current CPU? If so, we're done */
-- if (cpumask_test_cpu(task_cpu(p), new_mask))
-+ if (cpumask_test_cpu(task_cpu(p), new_mask) || __migrate_disabled(p))
- goto out;
-
- dest_cpu = cpumask_any_and(cpu_active_mask, new_mask);
-@@ -4969,6 +5315,8 @@
-
- #ifdef CONFIG_HOTPLUG_CPU
-
-+static DEFINE_PER_CPU(struct mm_struct *, idle_last_mm);
-+
- /*
- * Ensures that the idle task is using init_mm right before its cpu goes
- * offline.
-@@ -4983,7 +5331,11 @@
- switch_mm(mm, &init_mm, current);
- finish_arch_post_lock_switch();
- }
-- mmdrop(mm);
-+ /*
-+ * Defer the cleanup to an alive cpu. On RT we can neither
-+ * call mmdrop() nor mmdrop_delayed() from here.
-+ */
-+ per_cpu(idle_last_mm, smp_processor_id()) = mm;
- }
-
- /*
-@@ -5326,6 +5678,10 @@
-
- case CPU_DEAD:
- calc_load_migrate(rq);
-+ if (per_cpu(idle_last_mm, cpu)) {
-+ mmdrop(per_cpu(idle_last_mm, cpu));
-+ per_cpu(idle_last_mm, cpu) = NULL;
-+ }
- break;
- #endif
- }
-@@ -7305,7 +7661,8 @@
- #ifdef CONFIG_DEBUG_ATOMIC_SLEEP
- static inline int preempt_count_equals(int preempt_offset)
- {
-- int nested = (preempt_count() & ~PREEMPT_ACTIVE) + rcu_preempt_depth();
-+ int nested = (preempt_count() & ~PREEMPT_ACTIVE) +
-+ sched_rcu_preempt_depth();
-
- return (nested == preempt_offset);
- }
-diff -Nur linux-4.1.39.orig/kernel/sched/cputime.c linux-4.1.39/kernel/sched/cputime.c
---- linux-4.1.39.orig/kernel/sched/cputime.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/sched/cputime.c 2017-04-18 17:56:30.633397907 +0200
-@@ -675,37 +675,45 @@
-
- void vtime_account_system(struct task_struct *tsk)
- {
-- write_seqlock(&tsk->vtime_seqlock);
-+ raw_spin_lock(&tsk->vtime_lock);
-+ write_seqcount_begin(&tsk->vtime_seq);
- __vtime_account_system(tsk);
-- write_sequnlock(&tsk->vtime_seqlock);
-+ write_seqcount_end(&tsk->vtime_seq);
-+ raw_spin_unlock(&tsk->vtime_lock);
- }
-
- void vtime_gen_account_irq_exit(struct task_struct *tsk)
- {
-- write_seqlock(&tsk->vtime_seqlock);
-+ raw_spin_lock(&tsk->vtime_lock);
-+ write_seqcount_begin(&tsk->vtime_seq);
- __vtime_account_system(tsk);
- if (context_tracking_in_user())
- tsk->vtime_snap_whence = VTIME_USER;
-- write_sequnlock(&tsk->vtime_seqlock);
-+ write_seqcount_end(&tsk->vtime_seq);
-+ raw_spin_unlock(&tsk->vtime_lock);
- }
-
- void vtime_account_user(struct task_struct *tsk)
- {
- cputime_t delta_cpu;
-
-- write_seqlock(&tsk->vtime_seqlock);
-+ raw_spin_lock(&tsk->vtime_lock);
-+ write_seqcount_begin(&tsk->vtime_seq);
- delta_cpu = get_vtime_delta(tsk);
- tsk->vtime_snap_whence = VTIME_SYS;
- account_user_time(tsk, delta_cpu, cputime_to_scaled(delta_cpu));
-- write_sequnlock(&tsk->vtime_seqlock);
-+ write_seqcount_end(&tsk->vtime_seq);
-+ raw_spin_unlock(&tsk->vtime_lock);
- }
-
- void vtime_user_enter(struct task_struct *tsk)
- {
-- write_seqlock(&tsk->vtime_seqlock);
-+ raw_spin_lock(&tsk->vtime_lock);
-+ write_seqcount_begin(&tsk->vtime_seq);
- __vtime_account_system(tsk);
- tsk->vtime_snap_whence = VTIME_USER;
-- write_sequnlock(&tsk->vtime_seqlock);
-+ write_seqcount_end(&tsk->vtime_seq);
-+ raw_spin_unlock(&tsk->vtime_lock);
- }
-
- void vtime_guest_enter(struct task_struct *tsk)
-@@ -717,19 +725,23 @@
- * synchronization against the reader (task_gtime())
- * that can thus safely catch up with a tickless delta.
- */
-- write_seqlock(&tsk->vtime_seqlock);
-+ raw_spin_lock(&tsk->vtime_lock);
-+ write_seqcount_begin(&tsk->vtime_seq);
- __vtime_account_system(tsk);
- current->flags |= PF_VCPU;
-- write_sequnlock(&tsk->vtime_seqlock);
-+ write_seqcount_end(&tsk->vtime_seq);
-+ raw_spin_unlock(&tsk->vtime_lock);
- }
- EXPORT_SYMBOL_GPL(vtime_guest_enter);
-
- void vtime_guest_exit(struct task_struct *tsk)
- {
-- write_seqlock(&tsk->vtime_seqlock);
-+ raw_spin_lock(&tsk->vtime_lock);
-+ write_seqcount_begin(&tsk->vtime_seq);
- __vtime_account_system(tsk);
- current->flags &= ~PF_VCPU;
-- write_sequnlock(&tsk->vtime_seqlock);
-+ write_seqcount_end(&tsk->vtime_seq);
-+ raw_spin_unlock(&tsk->vtime_lock);
- }
- EXPORT_SYMBOL_GPL(vtime_guest_exit);
-
-@@ -742,24 +754,30 @@
-
- void arch_vtime_task_switch(struct task_struct *prev)
- {
-- write_seqlock(&prev->vtime_seqlock);
-+ raw_spin_lock(&prev->vtime_lock);
-+ write_seqcount_begin(&prev->vtime_seq);
- prev->vtime_snap_whence = VTIME_SLEEPING;
-- write_sequnlock(&prev->vtime_seqlock);
-+ write_seqcount_end(&prev->vtime_seq);
-+ raw_spin_unlock(&prev->vtime_lock);
-
-- write_seqlock(&current->vtime_seqlock);
-+ raw_spin_lock(&current->vtime_lock);
-+ write_seqcount_begin(&current->vtime_seq);
- current->vtime_snap_whence = VTIME_SYS;
- current->vtime_snap = sched_clock_cpu(smp_processor_id());
-- write_sequnlock(&current->vtime_seqlock);
-+ write_seqcount_end(&current->vtime_seq);
-+ raw_spin_unlock(&current->vtime_lock);
- }
-
- void vtime_init_idle(struct task_struct *t, int cpu)
- {
- unsigned long flags;
-
-- write_seqlock_irqsave(&t->vtime_seqlock, flags);
-+ raw_spin_lock_irqsave(&t->vtime_lock, flags);
-+ write_seqcount_begin(&t->vtime_seq);
- t->vtime_snap_whence = VTIME_SYS;
- t->vtime_snap = sched_clock_cpu(cpu);
-- write_sequnlock_irqrestore(&t->vtime_seqlock, flags);
-+ write_seqcount_end(&t->vtime_seq);
-+ raw_spin_unlock_irqrestore(&t->vtime_lock, flags);
- }
-
- cputime_t task_gtime(struct task_struct *t)
-@@ -768,13 +786,13 @@
- cputime_t gtime;
-
- do {
-- seq = read_seqbegin(&t->vtime_seqlock);
-+ seq = read_seqcount_begin(&t->vtime_seq);
-
- gtime = t->gtime;
- if (t->flags & PF_VCPU)
- gtime += vtime_delta(t);
-
-- } while (read_seqretry(&t->vtime_seqlock, seq));
-+ } while (read_seqcount_retry(&t->vtime_seq, seq));
-
- return gtime;
- }
-@@ -797,7 +815,7 @@
- *udelta = 0;
- *sdelta = 0;
-
-- seq = read_seqbegin(&t->vtime_seqlock);
-+ seq = read_seqcount_begin(&t->vtime_seq);
-
- if (u_dst)
- *u_dst = *u_src;
-@@ -821,7 +839,7 @@
- if (t->vtime_snap_whence == VTIME_SYS)
- *sdelta = delta;
- }
-- } while (read_seqretry(&t->vtime_seqlock, seq));
-+ } while (read_seqcount_retry(&t->vtime_seq, seq));
- }
-
-
-diff -Nur linux-4.1.39.orig/kernel/sched/deadline.c linux-4.1.39/kernel/sched/deadline.c
---- linux-4.1.39.orig/kernel/sched/deadline.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/sched/deadline.c 2017-04-18 17:56:30.633397907 +0200
-@@ -637,6 +637,7 @@
-
- hrtimer_init(timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
- timer->function = dl_task_timer;
-+ timer->irqsafe = 1;
- }
-
- static
-diff -Nur linux-4.1.39.orig/kernel/sched/debug.c linux-4.1.39/kernel/sched/debug.c
---- linux-4.1.39.orig/kernel/sched/debug.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/sched/debug.c 2017-04-18 17:56:30.633397907 +0200
-@@ -260,6 +260,9 @@
- P(rt_throttled);
- PN(rt_time);
- PN(rt_runtime);
-+#ifdef CONFIG_SMP
-+ P(rt_nr_migratory);
-+#endif
-
- #undef PN
- #undef P
-@@ -648,6 +651,10 @@
- #endif
- P(policy);
- P(prio);
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ P(migrate_disable);
-+#endif
-+ P(nr_cpus_allowed);
- #undef PN
- #undef __PN
- #undef P
-diff -Nur linux-4.1.39.orig/kernel/sched/fair.c linux-4.1.39/kernel/sched/fair.c
---- linux-4.1.39.orig/kernel/sched/fair.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/sched/fair.c 2017-04-18 17:56:30.637398061 +0200
-@@ -3201,7 +3201,7 @@
- ideal_runtime = sched_slice(cfs_rq, curr);
- delta_exec = curr->sum_exec_runtime - curr->prev_sum_exec_runtime;
- if (delta_exec > ideal_runtime) {
-- resched_curr(rq_of(cfs_rq));
-+ resched_curr_lazy(rq_of(cfs_rq));
- /*
- * The current task ran long enough, ensure it doesn't get
- * re-elected due to buddy favours.
-@@ -3225,7 +3225,7 @@
- return;
-
- if (delta > ideal_runtime)
-- resched_curr(rq_of(cfs_rq));
-+ resched_curr_lazy(rq_of(cfs_rq));
- }
-
- static void
-@@ -3366,7 +3366,7 @@
- * validating it and just reschedule.
- */
- if (queued) {
-- resched_curr(rq_of(cfs_rq));
-+ resched_curr_lazy(rq_of(cfs_rq));
- return;
- }
- /*
-@@ -3557,7 +3557,7 @@
- * hierarchy can be throttled
- */
- if (!assign_cfs_rq_runtime(cfs_rq) && likely(cfs_rq->curr))
-- resched_curr(rq_of(cfs_rq));
-+ resched_curr_lazy(rq_of(cfs_rq));
- }
-
- static __always_inline
-@@ -4180,7 +4180,7 @@
-
- if (delta < 0) {
- if (rq->curr == p)
-- resched_curr(rq);
-+ resched_curr_lazy(rq);
- return;
- }
- hrtick_start(rq, delta);
-@@ -5076,7 +5076,7 @@
- return;
-
- preempt:
-- resched_curr(rq);
-+ resched_curr_lazy(rq);
- /*
- * Only set the backward buddy when the current task is still
- * on the rq. This can happen when a wakeup gets interleaved
-@@ -7869,7 +7869,7 @@
- * 'current' within the tree based on its new key value.
- */
- swap(curr->vruntime, se->vruntime);
-- resched_curr(rq);
-+ resched_curr_lazy(rq);
- }
-
- se->vruntime -= cfs_rq->min_vruntime;
-@@ -7894,7 +7894,7 @@
- */
- if (rq->curr == p) {
- if (p->prio > oldprio)
-- resched_curr(rq);
-+ resched_curr_lazy(rq);
- } else
- check_preempt_curr(rq, p, 0);
- }
-diff -Nur linux-4.1.39.orig/kernel/sched/features.h linux-4.1.39/kernel/sched/features.h
---- linux-4.1.39.orig/kernel/sched/features.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/sched/features.h 2017-04-18 17:56:30.637398061 +0200
-@@ -50,11 +50,19 @@
- */
- SCHED_FEAT(NONTASK_CAPACITY, true)
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+SCHED_FEAT(TTWU_QUEUE, false)
-+# ifdef CONFIG_PREEMPT_LAZY
-+SCHED_FEAT(PREEMPT_LAZY, true)
-+# endif
-+#else
-+
- /*
- * Queue remote wakeups on the target CPU and process them
- * using the scheduler IPI. Reduces rq->lock contention/bounces.
- */
- SCHED_FEAT(TTWU_QUEUE, true)
-+#endif
-
- #ifdef HAVE_RT_PUSH_IPI
- /*
-diff -Nur linux-4.1.39.orig/kernel/sched/Makefile linux-4.1.39/kernel/sched/Makefile
---- linux-4.1.39.orig/kernel/sched/Makefile 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/sched/Makefile 2017-04-18 17:56:30.633397907 +0200
-@@ -13,7 +13,7 @@
-
- obj-y += core.o proc.o clock.o cputime.o
- obj-y += idle_task.o fair.o rt.o deadline.o stop_task.o
--obj-y += wait.o completion.o idle.o
-+obj-y += wait.o wait-simple.o work-simple.o completion.o idle.o
- obj-$(CONFIG_SMP) += cpupri.o cpudeadline.o
- obj-$(CONFIG_SCHED_AUTOGROUP) += auto_group.o
- obj-$(CONFIG_SCHEDSTATS) += stats.o
-diff -Nur linux-4.1.39.orig/kernel/sched/rt.c linux-4.1.39/kernel/sched/rt.c
---- linux-4.1.39.orig/kernel/sched/rt.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/sched/rt.c 2017-04-18 17:56:30.637398061 +0200
-@@ -44,6 +44,7 @@
-
- hrtimer_init(&rt_b->rt_period_timer,
- CLOCK_MONOTONIC, HRTIMER_MODE_REL);
-+ rt_b->rt_period_timer.irqsafe = 1;
- rt_b->rt_period_timer.function = sched_rt_period_timer;
- }
-
-@@ -89,6 +90,7 @@
- rt_rq->push_cpu = nr_cpu_ids;
- raw_spin_lock_init(&rt_rq->push_lock);
- init_irq_work(&rt_rq->push_work, push_irq_work_func);
-+ rt_rq->push_work.flags |= IRQ_WORK_HARD_IRQ;
- #endif
- #endif /* CONFIG_SMP */
- /* We start is dequeued state, because no RT tasks are queued */
-diff -Nur linux-4.1.39.orig/kernel/sched/sched.h linux-4.1.39/kernel/sched/sched.h
---- linux-4.1.39.orig/kernel/sched/sched.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/sched/sched.h 2017-04-18 17:56:30.637398061 +0200
-@@ -1093,6 +1093,7 @@
- #define WF_SYNC 0x01 /* waker goes to sleep after wakeup */
- #define WF_FORK 0x02 /* child wakeup after fork */
- #define WF_MIGRATED 0x4 /* internal use, task got migrated */
-+#define WF_LOCK_SLEEPER 0x08 /* wakeup spinlock "sleeper" */
-
- /*
- * To aid in avoiding the subversion of "niceness" due to uneven distribution
-@@ -1290,6 +1291,15 @@
- extern void resched_curr(struct rq *rq);
- extern void resched_cpu(int cpu);
-
-+#ifdef CONFIG_PREEMPT_LAZY
-+extern void resched_curr_lazy(struct rq *rq);
-+#else
-+static inline void resched_curr_lazy(struct rq *rq)
-+{
-+ resched_curr(rq);
-+}
-+#endif
-+
- extern struct rt_bandwidth def_rt_bandwidth;
- extern void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime);
-
-diff -Nur linux-4.1.39.orig/kernel/sched/wait-simple.c linux-4.1.39/kernel/sched/wait-simple.c
---- linux-4.1.39.orig/kernel/sched/wait-simple.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/kernel/sched/wait-simple.c 2017-04-18 17:56:30.637398061 +0200
-@@ -0,0 +1,115 @@
-+/*
-+ * Simple waitqueues without fancy flags and callbacks
-+ *
-+ * (C) 2011 Thomas Gleixner <tglx@linutronix.de>
-+ *
-+ * Based on kernel/wait.c
-+ *
-+ * For licencing details see kernel-base/COPYING
-+ */
-+#include <linux/init.h>
-+#include <linux/export.h>
-+#include <linux/sched.h>
-+#include <linux/wait-simple.h>
-+
-+/* Adds w to head->list. Must be called with head->lock locked. */
-+static inline void __swait_enqueue(struct swait_head *head, struct swaiter *w)
-+{
-+ list_add(&w->node, &head->list);
-+ /* We can't let the condition leak before the setting of head */
-+ smp_mb();
-+}
-+
-+/* Removes w from head->list. Must be called with head->lock locked. */
-+static inline void __swait_dequeue(struct swaiter *w)
-+{
-+ list_del_init(&w->node);
-+}
-+
-+void __init_swait_head(struct swait_head *head, struct lock_class_key *key)
-+{
-+ raw_spin_lock_init(&head->lock);
-+ lockdep_set_class(&head->lock, key);
-+ INIT_LIST_HEAD(&head->list);
-+}
-+EXPORT_SYMBOL(__init_swait_head);
-+
-+void swait_prepare_locked(struct swait_head *head, struct swaiter *w)
-+{
-+ w->task = current;
-+ if (list_empty(&w->node))
-+ __swait_enqueue(head, w);
-+}
-+
-+void swait_prepare(struct swait_head *head, struct swaiter *w, int state)
-+{
-+ unsigned long flags;
-+
-+ raw_spin_lock_irqsave(&head->lock, flags);
-+ swait_prepare_locked(head, w);
-+ __set_current_state(state);
-+ raw_spin_unlock_irqrestore(&head->lock, flags);
-+}
-+EXPORT_SYMBOL(swait_prepare);
-+
-+void swait_finish_locked(struct swait_head *head, struct swaiter *w)
-+{
-+ __set_current_state(TASK_RUNNING);
-+ if (w->task)
-+ __swait_dequeue(w);
-+}
-+
-+void swait_finish(struct swait_head *head, struct swaiter *w)
-+{
-+ unsigned long flags;
-+
-+ __set_current_state(TASK_RUNNING);
-+ if (w->task) {
-+ raw_spin_lock_irqsave(&head->lock, flags);
-+ __swait_dequeue(w);
-+ raw_spin_unlock_irqrestore(&head->lock, flags);
-+ }
-+}
-+EXPORT_SYMBOL(swait_finish);
-+
-+unsigned int
-+__swait_wake_locked(struct swait_head *head, unsigned int state, unsigned int num)
-+{
-+ struct swaiter *curr, *next;
-+ int woken = 0;
-+
-+ list_for_each_entry_safe(curr, next, &head->list, node) {
-+ if (wake_up_state(curr->task, state)) {
-+ __swait_dequeue(curr);
-+ /*
-+ * The waiting task can free the waiter as
-+ * soon as curr->task = NULL is written,
-+ * without taking any locks. A memory barrier
-+ * is required here to prevent the following
-+ * store to curr->task from getting ahead of
-+ * the dequeue operation.
-+ */
-+ smp_wmb();
-+ curr->task = NULL;
-+ if (++woken == num)
-+ break;
-+ }
-+ }
-+ return woken;
-+}
-+
-+unsigned int
-+__swait_wake(struct swait_head *head, unsigned int state, unsigned int num)
-+{
-+ unsigned long flags;
-+ int woken;
-+
-+ if (!swaitqueue_active(head))
-+ return 0;
-+
-+ raw_spin_lock_irqsave(&head->lock, flags);
-+ woken = __swait_wake_locked(head, state, num);
-+ raw_spin_unlock_irqrestore(&head->lock, flags);
-+ return woken;
-+}
-+EXPORT_SYMBOL(__swait_wake);
-diff -Nur linux-4.1.39.orig/kernel/sched/work-simple.c linux-4.1.39/kernel/sched/work-simple.c
---- linux-4.1.39.orig/kernel/sched/work-simple.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/kernel/sched/work-simple.c 2017-04-18 17:56:30.637398061 +0200
-@@ -0,0 +1,173 @@
-+/*
-+ * Copyright (C) 2014 BMW Car IT GmbH, Daniel Wagner daniel.wagner@bmw-carit.de
-+ *
-+ * Provides a framework for enqueuing callbacks from irq context
-+ * PREEMPT_RT_FULL safe. The callbacks are executed in kthread context.
-+ */
-+
-+#include <linux/wait-simple.h>
-+#include <linux/work-simple.h>
-+#include <linux/kthread.h>
-+#include <linux/slab.h>
-+#include <linux/spinlock.h>
-+#include <linux/export.h>
-+
-+#define SWORK_EVENT_PENDING (1 << 0)
-+
-+static DEFINE_MUTEX(worker_mutex);
-+static struct sworker *glob_worker;
-+
-+struct sworker {
-+ struct list_head events;
-+ struct swait_head wq;
-+
-+ raw_spinlock_t lock;
-+
-+ struct task_struct *task;
-+ int refs;
-+};
-+
-+static bool swork_readable(struct sworker *worker)
-+{
-+ bool r;
-+
-+ if (kthread_should_stop())
-+ return true;
-+
-+ raw_spin_lock_irq(&worker->lock);
-+ r = !list_empty(&worker->events);
-+ raw_spin_unlock_irq(&worker->lock);
-+
-+ return r;
-+}
-+
-+static int swork_kthread(void *arg)
-+{
-+ struct sworker *worker = arg;
-+
-+ for (;;) {
-+ swait_event_interruptible(worker->wq,
-+ swork_readable(worker));
-+ if (kthread_should_stop())
-+ break;
-+
-+ raw_spin_lock_irq(&worker->lock);
-+ while (!list_empty(&worker->events)) {
-+ struct swork_event *sev;
-+
-+ sev = list_first_entry(&worker->events,
-+ struct swork_event, item);
-+ list_del(&sev->item);
-+ raw_spin_unlock_irq(&worker->lock);
-+
-+ WARN_ON_ONCE(!test_and_clear_bit(SWORK_EVENT_PENDING,
-+ &sev->flags));
-+ sev->func(sev);
-+ raw_spin_lock_irq(&worker->lock);
-+ }
-+ raw_spin_unlock_irq(&worker->lock);
-+ }
-+ return 0;
-+}
-+
-+static struct sworker *swork_create(void)
-+{
-+ struct sworker *worker;
-+
-+ worker = kzalloc(sizeof(*worker), GFP_KERNEL);
-+ if (!worker)
-+ return ERR_PTR(-ENOMEM);
-+
-+ INIT_LIST_HEAD(&worker->events);
-+ raw_spin_lock_init(&worker->lock);
-+ init_swait_head(&worker->wq);
-+
-+ worker->task = kthread_run(swork_kthread, worker, "kswork");
-+ if (IS_ERR(worker->task)) {
-+ kfree(worker);
-+ return ERR_PTR(-ENOMEM);
-+ }
-+
-+ return worker;
-+}
-+
-+static void swork_destroy(struct sworker *worker)
-+{
-+ kthread_stop(worker->task);
-+
-+ WARN_ON(!list_empty(&worker->events));
-+ kfree(worker);
-+}
-+
-+/**
-+ * swork_queue - queue swork
-+ *
-+ * Returns %false if @work was already on a queue, %true otherwise.
-+ *
-+ * The work is queued and processed on a random CPU
-+ */
-+bool swork_queue(struct swork_event *sev)
-+{
-+ unsigned long flags;
-+
-+ if (test_and_set_bit(SWORK_EVENT_PENDING, &sev->flags))
-+ return false;
-+
-+ raw_spin_lock_irqsave(&glob_worker->lock, flags);
-+ list_add_tail(&sev->item, &glob_worker->events);
-+ raw_spin_unlock_irqrestore(&glob_worker->lock, flags);
-+
-+ swait_wake(&glob_worker->wq);
-+ return true;
-+}
-+EXPORT_SYMBOL_GPL(swork_queue);
-+
-+/**
-+ * swork_get - get an instance of the sworker
-+ *
-+ * Returns an negative error code if the initialization if the worker did not
-+ * work, %0 otherwise.
-+ *
-+ */
-+int swork_get(void)
-+{
-+ struct sworker *worker;
-+
-+ mutex_lock(&worker_mutex);
-+ if (!glob_worker) {
-+ worker = swork_create();
-+ if (IS_ERR(worker)) {
-+ mutex_unlock(&worker_mutex);
-+ return -ENOMEM;
-+ }
-+
-+ glob_worker = worker;
-+ }
-+
-+ glob_worker->refs++;
-+ mutex_unlock(&worker_mutex);
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL_GPL(swork_get);
-+
-+/**
-+ * swork_put - puts an instance of the sworker
-+ *
-+ * Will destroy the sworker thread. This function must not be called until all
-+ * queued events have been completed.
-+ */
-+void swork_put(void)
-+{
-+ mutex_lock(&worker_mutex);
-+
-+ glob_worker->refs--;
-+ if (glob_worker->refs > 0)
-+ goto out;
-+
-+ swork_destroy(glob_worker);
-+ glob_worker = NULL;
-+out:
-+ mutex_unlock(&worker_mutex);
-+}
-+EXPORT_SYMBOL_GPL(swork_put);
-diff -Nur linux-4.1.39.orig/kernel/signal.c linux-4.1.39/kernel/signal.c
---- linux-4.1.39.orig/kernel/signal.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/signal.c 2017-04-18 17:56:30.637398061 +0200
-@@ -14,6 +14,7 @@
- #include <linux/export.h>
- #include <linux/init.h>
- #include <linux/sched.h>
-+#include <linux/sched/rt.h>
- #include <linux/fs.h>
- #include <linux/tty.h>
- #include <linux/binfmts.h>
-@@ -352,13 +353,45 @@
- return false;
- }
-
-+#ifdef __HAVE_ARCH_CMPXCHG
-+static inline struct sigqueue *get_task_cache(struct task_struct *t)
-+{
-+ struct sigqueue *q = t->sigqueue_cache;
-+
-+ if (cmpxchg(&t->sigqueue_cache, q, NULL) != q)
-+ return NULL;
-+ return q;
-+}
-+
-+static inline int put_task_cache(struct task_struct *t, struct sigqueue *q)
-+{
-+ if (cmpxchg(&t->sigqueue_cache, NULL, q) == NULL)
-+ return 0;
-+ return 1;
-+}
-+
-+#else
-+
-+static inline struct sigqueue *get_task_cache(struct task_struct *t)
-+{
-+ return NULL;
-+}
-+
-+static inline int put_task_cache(struct task_struct *t, struct sigqueue *q)
-+{
-+ return 1;
-+}
-+
-+#endif
-+
- /*
- * allocate a new signal queue record
- * - this may be called without locks if and only if t == current, otherwise an
- * appropriate lock must be held to stop the target task from exiting
- */
- static struct sigqueue *
--__sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimit)
-+__sigqueue_do_alloc(int sig, struct task_struct *t, gfp_t flags,
-+ int override_rlimit, int fromslab)
- {
- struct sigqueue *q = NULL;
- struct user_struct *user;
-@@ -375,7 +408,10 @@
- if (override_rlimit ||
- atomic_read(&user->sigpending) <=
- task_rlimit(t, RLIMIT_SIGPENDING)) {
-- q = kmem_cache_alloc(sigqueue_cachep, flags);
-+ if (!fromslab)
-+ q = get_task_cache(t);
-+ if (!q)
-+ q = kmem_cache_alloc(sigqueue_cachep, flags);
- } else {
- print_dropped_signal(sig);
- }
-@@ -392,6 +428,13 @@
- return q;
- }
-
-+static struct sigqueue *
-+__sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags,
-+ int override_rlimit)
-+{
-+ return __sigqueue_do_alloc(sig, t, flags, override_rlimit, 0);
-+}
-+
- static void __sigqueue_free(struct sigqueue *q)
- {
- if (q->flags & SIGQUEUE_PREALLOC)
-@@ -401,6 +444,21 @@
- kmem_cache_free(sigqueue_cachep, q);
- }
-
-+static void sigqueue_free_current(struct sigqueue *q)
-+{
-+ struct user_struct *up;
-+
-+ if (q->flags & SIGQUEUE_PREALLOC)
-+ return;
-+
-+ up = q->user;
-+ if (rt_prio(current->normal_prio) && !put_task_cache(current, q)) {
-+ atomic_dec(&up->sigpending);
-+ free_uid(up);
-+ } else
-+ __sigqueue_free(q);
-+}
-+
- void flush_sigqueue(struct sigpending *queue)
- {
- struct sigqueue *q;
-@@ -414,6 +472,21 @@
- }
-
- /*
-+ * Called from __exit_signal. Flush tsk->pending and
-+ * tsk->sigqueue_cache
-+ */
-+void flush_task_sigqueue(struct task_struct *tsk)
-+{
-+ struct sigqueue *q;
-+
-+ flush_sigqueue(&tsk->pending);
-+
-+ q = get_task_cache(tsk);
-+ if (q)
-+ kmem_cache_free(sigqueue_cachep, q);
-+}
-+
-+/*
- * Flush all pending signals for a task.
- */
- void __flush_signals(struct task_struct *t)
-@@ -565,7 +638,7 @@
- still_pending:
- list_del_init(&first->list);
- copy_siginfo(info, &first->info);
-- __sigqueue_free(first);
-+ sigqueue_free_current(first);
- } else {
- /*
- * Ok, it wasn't in the queue. This must be
-@@ -611,6 +684,8 @@
- {
- int signr;
-
-+ WARN_ON_ONCE(tsk != current);
-+
- /* We only dequeue private signals from ourselves, we don't let
- * signalfd steal them
- */
-@@ -1207,8 +1282,8 @@
- * We don't want to have recursive SIGSEGV's etc, for example,
- * that is why we also clear SIGNAL_UNKILLABLE.
- */
--int
--force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
-+static int
-+do_force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
- {
- unsigned long int flags;
- int ret, blocked, ignored;
-@@ -1233,6 +1308,39 @@
- return ret;
- }
-
-+int force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
-+{
-+/*
-+ * On some archs, PREEMPT_RT has to delay sending a signal from a trap
-+ * since it can not enable preemption, and the signal code's spin_locks
-+ * turn into mutexes. Instead, it must set TIF_NOTIFY_RESUME which will
-+ * send the signal on exit of the trap.
-+ */
-+#ifdef ARCH_RT_DELAYS_SIGNAL_SEND
-+ if (in_atomic()) {
-+ if (WARN_ON_ONCE(t != current))
-+ return 0;
-+ if (WARN_ON_ONCE(t->forced_info.si_signo))
-+ return 0;
-+
-+ if (is_si_special(info)) {
-+ WARN_ON_ONCE(info != SEND_SIG_PRIV);
-+ t->forced_info.si_signo = sig;
-+ t->forced_info.si_errno = 0;
-+ t->forced_info.si_code = SI_KERNEL;
-+ t->forced_info.si_pid = 0;
-+ t->forced_info.si_uid = 0;
-+ } else {
-+ t->forced_info = *info;
-+ }
-+
-+ set_tsk_thread_flag(t, TIF_NOTIFY_RESUME);
-+ return 0;
-+ }
-+#endif
-+ return do_force_sig_info(sig, info, t);
-+}
-+
- /*
- * Nuke all other threads in the group.
- */
-@@ -1267,12 +1375,12 @@
- * Disable interrupts early to avoid deadlocks.
- * See rcu_read_unlock() comment header for details.
- */
-- local_irq_save(*flags);
-+ local_irq_save_nort(*flags);
- rcu_read_lock();
- sighand = rcu_dereference(tsk->sighand);
- if (unlikely(sighand == NULL)) {
- rcu_read_unlock();
-- local_irq_restore(*flags);
-+ local_irq_restore_nort(*flags);
- break;
- }
- /*
-@@ -1293,7 +1401,7 @@
- }
- spin_unlock(&sighand->siglock);
- rcu_read_unlock();
-- local_irq_restore(*flags);
-+ local_irq_restore_nort(*flags);
- }
-
- return sighand;
-@@ -1536,7 +1644,8 @@
- */
- struct sigqueue *sigqueue_alloc(void)
- {
-- struct sigqueue *q = __sigqueue_alloc(-1, current, GFP_KERNEL, 0);
-+ /* Preallocated sigqueue objects always from the slabcache ! */
-+ struct sigqueue *q = __sigqueue_do_alloc(-1, current, GFP_KERNEL, 0, 1);
-
- if (q)
- q->flags |= SIGQUEUE_PREALLOC;
-@@ -1897,15 +2006,7 @@
- if (gstop_done && ptrace_reparented(current))
- do_notify_parent_cldstop(current, false, why);
-
-- /*
-- * Don't want to allow preemption here, because
-- * sys_ptrace() needs this task to be inactive.
-- *
-- * XXX: implement read_unlock_no_resched().
-- */
-- preempt_disable();
- read_unlock(&tasklist_lock);
-- preempt_enable_no_resched();
- freezable_schedule();
- } else {
- /*
-diff -Nur linux-4.1.39.orig/kernel/softirq.c linux-4.1.39/kernel/softirq.c
---- linux-4.1.39.orig/kernel/softirq.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/softirq.c 2017-04-18 17:56:30.637398061 +0200
-@@ -21,10 +21,12 @@
- #include <linux/freezer.h>
- #include <linux/kthread.h>
- #include <linux/rcupdate.h>
-+#include <linux/delay.h>
- #include <linux/ftrace.h>
- #include <linux/smp.h>
- #include <linux/smpboot.h>
- #include <linux/tick.h>
-+#include <linux/locallock.h>
- #include <linux/irq.h>
-
- #define CREATE_TRACE_POINTS
-@@ -56,12 +58,108 @@
- static struct softirq_action softirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp;
-
- DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+#define TIMER_SOFTIRQS ((1 << TIMER_SOFTIRQ) | (1 << HRTIMER_SOFTIRQ))
-+DEFINE_PER_CPU(struct task_struct *, ktimer_softirqd);
-+#endif
-
- const char * const softirq_to_name[NR_SOFTIRQS] = {
- "HI", "TIMER", "NET_TX", "NET_RX", "BLOCK", "BLOCK_IOPOLL",
- "TASKLET", "SCHED", "HRTIMER", "RCU"
- };
-
-+#ifdef CONFIG_NO_HZ_COMMON
-+# ifdef CONFIG_PREEMPT_RT_FULL
-+
-+struct softirq_runner {
-+ struct task_struct *runner[NR_SOFTIRQS];
-+};
-+
-+static DEFINE_PER_CPU(struct softirq_runner, softirq_runners);
-+
-+static inline void softirq_set_runner(unsigned int sirq)
-+{
-+ struct softirq_runner *sr = this_cpu_ptr(&softirq_runners);
-+
-+ sr->runner[sirq] = current;
-+}
-+
-+static inline void softirq_clr_runner(unsigned int sirq)
-+{
-+ struct softirq_runner *sr = this_cpu_ptr(&softirq_runners);
-+
-+ sr->runner[sirq] = NULL;
-+}
-+
-+/*
-+ * On preempt-rt a softirq running context might be blocked on a
-+ * lock. There might be no other runnable task on this CPU because the
-+ * lock owner runs on some other CPU. So we have to go into idle with
-+ * the pending bit set. Therefor we need to check this otherwise we
-+ * warn about false positives which confuses users and defeats the
-+ * whole purpose of this test.
-+ *
-+ * This code is called with interrupts disabled.
-+ */
-+void softirq_check_pending_idle(void)
-+{
-+ static int rate_limit;
-+ struct softirq_runner *sr = this_cpu_ptr(&softirq_runners);
-+ u32 warnpending;
-+ int i;
-+
-+ if (rate_limit >= 10)
-+ return;
-+
-+ warnpending = local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK;
-+ for (i = 0; i < NR_SOFTIRQS; i++) {
-+ struct task_struct *tsk = sr->runner[i];
-+
-+ /*
-+ * The wakeup code in rtmutex.c wakes up the task
-+ * _before_ it sets pi_blocked_on to NULL under
-+ * tsk->pi_lock. So we need to check for both: state
-+ * and pi_blocked_on.
-+ */
-+ if (tsk) {
-+ raw_spin_lock(&tsk->pi_lock);
-+ if (tsk->pi_blocked_on || tsk->state == TASK_RUNNING) {
-+ /* Clear all bits pending in that task */
-+ warnpending &= ~(tsk->softirqs_raised);
-+ warnpending &= ~(1 << i);
-+ }
-+ raw_spin_unlock(&tsk->pi_lock);
-+ }
-+ }
-+
-+ if (warnpending) {
-+ printk(KERN_ERR "NOHZ: local_softirq_pending %02x\n",
-+ warnpending);
-+ rate_limit++;
-+ }
-+}
-+# else
-+/*
-+ * On !PREEMPT_RT we just printk rate limited:
-+ */
-+void softirq_check_pending_idle(void)
-+{
-+ static int rate_limit;
-+
-+ if (rate_limit < 10 &&
-+ (local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK)) {
-+ printk(KERN_ERR "NOHZ: local_softirq_pending %02x\n",
-+ local_softirq_pending());
-+ rate_limit++;
-+ }
-+}
-+# endif
-+
-+#else /* !CONFIG_NO_HZ_COMMON */
-+static inline void softirq_set_runner(unsigned int sirq) { }
-+static inline void softirq_clr_runner(unsigned int sirq) { }
-+#endif
-+
- /*
- * we cannot loop indefinitely here to avoid userspace starvation,
- * but we also don't want to introduce a worst case 1/HZ latency
-@@ -77,6 +175,79 @@
- wake_up_process(tsk);
- }
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+static void wakeup_timer_softirqd(void)
-+{
-+ /* Interrupts are disabled: no need to stop preemption */
-+ struct task_struct *tsk = __this_cpu_read(ktimer_softirqd);
-+
-+ if (tsk && tsk->state != TASK_RUNNING)
-+ wake_up_process(tsk);
-+}
-+#endif
-+
-+static void handle_softirq(unsigned int vec_nr)
-+{
-+ struct softirq_action *h = softirq_vec + vec_nr;
-+ int prev_count;
-+
-+ prev_count = preempt_count();
-+
-+ kstat_incr_softirqs_this_cpu(vec_nr);
-+
-+ trace_softirq_entry(vec_nr);
-+ h->action(h);
-+ trace_softirq_exit(vec_nr);
-+ if (unlikely(prev_count != preempt_count())) {
-+ pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n",
-+ vec_nr, softirq_to_name[vec_nr], h->action,
-+ prev_count, preempt_count());
-+ preempt_count_set(prev_count);
-+ }
-+}
-+
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+static inline int ksoftirqd_softirq_pending(void)
-+{
-+ return local_softirq_pending();
-+}
-+
-+static void handle_pending_softirqs(u32 pending)
-+{
-+ struct softirq_action *h = softirq_vec;
-+ int softirq_bit;
-+
-+ local_irq_enable();
-+
-+ h = softirq_vec;
-+
-+ while ((softirq_bit = ffs(pending))) {
-+ unsigned int vec_nr;
-+
-+ h += softirq_bit - 1;
-+ vec_nr = h - softirq_vec;
-+ handle_softirq(vec_nr);
-+
-+ h++;
-+ pending >>= softirq_bit;
-+ }
-+
-+ rcu_bh_qs();
-+ local_irq_disable();
-+}
-+
-+static void run_ksoftirqd(unsigned int cpu)
-+{
-+ local_irq_disable();
-+ if (ksoftirqd_softirq_pending()) {
-+ __do_softirq();
-+ local_irq_enable();
-+ cond_resched_rcu_qs();
-+ return;
-+ }
-+ local_irq_enable();
-+}
-+
- /*
- * preempt_count and SOFTIRQ_OFFSET usage:
- * - preempt_count is changed by SOFTIRQ_OFFSET on entering or leaving
-@@ -116,9 +287,9 @@
-
- if (preempt_count() == cnt) {
- #ifdef CONFIG_DEBUG_PREEMPT
-- current->preempt_disable_ip = get_parent_ip(CALLER_ADDR1);
-+ current->preempt_disable_ip = get_lock_parent_ip();
- #endif
-- trace_preempt_off(CALLER_ADDR0, get_parent_ip(CALLER_ADDR1));
-+ trace_preempt_off(CALLER_ADDR0, get_lock_parent_ip());
- }
- }
- EXPORT_SYMBOL(__local_bh_disable_ip);
-@@ -232,10 +403,8 @@
- unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
- unsigned long old_flags = current->flags;
- int max_restart = MAX_SOFTIRQ_RESTART;
-- struct softirq_action *h;
- bool in_hardirq;
- __u32 pending;
-- int softirq_bit;
-
- /*
- * Mask out PF_MEMALLOC s current task context is borrowed for the
-@@ -254,36 +423,7 @@
- /* Reset the pending bitmask before enabling irqs */
- set_softirq_pending(0);
-
-- local_irq_enable();
--
-- h = softirq_vec;
--
-- while ((softirq_bit = ffs(pending))) {
-- unsigned int vec_nr;
-- int prev_count;
--
-- h += softirq_bit - 1;
--
-- vec_nr = h - softirq_vec;
-- prev_count = preempt_count();
--
-- kstat_incr_softirqs_this_cpu(vec_nr);
--
-- trace_softirq_entry(vec_nr);
-- h->action(h);
-- trace_softirq_exit(vec_nr);
-- if (unlikely(prev_count != preempt_count())) {
-- pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n",
-- vec_nr, softirq_to_name[vec_nr], h->action,
-- prev_count, preempt_count());
-- preempt_count_set(prev_count);
-- }
-- h++;
-- pending >>= softirq_bit;
-- }
--
-- rcu_bh_qs();
-- local_irq_disable();
-+ handle_pending_softirqs(pending);
-
- pending = local_softirq_pending();
- if (pending) {
-@@ -320,6 +460,310 @@
- }
-
- /*
-+ * This function must run with irqs disabled!
-+ */
-+void raise_softirq_irqoff(unsigned int nr)
-+{
-+ __raise_softirq_irqoff(nr);
-+
-+ /*
-+ * If we're in an interrupt or softirq, we're done
-+ * (this also catches softirq-disabled code). We will
-+ * actually run the softirq once we return from
-+ * the irq or softirq.
-+ *
-+ * Otherwise we wake up ksoftirqd to make sure we
-+ * schedule the softirq soon.
-+ */
-+ if (!in_interrupt())
-+ wakeup_softirqd();
-+}
-+
-+void __raise_softirq_irqoff(unsigned int nr)
-+{
-+ trace_softirq_raise(nr);
-+ or_softirq_pending(1UL << nr);
-+}
-+
-+static inline void local_bh_disable_nort(void) { local_bh_disable(); }
-+static inline void _local_bh_enable_nort(void) { _local_bh_enable(); }
-+static void ksoftirqd_set_sched_params(unsigned int cpu) { }
-+
-+#else /* !PREEMPT_RT_FULL */
-+
-+/*
-+ * On RT we serialize softirq execution with a cpu local lock per softirq
-+ */
-+static DEFINE_PER_CPU(struct local_irq_lock [NR_SOFTIRQS], local_softirq_locks);
-+
-+void __init softirq_early_init(void)
-+{
-+ int i;
-+
-+ for (i = 0; i < NR_SOFTIRQS; i++)
-+ local_irq_lock_init(local_softirq_locks[i]);
-+}
-+
-+static void lock_softirq(int which)
-+{
-+ local_lock(local_softirq_locks[which]);
-+}
-+
-+static void unlock_softirq(int which)
-+{
-+ local_unlock(local_softirq_locks[which]);
-+}
-+
-+static void do_single_softirq(int which)
-+{
-+ unsigned long old_flags = current->flags;
-+
-+ current->flags &= ~PF_MEMALLOC;
-+ vtime_account_irq_enter(current);
-+ current->flags |= PF_IN_SOFTIRQ;
-+ lockdep_softirq_enter();
-+ local_irq_enable();
-+ handle_softirq(which);
-+ local_irq_disable();
-+ lockdep_softirq_exit();
-+ current->flags &= ~PF_IN_SOFTIRQ;
-+ vtime_account_irq_enter(current);
-+ tsk_restore_flags(current, old_flags, PF_MEMALLOC);
-+}
-+
-+/*
-+ * Called with interrupts disabled. Process softirqs which were raised
-+ * in current context (or on behalf of ksoftirqd).
-+ */
-+static void do_current_softirqs(void)
-+{
-+ while (current->softirqs_raised) {
-+ int i = __ffs(current->softirqs_raised);
-+ unsigned int pending, mask = (1U << i);
-+
-+ current->softirqs_raised &= ~mask;
-+ local_irq_enable();
-+
-+ /*
-+ * If the lock is contended, we boost the owner to
-+ * process the softirq or leave the critical section
-+ * now.
-+ */
-+ lock_softirq(i);
-+ local_irq_disable();
-+ softirq_set_runner(i);
-+ /*
-+ * Check with the local_softirq_pending() bits,
-+ * whether we need to process this still or if someone
-+ * else took care of it.
-+ */
-+ pending = local_softirq_pending();
-+ if (pending & mask) {
-+ set_softirq_pending(pending & ~mask);
-+ do_single_softirq(i);
-+ }
-+ softirq_clr_runner(i);
-+ WARN_ON(current->softirq_nestcnt != 1);
-+ local_irq_enable();
-+ unlock_softirq(i);
-+ local_irq_disable();
-+ }
-+}
-+
-+void __local_bh_disable(void)
-+{
-+ if (++current->softirq_nestcnt == 1)
-+ migrate_disable();
-+}
-+EXPORT_SYMBOL(__local_bh_disable);
-+
-+void __local_bh_enable(void)
-+{
-+ if (WARN_ON(current->softirq_nestcnt == 0))
-+ return;
-+
-+ local_irq_disable();
-+ if (current->softirq_nestcnt == 1 && current->softirqs_raised)
-+ do_current_softirqs();
-+ local_irq_enable();
-+
-+ if (--current->softirq_nestcnt == 0)
-+ migrate_enable();
-+}
-+EXPORT_SYMBOL(__local_bh_enable);
-+
-+void _local_bh_enable(void)
-+{
-+ if (WARN_ON(current->softirq_nestcnt == 0))
-+ return;
-+ if (--current->softirq_nestcnt == 0)
-+ migrate_enable();
-+}
-+EXPORT_SYMBOL(_local_bh_enable);
-+
-+int in_serving_softirq(void)
-+{
-+ return current->flags & PF_IN_SOFTIRQ;
-+}
-+EXPORT_SYMBOL(in_serving_softirq);
-+
-+/* Called with preemption disabled */
-+static void run_ksoftirqd(unsigned int cpu)
-+{
-+ local_irq_disable();
-+ current->softirq_nestcnt++;
-+
-+ do_current_softirqs();
-+ current->softirq_nestcnt--;
-+ local_irq_enable();
-+ cond_resched_rcu_qs();
-+}
-+
-+/*
-+ * Called from netif_rx_ni(). Preemption enabled, but migration
-+ * disabled. So the cpu can't go away under us.
-+ */
-+void thread_do_softirq(void)
-+{
-+ if (!in_serving_softirq() && current->softirqs_raised) {
-+ current->softirq_nestcnt++;
-+ do_current_softirqs();
-+ current->softirq_nestcnt--;
-+ }
-+}
-+
-+static void do_raise_softirq_irqoff(unsigned int nr)
-+{
-+ unsigned int mask;
-+
-+ mask = 1UL << nr;
-+
-+ trace_softirq_raise(nr);
-+ or_softirq_pending(mask);
-+
-+ /*
-+ * If we are not in a hard interrupt and inside a bh disabled
-+ * region, we simply raise the flag on current. local_bh_enable()
-+ * will make sure that the softirq is executed. Otherwise we
-+ * delegate it to ksoftirqd.
-+ */
-+ if (!in_irq() && current->softirq_nestcnt)
-+ current->softirqs_raised |= mask;
-+ else if (!__this_cpu_read(ksoftirqd) || !__this_cpu_read(ktimer_softirqd))
-+ return;
-+
-+ if (mask & TIMER_SOFTIRQS)
-+ __this_cpu_read(ktimer_softirqd)->softirqs_raised |= mask;
-+ else
-+ __this_cpu_read(ksoftirqd)->softirqs_raised |= mask;
-+}
-+
-+static void wakeup_proper_softirq(unsigned int nr)
-+{
-+ if ((1UL << nr) & TIMER_SOFTIRQS)
-+ wakeup_timer_softirqd();
-+ else
-+ wakeup_softirqd();
-+}
-+
-+
-+void __raise_softirq_irqoff(unsigned int nr)
-+{
-+ do_raise_softirq_irqoff(nr);
-+ if (!in_irq() && !current->softirq_nestcnt)
-+ wakeup_proper_softirq(nr);
-+}
-+
-+/*
-+ * Same as __raise_softirq_irqoff() but will process them in ksoftirqd
-+ */
-+void __raise_softirq_irqoff_ksoft(unsigned int nr)
-+{
-+ unsigned int mask;
-+
-+ if (WARN_ON_ONCE(!__this_cpu_read(ksoftirqd) ||
-+ !__this_cpu_read(ktimer_softirqd)))
-+ return;
-+ mask = 1UL << nr;
-+
-+ trace_softirq_raise(nr);
-+ or_softirq_pending(mask);
-+ if (mask & TIMER_SOFTIRQS)
-+ __this_cpu_read(ktimer_softirqd)->softirqs_raised |= mask;
-+ else
-+ __this_cpu_read(ksoftirqd)->softirqs_raised |= mask;
-+ wakeup_proper_softirq(nr);
-+}
-+
-+/*
-+ * This function must run with irqs disabled!
-+ */
-+void raise_softirq_irqoff(unsigned int nr)
-+{
-+ do_raise_softirq_irqoff(nr);
-+
-+ /*
-+ * If we're in an hard interrupt we let irq return code deal
-+ * with the wakeup of ksoftirqd.
-+ */
-+ if (in_irq())
-+ return;
-+ /*
-+ * If we are in thread context but outside of a bh disabled
-+ * region, we need to wake ksoftirqd as well.
-+ *
-+ * CHECKME: Some of the places which do that could be wrapped
-+ * into local_bh_disable/enable pairs. Though it's unclear
-+ * whether this is worth the effort. To find those places just
-+ * raise a WARN() if the condition is met.
-+ */
-+ if (!current->softirq_nestcnt)
-+ wakeup_proper_softirq(nr);
-+}
-+
-+static inline int ksoftirqd_softirq_pending(void)
-+{
-+ return current->softirqs_raised;
-+}
-+
-+static inline void local_bh_disable_nort(void) { }
-+static inline void _local_bh_enable_nort(void) { }
-+
-+static inline void ksoftirqd_set_sched_params(unsigned int cpu)
-+{
-+ /* Take over all but timer pending softirqs when starting */
-+ local_irq_disable();
-+ current->softirqs_raised = local_softirq_pending() & ~TIMER_SOFTIRQS;
-+ local_irq_enable();
-+}
-+
-+static inline void ktimer_softirqd_set_sched_params(unsigned int cpu)
-+{
-+ struct sched_param param = { .sched_priority = 1 };
-+
-+ sched_setscheduler(current, SCHED_FIFO, &param);
-+
-+ /* Take over timer pending softirqs when starting */
-+ local_irq_disable();
-+ current->softirqs_raised = local_softirq_pending() & TIMER_SOFTIRQS;
-+ local_irq_enable();
-+}
-+
-+static inline void ktimer_softirqd_clr_sched_params(unsigned int cpu,
-+ bool online)
-+{
-+ struct sched_param param = { .sched_priority = 0 };
-+
-+ sched_setscheduler(current, SCHED_NORMAL, &param);
-+}
-+
-+static int ktimer_softirqd_should_run(unsigned int cpu)
-+{
-+ return current->softirqs_raised;
-+}
-+
-+#endif /* PREEMPT_RT_FULL */
-+/*
- * Enter an interrupt context.
- */
- void irq_enter(void)
-@@ -330,9 +774,9 @@
- * Prevent raise_softirq from needlessly waking up ksoftirqd
- * here, as softirq will be serviced on return from interrupt.
- */
-- local_bh_disable();
-+ local_bh_disable_nort();
- tick_irq_enter();
-- _local_bh_enable();
-+ _local_bh_enable_nort();
- }
-
- __irq_enter();
-@@ -340,6 +784,7 @@
-
- static inline void invoke_softirq(void)
- {
-+#ifndef CONFIG_PREEMPT_RT_FULL
- if (!force_irqthreads) {
- #ifdef CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK
- /*
-@@ -359,6 +804,18 @@
- } else {
- wakeup_softirqd();
- }
-+#else /* PREEMPT_RT_FULL */
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+ if (__this_cpu_read(ksoftirqd) &&
-+ __this_cpu_read(ksoftirqd)->softirqs_raised)
-+ wakeup_softirqd();
-+ if (__this_cpu_read(ktimer_softirqd) &&
-+ __this_cpu_read(ktimer_softirqd)->softirqs_raised)
-+ wakeup_timer_softirqd();
-+ local_irq_restore(flags);
-+#endif
- }
-
- static inline void tick_irq_exit(void)
-@@ -395,26 +852,6 @@
- trace_hardirq_exit(); /* must be last! */
- }
-
--/*
-- * This function must run with irqs disabled!
-- */
--inline void raise_softirq_irqoff(unsigned int nr)
--{
-- __raise_softirq_irqoff(nr);
--
-- /*
-- * If we're in an interrupt or softirq, we're done
-- * (this also catches softirq-disabled code). We will
-- * actually run the softirq once we return from
-- * the irq or softirq.
-- *
-- * Otherwise we wake up ksoftirqd to make sure we
-- * schedule the softirq soon.
-- */
-- if (!in_interrupt())
-- wakeup_softirqd();
--}
--
- void raise_softirq(unsigned int nr)
- {
- unsigned long flags;
-@@ -424,12 +861,6 @@
- local_irq_restore(flags);
- }
-
--void __raise_softirq_irqoff(unsigned int nr)
--{
-- trace_softirq_raise(nr);
-- or_softirq_pending(1UL << nr);
--}
--
- void open_softirq(int nr, void (*action)(struct softirq_action *))
- {
- softirq_vec[nr].action = action;
-@@ -446,15 +877,45 @@
- static DEFINE_PER_CPU(struct tasklet_head, tasklet_vec);
- static DEFINE_PER_CPU(struct tasklet_head, tasklet_hi_vec);
-
-+static void inline
-+__tasklet_common_schedule(struct tasklet_struct *t, struct tasklet_head *head, unsigned int nr)
-+{
-+ if (tasklet_trylock(t)) {
-+again:
-+ /* We may have been preempted before tasklet_trylock
-+ * and __tasklet_action may have already run.
-+ * So double check the sched bit while the takslet
-+ * is locked before adding it to the list.
-+ */
-+ if (test_bit(TASKLET_STATE_SCHED, &t->state)) {
-+ t->next = NULL;
-+ *head->tail = t;
-+ head->tail = &(t->next);
-+ raise_softirq_irqoff(nr);
-+ tasklet_unlock(t);
-+ } else {
-+ /* This is subtle. If we hit the corner case above
-+ * It is possible that we get preempted right here,
-+ * and another task has successfully called
-+ * tasklet_schedule(), then this function, and
-+ * failed on the trylock. Thus we must be sure
-+ * before releasing the tasklet lock, that the
-+ * SCHED_BIT is clear. Otherwise the tasklet
-+ * may get its SCHED_BIT set, but not added to the
-+ * list
-+ */
-+ if (!tasklet_tryunlock(t))
-+ goto again;
-+ }
-+ }
-+}
-+
- void __tasklet_schedule(struct tasklet_struct *t)
- {
- unsigned long flags;
-
- local_irq_save(flags);
-- t->next = NULL;
-- *__this_cpu_read(tasklet_vec.tail) = t;
-- __this_cpu_write(tasklet_vec.tail, &(t->next));
-- raise_softirq_irqoff(TASKLET_SOFTIRQ);
-+ __tasklet_common_schedule(t, this_cpu_ptr(&tasklet_vec), TASKLET_SOFTIRQ);
- local_irq_restore(flags);
- }
- EXPORT_SYMBOL(__tasklet_schedule);
-@@ -464,10 +925,7 @@
- unsigned long flags;
-
- local_irq_save(flags);
-- t->next = NULL;
-- *__this_cpu_read(tasklet_hi_vec.tail) = t;
-- __this_cpu_write(tasklet_hi_vec.tail, &(t->next));
-- raise_softirq_irqoff(HI_SOFTIRQ);
-+ __tasklet_common_schedule(t, this_cpu_ptr(&tasklet_hi_vec), HI_SOFTIRQ);
- local_irq_restore(flags);
- }
- EXPORT_SYMBOL(__tasklet_hi_schedule);
-@@ -476,82 +934,122 @@
- {
- BUG_ON(!irqs_disabled());
-
-- t->next = __this_cpu_read(tasklet_hi_vec.head);
-- __this_cpu_write(tasklet_hi_vec.head, t);
-- __raise_softirq_irqoff(HI_SOFTIRQ);
-+ __tasklet_hi_schedule(t);
- }
- EXPORT_SYMBOL(__tasklet_hi_schedule_first);
-
--static void tasklet_action(struct softirq_action *a)
-+void tasklet_enable(struct tasklet_struct *t)
- {
-- struct tasklet_struct *list;
-+ if (!atomic_dec_and_test(&t->count))
-+ return;
-+ if (test_and_clear_bit(TASKLET_STATE_PENDING, &t->state))
-+ tasklet_schedule(t);
-+}
-+EXPORT_SYMBOL(tasklet_enable);
-
-- local_irq_disable();
-- list = __this_cpu_read(tasklet_vec.head);
-- __this_cpu_write(tasklet_vec.head, NULL);
-- __this_cpu_write(tasklet_vec.tail, this_cpu_ptr(&tasklet_vec.head));
-- local_irq_enable();
-+static void __tasklet_action(struct softirq_action *a,
-+ struct tasklet_struct *list)
-+{
-+ int loops = 1000000;
-
- while (list) {
- struct tasklet_struct *t = list;
-
- list = list->next;
-
-- if (tasklet_trylock(t)) {
-- if (!atomic_read(&t->count)) {
-- if (!test_and_clear_bit(TASKLET_STATE_SCHED,
-- &t->state))
-- BUG();
-- t->func(t->data);
-- tasklet_unlock(t);
-- continue;
-- }
-- tasklet_unlock(t);
-+ /*
-+ * Should always succeed - after a tasklist got on the
-+ * list (after getting the SCHED bit set from 0 to 1),
-+ * nothing but the tasklet softirq it got queued to can
-+ * lock it:
-+ */
-+ if (!tasklet_trylock(t)) {
-+ WARN_ON(1);
-+ continue;
- }
-
-- local_irq_disable();
- t->next = NULL;
-- *__this_cpu_read(tasklet_vec.tail) = t;
-- __this_cpu_write(tasklet_vec.tail, &(t->next));
-- __raise_softirq_irqoff(TASKLET_SOFTIRQ);
-- local_irq_enable();
-+
-+ /*
-+ * If we cannot handle the tasklet because it's disabled,
-+ * mark it as pending. tasklet_enable() will later
-+ * re-schedule the tasklet.
-+ */
-+ if (unlikely(atomic_read(&t->count))) {
-+out_disabled:
-+ /* implicit unlock: */
-+ wmb();
-+ t->state = TASKLET_STATEF_PENDING;
-+ continue;
-+ }
-+
-+ /*
-+ * After this point on the tasklet might be rescheduled
-+ * on another CPU, but it can only be added to another
-+ * CPU's tasklet list if we unlock the tasklet (which we
-+ * dont do yet).
-+ */
-+ if (!test_and_clear_bit(TASKLET_STATE_SCHED, &t->state))
-+ WARN_ON(1);
-+
-+again:
-+ t->func(t->data);
-+
-+ /*
-+ * Try to unlock the tasklet. We must use cmpxchg, because
-+ * another CPU might have scheduled or disabled the tasklet.
-+ * We only allow the STATE_RUN -> 0 transition here.
-+ */
-+ while (!tasklet_tryunlock(t)) {
-+ /*
-+ * If it got disabled meanwhile, bail out:
-+ */
-+ if (atomic_read(&t->count))
-+ goto out_disabled;
-+ /*
-+ * If it got scheduled meanwhile, re-execute
-+ * the tasklet function:
-+ */
-+ if (test_and_clear_bit(TASKLET_STATE_SCHED, &t->state))
-+ goto again;
-+ if (!--loops) {
-+ printk("hm, tasklet state: %08lx\n", t->state);
-+ WARN_ON(1);
-+ tasklet_unlock(t);
-+ break;
-+ }
-+ }
- }
- }
-
-+static void tasklet_action(struct softirq_action *a)
-+{
-+ struct tasklet_struct *list;
-+
-+ local_irq_disable();
-+
-+ list = __this_cpu_read(tasklet_vec.head);
-+ __this_cpu_write(tasklet_vec.head, NULL);
-+ __this_cpu_write(tasklet_vec.tail, this_cpu_ptr(&tasklet_vec.head));
-+
-+ local_irq_enable();
-+
-+ __tasklet_action(a, list);
-+}
-+
- static void tasklet_hi_action(struct softirq_action *a)
- {
- struct tasklet_struct *list;
-
- local_irq_disable();
-+
- list = __this_cpu_read(tasklet_hi_vec.head);
- __this_cpu_write(tasklet_hi_vec.head, NULL);
- __this_cpu_write(tasklet_hi_vec.tail, this_cpu_ptr(&tasklet_hi_vec.head));
-- local_irq_enable();
-
-- while (list) {
-- struct tasklet_struct *t = list;
--
-- list = list->next;
--
-- if (tasklet_trylock(t)) {
-- if (!atomic_read(&t->count)) {
-- if (!test_and_clear_bit(TASKLET_STATE_SCHED,
-- &t->state))
-- BUG();
-- t->func(t->data);
-- tasklet_unlock(t);
-- continue;
-- }
-- tasklet_unlock(t);
-- }
-+ local_irq_enable();
-
-- local_irq_disable();
-- t->next = NULL;
-- *__this_cpu_read(tasklet_hi_vec.tail) = t;
-- __this_cpu_write(tasklet_hi_vec.tail, &(t->next));
-- __raise_softirq_irqoff(HI_SOFTIRQ);
-- local_irq_enable();
-- }
-+ __tasklet_action(a, list);
- }
-
- void tasklet_init(struct tasklet_struct *t,
-@@ -572,7 +1070,7 @@
-
- while (test_and_set_bit(TASKLET_STATE_SCHED, &t->state)) {
- do {
-- yield();
-+ msleep(1);
- } while (test_bit(TASKLET_STATE_SCHED, &t->state));
- }
- tasklet_unlock_wait(t);
-@@ -646,25 +1144,26 @@
- open_softirq(HI_SOFTIRQ, tasklet_hi_action);
- }
-
--static int ksoftirqd_should_run(unsigned int cpu)
--{
-- return local_softirq_pending();
--}
--
--static void run_ksoftirqd(unsigned int cpu)
-+#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
-+void tasklet_unlock_wait(struct tasklet_struct *t)
- {
-- local_irq_disable();
-- if (local_softirq_pending()) {
-+ while (test_bit(TASKLET_STATE_RUN, &(t)->state)) {
- /*
-- * We can safely run softirq on inline stack, as we are not deep
-- * in the task stack here.
-+ * Hack for now to avoid this busy-loop:
- */
-- __do_softirq();
-- local_irq_enable();
-- cond_resched_rcu_qs();
-- return;
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ msleep(1);
-+#else
-+ barrier();
-+#endif
- }
-- local_irq_enable();
-+}
-+EXPORT_SYMBOL(tasklet_unlock_wait);
-+#endif
-+
-+static int ksoftirqd_should_run(unsigned int cpu)
-+{
-+ return ksoftirqd_softirq_pending();
- }
-
- #ifdef CONFIG_HOTPLUG_CPU
-@@ -746,16 +1245,31 @@
-
- static struct smp_hotplug_thread softirq_threads = {
- .store = &ksoftirqd,
-+ .setup = ksoftirqd_set_sched_params,
- .thread_should_run = ksoftirqd_should_run,
- .thread_fn = run_ksoftirqd,
- .thread_comm = "ksoftirqd/%u",
- };
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+static struct smp_hotplug_thread softirq_timer_threads = {
-+ .store = &ktimer_softirqd,
-+ .setup = ktimer_softirqd_set_sched_params,
-+ .cleanup = ktimer_softirqd_clr_sched_params,
-+ .thread_should_run = ktimer_softirqd_should_run,
-+ .thread_fn = run_ksoftirqd,
-+ .thread_comm = "ktimersoftd/%u",
-+};
-+#endif
-+
- static __init int spawn_ksoftirqd(void)
- {
- register_cpu_notifier(&cpu_nfb);
-
- BUG_ON(smpboot_register_percpu_thread(&softirq_threads));
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ BUG_ON(smpboot_register_percpu_thread(&softirq_timer_threads));
-+#endif
-
- return 0;
- }
-diff -Nur linux-4.1.39.orig/kernel/stop_machine.c linux-4.1.39/kernel/stop_machine.c
---- linux-4.1.39.orig/kernel/stop_machine.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/stop_machine.c 2017-04-18 17:56:30.637398061 +0200
-@@ -35,7 +35,7 @@
-
- /* the actual stopper, one per every possible cpu, enabled on online cpus */
- struct cpu_stopper {
-- spinlock_t lock;
-+ raw_spinlock_t lock;
- bool enabled; /* is this stopper enabled? */
- struct list_head works; /* list of pending works */
- };
-@@ -78,7 +78,7 @@
-
- unsigned long flags;
-
-- spin_lock_irqsave(&stopper->lock, flags);
-+ raw_spin_lock_irqsave(&stopper->lock, flags);
-
- if (stopper->enabled) {
- list_add_tail(&work->list, &stopper->works);
-@@ -86,7 +86,7 @@
- } else
- cpu_stop_signal_done(work->done, false);
-
-- spin_unlock_irqrestore(&stopper->lock, flags);
-+ raw_spin_unlock_irqrestore(&stopper->lock, flags);
- }
-
- /**
-@@ -248,7 +248,7 @@
- struct irq_cpu_stop_queue_work_info call_args;
- struct multi_stop_data msdata;
-
-- preempt_disable();
-+ preempt_disable_nort();
- msdata = (struct multi_stop_data){
- .fn = fn,
- .data = arg,
-@@ -281,7 +281,7 @@
- * This relies on the stopper workqueues to be FIFO.
- */
- if (!cpu_active(cpu1) || !cpu_active(cpu2)) {
-- preempt_enable();
-+ preempt_enable_nort();
- return -ENOENT;
- }
-
-@@ -295,7 +295,7 @@
- &irq_cpu_stop_queue_work,
- &call_args, 1);
- lg_local_unlock(&stop_cpus_lock);
-- preempt_enable();
-+ preempt_enable_nort();
-
- wait_for_completion(&done.completion);
-
-@@ -329,7 +329,7 @@
-
- static void queue_stop_cpus_work(const struct cpumask *cpumask,
- cpu_stop_fn_t fn, void *arg,
-- struct cpu_stop_done *done)
-+ struct cpu_stop_done *done, bool inactive)
- {
- struct cpu_stop_work *work;
- unsigned int cpu;
-@@ -343,11 +343,13 @@
- }
-
- /*
-- * Disable preemption while queueing to avoid getting
-- * preempted by a stopper which might wait for other stoppers
-- * to enter @fn which can lead to deadlock.
-+ * Make sure that all work is queued on all cpus before
-+ * any of the cpus can execute it.
- */
-- lg_global_lock(&stop_cpus_lock);
-+ if (!inactive)
-+ lg_global_lock(&stop_cpus_lock);
-+ else
-+ lg_global_trylock_relax(&stop_cpus_lock);
- for_each_cpu(cpu, cpumask)
- cpu_stop_queue_work(cpu, &per_cpu(stop_cpus_work, cpu));
- lg_global_unlock(&stop_cpus_lock);
-@@ -359,7 +361,7 @@
- struct cpu_stop_done done;
-
- cpu_stop_init_done(&done, cpumask_weight(cpumask));
-- queue_stop_cpus_work(cpumask, fn, arg, &done);
-+ queue_stop_cpus_work(cpumask, fn, arg, &done, false);
- wait_for_completion(&done.completion);
- return done.executed ? done.ret : -ENOENT;
- }
-@@ -439,9 +441,9 @@
- unsigned long flags;
- int run;
-
-- spin_lock_irqsave(&stopper->lock, flags);
-+ raw_spin_lock_irqsave(&stopper->lock, flags);
- run = !list_empty(&stopper->works);
-- spin_unlock_irqrestore(&stopper->lock, flags);
-+ raw_spin_unlock_irqrestore(&stopper->lock, flags);
- return run;
- }
-
-@@ -453,13 +455,13 @@
-
- repeat:
- work = NULL;
-- spin_lock_irq(&stopper->lock);
-+ raw_spin_lock_irq(&stopper->lock);
- if (!list_empty(&stopper->works)) {
- work = list_first_entry(&stopper->works,
- struct cpu_stop_work, list);
- list_del_init(&work->list);
- }
-- spin_unlock_irq(&stopper->lock);
-+ raw_spin_unlock_irq(&stopper->lock);
-
- if (work) {
- cpu_stop_fn_t fn = work->fn;
-@@ -467,6 +469,16 @@
- struct cpu_stop_done *done = work->done;
- char ksym_buf[KSYM_NAME_LEN] __maybe_unused;
-
-+ /*
-+ * Wait until the stopper finished scheduling on all
-+ * cpus
-+ */
-+ lg_global_lock(&stop_cpus_lock);
-+ /*
-+ * Let other cpu threads continue as well
-+ */
-+ lg_global_unlock(&stop_cpus_lock);
-+
- /* cpu stop callbacks are not allowed to sleep */
- preempt_disable();
-
-@@ -500,20 +512,20 @@
- unsigned long flags;
-
- /* drain remaining works */
-- spin_lock_irqsave(&stopper->lock, flags);
-+ raw_spin_lock_irqsave(&stopper->lock, flags);
- list_for_each_entry(work, &stopper->works, list)
- cpu_stop_signal_done(work->done, false);
- stopper->enabled = false;
-- spin_unlock_irqrestore(&stopper->lock, flags);
-+ raw_spin_unlock_irqrestore(&stopper->lock, flags);
- }
-
- static void cpu_stop_unpark(unsigned int cpu)
- {
- struct cpu_stopper *stopper = &per_cpu(cpu_stopper, cpu);
-
-- spin_lock_irq(&stopper->lock);
-+ raw_spin_lock_irq(&stopper->lock);
- stopper->enabled = true;
-- spin_unlock_irq(&stopper->lock);
-+ raw_spin_unlock_irq(&stopper->lock);
- }
-
- static struct smp_hotplug_thread cpu_stop_threads = {
-@@ -535,10 +547,12 @@
- for_each_possible_cpu(cpu) {
- struct cpu_stopper *stopper = &per_cpu(cpu_stopper, cpu);
-
-- spin_lock_init(&stopper->lock);
-+ raw_spin_lock_init(&stopper->lock);
- INIT_LIST_HEAD(&stopper->works);
- }
-
-+ lg_lock_init(&stop_cpus_lock, "stop_cpus_lock");
-+
- BUG_ON(smpboot_register_percpu_thread(&cpu_stop_threads));
- stop_machine_initialized = true;
- return 0;
-@@ -634,7 +648,7 @@
- set_state(&msdata, MULTI_STOP_PREPARE);
- cpu_stop_init_done(&done, num_active_cpus());
- queue_stop_cpus_work(cpu_active_mask, multi_cpu_stop, &msdata,
-- &done);
-+ &done, true);
- ret = multi_cpu_stop(&msdata);
-
- /* Busy wait for completion. */
-diff -Nur linux-4.1.39.orig/kernel/time/hrtimer.c linux-4.1.39/kernel/time/hrtimer.c
---- linux-4.1.39.orig/kernel/time/hrtimer.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/hrtimer.c 2017-04-18 17:56:30.637398061 +0200
-@@ -48,11 +48,13 @@
- #include <linux/sched/rt.h>
- #include <linux/sched/deadline.h>
- #include <linux/timer.h>
-+#include <linux/kthread.h>
- #include <linux/freezer.h>
-
- #include <asm/uaccess.h>
-
- #include <trace/events/timer.h>
-+#include <trace/events/hist.h>
-
- #include "tick-internal.h"
-
-@@ -576,8 +578,7 @@
- * When the callback is running, we do not reprogram the clock event
- * device. The timer callback is either running on a different CPU or
- * the callback is executed in the hrtimer_interrupt context. The
-- * reprogramming is handled either by the softirq, which called the
-- * callback or at the end of the hrtimer_interrupt.
-+ * reprogramming is handled at the end of the hrtimer_interrupt.
- */
- if (hrtimer_callback_running(timer))
- return 0;
-@@ -621,6 +622,9 @@
- return res;
- }
-
-+static void __run_hrtimer(struct hrtimer *timer, ktime_t *now);
-+static int hrtimer_rt_defer(struct hrtimer *timer);
-+
- /*
- * Initialize the high resolution related parts of cpu_base
- */
-@@ -630,6 +634,21 @@
- base->hres_active = 0;
- }
-
-+static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer,
-+ struct hrtimer_clock_base *base,
-+ int wakeup)
-+{
-+ if (!hrtimer_reprogram(timer, base))
-+ return 0;
-+ if (!wakeup)
-+ return -ETIME;
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ if (!hrtimer_rt_defer(timer))
-+ return -ETIME;
-+#endif
-+ return 1;
-+}
-+
- static inline ktime_t hrtimer_update_base(struct hrtimer_cpu_base *base)
- {
- ktime_t *offs_real = &base->clock_base[HRTIMER_BASE_REALTIME].offset;
-@@ -695,6 +714,44 @@
-
- static DECLARE_WORK(hrtimer_work, clock_was_set_work);
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+/*
-+ * RT can not call schedule_work from real interrupt context.
-+ * Need to make a thread to do the real work.
-+ */
-+static struct task_struct *clock_set_delay_thread;
-+static bool do_clock_set_delay;
-+
-+static int run_clock_set_delay(void *ignore)
-+{
-+ while (!kthread_should_stop()) {
-+ set_current_state(TASK_INTERRUPTIBLE);
-+ if (do_clock_set_delay) {
-+ do_clock_set_delay = false;
-+ schedule_work(&hrtimer_work);
-+ }
-+ schedule();
-+ }
-+ __set_current_state(TASK_RUNNING);
-+ return 0;
-+}
-+
-+void clock_was_set_delayed(void)
-+{
-+ do_clock_set_delay = true;
-+ /* Make visible before waking up process */
-+ smp_wmb();
-+ wake_up_process(clock_set_delay_thread);
-+}
-+
-+static __init int create_clock_set_delay_thread(void)
-+{
-+ clock_set_delay_thread = kthread_run(run_clock_set_delay, NULL, "kclksetdelayd");
-+ BUG_ON(!clock_set_delay_thread);
-+ return 0;
-+}
-+early_initcall(create_clock_set_delay_thread);
-+#else /* PREEMPT_RT_FULL */
- /*
- * Called from timekeeping and resume code to reprogramm the hrtimer
- * interrupt device on all cpus.
-@@ -703,6 +760,7 @@
- {
- schedule_work(&hrtimer_work);
- }
-+#endif
-
- #else
-
-@@ -711,6 +769,13 @@
- static inline int hrtimer_switch_to_hres(void) { return 0; }
- static inline void
- hrtimer_force_reprogram(struct hrtimer_cpu_base *base, int skip_equal) { }
-+static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer,
-+ struct hrtimer_clock_base *base,
-+ int wakeup)
-+{
-+ return 0;
-+}
-+
- static inline int hrtimer_reprogram(struct hrtimer *timer,
- struct hrtimer_clock_base *base)
- {
-@@ -718,7 +783,6 @@
- }
- static inline void hrtimer_init_hres(struct hrtimer_cpu_base *base) { }
- static inline void retrigger_next_event(void *arg) { }
--
- #endif /* CONFIG_HIGH_RES_TIMERS */
-
- /*
-@@ -836,6 +900,32 @@
- }
- EXPORT_SYMBOL_GPL(hrtimer_forward);
-
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+# define wake_up_timer_waiters(b) wake_up(&(b)->wait)
-+
-+/**
-+ * hrtimer_wait_for_timer - Wait for a running timer
-+ *
-+ * @timer: timer to wait for
-+ *
-+ * The function waits in case the timers callback function is
-+ * currently executed on the waitqueue of the timer base. The
-+ * waitqueue is woken up after the timer callback function has
-+ * finished execution.
-+ */
-+void hrtimer_wait_for_timer(const struct hrtimer *timer)
-+{
-+ struct hrtimer_clock_base *base = timer->base;
-+
-+ if (base && base->cpu_base && !timer->irqsafe)
-+ wait_event(base->cpu_base->wait,
-+ !(timer->state & HRTIMER_STATE_CALLBACK));
-+}
-+
-+#else
-+# define wake_up_timer_waiters(b) do { } while (0)
-+#endif
-+
- /*
- * enqueue_hrtimer - internal function to (re)start a timer
- *
-@@ -879,6 +969,11 @@
- if (!(timer->state & HRTIMER_STATE_ENQUEUED))
- goto out;
-
-+ if (unlikely(!list_empty(&timer->cb_entry))) {
-+ list_del_init(&timer->cb_entry);
-+ goto out;
-+ }
-+
- next_timer = timerqueue_getnext(&base->active);
- timerqueue_del(&base->active, &timer->node);
- if (&timer->node == next_timer) {
-@@ -966,7 +1061,16 @@
- new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED);
-
- timer_stats_hrtimer_set_start_info(timer);
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+ {
-+ ktime_t now = new_base->get_time();
-
-+ if (ktime_to_ns(tim) < ktime_to_ns(now))
-+ timer->praecox = now;
-+ else
-+ timer->praecox = ktime_set(0, 0);
-+ }
-+#endif
- leftmost = enqueue_hrtimer(timer, new_base);
-
- if (!leftmost) {
-@@ -980,15 +1084,26 @@
- * on dynticks target.
- */
- wake_up_nohz_cpu(new_base->cpu_base->cpu);
-- } else if (new_base->cpu_base == this_cpu_ptr(&hrtimer_bases) &&
-- hrtimer_reprogram(timer, new_base)) {
-+ } else if (new_base->cpu_base == this_cpu_ptr(&hrtimer_bases)) {
-+
-+ ret = hrtimer_enqueue_reprogram(timer, new_base, wakeup);
-+ if (ret < 0) {
-+ /*
-+ * In case we failed to reprogram the timer (mostly
-+ * because out current timer is already elapsed),
-+ * remove it again and report a failure. This avoids
-+ * stale base->first entries.
-+ */
-+ debug_deactivate(timer);
-+ __remove_hrtimer(timer, new_base,
-+ timer->state & HRTIMER_STATE_CALLBACK, 0);
-+ } else if (ret > 0) {
- /*
- * Only allow reprogramming if the new base is on this CPU.
- * (it might still be on another CPU if the timer was pending)
- *
- * XXX send_remote_softirq() ?
- */
-- if (wakeup) {
- /*
- * We need to drop cpu_base->lock to avoid a
- * lock ordering issue vs. rq->lock.
-@@ -996,9 +1111,7 @@
- raw_spin_unlock(&new_base->cpu_base->lock);
- raise_softirq_irqoff(HRTIMER_SOFTIRQ);
- local_irq_restore(flags);
-- return ret;
-- } else {
-- __raise_softirq_irqoff(HRTIMER_SOFTIRQ);
-+ return 0;
- }
- }
-
-@@ -1089,7 +1202,7 @@
-
- if (ret >= 0)
- return ret;
-- cpu_relax();
-+ hrtimer_wait_for_timer(timer);
- }
- }
- EXPORT_SYMBOL_GPL(hrtimer_cancel);
-@@ -1153,6 +1266,7 @@
-
- base = hrtimer_clockid_to_base(clock_id);
- timer->base = &cpu_base->clock_base[base];
-+ INIT_LIST_HEAD(&timer->cb_entry);
- timerqueue_init(&timer->node);
-
- #ifdef CONFIG_TIMER_STATS
-@@ -1236,6 +1350,126 @@
- timer->state &= ~HRTIMER_STATE_CALLBACK;
- }
-
-+static enum hrtimer_restart hrtimer_wakeup(struct hrtimer *timer);
-+
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+static void hrtimer_rt_reprogram(int restart, struct hrtimer *timer,
-+ struct hrtimer_clock_base *base)
-+{
-+ /*
-+ * Note, we clear the callback flag before we requeue the
-+ * timer otherwise we trigger the callback_running() check
-+ * in hrtimer_reprogram().
-+ */
-+ timer->state &= ~HRTIMER_STATE_CALLBACK;
-+
-+ if (restart != HRTIMER_NORESTART) {
-+ BUG_ON(hrtimer_active(timer));
-+ /*
-+ * Enqueue the timer, if it's the leftmost timer then
-+ * we need to reprogram it.
-+ */
-+ if (!enqueue_hrtimer(timer, base))
-+ return;
-+
-+#ifndef CONFIG_HIGH_RES_TIMERS
-+ }
-+#else
-+ if (base->cpu_base->hres_active &&
-+ hrtimer_reprogram(timer, base))
-+ goto requeue;
-+
-+ } else if (hrtimer_active(timer)) {
-+ /*
-+ * If the timer was rearmed on another CPU, reprogram
-+ * the event device.
-+ */
-+ if (&timer->node == base->active.next &&
-+ base->cpu_base->hres_active &&
-+ hrtimer_reprogram(timer, base))
-+ goto requeue;
-+ }
-+ return;
-+
-+requeue:
-+ /*
-+ * Timer is expired. Thus move it from tree to pending list
-+ * again.
-+ */
-+ __remove_hrtimer(timer, base, timer->state, 0);
-+ list_add_tail(&timer->cb_entry, &base->expired);
-+#endif
-+}
-+
-+/*
-+ * The changes in mainline which removed the callback modes from
-+ * hrtimer are not yet working with -rt. The non wakeup_process()
-+ * based callbacks which involve sleeping locks need to be treated
-+ * seperately.
-+ */
-+static void hrtimer_rt_run_pending(void)
-+{
-+ enum hrtimer_restart (*fn)(struct hrtimer *);
-+ struct hrtimer_cpu_base *cpu_base;
-+ struct hrtimer_clock_base *base;
-+ struct hrtimer *timer;
-+ int index, restart;
-+
-+ local_irq_disable();
-+ cpu_base = &per_cpu(hrtimer_bases, smp_processor_id());
-+
-+ raw_spin_lock(&cpu_base->lock);
-+
-+ for (index = 0; index < HRTIMER_MAX_CLOCK_BASES; index++) {
-+ base = &cpu_base->clock_base[index];
-+
-+ while (!list_empty(&base->expired)) {
-+ timer = list_first_entry(&base->expired,
-+ struct hrtimer, cb_entry);
-+
-+ /*
-+ * Same as the above __run_hrtimer function
-+ * just we run with interrupts enabled.
-+ */
-+ debug_hrtimer_deactivate(timer);
-+ __remove_hrtimer(timer, base, HRTIMER_STATE_CALLBACK, 0);
-+ timer_stats_account_hrtimer(timer);
-+ fn = timer->function;
-+
-+ raw_spin_unlock_irq(&cpu_base->lock);
-+ restart = fn(timer);
-+ raw_spin_lock_irq(&cpu_base->lock);
-+
-+ hrtimer_rt_reprogram(restart, timer, base);
-+ }
-+ }
-+
-+ raw_spin_unlock_irq(&cpu_base->lock);
-+
-+ wake_up_timer_waiters(cpu_base);
-+}
-+
-+static int hrtimer_rt_defer(struct hrtimer *timer)
-+{
-+ if (timer->irqsafe)
-+ return 0;
-+
-+ __remove_hrtimer(timer, timer->base, timer->state, 0);
-+ list_add_tail(&timer->cb_entry, &timer->base->expired);
-+ return 1;
-+}
-+
-+#else
-+
-+static inline void hrtimer_rt_run_pending(void)
-+{
-+ hrtimer_peek_ahead_timers();
-+}
-+
-+static inline int hrtimer_rt_defer(struct hrtimer *timer) { return 0; }
-+
-+#endif
-+
- #ifdef CONFIG_HIGH_RES_TIMERS
-
- /*
-@@ -1246,7 +1480,7 @@
- {
- struct hrtimer_cpu_base *cpu_base = this_cpu_ptr(&hrtimer_bases);
- ktime_t expires_next, now, entry_time, delta;
-- int i, retries = 0;
-+ int i, retries = 0, raise = 0;
-
- BUG_ON(!cpu_base->hres_active);
- cpu_base->nr_events++;
-@@ -1281,6 +1515,15 @@
-
- timer = container_of(node, struct hrtimer, node);
-
-+ trace_hrtimer_interrupt(raw_smp_processor_id(),
-+ ktime_to_ns(ktime_sub(ktime_to_ns(timer->praecox) ?
-+ timer->praecox : hrtimer_get_expires(timer),
-+ basenow)),
-+ current,
-+ timer->function == hrtimer_wakeup ?
-+ container_of(timer, struct hrtimer_sleeper,
-+ timer)->task : NULL);
-+
- /*
- * The immediate goal for using the softexpires is
- * minimizing wakeups, not running timers at the
-@@ -1296,7 +1539,10 @@
- if (basenow.tv64 < hrtimer_get_softexpires_tv64(timer))
- break;
-
-- __run_hrtimer(timer, &basenow);
-+ if (!hrtimer_rt_defer(timer))
-+ __run_hrtimer(timer, &basenow);
-+ else
-+ raise = 1;
- }
- }
- /* Reevaluate the clock bases for the next expiry */
-@@ -1313,7 +1559,7 @@
- if (expires_next.tv64 == KTIME_MAX ||
- !tick_program_event(expires_next, 0)) {
- cpu_base->hang_detected = 0;
-- return;
-+ goto out;
- }
-
- /*
-@@ -1357,6 +1603,9 @@
- tick_program_event(expires_next, 1);
- printk_once(KERN_WARNING "hrtimer: interrupt took %llu ns\n",
- ktime_to_ns(delta));
-+out:
-+ if (raise)
-+ raise_softirq_irqoff(HRTIMER_SOFTIRQ);
- }
-
- /*
-@@ -1392,18 +1641,18 @@
- __hrtimer_peek_ahead_timers();
- local_irq_restore(flags);
- }
--
--static void run_hrtimer_softirq(struct softirq_action *h)
--{
-- hrtimer_peek_ahead_timers();
--}
--
- #else /* CONFIG_HIGH_RES_TIMERS */
-
- static inline void __hrtimer_peek_ahead_timers(void) { }
-
- #endif /* !CONFIG_HIGH_RES_TIMERS */
-
-+
-+static void run_hrtimer_softirq(struct softirq_action *h)
-+{
-+ hrtimer_rt_run_pending();
-+}
-+
- /*
- * Called from timer softirq every jiffy, expire hrtimers:
- *
-@@ -1436,7 +1685,7 @@
- struct timerqueue_node *node;
- struct hrtimer_cpu_base *cpu_base = this_cpu_ptr(&hrtimer_bases);
- struct hrtimer_clock_base *base;
-- int index, gettime = 1;
-+ int index, gettime = 1, raise = 0;
-
- if (hrtimer_hres_active())
- return;
-@@ -1461,10 +1710,16 @@
- hrtimer_get_expires_tv64(timer))
- break;
-
-- __run_hrtimer(timer, &base->softirq_time);
-+ if (!hrtimer_rt_defer(timer))
-+ __run_hrtimer(timer, &base->softirq_time);
-+ else
-+ raise = 1;
- }
- raw_spin_unlock(&cpu_base->lock);
- }
-+
-+ if (raise)
-+ raise_softirq_irqoff(HRTIMER_SOFTIRQ);
- }
-
- /*
-@@ -1486,16 +1741,18 @@
- void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task)
- {
- sl->timer.function = hrtimer_wakeup;
-+ sl->timer.irqsafe = 1;
- sl->task = task;
- }
- EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
-
--static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode mode)
-+static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode mode,
-+ unsigned long state)
- {
- hrtimer_init_sleeper(t, current);
-
- do {
-- set_current_state(TASK_INTERRUPTIBLE);
-+ set_current_state(state);
- hrtimer_start_expires(&t->timer, mode);
- if (!hrtimer_active(&t->timer))
- t->task = NULL;
-@@ -1539,7 +1796,8 @@
- HRTIMER_MODE_ABS);
- hrtimer_set_expires_tv64(&t.timer, restart->nanosleep.expires);
-
-- if (do_nanosleep(&t, HRTIMER_MODE_ABS))
-+ /* cpu_chill() does not care about restart state. */
-+ if (do_nanosleep(&t, HRTIMER_MODE_ABS, TASK_INTERRUPTIBLE))
- goto out;
-
- rmtp = restart->nanosleep.rmtp;
-@@ -1556,8 +1814,10 @@
- return ret;
- }
-
--long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
-- const enum hrtimer_mode mode, const clockid_t clockid)
-+static long
-+__hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
-+ const enum hrtimer_mode mode, const clockid_t clockid,
-+ unsigned long state)
- {
- struct restart_block *restart;
- struct hrtimer_sleeper t;
-@@ -1570,7 +1830,7 @@
-
- hrtimer_init_on_stack(&t.timer, clockid, mode);
- hrtimer_set_expires_range_ns(&t.timer, timespec_to_ktime(*rqtp), slack);
-- if (do_nanosleep(&t, mode))
-+ if (do_nanosleep(&t, mode, state))
- goto out;
-
- /* Absolute timers do not update the rmtp value and restart: */
-@@ -1597,6 +1857,12 @@
- return ret;
- }
-
-+long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
-+ const enum hrtimer_mode mode, const clockid_t clockid)
-+{
-+ return __hrtimer_nanosleep(rqtp, rmtp, mode, clockid, TASK_INTERRUPTIBLE);
-+}
-+
- SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
- struct timespec __user *, rmtp)
- {
-@@ -1611,6 +1877,26 @@
- return hrtimer_nanosleep(&tu, rmtp, HRTIMER_MODE_REL, CLOCK_MONOTONIC);
- }
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+/*
-+ * Sleep for 1 ms in hope whoever holds what we want will let it go.
-+ */
-+void cpu_chill(void)
-+{
-+ struct timespec tu = {
-+ .tv_nsec = NSEC_PER_MSEC,
-+ };
-+ unsigned int freeze_flag = current->flags & PF_NOFREEZE;
-+
-+ current->flags |= PF_NOFREEZE;
-+ __hrtimer_nanosleep(&tu, NULL, HRTIMER_MODE_REL, CLOCK_MONOTONIC,
-+ TASK_UNINTERRUPTIBLE);
-+ if (!freeze_flag)
-+ current->flags &= ~PF_NOFREEZE;
-+}
-+EXPORT_SYMBOL(cpu_chill);
-+#endif
-+
- /*
- * Functions related to boot-time initialization:
- */
-@@ -1622,10 +1908,14 @@
- for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) {
- cpu_base->clock_base[i].cpu_base = cpu_base;
- timerqueue_init_head(&cpu_base->clock_base[i].active);
-+ INIT_LIST_HEAD(&cpu_base->clock_base[i].expired);
- }
-
- cpu_base->cpu = cpu;
- hrtimer_init_hres(cpu_base);
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ init_waitqueue_head(&cpu_base->wait);
-+#endif
- }
-
- #ifdef CONFIG_HOTPLUG_CPU
-@@ -1731,9 +2021,7 @@
- hrtimer_cpu_notify(&hrtimers_nb, (unsigned long)CPU_UP_PREPARE,
- (void *)(long)smp_processor_id());
- register_cpu_notifier(&hrtimers_nb);
--#ifdef CONFIG_HIGH_RES_TIMERS
- open_softirq(HRTIMER_SOFTIRQ, run_hrtimer_softirq);
--#endif
- }
-
- /**
-diff -Nur linux-4.1.39.orig/kernel/time/itimer.c linux-4.1.39/kernel/time/itimer.c
---- linux-4.1.39.orig/kernel/time/itimer.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/itimer.c 2017-04-18 17:56:30.637398061 +0200
-@@ -213,6 +213,7 @@
- /* We are sharing ->siglock with it_real_fn() */
- if (hrtimer_try_to_cancel(timer) < 0) {
- spin_unlock_irq(&tsk->sighand->siglock);
-+ hrtimer_wait_for_timer(&tsk->signal->real_timer);
- goto again;
- }
- expires = timeval_to_ktime(value->it_value);
-diff -Nur linux-4.1.39.orig/kernel/time/jiffies.c linux-4.1.39/kernel/time/jiffies.c
---- linux-4.1.39.orig/kernel/time/jiffies.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/jiffies.c 2017-04-18 17:56:30.637398061 +0200
-@@ -74,7 +74,8 @@
- .max_cycles = 10,
- };
-
--__cacheline_aligned_in_smp DEFINE_SEQLOCK(jiffies_lock);
-+__cacheline_aligned_in_smp DEFINE_RAW_SPINLOCK(jiffies_lock);
-+__cacheline_aligned_in_smp seqcount_t jiffies_seq;
-
- #if (BITS_PER_LONG < 64)
- u64 get_jiffies_64(void)
-@@ -83,9 +84,9 @@
- u64 ret;
-
- do {
-- seq = read_seqbegin(&jiffies_lock);
-+ seq = read_seqcount_begin(&jiffies_seq);
- ret = jiffies_64;
-- } while (read_seqretry(&jiffies_lock, seq));
-+ } while (read_seqcount_retry(&jiffies_seq, seq));
- return ret;
- }
- EXPORT_SYMBOL(get_jiffies_64);
-diff -Nur linux-4.1.39.orig/kernel/time/ntp.c linux-4.1.39/kernel/time/ntp.c
---- linux-4.1.39.orig/kernel/time/ntp.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/ntp.c 2017-04-18 17:56:30.637398061 +0200
-@@ -10,6 +10,7 @@
- #include <linux/workqueue.h>
- #include <linux/hrtimer.h>
- #include <linux/jiffies.h>
-+#include <linux/kthread.h>
- #include <linux/math64.h>
- #include <linux/timex.h>
- #include <linux/time.h>
-@@ -529,10 +530,52 @@
- &sync_cmos_work, timespec_to_jiffies(&next));
- }
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+/*
-+ * RT can not call schedule_delayed_work from real interrupt context.
-+ * Need to make a thread to do the real work.
-+ */
-+static struct task_struct *cmos_delay_thread;
-+static bool do_cmos_delay;
-+
-+static int run_cmos_delay(void *ignore)
-+{
-+ while (!kthread_should_stop()) {
-+ set_current_state(TASK_INTERRUPTIBLE);
-+ if (do_cmos_delay) {
-+ do_cmos_delay = false;
-+ queue_delayed_work(system_power_efficient_wq,
-+ &sync_cmos_work, 0);
-+ }
-+ schedule();
-+ }
-+ __set_current_state(TASK_RUNNING);
-+ return 0;
-+}
-+
-+void ntp_notify_cmos_timer(void)
-+{
-+ do_cmos_delay = true;
-+ /* Make visible before waking up process */
-+ smp_wmb();
-+ wake_up_process(cmos_delay_thread);
-+}
-+
-+static __init int create_cmos_delay_thread(void)
-+{
-+ cmos_delay_thread = kthread_run(run_cmos_delay, NULL, "kcmosdelayd");
-+ BUG_ON(!cmos_delay_thread);
-+ return 0;
-+}
-+early_initcall(create_cmos_delay_thread);
-+
-+#else
-+
- void ntp_notify_cmos_timer(void)
- {
- queue_delayed_work(system_power_efficient_wq, &sync_cmos_work, 0);
- }
-+#endif /* CONFIG_PREEMPT_RT_FULL */
-
- #else
- void ntp_notify_cmos_timer(void) { }
-diff -Nur linux-4.1.39.orig/kernel/time/posix-cpu-timers.c linux-4.1.39/kernel/time/posix-cpu-timers.c
---- linux-4.1.39.orig/kernel/time/posix-cpu-timers.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/posix-cpu-timers.c 2017-04-18 17:56:30.641398216 +0200
-@@ -3,6 +3,7 @@
- */
-
- #include <linux/sched.h>
-+#include <linux/sched/rt.h>
- #include <linux/posix-timers.h>
- #include <linux/errno.h>
- #include <linux/math64.h>
-@@ -626,7 +627,7 @@
- /*
- * Disarm any old timer after extracting its expiry time.
- */
-- WARN_ON_ONCE(!irqs_disabled());
-+ WARN_ON_ONCE_NONRT(!irqs_disabled());
-
- ret = 0;
- old_incr = timer->it.cpu.incr;
-@@ -1048,7 +1049,7 @@
- /*
- * Now re-arm for the new expiry time.
- */
-- WARN_ON_ONCE(!irqs_disabled());
-+ WARN_ON_ONCE_NONRT(!irqs_disabled());
- arm_timer(timer);
- unlock_task_sighand(p, &flags);
-
-@@ -1114,10 +1115,11 @@
- sig = tsk->signal;
- if (sig->cputimer.running) {
- struct task_cputime group_sample;
-+ unsigned long flags;
-
-- raw_spin_lock(&sig->cputimer.lock);
-+ raw_spin_lock_irqsave(&sig->cputimer.lock, flags);
- group_sample = sig->cputimer.cputime;
-- raw_spin_unlock(&sig->cputimer.lock);
-+ raw_spin_unlock_irqrestore(&sig->cputimer.lock, flags);
-
- if (task_cputime_expired(&group_sample, &sig->cputime_expires))
- return 1;
-@@ -1131,13 +1133,13 @@
- * already updated our counts. We need to check if any timers fire now.
- * Interrupts are disabled.
- */
--void run_posix_cpu_timers(struct task_struct *tsk)
-+static void __run_posix_cpu_timers(struct task_struct *tsk)
- {
- LIST_HEAD(firing);
- struct k_itimer *timer, *next;
- unsigned long flags;
-
-- WARN_ON_ONCE(!irqs_disabled());
-+ WARN_ON_ONCE_NONRT(!irqs_disabled());
-
- /*
- * The fast path checks that there are no expired thread or thread
-@@ -1195,6 +1197,190 @@
- }
- }
-
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+#include <linux/kthread.h>
-+#include <linux/cpu.h>
-+DEFINE_PER_CPU(struct task_struct *, posix_timer_task);
-+DEFINE_PER_CPU(struct task_struct *, posix_timer_tasklist);
-+
-+static int posix_cpu_timers_thread(void *data)
-+{
-+ int cpu = (long)data;
-+
-+ BUG_ON(per_cpu(posix_timer_task,cpu) != current);
-+
-+ while (!kthread_should_stop()) {
-+ struct task_struct *tsk = NULL;
-+ struct task_struct *next = NULL;
-+
-+ if (cpu_is_offline(cpu))
-+ goto wait_to_die;
-+
-+ /* grab task list */
-+ raw_local_irq_disable();
-+ tsk = per_cpu(posix_timer_tasklist, cpu);
-+ per_cpu(posix_timer_tasklist, cpu) = NULL;
-+ raw_local_irq_enable();
-+
-+ /* its possible the list is empty, just return */
-+ if (!tsk) {
-+ set_current_state(TASK_INTERRUPTIBLE);
-+ schedule();
-+ __set_current_state(TASK_RUNNING);
-+ continue;
-+ }
-+
-+ /* Process task list */
-+ while (1) {
-+ /* save next */
-+ next = tsk->posix_timer_list;
-+
-+ /* run the task timers, clear its ptr and
-+ * unreference it
-+ */
-+ __run_posix_cpu_timers(tsk);
-+ tsk->posix_timer_list = NULL;
-+ put_task_struct(tsk);
-+
-+ /* check if this is the last on the list */
-+ if (next == tsk)
-+ break;
-+ tsk = next;
-+ }
-+ }
-+ return 0;
-+
-+wait_to_die:
-+ /* Wait for kthread_stop */
-+ set_current_state(TASK_INTERRUPTIBLE);
-+ while (!kthread_should_stop()) {
-+ schedule();
-+ set_current_state(TASK_INTERRUPTIBLE);
-+ }
-+ __set_current_state(TASK_RUNNING);
-+ return 0;
-+}
-+
-+static inline int __fastpath_timer_check(struct task_struct *tsk)
-+{
-+ /* tsk == current, ensure it is safe to use ->signal/sighand */
-+ if (unlikely(tsk->exit_state))
-+ return 0;
-+
-+ if (!task_cputime_zero(&tsk->cputime_expires))
-+ return 1;
-+
-+ if (!task_cputime_zero(&tsk->signal->cputime_expires))
-+ return 1;
-+
-+ return 0;
-+}
-+
-+void run_posix_cpu_timers(struct task_struct *tsk)
-+{
-+ unsigned long cpu = smp_processor_id();
-+ struct task_struct *tasklist;
-+
-+ BUG_ON(!irqs_disabled());
-+ if(!per_cpu(posix_timer_task, cpu))
-+ return;
-+ /* get per-cpu references */
-+ tasklist = per_cpu(posix_timer_tasklist, cpu);
-+
-+ /* check to see if we're already queued */
-+ if (!tsk->posix_timer_list && __fastpath_timer_check(tsk)) {
-+ get_task_struct(tsk);
-+ if (tasklist) {
-+ tsk->posix_timer_list = tasklist;
-+ } else {
-+ /*
-+ * The list is terminated by a self-pointing
-+ * task_struct
-+ */
-+ tsk->posix_timer_list = tsk;
-+ }
-+ per_cpu(posix_timer_tasklist, cpu) = tsk;
-+
-+ wake_up_process(per_cpu(posix_timer_task, cpu));
-+ }
-+}
-+
-+/*
-+ * posix_cpu_thread_call - callback that gets triggered when a CPU is added.
-+ * Here we can start up the necessary migration thread for the new CPU.
-+ */
-+static int posix_cpu_thread_call(struct notifier_block *nfb,
-+ unsigned long action, void *hcpu)
-+{
-+ int cpu = (long)hcpu;
-+ struct task_struct *p;
-+ struct sched_param param;
-+
-+ switch (action) {
-+ case CPU_UP_PREPARE:
-+ p = kthread_create(posix_cpu_timers_thread, hcpu,
-+ "posixcputmr/%d",cpu);
-+ if (IS_ERR(p))
-+ return NOTIFY_BAD;
-+ p->flags |= PF_NOFREEZE;
-+ kthread_bind(p, cpu);
-+ /* Must be high prio to avoid getting starved */
-+ param.sched_priority = MAX_RT_PRIO-1;
-+ sched_setscheduler(p, SCHED_FIFO, &param);
-+ per_cpu(posix_timer_task,cpu) = p;
-+ break;
-+ case CPU_ONLINE:
-+ /* Strictly unneccessary, as first user will wake it. */
-+ wake_up_process(per_cpu(posix_timer_task,cpu));
-+ break;
-+#ifdef CONFIG_HOTPLUG_CPU
-+ case CPU_UP_CANCELED:
-+ /* Unbind it from offline cpu so it can run. Fall thru. */
-+ kthread_bind(per_cpu(posix_timer_task, cpu),
-+ cpumask_any(cpu_online_mask));
-+ kthread_stop(per_cpu(posix_timer_task,cpu));
-+ per_cpu(posix_timer_task,cpu) = NULL;
-+ break;
-+ case CPU_DEAD:
-+ kthread_stop(per_cpu(posix_timer_task,cpu));
-+ per_cpu(posix_timer_task,cpu) = NULL;
-+ break;
-+#endif
-+ }
-+ return NOTIFY_OK;
-+}
-+
-+/* Register at highest priority so that task migration (migrate_all_tasks)
-+ * happens before everything else.
-+ */
-+static struct notifier_block posix_cpu_thread_notifier = {
-+ .notifier_call = posix_cpu_thread_call,
-+ .priority = 10
-+};
-+
-+static int __init posix_cpu_thread_init(void)
-+{
-+ void *hcpu = (void *)(long)smp_processor_id();
-+ /* Start one for boot CPU. */
-+ unsigned long cpu;
-+
-+ /* init the per-cpu posix_timer_tasklets */
-+ for_each_possible_cpu(cpu)
-+ per_cpu(posix_timer_tasklist, cpu) = NULL;
-+
-+ posix_cpu_thread_call(&posix_cpu_thread_notifier, CPU_UP_PREPARE, hcpu);
-+ posix_cpu_thread_call(&posix_cpu_thread_notifier, CPU_ONLINE, hcpu);
-+ register_cpu_notifier(&posix_cpu_thread_notifier);
-+ return 0;
-+}
-+early_initcall(posix_cpu_thread_init);
-+#else /* CONFIG_PREEMPT_RT_BASE */
-+void run_posix_cpu_timers(struct task_struct *tsk)
-+{
-+ __run_posix_cpu_timers(tsk);
-+}
-+#endif /* CONFIG_PREEMPT_RT_BASE */
-+
- /*
- * Set one of the process-wide special case CPU timers or RLIMIT_CPU.
- * The tsk->sighand->siglock must be held by the caller.
-diff -Nur linux-4.1.39.orig/kernel/time/posix-timers.c linux-4.1.39/kernel/time/posix-timers.c
---- linux-4.1.39.orig/kernel/time/posix-timers.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/posix-timers.c 2017-04-18 17:56:30.641398216 +0200
-@@ -499,6 +499,7 @@
- static struct pid *good_sigevent(sigevent_t * event)
- {
- struct task_struct *rtn = current->group_leader;
-+ int sig = event->sigev_signo;
-
- if ((event->sigev_notify & SIGEV_THREAD_ID ) &&
- (!(rtn = find_task_by_vpid(event->sigev_notify_thread_id)) ||
-@@ -507,7 +508,8 @@
- return NULL;
-
- if (((event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_NONE) &&
-- ((event->sigev_signo <= 0) || (event->sigev_signo > SIGRTMAX)))
-+ (sig <= 0 || sig > SIGRTMAX || sig_kernel_only(sig) ||
-+ sig_kernel_coredump(sig)))
- return NULL;
-
- return task_pid(rtn);
-@@ -819,6 +821,20 @@
- return overrun;
- }
-
-+/*
-+ * Protected by RCU!
-+ */
-+static void timer_wait_for_callback(struct k_clock *kc, struct k_itimer *timr)
-+{
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ if (kc->timer_set == common_timer_set)
-+ hrtimer_wait_for_timer(&timr->it.real.timer);
-+ else
-+ /* FIXME: Whacky hack for posix-cpu-timers */
-+ schedule_timeout(1);
-+#endif
-+}
-+
- /* Set a POSIX.1b interval timer. */
- /* timr->it_lock is taken. */
- static int
-@@ -896,6 +912,7 @@
- if (!timr)
- return -EINVAL;
-
-+ rcu_read_lock();
- kc = clockid_to_kclock(timr->it_clock);
- if (WARN_ON_ONCE(!kc || !kc->timer_set))
- error = -EINVAL;
-@@ -904,9 +921,12 @@
-
- unlock_timer(timr, flag);
- if (error == TIMER_RETRY) {
-+ timer_wait_for_callback(kc, timr);
- rtn = NULL; // We already got the old time...
-+ rcu_read_unlock();
- goto retry;
- }
-+ rcu_read_unlock();
-
- if (old_setting && !error &&
- copy_to_user(old_setting, &old_spec, sizeof (old_spec)))
-@@ -944,10 +964,15 @@
- if (!timer)
- return -EINVAL;
-
-+ rcu_read_lock();
- if (timer_delete_hook(timer) == TIMER_RETRY) {
- unlock_timer(timer, flags);
-+ timer_wait_for_callback(clockid_to_kclock(timer->it_clock),
-+ timer);
-+ rcu_read_unlock();
- goto retry_delete;
- }
-+ rcu_read_unlock();
-
- spin_lock(&current->sighand->siglock);
- list_del(&timer->list);
-@@ -973,8 +998,18 @@
- retry_delete:
- spin_lock_irqsave(&timer->it_lock, flags);
-
-+ /* On RT we can race with a deletion */
-+ if (!timer->it_signal) {
-+ unlock_timer(timer, flags);
-+ return;
-+ }
-+
- if (timer_delete_hook(timer) == TIMER_RETRY) {
-+ rcu_read_lock();
- unlock_timer(timer, flags);
-+ timer_wait_for_callback(clockid_to_kclock(timer->it_clock),
-+ timer);
-+ rcu_read_unlock();
- goto retry_delete;
- }
- list_del(&timer->list);
-diff -Nur linux-4.1.39.orig/kernel/time/tick-broadcast-hrtimer.c linux-4.1.39/kernel/time/tick-broadcast-hrtimer.c
---- linux-4.1.39.orig/kernel/time/tick-broadcast-hrtimer.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/tick-broadcast-hrtimer.c 2017-04-18 17:56:30.641398216 +0200
-@@ -109,5 +109,6 @@
- {
- hrtimer_init(&bctimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
- bctimer.function = bc_handler;
-+ bctimer.irqsafe = true;
- clockevents_register_device(&ce_broadcast_hrtimer);
- }
-diff -Nur linux-4.1.39.orig/kernel/time/tick-common.c linux-4.1.39/kernel/time/tick-common.c
---- linux-4.1.39.orig/kernel/time/tick-common.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/tick-common.c 2017-04-18 17:56:30.641398216 +0200
-@@ -78,13 +78,15 @@
- static void tick_periodic(int cpu)
- {
- if (tick_do_timer_cpu == cpu) {
-- write_seqlock(&jiffies_lock);
-+ raw_spin_lock(&jiffies_lock);
-+ write_seqcount_begin(&jiffies_seq);
-
- /* Keep track of the next tick event */
- tick_next_period = ktime_add(tick_next_period, tick_period);
-
- do_timer(1);
-- write_sequnlock(&jiffies_lock);
-+ write_seqcount_end(&jiffies_seq);
-+ raw_spin_unlock(&jiffies_lock);
- update_wall_time();
- }
-
-@@ -146,9 +148,9 @@
- ktime_t next;
-
- do {
-- seq = read_seqbegin(&jiffies_lock);
-+ seq = read_seqcount_begin(&jiffies_seq);
- next = tick_next_period;
-- } while (read_seqretry(&jiffies_lock, seq));
-+ } while (read_seqcount_retry(&jiffies_seq, seq));
-
- clockevents_set_state(dev, CLOCK_EVT_STATE_ONESHOT);
-
-diff -Nur linux-4.1.39.orig/kernel/time/tick-sched.c linux-4.1.39/kernel/time/tick-sched.c
---- linux-4.1.39.orig/kernel/time/tick-sched.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/tick-sched.c 2017-04-18 17:56:30.641398216 +0200
-@@ -62,7 +62,8 @@
- return;
-
- /* Reevalute with jiffies_lock held */
-- write_seqlock(&jiffies_lock);
-+ raw_spin_lock(&jiffies_lock);
-+ write_seqcount_begin(&jiffies_seq);
-
- delta = ktime_sub(now, last_jiffies_update);
- if (delta.tv64 >= tick_period.tv64) {
-@@ -85,10 +86,12 @@
- /* Keep the tick_next_period variable up to date */
- tick_next_period = ktime_add(last_jiffies_update, tick_period);
- } else {
-- write_sequnlock(&jiffies_lock);
-+ write_seqcount_end(&jiffies_seq);
-+ raw_spin_unlock(&jiffies_lock);
- return;
- }
-- write_sequnlock(&jiffies_lock);
-+ write_seqcount_end(&jiffies_seq);
-+ raw_spin_unlock(&jiffies_lock);
- update_wall_time();
- }
-
-@@ -99,12 +102,14 @@
- {
- ktime_t period;
-
-- write_seqlock(&jiffies_lock);
-+ raw_spin_lock(&jiffies_lock);
-+ write_seqcount_begin(&jiffies_seq);
- /* Did we start the jiffies update yet ? */
- if (last_jiffies_update.tv64 == 0)
- last_jiffies_update = tick_next_period;
- period = last_jiffies_update;
-- write_sequnlock(&jiffies_lock);
-+ write_seqcount_end(&jiffies_seq);
-+ raw_spin_unlock(&jiffies_lock);
- return period;
- }
-
-@@ -176,6 +181,11 @@
- return false;
- }
-
-+ if (!arch_irq_work_has_interrupt()) {
-+ trace_tick_stop(0, "missing irq work interrupt\n");
-+ return false;
-+ }
-+
- /* sched_clock_tick() needs us? */
- #ifdef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
- /*
-@@ -222,6 +232,7 @@
-
- static DEFINE_PER_CPU(struct irq_work, nohz_full_kick_work) = {
- .func = nohz_full_kick_work_func,
-+ .flags = IRQ_WORK_HARD_IRQ,
- };
-
- /*
-@@ -578,10 +589,10 @@
-
- /* Read jiffies and the time when jiffies were updated last */
- do {
-- seq = read_seqbegin(&jiffies_lock);
-+ seq = read_seqcount_begin(&jiffies_seq);
- last_update = last_jiffies_update;
- last_jiffies = jiffies;
-- } while (read_seqretry(&jiffies_lock, seq));
-+ } while (read_seqcount_retry(&jiffies_seq, seq));
-
- if (rcu_needs_cpu(&rcu_delta_jiffies) ||
- arch_needs_cpu() || irq_work_needs_cpu()) {
-@@ -759,14 +770,7 @@
- return false;
-
- if (unlikely(local_softirq_pending() && cpu_online(cpu))) {
-- static int ratelimit;
--
-- if (ratelimit < 10 &&
-- (local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK)) {
-- pr_warn("NOHZ: local_softirq_pending %02x\n",
-- (unsigned int) local_softirq_pending());
-- ratelimit++;
-- }
-+ softirq_check_pending_idle();
- return false;
- }
-
-@@ -1154,6 +1158,7 @@
- * Emulate tick processing via per-CPU hrtimers:
- */
- hrtimer_init(&ts->sched_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
-+ ts->sched_timer.irqsafe = 1;
- ts->sched_timer.function = tick_sched_timer;
-
- /* Get the next period (per cpu) */
-diff -Nur linux-4.1.39.orig/kernel/time/timekeeping.c linux-4.1.39/kernel/time/timekeeping.c
---- linux-4.1.39.orig/kernel/time/timekeeping.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/timekeeping.c 2017-04-18 17:56:30.641398216 +0200
-@@ -2087,8 +2087,10 @@
- */
- void xtime_update(unsigned long ticks)
- {
-- write_seqlock(&jiffies_lock);
-+ raw_spin_lock(&jiffies_lock);
-+ write_seqcount_begin(&jiffies_seq);
- do_timer(ticks);
-- write_sequnlock(&jiffies_lock);
-+ write_seqcount_end(&jiffies_seq);
-+ raw_spin_unlock(&jiffies_lock);
- update_wall_time();
- }
-diff -Nur linux-4.1.39.orig/kernel/time/timekeeping.h linux-4.1.39/kernel/time/timekeeping.h
---- linux-4.1.39.orig/kernel/time/timekeeping.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/timekeeping.h 2017-04-18 17:56:30.641398216 +0200
-@@ -22,7 +22,8 @@
- extern void do_timer(unsigned long ticks);
- extern void update_wall_time(void);
-
--extern seqlock_t jiffies_lock;
-+extern raw_spinlock_t jiffies_lock;
-+extern seqcount_t jiffies_seq;
-
- #define CS_NAME_LEN 32
-
-diff -Nur linux-4.1.39.orig/kernel/time/timer.c linux-4.1.39/kernel/time/timer.c
---- linux-4.1.39.orig/kernel/time/timer.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/time/timer.c 2017-04-18 17:56:30.641398216 +0200
-@@ -78,6 +78,9 @@
- struct tvec_base {
- spinlock_t lock;
- struct timer_list *running_timer;
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ wait_queue_head_t wait_for_running_timer;
-+#endif
- unsigned long timer_jiffies;
- unsigned long next_timer;
- unsigned long active_timers;
-@@ -768,6 +771,36 @@
- }
- }
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+static inline struct tvec_base *switch_timer_base(struct timer_list *timer,
-+ struct tvec_base *old,
-+ struct tvec_base *new)
-+{
-+ /* See the comment in lock_timer_base() */
-+ timer_set_base(timer, NULL);
-+ spin_unlock(&old->lock);
-+ spin_lock(&new->lock);
-+ timer_set_base(timer, new);
-+ return new;
-+}
-+#else
-+static inline struct tvec_base *switch_timer_base(struct timer_list *timer,
-+ struct tvec_base *old,
-+ struct tvec_base *new)
-+{
-+ /*
-+ * We cannot do the above because we might be preempted and
-+ * then the preempter would see NULL and loop forever.
-+ */
-+ if (spin_trylock(&new->lock)) {
-+ timer_set_base(timer, new);
-+ spin_unlock(&old->lock);
-+ return new;
-+ }
-+ return old;
-+}
-+#endif
-+
- static inline int
- __mod_timer(struct timer_list *timer, unsigned long expires,
- bool pending_only, int pinned)
-@@ -798,14 +831,8 @@
- * handler yet has not finished. This also guarantees that
- * the timer is serialized wrt itself.
- */
-- if (likely(base->running_timer != timer)) {
-- /* See the comment in lock_timer_base() */
-- timer_set_base(timer, NULL);
-- spin_unlock(&base->lock);
-- base = new_base;
-- spin_lock(&base->lock);
-- timer_set_base(timer, base);
-- }
-+ if (likely(base->running_timer != timer))
-+ base = switch_timer_base(timer, base, new_base);
- }
-
- timer->expires = expires;
-@@ -979,6 +1006,29 @@
- }
- EXPORT_SYMBOL_GPL(add_timer_on);
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+/*
-+ * Wait for a running timer
-+ */
-+static void wait_for_running_timer(struct timer_list *timer)
-+{
-+ struct tvec_base *base = timer->base;
-+
-+ if (base->running_timer == timer)
-+ wait_event(base->wait_for_running_timer,
-+ base->running_timer != timer);
-+}
-+
-+# define wakeup_timer_waiters(b) wake_up_all(&(b)->wait_for_running_timer)
-+#else
-+static inline void wait_for_running_timer(struct timer_list *timer)
-+{
-+ cpu_relax();
-+}
-+
-+# define wakeup_timer_waiters(b) do { } while (0)
-+#endif
-+
- /**
- * del_timer - deactive a timer.
- * @timer: the timer to be deactivated
-@@ -1036,7 +1086,7 @@
- }
- EXPORT_SYMBOL(try_to_del_timer_sync);
-
--#ifdef CONFIG_SMP
-+#if defined(CONFIG_SMP) || defined(CONFIG_PREEMPT_RT_FULL)
- static DEFINE_PER_CPU(struct tvec_base, __tvec_bases);
-
- /**
-@@ -1098,7 +1148,7 @@
- int ret = try_to_del_timer_sync(timer);
- if (ret >= 0)
- return ret;
-- cpu_relax();
-+ wait_for_running_timer(timer);
- }
- }
- EXPORT_SYMBOL(del_timer_sync);
-@@ -1219,16 +1269,18 @@
- if (irqsafe) {
- spin_unlock(&base->lock);
- call_timer_fn(timer, fn, data);
-+ base->running_timer = NULL;
- spin_lock(&base->lock);
- } else {
- spin_unlock_irq(&base->lock);
- call_timer_fn(timer, fn, data);
-+ base->running_timer = NULL;
- spin_lock_irq(&base->lock);
- }
- }
- }
-- base->running_timer = NULL;
- spin_unlock_irq(&base->lock);
-+ wakeup_timer_waiters(base);
- }
-
- #ifdef CONFIG_NO_HZ_COMMON
-@@ -1367,6 +1419,14 @@
- if (cpu_is_offline(smp_processor_id()))
- return expires;
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ /*
-+ * On PREEMPT_RT we cannot sleep here. As a result we can't take
-+ * the base lock to check when the next timer is pending and so
-+ * we assume the next jiffy.
-+ */
-+ return now + 1;
-+#endif
- spin_lock(&base->lock);
- if (base->active_timers) {
- if (time_before_eq(base->next_timer, base->timer_jiffies))
-@@ -1392,13 +1452,13 @@
-
- /* Note: this timer irq context must be accounted for as well. */
- account_process_tick(p, user_tick);
-+ scheduler_tick();
- run_local_timers();
- rcu_check_callbacks(user_tick);
--#ifdef CONFIG_IRQ_WORK
-+#if defined(CONFIG_IRQ_WORK)
- if (in_irq())
- irq_work_tick();
- #endif
-- scheduler_tick();
- run_posix_cpu_timers(p);
- }
-
-@@ -1411,6 +1471,8 @@
-
- hrtimer_run_pending();
-
-+ irq_work_tick_soft();
-+
- if (time_after_eq(jiffies, base->timer_jiffies))
- __run_timers(base);
- }
-@@ -1566,7 +1628,7 @@
-
- BUG_ON(cpu_online(cpu));
- old_base = per_cpu(tvec_bases, cpu);
-- new_base = get_cpu_var(tvec_bases);
-+ new_base = get_local_var(tvec_bases);
- /*
- * The caller is globally serialized and nobody else
- * takes two locks at once, deadlock is not possible.
-@@ -1590,7 +1652,7 @@
-
- spin_unlock(&old_base->lock);
- spin_unlock_irq(&new_base->lock);
-- put_cpu_var(tvec_bases);
-+ put_local_var(tvec_bases);
- }
-
- static int timer_cpu_notify(struct notifier_block *self,
-@@ -1625,6 +1687,9 @@
- base->cpu = cpu;
- per_cpu(tvec_bases, cpu) = base;
- spin_lock_init(&base->lock);
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ init_waitqueue_head(&base->wait_for_running_timer);
-+#endif
-
- for (j = 0; j < TVN_SIZE; j++) {
- INIT_LIST_HEAD(base->tv5.vec + j);
-diff -Nur linux-4.1.39.orig/kernel/trace/Kconfig linux-4.1.39/kernel/trace/Kconfig
---- linux-4.1.39.orig/kernel/trace/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/trace/Kconfig 2017-04-18 17:56:30.641398216 +0200
-@@ -187,6 +187,24 @@
- enabled. This option and the preempt-off timing option can be
- used together or separately.)
-
-+config INTERRUPT_OFF_HIST
-+ bool "Interrupts-off Latency Histogram"
-+ depends on IRQSOFF_TRACER
-+ help
-+ This option generates continuously updated histograms (one per cpu)
-+ of the duration of time periods with interrupts disabled. The
-+ histograms are disabled by default. To enable them, write a non-zero
-+ number to
-+
-+ /sys/kernel/debug/tracing/latency_hist/enable/preemptirqsoff
-+
-+ If PREEMPT_OFF_HIST is also selected, additional histograms (one
-+ per cpu) are generated that accumulate the duration of time periods
-+ when both interrupts and preemption are disabled. The histogram data
-+ will be located in the debug file system at
-+
-+ /sys/kernel/debug/tracing/latency_hist/irqsoff
-+
- config PREEMPT_TRACER
- bool "Preemption-off Latency Tracer"
- default n
-@@ -211,6 +229,24 @@
- enabled. This option and the irqs-off timing option can be
- used together or separately.)
-
-+config PREEMPT_OFF_HIST
-+ bool "Preemption-off Latency Histogram"
-+ depends on PREEMPT_TRACER
-+ help
-+ This option generates continuously updated histograms (one per cpu)
-+ of the duration of time periods with preemption disabled. The
-+ histograms are disabled by default. To enable them, write a non-zero
-+ number to
-+
-+ /sys/kernel/debug/tracing/latency_hist/enable/preemptirqsoff
-+
-+ If INTERRUPT_OFF_HIST is also selected, additional histograms (one
-+ per cpu) are generated that accumulate the duration of time periods
-+ when both interrupts and preemption are disabled. The histogram data
-+ will be located in the debug file system at
-+
-+ /sys/kernel/debug/tracing/latency_hist/preemptoff
-+
- config SCHED_TRACER
- bool "Scheduling Latency Tracer"
- select GENERIC_TRACER
-@@ -221,6 +257,74 @@
- This tracer tracks the latency of the highest priority task
- to be scheduled in, starting from the point it has woken up.
-
-+config WAKEUP_LATENCY_HIST
-+ bool "Scheduling Latency Histogram"
-+ depends on SCHED_TRACER
-+ help
-+ This option generates continuously updated histograms (one per cpu)
-+ of the scheduling latency of the highest priority task.
-+ The histograms are disabled by default. To enable them, write a
-+ non-zero number to
-+
-+ /sys/kernel/debug/tracing/latency_hist/enable/wakeup
-+
-+ Two different algorithms are used, one to determine the latency of
-+ processes that exclusively use the highest priority of the system and
-+ another one to determine the latency of processes that share the
-+ highest system priority with other processes. The former is used to
-+ improve hardware and system software, the latter to optimize the
-+ priority design of a given system. The histogram data will be
-+ located in the debug file system at
-+
-+ /sys/kernel/debug/tracing/latency_hist/wakeup
-+
-+ and
-+
-+ /sys/kernel/debug/tracing/latency_hist/wakeup/sharedprio
-+
-+ If both Scheduling Latency Histogram and Missed Timer Offsets
-+ Histogram are selected, additional histogram data will be collected
-+ that contain, in addition to the wakeup latency, the timer latency, in
-+ case the wakeup was triggered by an expired timer. These histograms
-+ are available in the
-+
-+ /sys/kernel/debug/tracing/latency_hist/timerandwakeup
-+
-+ directory. They reflect the apparent interrupt and scheduling latency
-+ and are best suitable to determine the worst-case latency of a given
-+ system. To enable these histograms, write a non-zero number to
-+
-+ /sys/kernel/debug/tracing/latency_hist/enable/timerandwakeup
-+
-+config MISSED_TIMER_OFFSETS_HIST
-+ depends on HIGH_RES_TIMERS
-+ select GENERIC_TRACER
-+ bool "Missed Timer Offsets Histogram"
-+ help
-+ Generate a histogram of missed timer offsets in microseconds. The
-+ histograms are disabled by default. To enable them, write a non-zero
-+ number to
-+
-+ /sys/kernel/debug/tracing/latency_hist/enable/missed_timer_offsets
-+
-+ The histogram data will be located in the debug file system at
-+
-+ /sys/kernel/debug/tracing/latency_hist/missed_timer_offsets
-+
-+ If both Scheduling Latency Histogram and Missed Timer Offsets
-+ Histogram are selected, additional histogram data will be collected
-+ that contain, in addition to the wakeup latency, the timer latency, in
-+ case the wakeup was triggered by an expired timer. These histograms
-+ are available in the
-+
-+ /sys/kernel/debug/tracing/latency_hist/timerandwakeup
-+
-+ directory. They reflect the apparent interrupt and scheduling latency
-+ and are best suitable to determine the worst-case latency of a given
-+ system. To enable these histograms, write a non-zero number to
-+
-+ /sys/kernel/debug/tracing/latency_hist/enable/timerandwakeup
-+
- config ENABLE_DEFAULT_TRACERS
- bool "Trace process context switches and events"
- depends on !GENERIC_TRACER
-diff -Nur linux-4.1.39.orig/kernel/trace/latency_hist.c linux-4.1.39/kernel/trace/latency_hist.c
---- linux-4.1.39.orig/kernel/trace/latency_hist.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-4.1.39/kernel/trace/latency_hist.c 2017-04-18 17:56:30.641398216 +0200
-@@ -0,0 +1,1178 @@
-+/*
-+ * kernel/trace/latency_hist.c
-+ *
-+ * Add support for histograms of preemption-off latency and
-+ * interrupt-off latency and wakeup latency, it depends on
-+ * Real-Time Preemption Support.
-+ *
-+ * Copyright (C) 2005 MontaVista Software, Inc.
-+ * Yi Yang <yyang@ch.mvista.com>
-+ *
-+ * Converted to work with the new latency tracer.
-+ * Copyright (C) 2008 Red Hat, Inc.
-+ * Steven Rostedt <srostedt@redhat.com>
-+ *
-+ */
-+#include <linux/module.h>
-+#include <linux/debugfs.h>
-+#include <linux/seq_file.h>
-+#include <linux/percpu.h>
-+#include <linux/kallsyms.h>
-+#include <linux/uaccess.h>
-+#include <linux/sched.h>
-+#include <linux/sched/rt.h>
-+#include <linux/slab.h>
-+#include <linux/atomic.h>
-+#include <asm/div64.h>
-+
-+#include "trace.h"
-+#include <trace/events/sched.h>
-+
-+#define NSECS_PER_USECS 1000L
-+
-+#define CREATE_TRACE_POINTS
-+#include <trace/events/hist.h>
-+
-+enum {
-+ IRQSOFF_LATENCY = 0,
-+ PREEMPTOFF_LATENCY,
-+ PREEMPTIRQSOFF_LATENCY,
-+ WAKEUP_LATENCY,
-+ WAKEUP_LATENCY_SHAREDPRIO,
-+ MISSED_TIMER_OFFSETS,
-+ TIMERANDWAKEUP_LATENCY,
-+ MAX_LATENCY_TYPE,
-+};
-+
-+#define MAX_ENTRY_NUM 10240
-+
-+struct hist_data {
-+ atomic_t hist_mode; /* 0 log, 1 don't log */
-+ long offset; /* set it to MAX_ENTRY_NUM/2 for a bipolar scale */
-+ long min_lat;
-+ long max_lat;
-+ unsigned long long below_hist_bound_samples;
-+ unsigned long long above_hist_bound_samples;
-+ long long accumulate_lat;
-+ unsigned long long total_samples;
-+ unsigned long long hist_array[MAX_ENTRY_NUM];
-+};
-+
-+struct enable_data {
-+ int latency_type;
-+ int enabled;
-+};
-+
-+static char *latency_hist_dir_root = "latency_hist";
-+
-+#ifdef CONFIG_INTERRUPT_OFF_HIST
-+static DEFINE_PER_CPU(struct hist_data, irqsoff_hist);
-+static char *irqsoff_hist_dir = "irqsoff";
-+static DEFINE_PER_CPU(cycles_t, hist_irqsoff_start);
-+static DEFINE_PER_CPU(int, hist_irqsoff_counting);
-+#endif
-+
-+#ifdef CONFIG_PREEMPT_OFF_HIST
-+static DEFINE_PER_CPU(struct hist_data, preemptoff_hist);
-+static char *preemptoff_hist_dir = "preemptoff";
-+static DEFINE_PER_CPU(cycles_t, hist_preemptoff_start);
-+static DEFINE_PER_CPU(int, hist_preemptoff_counting);
-+#endif
-+
-+#if defined(CONFIG_PREEMPT_OFF_HIST) && defined(CONFIG_INTERRUPT_OFF_HIST)
-+static DEFINE_PER_CPU(struct hist_data, preemptirqsoff_hist);
-+static char *preemptirqsoff_hist_dir = "preemptirqsoff";
-+static DEFINE_PER_CPU(cycles_t, hist_preemptirqsoff_start);
-+static DEFINE_PER_CPU(int, hist_preemptirqsoff_counting);
-+#endif
-+
-+#if defined(CONFIG_PREEMPT_OFF_HIST) || defined(CONFIG_INTERRUPT_OFF_HIST)
-+static notrace void probe_preemptirqsoff_hist(void *v, int reason, int start);
-+static struct enable_data preemptirqsoff_enabled_data = {
-+ .latency_type = PREEMPTIRQSOFF_LATENCY,
-+ .enabled = 0,
-+};
-+#endif
-+
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+struct maxlatproc_data {
-+ char comm[FIELD_SIZEOF(struct task_struct, comm)];
-+ char current_comm[FIELD_SIZEOF(struct task_struct, comm)];
-+ int pid;
-+ int current_pid;
-+ int prio;
-+ int current_prio;
-+ long latency;
-+ long timeroffset;
-+ cycle_t timestamp;
-+};
-+#endif
-+
-+#ifdef CONFIG_WAKEUP_LATENCY_HIST
-+static DEFINE_PER_CPU(struct hist_data, wakeup_latency_hist);
-+static DEFINE_PER_CPU(struct hist_data, wakeup_latency_hist_sharedprio);
-+static char *wakeup_latency_hist_dir = "wakeup";
-+static char *wakeup_latency_hist_dir_sharedprio = "sharedprio";
-+static notrace void probe_wakeup_latency_hist_start(void *v,
-+ struct task_struct *p);
-+static notrace void probe_wakeup_latency_hist_stop(void *v,
-+ struct task_struct *prev, struct task_struct *next);
-+static notrace void probe_sched_migrate_task(void *,
-+ struct task_struct *task, int cpu);
-+static struct enable_data wakeup_latency_enabled_data = {
-+ .latency_type = WAKEUP_LATENCY,
-+ .enabled = 0,
-+};
-+static DEFINE_PER_CPU(struct maxlatproc_data, wakeup_maxlatproc);
-+static DEFINE_PER_CPU(struct maxlatproc_data, wakeup_maxlatproc_sharedprio);
-+static DEFINE_PER_CPU(struct task_struct *, wakeup_task);
-+static DEFINE_PER_CPU(int, wakeup_sharedprio);
-+static unsigned long wakeup_pid;
-+#endif
-+
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+static DEFINE_PER_CPU(struct hist_data, missed_timer_offsets);
-+static char *missed_timer_offsets_dir = "missed_timer_offsets";
-+static notrace void probe_hrtimer_interrupt(void *v, int cpu,
-+ long long offset, struct task_struct *curr, struct task_struct *task);
-+static struct enable_data missed_timer_offsets_enabled_data = {
-+ .latency_type = MISSED_TIMER_OFFSETS,
-+ .enabled = 0,
-+};
-+static DEFINE_PER_CPU(struct maxlatproc_data, missed_timer_offsets_maxlatproc);
-+static unsigned long missed_timer_offsets_pid;
-+#endif
-+
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) && \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+static DEFINE_PER_CPU(struct hist_data, timerandwakeup_latency_hist);
-+static char *timerandwakeup_latency_hist_dir = "timerandwakeup";
-+static struct enable_data timerandwakeup_enabled_data = {
-+ .latency_type = TIMERANDWAKEUP_LATENCY,
-+ .enabled = 0,
-+};
-+static DEFINE_PER_CPU(struct maxlatproc_data, timerandwakeup_maxlatproc);
-+#endif
-+
-+void notrace latency_hist(int latency_type, int cpu, long latency,
-+ long timeroffset, cycle_t stop,
-+ struct task_struct *p)
-+{
-+ struct hist_data *my_hist;
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+ struct maxlatproc_data *mp = NULL;
-+#endif
-+
-+ if (!cpu_possible(cpu) || latency_type < 0 ||
-+ latency_type >= MAX_LATENCY_TYPE)
-+ return;
-+
-+ switch (latency_type) {
-+#ifdef CONFIG_INTERRUPT_OFF_HIST
-+ case IRQSOFF_LATENCY:
-+ my_hist = &per_cpu(irqsoff_hist, cpu);
-+ break;
-+#endif
-+#ifdef CONFIG_PREEMPT_OFF_HIST
-+ case PREEMPTOFF_LATENCY:
-+ my_hist = &per_cpu(preemptoff_hist, cpu);
-+ break;
-+#endif
-+#if defined(CONFIG_PREEMPT_OFF_HIST) && defined(CONFIG_INTERRUPT_OFF_HIST)
-+ case PREEMPTIRQSOFF_LATENCY:
-+ my_hist = &per_cpu(preemptirqsoff_hist, cpu);
-+ break;
-+#endif
-+#ifdef CONFIG_WAKEUP_LATENCY_HIST
-+ case WAKEUP_LATENCY:
-+ my_hist = &per_cpu(wakeup_latency_hist, cpu);
-+ mp = &per_cpu(wakeup_maxlatproc, cpu);
-+ break;
-+ case WAKEUP_LATENCY_SHAREDPRIO:
-+ my_hist = &per_cpu(wakeup_latency_hist_sharedprio, cpu);
-+ mp = &per_cpu(wakeup_maxlatproc_sharedprio, cpu);
-+ break;
-+#endif
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+ case MISSED_TIMER_OFFSETS:
-+ my_hist = &per_cpu(missed_timer_offsets, cpu);
-+ mp = &per_cpu(missed_timer_offsets_maxlatproc, cpu);
-+ break;
-+#endif
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) && \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+ case TIMERANDWAKEUP_LATENCY:
-+ my_hist = &per_cpu(timerandwakeup_latency_hist, cpu);
-+ mp = &per_cpu(timerandwakeup_maxlatproc, cpu);
-+ break;
-+#endif
-+
-+ default:
-+ return;
-+ }
-+
-+ latency += my_hist->offset;
-+
-+ if (atomic_read(&my_hist->hist_mode) == 0)
-+ return;
-+
-+ if (latency < 0 || latency >= MAX_ENTRY_NUM) {
-+ if (latency < 0)
-+ my_hist->below_hist_bound_samples++;
-+ else
-+ my_hist->above_hist_bound_samples++;
-+ } else
-+ my_hist->hist_array[latency]++;
-+
-+ if (unlikely(latency > my_hist->max_lat ||
-+ my_hist->min_lat == LONG_MAX)) {
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+ if (latency_type == WAKEUP_LATENCY ||
-+ latency_type == WAKEUP_LATENCY_SHAREDPRIO ||
-+ latency_type == MISSED_TIMER_OFFSETS ||
-+ latency_type == TIMERANDWAKEUP_LATENCY) {
-+ strncpy(mp->comm, p->comm, sizeof(mp->comm));
-+ strncpy(mp->current_comm, current->comm,
-+ sizeof(mp->current_comm));
-+ mp->pid = task_pid_nr(p);
-+ mp->current_pid = task_pid_nr(current);
-+ mp->prio = p->prio;
-+ mp->current_prio = current->prio;
-+ mp->latency = latency;
-+ mp->timeroffset = timeroffset;
-+ mp->timestamp = stop;
-+ }
-+#endif
-+ my_hist->max_lat = latency;
-+ }
-+ if (unlikely(latency < my_hist->min_lat))
-+ my_hist->min_lat = latency;
-+ my_hist->total_samples++;
-+ my_hist->accumulate_lat += latency;
-+}
-+
-+static void *l_start(struct seq_file *m, loff_t *pos)
-+{
-+ loff_t *index_ptr = NULL;
-+ loff_t index = *pos;
-+ struct hist_data *my_hist = m->private;
-+
-+ if (index == 0) {
-+ char minstr[32], avgstr[32], maxstr[32];
-+
-+ atomic_dec(&my_hist->hist_mode);
-+
-+ if (likely(my_hist->total_samples)) {
-+ long avg = (long) div64_s64(my_hist->accumulate_lat,
-+ my_hist->total_samples);
-+ snprintf(minstr, sizeof(minstr), "%ld",
-+ my_hist->min_lat - my_hist->offset);
-+ snprintf(avgstr, sizeof(avgstr), "%ld",
-+ avg - my_hist->offset);
-+ snprintf(maxstr, sizeof(maxstr), "%ld",
-+ my_hist->max_lat - my_hist->offset);
-+ } else {
-+ strcpy(minstr, "<undef>");
-+ strcpy(avgstr, minstr);
-+ strcpy(maxstr, minstr);
-+ }
-+
-+ seq_printf(m, "#Minimum latency: %s microseconds\n"
-+ "#Average latency: %s microseconds\n"
-+ "#Maximum latency: %s microseconds\n"
-+ "#Total samples: %llu\n"
-+ "#There are %llu samples lower than %ld"
-+ " microseconds.\n"
-+ "#There are %llu samples greater or equal"
-+ " than %ld microseconds.\n"
-+ "#usecs\t%16s\n",
-+ minstr, avgstr, maxstr,
-+ my_hist->total_samples,
-+ my_hist->below_hist_bound_samples,
-+ -my_hist->offset,
-+ my_hist->above_hist_bound_samples,
-+ MAX_ENTRY_NUM - my_hist->offset,
-+ "samples");
-+ }
-+ if (index < MAX_ENTRY_NUM) {
-+ index_ptr = kmalloc(sizeof(loff_t), GFP_KERNEL);
-+ if (index_ptr)
-+ *index_ptr = index;
-+ }
-+
-+ return index_ptr;
-+}
-+
-+static void *l_next(struct seq_file *m, void *p, loff_t *pos)
-+{
-+ loff_t *index_ptr = p;
-+ struct hist_data *my_hist = m->private;
-+
-+ if (++*pos >= MAX_ENTRY_NUM) {
-+ atomic_inc(&my_hist->hist_mode);
-+ return NULL;
-+ }
-+ *index_ptr = *pos;
-+ return index_ptr;
-+}
-+
-+static void l_stop(struct seq_file *m, void *p)
-+{
-+ kfree(p);
-+}
-+
-+static int l_show(struct seq_file *m, void *p)
-+{
-+ int index = *(loff_t *) p;
-+ struct hist_data *my_hist = m->private;
-+
-+ seq_printf(m, "%6ld\t%16llu\n", index - my_hist->offset,
-+ my_hist->hist_array[index]);
-+ return 0;
-+}
-+
-+static const struct seq_operations latency_hist_seq_op = {
-+ .start = l_start,
-+ .next = l_next,
-+ .stop = l_stop,
-+ .show = l_show
-+};
-+
-+static int latency_hist_open(struct inode *inode, struct file *file)
-+{
-+ int ret;
-+
-+ ret = seq_open(file, &latency_hist_seq_op);
-+ if (!ret) {
-+ struct seq_file *seq = file->private_data;
-+ seq->private = inode->i_private;
-+ }
-+ return ret;
-+}
-+
-+static const struct file_operations latency_hist_fops = {
-+ .open = latency_hist_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = seq_release,
-+};
-+
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+static void clear_maxlatprocdata(struct maxlatproc_data *mp)
-+{
-+ mp->comm[0] = mp->current_comm[0] = '\0';
-+ mp->prio = mp->current_prio = mp->pid = mp->current_pid =
-+ mp->latency = mp->timeroffset = -1;
-+ mp->timestamp = 0;
-+}
-+#endif
-+
-+static void hist_reset(struct hist_data *hist)
-+{
-+ atomic_dec(&hist->hist_mode);
-+
-+ memset(hist->hist_array, 0, sizeof(hist->hist_array));
-+ hist->below_hist_bound_samples = 0ULL;
-+ hist->above_hist_bound_samples = 0ULL;
-+ hist->min_lat = LONG_MAX;
-+ hist->max_lat = LONG_MIN;
-+ hist->total_samples = 0ULL;
-+ hist->accumulate_lat = 0LL;
-+
-+ atomic_inc(&hist->hist_mode);
-+}
-+
-+static ssize_t
-+latency_hist_reset(struct file *file, const char __user *a,
-+ size_t size, loff_t *off)
-+{
-+ int cpu;
-+ struct hist_data *hist = NULL;
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+ struct maxlatproc_data *mp = NULL;
-+#endif
-+ off_t latency_type = (off_t) file->private_data;
-+
-+ for_each_online_cpu(cpu) {
-+
-+ switch (latency_type) {
-+#ifdef CONFIG_PREEMPT_OFF_HIST
-+ case PREEMPTOFF_LATENCY:
-+ hist = &per_cpu(preemptoff_hist, cpu);
-+ break;
-+#endif
-+#ifdef CONFIG_INTERRUPT_OFF_HIST
-+ case IRQSOFF_LATENCY:
-+ hist = &per_cpu(irqsoff_hist, cpu);
-+ break;
-+#endif
-+#if defined(CONFIG_INTERRUPT_OFF_HIST) && defined(CONFIG_PREEMPT_OFF_HIST)
-+ case PREEMPTIRQSOFF_LATENCY:
-+ hist = &per_cpu(preemptirqsoff_hist, cpu);
-+ break;
-+#endif
-+#ifdef CONFIG_WAKEUP_LATENCY_HIST
-+ case WAKEUP_LATENCY:
-+ hist = &per_cpu(wakeup_latency_hist, cpu);
-+ mp = &per_cpu(wakeup_maxlatproc, cpu);
-+ break;
-+ case WAKEUP_LATENCY_SHAREDPRIO:
-+ hist = &per_cpu(wakeup_latency_hist_sharedprio, cpu);
-+ mp = &per_cpu(wakeup_maxlatproc_sharedprio, cpu);
-+ break;
-+#endif
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+ case MISSED_TIMER_OFFSETS:
-+ hist = &per_cpu(missed_timer_offsets, cpu);
-+ mp = &per_cpu(missed_timer_offsets_maxlatproc, cpu);
-+ break;
-+#endif
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) && \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+ case TIMERANDWAKEUP_LATENCY:
-+ hist = &per_cpu(timerandwakeup_latency_hist, cpu);
-+ mp = &per_cpu(timerandwakeup_maxlatproc, cpu);
-+ break;
-+#endif
-+ }
-+
-+ hist_reset(hist);
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+ if (latency_type == WAKEUP_LATENCY ||
-+ latency_type == WAKEUP_LATENCY_SHAREDPRIO ||
-+ latency_type == MISSED_TIMER_OFFSETS ||
-+ latency_type == TIMERANDWAKEUP_LATENCY)
-+ clear_maxlatprocdata(mp);
-+#endif
-+ }
-+
-+ return size;
-+}
-+
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+static ssize_t
-+show_pid(struct file *file, char __user *ubuf, size_t cnt, loff_t *ppos)
-+{
-+ char buf[64];
-+ int r;
-+ unsigned long *this_pid = file->private_data;
-+
-+ r = snprintf(buf, sizeof(buf), "%lu\n", *this_pid);
-+ return simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
-+}
-+
-+static ssize_t do_pid(struct file *file, const char __user *ubuf,
-+ size_t cnt, loff_t *ppos)
-+{
-+ char buf[64];
-+ unsigned long pid;
-+ unsigned long *this_pid = file->private_data;
-+
-+ if (cnt >= sizeof(buf))
-+ return -EINVAL;
-+
-+ if (copy_from_user(&buf, ubuf, cnt))
-+ return -EFAULT;
-+
-+ buf[cnt] = '\0';
-+
-+ if (kstrtoul(buf, 10, &pid))
-+ return -EINVAL;
-+
-+ *this_pid = pid;
-+
-+ return cnt;
-+}
-+#endif
-+
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+static ssize_t
-+show_maxlatproc(struct file *file, char __user *ubuf, size_t cnt, loff_t *ppos)
-+{
-+ int r;
-+ struct maxlatproc_data *mp = file->private_data;
-+ int strmaxlen = (TASK_COMM_LEN * 2) + (8 * 8);
-+ unsigned long long t;
-+ unsigned long usecs, secs;
-+ char *buf;
-+
-+ if (mp->pid == -1 || mp->current_pid == -1) {
-+ buf = "(none)\n";
-+ return simple_read_from_buffer(ubuf, cnt, ppos, buf,
-+ strlen(buf));
-+ }
-+
-+ buf = kmalloc(strmaxlen, GFP_KERNEL);
-+ if (buf == NULL)
-+ return -ENOMEM;
-+
-+ t = ns2usecs(mp->timestamp);
-+ usecs = do_div(t, USEC_PER_SEC);
-+ secs = (unsigned long) t;
-+ r = snprintf(buf, strmaxlen,
-+ "%d %d %ld (%ld) %s <- %d %d %s %lu.%06lu\n", mp->pid,
-+ MAX_RT_PRIO-1 - mp->prio, mp->latency, mp->timeroffset, mp->comm,
-+ mp->current_pid, MAX_RT_PRIO-1 - mp->current_prio, mp->current_comm,
-+ secs, usecs);
-+ r = simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
-+ kfree(buf);
-+ return r;
-+}
-+#endif
-+
-+static ssize_t
-+show_enable(struct file *file, char __user *ubuf, size_t cnt, loff_t *ppos)
-+{
-+ char buf[64];
-+ struct enable_data *ed = file->private_data;
-+ int r;
-+
-+ r = snprintf(buf, sizeof(buf), "%d\n", ed->enabled);
-+ return simple_read_from_buffer(ubuf, cnt, ppos, buf, r);
-+}
-+
-+static ssize_t
-+do_enable(struct file *file, const char __user *ubuf, size_t cnt, loff_t *ppos)
-+{
-+ char buf[64];
-+ long enable;
-+ struct enable_data *ed = file->private_data;
-+
-+ if (cnt >= sizeof(buf))
-+ return -EINVAL;
-+
-+ if (copy_from_user(&buf, ubuf, cnt))
-+ return -EFAULT;
-+
-+ buf[cnt] = 0;
-+
-+ if (kstrtoul(buf, 10, &enable))
-+ return -EINVAL;
-+
-+ if ((enable && ed->enabled) || (!enable && !ed->enabled))
-+ return cnt;
-+
-+ if (enable) {
-+ int ret;
-+
-+ switch (ed->latency_type) {
-+#if defined(CONFIG_INTERRUPT_OFF_HIST) || defined(CONFIG_PREEMPT_OFF_HIST)
-+ case PREEMPTIRQSOFF_LATENCY:
-+ ret = register_trace_preemptirqsoff_hist(
-+ probe_preemptirqsoff_hist, NULL);
-+ if (ret) {
-+ pr_info("wakeup trace: Couldn't assign "
-+ "probe_preemptirqsoff_hist "
-+ "to trace_preemptirqsoff_hist\n");
-+ return ret;
-+ }
-+ break;
-+#endif
-+#ifdef CONFIG_WAKEUP_LATENCY_HIST
-+ case WAKEUP_LATENCY:
-+ ret = register_trace_sched_wakeup(
-+ probe_wakeup_latency_hist_start, NULL);
-+ if (ret) {
-+ pr_info("wakeup trace: Couldn't assign "
-+ "probe_wakeup_latency_hist_start "
-+ "to trace_sched_wakeup\n");
-+ return ret;
-+ }
-+ ret = register_trace_sched_wakeup_new(
-+ probe_wakeup_latency_hist_start, NULL);
-+ if (ret) {
-+ pr_info("wakeup trace: Couldn't assign "
-+ "probe_wakeup_latency_hist_start "
-+ "to trace_sched_wakeup_new\n");
-+ unregister_trace_sched_wakeup(
-+ probe_wakeup_latency_hist_start, NULL);
-+ return ret;
-+ }
-+ ret = register_trace_sched_switch(
-+ probe_wakeup_latency_hist_stop, NULL);
-+ if (ret) {
-+ pr_info("wakeup trace: Couldn't assign "
-+ "probe_wakeup_latency_hist_stop "
-+ "to trace_sched_switch\n");
-+ unregister_trace_sched_wakeup(
-+ probe_wakeup_latency_hist_start, NULL);
-+ unregister_trace_sched_wakeup_new(
-+ probe_wakeup_latency_hist_start, NULL);
-+ return ret;
-+ }
-+ ret = register_trace_sched_migrate_task(
-+ probe_sched_migrate_task, NULL);
-+ if (ret) {
-+ pr_info("wakeup trace: Couldn't assign "
-+ "probe_sched_migrate_task "
-+ "to trace_sched_migrate_task\n");
-+ unregister_trace_sched_wakeup(
-+ probe_wakeup_latency_hist_start, NULL);
-+ unregister_trace_sched_wakeup_new(
-+ probe_wakeup_latency_hist_start, NULL);
-+ unregister_trace_sched_switch(
-+ probe_wakeup_latency_hist_stop, NULL);
-+ return ret;
-+ }
-+ break;
-+#endif
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+ case MISSED_TIMER_OFFSETS:
-+ ret = register_trace_hrtimer_interrupt(
-+ probe_hrtimer_interrupt, NULL);
-+ if (ret) {
-+ pr_info("wakeup trace: Couldn't assign "
-+ "probe_hrtimer_interrupt "
-+ "to trace_hrtimer_interrupt\n");
-+ return ret;
-+ }
-+ break;
-+#endif
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) && \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+ case TIMERANDWAKEUP_LATENCY:
-+ if (!wakeup_latency_enabled_data.enabled ||
-+ !missed_timer_offsets_enabled_data.enabled)
-+ return -EINVAL;
-+ break;
-+#endif
-+ default:
-+ break;
-+ }
-+ } else {
-+ switch (ed->latency_type) {
-+#if defined(CONFIG_INTERRUPT_OFF_HIST) || defined(CONFIG_PREEMPT_OFF_HIST)
-+ case PREEMPTIRQSOFF_LATENCY:
-+ {
-+ int cpu;
-+
-+ unregister_trace_preemptirqsoff_hist(
-+ probe_preemptirqsoff_hist, NULL);
-+ for_each_online_cpu(cpu) {
-+#ifdef CONFIG_INTERRUPT_OFF_HIST
-+ per_cpu(hist_irqsoff_counting,
-+ cpu) = 0;
-+#endif
-+#ifdef CONFIG_PREEMPT_OFF_HIST
-+ per_cpu(hist_preemptoff_counting,
-+ cpu) = 0;
-+#endif
-+#if defined(CONFIG_INTERRUPT_OFF_HIST) && defined(CONFIG_PREEMPT_OFF_HIST)
-+ per_cpu(hist_preemptirqsoff_counting,
-+ cpu) = 0;
-+#endif
-+ }
-+ }
-+ break;
-+#endif
-+#ifdef CONFIG_WAKEUP_LATENCY_HIST
-+ case WAKEUP_LATENCY:
-+ {
-+ int cpu;
-+
-+ unregister_trace_sched_wakeup(
-+ probe_wakeup_latency_hist_start, NULL);
-+ unregister_trace_sched_wakeup_new(
-+ probe_wakeup_latency_hist_start, NULL);
-+ unregister_trace_sched_switch(
-+ probe_wakeup_latency_hist_stop, NULL);
-+ unregister_trace_sched_migrate_task(
-+ probe_sched_migrate_task, NULL);
-+
-+ for_each_online_cpu(cpu) {
-+ per_cpu(wakeup_task, cpu) = NULL;
-+ per_cpu(wakeup_sharedprio, cpu) = 0;
-+ }
-+ }
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+ timerandwakeup_enabled_data.enabled = 0;
-+#endif
-+ break;
-+#endif
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+ case MISSED_TIMER_OFFSETS:
-+ unregister_trace_hrtimer_interrupt(
-+ probe_hrtimer_interrupt, NULL);
-+#ifdef CONFIG_WAKEUP_LATENCY_HIST
-+ timerandwakeup_enabled_data.enabled = 0;
-+#endif
-+ break;
-+#endif
-+ default:
-+ break;
-+ }
-+ }
-+ ed->enabled = enable;
-+ return cnt;
-+}
-+
-+static const struct file_operations latency_hist_reset_fops = {
-+ .open = tracing_open_generic,
-+ .write = latency_hist_reset,
-+};
-+
-+static const struct file_operations enable_fops = {
-+ .open = tracing_open_generic,
-+ .read = show_enable,
-+ .write = do_enable,
-+};
-+
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+static const struct file_operations pid_fops = {
-+ .open = tracing_open_generic,
-+ .read = show_pid,
-+ .write = do_pid,
-+};
-+
-+static const struct file_operations maxlatproc_fops = {
-+ .open = tracing_open_generic,
-+ .read = show_maxlatproc,
-+};
-+#endif
-+
-+#if defined(CONFIG_INTERRUPT_OFF_HIST) || defined(CONFIG_PREEMPT_OFF_HIST)
-+static notrace void probe_preemptirqsoff_hist(void *v, int reason,
-+ int starthist)
-+{
-+ int cpu = raw_smp_processor_id();
-+ int time_set = 0;
-+
-+ if (starthist) {
-+ cycle_t uninitialized_var(start);
-+
-+ if (!preempt_count() && !irqs_disabled())
-+ return;
-+
-+#ifdef CONFIG_INTERRUPT_OFF_HIST
-+ if ((reason == IRQS_OFF || reason == TRACE_START) &&
-+ !per_cpu(hist_irqsoff_counting, cpu)) {
-+ per_cpu(hist_irqsoff_counting, cpu) = 1;
-+ start = ftrace_now(cpu);
-+ time_set++;
-+ per_cpu(hist_irqsoff_start, cpu) = start;
-+ }
-+#endif
-+
-+#ifdef CONFIG_PREEMPT_OFF_HIST
-+ if ((reason == PREEMPT_OFF || reason == TRACE_START) &&
-+ !per_cpu(hist_preemptoff_counting, cpu)) {
-+ per_cpu(hist_preemptoff_counting, cpu) = 1;
-+ if (!(time_set++))
-+ start = ftrace_now(cpu);
-+ per_cpu(hist_preemptoff_start, cpu) = start;
-+ }
-+#endif
-+
-+#if defined(CONFIG_INTERRUPT_OFF_HIST) && defined(CONFIG_PREEMPT_OFF_HIST)
-+ if (per_cpu(hist_irqsoff_counting, cpu) &&
-+ per_cpu(hist_preemptoff_counting, cpu) &&
-+ !per_cpu(hist_preemptirqsoff_counting, cpu)) {
-+ per_cpu(hist_preemptirqsoff_counting, cpu) = 1;
-+ if (!time_set)
-+ start = ftrace_now(cpu);
-+ per_cpu(hist_preemptirqsoff_start, cpu) = start;
-+ }
-+#endif
-+ } else {
-+ cycle_t uninitialized_var(stop);
-+
-+#ifdef CONFIG_INTERRUPT_OFF_HIST
-+ if ((reason == IRQS_ON || reason == TRACE_STOP) &&
-+ per_cpu(hist_irqsoff_counting, cpu)) {
-+ cycle_t start = per_cpu(hist_irqsoff_start, cpu);
-+
-+ stop = ftrace_now(cpu);
-+ time_set++;
-+ if (start) {
-+ long latency = ((long) (stop - start)) /
-+ NSECS_PER_USECS;
-+
-+ latency_hist(IRQSOFF_LATENCY, cpu, latency, 0,
-+ stop, NULL);
-+ }
-+ per_cpu(hist_irqsoff_counting, cpu) = 0;
-+ }
-+#endif
-+
-+#ifdef CONFIG_PREEMPT_OFF_HIST
-+ if ((reason == PREEMPT_ON || reason == TRACE_STOP) &&
-+ per_cpu(hist_preemptoff_counting, cpu)) {
-+ cycle_t start = per_cpu(hist_preemptoff_start, cpu);
-+
-+ if (!(time_set++))
-+ stop = ftrace_now(cpu);
-+ if (start) {
-+ long latency = ((long) (stop - start)) /
-+ NSECS_PER_USECS;
-+
-+ latency_hist(PREEMPTOFF_LATENCY, cpu, latency,
-+ 0, stop, NULL);
-+ }
-+ per_cpu(hist_preemptoff_counting, cpu) = 0;
-+ }
-+#endif
-+
-+#if defined(CONFIG_INTERRUPT_OFF_HIST) && defined(CONFIG_PREEMPT_OFF_HIST)
-+ if ((!per_cpu(hist_irqsoff_counting, cpu) ||
-+ !per_cpu(hist_preemptoff_counting, cpu)) &&
-+ per_cpu(hist_preemptirqsoff_counting, cpu)) {
-+ cycle_t start = per_cpu(hist_preemptirqsoff_start, cpu);
-+
-+ if (!time_set)
-+ stop = ftrace_now(cpu);
-+ if (start) {
-+ long latency = ((long) (stop - start)) /
-+ NSECS_PER_USECS;
-+
-+ latency_hist(PREEMPTIRQSOFF_LATENCY, cpu,
-+ latency, 0, stop, NULL);
-+ }
-+ per_cpu(hist_preemptirqsoff_counting, cpu) = 0;
-+ }
-+#endif
-+ }
-+}
-+#endif
-+
-+#ifdef CONFIG_WAKEUP_LATENCY_HIST
-+static DEFINE_RAW_SPINLOCK(wakeup_lock);
-+static notrace void probe_sched_migrate_task(void *v, struct task_struct *task,
-+ int cpu)
-+{
-+ int old_cpu = task_cpu(task);
-+
-+ if (cpu != old_cpu) {
-+ unsigned long flags;
-+ struct task_struct *cpu_wakeup_task;
-+
-+ raw_spin_lock_irqsave(&wakeup_lock, flags);
-+
-+ cpu_wakeup_task = per_cpu(wakeup_task, old_cpu);
-+ if (task == cpu_wakeup_task) {
-+ put_task_struct(cpu_wakeup_task);
-+ per_cpu(wakeup_task, old_cpu) = NULL;
-+ cpu_wakeup_task = per_cpu(wakeup_task, cpu) = task;
-+ get_task_struct(cpu_wakeup_task);
-+ }
-+
-+ raw_spin_unlock_irqrestore(&wakeup_lock, flags);
-+ }
-+}
-+
-+static notrace void probe_wakeup_latency_hist_start(void *v,
-+ struct task_struct *p)
-+{
-+ unsigned long flags;
-+ struct task_struct *curr = current;
-+ int cpu = task_cpu(p);
-+ struct task_struct *cpu_wakeup_task;
-+
-+ raw_spin_lock_irqsave(&wakeup_lock, flags);
-+
-+ cpu_wakeup_task = per_cpu(wakeup_task, cpu);
-+
-+ if (wakeup_pid) {
-+ if ((cpu_wakeup_task && p->prio == cpu_wakeup_task->prio) ||
-+ p->prio == curr->prio)
-+ per_cpu(wakeup_sharedprio, cpu) = 1;
-+ if (likely(wakeup_pid != task_pid_nr(p)))
-+ goto out;
-+ } else {
-+ if (likely(!rt_task(p)) ||
-+ (cpu_wakeup_task && p->prio > cpu_wakeup_task->prio) ||
-+ p->prio > curr->prio)
-+ goto out;
-+ if ((cpu_wakeup_task && p->prio == cpu_wakeup_task->prio) ||
-+ p->prio == curr->prio)
-+ per_cpu(wakeup_sharedprio, cpu) = 1;
-+ }
-+
-+ if (cpu_wakeup_task)
-+ put_task_struct(cpu_wakeup_task);
-+ cpu_wakeup_task = per_cpu(wakeup_task, cpu) = p;
-+ get_task_struct(cpu_wakeup_task);
-+ cpu_wakeup_task->preempt_timestamp_hist =
-+ ftrace_now(raw_smp_processor_id());
-+out:
-+ raw_spin_unlock_irqrestore(&wakeup_lock, flags);
-+}
-+
-+static notrace void probe_wakeup_latency_hist_stop(void *v,
-+ struct task_struct *prev, struct task_struct *next)
-+{
-+ unsigned long flags;
-+ int cpu = task_cpu(next);
-+ long latency;
-+ cycle_t stop;
-+ struct task_struct *cpu_wakeup_task;
-+
-+ raw_spin_lock_irqsave(&wakeup_lock, flags);
-+
-+ cpu_wakeup_task = per_cpu(wakeup_task, cpu);
-+
-+ if (cpu_wakeup_task == NULL)
-+ goto out;
-+
-+ /* Already running? */
-+ if (unlikely(current == cpu_wakeup_task))
-+ goto out_reset;
-+
-+ if (next != cpu_wakeup_task) {
-+ if (next->prio < cpu_wakeup_task->prio)
-+ goto out_reset;
-+
-+ if (next->prio == cpu_wakeup_task->prio)
-+ per_cpu(wakeup_sharedprio, cpu) = 1;
-+
-+ goto out;
-+ }
-+
-+ if (current->prio == cpu_wakeup_task->prio)
-+ per_cpu(wakeup_sharedprio, cpu) = 1;
-+
-+ /*
-+ * The task we are waiting for is about to be switched to.
-+ * Calculate latency and store it in histogram.
-+ */
-+ stop = ftrace_now(raw_smp_processor_id());
-+
-+ latency = ((long) (stop - next->preempt_timestamp_hist)) /
-+ NSECS_PER_USECS;
-+
-+ if (per_cpu(wakeup_sharedprio, cpu)) {
-+ latency_hist(WAKEUP_LATENCY_SHAREDPRIO, cpu, latency, 0, stop,
-+ next);
-+ per_cpu(wakeup_sharedprio, cpu) = 0;
-+ } else {
-+ latency_hist(WAKEUP_LATENCY, cpu, latency, 0, stop, next);
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+ if (timerandwakeup_enabled_data.enabled) {
-+ latency_hist(TIMERANDWAKEUP_LATENCY, cpu,
-+ next->timer_offset + latency, next->timer_offset,
-+ stop, next);
-+ }
-+#endif
-+ }
-+
-+out_reset:
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+ next->timer_offset = 0;
-+#endif
-+ put_task_struct(cpu_wakeup_task);
-+ per_cpu(wakeup_task, cpu) = NULL;
-+out:
-+ raw_spin_unlock_irqrestore(&wakeup_lock, flags);
-+}
-+#endif
-+
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+static notrace void probe_hrtimer_interrupt(void *v, int cpu,
-+ long long latency_ns, struct task_struct *curr,
-+ struct task_struct *task)
-+{
-+ if (latency_ns <= 0 && task != NULL && rt_task(task) &&
-+ (task->prio < curr->prio ||
-+ (task->prio == curr->prio &&
-+ !cpumask_test_cpu(cpu, &task->cpus_allowed)))) {
-+ long latency;
-+ cycle_t now;
-+
-+ if (missed_timer_offsets_pid) {
-+ if (likely(missed_timer_offsets_pid !=
-+ task_pid_nr(task)))
-+ return;
-+ }
-+
-+ now = ftrace_now(cpu);
-+ latency = (long) div_s64(-latency_ns, NSECS_PER_USECS);
-+ latency_hist(MISSED_TIMER_OFFSETS, cpu, latency, latency, now,
-+ task);
-+#ifdef CONFIG_WAKEUP_LATENCY_HIST
-+ task->timer_offset = latency;
-+#endif
-+ }
-+}
-+#endif
-+
-+static __init int latency_hist_init(void)
-+{
-+ struct dentry *latency_hist_root = NULL;
-+ struct dentry *dentry;
-+#ifdef CONFIG_WAKEUP_LATENCY_HIST
-+ struct dentry *dentry_sharedprio;
-+#endif
-+ struct dentry *entry;
-+ struct dentry *enable_root;
-+ int i = 0;
-+ struct hist_data *my_hist;
-+ char name[64];
-+ char *cpufmt = "CPU%d";
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+ char *cpufmt_maxlatproc = "max_latency-CPU%d";
-+ struct maxlatproc_data *mp = NULL;
-+#endif
-+
-+ dentry = tracing_init_dentry();
-+ latency_hist_root = debugfs_create_dir(latency_hist_dir_root, dentry);
-+ enable_root = debugfs_create_dir("enable", latency_hist_root);
-+
-+#ifdef CONFIG_INTERRUPT_OFF_HIST
-+ dentry = debugfs_create_dir(irqsoff_hist_dir, latency_hist_root);
-+ for_each_possible_cpu(i) {
-+ sprintf(name, cpufmt, i);
-+ entry = debugfs_create_file(name, 0444, dentry,
-+ &per_cpu(irqsoff_hist, i), &latency_hist_fops);
-+ my_hist = &per_cpu(irqsoff_hist, i);
-+ atomic_set(&my_hist->hist_mode, 1);
-+ my_hist->min_lat = LONG_MAX;
-+ }
-+ entry = debugfs_create_file("reset", 0644, dentry,
-+ (void *)IRQSOFF_LATENCY, &latency_hist_reset_fops);
-+#endif
-+
-+#ifdef CONFIG_PREEMPT_OFF_HIST
-+ dentry = debugfs_create_dir(preemptoff_hist_dir,
-+ latency_hist_root);
-+ for_each_possible_cpu(i) {
-+ sprintf(name, cpufmt, i);
-+ entry = debugfs_create_file(name, 0444, dentry,
-+ &per_cpu(preemptoff_hist, i), &latency_hist_fops);
-+ my_hist = &per_cpu(preemptoff_hist, i);
-+ atomic_set(&my_hist->hist_mode, 1);
-+ my_hist->min_lat = LONG_MAX;
-+ }
-+ entry = debugfs_create_file("reset", 0644, dentry,
-+ (void *)PREEMPTOFF_LATENCY, &latency_hist_reset_fops);
-+#endif
-+
-+#if defined(CONFIG_INTERRUPT_OFF_HIST) && defined(CONFIG_PREEMPT_OFF_HIST)
-+ dentry = debugfs_create_dir(preemptirqsoff_hist_dir,
-+ latency_hist_root);
-+ for_each_possible_cpu(i) {
-+ sprintf(name, cpufmt, i);
-+ entry = debugfs_create_file(name, 0444, dentry,
-+ &per_cpu(preemptirqsoff_hist, i), &latency_hist_fops);
-+ my_hist = &per_cpu(preemptirqsoff_hist, i);
-+ atomic_set(&my_hist->hist_mode, 1);
-+ my_hist->min_lat = LONG_MAX;
-+ }
-+ entry = debugfs_create_file("reset", 0644, dentry,
-+ (void *)PREEMPTIRQSOFF_LATENCY, &latency_hist_reset_fops);
-+#endif
-+
-+#if defined(CONFIG_INTERRUPT_OFF_HIST) || defined(CONFIG_PREEMPT_OFF_HIST)
-+ entry = debugfs_create_file("preemptirqsoff", 0644,
-+ enable_root, (void *)&preemptirqsoff_enabled_data,
-+ &enable_fops);
-+#endif
-+
-+#ifdef CONFIG_WAKEUP_LATENCY_HIST
-+ dentry = debugfs_create_dir(wakeup_latency_hist_dir,
-+ latency_hist_root);
-+ dentry_sharedprio = debugfs_create_dir(
-+ wakeup_latency_hist_dir_sharedprio, dentry);
-+ for_each_possible_cpu(i) {
-+ sprintf(name, cpufmt, i);
-+
-+ entry = debugfs_create_file(name, 0444, dentry,
-+ &per_cpu(wakeup_latency_hist, i),
-+ &latency_hist_fops);
-+ my_hist = &per_cpu(wakeup_latency_hist, i);
-+ atomic_set(&my_hist->hist_mode, 1);
-+ my_hist->min_lat = LONG_MAX;
-+
-+ entry = debugfs_create_file(name, 0444, dentry_sharedprio,
-+ &per_cpu(wakeup_latency_hist_sharedprio, i),
-+ &latency_hist_fops);
-+ my_hist = &per_cpu(wakeup_latency_hist_sharedprio, i);
-+ atomic_set(&my_hist->hist_mode, 1);
-+ my_hist->min_lat = LONG_MAX;
-+
-+ sprintf(name, cpufmt_maxlatproc, i);
-+
-+ mp = &per_cpu(wakeup_maxlatproc, i);
-+ entry = debugfs_create_file(name, 0444, dentry, mp,
-+ &maxlatproc_fops);
-+ clear_maxlatprocdata(mp);
-+
-+ mp = &per_cpu(wakeup_maxlatproc_sharedprio, i);
-+ entry = debugfs_create_file(name, 0444, dentry_sharedprio, mp,
-+ &maxlatproc_fops);
-+ clear_maxlatprocdata(mp);
-+ }
-+ entry = debugfs_create_file("pid", 0644, dentry,
-+ (void *)&wakeup_pid, &pid_fops);
-+ entry = debugfs_create_file("reset", 0644, dentry,
-+ (void *)WAKEUP_LATENCY, &latency_hist_reset_fops);
-+ entry = debugfs_create_file("reset", 0644, dentry_sharedprio,
-+ (void *)WAKEUP_LATENCY_SHAREDPRIO, &latency_hist_reset_fops);
-+ entry = debugfs_create_file("wakeup", 0644,
-+ enable_root, (void *)&wakeup_latency_enabled_data,
-+ &enable_fops);
-+#endif
-+
-+#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
-+ dentry = debugfs_create_dir(missed_timer_offsets_dir,
-+ latency_hist_root);
-+ for_each_possible_cpu(i) {
-+ sprintf(name, cpufmt, i);
-+ entry = debugfs_create_file(name, 0444, dentry,
-+ &per_cpu(missed_timer_offsets, i), &latency_hist_fops);
-+ my_hist = &per_cpu(missed_timer_offsets, i);
-+ atomic_set(&my_hist->hist_mode, 1);
-+ my_hist->min_lat = LONG_MAX;
-+
-+ sprintf(name, cpufmt_maxlatproc, i);
-+ mp = &per_cpu(missed_timer_offsets_maxlatproc, i);
-+ entry = debugfs_create_file(name, 0444, dentry, mp,
-+ &maxlatproc_fops);
-+ clear_maxlatprocdata(mp);
-+ }
-+ entry = debugfs_create_file("pid", 0644, dentry,
-+ (void *)&missed_timer_offsets_pid, &pid_fops);
-+ entry = debugfs_create_file("reset", 0644, dentry,
-+ (void *)MISSED_TIMER_OFFSETS, &latency_hist_reset_fops);
-+ entry = debugfs_create_file("missed_timer_offsets", 0644,
-+ enable_root, (void *)&missed_timer_offsets_enabled_data,
-+ &enable_fops);
-+#endif
-+
-+#if defined(CONFIG_WAKEUP_LATENCY_HIST) && \
-+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
-+ dentry = debugfs_create_dir(timerandwakeup_latency_hist_dir,
-+ latency_hist_root);
-+ for_each_possible_cpu(i) {
-+ sprintf(name, cpufmt, i);
-+ entry = debugfs_create_file(name, 0444, dentry,
-+ &per_cpu(timerandwakeup_latency_hist, i),
-+ &latency_hist_fops);
-+ my_hist = &per_cpu(timerandwakeup_latency_hist, i);
-+ atomic_set(&my_hist->hist_mode, 1);
-+ my_hist->min_lat = LONG_MAX;
-+
-+ sprintf(name, cpufmt_maxlatproc, i);
-+ mp = &per_cpu(timerandwakeup_maxlatproc, i);
-+ entry = debugfs_create_file(name, 0444, dentry, mp,
-+ &maxlatproc_fops);
-+ clear_maxlatprocdata(mp);
-+ }
-+ entry = debugfs_create_file("reset", 0644, dentry,
-+ (void *)TIMERANDWAKEUP_LATENCY, &latency_hist_reset_fops);
-+ entry = debugfs_create_file("timerandwakeup", 0644,
-+ enable_root, (void *)&timerandwakeup_enabled_data,
-+ &enable_fops);
-+#endif
-+ return 0;
-+}
-+
-+device_initcall(latency_hist_init);
-diff -Nur linux-4.1.39.orig/kernel/trace/Makefile linux-4.1.39/kernel/trace/Makefile
---- linux-4.1.39.orig/kernel/trace/Makefile 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/trace/Makefile 2017-04-18 17:56:30.641398216 +0200
-@@ -36,6 +36,10 @@
- obj-$(CONFIG_IRQSOFF_TRACER) += trace_irqsoff.o
- obj-$(CONFIG_PREEMPT_TRACER) += trace_irqsoff.o
- obj-$(CONFIG_SCHED_TRACER) += trace_sched_wakeup.o
-+obj-$(CONFIG_INTERRUPT_OFF_HIST) += latency_hist.o
-+obj-$(CONFIG_PREEMPT_OFF_HIST) += latency_hist.o
-+obj-$(CONFIG_WAKEUP_LATENCY_HIST) += latency_hist.o
-+obj-$(CONFIG_MISSED_TIMER_OFFSETS_HIST) += latency_hist.o
- obj-$(CONFIG_NOP_TRACER) += trace_nop.o
- obj-$(CONFIG_STACK_TRACER) += trace_stack.o
- obj-$(CONFIG_MMIOTRACE) += trace_mmiotrace.o
-diff -Nur linux-4.1.39.orig/kernel/trace/trace.c linux-4.1.39/kernel/trace/trace.c
---- linux-4.1.39.orig/kernel/trace/trace.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/trace/trace.c 2017-04-18 17:56:30.641398216 +0200
-@@ -1630,6 +1630,7 @@
- struct task_struct *tsk = current;
-
- entry->preempt_count = pc & 0xff;
-+ entry->preempt_lazy_count = preempt_lazy_count();
- entry->pid = (tsk) ? tsk->pid : 0;
- entry->flags =
- #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT
-@@ -1639,8 +1640,11 @@
- #endif
- ((pc & HARDIRQ_MASK) ? TRACE_FLAG_HARDIRQ : 0) |
- ((pc & SOFTIRQ_MASK) ? TRACE_FLAG_SOFTIRQ : 0) |
-- (tif_need_resched() ? TRACE_FLAG_NEED_RESCHED : 0) |
-+ (tif_need_resched_now() ? TRACE_FLAG_NEED_RESCHED : 0) |
-+ (need_resched_lazy() ? TRACE_FLAG_NEED_RESCHED_LAZY : 0) |
- (test_preempt_need_resched() ? TRACE_FLAG_PREEMPT_RESCHED : 0);
-+
-+ entry->migrate_disable = (tsk) ? __migrate_disabled(tsk) & 0xFF : 0;
- }
- EXPORT_SYMBOL_GPL(tracing_generic_entry_update);
-
-@@ -2558,14 +2562,17 @@
-
- static void print_lat_help_header(struct seq_file *m)
- {
-- seq_puts(m, "# _------=> CPU# \n"
-- "# / _-----=> irqs-off \n"
-- "# | / _----=> need-resched \n"
-- "# || / _---=> hardirq/softirq \n"
-- "# ||| / _--=> preempt-depth \n"
-- "# |||| / delay \n"
-- "# cmd pid ||||| time | caller \n"
-- "# \\ / ||||| \\ | / \n");
-+ seq_puts(m, "# _--------=> CPU# \n"
-+ "# / _-------=> irqs-off \n"
-+ "# | / _------=> need-resched \n"
-+ "# || / _-----=> need-resched_lazy \n"
-+ "# ||| / _----=> hardirq/softirq \n"
-+ "# |||| / _---=> preempt-depth \n"
-+ "# ||||| / _--=> preempt-lazy-depth\n"
-+ "# |||||| / _-=> migrate-disable \n"
-+ "# ||||||| / delay \n"
-+ "# cmd pid |||||||| time | caller \n"
-+ "# \\ / |||||||| \\ | / \n");
- }
-
- static void print_event_info(struct trace_buffer *buf, struct seq_file *m)
-@@ -2591,11 +2598,14 @@
- print_event_info(buf, m);
- seq_puts(m, "# _-----=> irqs-off\n"
- "# / _----=> need-resched\n"
-- "# | / _---=> hardirq/softirq\n"
-- "# || / _--=> preempt-depth\n"
-- "# ||| / delay\n"
-- "# TASK-PID CPU# |||| TIMESTAMP FUNCTION\n"
-- "# | | | |||| | |\n");
-+ "# |/ _-----=> need-resched_lazy\n"
-+ "# || / _---=> hardirq/softirq\n"
-+ "# ||| / _--=> preempt-depth\n"
-+ "# |||| / _-=> preempt-lazy-depth\n"
-+ "# ||||| / _-=> migrate-disable \n"
-+ "# |||||| / delay\n"
-+ "# TASK-PID CPU# ||||||| TIMESTAMP FUNCTION\n"
-+ "# | | | ||||||| | |\n");
- }
-
- void
-diff -Nur linux-4.1.39.orig/kernel/trace/trace_events.c linux-4.1.39/kernel/trace/trace_events.c
---- linux-4.1.39.orig/kernel/trace/trace_events.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/trace/trace_events.c 2017-04-18 17:56:30.645398372 +0200
-@@ -162,6 +162,8 @@
- __common_field(unsigned char, flags);
- __common_field(unsigned char, preempt_count);
- __common_field(int, pid);
-+ __common_field(unsigned short, migrate_disable);
-+ __common_field(unsigned short, padding);
-
- return ret;
- }
-@@ -198,6 +200,14 @@
-
- local_save_flags(fbuffer->flags);
- fbuffer->pc = preempt_count();
-+ /*
-+ * If CONFIG_PREEMPT is enabled, then the tracepoint itself disables
-+ * preemption (adding one to the preempt_count). Since we are
-+ * interested in the preempt_count at the time the tracepoint was
-+ * hit, we need to subtract one to offset the increment.
-+ */
-+ if (IS_ENABLED(CONFIG_PREEMPT))
-+ fbuffer->pc--;
- fbuffer->ftrace_file = ftrace_file;
-
- fbuffer->event =
-diff -Nur linux-4.1.39.orig/kernel/trace/trace.h linux-4.1.39/kernel/trace/trace.h
---- linux-4.1.39.orig/kernel/trace/trace.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/trace/trace.h 2017-04-18 17:56:30.641398216 +0200
-@@ -120,6 +120,7 @@
- * NEED_RESCHED - reschedule is requested
- * HARDIRQ - inside an interrupt handler
- * SOFTIRQ - inside a softirq handler
-+ * NEED_RESCHED_LAZY - lazy reschedule is requested
- */
- enum trace_flag_type {
- TRACE_FLAG_IRQS_OFF = 0x01,
-@@ -128,6 +129,7 @@
- TRACE_FLAG_HARDIRQ = 0x08,
- TRACE_FLAG_SOFTIRQ = 0x10,
- TRACE_FLAG_PREEMPT_RESCHED = 0x20,
-+ TRACE_FLAG_NEED_RESCHED_LAZY = 0x40,
- };
-
- #define TRACE_BUF_SIZE 1024
-diff -Nur linux-4.1.39.orig/kernel/trace/trace_irqsoff.c linux-4.1.39/kernel/trace/trace_irqsoff.c
---- linux-4.1.39.orig/kernel/trace/trace_irqsoff.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/trace/trace_irqsoff.c 2017-04-18 17:56:30.645398372 +0200
-@@ -13,6 +13,7 @@
- #include <linux/uaccess.h>
- #include <linux/module.h>
- #include <linux/ftrace.h>
-+#include <trace/events/hist.h>
-
- #include "trace.h"
-
-@@ -433,11 +434,13 @@
- {
- if (preempt_trace() || irq_trace())
- start_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
-+ trace_preemptirqsoff_hist_rcuidle(TRACE_START, 1);
- }
- EXPORT_SYMBOL_GPL(start_critical_timings);
-
- void stop_critical_timings(void)
- {
-+ trace_preemptirqsoff_hist_rcuidle(TRACE_STOP, 0);
- if (preempt_trace() || irq_trace())
- stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
- }
-@@ -447,6 +450,7 @@
- #ifdef CONFIG_PROVE_LOCKING
- void time_hardirqs_on(unsigned long a0, unsigned long a1)
- {
-+ trace_preemptirqsoff_hist_rcuidle(IRQS_ON, 0);
- if (!preempt_trace() && irq_trace())
- stop_critical_timing(a0, a1);
- }
-@@ -455,6 +459,7 @@
- {
- if (!preempt_trace() && irq_trace())
- start_critical_timing(a0, a1);
-+ trace_preemptirqsoff_hist_rcuidle(IRQS_OFF, 1);
- }
-
- #else /* !CONFIG_PROVE_LOCKING */
-@@ -480,6 +485,7 @@
- */
- void trace_hardirqs_on(void)
- {
-+ trace_preemptirqsoff_hist_rcuidle(IRQS_ON, 0);
- if (!preempt_trace() && irq_trace())
- stop_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
- }
-@@ -489,11 +495,13 @@
- {
- if (!preempt_trace() && irq_trace())
- start_critical_timing(CALLER_ADDR0, CALLER_ADDR1);
-+ trace_preemptirqsoff_hist_rcuidle(IRQS_OFF, 1);
- }
- EXPORT_SYMBOL(trace_hardirqs_off);
-
- __visible void trace_hardirqs_on_caller(unsigned long caller_addr)
- {
-+ trace_preemptirqsoff_hist(IRQS_ON, 0);
- if (!preempt_trace() && irq_trace())
- stop_critical_timing(CALLER_ADDR0, caller_addr);
- }
-@@ -503,6 +511,7 @@
- {
- if (!preempt_trace() && irq_trace())
- start_critical_timing(CALLER_ADDR0, caller_addr);
-+ trace_preemptirqsoff_hist(IRQS_OFF, 1);
- }
- EXPORT_SYMBOL(trace_hardirqs_off_caller);
-
-@@ -512,12 +521,14 @@
- #ifdef CONFIG_PREEMPT_TRACER
- void trace_preempt_on(unsigned long a0, unsigned long a1)
- {
-+ trace_preemptirqsoff_hist(PREEMPT_ON, 0);
- if (preempt_trace() && !irq_trace())
- stop_critical_timing(a0, a1);
- }
-
- void trace_preempt_off(unsigned long a0, unsigned long a1)
- {
-+ trace_preemptirqsoff_hist(PREEMPT_ON, 1);
- if (preempt_trace() && !irq_trace())
- start_critical_timing(a0, a1);
- }
-diff -Nur linux-4.1.39.orig/kernel/trace/trace_output.c linux-4.1.39/kernel/trace/trace_output.c
---- linux-4.1.39.orig/kernel/trace/trace_output.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/trace/trace_output.c 2017-04-18 17:56:30.645398372 +0200
-@@ -430,6 +430,7 @@
- {
- char hardsoft_irq;
- char need_resched;
-+ char need_resched_lazy;
- char irqs_off;
- int hardirq;
- int softirq;
-@@ -457,6 +458,8 @@
- need_resched = '.';
- break;
- }
-+ need_resched_lazy =
-+ (entry->flags & TRACE_FLAG_NEED_RESCHED_LAZY) ? 'L' : '.';
-
- hardsoft_irq =
- (hardirq && softirq) ? 'H' :
-@@ -464,14 +467,25 @@
- softirq ? 's' :
- '.';
-
-- trace_seq_printf(s, "%c%c%c",
-- irqs_off, need_resched, hardsoft_irq);
-+ trace_seq_printf(s, "%c%c%c%c",
-+ irqs_off, need_resched, need_resched_lazy,
-+ hardsoft_irq);
-
- if (entry->preempt_count)
- trace_seq_printf(s, "%x", entry->preempt_count);
- else
- trace_seq_putc(s, '.');
-
-+ if (entry->preempt_lazy_count)
-+ trace_seq_printf(s, "%x", entry->preempt_lazy_count);
-+ else
-+ trace_seq_putc(s, '.');
-+
-+ if (entry->migrate_disable)
-+ trace_seq_printf(s, "%x", entry->migrate_disable);
-+ else
-+ trace_seq_putc(s, '.');
-+
- return !trace_seq_has_overflowed(s);
- }
-
-diff -Nur linux-4.1.39.orig/kernel/trace/trace_sched_switch.c linux-4.1.39/kernel/trace/trace_sched_switch.c
---- linux-4.1.39.orig/kernel/trace/trace_sched_switch.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/trace/trace_sched_switch.c 2017-04-18 17:56:30.645398372 +0200
-@@ -26,7 +26,7 @@
- }
-
- static void
--probe_sched_wakeup(void *ignore, struct task_struct *wakee, int success)
-+probe_sched_wakeup(void *ignore, struct task_struct *wakee)
- {
- if (unlikely(!sched_ref))
- return;
-diff -Nur linux-4.1.39.orig/kernel/trace/trace_sched_wakeup.c linux-4.1.39/kernel/trace/trace_sched_wakeup.c
---- linux-4.1.39.orig/kernel/trace/trace_sched_wakeup.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/trace/trace_sched_wakeup.c 2017-04-18 17:56:30.645398372 +0200
-@@ -514,7 +514,7 @@
- }
-
- static void
--probe_wakeup(void *ignore, struct task_struct *p, int success)
-+probe_wakeup(void *ignore, struct task_struct *p)
- {
- struct trace_array_cpu *data;
- int cpu = smp_processor_id();
-diff -Nur linux-4.1.39.orig/kernel/user.c linux-4.1.39/kernel/user.c
---- linux-4.1.39.orig/kernel/user.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/user.c 2017-04-18 17:56:30.645398372 +0200
-@@ -161,11 +161,11 @@
- if (!up)
- return;
-
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- if (atomic_dec_and_lock(&up->__count, &uidhash_lock))
- free_user(up, flags);
- else
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- }
-
- struct user_struct *alloc_uid(kuid_t uid)
-diff -Nur linux-4.1.39.orig/kernel/watchdog.c linux-4.1.39/kernel/watchdog.c
---- linux-4.1.39.orig/kernel/watchdog.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/watchdog.c 2017-04-18 17:56:30.645398372 +0200
-@@ -262,6 +262,8 @@
-
- #ifdef CONFIG_HARDLOCKUP_DETECTOR
-
-+static DEFINE_RAW_SPINLOCK(watchdog_output_lock);
-+
- static struct perf_event_attr wd_hw_attr = {
- .type = PERF_TYPE_HARDWARE,
- .config = PERF_COUNT_HW_CPU_CYCLES,
-@@ -295,13 +297,21 @@
- /* only print hardlockups once */
- if (__this_cpu_read(hard_watchdog_warn) == true)
- return;
-+ /*
-+ * If early-printk is enabled then make sure we do not
-+ * lock up in printk() and kill console logging:
-+ */
-+ printk_kill();
-
-- if (hardlockup_panic)
-+ if (hardlockup_panic) {
- panic("Watchdog detected hard LOCKUP on cpu %d",
- this_cpu);
-- else
-+ } else {
-+ raw_spin_lock(&watchdog_output_lock);
- WARN(1, "Watchdog detected hard LOCKUP on cpu %d",
- this_cpu);
-+ raw_spin_unlock(&watchdog_output_lock);
-+ }
-
- __this_cpu_write(hard_watchdog_warn, true);
- return;
-@@ -444,6 +454,7 @@
- /* kick off the timer for the hardlockup detector */
- hrtimer_init(hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
- hrtimer->function = watchdog_timer_fn;
-+ hrtimer->irqsafe = 1;
-
- /* Enable the perf event */
- watchdog_nmi_enable(cpu);
-diff -Nur linux-4.1.39.orig/kernel/workqueue.c linux-4.1.39/kernel/workqueue.c
---- linux-4.1.39.orig/kernel/workqueue.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/workqueue.c 2017-04-18 17:56:30.645398372 +0200
-@@ -48,6 +48,8 @@
- #include <linux/nodemask.h>
- #include <linux/moduleparam.h>
- #include <linux/uaccess.h>
-+#include <linux/locallock.h>
-+#include <linux/delay.h>
-
- #include "workqueue_internal.h"
-
-@@ -121,11 +123,16 @@
- * cpu or grabbing pool->lock is enough for read access. If
- * POOL_DISASSOCIATED is set, it's identical to L.
- *
-+ * On RT we need the extra protection via rt_lock_idle_list() for
-+ * the list manipulations against read access from
-+ * wq_worker_sleeping(). All other places are nicely serialized via
-+ * pool->lock.
-+ *
- * A: pool->attach_mutex protected.
- *
- * PL: wq_pool_mutex protected.
- *
-- * PR: wq_pool_mutex protected for writes. Sched-RCU protected for reads.
-+ * PR: wq_pool_mutex protected for writes. RCU protected for reads.
- *
- * PW: wq_pool_mutex and wq->mutex protected for writes. Either for reads.
- *
-@@ -134,7 +141,7 @@
- *
- * WQ: wq->mutex protected.
- *
-- * WR: wq->mutex protected for writes. Sched-RCU protected for reads.
-+ * WR: wq->mutex protected for writes. RCU protected for reads.
- *
- * MD: wq_mayday_lock protected.
- */
-@@ -183,7 +190,7 @@
- atomic_t nr_running ____cacheline_aligned_in_smp;
-
- /*
-- * Destruction of pool is sched-RCU protected to allow dereferences
-+ * Destruction of pool is RCU protected to allow dereferences
- * from get_work_pool().
- */
- struct rcu_head rcu;
-@@ -212,7 +219,7 @@
- /*
- * Release of unbound pwq is punted to system_wq. See put_pwq()
- * and pwq_unbound_release_workfn() for details. pool_workqueue
-- * itself is also sched-RCU protected so that the first pwq can be
-+ * itself is also RCU protected so that the first pwq can be
- * determined without grabbing wq->mutex.
- */
- struct work_struct unbound_release_work;
-@@ -334,6 +341,8 @@
- struct workqueue_struct *system_freezable_power_efficient_wq __read_mostly;
- EXPORT_SYMBOL_GPL(system_freezable_power_efficient_wq);
-
-+static DEFINE_LOCAL_IRQ_LOCK(pendingb_lock);
-+
- static int worker_thread(void *__worker);
- static void copy_workqueue_attrs(struct workqueue_attrs *to,
- const struct workqueue_attrs *from);
-@@ -343,14 +352,14 @@
- #include <trace/events/workqueue.h>
-
- #define assert_rcu_or_pool_mutex() \
-- rcu_lockdep_assert(rcu_read_lock_sched_held() || \
-+ rcu_lockdep_assert(rcu_read_lock_held() || \
- lockdep_is_held(&wq_pool_mutex), \
-- "sched RCU or wq_pool_mutex should be held")
-+ "RCU or wq_pool_mutex should be held")
-
- #define assert_rcu_or_wq_mutex(wq) \
-- rcu_lockdep_assert(rcu_read_lock_sched_held() || \
-+ rcu_lockdep_assert(rcu_read_lock_held() || \
- lockdep_is_held(&wq->mutex), \
-- "sched RCU or wq->mutex should be held")
-+ "RCU or wq->mutex should be held")
-
- #define assert_rcu_or_wq_mutex_or_pool_mutex(wq) \
- rcu_lockdep_assert(rcu_read_lock_sched_held() || \
-@@ -368,7 +377,7 @@
- * @pool: iteration cursor
- * @pi: integer used for iteration
- *
-- * This must be called either with wq_pool_mutex held or sched RCU read
-+ * This must be called either with wq_pool_mutex held or RCU read
- * locked. If the pool needs to be used beyond the locking in effect, the
- * caller is responsible for guaranteeing that the pool stays online.
- *
-@@ -400,7 +409,7 @@
- * @pwq: iteration cursor
- * @wq: the target workqueue
- *
-- * This must be called either with wq->mutex held or sched RCU read locked.
-+ * This must be called either with wq->mutex held or RCU read locked.
- * If the pwq needs to be used beyond the locking in effect, the caller is
- * responsible for guaranteeing that the pwq stays online.
- *
-@@ -412,6 +421,31 @@
- if (({ assert_rcu_or_wq_mutex(wq); false; })) { } \
- else
-
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+static inline void rt_lock_idle_list(struct worker_pool *pool)
-+{
-+ preempt_disable();
-+}
-+static inline void rt_unlock_idle_list(struct worker_pool *pool)
-+{
-+ preempt_enable();
-+}
-+static inline void sched_lock_idle_list(struct worker_pool *pool) { }
-+static inline void sched_unlock_idle_list(struct worker_pool *pool) { }
-+#else
-+static inline void rt_lock_idle_list(struct worker_pool *pool) { }
-+static inline void rt_unlock_idle_list(struct worker_pool *pool) { }
-+static inline void sched_lock_idle_list(struct worker_pool *pool)
-+{
-+ spin_lock_irq(&pool->lock);
-+}
-+static inline void sched_unlock_idle_list(struct worker_pool *pool)
-+{
-+ spin_unlock_irq(&pool->lock);
-+}
-+#endif
-+
-+
- #ifdef CONFIG_DEBUG_OBJECTS_WORK
-
- static struct debug_obj_descr work_debug_descr;
-@@ -562,8 +596,7 @@
- * @wq: the target workqueue
- * @node: the node ID
- *
-- * This must be called with any of wq_pool_mutex, wq->mutex or sched RCU
-- * read locked.
-+ * This must be called with any of wq_pool_mutex, wq->mutex or RCU read locked.
- * If the pwq needs to be used beyond the locking in effect, the caller is
- * responsible for guaranteeing that the pwq stays online.
- *
-@@ -706,8 +739,8 @@
- * @work: the work item of interest
- *
- * Pools are created and destroyed under wq_pool_mutex, and allows read
-- * access under sched-RCU read lock. As such, this function should be
-- * called under wq_pool_mutex or with preemption disabled.
-+ * access under RCU read lock. As such, this function should be
-+ * called under wq_pool_mutex or inside of a rcu_read_lock() region.
- *
- * All fields of the returned pool are accessible as long as the above
- * mentioned locking is in effect. If the returned pool needs to be used
-@@ -844,51 +877,44 @@
- */
- static void wake_up_worker(struct worker_pool *pool)
- {
-- struct worker *worker = first_idle_worker(pool);
-+ struct worker *worker;
-+
-+ rt_lock_idle_list(pool);
-+
-+ worker = first_idle_worker(pool);
-
- if (likely(worker))
- wake_up_process(worker->task);
-+
-+ rt_unlock_idle_list(pool);
- }
-
- /**
-- * wq_worker_waking_up - a worker is waking up
-- * @task: task waking up
-- * @cpu: CPU @task is waking up to
-- *
-- * This function is called during try_to_wake_up() when a worker is
-- * being awoken.
-+ * wq_worker_running - a worker is running again
-+ * @task: task returning from sleep
- *
-- * CONTEXT:
-- * spin_lock_irq(rq->lock)
-+ * This function is called when a worker returns from schedule()
- */
--void wq_worker_waking_up(struct task_struct *task, int cpu)
-+void wq_worker_running(struct task_struct *task)
- {
- struct worker *worker = kthread_data(task);
-
-- if (!(worker->flags & WORKER_NOT_RUNNING)) {
-- WARN_ON_ONCE(worker->pool->cpu != cpu);
-+ if (!worker->sleeping)
-+ return;
-+ if (!(worker->flags & WORKER_NOT_RUNNING))
- atomic_inc(&worker->pool->nr_running);
-- }
-+ worker->sleeping = 0;
- }
-
- /**
- * wq_worker_sleeping - a worker is going to sleep
- * @task: task going to sleep
-- * @cpu: CPU in question, must be the current CPU number
-- *
-- * This function is called during schedule() when a busy worker is
-- * going to sleep. Worker on the same cpu can be woken up by
-- * returning pointer to its task.
-- *
-- * CONTEXT:
-- * spin_lock_irq(rq->lock)
-- *
-- * Return:
-- * Worker task on @cpu to wake up, %NULL if none.
-+ * This function is called from schedule() when a busy worker is
-+ * going to sleep.
- */
--struct task_struct *wq_worker_sleeping(struct task_struct *task, int cpu)
-+void wq_worker_sleeping(struct task_struct *task)
- {
-- struct worker *worker = kthread_data(task), *to_wakeup = NULL;
-+ struct worker *worker = kthread_data(task);
- struct worker_pool *pool;
-
- /*
-@@ -897,29 +923,26 @@
- * checking NOT_RUNNING.
- */
- if (worker->flags & WORKER_NOT_RUNNING)
-- return NULL;
-+ return;
-
- pool = worker->pool;
-
-- /* this can only happen on the local cpu */
-- if (WARN_ON_ONCE(cpu != raw_smp_processor_id() || pool->cpu != cpu))
-- return NULL;
-+ if (WARN_ON_ONCE(worker->sleeping))
-+ return;
-+
-+ worker->sleeping = 1;
-
- /*
- * The counterpart of the following dec_and_test, implied mb,
- * worklist not empty test sequence is in insert_work().
- * Please read comment there.
-- *
-- * NOT_RUNNING is clear. This means that we're bound to and
-- * running on the local cpu w/ rq lock held and preemption
-- * disabled, which in turn means that none else could be
-- * manipulating idle_list, so dereferencing idle_list without pool
-- * lock is safe.
- */
- if (atomic_dec_and_test(&pool->nr_running) &&
-- !list_empty(&pool->worklist))
-- to_wakeup = first_idle_worker(pool);
-- return to_wakeup ? to_wakeup->task : NULL;
-+ !list_empty(&pool->worklist)) {
-+ sched_lock_idle_list(pool);
-+ wake_up_worker(pool);
-+ sched_unlock_idle_list(pool);
-+ }
- }
-
- /**
-@@ -1113,12 +1136,14 @@
- {
- if (pwq) {
- /*
-- * As both pwqs and pools are sched-RCU protected, the
-+ * As both pwqs and pools are RCU protected, the
- * following lock operations are safe.
- */
-- spin_lock_irq(&pwq->pool->lock);
-+ rcu_read_lock();
-+ local_spin_lock_irq(pendingb_lock, &pwq->pool->lock);
- put_pwq(pwq);
-- spin_unlock_irq(&pwq->pool->lock);
-+ local_spin_unlock_irq(pendingb_lock, &pwq->pool->lock);
-+ rcu_read_unlock();
- }
- }
-
-@@ -1220,7 +1245,7 @@
- struct worker_pool *pool;
- struct pool_workqueue *pwq;
-
-- local_irq_save(*flags);
-+ local_lock_irqsave(pendingb_lock, *flags);
-
- /* try to steal the timer if it exists */
- if (is_dwork) {
-@@ -1239,6 +1264,7 @@
- if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work)))
- return 0;
-
-+ rcu_read_lock();
- /*
- * The queueing is in progress, or it is already queued. Try to
- * steal it from ->worklist without clearing WORK_STRUCT_PENDING.
-@@ -1277,14 +1303,16 @@
- set_work_pool_and_keep_pending(work, pool->id);
-
- spin_unlock(&pool->lock);
-+ rcu_read_unlock();
- return 1;
- }
- spin_unlock(&pool->lock);
- fail:
-- local_irq_restore(*flags);
-+ rcu_read_unlock();
-+ local_unlock_irqrestore(pendingb_lock, *flags);
- if (work_is_canceling(work))
- return -ENOENT;
-- cpu_relax();
-+ cpu_chill();
- return -EAGAIN;
- }
-
-@@ -1353,7 +1381,7 @@
- * queued or lose PENDING. Grabbing PENDING and queueing should
- * happen with IRQ disabled.
- */
-- WARN_ON_ONCE(!irqs_disabled());
-+ WARN_ON_ONCE_NONRT(!irqs_disabled());
-
- debug_work_activate(work);
-
-@@ -1361,6 +1389,8 @@
- if (unlikely(wq->flags & __WQ_DRAINING) &&
- WARN_ON_ONCE(!is_chained_work(wq)))
- return;
-+
-+ rcu_read_lock();
- retry:
- if (req_cpu == WORK_CPU_UNBOUND)
- cpu = raw_smp_processor_id();
-@@ -1417,10 +1447,8 @@
- /* pwq determined, queue */
- trace_workqueue_queue_work(req_cpu, pwq, work);
-
-- if (WARN_ON(!list_empty(&work->entry))) {
-- spin_unlock(&pwq->pool->lock);
-- return;
-- }
-+ if (WARN_ON(!list_empty(&work->entry)))
-+ goto out;
-
- pwq->nr_in_flight[pwq->work_color]++;
- work_flags = work_color_to_flags(pwq->work_color);
-@@ -1436,7 +1464,9 @@
-
- insert_work(pwq, work, worklist, work_flags);
-
-+out:
- spin_unlock(&pwq->pool->lock);
-+ rcu_read_unlock();
- }
-
- /**
-@@ -1456,14 +1486,14 @@
- bool ret = false;
- unsigned long flags;
-
-- local_irq_save(flags);
-+ local_lock_irqsave(pendingb_lock,flags);
-
- if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
- __queue_work(cpu, wq, work);
- ret = true;
- }
-
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(pendingb_lock, flags);
- return ret;
- }
- EXPORT_SYMBOL(queue_work_on);
-@@ -1530,14 +1560,14 @@
- unsigned long flags;
-
- /* read the comment in __queue_work() */
-- local_irq_save(flags);
-+ local_lock_irqsave(pendingb_lock, flags);
-
- if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
- __queue_delayed_work(cpu, wq, dwork, delay);
- ret = true;
- }
-
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(pendingb_lock, flags);
- return ret;
- }
- EXPORT_SYMBOL(queue_delayed_work_on);
-@@ -1572,7 +1602,7 @@
-
- if (likely(ret >= 0)) {
- __queue_delayed_work(cpu, wq, dwork, delay);
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(pendingb_lock, flags);
- }
-
- /* -ENOENT from try_to_grab_pending() becomes %true */
-@@ -1605,7 +1635,9 @@
- worker->last_active = jiffies;
-
- /* idle_list is LIFO */
-+ rt_lock_idle_list(pool);
- list_add(&worker->entry, &pool->idle_list);
-+ rt_unlock_idle_list(pool);
-
- if (too_many_workers(pool) && !timer_pending(&pool->idle_timer))
- mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT);
-@@ -1638,7 +1670,9 @@
- return;
- worker_clr_flags(worker, WORKER_IDLE);
- pool->nr_idle--;
-+ rt_lock_idle_list(pool);
- list_del_init(&worker->entry);
-+ rt_unlock_idle_list(pool);
- }
-
- static struct worker *alloc_worker(int node)
-@@ -1806,7 +1840,9 @@
- pool->nr_workers--;
- pool->nr_idle--;
-
-+ rt_lock_idle_list(pool);
- list_del_init(&worker->entry);
-+ rt_unlock_idle_list(pool);
- worker->flags |= WORKER_DIE;
- wake_up_process(worker->task);
- }
-@@ -2723,14 +2759,14 @@
-
- might_sleep();
-
-- local_irq_disable();
-+ rcu_read_lock();
- pool = get_work_pool(work);
- if (!pool) {
-- local_irq_enable();
-+ rcu_read_unlock();
- return false;
- }
-
-- spin_lock(&pool->lock);
-+ spin_lock_irq(&pool->lock);
- /* see the comment in try_to_grab_pending() with the same code */
- pwq = get_work_pwq(work);
- if (pwq) {
-@@ -2757,10 +2793,11 @@
- else
- lock_map_acquire_read(&pwq->wq->lockdep_map);
- lock_map_release(&pwq->wq->lockdep_map);
--
-+ rcu_read_unlock();
- return true;
- already_gone:
- spin_unlock_irq(&pool->lock);
-+ rcu_read_unlock();
- return false;
- }
-
-@@ -2847,7 +2884,7 @@
-
- /* tell other tasks trying to grab @work to back off */
- mark_work_canceling(work);
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(pendingb_lock, flags);
-
- flush_work(work);
- clear_work_data(work);
-@@ -2902,10 +2939,10 @@
- */
- bool flush_delayed_work(struct delayed_work *dwork)
- {
-- local_irq_disable();
-+ local_lock_irq(pendingb_lock);
- if (del_timer_sync(&dwork->timer))
- __queue_work(dwork->cpu, dwork->wq, &dwork->work);
-- local_irq_enable();
-+ local_unlock_irq(pendingb_lock);
- return flush_work(&dwork->work);
- }
- EXPORT_SYMBOL(flush_delayed_work);
-@@ -2940,7 +2977,7 @@
-
- set_work_pool_and_clear_pending(&dwork->work,
- get_work_pool_id(&dwork->work));
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(pendingb_lock, flags);
- return ret;
- }
- EXPORT_SYMBOL(cancel_delayed_work);
-@@ -3198,7 +3235,7 @@
- * put_unbound_pool - put a worker_pool
- * @pool: worker_pool to put
- *
-- * Put @pool. If its refcnt reaches zero, it gets destroyed in sched-RCU
-+ * Put @pool. If its refcnt reaches zero, it gets destroyed in RCU
- * safe manner. get_unbound_pool() calls this function on its failure path
- * and this function should be able to release pools which went through,
- * successfully or not, init_worker_pool().
-@@ -3252,8 +3289,8 @@
- del_timer_sync(&pool->idle_timer);
- del_timer_sync(&pool->mayday_timer);
-
-- /* sched-RCU protected to allow dereferences from get_work_pool() */
-- call_rcu_sched(&pool->rcu, rcu_free_pool);
-+ /* RCU protected to allow dereferences from get_work_pool() */
-+ call_rcu(&pool->rcu, rcu_free_pool);
- }
-
- /**
-@@ -3358,14 +3395,14 @@
- put_unbound_pool(pool);
- mutex_unlock(&wq_pool_mutex);
-
-- call_rcu_sched(&pwq->rcu, rcu_free_pwq);
-+ call_rcu(&pwq->rcu, rcu_free_pwq);
-
- /*
- * If we're the last pwq going away, @wq is already dead and no one
- * is gonna access it anymore. Schedule RCU free.
- */
- if (is_last)
-- call_rcu_sched(&wq->rcu, rcu_free_wq);
-+ call_rcu(&wq->rcu, rcu_free_wq);
- }
-
- /**
-@@ -4003,7 +4040,7 @@
- * The base ref is never dropped on per-cpu pwqs. Directly
- * schedule RCU free.
- */
-- call_rcu_sched(&wq->rcu, rcu_free_wq);
-+ call_rcu(&wq->rcu, rcu_free_wq);
- } else {
- /*
- * We're the sole accessor of @wq at this point. Directly
-@@ -4096,7 +4133,8 @@
- struct pool_workqueue *pwq;
- bool ret;
-
-- rcu_read_lock_sched();
-+ rcu_read_lock();
-+ preempt_disable();
-
- if (cpu == WORK_CPU_UNBOUND)
- cpu = smp_processor_id();
-@@ -4107,7 +4145,8 @@
- pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu));
-
- ret = !list_empty(&pwq->delayed_works);
-- rcu_read_unlock_sched();
-+ preempt_enable();
-+ rcu_read_unlock();
-
- return ret;
- }
-@@ -4133,15 +4172,15 @@
- if (work_pending(work))
- ret |= WORK_BUSY_PENDING;
-
-- local_irq_save(flags);
-+ rcu_read_lock();
- pool = get_work_pool(work);
- if (pool) {
-- spin_lock(&pool->lock);
-+ spin_lock_irqsave(&pool->lock, flags);
- if (find_worker_executing_work(pool, work))
- ret |= WORK_BUSY_RUNNING;
-- spin_unlock(&pool->lock);
-+ spin_unlock_irqrestore(&pool->lock, flags);
- }
-- local_irq_restore(flags);
-+ rcu_read_unlock();
-
- return ret;
- }
-@@ -4330,7 +4369,7 @@
- unsigned long flags;
- int pi;
-
-- rcu_read_lock_sched();
-+ rcu_read_lock();
-
- pr_info("Showing busy workqueues and worker pools:\n");
-
-@@ -4381,7 +4420,7 @@
- spin_unlock_irqrestore(&pool->lock, flags);
- }
-
-- rcu_read_unlock_sched();
-+ rcu_read_unlock();
- }
-
- /*
-@@ -4742,16 +4781,16 @@
- * nr_active is monotonically decreasing. It's safe
- * to peek without lock.
- */
-- rcu_read_lock_sched();
-+ rcu_read_lock();
- for_each_pwq(pwq, wq) {
- WARN_ON_ONCE(pwq->nr_active < 0);
- if (pwq->nr_active) {
- busy = true;
-- rcu_read_unlock_sched();
-+ rcu_read_unlock();
- goto out_unlock;
- }
- }
-- rcu_read_unlock_sched();
-+ rcu_read_unlock();
- }
- out_unlock:
- mutex_unlock(&wq_pool_mutex);
-@@ -4865,7 +4904,8 @@
- const char *delim = "";
- int node, written = 0;
-
-- rcu_read_lock_sched();
-+ get_online_cpus();
-+ rcu_read_lock();
- for_each_node(node) {
- written += scnprintf(buf + written, PAGE_SIZE - written,
- "%s%d:%d", delim, node,
-@@ -4873,7 +4913,8 @@
- delim = " ";
- }
- written += scnprintf(buf + written, PAGE_SIZE - written, "\n");
-- rcu_read_unlock_sched();
-+ rcu_read_unlock();
-+ put_online_cpus();
-
- return written;
- }
-diff -Nur linux-4.1.39.orig/kernel/workqueue_internal.h linux-4.1.39/kernel/workqueue_internal.h
---- linux-4.1.39.orig/kernel/workqueue_internal.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/kernel/workqueue_internal.h 2017-04-18 17:56:30.645398372 +0200
-@@ -43,6 +43,7 @@
- unsigned long last_active; /* L: last active timestamp */
- unsigned int flags; /* X: flags */
- int id; /* I: worker id */
-+ int sleeping; /* None */
-
- /*
- * Opaque string set with work_set_desc(). Printed out with task
-@@ -68,7 +69,7 @@
- * Scheduler hooks for concurrency managed workqueue. Only to be used from
- * sched/core.c and workqueue.c.
- */
--void wq_worker_waking_up(struct task_struct *task, int cpu);
--struct task_struct *wq_worker_sleeping(struct task_struct *task, int cpu);
-+void wq_worker_running(struct task_struct *task);
-+void wq_worker_sleeping(struct task_struct *task);
-
- #endif /* _KERNEL_WORKQUEUE_INTERNAL_H */
-diff -Nur linux-4.1.39.orig/lib/debugobjects.c linux-4.1.39/lib/debugobjects.c
---- linux-4.1.39.orig/lib/debugobjects.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/lib/debugobjects.c 2017-04-18 17:56:30.645398372 +0200
-@@ -309,7 +309,10 @@
- struct debug_obj *obj;
- unsigned long flags;
-
-- fill_pool();
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ if (preempt_count() == 0 && !irqs_disabled())
-+#endif
-+ fill_pool();
-
- db = get_bucket((unsigned long) addr);
-
-diff -Nur linux-4.1.39.orig/lib/dump_stack.c linux-4.1.39/lib/dump_stack.c
---- linux-4.1.39.orig/lib/dump_stack.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/lib/dump_stack.c 2017-04-18 17:56:30.645398372 +0200
-@@ -8,6 +8,7 @@
- #include <linux/sched.h>
- #include <linux/smp.h>
- #include <linux/atomic.h>
-+#include <linux/locallock.h>
-
- static void __dump_stack(void)
- {
-diff -Nur linux-4.1.39.orig/lib/idr.c linux-4.1.39/lib/idr.c
---- linux-4.1.39.orig/lib/idr.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/lib/idr.c 2017-04-18 17:56:30.645398372 +0200
-@@ -30,6 +30,7 @@
- #include <linux/idr.h>
- #include <linux/spinlock.h>
- #include <linux/percpu.h>
-+#include <linux/locallock.h>
-
- #define MAX_IDR_SHIFT (sizeof(int) * 8 - 1)
- #define MAX_IDR_BIT (1U << MAX_IDR_SHIFT)
-@@ -366,6 +367,35 @@
- idr_mark_full(pa, id);
- }
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+static DEFINE_LOCAL_IRQ_LOCK(idr_lock);
-+
-+static inline void idr_preload_lock(void)
-+{
-+ local_lock(idr_lock);
-+}
-+
-+static inline void idr_preload_unlock(void)
-+{
-+ local_unlock(idr_lock);
-+}
-+
-+void idr_preload_end(void)
-+{
-+ idr_preload_unlock();
-+}
-+EXPORT_SYMBOL(idr_preload_end);
-+#else
-+static inline void idr_preload_lock(void)
-+{
-+ preempt_disable();
-+}
-+
-+static inline void idr_preload_unlock(void)
-+{
-+ preempt_enable();
-+}
-+#endif
-
- /**
- * idr_preload - preload for idr_alloc()
-@@ -401,7 +431,7 @@
- WARN_ON_ONCE(in_interrupt());
- might_sleep_if(gfp_mask & __GFP_WAIT);
-
-- preempt_disable();
-+ idr_preload_lock();
-
- /*
- * idr_alloc() is likely to succeed w/o full idr_layer buffer and
-@@ -413,9 +443,9 @@
- while (__this_cpu_read(idr_preload_cnt) < MAX_IDR_FREE) {
- struct idr_layer *new;
-
-- preempt_enable();
-+ idr_preload_unlock();
- new = kmem_cache_zalloc(idr_layer_cache, gfp_mask);
-- preempt_disable();
-+ idr_preload_lock();
- if (!new)
- break;
-
-diff -Nur linux-4.1.39.orig/lib/Kconfig linux-4.1.39/lib/Kconfig
---- linux-4.1.39.orig/lib/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/lib/Kconfig 2017-04-18 17:56:30.645398372 +0200
-@@ -391,6 +391,7 @@
-
- config CPUMASK_OFFSTACK
- bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
-+ depends on !PREEMPT_RT_FULL
- help
- Use dynamic allocation for cpumask_var_t, instead of putting
- them on the stack. This is a bit more expensive, but avoids
-diff -Nur linux-4.1.39.orig/lib/locking-selftest.c linux-4.1.39/lib/locking-selftest.c
---- linux-4.1.39.orig/lib/locking-selftest.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/lib/locking-selftest.c 2017-04-18 17:56:30.645398372 +0200
-@@ -590,6 +590,8 @@
- #include "locking-selftest-spin-hardirq.h"
- GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_hard_spin)
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+
- #include "locking-selftest-rlock-hardirq.h"
- GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_hard_rlock)
-
-@@ -605,9 +607,12 @@
- #include "locking-selftest-wlock-softirq.h"
- GENERATE_PERMUTATIONS_2_EVENTS(irqsafe1_soft_wlock)
-
-+#endif
-+
- #undef E1
- #undef E2
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- /*
- * Enabling hardirqs with a softirq-safe lock held:
- */
-@@ -640,6 +645,8 @@
- #undef E1
- #undef E2
-
-+#endif
-+
- /*
- * Enabling irqs with an irq-safe lock held:
- */
-@@ -663,6 +670,8 @@
- #include "locking-selftest-spin-hardirq.h"
- GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_hard_spin)
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+
- #include "locking-selftest-rlock-hardirq.h"
- GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_hard_rlock)
-
-@@ -678,6 +687,8 @@
- #include "locking-selftest-wlock-softirq.h"
- GENERATE_PERMUTATIONS_2_EVENTS(irqsafe2B_soft_wlock)
-
-+#endif
-+
- #undef E1
- #undef E2
-
-@@ -709,6 +720,8 @@
- #include "locking-selftest-spin-hardirq.h"
- GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_hard_spin)
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+
- #include "locking-selftest-rlock-hardirq.h"
- GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_hard_rlock)
-
-@@ -724,6 +737,8 @@
- #include "locking-selftest-wlock-softirq.h"
- GENERATE_PERMUTATIONS_3_EVENTS(irqsafe3_soft_wlock)
-
-+#endif
-+
- #undef E1
- #undef E2
- #undef E3
-@@ -757,6 +772,8 @@
- #include "locking-selftest-spin-hardirq.h"
- GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_hard_spin)
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+
- #include "locking-selftest-rlock-hardirq.h"
- GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_hard_rlock)
-
-@@ -772,10 +789,14 @@
- #include "locking-selftest-wlock-softirq.h"
- GENERATE_PERMUTATIONS_3_EVENTS(irqsafe4_soft_wlock)
-
-+#endif
-+
- #undef E1
- #undef E2
- #undef E3
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+
- /*
- * read-lock / write-lock irq inversion.
- *
-@@ -838,6 +859,10 @@
- #undef E2
- #undef E3
-
-+#endif
-+
-+#ifndef CONFIG_PREEMPT_RT_FULL
-+
- /*
- * read-lock / write-lock recursion that is actually safe.
- */
-@@ -876,6 +901,8 @@
- #undef E2
- #undef E3
-
-+#endif
-+
- /*
- * read-lock / write-lock recursion that is unsafe.
- */
-@@ -1858,6 +1885,7 @@
-
- printk(" --------------------------------------------------------------------------\n");
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- /*
- * irq-context testcases:
- */
-@@ -1870,6 +1898,28 @@
-
- DO_TESTCASE_6x2("irq read-recursion", irq_read_recursion);
- // DO_TESTCASE_6x2B("irq read-recursion #2", irq_read_recursion2);
-+#else
-+ /* On -rt, we only do hardirq context test for raw spinlock */
-+ DO_TESTCASE_1B("hard-irqs-on + irq-safe-A", irqsafe1_hard_spin, 12);
-+ DO_TESTCASE_1B("hard-irqs-on + irq-safe-A", irqsafe1_hard_spin, 21);
-+
-+ DO_TESTCASE_1B("hard-safe-A + irqs-on", irqsafe2B_hard_spin, 12);
-+ DO_TESTCASE_1B("hard-safe-A + irqs-on", irqsafe2B_hard_spin, 21);
-+
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 123);
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 132);
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 213);
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 231);
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 312);
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #1", irqsafe3_hard_spin, 321);
-+
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 123);
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 132);
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 213);
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 231);
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 312);
-+ DO_TESTCASE_1B("hard-safe-A + unsafe-B #2", irqsafe4_hard_spin, 321);
-+#endif
-
- ww_tests();
-
-diff -Nur linux-4.1.39.orig/lib/percpu_ida.c linux-4.1.39/lib/percpu_ida.c
---- linux-4.1.39.orig/lib/percpu_ida.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/lib/percpu_ida.c 2017-04-18 17:56:30.645398372 +0200
-@@ -26,6 +26,9 @@
- #include <linux/string.h>
- #include <linux/spinlock.h>
- #include <linux/percpu_ida.h>
-+#include <linux/locallock.h>
-+
-+static DEFINE_LOCAL_IRQ_LOCK(irq_off_lock);
-
- struct percpu_ida_cpu {
- /*
-@@ -148,13 +151,13 @@
- unsigned long flags;
- int tag;
-
-- local_irq_save(flags);
-+ local_lock_irqsave(irq_off_lock, flags);
- tags = this_cpu_ptr(pool->tag_cpu);
-
- /* Fastpath */
- tag = alloc_local_tag(tags);
- if (likely(tag >= 0)) {
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(irq_off_lock, flags);
- return tag;
- }
-
-@@ -173,6 +176,7 @@
-
- if (!tags->nr_free)
- alloc_global_tags(pool, tags);
-+
- if (!tags->nr_free)
- steal_tags(pool, tags);
-
-@@ -184,7 +188,7 @@
- }
-
- spin_unlock(&pool->lock);
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(irq_off_lock, flags);
-
- if (tag >= 0 || state == TASK_RUNNING)
- break;
-@@ -196,7 +200,7 @@
-
- schedule();
-
-- local_irq_save(flags);
-+ local_lock_irqsave(irq_off_lock, flags);
- tags = this_cpu_ptr(pool->tag_cpu);
- }
- if (state != TASK_RUNNING)
-@@ -221,7 +225,7 @@
-
- BUG_ON(tag >= pool->nr_tags);
-
-- local_irq_save(flags);
-+ local_lock_irqsave(irq_off_lock, flags);
- tags = this_cpu_ptr(pool->tag_cpu);
-
- spin_lock(&tags->lock);
-@@ -253,7 +257,7 @@
- spin_unlock(&pool->lock);
- }
-
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(irq_off_lock, flags);
- }
- EXPORT_SYMBOL_GPL(percpu_ida_free);
-
-@@ -345,7 +349,7 @@
- struct percpu_ida_cpu *remote;
- unsigned cpu, i, err = 0;
-
-- local_irq_save(flags);
-+ local_lock_irqsave(irq_off_lock, flags);
- for_each_possible_cpu(cpu) {
- remote = per_cpu_ptr(pool->tag_cpu, cpu);
- spin_lock(&remote->lock);
-@@ -367,7 +371,7 @@
- }
- spin_unlock(&pool->lock);
- out:
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(irq_off_lock, flags);
- return err;
- }
- EXPORT_SYMBOL_GPL(percpu_ida_for_each_free);
-diff -Nur linux-4.1.39.orig/lib/radix-tree.c linux-4.1.39/lib/radix-tree.c
---- linux-4.1.39.orig/lib/radix-tree.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/lib/radix-tree.c 2017-04-18 17:56:30.645398372 +0200
-@@ -34,6 +34,7 @@
- #include <linux/bitops.h>
- #include <linux/rcupdate.h>
- #include <linux/preempt_mask.h> /* in_interrupt() */
-+#include <linux/locallock.h>
-
-
- /*
-@@ -68,6 +69,7 @@
- struct radix_tree_node *nodes[RADIX_TREE_PRELOAD_SIZE];
- };
- static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, };
-+static DEFINE_LOCAL_IRQ_LOCK(radix_tree_preloads_lock);
-
- static inline void *ptr_to_indirect(void *ptr)
- {
-@@ -195,12 +197,13 @@
- * succeed in getting a node here (and never reach
- * kmem_cache_alloc)
- */
-- rtp = this_cpu_ptr(&radix_tree_preloads);
-+ rtp = &get_locked_var(radix_tree_preloads_lock, radix_tree_preloads);
- if (rtp->nr) {
- ret = rtp->nodes[rtp->nr - 1];
- rtp->nodes[rtp->nr - 1] = NULL;
- rtp->nr--;
- }
-+ put_locked_var(radix_tree_preloads_lock, radix_tree_preloads);
- /*
- * Update the allocation stack trace as this is more useful
- * for debugging.
-@@ -255,14 +258,14 @@
- struct radix_tree_node *node;
- int ret = -ENOMEM;
-
-- preempt_disable();
-+ local_lock(radix_tree_preloads_lock);
- rtp = this_cpu_ptr(&radix_tree_preloads);
- while (rtp->nr < ARRAY_SIZE(rtp->nodes)) {
-- preempt_enable();
-+ local_unlock(radix_tree_preloads_lock);
- node = kmem_cache_alloc(radix_tree_node_cachep, gfp_mask);
- if (node == NULL)
- goto out;
-- preempt_disable();
-+ local_lock(radix_tree_preloads_lock);
- rtp = this_cpu_ptr(&radix_tree_preloads);
- if (rtp->nr < ARRAY_SIZE(rtp->nodes))
- rtp->nodes[rtp->nr++] = node;
-@@ -301,11 +304,17 @@
- if (gfp_mask & __GFP_WAIT)
- return __radix_tree_preload(gfp_mask);
- /* Preloading doesn't help anything with this gfp mask, skip it */
-- preempt_disable();
-+ local_lock(radix_tree_preloads_lock);
- return 0;
- }
- EXPORT_SYMBOL(radix_tree_maybe_preload);
-
-+void radix_tree_preload_end(void)
-+{
-+ local_unlock(radix_tree_preloads_lock);
-+}
-+EXPORT_SYMBOL(radix_tree_preload_end);
-+
- /*
- * Return the maximum key which can be store into a
- * radix tree with height HEIGHT.
-diff -Nur linux-4.1.39.orig/lib/scatterlist.c linux-4.1.39/lib/scatterlist.c
---- linux-4.1.39.orig/lib/scatterlist.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/lib/scatterlist.c 2017-04-18 17:56:30.645398372 +0200
-@@ -592,7 +592,7 @@
- flush_kernel_dcache_page(miter->page);
-
- if (miter->__flags & SG_MITER_ATOMIC) {
-- WARN_ON_ONCE(preemptible());
-+ WARN_ON_ONCE(!pagefault_disabled());
- kunmap_atomic(miter->addr);
- } else
- kunmap(miter->page);
-@@ -637,7 +637,7 @@
- if (!sg_miter_skip(&miter, skip))
- return false;
-
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
-
- while (sg_miter_next(&miter) && offset < buflen) {
- unsigned int len;
-@@ -654,7 +654,7 @@
-
- sg_miter_stop(&miter);
-
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- return offset;
- }
-
-diff -Nur linux-4.1.39.orig/lib/smp_processor_id.c linux-4.1.39/lib/smp_processor_id.c
---- linux-4.1.39.orig/lib/smp_processor_id.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/lib/smp_processor_id.c 2017-04-18 17:56:30.645398372 +0200
-@@ -39,8 +39,9 @@
- if (!printk_ratelimit())
- goto out_enable;
-
-- printk(KERN_ERR "BUG: using %s%s() in preemptible [%08x] code: %s/%d\n",
-- what1, what2, preempt_count() - 1, current->comm, current->pid);
-+ printk(KERN_ERR "BUG: using %s%s() in preemptible [%08x %08x] code: %s/%d\n",
-+ what1, what2, preempt_count() - 1, __migrate_disabled(current),
-+ current->comm, current->pid);
-
- print_symbol("caller is %s\n", (long)__builtin_return_address(0));
- dump_stack();
-diff -Nur linux-4.1.39.orig/lib/strnlen_user.c linux-4.1.39/lib/strnlen_user.c
---- linux-4.1.39.orig/lib/strnlen_user.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/lib/strnlen_user.c 2017-04-18 17:56:30.649398527 +0200
-@@ -85,7 +85,8 @@
- * @str: The string to measure.
- * @count: Maximum count (including NUL character)
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Get the size of a NUL-terminated string in user space.
- *
-@@ -121,7 +122,8 @@
- * strlen_user: - Get the size of a user string INCLUDING final NUL.
- * @str: The string to measure.
- *
-- * Context: User context only. This function may sleep.
-+ * Context: User context only. This function may sleep if pagefaults are
-+ * enabled.
- *
- * Get the size of a NUL-terminated string in user space.
- *
-diff -Nur linux-4.1.39.orig/Makefile linux-4.1.39/Makefile
---- linux-4.1.39.orig/Makefile 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/Makefile 2017-04-18 17:56:30.545394493 +0200
-@@ -400,7 +400,7 @@
- KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
- -fno-strict-aliasing -fno-common \
- -Werror-implicit-function-declaration \
-- -Wno-format-security \
-+ -Wno-format-security -fno-PIE \
- -std=gnu89
-
- KBUILD_AFLAGS_KERNEL :=
-diff -Nur linux-4.1.39.orig/mm/compaction.c linux-4.1.39/mm/compaction.c
---- linux-4.1.39.orig/mm/compaction.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/compaction.c 2017-04-18 17:56:30.649398527 +0200
-@@ -1423,10 +1423,12 @@
- cc->migrate_pfn & ~((1UL << cc->order) - 1);
-
- if (last_migrated_pfn < current_block_start) {
-- cpu = get_cpu();
-+ cpu = get_cpu_light();
-+ local_lock_irq(swapvec_lock);
- lru_add_drain_cpu(cpu);
-+ local_unlock_irq(swapvec_lock);
- drain_local_pages(zone);
-- put_cpu();
-+ put_cpu_light();
- /* No more flushing until we migrate again */
- last_migrated_pfn = 0;
- }
-diff -Nur linux-4.1.39.orig/mm/filemap.c linux-4.1.39/mm/filemap.c
---- linux-4.1.39.orig/mm/filemap.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/filemap.c 2017-04-18 17:56:30.649398527 +0200
-@@ -167,7 +167,9 @@
- if (!workingset_node_pages(node) &&
- list_empty(&node->private_list)) {
- node->private_data = mapping;
-- list_lru_add(&workingset_shadow_nodes, &node->private_list);
-+ local_lock(workingset_shadow_lock);
-+ list_lru_add(&__workingset_shadow_nodes, &node->private_list);
-+ local_unlock(workingset_shadow_lock);
- }
- }
-
-@@ -533,9 +535,12 @@
- * node->private_list is protected by
- * mapping->tree_lock.
- */
-- if (!list_empty(&node->private_list))
-- list_lru_del(&workingset_shadow_nodes,
-+ if (!list_empty(&node->private_list)) {
-+ local_lock(workingset_shadow_lock);
-+ list_lru_del(&__workingset_shadow_nodes,
- &node->private_list);
-+ local_unlock(workingset_shadow_lock);
-+ }
- }
- return 0;
- }
-diff -Nur linux-4.1.39.orig/mm/highmem.c linux-4.1.39/mm/highmem.c
---- linux-4.1.39.orig/mm/highmem.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/highmem.c 2017-04-18 17:56:30.649398527 +0200
-@@ -29,10 +29,11 @@
- #include <linux/kgdb.h>
- #include <asm/tlbflush.h>
-
--
-+#ifndef CONFIG_PREEMPT_RT_FULL
- #if defined(CONFIG_HIGHMEM) || defined(CONFIG_X86_32)
- DEFINE_PER_CPU(int, __kmap_atomic_idx);
- #endif
-+#endif
-
- /*
- * Virtual_count is not a pure "count".
-@@ -107,8 +108,9 @@
- unsigned long totalhigh_pages __read_mostly;
- EXPORT_SYMBOL(totalhigh_pages);
-
--
-+#ifndef CONFIG_PREEMPT_RT_FULL
- EXPORT_PER_CPU_SYMBOL(__kmap_atomic_idx);
-+#endif
-
- unsigned int nr_free_highpages (void)
- {
-diff -Nur linux-4.1.39.orig/mm/Kconfig linux-4.1.39/mm/Kconfig
---- linux-4.1.39.orig/mm/Kconfig 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/Kconfig 2017-04-18 17:56:30.649398527 +0200
-@@ -409,7 +409,7 @@
-
- config TRANSPARENT_HUGEPAGE
- bool "Transparent Hugepage Support"
-- depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE
-+ depends on HAVE_ARCH_TRANSPARENT_HUGEPAGE && !PREEMPT_RT_FULL
- select COMPACTION
- help
- Transparent Hugepages allows the kernel to use huge pages and
-diff -Nur linux-4.1.39.orig/mm/memcontrol.c linux-4.1.39/mm/memcontrol.c
---- linux-4.1.39.orig/mm/memcontrol.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/memcontrol.c 2017-04-18 17:56:30.649398527 +0200
-@@ -66,6 +66,8 @@
- #include <net/sock.h>
- #include <net/ip.h>
- #include <net/tcp_memcontrol.h>
-+#include <linux/locallock.h>
-+
- #include "slab.h"
-
- #include <asm/uaccess.h>
-@@ -85,6 +87,7 @@
- #define do_swap_account 0
- #endif
-
-+static DEFINE_LOCAL_IRQ_LOCK(event_lock);
- static const char * const mem_cgroup_stat_names[] = {
- "cache",
- "rss",
-@@ -2124,14 +2127,17 @@
- */
- static void refill_stock(struct mem_cgroup *memcg, unsigned int nr_pages)
- {
-- struct memcg_stock_pcp *stock = &get_cpu_var(memcg_stock);
-+ struct memcg_stock_pcp *stock;
-+ int cpu = get_cpu_light();
-+
-+ stock = &per_cpu(memcg_stock, cpu);
-
- if (stock->cached != memcg) { /* reset if necessary */
- drain_stock(stock);
- stock->cached = memcg;
- }
- stock->nr_pages += nr_pages;
-- put_cpu_var(memcg_stock);
-+ put_cpu_light();
- }
-
- /*
-@@ -2147,7 +2153,7 @@
- return;
- /* Notify other cpus that system-wide "drain" is running */
- get_online_cpus();
-- curcpu = get_cpu();
-+ curcpu = get_cpu_light();
- for_each_online_cpu(cpu) {
- struct memcg_stock_pcp *stock = &per_cpu(memcg_stock, cpu);
- struct mem_cgroup *memcg;
-@@ -2164,7 +2170,7 @@
- schedule_work_on(cpu, &stock->work);
- }
- }
-- put_cpu();
-+ put_cpu_light();
- put_online_cpus();
- mutex_unlock(&percpu_charge_mutex);
- }
-@@ -4803,12 +4809,12 @@
-
- ret = 0;
-
-- local_irq_disable();
-+ local_lock_irq(event_lock);
- mem_cgroup_charge_statistics(to, page, nr_pages);
- memcg_check_events(to, page);
- mem_cgroup_charge_statistics(from, page, -nr_pages);
- memcg_check_events(from, page);
-- local_irq_enable();
-+ local_unlock_irq(event_lock);
- out_unlock:
- unlock_page(page);
- out:
-@@ -5551,10 +5557,10 @@
- VM_BUG_ON_PAGE(!PageTransHuge(page), page);
- }
-
-- local_irq_disable();
-+ local_lock_irq(event_lock);
- mem_cgroup_charge_statistics(memcg, page, nr_pages);
- memcg_check_events(memcg, page);
-- local_irq_enable();
-+ local_unlock_irq(event_lock);
-
- if (do_swap_account && PageSwapCache(page)) {
- swp_entry_t entry = { .val = page_private(page) };
-@@ -5610,14 +5616,14 @@
- memcg_oom_recover(memcg);
- }
-
-- local_irq_save(flags);
-+ local_lock_irqsave(event_lock, flags);
- __this_cpu_sub(memcg->stat->count[MEM_CGROUP_STAT_RSS], nr_anon);
- __this_cpu_sub(memcg->stat->count[MEM_CGROUP_STAT_CACHE], nr_file);
- __this_cpu_sub(memcg->stat->count[MEM_CGROUP_STAT_RSS_HUGE], nr_huge);
- __this_cpu_add(memcg->stat->events[MEM_CGROUP_EVENTS_PGPGOUT], pgpgout);
- __this_cpu_add(memcg->stat->nr_page_events, nr_pages);
- memcg_check_events(memcg, dummy_page);
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(event_lock, flags);
-
- if (!mem_cgroup_is_root(memcg))
- css_put_many(&memcg->css, nr_pages);
-@@ -5821,6 +5827,7 @@
- {
- struct mem_cgroup *memcg;
- unsigned short oldid;
-+ unsigned long flags;
-
- VM_BUG_ON_PAGE(PageLRU(page), page);
- VM_BUG_ON_PAGE(page_count(page), page);
-@@ -5843,9 +5850,11 @@
- if (!mem_cgroup_is_root(memcg))
- page_counter_uncharge(&memcg->memory, 1);
-
-+ local_lock_irqsave(event_lock, flags);
- /* Caller disabled preemption with mapping->tree_lock */
- mem_cgroup_charge_statistics(memcg, page, -1);
- memcg_check_events(memcg, page);
-+ local_unlock_irqrestore(event_lock, flags);
- }
-
- /**
-diff -Nur linux-4.1.39.orig/mm/memory.c linux-4.1.39/mm/memory.c
---- linux-4.1.39.orig/mm/memory.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/memory.c 2017-04-18 17:56:30.649398527 +0200
-@@ -3753,7 +3753,7 @@
- }
-
- #if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_DEBUG_ATOMIC_SLEEP)
--void might_fault(void)
-+void __might_fault(const char *file, int line)
- {
- /*
- * Some code (nfs/sunrpc) uses socket ops on kernel memory while
-@@ -3763,21 +3763,15 @@
- */
- if (segment_eq(get_fs(), KERNEL_DS))
- return;
--
-- /*
-- * it would be nicer only to annotate paths which are not under
-- * pagefault_disable, however that requires a larger audit and
-- * providing helpers like get_user_atomic.
-- */
-- if (in_atomic())
-+ if (pagefault_disabled())
- return;
--
-- __might_sleep(__FILE__, __LINE__, 0);
--
-+ __might_sleep(file, line, 0);
-+#if defined(CONFIG_DEBUG_ATOMIC_SLEEP)
- if (current->mm)
- might_lock_read(&current->mm->mmap_sem);
-+#endif
- }
--EXPORT_SYMBOL(might_fault);
-+EXPORT_SYMBOL(__might_fault);
- #endif
-
- #if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_HUGETLBFS)
-diff -Nur linux-4.1.39.orig/mm/mmu_context.c linux-4.1.39/mm/mmu_context.c
---- linux-4.1.39.orig/mm/mmu_context.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/mmu_context.c 2017-04-18 17:56:30.649398527 +0200
-@@ -23,6 +23,7 @@
- struct task_struct *tsk = current;
-
- task_lock(tsk);
-+ preempt_disable_rt();
- active_mm = tsk->active_mm;
- if (active_mm != mm) {
- atomic_inc(&mm->mm_count);
-@@ -30,6 +31,7 @@
- }
- tsk->mm = mm;
- switch_mm(active_mm, mm, tsk);
-+ preempt_enable_rt();
- task_unlock(tsk);
- #ifdef finish_arch_post_lock_switch
- finish_arch_post_lock_switch();
-diff -Nur linux-4.1.39.orig/mm/page_alloc.c linux-4.1.39/mm/page_alloc.c
---- linux-4.1.39.orig/mm/page_alloc.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/page_alloc.c 2017-04-18 17:56:30.649398527 +0200
-@@ -60,6 +60,7 @@
- #include <linux/page_ext.h>
- #include <linux/hugetlb.h>
- #include <linux/sched/rt.h>
-+#include <linux/locallock.h>
- #include <linux/page_owner.h>
-
- #include <asm/sections.h>
-@@ -233,6 +234,18 @@
- EXPORT_SYMBOL(nr_online_nodes);
- #endif
-
-+static DEFINE_LOCAL_IRQ_LOCK(pa_lock);
-+
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+# define cpu_lock_irqsave(cpu, flags) \
-+ local_lock_irqsave_on(pa_lock, flags, cpu)
-+# define cpu_unlock_irqrestore(cpu, flags) \
-+ local_unlock_irqrestore_on(pa_lock, flags, cpu)
-+#else
-+# define cpu_lock_irqsave(cpu, flags) local_irq_save(flags)
-+# define cpu_unlock_irqrestore(cpu, flags) local_irq_restore(flags)
-+#endif
-+
- int page_group_by_mobility_disabled __read_mostly;
-
- void set_pageblock_migratetype(struct page *page, int migratetype)
-@@ -701,7 +714,7 @@
- }
-
- /*
-- * Frees a number of pages from the PCP lists
-+ * Frees a number of pages which have been collected from the pcp lists.
- * Assumes all pages on list are in same zone, and of same order.
- * count is the number of pages to free.
- *
-@@ -712,18 +725,51 @@
- * pinned" detection logic.
- */
- static void free_pcppages_bulk(struct zone *zone, int count,
-- struct per_cpu_pages *pcp)
-+ struct list_head *list)
- {
-- int migratetype = 0;
-- int batch_free = 0;
- int to_free = count;
- unsigned long nr_scanned;
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&zone->lock, flags);
-
-- spin_lock(&zone->lock);
- nr_scanned = zone_page_state(zone, NR_PAGES_SCANNED);
- if (nr_scanned)
- __mod_zone_page_state(zone, NR_PAGES_SCANNED, -nr_scanned);
-
-+ while (!list_empty(list)) {
-+ struct page *page = list_first_entry(list, struct page, lru);
-+ int mt; /* migratetype of the to-be-freed page */
-+
-+ /* must delete as __free_one_page list manipulates */
-+ list_del(&page->lru);
-+
-+ mt = get_freepage_migratetype(page);
-+ if (unlikely(has_isolate_pageblock(zone)))
-+ mt = get_pageblock_migratetype(page);
-+
-+ /* MIGRATE_MOVABLE list may include MIGRATE_RESERVEs */
-+ __free_one_page(page, page_to_pfn(page), zone, 0, mt);
-+ trace_mm_page_pcpu_drain(page, 0, mt);
-+ to_free--;
-+ }
-+ WARN_ON(to_free != 0);
-+ spin_unlock_irqrestore(&zone->lock, flags);
-+}
-+
-+/*
-+ * Moves a number of pages from the PCP lists to free list which
-+ * is freed outside of the locked region.
-+ *
-+ * Assumes all pages on list are in same zone, and of same order.
-+ * count is the number of pages to free.
-+ */
-+static void isolate_pcp_pages(int to_free, struct per_cpu_pages *src,
-+ struct list_head *dst)
-+{
-+ int migratetype = 0;
-+ int batch_free = 0;
-+
- while (to_free) {
- struct page *page;
- struct list_head *list;
-@@ -739,7 +785,7 @@
- batch_free++;
- if (++migratetype == MIGRATE_PCPTYPES)
- migratetype = 0;
-- list = &pcp->lists[migratetype];
-+ list = &src->lists[migratetype];
- } while (list_empty(list));
-
- /* This is the only non-empty list. Free them all. */
-@@ -747,21 +793,11 @@
- batch_free = to_free;
-
- do {
-- int mt; /* migratetype of the to-be-freed page */
--
-- page = list_entry(list->prev, struct page, lru);
-- /* must delete as __free_one_page list manipulates */
-+ page = list_last_entry(list, struct page, lru);
- list_del(&page->lru);
-- mt = get_freepage_migratetype(page);
-- if (unlikely(has_isolate_pageblock(zone)))
-- mt = get_pageblock_migratetype(page);
--
-- /* MIGRATE_MOVABLE list may include MIGRATE_RESERVEs */
-- __free_one_page(page, page_to_pfn(page), zone, 0, mt);
-- trace_mm_page_pcpu_drain(page, 0, mt);
-+ list_add(&page->lru, dst);
- } while (--to_free && --batch_free && !list_empty(list));
- }
-- spin_unlock(&zone->lock);
- }
-
- static void free_one_page(struct zone *zone,
-@@ -770,7 +806,9 @@
- int migratetype)
- {
- unsigned long nr_scanned;
-- spin_lock(&zone->lock);
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&zone->lock, flags);
- nr_scanned = zone_page_state(zone, NR_PAGES_SCANNED);
- if (nr_scanned)
- __mod_zone_page_state(zone, NR_PAGES_SCANNED, -nr_scanned);
-@@ -780,7 +818,7 @@
- migratetype = get_pfnblock_migratetype(page, pfn);
- }
- __free_one_page(page, pfn, zone, order, migratetype);
-- spin_unlock(&zone->lock);
-+ spin_unlock_irqrestore(&zone->lock, flags);
- }
-
- static int free_tail_pages_check(struct page *head_page, struct page *page)
-@@ -845,11 +883,11 @@
- return;
-
- migratetype = get_pfnblock_migratetype(page, pfn);
-- local_irq_save(flags);
-+ local_lock_irqsave(pa_lock, flags);
- __count_vm_events(PGFREE, 1 << order);
- set_freepage_migratetype(page, migratetype);
- free_one_page(page_zone(page), page, pfn, order, migratetype);
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(pa_lock, flags);
- }
-
- void __init __free_pages_bootmem(struct page *page, unsigned long pfn,
-@@ -1396,16 +1434,18 @@
- void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
- {
- unsigned long flags;
-+ LIST_HEAD(dst);
- int to_drain, batch;
-
-- local_irq_save(flags);
-+ local_lock_irqsave(pa_lock, flags);
- batch = READ_ONCE(pcp->batch);
- to_drain = min(pcp->count, batch);
- if (to_drain > 0) {
-- free_pcppages_bulk(zone, to_drain, pcp);
-+ isolate_pcp_pages(to_drain, pcp, &dst);
- pcp->count -= to_drain;
- }
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(pa_lock, flags);
-+ free_pcppages_bulk(zone, to_drain, &dst);
- }
- #endif
-
-@@ -1421,16 +1461,21 @@
- unsigned long flags;
- struct per_cpu_pageset *pset;
- struct per_cpu_pages *pcp;
-+ LIST_HEAD(dst);
-+ int count;
-
-- local_irq_save(flags);
-+ cpu_lock_irqsave(cpu, flags);
- pset = per_cpu_ptr(zone->pageset, cpu);
-
- pcp = &pset->pcp;
-- if (pcp->count) {
-- free_pcppages_bulk(zone, pcp->count, pcp);
-+ count = pcp->count;
-+ if (count) {
-+ isolate_pcp_pages(count, pcp, &dst);
- pcp->count = 0;
- }
-- local_irq_restore(flags);
-+ cpu_unlock_irqrestore(cpu, flags);
-+ if (count)
-+ free_pcppages_bulk(zone, count, &dst);
- }
-
- /*
-@@ -1516,8 +1561,17 @@
- else
- cpumask_clear_cpu(cpu, &cpus_with_pcps);
- }
-+#ifndef CONFIG_PREEMPT_RT_BASE
- on_each_cpu_mask(&cpus_with_pcps, (smp_call_func_t) drain_local_pages,
- zone, 1);
-+#else
-+ for_each_cpu(cpu, &cpus_with_pcps) {
-+ if (zone)
-+ drain_pages_zone(cpu, zone);
-+ else
-+ drain_pages(cpu);
-+ }
-+#endif
- }
-
- #ifdef CONFIG_HIBERNATION
-@@ -1573,7 +1627,7 @@
-
- migratetype = get_pfnblock_migratetype(page, pfn);
- set_freepage_migratetype(page, migratetype);
-- local_irq_save(flags);
-+ local_lock_irqsave(pa_lock, flags);
- __count_vm_event(PGFREE);
-
- /*
-@@ -1599,12 +1653,17 @@
- pcp->count++;
- if (pcp->count >= pcp->high) {
- unsigned long batch = READ_ONCE(pcp->batch);
-- free_pcppages_bulk(zone, batch, pcp);
-+ LIST_HEAD(dst);
-+
-+ isolate_pcp_pages(batch, pcp, &dst);
- pcp->count -= batch;
-+ local_unlock_irqrestore(pa_lock, flags);
-+ free_pcppages_bulk(zone, batch, &dst);
-+ return;
- }
-
- out:
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(pa_lock, flags);
- }
-
- /*
-@@ -1735,7 +1794,7 @@
- struct per_cpu_pages *pcp;
- struct list_head *list;
-
-- local_irq_save(flags);
-+ local_lock_irqsave(pa_lock, flags);
- pcp = &this_cpu_ptr(zone->pageset)->pcp;
- list = &pcp->lists[migratetype];
- if (list_empty(list)) {
-@@ -1767,13 +1826,15 @@
- */
- WARN_ON_ONCE(order > 1);
- }
-- spin_lock_irqsave(&zone->lock, flags);
-+ local_spin_lock_irqsave(pa_lock, &zone->lock, flags);
- page = __rmqueue(zone, order, migratetype);
-- spin_unlock(&zone->lock);
-- if (!page)
-+ if (!page) {
-+ spin_unlock(&zone->lock);
- goto failed;
-+ }
- __mod_zone_freepage_state(zone, -(1 << order),
- get_freepage_migratetype(page));
-+ spin_unlock(&zone->lock);
- }
-
- __mod_zone_page_state(zone, NR_ALLOC_BATCH, -(1 << order));
-@@ -1783,13 +1844,13 @@
-
- __count_zone_vm_events(PGALLOC, zone, 1 << order);
- zone_statistics(preferred_zone, zone, gfp_flags);
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(pa_lock, flags);
-
- VM_BUG_ON_PAGE(bad_range(zone, page), page);
- return page;
-
- failed:
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(pa_lock, flags);
- return NULL;
- }
-
-@@ -5680,6 +5741,7 @@
- void __init page_alloc_init(void)
- {
- hotcpu_notifier(page_alloc_cpu_notify, 0);
-+ local_irq_lock_init(pa_lock);
- }
-
- /*
-@@ -6575,7 +6637,7 @@
- struct per_cpu_pageset *pset;
-
- /* avoid races with drain_pages() */
-- local_irq_save(flags);
-+ local_lock_irqsave(pa_lock, flags);
- if (zone->pageset != &boot_pageset) {
- for_each_online_cpu(cpu) {
- pset = per_cpu_ptr(zone->pageset, cpu);
-@@ -6584,7 +6646,7 @@
- free_percpu(zone->pageset);
- zone->pageset = &boot_pageset;
- }
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(pa_lock, flags);
- }
-
- #ifdef CONFIG_MEMORY_HOTREMOVE
-diff -Nur linux-4.1.39.orig/mm/percpu.c linux-4.1.39/mm/percpu.c
---- linux-4.1.39.orig/mm/percpu.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/percpu.c 2017-04-18 17:56:30.649398527 +0200
-@@ -1282,18 +1282,7 @@
- }
- EXPORT_SYMBOL_GPL(free_percpu);
-
--/**
-- * is_kernel_percpu_address - test whether address is from static percpu area
-- * @addr: address to test
-- *
-- * Test whether @addr belongs to in-kernel static percpu area. Module
-- * static percpu areas are not considered. For those, use
-- * is_module_percpu_address().
-- *
-- * RETURNS:
-- * %true if @addr is from in-kernel static percpu area, %false otherwise.
-- */
--bool is_kernel_percpu_address(unsigned long addr)
-+bool __is_kernel_percpu_address(unsigned long addr, unsigned long *can_addr)
- {
- #ifdef CONFIG_SMP
- const size_t static_size = __per_cpu_end - __per_cpu_start;
-@@ -1302,16 +1291,36 @@
-
- for_each_possible_cpu(cpu) {
- void *start = per_cpu_ptr(base, cpu);
-+ void *va = (void *)addr;
-
-- if ((void *)addr >= start && (void *)addr < start + static_size)
-+ if (va >= start && va < start + static_size) {
-+ if (can_addr)
-+ *can_addr = (unsigned long) (va - start);
- return true;
-- }
-+ }
-+ }
- #endif
- /* on UP, can't distinguish from other static vars, always false */
- return false;
- }
-
- /**
-+ * is_kernel_percpu_address - test whether address is from static percpu area
-+ * @addr: address to test
-+ *
-+ * Test whether @addr belongs to in-kernel static percpu area. Module
-+ * static percpu areas are not considered. For those, use
-+ * is_module_percpu_address().
-+ *
-+ * RETURNS:
-+ * %true if @addr is from in-kernel static percpu area, %false otherwise.
-+ */
-+bool is_kernel_percpu_address(unsigned long addr)
-+{
-+ return __is_kernel_percpu_address(addr, NULL);
-+}
-+
-+/**
- * per_cpu_ptr_to_phys - convert translated percpu address to physical address
- * @addr: the address to be converted to physical address
- *
-diff -Nur linux-4.1.39.orig/mm/slab.h linux-4.1.39/mm/slab.h
---- linux-4.1.39.orig/mm/slab.h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/slab.h 2017-04-18 17:56:30.649398527 +0200
-@@ -330,7 +330,11 @@
- * The slab lists for all objects.
- */
- struct kmem_cache_node {
-+#ifdef CONFIG_SLUB
-+ raw_spinlock_t list_lock;
-+#else
- spinlock_t list_lock;
-+#endif
-
- #ifdef CONFIG_SLAB
- struct list_head slabs_partial; /* partial list first, better asm code */
-diff -Nur linux-4.1.39.orig/mm/slub.c linux-4.1.39/mm/slub.c
---- linux-4.1.39.orig/mm/slub.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/slub.c 2017-04-18 17:56:30.653398681 +0200
-@@ -1069,7 +1069,7 @@
- {
- struct kmem_cache_node *n = get_node(s, page_to_nid(page));
-
-- spin_lock_irqsave(&n->list_lock, *flags);
-+ raw_spin_lock_irqsave(&n->list_lock, *flags);
- slab_lock(page);
-
- if (!check_slab(s, page))
-@@ -1116,7 +1116,7 @@
-
- fail:
- slab_unlock(page);
-- spin_unlock_irqrestore(&n->list_lock, *flags);
-+ raw_spin_unlock_irqrestore(&n->list_lock, *flags);
- slab_fix(s, "Object at 0x%p not freed", object);
- return NULL;
- }
-@@ -1242,6 +1242,12 @@
-
- #endif /* CONFIG_SLUB_DEBUG */
-
-+struct slub_free_list {
-+ raw_spinlock_t lock;
-+ struct list_head list;
-+};
-+static DEFINE_PER_CPU(struct slub_free_list, slub_free_list);
-+
- /*
- * Hooks for other subsystems that check memory allocations. In a typical
- * production configuration these hooks all should produce no code at all.
-@@ -1306,6 +1312,17 @@
- kasan_slab_free(s, x);
- }
-
-+static void setup_object(struct kmem_cache *s, struct page *page,
-+ void *object)
-+{
-+ setup_object_debug(s, page, object);
-+ if (unlikely(s->ctor)) {
-+ kasan_unpoison_object_data(s, object);
-+ s->ctor(object);
-+ kasan_poison_object_data(s, object);
-+ }
-+}
-+
- /*
- * Slab allocation and freeing
- */
-@@ -1336,10 +1353,17 @@
- struct page *page;
- struct kmem_cache_order_objects oo = s->oo;
- gfp_t alloc_gfp;
-+ void *start, *p;
-+ int idx, order;
-+ bool enableirqs;
-
- flags &= gfp_allowed_mask;
-
-- if (flags & __GFP_WAIT)
-+ enableirqs = (flags & __GFP_WAIT) != 0;
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ enableirqs |= system_state == SYSTEM_RUNNING;
-+#endif
-+ if (enableirqs)
- local_irq_enable();
-
- flags |= s->allocflags;
-@@ -1359,13 +1383,13 @@
- * Try a lower order alloc if possible
- */
- page = alloc_slab_page(s, alloc_gfp, node, oo);
--
-- if (page)
-- stat(s, ORDER_FALLBACK);
-+ if (unlikely(!page))
-+ goto out;
-+ stat(s, ORDER_FALLBACK);
- }
-
-- if (kmemcheck_enabled && page
-- && !(s->flags & (SLAB_NOTRACK | DEBUG_DEFAULT_FLAGS))) {
-+ if (kmemcheck_enabled &&
-+ !(s->flags & (SLAB_NOTRACK | DEBUG_DEFAULT_FLAGS))) {
- int pages = 1 << oo_order(oo);
-
- kmemcheck_alloc_shadow(page, oo_order(oo), alloc_gfp, node);
-@@ -1380,51 +1404,9 @@
- kmemcheck_mark_unallocated_pages(page, pages);
- }
-
-- if (flags & __GFP_WAIT)
-- local_irq_disable();
-- if (!page)
-- return NULL;
--
- page->objects = oo_objects(oo);
-- mod_zone_page_state(page_zone(page),
-- (s->flags & SLAB_RECLAIM_ACCOUNT) ?
-- NR_SLAB_RECLAIMABLE : NR_SLAB_UNRECLAIMABLE,
-- 1 << oo_order(oo));
--
-- return page;
--}
--
--static void setup_object(struct kmem_cache *s, struct page *page,
-- void *object)
--{
-- setup_object_debug(s, page, object);
-- if (unlikely(s->ctor)) {
-- kasan_unpoison_object_data(s, object);
-- s->ctor(object);
-- kasan_poison_object_data(s, object);
-- }
--}
--
--static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node)
--{
-- struct page *page;
-- void *start;
-- void *p;
-- int order;
-- int idx;
--
-- if (unlikely(flags & GFP_SLAB_BUG_MASK)) {
-- pr_emerg("gfp: %u\n", flags & GFP_SLAB_BUG_MASK);
-- BUG();
-- }
--
-- page = allocate_slab(s,
-- flags & (GFP_RECLAIM_MASK | GFP_CONSTRAINT_MASK), node);
-- if (!page)
-- goto out;
-
- order = compound_order(page);
-- inc_slabs_node(s, page_to_nid(page), page->objects);
- page->slab_cache = s;
- __SetPageSlab(page);
- if (page_is_pfmemalloc(page))
-@@ -1448,10 +1430,34 @@
- page->freelist = start;
- page->inuse = page->objects;
- page->frozen = 1;
-+
- out:
-+ if (enableirqs)
-+ local_irq_disable();
-+ if (!page)
-+ return NULL;
-+
-+ mod_zone_page_state(page_zone(page),
-+ (s->flags & SLAB_RECLAIM_ACCOUNT) ?
-+ NR_SLAB_RECLAIMABLE : NR_SLAB_UNRECLAIMABLE,
-+ 1 << oo_order(oo));
-+
-+ inc_slabs_node(s, page_to_nid(page), page->objects);
-+
- return page;
- }
-
-+static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node)
-+{
-+ if (unlikely(flags & GFP_SLAB_BUG_MASK)) {
-+ pr_emerg("gfp: %u\n", flags & GFP_SLAB_BUG_MASK);
-+ BUG();
-+ }
-+
-+ return allocate_slab(s,
-+ flags & (GFP_RECLAIM_MASK | GFP_CONSTRAINT_MASK), node);
-+}
-+
- static void __free_slab(struct kmem_cache *s, struct page *page)
- {
- int order = compound_order(page);
-@@ -1483,6 +1489,16 @@
- memcg_uncharge_slab(s, order);
- }
-
-+static void free_delayed(struct list_head *h)
-+{
-+ while(!list_empty(h)) {
-+ struct page *page = list_first_entry(h, struct page, lru);
-+
-+ list_del(&page->lru);
-+ __free_slab(page->slab_cache, page);
-+ }
-+}
-+
- #define need_reserve_slab_rcu \
- (sizeof(((struct page *)NULL)->lru) < sizeof(struct rcu_head))
-
-@@ -1517,6 +1533,12 @@
- }
-
- call_rcu(head, rcu_free_slab);
-+ } else if (irqs_disabled()) {
-+ struct slub_free_list *f = this_cpu_ptr(&slub_free_list);
-+
-+ raw_spin_lock(&f->lock);
-+ list_add(&page->lru, &f->list);
-+ raw_spin_unlock(&f->lock);
- } else
- __free_slab(s, page);
- }
-@@ -1630,7 +1652,7 @@
- if (!n || !n->nr_partial)
- return NULL;
-
-- spin_lock(&n->list_lock);
-+ raw_spin_lock(&n->list_lock);
- list_for_each_entry_safe(page, page2, &n->partial, lru) {
- void *t;
-
-@@ -1655,7 +1677,7 @@
- break;
-
- }
-- spin_unlock(&n->list_lock);
-+ raw_spin_unlock(&n->list_lock);
- return object;
- }
-
-@@ -1901,7 +1923,7 @@
- * that acquire_slab() will see a slab page that
- * is frozen
- */
-- spin_lock(&n->list_lock);
-+ raw_spin_lock(&n->list_lock);
- }
- } else {
- m = M_FULL;
-@@ -1912,7 +1934,7 @@
- * slabs from diagnostic functions will not see
- * any frozen slabs.
- */
-- spin_lock(&n->list_lock);
-+ raw_spin_lock(&n->list_lock);
- }
- }
-
-@@ -1947,7 +1969,7 @@
- goto redo;
-
- if (lock)
-- spin_unlock(&n->list_lock);
-+ raw_spin_unlock(&n->list_lock);
-
- if (m == M_FREE) {
- stat(s, DEACTIVATE_EMPTY);
-@@ -1979,10 +2001,10 @@
- n2 = get_node(s, page_to_nid(page));
- if (n != n2) {
- if (n)
-- spin_unlock(&n->list_lock);
-+ raw_spin_unlock(&n->list_lock);
-
- n = n2;
-- spin_lock(&n->list_lock);
-+ raw_spin_lock(&n->list_lock);
- }
-
- do {
-@@ -2011,7 +2033,7 @@
- }
-
- if (n)
-- spin_unlock(&n->list_lock);
-+ raw_spin_unlock(&n->list_lock);
-
- while (discard_page) {
- page = discard_page;
-@@ -2050,14 +2072,21 @@
- pobjects = oldpage->pobjects;
- pages = oldpage->pages;
- if (drain && pobjects > s->cpu_partial) {
-+ struct slub_free_list *f;
- unsigned long flags;
-+ LIST_HEAD(tofree);
- /*
- * partial array is full. Move the existing
- * set to the per node partial list.
- */
- local_irq_save(flags);
- unfreeze_partials(s, this_cpu_ptr(s->cpu_slab));
-+ f = this_cpu_ptr(&slub_free_list);
-+ raw_spin_lock(&f->lock);
-+ list_splice_init(&f->list, &tofree);
-+ raw_spin_unlock(&f->lock);
- local_irq_restore(flags);
-+ free_delayed(&tofree);
- oldpage = NULL;
- pobjects = 0;
- pages = 0;
-@@ -2129,7 +2158,22 @@
-
- static void flush_all(struct kmem_cache *s)
- {
-+ LIST_HEAD(tofree);
-+ int cpu;
-+
- on_each_cpu_cond(has_cpu_slab, flush_cpu_slab, s, 1, GFP_ATOMIC);
-+ for_each_online_cpu(cpu) {
-+ struct slub_free_list *f;
-+
-+ if (!has_cpu_slab(cpu, s))
-+ continue;
-+
-+ f = &per_cpu(slub_free_list, cpu);
-+ raw_spin_lock_irq(&f->lock);
-+ list_splice_init(&f->list, &tofree);
-+ raw_spin_unlock_irq(&f->lock);
-+ free_delayed(&tofree);
-+ }
- }
-
- /*
-@@ -2165,10 +2209,10 @@
- unsigned long x = 0;
- struct page *page;
-
-- spin_lock_irqsave(&n->list_lock, flags);
-+ raw_spin_lock_irqsave(&n->list_lock, flags);
- list_for_each_entry(page, &n->partial, lru)
- x += get_count(page);
-- spin_unlock_irqrestore(&n->list_lock, flags);
-+ raw_spin_unlock_irqrestore(&n->list_lock, flags);
- return x;
- }
- #endif /* CONFIG_SLUB_DEBUG || CONFIG_SYSFS */
-@@ -2305,9 +2349,11 @@
- static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,
- unsigned long addr, struct kmem_cache_cpu *c)
- {
-+ struct slub_free_list *f;
- void *freelist;
- struct page *page;
- unsigned long flags;
-+ LIST_HEAD(tofree);
-
- local_irq_save(flags);
- #ifdef CONFIG_PREEMPT
-@@ -2375,7 +2421,13 @@
- VM_BUG_ON(!c->page->frozen);
- c->freelist = get_freepointer(s, freelist);
- c->tid = next_tid(c->tid);
-+out:
-+ f = this_cpu_ptr(&slub_free_list);
-+ raw_spin_lock(&f->lock);
-+ list_splice_init(&f->list, &tofree);
-+ raw_spin_unlock(&f->lock);
- local_irq_restore(flags);
-+ free_delayed(&tofree);
- return freelist;
-
- new_slab:
-@@ -2392,8 +2444,7 @@
-
- if (unlikely(!freelist)) {
- slab_out_of_memory(s, gfpflags, node);
-- local_irq_restore(flags);
-- return NULL;
-+ goto out;
- }
-
- page = c->page;
-@@ -2408,8 +2459,7 @@
- deactivate_slab(s, page, get_freepointer(s, freelist));
- c->page = NULL;
- c->freelist = NULL;
-- local_irq_restore(flags);
-- return freelist;
-+ goto out;
- }
-
- /*
-@@ -2593,7 +2643,7 @@
-
- do {
- if (unlikely(n)) {
-- spin_unlock_irqrestore(&n->list_lock, flags);
-+ raw_spin_unlock_irqrestore(&n->list_lock, flags);
- n = NULL;
- }
- prior = page->freelist;
-@@ -2625,7 +2675,7 @@
- * Otherwise the list_lock will synchronize with
- * other processors updating the list of slabs.
- */
-- spin_lock_irqsave(&n->list_lock, flags);
-+ raw_spin_lock_irqsave(&n->list_lock, flags);
-
- }
- }
-@@ -2667,7 +2717,7 @@
- add_partial(n, page, DEACTIVATE_TO_TAIL);
- stat(s, FREE_ADD_PARTIAL);
- }
-- spin_unlock_irqrestore(&n->list_lock, flags);
-+ raw_spin_unlock_irqrestore(&n->list_lock, flags);
- return;
-
- slab_empty:
-@@ -2682,7 +2732,7 @@
- remove_full(s, n, page);
- }
-
-- spin_unlock_irqrestore(&n->list_lock, flags);
-+ raw_spin_unlock_irqrestore(&n->list_lock, flags);
- stat(s, FREE_SLAB);
- discard_slab(s, page);
- }
-@@ -2881,7 +2931,7 @@
- init_kmem_cache_node(struct kmem_cache_node *n)
- {
- n->nr_partial = 0;
-- spin_lock_init(&n->list_lock);
-+ raw_spin_lock_init(&n->list_lock);
- INIT_LIST_HEAD(&n->partial);
- #ifdef CONFIG_SLUB_DEBUG
- atomic_long_set(&n->nr_slabs, 0);
-@@ -3463,7 +3513,7 @@
- for (i = 0; i < SHRINK_PROMOTE_MAX; i++)
- INIT_LIST_HEAD(promote + i);
-
-- spin_lock_irqsave(&n->list_lock, flags);
-+ raw_spin_lock_irqsave(&n->list_lock, flags);
-
- /*
- * Build lists of slabs to discard or promote.
-@@ -3494,7 +3544,7 @@
- for (i = SHRINK_PROMOTE_MAX - 1; i >= 0; i--)
- list_splice(promote + i, &n->partial);
-
-- spin_unlock_irqrestore(&n->list_lock, flags);
-+ raw_spin_unlock_irqrestore(&n->list_lock, flags);
-
- /* Release empty slabs */
- list_for_each_entry_safe(page, t, &discard, lru)
-@@ -3670,6 +3720,12 @@
- {
- static __initdata struct kmem_cache boot_kmem_cache,
- boot_kmem_cache_node;
-+ int cpu;
-+
-+ for_each_possible_cpu(cpu) {
-+ raw_spin_lock_init(&per_cpu(slub_free_list, cpu).lock);
-+ INIT_LIST_HEAD(&per_cpu(slub_free_list, cpu).list);
-+ }
-
- if (debug_guardpage_minorder())
- slub_max_order = 0;
-@@ -3912,7 +3968,7 @@
- struct page *page;
- unsigned long flags;
-
-- spin_lock_irqsave(&n->list_lock, flags);
-+ raw_spin_lock_irqsave(&n->list_lock, flags);
-
- list_for_each_entry(page, &n->partial, lru) {
- validate_slab_slab(s, page, map);
-@@ -3934,7 +3990,7 @@
- s->name, count, atomic_long_read(&n->nr_slabs));
-
- out:
-- spin_unlock_irqrestore(&n->list_lock, flags);
-+ raw_spin_unlock_irqrestore(&n->list_lock, flags);
- return count;
- }
-
-@@ -4122,12 +4178,12 @@
- if (!atomic_long_read(&n->nr_slabs))
- continue;
-
-- spin_lock_irqsave(&n->list_lock, flags);
-+ raw_spin_lock_irqsave(&n->list_lock, flags);
- list_for_each_entry(page, &n->partial, lru)
- process_slab(&t, s, page, alloc, map);
- list_for_each_entry(page, &n->full, lru)
- process_slab(&t, s, page, alloc, map);
-- spin_unlock_irqrestore(&n->list_lock, flags);
-+ raw_spin_unlock_irqrestore(&n->list_lock, flags);
- }
-
- for (i = 0; i < t.count; i++) {
-diff -Nur linux-4.1.39.orig/mm/swap.c linux-4.1.39/mm/swap.c
---- linux-4.1.39.orig/mm/swap.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/swap.c 2017-04-18 17:56:30.653398681 +0200
-@@ -32,6 +32,7 @@
- #include <linux/gfp.h>
- #include <linux/uio.h>
- #include <linux/hugetlb.h>
-+#include <linux/locallock.h>
-
- #include "internal.h"
-
-@@ -45,6 +46,9 @@
- static DEFINE_PER_CPU(struct pagevec, lru_rotate_pvecs);
- static DEFINE_PER_CPU(struct pagevec, lru_deactivate_file_pvecs);
-
-+static DEFINE_LOCAL_IRQ_LOCK(rotate_lock);
-+DEFINE_LOCAL_IRQ_LOCK(swapvec_lock);
-+
- /*
- * This path almost never happens for VM activity - pages are normally
- * freed via pagevecs. But it gets used by networking.
-@@ -481,11 +485,11 @@
- unsigned long flags;
-
- page_cache_get(page);
-- local_irq_save(flags);
-+ local_lock_irqsave(rotate_lock, flags);
- pvec = this_cpu_ptr(&lru_rotate_pvecs);
- if (!pagevec_add(pvec, page) || PageCompound(page))
- pagevec_move_tail(pvec);
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(rotate_lock, flags);
- }
- }
-
-@@ -536,12 +540,13 @@
- void activate_page(struct page *page)
- {
- if (PageLRU(page) && !PageActive(page) && !PageUnevictable(page)) {
-- struct pagevec *pvec = &get_cpu_var(activate_page_pvecs);
-+ struct pagevec *pvec = &get_locked_var(swapvec_lock,
-+ activate_page_pvecs);
-
- page_cache_get(page);
- if (!pagevec_add(pvec, page) || PageCompound(page))
- pagevec_lru_move_fn(pvec, __activate_page, NULL);
-- put_cpu_var(activate_page_pvecs);
-+ put_locked_var(swapvec_lock, activate_page_pvecs);
- }
- }
-
-@@ -567,7 +572,7 @@
-
- static void __lru_cache_activate_page(struct page *page)
- {
-- struct pagevec *pvec = &get_cpu_var(lru_add_pvec);
-+ struct pagevec *pvec = &get_locked_var(swapvec_lock, lru_add_pvec);
- int i;
-
- /*
-@@ -589,7 +594,7 @@
- }
- }
-
-- put_cpu_var(lru_add_pvec);
-+ put_locked_var(swapvec_lock, lru_add_pvec);
- }
-
- /*
-@@ -628,12 +633,12 @@
-
- static void __lru_cache_add(struct page *page)
- {
-- struct pagevec *pvec = &get_cpu_var(lru_add_pvec);
-+ struct pagevec *pvec = &get_locked_var(swapvec_lock, lru_add_pvec);
-
- page_cache_get(page);
- if (!pagevec_add(pvec, page) || PageCompound(page))
- __pagevec_lru_add(pvec);
-- put_cpu_var(lru_add_pvec);
-+ put_locked_var(swapvec_lock, lru_add_pvec);
- }
-
- /**
-@@ -813,9 +818,15 @@
- unsigned long flags;
-
- /* No harm done if a racing interrupt already did this */
-- local_irq_save(flags);
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+ local_lock_irqsave_on(rotate_lock, flags, cpu);
-+ pagevec_move_tail(pvec);
-+ local_unlock_irqrestore_on(rotate_lock, flags, cpu);
-+#else
-+ local_lock_irqsave(rotate_lock, flags);
- pagevec_move_tail(pvec);
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(rotate_lock, flags);
-+#endif
- }
-
- pvec = &per_cpu(lru_deactivate_file_pvecs, cpu);
-@@ -843,26 +854,47 @@
- return;
-
- if (likely(get_page_unless_zero(page))) {
-- struct pagevec *pvec = &get_cpu_var(lru_deactivate_file_pvecs);
-+ struct pagevec *pvec = &get_locked_var(swapvec_lock,
-+ lru_deactivate_file_pvecs);
-
- if (!pagevec_add(pvec, page) || PageCompound(page))
- pagevec_lru_move_fn(pvec, lru_deactivate_file_fn, NULL);
-- put_cpu_var(lru_deactivate_file_pvecs);
-+ put_locked_var(swapvec_lock, lru_deactivate_file_pvecs);
- }
- }
-
- void lru_add_drain(void)
- {
-- lru_add_drain_cpu(get_cpu());
-- put_cpu();
-+ lru_add_drain_cpu(local_lock_cpu(swapvec_lock));
-+ local_unlock_cpu(swapvec_lock);
- }
-
-+
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+static inline void remote_lru_add_drain(int cpu, struct cpumask *has_work)
-+{
-+ local_lock_on(swapvec_lock, cpu);
-+ lru_add_drain_cpu(cpu);
-+ local_unlock_on(swapvec_lock, cpu);
-+}
-+
-+#else
-+
- static void lru_add_drain_per_cpu(struct work_struct *dummy)
- {
- lru_add_drain();
- }
-
- static DEFINE_PER_CPU(struct work_struct, lru_add_drain_work);
-+static inline void remote_lru_add_drain(int cpu, struct cpumask *has_work)
-+{
-+ struct work_struct *work = &per_cpu(lru_add_drain_work, cpu);
-+
-+ INIT_WORK(work, lru_add_drain_per_cpu);
-+ schedule_work_on(cpu, work);
-+ cpumask_set_cpu(cpu, has_work);
-+}
-+#endif
-
- void lru_add_drain_all(void)
- {
-@@ -875,20 +907,17 @@
- cpumask_clear(&has_work);
-
- for_each_online_cpu(cpu) {
-- struct work_struct *work = &per_cpu(lru_add_drain_work, cpu);
--
- if (pagevec_count(&per_cpu(lru_add_pvec, cpu)) ||
- pagevec_count(&per_cpu(lru_rotate_pvecs, cpu)) ||
- pagevec_count(&per_cpu(lru_deactivate_file_pvecs, cpu)) ||
-- need_activate_page_drain(cpu)) {
-- INIT_WORK(work, lru_add_drain_per_cpu);
-- schedule_work_on(cpu, work);
-- cpumask_set_cpu(cpu, &has_work);
-- }
-+ need_activate_page_drain(cpu))
-+ remote_lru_add_drain(cpu, &has_work);
- }
-
-+#ifndef CONFIG_PREEMPT_RT_BASE
- for_each_cpu(cpu, &has_work)
- flush_work(&per_cpu(lru_add_drain_work, cpu));
-+#endif
-
- put_online_cpus();
- mutex_unlock(&lock);
-diff -Nur linux-4.1.39.orig/mm/truncate.c linux-4.1.39/mm/truncate.c
---- linux-4.1.39.orig/mm/truncate.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/truncate.c 2017-04-18 17:56:30.653398681 +0200
-@@ -56,8 +56,11 @@
- * protected by mapping->tree_lock.
- */
- if (!workingset_node_shadows(node) &&
-- !list_empty(&node->private_list))
-- list_lru_del(&workingset_shadow_nodes, &node->private_list);
-+ !list_empty(&node->private_list)) {
-+ local_lock(workingset_shadow_lock);
-+ list_lru_del(&__workingset_shadow_nodes, &node->private_list);
-+ local_unlock(workingset_shadow_lock);
-+ }
- __radix_tree_delete_node(&mapping->page_tree, node);
- unlock:
- spin_unlock_irq(&mapping->tree_lock);
-diff -Nur linux-4.1.39.orig/mm/vmalloc.c linux-4.1.39/mm/vmalloc.c
---- linux-4.1.39.orig/mm/vmalloc.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/vmalloc.c 2017-04-18 17:56:30.653398681 +0200
-@@ -819,7 +819,7 @@
- struct vmap_block *vb;
- struct vmap_area *va;
- unsigned long vb_idx;
-- int node, err;
-+ int node, err, cpu;
- void *vaddr;
-
- node = numa_node_id();
-@@ -862,11 +862,12 @@
- BUG_ON(err);
- radix_tree_preload_end();
-
-- vbq = &get_cpu_var(vmap_block_queue);
-+ cpu = get_cpu_light();
-+ vbq = this_cpu_ptr(&vmap_block_queue);
- spin_lock(&vbq->lock);
- list_add_tail_rcu(&vb->free_list, &vbq->free);
- spin_unlock(&vbq->lock);
-- put_cpu_var(vmap_block_queue);
-+ put_cpu_light();
-
- return vaddr;
- }
-@@ -935,6 +936,7 @@
- struct vmap_block *vb;
- void *vaddr = NULL;
- unsigned int order;
-+ int cpu;
-
- BUG_ON(size & ~PAGE_MASK);
- BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC);
-@@ -949,7 +951,8 @@
- order = get_order(size);
-
- rcu_read_lock();
-- vbq = &get_cpu_var(vmap_block_queue);
-+ cpu = get_cpu_light();
-+ vbq = this_cpu_ptr(&vmap_block_queue);
- list_for_each_entry_rcu(vb, &vbq->free, free_list) {
- unsigned long pages_off;
-
-@@ -972,7 +975,7 @@
- break;
- }
-
-- put_cpu_var(vmap_block_queue);
-+ put_cpu_light();
- rcu_read_unlock();
-
- /* Allocate new block if nothing was found */
-diff -Nur linux-4.1.39.orig/mm/vmstat.c linux-4.1.39/mm/vmstat.c
---- linux-4.1.39.orig/mm/vmstat.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/vmstat.c 2017-04-18 17:56:30.653398681 +0200
-@@ -226,6 +226,7 @@
- long x;
- long t;
-
-+ preempt_disable_rt();
- x = delta + __this_cpu_read(*p);
-
- t = __this_cpu_read(pcp->stat_threshold);
-@@ -235,6 +236,7 @@
- x = 0;
- }
- __this_cpu_write(*p, x);
-+ preempt_enable_rt();
- }
- EXPORT_SYMBOL(__mod_zone_page_state);
-
-@@ -267,6 +269,7 @@
- s8 __percpu *p = pcp->vm_stat_diff + item;
- s8 v, t;
-
-+ preempt_disable_rt();
- v = __this_cpu_inc_return(*p);
- t = __this_cpu_read(pcp->stat_threshold);
- if (unlikely(v > t)) {
-@@ -275,6 +278,7 @@
- zone_page_state_add(v + overstep, zone, item);
- __this_cpu_write(*p, -overstep);
- }
-+ preempt_enable_rt();
- }
-
- void __inc_zone_page_state(struct page *page, enum zone_stat_item item)
-@@ -289,6 +293,7 @@
- s8 __percpu *p = pcp->vm_stat_diff + item;
- s8 v, t;
-
-+ preempt_disable_rt();
- v = __this_cpu_dec_return(*p);
- t = __this_cpu_read(pcp->stat_threshold);
- if (unlikely(v < - t)) {
-@@ -297,6 +302,7 @@
- zone_page_state_add(v - overstep, zone, item);
- __this_cpu_write(*p, overstep);
- }
-+ preempt_enable_rt();
- }
-
- void __dec_zone_page_state(struct page *page, enum zone_stat_item item)
-diff -Nur linux-4.1.39.orig/mm/workingset.c linux-4.1.39/mm/workingset.c
---- linux-4.1.39.orig/mm/workingset.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/workingset.c 2017-04-18 17:56:30.653398681 +0200
-@@ -264,7 +264,8 @@
- * point where they would still be useful.
- */
-
--struct list_lru workingset_shadow_nodes;
-+struct list_lru __workingset_shadow_nodes;
-+DEFINE_LOCAL_IRQ_LOCK(workingset_shadow_lock);
-
- static unsigned long count_shadow_nodes(struct shrinker *shrinker,
- struct shrink_control *sc)
-@@ -274,9 +275,9 @@
- unsigned long pages;
-
- /* list_lru lock nests inside IRQ-safe mapping->tree_lock */
-- local_irq_disable();
-- shadow_nodes = list_lru_shrink_count(&workingset_shadow_nodes, sc);
-- local_irq_enable();
-+ local_lock_irq(workingset_shadow_lock);
-+ shadow_nodes = list_lru_shrink_count(&__workingset_shadow_nodes, sc);
-+ local_unlock_irq(workingset_shadow_lock);
-
- pages = node_present_pages(sc->nid);
- /*
-@@ -363,9 +364,9 @@
- spin_unlock(&mapping->tree_lock);
- ret = LRU_REMOVED_RETRY;
- out:
-- local_irq_enable();
-+ local_unlock_irq(workingset_shadow_lock);
- cond_resched();
-- local_irq_disable();
-+ local_lock_irq(workingset_shadow_lock);
- spin_lock(lru_lock);
- return ret;
- }
-@@ -376,10 +377,10 @@
- unsigned long ret;
-
- /* list_lru lock nests inside IRQ-safe mapping->tree_lock */
-- local_irq_disable();
-- ret = list_lru_shrink_walk(&workingset_shadow_nodes, sc,
-+ local_lock_irq(workingset_shadow_lock);
-+ ret = list_lru_shrink_walk(&__workingset_shadow_nodes, sc,
- shadow_lru_isolate, NULL);
-- local_irq_enable();
-+ local_unlock_irq(workingset_shadow_lock);
- return ret;
- }
-
-@@ -400,7 +401,7 @@
- {
- int ret;
-
-- ret = list_lru_init_key(&workingset_shadow_nodes, &shadow_nodes_key);
-+ ret = list_lru_init_key(&__workingset_shadow_nodes, &shadow_nodes_key);
- if (ret)
- goto err;
- ret = register_shrinker(&workingset_shadow_shrinker);
-@@ -408,7 +409,7 @@
- goto err_list_lru;
- return 0;
- err_list_lru:
-- list_lru_destroy(&workingset_shadow_nodes);
-+ list_lru_destroy(&__workingset_shadow_nodes);
- err:
- return ret;
- }
-diff -Nur linux-4.1.39.orig/mm/zsmalloc.c linux-4.1.39/mm/zsmalloc.c
---- linux-4.1.39.orig/mm/zsmalloc.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/mm/zsmalloc.c 2017-04-18 17:56:30.653398681 +0200
-@@ -68,6 +68,7 @@
- #include <linux/debugfs.h>
- #include <linux/zsmalloc.h>
- #include <linux/zpool.h>
-+#include <linux/locallock.h>
-
- /*
- * This must be power of 2 and greater than of equal to sizeof(link_free).
-@@ -398,6 +399,7 @@
-
- /* per-cpu VM mapping areas for zspage accesses that cross page boundaries */
- static DEFINE_PER_CPU(struct mapping_area, zs_map_area);
-+static DEFINE_LOCAL_IRQ_LOCK(zs_map_area_lock);
-
- static int is_first_page(struct page *page)
- {
-@@ -1289,7 +1291,7 @@
- class = pool->size_class[class_idx];
- off = obj_idx_to_offset(page, obj_idx, class->size);
-
-- area = &get_cpu_var(zs_map_area);
-+ area = &get_locked_var(zs_map_area_lock, zs_map_area);
- area->vm_mm = mm;
- if (off + class->size <= PAGE_SIZE) {
- /* this object is contained entirely within a page */
-@@ -1342,7 +1344,7 @@
-
- __zs_unmap_object(area, pages, off, class->size);
- }
-- put_cpu_var(zs_map_area);
-+ put_locked_var(zs_map_area_lock, zs_map_area);
- unpin_tag(handle);
- }
- EXPORT_SYMBOL_GPL(zs_unmap_object);
-diff -Nur linux-4.1.39.orig/net/core/dev.c linux-4.1.39/net/core/dev.c
---- linux-4.1.39.orig/net/core/dev.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/core/dev.c 2017-04-18 17:56:30.653398681 +0200
-@@ -184,6 +184,7 @@
- static DEFINE_HASHTABLE(napi_hash, 8);
-
- static seqcount_t devnet_rename_seq;
-+static DEFINE_MUTEX(devnet_rename_mutex);
-
- static inline void dev_base_seq_inc(struct net *net)
- {
-@@ -205,14 +206,14 @@
- static inline void rps_lock(struct softnet_data *sd)
- {
- #ifdef CONFIG_RPS
-- spin_lock(&sd->input_pkt_queue.lock);
-+ raw_spin_lock(&sd->input_pkt_queue.raw_lock);
- #endif
- }
-
- static inline void rps_unlock(struct softnet_data *sd)
- {
- #ifdef CONFIG_RPS
-- spin_unlock(&sd->input_pkt_queue.lock);
-+ raw_spin_unlock(&sd->input_pkt_queue.raw_lock);
- #endif
- }
-
-@@ -852,7 +853,8 @@
- strcpy(name, dev->name);
- rcu_read_unlock();
- if (read_seqcount_retry(&devnet_rename_seq, seq)) {
-- cond_resched();
-+ mutex_lock(&devnet_rename_mutex);
-+ mutex_unlock(&devnet_rename_mutex);
- goto retry;
- }
-
-@@ -1121,20 +1123,17 @@
- if (dev->flags & IFF_UP)
- return -EBUSY;
-
-- write_seqcount_begin(&devnet_rename_seq);
-+ mutex_lock(&devnet_rename_mutex);
-+ __raw_write_seqcount_begin(&devnet_rename_seq);
-
-- if (strncmp(newname, dev->name, IFNAMSIZ) == 0) {
-- write_seqcount_end(&devnet_rename_seq);
-- return 0;
-- }
-+ if (strncmp(newname, dev->name, IFNAMSIZ) == 0)
-+ goto outunlock;
-
- memcpy(oldname, dev->name, IFNAMSIZ);
-
- err = dev_get_valid_name(net, dev, newname);
-- if (err < 0) {
-- write_seqcount_end(&devnet_rename_seq);
-- return err;
-- }
-+ if (err < 0)
-+ goto outunlock;
-
- if (oldname[0] && !strchr(oldname, '%'))
- netdev_info(dev, "renamed from %s\n", oldname);
-@@ -1147,11 +1146,12 @@
- if (ret) {
- memcpy(dev->name, oldname, IFNAMSIZ);
- dev->name_assign_type = old_assign_type;
-- write_seqcount_end(&devnet_rename_seq);
-- return ret;
-+ err = ret;
-+ goto outunlock;
- }
-
-- write_seqcount_end(&devnet_rename_seq);
-+ __raw_write_seqcount_end(&devnet_rename_seq);
-+ mutex_unlock(&devnet_rename_mutex);
-
- netdev_adjacent_rename_links(dev, oldname);
-
-@@ -1172,7 +1172,8 @@
- /* err >= 0 after dev_alloc_name() or stores the first errno */
- if (err >= 0) {
- err = ret;
-- write_seqcount_begin(&devnet_rename_seq);
-+ mutex_lock(&devnet_rename_mutex);
-+ __raw_write_seqcount_begin(&devnet_rename_seq);
- memcpy(dev->name, oldname, IFNAMSIZ);
- memcpy(oldname, newname, IFNAMSIZ);
- dev->name_assign_type = old_assign_type;
-@@ -1185,6 +1186,11 @@
- }
-
- return err;
-+
-+outunlock:
-+ __raw_write_seqcount_end(&devnet_rename_seq);
-+ mutex_unlock(&devnet_rename_mutex);
-+ return err;
- }
-
- /**
-@@ -2214,6 +2220,7 @@
- sd->output_queue_tailp = &q->next_sched;
- raise_softirq_irqoff(NET_TX_SOFTIRQ);
- local_irq_restore(flags);
-+ preempt_check_resched_rt();
- }
-
- void __netif_schedule(struct Qdisc *q)
-@@ -2295,6 +2302,7 @@
- __this_cpu_write(softnet_data.completion_queue, skb);
- raise_softirq_irqoff(NET_TX_SOFTIRQ);
- local_irq_restore(flags);
-+ preempt_check_resched_rt();
- }
- EXPORT_SYMBOL(__dev_kfree_skb_irq);
-
-@@ -2820,7 +2828,11 @@
- * This permits __QDISC___STATE_RUNNING owner to get the lock more
- * often and dequeue packets faster.
- */
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+ contended = true;
-+#else
- contended = qdisc_is_running(q);
-+#endif
- if (unlikely(contended))
- spin_lock(&q->busylock);
-
-@@ -2880,9 +2892,44 @@
- #define skb_update_prio(skb)
- #endif
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+
-+static inline int xmit_rec_read(void)
-+{
-+ return current->xmit_recursion;
-+}
-+
-+static inline void xmit_rec_inc(void)
-+{
-+ current->xmit_recursion++;
-+}
-+
-+static inline void xmit_rec_dec(void)
-+{
-+ current->xmit_recursion--;
-+}
-+
-+#else
-+
- DEFINE_PER_CPU(int, xmit_recursion);
- EXPORT_SYMBOL(xmit_recursion);
-
-+static inline int xmit_rec_read(void)
-+{
-+ return __this_cpu_read(xmit_recursion);
-+}
-+
-+static inline void xmit_rec_inc(void)
-+{
-+ __this_cpu_inc(xmit_recursion);
-+}
-+
-+static inline int xmit_rec_dec(void)
-+{
-+ __this_cpu_dec(xmit_recursion);
-+}
-+#endif
-+
- #define RECURSION_LIMIT 10
-
- /**
-@@ -2984,7 +3031,7 @@
-
- if (txq->xmit_lock_owner != cpu) {
-
-- if (__this_cpu_read(xmit_recursion) > RECURSION_LIMIT)
-+ if (xmit_rec_read() > RECURSION_LIMIT)
- goto recursion_alert;
-
- skb = validate_xmit_skb(skb, dev);
-@@ -2994,9 +3041,9 @@
- HARD_TX_LOCK(dev, txq, cpu);
-
- if (!netif_xmit_stopped(txq)) {
-- __this_cpu_inc(xmit_recursion);
-+ xmit_rec_inc();
- skb = dev_hard_start_xmit(skb, dev, txq, &rc);
-- __this_cpu_dec(xmit_recursion);
-+ xmit_rec_dec();
- if (dev_xmit_complete(rc)) {
- HARD_TX_UNLOCK(dev, txq);
- goto out;
-@@ -3370,6 +3417,7 @@
- rps_unlock(sd);
-
- local_irq_restore(flags);
-+ preempt_check_resched_rt();
-
- atomic_long_inc(&skb->dev->rx_dropped);
- kfree_skb(skb);
-@@ -3388,7 +3436,7 @@
- struct rps_dev_flow voidflow, *rflow = &voidflow;
- int cpu;
-
-- preempt_disable();
-+ migrate_disable();
- rcu_read_lock();
-
- cpu = get_rps_cpu(skb->dev, skb, &rflow);
-@@ -3398,13 +3446,13 @@
- ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail);
-
- rcu_read_unlock();
-- preempt_enable();
-+ migrate_enable();
- } else
- #endif
- {
- unsigned int qtail;
-- ret = enqueue_to_backlog(skb, get_cpu(), &qtail);
-- put_cpu();
-+ ret = enqueue_to_backlog(skb, get_cpu_light(), &qtail);
-+ put_cpu_light();
- }
- return ret;
- }
-@@ -3438,16 +3486,44 @@
-
- trace_netif_rx_ni_entry(skb);
-
-- preempt_disable();
-+ local_bh_disable();
- err = netif_rx_internal(skb);
-- if (local_softirq_pending())
-- do_softirq();
-- preempt_enable();
-+ local_bh_enable();
-
- return err;
- }
- EXPORT_SYMBOL(netif_rx_ni);
-
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+/*
-+ * RT runs ksoftirqd as a real time thread and the root_lock is a
-+ * "sleeping spinlock". If the trylock fails then we can go into an
-+ * infinite loop when ksoftirqd preempted the task which actually
-+ * holds the lock, because we requeue q and raise NET_TX softirq
-+ * causing ksoftirqd to loop forever.
-+ *
-+ * It's safe to use spin_lock on RT here as softirqs run in thread
-+ * context and cannot deadlock against the thread which is holding
-+ * root_lock.
-+ *
-+ * On !RT the trylock might fail, but there we bail out from the
-+ * softirq loop after 10 attempts which we can't do on RT. And the
-+ * task holding root_lock cannot be preempted, so the only downside of
-+ * that trylock is that we need 10 loops to decide that we should have
-+ * given up in the first one :)
-+ */
-+static inline int take_root_lock(spinlock_t *lock)
-+{
-+ spin_lock(lock);
-+ return 1;
-+}
-+#else
-+static inline int take_root_lock(spinlock_t *lock)
-+{
-+ return spin_trylock(lock);
-+}
-+#endif
-+
- static void net_tx_action(struct softirq_action *h)
- {
- struct softnet_data *sd = this_cpu_ptr(&softnet_data);
-@@ -3489,7 +3565,7 @@
- head = head->next_sched;
-
- root_lock = qdisc_lock(q);
-- if (spin_trylock(root_lock)) {
-+ if (take_root_lock(root_lock)) {
- smp_mb__before_atomic();
- clear_bit(__QDISC_STATE_SCHED,
- &q->state);
-@@ -3886,7 +3962,7 @@
- skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) {
- if (skb->dev == dev) {
- __skb_unlink(skb, &sd->input_pkt_queue);
-- kfree_skb(skb);
-+ __skb_queue_tail(&sd->tofree_queue, skb);
- input_queue_head_incr(sd);
- }
- }
-@@ -3895,10 +3971,13 @@
- skb_queue_walk_safe(&sd->process_queue, skb, tmp) {
- if (skb->dev == dev) {
- __skb_unlink(skb, &sd->process_queue);
-- kfree_skb(skb);
-+ __skb_queue_tail(&sd->tofree_queue, skb);
- input_queue_head_incr(sd);
- }
- }
-+
-+ if (!skb_queue_empty(&sd->tofree_queue))
-+ raise_softirq_irqoff(NET_RX_SOFTIRQ);
- }
-
- static int napi_gro_complete(struct sk_buff *skb)
-@@ -4350,6 +4429,7 @@
- sd->rps_ipi_list = NULL;
-
- local_irq_enable();
-+ preempt_check_resched_rt();
-
- /* Send pending IPI's to kick RPS processing on remote cpus. */
- while (remsd) {
-@@ -4363,6 +4443,7 @@
- } else
- #endif
- local_irq_enable();
-+ preempt_check_resched_rt();
- }
-
- static bool sd_has_rps_ipi_waiting(struct softnet_data *sd)
-@@ -4444,9 +4525,11 @@
- local_irq_save(flags);
- ____napi_schedule(this_cpu_ptr(&softnet_data), n);
- local_irq_restore(flags);
-+ preempt_check_resched_rt();
- }
- EXPORT_SYMBOL(__napi_schedule);
-
-+#ifndef CONFIG_PREEMPT_RT_FULL
- /**
- * __napi_schedule_irqoff - schedule for receive
- * @n: entry to schedule
-@@ -4458,6 +4541,7 @@
- ____napi_schedule(this_cpu_ptr(&softnet_data), n);
- }
- EXPORT_SYMBOL(__napi_schedule_irqoff);
-+#endif
-
- void __napi_complete(struct napi_struct *n)
- {
-@@ -4682,13 +4766,21 @@
- struct softnet_data *sd = this_cpu_ptr(&softnet_data);
- unsigned long time_limit = jiffies + 2;
- int budget = netdev_budget;
-+ struct sk_buff_head tofree_q;
-+ struct sk_buff *skb;
- LIST_HEAD(list);
- LIST_HEAD(repoll);
-
-+ __skb_queue_head_init(&tofree_q);
-+
- local_irq_disable();
-+ skb_queue_splice_init(&sd->tofree_queue, &tofree_q);
- list_splice_init(&sd->poll_list, &list);
- local_irq_enable();
-
-+ while ((skb = __skb_dequeue(&tofree_q)))
-+ kfree_skb(skb);
-+
- for (;;) {
- struct napi_struct *n;
-
-@@ -4718,7 +4810,7 @@
- list_splice_tail(&repoll, &list);
- list_splice(&list, &sd->poll_list);
- if (!list_empty(&sd->poll_list))
-- __raise_softirq_irqoff(NET_RX_SOFTIRQ);
-+ __raise_softirq_irqoff_ksoft(NET_RX_SOFTIRQ);
-
- net_rps_action_and_irq_enable(sd);
- }
-@@ -6932,7 +7024,7 @@
- void synchronize_net(void)
- {
- might_sleep();
-- if (rtnl_is_locked())
-+ if (rtnl_is_locked() && !IS_ENABLED(CONFIG_PREEMPT_RT_FULL))
- synchronize_rcu_expedited();
- else
- synchronize_rcu();
-@@ -7173,16 +7265,20 @@
-
- raise_softirq_irqoff(NET_TX_SOFTIRQ);
- local_irq_enable();
-+ preempt_check_resched_rt();
-
- /* Process offline CPU's input_pkt_queue */
- while ((skb = __skb_dequeue(&oldsd->process_queue))) {
- netif_rx_ni(skb);
- input_queue_head_incr(oldsd);
- }
-- while ((skb = skb_dequeue(&oldsd->input_pkt_queue))) {
-+ while ((skb = __skb_dequeue(&oldsd->input_pkt_queue))) {
- netif_rx_ni(skb);
- input_queue_head_incr(oldsd);
- }
-+ while ((skb = __skb_dequeue(&oldsd->tofree_queue))) {
-+ kfree_skb(skb);
-+ }
-
- return NOTIFY_OK;
- }
-@@ -7484,8 +7580,9 @@
- for_each_possible_cpu(i) {
- struct softnet_data *sd = &per_cpu(softnet_data, i);
-
-- skb_queue_head_init(&sd->input_pkt_queue);
-- skb_queue_head_init(&sd->process_queue);
-+ skb_queue_head_init_raw(&sd->input_pkt_queue);
-+ skb_queue_head_init_raw(&sd->process_queue);
-+ skb_queue_head_init_raw(&sd->tofree_queue);
- INIT_LIST_HEAD(&sd->poll_list);
- sd->output_queue_tailp = &sd->output_queue;
- #ifdef CONFIG_RPS
-diff -Nur linux-4.1.39.orig/net/core/skbuff.c linux-4.1.39/net/core/skbuff.c
---- linux-4.1.39.orig/net/core/skbuff.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/core/skbuff.c 2017-04-18 17:56:30.657398836 +0200
-@@ -63,6 +63,7 @@
- #include <linux/errqueue.h>
- #include <linux/prefetch.h>
- #include <linux/if_vlan.h>
-+#include <linux/locallock.h>
-
- #include <net/protocol.h>
- #include <net/dst.h>
-@@ -358,6 +359,8 @@
- };
- static DEFINE_PER_CPU(struct netdev_alloc_cache, netdev_alloc_cache);
- static DEFINE_PER_CPU(struct netdev_alloc_cache, napi_alloc_cache);
-+static DEFINE_LOCAL_IRQ_LOCK(netdev_alloc_lock);
-+static DEFINE_LOCAL_IRQ_LOCK(napi_alloc_cache_lock);
-
- static struct page *__page_frag_refill(struct netdev_alloc_cache *nc,
- gfp_t gfp_mask)
-@@ -435,9 +438,9 @@
- unsigned long flags;
- void *data;
-
-- local_irq_save(flags);
-+ local_lock_irqsave(netdev_alloc_lock, flags);
- data = __alloc_page_frag(&netdev_alloc_cache, fragsz, gfp_mask);
-- local_irq_restore(flags);
-+ local_unlock_irqrestore(netdev_alloc_lock, flags);
- return data;
- }
-
-@@ -456,7 +459,12 @@
-
- static void *__napi_alloc_frag(unsigned int fragsz, gfp_t gfp_mask)
- {
-- return __alloc_page_frag(&napi_alloc_cache, fragsz, gfp_mask);
-+ void *data;
-+
-+ local_lock(napi_alloc_cache_lock);
-+ data = __alloc_page_frag(&napi_alloc_cache, fragsz, gfp_mask);
-+ local_unlock(napi_alloc_cache_lock);
-+ return data;
- }
-
- void *napi_alloc_frag(unsigned int fragsz)
-diff -Nur linux-4.1.39.orig/net/core/sock.c linux-4.1.39/net/core/sock.c
---- linux-4.1.39.orig/net/core/sock.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/core/sock.c 2017-04-18 17:56:30.657398836 +0200
-@@ -2369,12 +2369,11 @@
- if (sk->sk_lock.owned)
- __lock_sock(sk);
- sk->sk_lock.owned = 1;
-- spin_unlock(&sk->sk_lock.slock);
-+ spin_unlock_bh(&sk->sk_lock.slock);
- /*
- * The sk_lock has mutex_lock() semantics here:
- */
- mutex_acquire(&sk->sk_lock.dep_map, subclass, 0, _RET_IP_);
-- local_bh_enable();
- }
- EXPORT_SYMBOL(lock_sock_nested);
-
-diff -Nur linux-4.1.39.orig/net/ipv4/icmp.c linux-4.1.39/net/ipv4/icmp.c
---- linux-4.1.39.orig/net/ipv4/icmp.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/ipv4/icmp.c 2017-04-18 17:56:30.657398836 +0200
-@@ -69,6 +69,7 @@
- #include <linux/jiffies.h>
- #include <linux/kernel.h>
- #include <linux/fcntl.h>
-+#include <linux/sysrq.h>
- #include <linux/socket.h>
- #include <linux/in.h>
- #include <linux/inet.h>
-@@ -77,6 +78,7 @@
- #include <linux/string.h>
- #include <linux/netfilter_ipv4.h>
- #include <linux/slab.h>
-+#include <linux/locallock.h>
- #include <net/snmp.h>
- #include <net/ip.h>
- #include <net/route.h>
-@@ -203,6 +205,8 @@
- *
- * On SMP we have one ICMP socket per-cpu.
- */
-+static DEFINE_LOCAL_IRQ_LOCK(icmp_sk_lock);
-+
- static struct sock *icmp_sk(struct net *net)
- {
- return *this_cpu_ptr(net->ipv4.icmp_sk);
-@@ -214,12 +218,14 @@
-
- local_bh_disable();
-
-+ local_lock(icmp_sk_lock);
- sk = icmp_sk(net);
-
- if (unlikely(!spin_trylock(&sk->sk_lock.slock))) {
- /* This can happen if the output path signals a
- * dst_link_failure() for an outgoing ICMP packet.
- */
-+ local_unlock(icmp_sk_lock);
- local_bh_enable();
- return NULL;
- }
-@@ -229,6 +235,7 @@
- static inline void icmp_xmit_unlock(struct sock *sk)
- {
- spin_unlock_bh(&sk->sk_lock.slock);
-+ local_unlock(icmp_sk_lock);
- }
-
- int sysctl_icmp_msgs_per_sec __read_mostly = 1000;
-@@ -356,6 +363,7 @@
- struct sock *sk;
- struct sk_buff *skb;
-
-+ local_lock(icmp_sk_lock);
- sk = icmp_sk(dev_net((*rt)->dst.dev));
- if (ip_append_data(sk, fl4, icmp_glue_bits, icmp_param,
- icmp_param->data_len+icmp_param->head_len,
-@@ -378,6 +386,7 @@
- skb->ip_summed = CHECKSUM_NONE;
- ip_push_pending_frames(sk, fl4);
- }
-+ local_unlock(icmp_sk_lock);
- }
-
- /*
-@@ -867,6 +876,30 @@
- }
-
- /*
-+ * 32bit and 64bit have different timestamp length, so we check for
-+ * the cookie at offset 20 and verify it is repeated at offset 50
-+ */
-+#define CO_POS0 20
-+#define CO_POS1 50
-+#define CO_SIZE sizeof(int)
-+#define ICMP_SYSRQ_SIZE 57
-+
-+/*
-+ * We got a ICMP_SYSRQ_SIZE sized ping request. Check for the cookie
-+ * pattern and if it matches send the next byte as a trigger to sysrq.
-+ */
-+static void icmp_check_sysrq(struct net *net, struct sk_buff *skb)
-+{
-+ int cookie = htonl(net->ipv4.sysctl_icmp_echo_sysrq);
-+ char *p = skb->data;
-+
-+ if (!memcmp(&cookie, p + CO_POS0, CO_SIZE) &&
-+ !memcmp(&cookie, p + CO_POS1, CO_SIZE) &&
-+ p[CO_POS0 + CO_SIZE] == p[CO_POS1 + CO_SIZE])
-+ handle_sysrq(p[CO_POS0 + CO_SIZE]);
-+}
-+
-+/*
- * Handle ICMP_ECHO ("ping") requests.
- *
- * RFC 1122: 3.2.2.6 MUST have an echo server that answers ICMP echo
-@@ -893,6 +926,11 @@
- icmp_param.data_len = skb->len;
- icmp_param.head_len = sizeof(struct icmphdr);
- icmp_reply(&icmp_param, skb);
-+
-+ if (skb->len == ICMP_SYSRQ_SIZE &&
-+ net->ipv4.sysctl_icmp_echo_sysrq) {
-+ icmp_check_sysrq(net, skb);
-+ }
- }
- /* should there be an ICMP stat for ignored echos? */
- return true;
-diff -Nur linux-4.1.39.orig/net/ipv4/sysctl_net_ipv4.c linux-4.1.39/net/ipv4/sysctl_net_ipv4.c
---- linux-4.1.39.orig/net/ipv4/sysctl_net_ipv4.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/ipv4/sysctl_net_ipv4.c 2017-04-18 17:56:30.657398836 +0200
-@@ -779,6 +779,13 @@
- .proc_handler = proc_dointvec
- },
- {
-+ .procname = "icmp_echo_sysrq",
-+ .data = &init_net.ipv4.sysctl_icmp_echo_sysrq,
-+ .maxlen = sizeof(int),
-+ .mode = 0644,
-+ .proc_handler = proc_dointvec
-+ },
-+ {
- .procname = "icmp_ignore_bogus_error_responses",
- .data = &init_net.ipv4.sysctl_icmp_ignore_bogus_error_responses,
- .maxlen = sizeof(int),
-diff -Nur linux-4.1.39.orig/net/ipv4/tcp_ipv4.c linux-4.1.39/net/ipv4/tcp_ipv4.c
---- linux-4.1.39.orig/net/ipv4/tcp_ipv4.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/ipv4/tcp_ipv4.c 2017-04-18 17:56:30.657398836 +0200
-@@ -62,6 +62,7 @@
- #include <linux/init.h>
- #include <linux/times.h>
- #include <linux/slab.h>
-+#include <linux/locallock.h>
-
- #include <net/net_namespace.h>
- #include <net/icmp.h>
-@@ -563,6 +564,7 @@
- }
- EXPORT_SYMBOL(tcp_v4_send_check);
-
-+static DEFINE_LOCAL_IRQ_LOCK(tcp_sk_lock);
- /*
- * This routine will send an RST to the other tcp.
- *
-@@ -684,10 +686,13 @@
- arg.bound_dev_if = sk->sk_bound_dev_if;
-
- arg.tos = ip_hdr(skb)->tos;
-+
-+ local_lock(tcp_sk_lock);
- ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk),
- skb, &TCP_SKB_CB(skb)->header.h4.opt,
- ip_hdr(skb)->saddr, ip_hdr(skb)->daddr,
- &arg, arg.iov[0].iov_len);
-+ local_unlock(tcp_sk_lock);
-
- TCP_INC_STATS_BH(net, TCP_MIB_OUTSEGS);
- TCP_INC_STATS_BH(net, TCP_MIB_OUTRSTS);
-@@ -769,10 +774,12 @@
- if (oif)
- arg.bound_dev_if = oif;
- arg.tos = tos;
-+ local_lock(tcp_sk_lock);
- ip_send_unicast_reply(*this_cpu_ptr(net->ipv4.tcp_sk),
- skb, &TCP_SKB_CB(skb)->header.h4.opt,
- ip_hdr(skb)->saddr, ip_hdr(skb)->daddr,
- &arg, arg.iov[0].iov_len);
-+ local_unlock(tcp_sk_lock);
-
- TCP_INC_STATS_BH(net, TCP_MIB_OUTSEGS);
- }
-diff -Nur linux-4.1.39.orig/net/mac80211/rx.c linux-4.1.39/net/mac80211/rx.c
---- linux-4.1.39.orig/net/mac80211/rx.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/mac80211/rx.c 2017-04-18 17:56:30.657398836 +0200
-@@ -3580,7 +3580,7 @@
- struct ieee80211_supported_band *sband;
- struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
-
-- WARN_ON_ONCE(softirq_count() == 0);
-+ WARN_ON_ONCE_NONRT(softirq_count() == 0);
-
- if (WARN_ON(status->band >= IEEE80211_NUM_BANDS))
- goto drop;
-diff -Nur linux-4.1.39.orig/net/netfilter/core.c linux-4.1.39/net/netfilter/core.c
---- linux-4.1.39.orig/net/netfilter/core.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/netfilter/core.c 2017-04-18 17:56:30.657398836 +0200
-@@ -22,11 +22,17 @@
- #include <linux/proc_fs.h>
- #include <linux/mutex.h>
- #include <linux/slab.h>
-+#include <linux/locallock.h>
- #include <net/net_namespace.h>
- #include <net/sock.h>
-
- #include "nf_internals.h"
-
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+DEFINE_LOCAL_IRQ_LOCK(xt_write_lock);
-+EXPORT_PER_CPU_SYMBOL(xt_write_lock);
-+#endif
-+
- static DEFINE_MUTEX(afinfo_mutex);
-
- const struct nf_afinfo __rcu *nf_afinfo[NFPROTO_NUMPROTO] __read_mostly;
-diff -Nur linux-4.1.39.orig/net/packet/af_packet.c linux-4.1.39/net/packet/af_packet.c
---- linux-4.1.39.orig/net/packet/af_packet.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/packet/af_packet.c 2017-04-18 17:56:30.657398836 +0200
-@@ -63,6 +63,7 @@
- #include <linux/if_packet.h>
- #include <linux/wireless.h>
- #include <linux/kernel.h>
-+#include <linux/delay.h>
- #include <linux/kmod.h>
- #include <linux/slab.h>
- #include <linux/vmalloc.h>
-@@ -698,7 +699,7 @@
- if (BLOCK_NUM_PKTS(pbd)) {
- while (atomic_read(&pkc->blk_fill_in_prog)) {
- /* Waiting for skb_copy_bits to finish... */
-- cpu_relax();
-+ cpu_chill();
- }
- }
-
-@@ -960,7 +961,7 @@
- if (!(status & TP_STATUS_BLK_TMO)) {
- while (atomic_read(&pkc->blk_fill_in_prog)) {
- /* Waiting for skb_copy_bits to finish... */
-- cpu_relax();
-+ cpu_chill();
- }
- }
- prb_close_block(pkc, pbd, po, status);
-diff -Nur linux-4.1.39.orig/net/rds/ib_rdma.c linux-4.1.39/net/rds/ib_rdma.c
---- linux-4.1.39.orig/net/rds/ib_rdma.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/rds/ib_rdma.c 2017-04-18 17:56:30.657398836 +0200
-@@ -34,6 +34,7 @@
- #include <linux/slab.h>
- #include <linux/rculist.h>
- #include <linux/llist.h>
-+#include <linux/delay.h>
-
- #include "rds.h"
- #include "ib.h"
-@@ -286,7 +287,7 @@
- for_each_online_cpu(cpu) {
- flag = &per_cpu(clean_list_grace, cpu);
- while (test_bit(CLEAN_LIST_BUSY_BIT, flag))
-- cpu_relax();
-+ cpu_chill();
- }
- }
-
-diff -Nur linux-4.1.39.orig/net/sched/sch_generic.c linux-4.1.39/net/sched/sch_generic.c
---- linux-4.1.39.orig/net/sched/sch_generic.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/sched/sch_generic.c 2017-04-18 17:56:30.657398836 +0200
-@@ -899,7 +899,7 @@
- /* Wait for outstanding qdisc_run calls. */
- list_for_each_entry(dev, head, close_list)
- while (some_qdisc_is_busy(dev))
-- yield();
-+ msleep(1);
- }
-
- void dev_deactivate(struct net_device *dev)
-diff -Nur linux-4.1.39.orig/net/sunrpc/svc_xprt.c linux-4.1.39/net/sunrpc/svc_xprt.c
---- linux-4.1.39.orig/net/sunrpc/svc_xprt.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/net/sunrpc/svc_xprt.c 2017-04-18 17:56:30.657398836 +0200
-@@ -341,7 +341,7 @@
- goto out;
- }
-
-- cpu = get_cpu();
-+ cpu = get_cpu_light();
- pool = svc_pool_for_cpu(xprt->xpt_server, cpu);
-
- atomic_long_inc(&pool->sp_stats.packets);
-@@ -377,7 +377,7 @@
-
- atomic_long_inc(&pool->sp_stats.threads_woken);
- wake_up_process(rqstp->rq_task);
-- put_cpu();
-+ put_cpu_light();
- goto out;
- }
- rcu_read_unlock();
-@@ -398,7 +398,7 @@
- goto redo_search;
- }
- rqstp = NULL;
-- put_cpu();
-+ put_cpu_light();
- out:
- trace_svc_xprt_do_enqueue(xprt, rqstp);
- }
-diff -Nur linux-4.1.39.orig/scripts/mkcompile_h linux-4.1.39/scripts/mkcompile_h
---- linux-4.1.39.orig/scripts/mkcompile_h 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/scripts/mkcompile_h 2017-04-18 17:56:30.657398836 +0200
-@@ -4,7 +4,8 @@
- ARCH=$2
- SMP=$3
- PREEMPT=$4
--CC=$5
-+RT=$5
-+CC=$6
-
- vecho() { [ "${quiet}" = "silent_" ] || echo "$@" ; }
-
-@@ -57,6 +58,7 @@
- CONFIG_FLAGS=""
- if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi
- if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi
-+if [ -n "$RT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS RT"; fi
- UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
-
- # Truncate to maximum length
-diff -Nur linux-4.1.39.orig/sound/core/pcm_native.c linux-4.1.39/sound/core/pcm_native.c
---- linux-4.1.39.orig/sound/core/pcm_native.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/sound/core/pcm_native.c 2017-04-18 17:56:30.661398992 +0200
-@@ -135,7 +135,7 @@
- void snd_pcm_stream_lock_irq(struct snd_pcm_substream *substream)
- {
- if (!substream->pcm->nonatomic)
-- local_irq_disable();
-+ local_irq_disable_nort();
- snd_pcm_stream_lock(substream);
- }
- EXPORT_SYMBOL_GPL(snd_pcm_stream_lock_irq);
-@@ -150,7 +150,7 @@
- {
- snd_pcm_stream_unlock(substream);
- if (!substream->pcm->nonatomic)
-- local_irq_enable();
-+ local_irq_enable_nort();
- }
- EXPORT_SYMBOL_GPL(snd_pcm_stream_unlock_irq);
-
-@@ -158,7 +158,7 @@
- {
- unsigned long flags = 0;
- if (!substream->pcm->nonatomic)
-- local_irq_save(flags);
-+ local_irq_save_nort(flags);
- snd_pcm_stream_lock(substream);
- return flags;
- }
-@@ -176,7 +176,7 @@
- {
- snd_pcm_stream_unlock(substream);
- if (!substream->pcm->nonatomic)
-- local_irq_restore(flags);
-+ local_irq_restore_nort(flags);
- }
- EXPORT_SYMBOL_GPL(snd_pcm_stream_unlock_irqrestore);
-
-diff -Nur linux-4.1.39.orig/sound/soc/intel/atom/sst/sst.c linux-4.1.39/sound/soc/intel/atom/sst/sst.c
---- linux-4.1.39.orig/sound/soc/intel/atom/sst/sst.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/sound/soc/intel/atom/sst/sst.c 2017-04-18 17:56:30.661398992 +0200
-@@ -368,8 +368,8 @@
- * initialize by FW or driver when firmware is loaded
- */
- spin_lock_irqsave(&ctx->ipc_spin_lock, irq_flags);
-- sst_shim_write64(shim, SST_IMRX, shim_regs->imrx),
-- sst_shim_write64(shim, SST_CSR, shim_regs->csr),
-+ sst_shim_write64(shim, SST_IMRX, shim_regs->imrx);
-+ sst_shim_write64(shim, SST_CSR, shim_regs->csr);
- spin_unlock_irqrestore(&ctx->ipc_spin_lock, irq_flags);
- }
-
-diff -Nur linux-4.1.39.orig/virt/kvm/async_pf.c linux-4.1.39/virt/kvm/async_pf.c
---- linux-4.1.39.orig/virt/kvm/async_pf.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/virt/kvm/async_pf.c 2017-04-18 17:56:30.661398992 +0200
-@@ -94,8 +94,8 @@
-
- trace_kvm_async_pf_completed(addr, gva);
-
-- if (waitqueue_active(&vcpu->wq))
-- wake_up_interruptible(&vcpu->wq);
-+ if (swaitqueue_active(&vcpu->wq))
-+ swait_wake_interruptible(&vcpu->wq);
-
- mmput(mm);
- kvm_put_kvm(vcpu->kvm);
-diff -Nur linux-4.1.39.orig/virt/kvm/kvm_main.c linux-4.1.39/virt/kvm/kvm_main.c
---- linux-4.1.39.orig/virt/kvm/kvm_main.c 2017-03-13 21:04:36.000000000 +0100
-+++ linux-4.1.39/virt/kvm/kvm_main.c 2017-04-18 17:56:30.661398992 +0200
-@@ -220,7 +220,7 @@
- vcpu->kvm = kvm;
- vcpu->vcpu_id = id;
- vcpu->pid = NULL;
-- init_waitqueue_head(&vcpu->wq);
-+ init_swait_head(&vcpu->wq);
- kvm_async_pf_vcpu_init(vcpu);
-
- page = alloc_page(GFP_KERNEL | __GFP_ZERO);
-@@ -1782,7 +1782,7 @@
- void kvm_vcpu_block(struct kvm_vcpu *vcpu)
- {
- ktime_t start, cur;
-- DEFINE_WAIT(wait);
-+ DEFINE_SWAITER(wait);
- bool waited = false;
-
- start = cur = ktime_get();
-@@ -1803,7 +1803,7 @@
- }
-
- for (;;) {
-- prepare_to_wait(&vcpu->wq, &wait, TASK_INTERRUPTIBLE);
-+ swait_prepare(&vcpu->wq, &wait, TASK_INTERRUPTIBLE);
-
- if (kvm_vcpu_check_block(vcpu) < 0)
- break;
-@@ -1812,7 +1812,7 @@
- schedule();
- }
-
-- finish_wait(&vcpu->wq, &wait);
-+ swait_finish(&vcpu->wq, &wait);
- cur = ktime_get();
-
- out:
-@@ -1828,11 +1828,11 @@
- {
- int me;
- int cpu = vcpu->cpu;
-- wait_queue_head_t *wqp;
-+ struct swait_head *wqp;
-
- wqp = kvm_arch_vcpu_wq(vcpu);
-- if (waitqueue_active(wqp)) {
-- wake_up_interruptible(wqp);
-+ if (swaitqueue_active(wqp)) {
-+ swait_wake_interruptible(wqp);
- ++vcpu->stat.halt_wakeup;
- }
-
-@@ -1933,7 +1933,7 @@
- continue;
- if (vcpu == me)
- continue;
-- if (waitqueue_active(&vcpu->wq) && !kvm_arch_vcpu_runnable(vcpu))
-+ if (swaitqueue_active(&vcpu->wq) && !kvm_arch_vcpu_runnable(vcpu))
- continue;
- if (!kvm_vcpu_eligible_for_directed_yield(vcpu))
- continue;
diff --git a/target/linux/patches/4.1.51/regmap-default-on.patch b/target/linux/patches/4.1.51/regmap-default-on.patch
deleted file mode 100644
index 8d72224bf..000000000
--- a/target/linux/patches/4.1.51/regmap-default-on.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff -Nur linux-4.1.6.orig/drivers/base/regmap/Kconfig linux-4.1.6/drivers/base/regmap/Kconfig
---- linux-4.1.6.orig/drivers/base/regmap/Kconfig 2015-08-17 05:52:51.000000000 +0200
-+++ linux-4.1.6/drivers/base/regmap/Kconfig 2015-08-29 22:18:50.329683337 +0200
-@@ -3,7 +3,7 @@
- # subsystems should select the appropriate symbols.
-
- config REGMAP
-- default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ)
-+ default y
- select LZO_COMPRESS
- select LZO_DECOMPRESS
- select IRQ_DOMAIN if REGMAP_IRQ
-@@ -29,3 +29,4 @@
-
- config REGMAP_IRQ
- bool
-+ default y
diff --git a/target/linux/patches/4.1.51/remove-warn.patch b/target/linux/patches/4.1.51/remove-warn.patch
deleted file mode 100644
index 1f89c710d..000000000
--- a/target/linux/patches/4.1.51/remove-warn.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Nur linux-4.1.10.orig/drivers/media/v4l2-core/videobuf2-core.c linux-4.1.10/drivers/media/v4l2-core/videobuf2-core.c
---- linux-4.1.10.orig/drivers/media/v4l2-core/videobuf2-core.c 2015-10-03 13:49:38.000000000 +0200
-+++ linux-4.1.10/drivers/media/v4l2-core/videobuf2-core.c 2015-10-18 18:18:47.000000000 +0200
-@@ -1245,7 +1245,6 @@
- return;
-
- __check_once = true;
-- __WARN();
-
- pr_warn_once("use of bytesused == 0 is deprecated and will be removed in the future,\n");
- if (vb->vb2_queue->allow_zero_bytesused)
diff --git a/target/linux/patches/4.1.51/startup.patch b/target/linux/patches/4.1.51/startup.patch
deleted file mode 100644
index d396b75e4..000000000
--- a/target/linux/patches/4.1.51/startup.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff -Nur linux-3.13.3.orig/init/main.c linux-3.13.3/init/main.c
---- linux-3.13.3.orig/init/main.c 2014-02-13 23:00:14.000000000 +0100
-+++ linux-3.13.3/init/main.c 2014-02-17 11:35:14.000000000 +0100
-@@ -916,6 +917,8 @@
- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
- pr_err("Warning: unable to open an initial console.\n");
-
-+ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
-+
- (void) sys_dup(0);
- (void) sys_dup(0);
- /*
-diff -Nur linux-3.13.6.orig/init/initramfs.c linux-3.13.6/init/initramfs.c
---- linux-3.13.6.orig/init/initramfs.c 2014-03-07 07:07:02.000000000 +0100
-+++ linux-3.13.6/init/initramfs.c 2014-03-15 12:11:31.882731916 +0100
-@@ -622,6 +622,9 @@
- */
- load_default_modules();
- }
-+#ifdef CONFIG_DEVTMPFS_MOUNT
-+ devtmpfs_mount("dev");
-+#endif
- return 0;
- }
- rootfs_initcall(populate_rootfs);
-diff -Nur linux-3.13.6.orig/init/main.c linux-3.13.6/init/main.c
---- linux-3.13.6.orig/init/main.c 2014-03-07 07:07:02.000000000 +0100
-+++ linux-3.13.6/init/main.c 2014-03-15 12:13:16.459024452 +0100
-@@ -924,7 +924,7 @@
- */
-
- if (!ramdisk_execute_command)
-- ramdisk_execute_command = "/init";
-+ ramdisk_execute_command = "/sbin/init";
-
- if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
- ramdisk_execute_command = NULL;
diff --git a/target/linux/patches/4.1.51/use-gawk.patch b/target/linux/patches/4.1.51/use-gawk.patch
deleted file mode 100644
index 5b312589d..000000000
--- a/target/linux/patches/4.1.51/use-gawk.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -Nur linux-4.1.20.orig/Makefile linux-4.1.20/Makefile
---- linux-4.1.20.orig/Makefile 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/Makefile 2016-04-02 13:24:23.000000000 +0200
-@@ -359,7 +359,7 @@
- STRIP = $(CROSS_COMPILE)strip
- OBJCOPY = $(CROSS_COMPILE)objcopy
- OBJDUMP = $(CROSS_COMPILE)objdump
--AWK = awk
-+AWK = gawk
- GENKSYMS = scripts/genksyms/genksyms
- INSTALLKERNEL := installkernel
- DEPMOD = /sbin/depmod
-diff -Nur linux-4.1.20.orig/lib/raid6/test/Makefile linux-4.1.20/lib/raid6/test/Makefile
---- linux-4.1.20.orig/lib/raid6/test/Makefile 2016-03-17 19:11:03.000000000 +0100
-+++ linux-4.1.20/lib/raid6/test/Makefile 2016-04-02 09:45:15.000000000 +0200
-@@ -7,7 +7,7 @@
- OPTFLAGS = -O2 # Adjust as desired
- CFLAGS = -I.. -I ../../../include -g $(OPTFLAGS)
- LD = ld
--AWK = awk -f
-+AWK = gawk -f
- AR = ar
- RANLIB = ranlib
- OBJS = int1.o int2.o int4.o int8.o int16.o int32.o recov.o algos.o tables.o
diff --git a/target/linux/patches/4.14.44/alpha-remove-coff.patch b/target/linux/patches/4.14.334/alpha-remove-coff.patch
index 51b7bcc14..51b7bcc14 100644
--- a/target/linux/patches/4.14.44/alpha-remove-coff.patch
+++ b/target/linux/patches/4.14.334/alpha-remove-coff.patch
diff --git a/target/linux/patches/4.14.44/arm-nommu.patch b/target/linux/patches/4.14.334/arm-nommu.patch
index b91aaf712..b91aaf712 100644
--- a/target/linux/patches/4.14.44/arm-nommu.patch
+++ b/target/linux/patches/4.14.334/arm-nommu.patch
diff --git a/target/linux/patches/4.14.44/arm-thumb2.patch b/target/linux/patches/4.14.334/arm-thumb2.patch
index d8d1f4984..d8d1f4984 100644
--- a/target/linux/patches/4.14.44/arm-thumb2.patch
+++ b/target/linux/patches/4.14.334/arm-thumb2.patch
diff --git a/target/linux/patches/4.14.44/h8300.patch b/target/linux/patches/4.14.334/h8300.patch
index 836a414e5..836a414e5 100644
--- a/target/linux/patches/4.14.44/h8300.patch
+++ b/target/linux/patches/4.14.334/h8300.patch
diff --git a/target/linux/patches/4.14.44/initramfs-nosizelimit.patch b/target/linux/patches/4.14.334/initramfs-nosizelimit.patch
index 0e524c1d9..0e524c1d9 100644
--- a/target/linux/patches/4.14.44/initramfs-nosizelimit.patch
+++ b/target/linux/patches/4.14.334/initramfs-nosizelimit.patch
diff --git a/target/linux/patches/4.14.44/microblaze-sigaltstack.patch b/target/linux/patches/4.14.334/microblaze-sigaltstack.patch
index 80413890a..80413890a 100644
--- a/target/linux/patches/4.14.44/microblaze-sigaltstack.patch
+++ b/target/linux/patches/4.14.334/microblaze-sigaltstack.patch
diff --git a/target/linux/patches/4.14.44/or1k-more-ram.patch b/target/linux/patches/4.14.334/or1k-more-ram.patch
index de848c838..de848c838 100644
--- a/target/linux/patches/4.14.44/or1k-more-ram.patch
+++ b/target/linux/patches/4.14.334/or1k-more-ram.patch
diff --git a/target/linux/patches/4.14.334/startup.patch b/target/linux/patches/4.14.334/startup.patch
new file mode 100644
index 000000000..f52660a95
--- /dev/null
+++ b/target/linux/patches/4.14.334/startup.patch
@@ -0,0 +1,25 @@
+diff -Nur linux-4.14.24.orig/init/initramfs.c linux-4.14.24/init/initramfs.c
+--- linux-4.14.24.orig/init/initramfs.c 2018-03-03 10:24:39.000000000 +0100
++++ linux-4.14.24/init/initramfs.c 2018-03-08 06:51:14.808479805 +0100
+@@ -659,6 +659,9 @@
+ * us a chance to load before device_initcalls.
+ */
+ load_default_modules();
++#ifdef CONFIG_DEVTMPFS_MOUNT
++ devtmpfs_mount("dev");
++#endif
+
+ return 0;
+ }
+diff -Nur linux-4.14.24.orig/init/main.c linux-4.14.24/init/main.c
+--- linux-4.14.24.orig/init/main.c 2018-03-03 10:24:39.000000000 +0100
++++ linux-4.14.24/init/main.c 2018-03-08 06:15:19.961419100 +0100
+@@ -1069,6 +1069,8 @@
+ if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
+ pr_err("Warning: unable to open an initial console.\n");
+
++ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
++
+ (void) sys_dup(0);
+ (void) sys_dup(0);
+ /*
diff --git a/target/linux/patches/4.14.44/vdso2.patch b/target/linux/patches/4.14.334/vdso2.patch
index b6c32f31b..b6c32f31b 100644
--- a/target/linux/patches/4.14.44/vdso2.patch
+++ b/target/linux/patches/4.14.334/vdso2.patch
diff --git a/target/linux/patches/4.14.44/startup.patch b/target/linux/patches/4.14.44/startup.patch
deleted file mode 100644
index bac354728..000000000
--- a/target/linux/patches/4.14.44/startup.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -Nur linux-4.14.24.orig/init/initramfs.c linux-4.14.24/init/initramfs.c
---- linux-4.14.24.orig/init/initramfs.c 2018-03-03 10:24:39.000000000 +0100
-+++ linux-4.14.24/init/initramfs.c 2018-03-08 06:51:14.808479805 +0100
-@@ -659,6 +659,9 @@
- * us a chance to load before device_initcalls.
- */
- load_default_modules();
-+#ifdef CONFIG_DEVTMPFS_MOUNT
-+ devtmpfs_mount("dev");
-+#endif
-
- return 0;
- }
-diff -Nur linux-4.14.24.orig/init/main.c linux-4.14.24/init/main.c
---- linux-4.14.24.orig/init/main.c 2018-03-03 10:24:39.000000000 +0100
-+++ linux-4.14.24/init/main.c 2018-03-08 06:15:19.961419100 +0100
-@@ -1069,6 +1069,8 @@
- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
- pr_err("Warning: unable to open an initial console.\n");
-
-+ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
-+
- (void) sys_dup(0);
- (void) sys_dup(0);
- /*
-@@ -1077,7 +1079,7 @@
- */
-
- if (!ramdisk_execute_command)
-- ramdisk_execute_command = "/init";
-+ ramdisk_execute_command = "/sbin/init";
-
- if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
- ramdisk_execute_command = NULL;
diff --git a/target/linux/patches/4.16.17/startup.patch b/target/linux/patches/4.16.17/startup.patch
index 8115b2cc6..e8de6cd4b 100644
--- a/target/linux/patches/4.16.17/startup.patch
+++ b/target/linux/patches/4.16.17/startup.patch
@@ -23,12 +23,3 @@ diff -Nur linux-4.15.13.orig/init/main.c linux-4.15.13/init/main.c
(void) sys_dup(0);
(void) sys_dup(0);
/*
-@@ -1083,7 +1085,7 @@
- */
-
- if (!ramdisk_execute_command)
-- ramdisk_execute_command = "/init";
-+ ramdisk_execute_command = "/sbin/init";
-
- if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
- ramdisk_execute_command = NULL;
diff --git a/target/linux/patches/4.19.26/startup.patch b/target/linux/patches/4.19.26/startup.patch
deleted file mode 100644
index dd27de856..000000000
--- a/target/linux/patches/4.19.26/startup.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -Nur linux-4.17.orig/init/initramfs.c linux-4.17/init/initramfs.c
---- linux-4.17.orig/init/initramfs.c 2018-06-03 23:15:21.000000000 +0200
-+++ linux-4.17/init/initramfs.c 2018-06-10 17:01:16.000000000 +0200
-@@ -659,6 +659,9 @@
- * us a chance to load before device_initcalls.
- */
- load_default_modules();
-+#ifdef CONFIG_DEVTMPFS_MOUNT
-+ devtmpfs_mount("dev");
-+#endif
-
- return 0;
- }
-diff -Nur linux-4.17.orig/init/main.c linux-4.17/init/main.c
---- linux-4.17.orig/init/main.c 2018-06-03 23:15:21.000000000 +0200
-+++ linux-4.17/init/main.c 2018-06-10 17:01:52.000000000 +0200
-@@ -1138,6 +1138,8 @@
- if (ksys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
- pr_err("Warning: unable to open an initial console.\n");
-
-+ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
-+
- (void) ksys_dup(0);
- (void) ksys_dup(0);
- /*
-@@ -1146,7 +1148,7 @@
- */
-
- if (!ramdisk_execute_command)
-- ramdisk_execute_command = "/init";
-+ ramdisk_execute_command = "/sbin/init";
-
- if (ksys_access((const char __user *)
- ramdisk_execute_command, 0) != 0) {
diff --git a/target/linux/patches/4.19.26/arc.patch b/target/linux/patches/4.19.310/arc.patch
index 20810ce64..20810ce64 100644
--- a/target/linux/patches/4.19.26/arc.patch
+++ b/target/linux/patches/4.19.310/arc.patch
diff --git a/target/linux/patches/4.19.310/arm-nommu.patch b/target/linux/patches/4.19.310/arm-nommu.patch
new file mode 100644
index 000000000..d23d3f4eb
--- /dev/null
+++ b/target/linux/patches/4.19.310/arm-nommu.patch
@@ -0,0 +1,81 @@
+diff -Nur linux-4.19.213.orig/arch/arm/include/asm/mach/map.h linux-4.19.213/arch/arm/include/asm/mach/map.h
+--- linux-4.19.213.orig/arch/arm/include/asm/mach/map.h 2021-10-20 11:23:05.000000000 +0200
++++ linux-4.19.213/arch/arm/include/asm/mach/map.h 2021-10-26 09:16:01.660445624 +0200
+@@ -62,6 +62,7 @@
+ #else
+ #define iotable_init(map,num) do { } while (0)
+ #define vm_reserve_area_early(a,s,c) do { } while (0)
++#define debug_ll_io_init() do { } while (0)
+ #endif
+
+ #endif
+diff -Nur linux-4.19.213.orig/arch/arm/Kconfig linux-4.19.213/arch/arm/Kconfig
+--- linux-4.19.213.orig/arch/arm/Kconfig 2021-10-20 11:23:05.000000000 +0200
++++ linux-4.19.213/arch/arm/Kconfig 2021-10-26 09:16:01.656445624 +0200
+@@ -353,6 +353,17 @@
+ select SPARSE_IRQ
+ select USE_OF
+
++config ARM_SINGLE_ARCH_VERSATILE
++ bool "ARM Ltd. Versatile family"
++ depends on !MMU
++ select AUTO_ZRELADDR
++ select CLKSRC_OF
++ select COMMON_CLK
++ select GENERIC_CLOCKEVENTS
++ select GPIOLIB
++ select SPARSE_IRQ
++ select USE_OF
++
+ config ARCH_EBSA110
+ bool "EBSA-110"
+ select ARCH_USES_GETTIMEOFFSET
+diff -Nur linux-4.19.213.orig/arch/arm/Kconfig.debug linux-4.19.213/arch/arm/Kconfig.debug
+--- linux-4.19.213.orig/arch/arm/Kconfig.debug 2021-10-20 11:23:05.000000000 +0200
++++ linux-4.19.213/arch/arm/Kconfig.debug 2021-10-26 09:16:01.660445624 +0200
+@@ -1852,7 +1852,8 @@
+ config UNCOMPRESS_INCLUDE
+ string
+ default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
+- PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
++ PLAT_SAMSUNG || ARM_SINGLE_ARMV7M || \
++ ARM_SINGLE_ARCH_VERSATILE
+ default "mach/uncompress.h"
+
+ config EARLY_PRINTK
+diff -Nur linux-4.19.213.orig/arch/arm/mach-versatile/Kconfig linux-4.19.213/arch/arm/mach-versatile/Kconfig
+--- linux-4.19.213.orig/arch/arm/mach-versatile/Kconfig 2021-10-20 11:23:05.000000000 +0200
++++ linux-4.19.213/arch/arm/mach-versatile/Kconfig 2021-10-26 09:16:01.660445624 +0200
+@@ -1,7 +1,8 @@
+ # SPDX-License-Identifier: GPL-2.0
+ config ARCH_VERSATILE
+- bool "ARM Ltd. Versatile family"
+- depends on ARCH_MULTI_V5
++ bool "ARM Ltd. Versatile family" if ARCH_MULTI_V5
++ depends on ARCH_MULTI_V5 || ARM_SINGLE_ARCH_VERSATILE
++ default y if ARM_SINGLE_ARCH_VERSATILE
+ select ARM_AMBA
+ select ARM_TIMER_SP804
+ select ARM_VIC
+diff -Nur linux-4.19.213.orig/arch/arm/mach-versatile/Makefile.boot linux-4.19.213/arch/arm/mach-versatile/Makefile.boot
+--- linux-4.19.213.orig/arch/arm/mach-versatile/Makefile.boot 1970-01-01 01:00:00.000000000 +0100
++++ linux-4.19.213/arch/arm/mach-versatile/Makefile.boot 2021-10-26 09:16:01.660445624 +0200
+@@ -0,0 +1,3 @@
++# Empty file waiting for deletion once Makefile.boot isn't needed any more.
++# Patch waits for application at
++# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
+diff -Nur linux-4.19.213.orig/arch/arm/mach-versatile/versatile_dt.c linux-4.19.213/arch/arm/mach-versatile/versatile_dt.c
+--- linux-4.19.213.orig/arch/arm/mach-versatile/versatile_dt.c 2021-10-20 11:23:05.000000000 +0200
++++ linux-4.19.213/arch/arm/mach-versatile/versatile_dt.c 2021-10-26 09:16:01.660445624 +0200
+@@ -37,7 +37,11 @@
+ #include <asm/mach/map.h>
+
+ /* macro to get at MMIO space when running virtually */
++#ifdef CONFIG_MMU
+ #define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
++#else
++#define IO_ADDRESS(x) (x)
++#endif
+ #define __io_address(n) ((void __iomem __force *)IO_ADDRESS(n))
+
+ /*
diff --git a/target/linux/patches/4.19.310/darwin-dtc.patch b/target/linux/patches/4.19.310/darwin-dtc.patch
new file mode 100644
index 000000000..0cdc23ab4
--- /dev/null
+++ b/target/linux/patches/4.19.310/darwin-dtc.patch
@@ -0,0 +1,26 @@
+diff -Nur linux-4.19.132.orig/scripts/dtc/dtc.h linux-4.19.132/scripts/dtc/dtc.h
+--- linux-4.19.132.orig/scripts/dtc/dtc.h 2020-07-09 09:37:13.000000000 +0200
++++ linux-4.19.132/scripts/dtc/dtc.h 2020-07-15 02:38:00.000000000 +0200
+@@ -33,8 +33,8 @@
+ #include <unistd.h>
+ #include <inttypes.h>
+
+-#include <libfdt_env.h>
+-#include <fdt.h>
++#include "libfdt/libfdt_env.h"
++#include "libfdt/fdt.h"
+
+ #include "util.h"
+
+diff -Nur linux-4.19.132.orig/scripts/dtc/util.c linux-4.19.132/scripts/dtc/util.c
+--- linux-4.19.132.orig/scripts/dtc/util.c 2020-07-09 09:37:13.000000000 +0200
++++ linux-4.19.132/scripts/dtc/util.c 2020-07-15 02:38:18.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+
+-#include "libfdt.h"
++#include "libfdt/libfdt.h"
+ #include "util.h"
+ #include "version_gen.h"
+
diff --git a/target/linux/patches/4.19.310/darwin-file2alias.patch b/target/linux/patches/4.19.310/darwin-file2alias.patch
new file mode 100644
index 000000000..fdbc598a8
--- /dev/null
+++ b/target/linux/patches/4.19.310/darwin-file2alias.patch
@@ -0,0 +1,14 @@
+diff -Nur linux-5.4.42.orig/scripts/mod/file2alias.c linux-5.4.42/scripts/mod/file2alias.c
+--- linux-5.4.42.orig/scripts/mod/file2alias.c 2020-05-20 08:20:41.000000000 +0200
++++ linux-5.4.42/scripts/mod/file2alias.c 2020-06-06 20:14:59.000000000 +0200
+@@ -10,6 +10,10 @@
+ * of the GNU General Public License, incorporated herein by reference.
+ */
+
++/* workaround for Darwin */
++#define _UUID_T
++#define __GETHOSTUUID_H
++
+ #include "modpost.h"
+ #include "devicetable-offsets.h"
+
diff --git a/target/linux/patches/4.19.310/fec-coldfire.patch b/target/linux/patches/4.19.310/fec-coldfire.patch
new file mode 100644
index 000000000..09d8ad047
--- /dev/null
+++ b/target/linux/patches/4.19.310/fec-coldfire.patch
@@ -0,0 +1,118 @@
+diff -Nur linux-4.19.75.orig/drivers/net/ethernet/freescale/fec_main.c linux-4.19.75/drivers/net/ethernet/freescale/fec_main.c
+--- linux-4.19.75.orig/drivers/net/ethernet/freescale/fec_main.c 2019-09-21 07:17:15.000000000 +0200
++++ linux-4.19.75/drivers/net/ethernet/freescale/fec_main.c 2019-10-10 01:17:45.284188283 +0200
+@@ -156,7 +156,7 @@
+ module_param_array(macaddr, byte, NULL, 0);
+ MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address");
+
+-#if defined(CONFIG_M5272)
++#if defined(CONFIG_COLDFIRE)
+ /*
+ * Some hardware gets it MAC address out of local flash memory.
+ * if this is non-zero then assume it is the address to get MAC from.
+@@ -174,7 +174,7 @@
+ #else
+ #define FEC_FLASHMAC 0
+ #endif
+-#endif /* CONFIG_M5272 */
++#endif /* CONFIG_COLDFIRE */
+
+ /* The FEC stores dest/src/type/vlan, data, and checksum for receive packets.
+ *
+@@ -958,7 +958,7 @@
+ /* Set MII speed */
+ writel(fep->phy_speed, fep->hwp + FEC_MII_SPEED);
+
+-#if !defined(CONFIG_M5272)
++#if !defined(CONFIG_COLDFIRE)
+ if (fep->quirks & FEC_QUIRK_HAS_RACC) {
+ val = readl(fep->hwp + FEC_RACC);
+ /* align IP header */
+@@ -1027,7 +1027,7 @@
+ #endif
+ }
+
+-#if !defined(CONFIG_M5272)
++#if !defined(CONFIG_COLDFIRE)
+ /* enable pause frame*/
+ if ((fep->pause_flag & FEC_PAUSE_FLAG_ENABLE) ||
+ ((fep->pause_flag & FEC_PAUSE_FLAG_AUTONEG) &&
+@@ -1045,13 +1045,13 @@
+ } else {
+ rcntl &= ~FEC_ENET_FCE;
+ }
+-#endif /* !defined(CONFIG_M5272) */
++#endif /* !defined(CONFIG_COLDFIRE) */
+
+ writel(rcntl, fep->hwp + FEC_R_CNTRL);
+
+ /* Setup multicast filter. */
+ set_multicast_list(ndev);
+-#ifndef CONFIG_M5272
++#ifndef CONFIG_COLDFIRE
+ writel(0, fep->hwp + FEC_HASH_TABLE_HIGH);
+ writel(0, fep->hwp + FEC_HASH_TABLE_LOW);
+ #endif
+@@ -1066,7 +1066,7 @@
+ if (fep->bufdesc_ex)
+ ecntl |= (1 << 4);
+
+-#ifndef CONFIG_M5272
++#ifndef CONFIG_COLDFIRE
+ /* Enable the MIB statistic event counters */
+ writel(0 << 31, fep->hwp + FEC_MIB_CTRLSTAT);
+ #endif
+@@ -1664,7 +1664,7 @@
+ * 3) from flash or fuse (via platform data)
+ */
+ if (!is_valid_ether_addr(iap)) {
+-#ifdef CONFIG_M5272
++#ifdef CONFIG_COLDFIRE
+ if (FEC_FLASHMAC)
+ iap = (unsigned char *)FEC_FLASHMAC;
+ #else
+@@ -1943,7 +1943,7 @@
+ if (fep->quirks & FEC_QUIRK_HAS_GBIT) {
+ phy_dev->supported &= PHY_GBIT_FEATURES;
+ phy_dev->supported &= ~SUPPORTED_1000baseT_Half;
+-#if !defined(CONFIG_M5272)
++#if !defined(CONFIG_COLDFIRE)
+ phy_dev->supported |= SUPPORTED_Pause;
+ #endif
+ }
+@@ -2199,7 +2199,7 @@
+ }
+ }
+
+-#if !defined(CONFIG_M5272)
++#if !defined(CONFIG_COLDFIRE)
+
+ static void fec_enet_get_pauseparam(struct net_device *ndev,
+ struct ethtool_pauseparam *pause)
+@@ -2391,7 +2391,7 @@
+ static inline void fec_enet_clear_ethtool_stats(struct net_device *dev)
+ {
+ }
+-#endif /* !defined(CONFIG_M5272) */
++#endif /* !defined(CONFIG_COLDFIRE) */
+
+ /* ITR clock source is enet system clock (clk_ahb).
+ * TCTT unit is cycle_ns * 64 cycle
+@@ -2596,7 +2596,7 @@
+ .get_link = ethtool_op_get_link,
+ .get_coalesce = fec_enet_get_coalesce,
+ .set_coalesce = fec_enet_set_coalesce,
+-#ifndef CONFIG_M5272
++#ifndef CONFIG_COLDFIRE
+ .get_pauseparam = fec_enet_get_pauseparam,
+ .set_pauseparam = fec_enet_set_pauseparam,
+ .get_strings = fec_enet_get_strings,
+@@ -3385,7 +3385,7 @@
+ fep->num_rx_queues = num_rx_qs;
+ fep->num_tx_queues = num_tx_qs;
+
+-#if !defined(CONFIG_M5272)
++#if !defined(CONFIG_COLDFIRE)
+ /* default enable pause frame auto negotiation */
+ if (fep->quirks & FEC_QUIRK_HAS_GBIT)
+ fep->pause_flag |= FEC_PAUSE_FLAG_AUTONEG;
diff --git a/target/linux/patches/4.9.103/or1k-more-ram.patch b/target/linux/patches/4.19.310/or1k-more-ram.patch
index de848c838..de848c838 100644
--- a/target/linux/patches/4.9.103/or1k-more-ram.patch
+++ b/target/linux/patches/4.19.310/or1k-more-ram.patch
diff --git a/target/linux/patches/4.19.310/relocs.patch b/target/linux/patches/4.19.310/relocs.patch
new file mode 100644
index 000000000..5bcd974c7
--- /dev/null
+++ b/target/linux/patches/4.19.310/relocs.patch
@@ -0,0 +1,2698 @@
+diff -Nur linux-5.4.42.orig/arch/x86/tools/relocs.h linux-5.4.42/arch/x86/tools/relocs.h
+--- linux-5.4.42.orig/arch/x86/tools/relocs.h 2020-05-20 08:20:41.000000000 +0200
++++ linux-5.4.42/arch/x86/tools/relocs.h 2020-06-06 18:18:17.000000000 +0200
+@@ -10,11 +10,19 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <unistd.h>
++#ifdef __linux__
+ #include <elf.h>
+ #include <byteswap.h>
+ #define USE_BSD
+ #include <endian.h>
++#else
++#include "elf.h"
++#endif
++#ifdef __APPLE__
++#include <pcreposix.h>
++#else
+ #include <regex.h>
++#endif
+ #include <tools/le_byteshift.h>
+
+ void die(char *fmt, ...) __attribute__((noreturn));
+diff -Nur linux-5.4.42.orig/tools/include/elf.h linux-5.4.42/tools/include/elf.h
+--- linux-5.4.42.orig/tools/include/elf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-5.4.42/tools/include/elf.h 2020-06-06 18:18:17.000000000 +0200
+@@ -0,0 +1,2671 @@
++#ifndef _ELF_H
++#define _ELF_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#include <stdint.h>
++
++typedef uint16_t Elf32_Half;
++typedef uint16_t Elf64_Half;
++
++typedef uint32_t Elf32_Word;
++typedef int32_t Elf32_Sword;
++typedef uint32_t Elf64_Word;
++typedef int32_t Elf64_Sword;
++
++typedef uint64_t Elf32_Xword;
++typedef int64_t Elf32_Sxword;
++typedef uint64_t Elf64_Xword;
++typedef int64_t Elf64_Sxword;
++
++typedef uint32_t Elf32_Addr;
++typedef uint64_t Elf64_Addr;
++
++typedef uint32_t Elf32_Off;
++typedef uint64_t Elf64_Off;
++
++typedef uint16_t Elf32_Section;
++typedef uint16_t Elf64_Section;
++
++typedef Elf32_Half Elf32_Versym;
++typedef Elf64_Half Elf64_Versym;
++
++#define EI_NIDENT (16)
++
++typedef struct {
++ unsigned char e_ident[EI_NIDENT];
++ Elf32_Half e_type;
++ Elf32_Half e_machine;
++ Elf32_Word e_version;
++ Elf32_Addr e_entry;
++ Elf32_Off e_phoff;
++ Elf32_Off e_shoff;
++ Elf32_Word e_flags;
++ Elf32_Half e_ehsize;
++ Elf32_Half e_phentsize;
++ Elf32_Half e_phnum;
++ Elf32_Half e_shentsize;
++ Elf32_Half e_shnum;
++ Elf32_Half e_shstrndx;
++} Elf32_Ehdr;
++
++typedef struct {
++ unsigned char e_ident[EI_NIDENT];
++ Elf64_Half e_type;
++ Elf64_Half e_machine;
++ Elf64_Word e_version;
++ Elf64_Addr e_entry;
++ Elf64_Off e_phoff;
++ Elf64_Off e_shoff;
++ Elf64_Word e_flags;
++ Elf64_Half e_ehsize;
++ Elf64_Half e_phentsize;
++ Elf64_Half e_phnum;
++ Elf64_Half e_shentsize;
++ Elf64_Half e_shnum;
++ Elf64_Half e_shstrndx;
++} Elf64_Ehdr;
++
++#define EI_MAG0 0
++#define ELFMAG0 0x7f
++
++#define EI_MAG1 1
++#define ELFMAG1 'E'
++
++#define EI_MAG2 2
++#define ELFMAG2 'L'
++
++#define EI_MAG3 3
++#define ELFMAG3 'F'
++
++
++#define ELFMAG "\177ELF"
++#define SELFMAG 4
++
++#define EI_CLASS 4
++#define ELFCLASSNONE 0
++#define ELFCLASS32 1
++#define ELFCLASS64 2
++#define ELFCLASSNUM 3
++
++#define EI_DATA 5
++#define ELFDATANONE 0
++#define ELFDATA2LSB 1
++#define ELFDATA2MSB 2
++#define ELFDATANUM 3
++
++#define EI_VERSION 6
++
++
++#define EI_OSABI 7
++#define ELFOSABI_NONE 0
++#define ELFOSABI_SYSV 0
++#define ELFOSABI_HPUX 1
++#define ELFOSABI_NETBSD 2
++#define ELFOSABI_LINUX 3
++#define ELFOSABI_GNU 3
++#define ELFOSABI_SOLARIS 6
++#define ELFOSABI_AIX 7
++#define ELFOSABI_IRIX 8
++#define ELFOSABI_FREEBSD 9
++#define ELFOSABI_TRU64 10
++#define ELFOSABI_MODESTO 11
++#define ELFOSABI_OPENBSD 12
++#define ELFOSABI_ARM 97
++#define ELFOSABI_STANDALONE 255
++
++#define EI_ABIVERSION 8
++
++#define EI_PAD 9
++
++
++
++#define ET_NONE 0
++#define ET_REL 1
++#define ET_EXEC 2
++#define ET_DYN 3
++#define ET_CORE 4
++#define ET_NUM 5
++#define ET_LOOS 0xfe00
++#define ET_HIOS 0xfeff
++#define ET_LOPROC 0xff00
++#define ET_HIPROC 0xffff
++
++
++
++#define EM_NONE 0
++#define EM_M32 1
++#define EM_SPARC 2
++#define EM_386 3
++#define EM_68K 4
++#define EM_88K 5
++#define EM_860 7
++#define EM_MIPS 8
++#define EM_S370 9
++#define EM_MIPS_RS3_LE 10
++
++#define EM_PARISC 15
++#define EM_VPP500 17
++#define EM_SPARC32PLUS 18
++#define EM_960 19
++#define EM_PPC 20
++#define EM_PPC64 21
++#define EM_S390 22
++
++#define EM_V800 36
++#define EM_FR20 37
++#define EM_RH32 38
++#define EM_RCE 39
++#define EM_ARM 40
++#define EM_FAKE_ALPHA 41
++#define EM_SH 42
++#define EM_SPARCV9 43
++#define EM_TRICORE 44
++#define EM_ARC 45
++#define EM_H8_300 46
++#define EM_H8_300H 47
++#define EM_H8S 48
++#define EM_H8_500 49
++#define EM_IA_64 50
++#define EM_MIPS_X 51
++#define EM_COLDFIRE 52
++#define EM_68HC12 53
++#define EM_MMA 54
++#define EM_PCP 55
++#define EM_NCPU 56
++#define EM_NDR1 57
++#define EM_STARCORE 58
++#define EM_ME16 59
++#define EM_ST100 60
++#define EM_TINYJ 61
++#define EM_X86_64 62
++#define EM_PDSP 63
++
++#define EM_FX66 66
++#define EM_ST9PLUS 67
++#define EM_ST7 68
++#define EM_68HC16 69
++#define EM_68HC11 70
++#define EM_68HC08 71
++#define EM_68HC05 72
++#define EM_SVX 73
++#define EM_ST19 74
++#define EM_VAX 75
++#define EM_CRIS 76
++#define EM_JAVELIN 77
++#define EM_FIREPATH 78
++#define EM_ZSP 79
++#define EM_MMIX 80
++#define EM_HUANY 81
++#define EM_PRISM 82
++#define EM_AVR 83
++#define EM_FR30 84
++#define EM_D10V 85
++#define EM_D30V 86
++#define EM_V850 87
++#define EM_M32R 88
++#define EM_MN10300 89
++#define EM_MN10200 90
++#define EM_PJ 91
++#define EM_OPENRISC 92
++#define EM_ARC_A5 93
++#define EM_XTENSA 94
++#define EM_AARCH64 183
++#define EM_TILEPRO 188
++#define EM_MICROBLAZE 189
++#define EM_TILEGX 191
++#define EM_NUM 192
++#define EM_ALPHA 0x9026
++
++#define EV_NONE 0
++#define EV_CURRENT 1
++#define EV_NUM 2
++
++typedef struct {
++ Elf32_Word sh_name;
++ Elf32_Word sh_type;
++ Elf32_Word sh_flags;
++ Elf32_Addr sh_addr;
++ Elf32_Off sh_offset;
++ Elf32_Word sh_size;
++ Elf32_Word sh_link;
++ Elf32_Word sh_info;
++ Elf32_Word sh_addralign;
++ Elf32_Word sh_entsize;
++} Elf32_Shdr;
++
++typedef struct {
++ Elf64_Word sh_name;
++ Elf64_Word sh_type;
++ Elf64_Xword sh_flags;
++ Elf64_Addr sh_addr;
++ Elf64_Off sh_offset;
++ Elf64_Xword sh_size;
++ Elf64_Word sh_link;
++ Elf64_Word sh_info;
++ Elf64_Xword sh_addralign;
++ Elf64_Xword sh_entsize;
++} Elf64_Shdr;
++
++
++
++#define SHN_UNDEF 0
++#define SHN_LORESERVE 0xff00
++#define SHN_LOPROC 0xff00
++#define SHN_BEFORE 0xff00
++
++#define SHN_AFTER 0xff01
++
++#define SHN_HIPROC 0xff1f
++#define SHN_LOOS 0xff20
++#define SHN_HIOS 0xff3f
++#define SHN_ABS 0xfff1
++#define SHN_COMMON 0xfff2
++#define SHN_XINDEX 0xffff
++#define SHN_HIRESERVE 0xffff
++
++
++
++#define SHT_NULL 0
++#define SHT_PROGBITS 1
++#define SHT_SYMTAB 2
++#define SHT_STRTAB 3
++#define SHT_RELA 4
++#define SHT_HASH 5
++#define SHT_DYNAMIC 6
++#define SHT_NOTE 7
++#define SHT_NOBITS 8
++#define SHT_REL 9
++#define SHT_SHLIB 10
++#define SHT_DYNSYM 11
++#define SHT_INIT_ARRAY 14
++#define SHT_FINI_ARRAY 15
++#define SHT_PREINIT_ARRAY 16
++#define SHT_GROUP 17
++#define SHT_SYMTAB_SHNDX 18
++#define SHT_NUM 19
++#define SHT_LOOS 0x60000000
++#define SHT_GNU_ATTRIBUTES 0x6ffffff5
++#define SHT_GNU_HASH 0x6ffffff6
++#define SHT_GNU_LIBLIST 0x6ffffff7
++#define SHT_CHECKSUM 0x6ffffff8
++#define SHT_LOSUNW 0x6ffffffa
++#define SHT_SUNW_move 0x6ffffffa
++#define SHT_SUNW_COMDAT 0x6ffffffb
++#define SHT_SUNW_syminfo 0x6ffffffc
++#define SHT_GNU_verdef 0x6ffffffd
++#define SHT_GNU_verneed 0x6ffffffe
++#define SHT_GNU_versym 0x6fffffff
++#define SHT_HISUNW 0x6fffffff
++#define SHT_HIOS 0x6fffffff
++#define SHT_LOPROC 0x70000000
++#define SHT_HIPROC 0x7fffffff
++#define SHT_LOUSER 0x80000000
++#define SHT_HIUSER 0x8fffffff
++
++#define SHF_WRITE (1 << 0)
++#define SHF_ALLOC (1 << 1)
++#define SHF_EXECINSTR (1 << 2)
++#define SHF_MERGE (1 << 4)
++#define SHF_STRINGS (1 << 5)
++#define SHF_INFO_LINK (1 << 6)
++#define SHF_LINK_ORDER (1 << 7)
++#define SHF_OS_NONCONFORMING (1 << 8)
++
++#define SHF_GROUP (1 << 9)
++#define SHF_TLS (1 << 10)
++#define SHF_MASKOS 0x0ff00000
++#define SHF_MASKPROC 0xf0000000
++#define SHF_ORDERED (1 << 30)
++#define SHF_EXCLUDE (1 << 31)
++
++#define GRP_COMDAT 0x1
++
++typedef struct {
++ Elf32_Word st_name;
++ Elf32_Addr st_value;
++ Elf32_Word st_size;
++ unsigned char st_info;
++ unsigned char st_other;
++ Elf32_Section st_shndx;
++} Elf32_Sym;
++
++typedef struct {
++ Elf64_Word st_name;
++ unsigned char st_info;
++ unsigned char st_other;
++ Elf64_Section st_shndx;
++ Elf64_Addr st_value;
++ Elf64_Xword st_size;
++} Elf64_Sym;
++
++typedef struct {
++ Elf32_Half si_boundto;
++ Elf32_Half si_flags;
++} Elf32_Syminfo;
++
++typedef struct {
++ Elf64_Half si_boundto;
++ Elf64_Half si_flags;
++} Elf64_Syminfo;
++
++#define SYMINFO_BT_SELF 0xffff
++#define SYMINFO_BT_PARENT 0xfffe
++#define SYMINFO_BT_LOWRESERVE 0xff00
++
++#define SYMINFO_FLG_DIRECT 0x0001
++#define SYMINFO_FLG_PASSTHRU 0x0002
++#define SYMINFO_FLG_COPY 0x0004
++#define SYMINFO_FLG_LAZYLOAD 0x0008
++
++#define SYMINFO_NONE 0
++#define SYMINFO_CURRENT 1
++#define SYMINFO_NUM 2
++
++#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
++#define ELF32_ST_TYPE(val) ((val) & 0xf)
++#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
++
++#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
++#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
++#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
++
++#define STB_LOCAL 0
++#define STB_GLOBAL 1
++#define STB_WEAK 2
++#define STB_NUM 3
++#define STB_LOOS 10
++#define STB_GNU_UNIQUE 10
++#define STB_HIOS 12
++#define STB_LOPROC 13
++#define STB_HIPROC 15
++
++#define STT_NOTYPE 0
++#define STT_OBJECT 1
++#define STT_FUNC 2
++#define STT_SECTION 3
++#define STT_FILE 4
++#define STT_COMMON 5
++#define STT_TLS 6
++#define STT_NUM 7
++#define STT_LOOS 10
++#define STT_GNU_IFUNC 10
++#define STT_HIOS 12
++#define STT_LOPROC 13
++#define STT_HIPROC 15
++
++#define STN_UNDEF 0
++
++#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
++#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
++
++#define STV_DEFAULT 0
++#define STV_INTERNAL 1
++#define STV_HIDDEN 2
++#define STV_PROTECTED 3
++
++
++
++
++typedef struct
++{
++ Elf32_Addr r_offset;
++ Elf32_Word r_info;
++} Elf32_Rel;
++
++typedef struct {
++ Elf64_Addr r_offset;
++ Elf64_Xword r_info;
++} Elf64_Rel;
++
++
++
++typedef struct {
++ Elf32_Addr r_offset;
++ Elf32_Word r_info;
++ Elf32_Sword r_addend;
++} Elf32_Rela;
++
++typedef struct {
++ Elf64_Addr r_offset;
++ Elf64_Xword r_info;
++ Elf64_Sxword r_addend;
++} Elf64_Rela;
++
++
++
++#define ELF32_R_SYM(val) ((val) >> 8)
++#define ELF32_R_TYPE(val) ((val) & 0xff)
++#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
++
++#define ELF64_R_SYM(i) ((i) >> 32)
++#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
++#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
++
++
++
++typedef struct {
++ Elf32_Word p_type;
++ Elf32_Off p_offset;
++ Elf32_Addr p_vaddr;
++ Elf32_Addr p_paddr;
++ Elf32_Word p_filesz;
++ Elf32_Word p_memsz;
++ Elf32_Word p_flags;
++ Elf32_Word p_align;
++} Elf32_Phdr;
++
++typedef struct {
++ Elf64_Word p_type;
++ Elf64_Word p_flags;
++ Elf64_Off p_offset;
++ Elf64_Addr p_vaddr;
++ Elf64_Addr p_paddr;
++ Elf64_Xword p_filesz;
++ Elf64_Xword p_memsz;
++ Elf64_Xword p_align;
++} Elf64_Phdr;
++
++
++
++#define PT_NULL 0
++#define PT_LOAD 1
++#define PT_DYNAMIC 2
++#define PT_INTERP 3
++#define PT_NOTE 4
++#define PT_SHLIB 5
++#define PT_PHDR 6
++#define PT_TLS 7
++#define PT_NUM 8
++#define PT_LOOS 0x60000000
++#define PT_GNU_EH_FRAME 0x6474e550
++#define PT_GNU_STACK 0x6474e551
++#define PT_GNU_RELRO 0x6474e552
++#define PT_LOSUNW 0x6ffffffa
++#define PT_SUNWBSS 0x6ffffffa
++#define PT_SUNWSTACK 0x6ffffffb
++#define PT_HISUNW 0x6fffffff
++#define PT_HIOS 0x6fffffff
++#define PT_LOPROC 0x70000000
++#define PT_HIPROC 0x7fffffff
++
++
++#define PN_XNUM 0xffff
++
++
++#define PF_X (1 << 0)
++#define PF_W (1 << 1)
++#define PF_R (1 << 2)
++#define PF_MASKOS 0x0ff00000
++#define PF_MASKPROC 0xf0000000
++
++
++
++#define NT_PRSTATUS 1
++#define NT_FPREGSET 2
++#define NT_PRPSINFO 3
++#define NT_PRXREG 4
++#define NT_TASKSTRUCT 4
++#define NT_PLATFORM 5
++#define NT_AUXV 6
++#define NT_GWINDOWS 7
++#define NT_ASRS 8
++#define NT_PSTATUS 10
++#define NT_PSINFO 13
++#define NT_PRCRED 14
++#define NT_UTSNAME 15
++#define NT_LWPSTATUS 16
++#define NT_LWPSINFO 17
++#define NT_PRFPXREG 20
++#define NT_SIGINFO 0x53494749
++#define NT_FILE 0x46494c45
++#define NT_PRXFPREG 0x46e62b7f
++#define NT_PPC_VMX 0x100
++#define NT_PPC_SPE 0x101
++#define NT_PPC_VSX 0x102
++#define NT_386_TLS 0x200
++#define NT_386_IOPERM 0x201
++#define NT_X86_XSTATE 0x202
++#define NT_S390_HIGH_GPRS 0x300
++#define NT_S390_TIMER 0x301
++#define NT_S390_TODCMP 0x302
++#define NT_S390_TODPREG 0x303
++#define NT_S390_CTRS 0x304
++#define NT_S390_PREFIX 0x305
++#define NT_S390_LAST_BREAK 0x306
++#define NT_S390_SYSTEM_CALL 0x307
++#define NT_S390_TDB 0x308
++#define NT_ARM_VFP 0x400
++#define NT_ARM_TLS 0x401
++#define NT_ARM_HW_BREAK 0x402
++#define NT_ARM_HW_WATCH 0x403
++#define NT_METAG_CBUF 0x500
++#define NT_METAG_RPIPE 0x501
++#define NT_METAG_TLS 0x502
++#define NT_VERSION 1
++
++
++
++
++typedef struct {
++ Elf32_Sword d_tag;
++ union {
++ Elf32_Word d_val;
++ Elf32_Addr d_ptr;
++ } d_un;
++} Elf32_Dyn;
++
++typedef struct {
++ Elf64_Sxword d_tag;
++ union {
++ Elf64_Xword d_val;
++ Elf64_Addr d_ptr;
++ } d_un;
++} Elf64_Dyn;
++
++
++
++#define DT_NULL 0
++#define DT_NEEDED 1
++#define DT_PLTRELSZ 2
++#define DT_PLTGOT 3
++#define DT_HASH 4
++#define DT_STRTAB 5
++#define DT_SYMTAB 6
++#define DT_RELA 7
++#define DT_RELASZ 8
++#define DT_RELAENT 9
++#define DT_STRSZ 10
++#define DT_SYMENT 11
++#define DT_INIT 12
++#define DT_FINI 13
++#define DT_SONAME 14
++#define DT_RPATH 15
++#define DT_SYMBOLIC 16
++#define DT_REL 17
++#define DT_RELSZ 18
++#define DT_RELENT 19
++#define DT_PLTREL 20
++#define DT_DEBUG 21
++#define DT_TEXTREL 22
++#define DT_JMPREL 23
++#define DT_BIND_NOW 24
++#define DT_INIT_ARRAY 25
++#define DT_FINI_ARRAY 26
++#define DT_INIT_ARRAYSZ 27
++#define DT_FINI_ARRAYSZ 28
++#define DT_RUNPATH 29
++#define DT_FLAGS 30
++#define DT_ENCODING 32
++#define DT_PREINIT_ARRAY 32
++#define DT_PREINIT_ARRAYSZ 33
++#define DT_NUM 34
++#define DT_LOOS 0x6000000d
++#define DT_HIOS 0x6ffff000
++#define DT_LOPROC 0x70000000
++#define DT_HIPROC 0x7fffffff
++#define DT_PROCNUM DT_MIPS_NUM
++
++#define DT_VALRNGLO 0x6ffffd00
++#define DT_GNU_PRELINKED 0x6ffffdf5
++#define DT_GNU_CONFLICTSZ 0x6ffffdf6
++#define DT_GNU_LIBLISTSZ 0x6ffffdf7
++#define DT_CHECKSUM 0x6ffffdf8
++#define DT_PLTPADSZ 0x6ffffdf9
++#define DT_MOVEENT 0x6ffffdfa
++#define DT_MOVESZ 0x6ffffdfb
++#define DT_FEATURE_1 0x6ffffdfc
++#define DT_POSFLAG_1 0x6ffffdfd
++
++#define DT_SYMINSZ 0x6ffffdfe
++#define DT_SYMINENT 0x6ffffdff
++#define DT_VALRNGHI 0x6ffffdff
++#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag))
++#define DT_VALNUM 12
++
++#define DT_ADDRRNGLO 0x6ffffe00
++#define DT_GNU_HASH 0x6ffffef5
++#define DT_TLSDESC_PLT 0x6ffffef6
++#define DT_TLSDESC_GOT 0x6ffffef7
++#define DT_GNU_CONFLICT 0x6ffffef8
++#define DT_GNU_LIBLIST 0x6ffffef9
++#define DT_CONFIG 0x6ffffefa
++#define DT_DEPAUDIT 0x6ffffefb
++#define DT_AUDIT 0x6ffffefc
++#define DT_PLTPAD 0x6ffffefd
++#define DT_MOVETAB 0x6ffffefe
++#define DT_SYMINFO 0x6ffffeff
++#define DT_ADDRRNGHI 0x6ffffeff
++#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag))
++#define DT_ADDRNUM 11
++
++
++
++#define DT_VERSYM 0x6ffffff0
++
++#define DT_RELACOUNT 0x6ffffff9
++#define DT_RELCOUNT 0x6ffffffa
++
++
++#define DT_FLAGS_1 0x6ffffffb
++#define DT_VERDEF 0x6ffffffc
++
++#define DT_VERDEFNUM 0x6ffffffd
++#define DT_VERNEED 0x6ffffffe
++
++#define DT_VERNEEDNUM 0x6fffffff
++#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))
++#define DT_VERSIONTAGNUM 16
++
++
++
++#define DT_AUXILIARY 0x7ffffffd
++#define DT_FILTER 0x7fffffff
++#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
++#define DT_EXTRANUM 3
++
++
++#define DF_ORIGIN 0x00000001
++#define DF_SYMBOLIC 0x00000002
++#define DF_TEXTREL 0x00000004
++#define DF_BIND_NOW 0x00000008
++#define DF_STATIC_TLS 0x00000010
++
++
++
++#define DF_1_NOW 0x00000001
++#define DF_1_GLOBAL 0x00000002
++#define DF_1_GROUP 0x00000004
++#define DF_1_NODELETE 0x00000008
++#define DF_1_LOADFLTR 0x00000010
++#define DF_1_INITFIRST 0x00000020
++#define DF_1_NOOPEN 0x00000040
++#define DF_1_ORIGIN 0x00000080
++#define DF_1_DIRECT 0x00000100
++#define DF_1_TRANS 0x00000200
++#define DF_1_INTERPOSE 0x00000400
++#define DF_1_NODEFLIB 0x00000800
++#define DF_1_NODUMP 0x00001000
++#define DF_1_CONFALT 0x00002000
++#define DF_1_ENDFILTEE 0x00004000
++#define DF_1_DISPRELDNE 0x00008000
++#define DF_1_DISPRELPND 0x00010000
++#define DF_1_NODIRECT 0x00020000
++#define DF_1_IGNMULDEF 0x00040000
++#define DF_1_NOKSYMS 0x00080000
++#define DF_1_NOHDR 0x00100000
++#define DF_1_EDITED 0x00200000
++#define DF_1_NORELOC 0x00400000
++#define DF_1_SYMINTPOSE 0x00800000
++#define DF_1_GLOBAUDIT 0x01000000
++#define DF_1_SINGLETON 0x02000000
++
++#define DTF_1_PARINIT 0x00000001
++#define DTF_1_CONFEXP 0x00000002
++
++
++#define DF_P1_LAZYLOAD 0x00000001
++#define DF_P1_GROUPPERM 0x00000002
++
++
++
++
++typedef struct {
++ Elf32_Half vd_version;
++ Elf32_Half vd_flags;
++ Elf32_Half vd_ndx;
++ Elf32_Half vd_cnt;
++ Elf32_Word vd_hash;
++ Elf32_Word vd_aux;
++ Elf32_Word vd_next;
++} Elf32_Verdef;
++
++typedef struct {
++ Elf64_Half vd_version;
++ Elf64_Half vd_flags;
++ Elf64_Half vd_ndx;
++ Elf64_Half vd_cnt;
++ Elf64_Word vd_hash;
++ Elf64_Word vd_aux;
++ Elf64_Word vd_next;
++} Elf64_Verdef;
++
++
++
++#define VER_DEF_NONE 0
++#define VER_DEF_CURRENT 1
++#define VER_DEF_NUM 2
++
++
++#define VER_FLG_BASE 0x1
++#define VER_FLG_WEAK 0x2
++
++
++#define VER_NDX_LOCAL 0
++#define VER_NDX_GLOBAL 1
++#define VER_NDX_LORESERVE 0xff00
++#define VER_NDX_ELIMINATE 0xff01
++
++
++
++typedef struct {
++ Elf32_Word vda_name;
++ Elf32_Word vda_next;
++} Elf32_Verdaux;
++
++typedef struct {
++ Elf64_Word vda_name;
++ Elf64_Word vda_next;
++} Elf64_Verdaux;
++
++
++
++
++typedef struct {
++ Elf32_Half vn_version;
++ Elf32_Half vn_cnt;
++ Elf32_Word vn_file;
++ Elf32_Word vn_aux;
++ Elf32_Word vn_next;
++} Elf32_Verneed;
++
++typedef struct {
++ Elf64_Half vn_version;
++ Elf64_Half vn_cnt;
++ Elf64_Word vn_file;
++ Elf64_Word vn_aux;
++ Elf64_Word vn_next;
++} Elf64_Verneed;
++
++
++
++#define VER_NEED_NONE 0
++#define VER_NEED_CURRENT 1
++#define VER_NEED_NUM 2
++
++
++
++typedef struct {
++ Elf32_Word vna_hash;
++ Elf32_Half vna_flags;
++ Elf32_Half vna_other;
++ Elf32_Word vna_name;
++ Elf32_Word vna_next;
++} Elf32_Vernaux;
++
++typedef struct {
++ Elf64_Word vna_hash;
++ Elf64_Half vna_flags;
++ Elf64_Half vna_other;
++ Elf64_Word vna_name;
++ Elf64_Word vna_next;
++} Elf64_Vernaux;
++
++
++
++#define VER_FLG_WEAK 0x2
++
++
++
++typedef struct {
++ uint32_t a_type;
++ union {
++ uint32_t a_val;
++ } a_un;
++} Elf32_auxv_t;
++
++typedef struct {
++ uint64_t a_type;
++ union {
++ uint64_t a_val;
++ } a_un;
++} Elf64_auxv_t;
++
++
++
++#define AT_NULL 0
++#define AT_IGNORE 1
++#define AT_EXECFD 2
++#define AT_PHDR 3
++#define AT_PHENT 4
++#define AT_PHNUM 5
++#define AT_PAGESZ 6
++#define AT_BASE 7
++#define AT_FLAGS 8
++#define AT_ENTRY 9
++#define AT_NOTELF 10
++#define AT_UID 11
++#define AT_EUID 12
++#define AT_GID 13
++#define AT_EGID 14
++#define AT_CLKTCK 17
++
++
++#define AT_PLATFORM 15
++#define AT_HWCAP 16
++
++
++
++
++#define AT_FPUCW 18
++
++
++#define AT_DCACHEBSIZE 19
++#define AT_ICACHEBSIZE 20
++#define AT_UCACHEBSIZE 21
++
++
++
++#define AT_IGNOREPPC 22
++
++#define AT_SECURE 23
++
++#define AT_BASE_PLATFORM 24
++
++#define AT_RANDOM 25
++
++#define AT_HWCAP2 26
++
++#define AT_EXECFN 31
++
++
++
++#define AT_SYSINFO 32
++#define AT_SYSINFO_EHDR 33
++
++
++
++#define AT_L1I_CACHESHAPE 34
++#define AT_L1D_CACHESHAPE 35
++#define AT_L2_CACHESHAPE 36
++#define AT_L3_CACHESHAPE 37
++
++
++
++
++typedef struct {
++ Elf32_Word n_namesz;
++ Elf32_Word n_descsz;
++ Elf32_Word n_type;
++} Elf32_Nhdr;
++
++typedef struct {
++ Elf64_Word n_namesz;
++ Elf64_Word n_descsz;
++ Elf64_Word n_type;
++} Elf64_Nhdr;
++
++
++
++
++#define ELF_NOTE_SOLARIS "SUNW Solaris"
++
++
++#define ELF_NOTE_GNU "GNU"
++
++
++
++
++
++#define ELF_NOTE_PAGESIZE_HINT 1
++
++
++#define NT_GNU_ABI_TAG 1
++#define ELF_NOTE_ABI NT_GNU_ABI_TAG
++
++
++
++#define ELF_NOTE_OS_LINUX 0
++#define ELF_NOTE_OS_GNU 1
++#define ELF_NOTE_OS_SOLARIS2 2
++#define ELF_NOTE_OS_FREEBSD 3
++
++#define NT_GNU_BUILD_ID 3
++#define NT_GNU_GOLD_VERSION 4
++
++
++
++typedef struct {
++ Elf32_Xword m_value;
++ Elf32_Word m_info;
++ Elf32_Word m_poffset;
++ Elf32_Half m_repeat;
++ Elf32_Half m_stride;
++} Elf32_Move;
++
++typedef struct {
++ Elf64_Xword m_value;
++ Elf64_Xword m_info;
++ Elf64_Xword m_poffset;
++ Elf64_Half m_repeat;
++ Elf64_Half m_stride;
++} Elf64_Move;
++
++
++#define ELF32_M_SYM(info) ((info) >> 8)
++#define ELF32_M_SIZE(info) ((unsigned char) (info))
++#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
++
++#define ELF64_M_SYM(info) ELF32_M_SYM (info)
++#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
++#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
++
++#define EF_CPU32 0x00810000
++
++#define R_68K_NONE 0
++#define R_68K_32 1
++#define R_68K_16 2
++#define R_68K_8 3
++#define R_68K_PC32 4
++#define R_68K_PC16 5
++#define R_68K_PC8 6
++#define R_68K_GOT32 7
++#define R_68K_GOT16 8
++#define R_68K_GOT8 9
++#define R_68K_GOT32O 10
++#define R_68K_GOT16O 11
++#define R_68K_GOT8O 12
++#define R_68K_PLT32 13
++#define R_68K_PLT16 14
++#define R_68K_PLT8 15
++#define R_68K_PLT32O 16
++#define R_68K_PLT16O 17
++#define R_68K_PLT8O 18
++#define R_68K_COPY 19
++#define R_68K_GLOB_DAT 20
++#define R_68K_JMP_SLOT 21
++#define R_68K_RELATIVE 22
++#define R_68K_NUM 23
++
++#define R_386_NONE 0
++#define R_386_32 1
++#define R_386_PC32 2
++#define R_386_GOT32 3
++#define R_386_PLT32 4
++#define R_386_COPY 5
++#define R_386_GLOB_DAT 6
++#define R_386_JMP_SLOT 7
++#define R_386_RELATIVE 8
++#define R_386_GOTOFF 9
++#define R_386_GOTPC 10
++#define R_386_32PLT 11
++#define R_386_TLS_TPOFF 14
++#define R_386_TLS_IE 15
++#define R_386_TLS_GOTIE 16
++#define R_386_TLS_LE 17
++#define R_386_TLS_GD 18
++#define R_386_TLS_LDM 19
++#define R_386_16 20
++#define R_386_PC16 21
++#define R_386_8 22
++#define R_386_PC8 23
++#define R_386_TLS_GD_32 24
++#define R_386_TLS_GD_PUSH 25
++#define R_386_TLS_GD_CALL 26
++#define R_386_TLS_GD_POP 27
++#define R_386_TLS_LDM_32 28
++#define R_386_TLS_LDM_PUSH 29
++#define R_386_TLS_LDM_CALL 30
++#define R_386_TLS_LDM_POP 31
++#define R_386_TLS_LDO_32 32
++#define R_386_TLS_IE_32 33
++#define R_386_TLS_LE_32 34
++#define R_386_TLS_DTPMOD32 35
++#define R_386_TLS_DTPOFF32 36
++#define R_386_TLS_TPOFF32 37
++#define R_386_SIZE32 38
++#define R_386_TLS_GOTDESC 39
++#define R_386_TLS_DESC_CALL 40
++#define R_386_TLS_DESC 41
++#define R_386_IRELATIVE 42
++#define R_386_NUM 43
++
++
++
++
++
++#define STT_SPARC_REGISTER 13
++
++
++
++#define EF_SPARCV9_MM 3
++#define EF_SPARCV9_TSO 0
++#define EF_SPARCV9_PSO 1
++#define EF_SPARCV9_RMO 2
++#define EF_SPARC_LEDATA 0x800000
++#define EF_SPARC_EXT_MASK 0xFFFF00
++#define EF_SPARC_32PLUS 0x000100
++#define EF_SPARC_SUN_US1 0x000200
++#define EF_SPARC_HAL_R1 0x000400
++#define EF_SPARC_SUN_US3 0x000800
++
++
++
++#define R_SPARC_NONE 0
++#define R_SPARC_8 1
++#define R_SPARC_16 2
++#define R_SPARC_32 3
++#define R_SPARC_DISP8 4
++#define R_SPARC_DISP16 5
++#define R_SPARC_DISP32 6
++#define R_SPARC_WDISP30 7
++#define R_SPARC_WDISP22 8
++#define R_SPARC_HI22 9
++#define R_SPARC_22 10
++#define R_SPARC_13 11
++#define R_SPARC_LO10 12
++#define R_SPARC_GOT10 13
++#define R_SPARC_GOT13 14
++#define R_SPARC_GOT22 15
++#define R_SPARC_PC10 16
++#define R_SPARC_PC22 17
++#define R_SPARC_WPLT30 18
++#define R_SPARC_COPY 19
++#define R_SPARC_GLOB_DAT 20
++#define R_SPARC_JMP_SLOT 21
++#define R_SPARC_RELATIVE 22
++#define R_SPARC_UA32 23
++
++
++
++#define R_SPARC_PLT32 24
++#define R_SPARC_HIPLT22 25
++#define R_SPARC_LOPLT10 26
++#define R_SPARC_PCPLT32 27
++#define R_SPARC_PCPLT22 28
++#define R_SPARC_PCPLT10 29
++#define R_SPARC_10 30
++#define R_SPARC_11 31
++#define R_SPARC_64 32
++#define R_SPARC_OLO10 33
++#define R_SPARC_HH22 34
++#define R_SPARC_HM10 35
++#define R_SPARC_LM22 36
++#define R_SPARC_PC_HH22 37
++#define R_SPARC_PC_HM10 38
++#define R_SPARC_PC_LM22 39
++#define R_SPARC_WDISP16 40
++#define R_SPARC_WDISP19 41
++#define R_SPARC_GLOB_JMP 42
++#define R_SPARC_7 43
++#define R_SPARC_5 44
++#define R_SPARC_6 45
++#define R_SPARC_DISP64 46
++#define R_SPARC_PLT64 47
++#define R_SPARC_HIX22 48
++#define R_SPARC_LOX10 49
++#define R_SPARC_H44 50
++#define R_SPARC_M44 51
++#define R_SPARC_L44 52
++#define R_SPARC_REGISTER 53
++#define R_SPARC_UA64 54
++#define R_SPARC_UA16 55
++#define R_SPARC_TLS_GD_HI22 56
++#define R_SPARC_TLS_GD_LO10 57
++#define R_SPARC_TLS_GD_ADD 58
++#define R_SPARC_TLS_GD_CALL 59
++#define R_SPARC_TLS_LDM_HI22 60
++#define R_SPARC_TLS_LDM_LO10 61
++#define R_SPARC_TLS_LDM_ADD 62
++#define R_SPARC_TLS_LDM_CALL 63
++#define R_SPARC_TLS_LDO_HIX22 64
++#define R_SPARC_TLS_LDO_LOX10 65
++#define R_SPARC_TLS_LDO_ADD 66
++#define R_SPARC_TLS_IE_HI22 67
++#define R_SPARC_TLS_IE_LO10 68
++#define R_SPARC_TLS_IE_LD 69
++#define R_SPARC_TLS_IE_LDX 70
++#define R_SPARC_TLS_IE_ADD 71
++#define R_SPARC_TLS_LE_HIX22 72
++#define R_SPARC_TLS_LE_LOX10 73
++#define R_SPARC_TLS_DTPMOD32 74
++#define R_SPARC_TLS_DTPMOD64 75
++#define R_SPARC_TLS_DTPOFF32 76
++#define R_SPARC_TLS_DTPOFF64 77
++#define R_SPARC_TLS_TPOFF32 78
++#define R_SPARC_TLS_TPOFF64 79
++#define R_SPARC_GOTDATA_HIX22 80
++#define R_SPARC_GOTDATA_LOX10 81
++#define R_SPARC_GOTDATA_OP_HIX22 82
++#define R_SPARC_GOTDATA_OP_LOX10 83
++#define R_SPARC_GOTDATA_OP 84
++#define R_SPARC_H34 85
++#define R_SPARC_SIZE32 86
++#define R_SPARC_SIZE64 87
++#define R_SPARC_GNU_VTINHERIT 250
++#define R_SPARC_GNU_VTENTRY 251
++#define R_SPARC_REV32 252
++
++#define R_SPARC_NUM 253
++
++
++
++#define DT_SPARC_REGISTER 0x70000001
++#define DT_SPARC_NUM 2
++
++
++#define EF_MIPS_NOREORDER 1
++#define EF_MIPS_PIC 2
++#define EF_MIPS_CPIC 4
++#define EF_MIPS_XGOT 8
++#define EF_MIPS_64BIT_WHIRL 16
++#define EF_MIPS_ABI2 32
++#define EF_MIPS_ABI_ON32 64
++#define EF_MIPS_ARCH 0xf0000000
++
++
++
++#define EF_MIPS_ARCH_1 0x00000000
++#define EF_MIPS_ARCH_2 0x10000000
++#define EF_MIPS_ARCH_3 0x20000000
++#define EF_MIPS_ARCH_4 0x30000000
++#define EF_MIPS_ARCH_5 0x40000000
++#define EF_MIPS_ARCH_32 0x50000000
++#define EF_MIPS_ARCH_64 0x60000000
++#define EF_MIPS_ARCH_32R2 0x70000000
++#define EF_MIPS_ARCH_64R2 0x80000000
++
++
++#define E_MIPS_ARCH_1 0x00000000
++#define E_MIPS_ARCH_2 0x10000000
++#define E_MIPS_ARCH_3 0x20000000
++#define E_MIPS_ARCH_4 0x30000000
++#define E_MIPS_ARCH_5 0x40000000
++#define E_MIPS_ARCH_32 0x50000000
++#define E_MIPS_ARCH_64 0x60000000
++
++
++
++#define SHN_MIPS_ACOMMON 0xff00
++#define SHN_MIPS_TEXT 0xff01
++#define SHN_MIPS_DATA 0xff02
++#define SHN_MIPS_SCOMMON 0xff03
++#define SHN_MIPS_SUNDEFINED 0xff04
++
++
++
++#define SHT_MIPS_LIBLIST 0x70000000
++#define SHT_MIPS_MSYM 0x70000001
++#define SHT_MIPS_CONFLICT 0x70000002
++#define SHT_MIPS_GPTAB 0x70000003
++#define SHT_MIPS_UCODE 0x70000004
++#define SHT_MIPS_DEBUG 0x70000005
++#define SHT_MIPS_REGINFO 0x70000006
++#define SHT_MIPS_PACKAGE 0x70000007
++#define SHT_MIPS_PACKSYM 0x70000008
++#define SHT_MIPS_RELD 0x70000009
++#define SHT_MIPS_IFACE 0x7000000b
++#define SHT_MIPS_CONTENT 0x7000000c
++#define SHT_MIPS_OPTIONS 0x7000000d
++#define SHT_MIPS_SHDR 0x70000010
++#define SHT_MIPS_FDESC 0x70000011
++#define SHT_MIPS_EXTSYM 0x70000012
++#define SHT_MIPS_DENSE 0x70000013
++#define SHT_MIPS_PDESC 0x70000014
++#define SHT_MIPS_LOCSYM 0x70000015
++#define SHT_MIPS_AUXSYM 0x70000016
++#define SHT_MIPS_OPTSYM 0x70000017
++#define SHT_MIPS_LOCSTR 0x70000018
++#define SHT_MIPS_LINE 0x70000019
++#define SHT_MIPS_RFDESC 0x7000001a
++#define SHT_MIPS_DELTASYM 0x7000001b
++#define SHT_MIPS_DELTAINST 0x7000001c
++#define SHT_MIPS_DELTACLASS 0x7000001d
++#define SHT_MIPS_DWARF 0x7000001e
++#define SHT_MIPS_DELTADECL 0x7000001f
++#define SHT_MIPS_SYMBOL_LIB 0x70000020
++#define SHT_MIPS_EVENTS 0x70000021
++#define SHT_MIPS_TRANSLATE 0x70000022
++#define SHT_MIPS_PIXIE 0x70000023
++#define SHT_MIPS_XLATE 0x70000024
++#define SHT_MIPS_XLATE_DEBUG 0x70000025
++#define SHT_MIPS_WHIRL 0x70000026
++#define SHT_MIPS_EH_REGION 0x70000027
++#define SHT_MIPS_XLATE_OLD 0x70000028
++#define SHT_MIPS_PDR_EXCEPTION 0x70000029
++
++
++
++#define SHF_MIPS_GPREL 0x10000000
++#define SHF_MIPS_MERGE 0x20000000
++#define SHF_MIPS_ADDR 0x40000000
++#define SHF_MIPS_STRINGS 0x80000000
++#define SHF_MIPS_NOSTRIP 0x08000000
++#define SHF_MIPS_LOCAL 0x04000000
++#define SHF_MIPS_NAMES 0x02000000
++#define SHF_MIPS_NODUPE 0x01000000
++
++
++
++
++
++#define STO_MIPS_DEFAULT 0x0
++#define STO_MIPS_INTERNAL 0x1
++#define STO_MIPS_HIDDEN 0x2
++#define STO_MIPS_PROTECTED 0x3
++#define STO_MIPS_PLT 0x8
++#define STO_MIPS_SC_ALIGN_UNUSED 0xff
++
++
++#define STB_MIPS_SPLIT_COMMON 13
++
++
++
++typedef union {
++ struct {
++ Elf32_Word gt_current_g_value;
++ Elf32_Word gt_unused;
++ } gt_header;
++ struct {
++ Elf32_Word gt_g_value;
++ Elf32_Word gt_bytes;
++ } gt_entry;
++} Elf32_gptab;
++
++
++
++typedef struct {
++ Elf32_Word ri_gprmask;
++ Elf32_Word ri_cprmask[4];
++ Elf32_Sword ri_gp_value;
++} Elf32_RegInfo;
++
++
++
++typedef struct {
++ unsigned char kind;
++
++ unsigned char size;
++ Elf32_Section section;
++
++ Elf32_Word info;
++} Elf_Options;
++
++
++
++#define ODK_NULL 0
++#define ODK_REGINFO 1
++#define ODK_EXCEPTIONS 2
++#define ODK_PAD 3
++#define ODK_HWPATCH 4
++#define ODK_FILL 5
++#define ODK_TAGS 6
++#define ODK_HWAND 7
++#define ODK_HWOR 8
++
++
++
++#define OEX_FPU_MIN 0x1f
++#define OEX_FPU_MAX 0x1f00
++#define OEX_PAGE0 0x10000
++#define OEX_SMM 0x20000
++#define OEX_FPDBUG 0x40000
++#define OEX_PRECISEFP OEX_FPDBUG
++#define OEX_DISMISS 0x80000
++
++#define OEX_FPU_INVAL 0x10
++#define OEX_FPU_DIV0 0x08
++#define OEX_FPU_OFLO 0x04
++#define OEX_FPU_UFLO 0x02
++#define OEX_FPU_INEX 0x01
++
++
++
++#define OHW_R4KEOP 0x1
++#define OHW_R8KPFETCH 0x2
++#define OHW_R5KEOP 0x4
++#define OHW_R5KCVTL 0x8
++
++#define OPAD_PREFIX 0x1
++#define OPAD_POSTFIX 0x2
++#define OPAD_SYMBOL 0x4
++
++
++
++typedef struct {
++ Elf32_Word hwp_flags1;
++ Elf32_Word hwp_flags2;
++} Elf_Options_Hw;
++
++
++
++#define OHWA0_R4KEOP_CHECKED 0x00000001
++#define OHWA1_R4KEOP_CLEAN 0x00000002
++
++
++
++#define R_MIPS_NONE 0
++#define R_MIPS_16 1
++#define R_MIPS_32 2
++#define R_MIPS_REL32 3
++#define R_MIPS_26 4
++#define R_MIPS_HI16 5
++#define R_MIPS_LO16 6
++#define R_MIPS_GPREL16 7
++#define R_MIPS_LITERAL 8
++#define R_MIPS_GOT16 9
++#define R_MIPS_PC16 10
++#define R_MIPS_CALL16 11
++#define R_MIPS_GPREL32 12
++
++#define R_MIPS_SHIFT5 16
++#define R_MIPS_SHIFT6 17
++#define R_MIPS_64 18
++#define R_MIPS_GOT_DISP 19
++#define R_MIPS_GOT_PAGE 20
++#define R_MIPS_GOT_OFST 21
++#define R_MIPS_GOT_HI16 22
++#define R_MIPS_GOT_LO16 23
++#define R_MIPS_SUB 24
++#define R_MIPS_INSERT_A 25
++#define R_MIPS_INSERT_B 26
++#define R_MIPS_DELETE 27
++#define R_MIPS_HIGHER 28
++#define R_MIPS_HIGHEST 29
++#define R_MIPS_CALL_HI16 30
++#define R_MIPS_CALL_LO16 31
++#define R_MIPS_SCN_DISP 32
++#define R_MIPS_REL16 33
++#define R_MIPS_ADD_IMMEDIATE 34
++#define R_MIPS_PJUMP 35
++#define R_MIPS_RELGOT 36
++#define R_MIPS_JALR 37
++#define R_MIPS_TLS_DTPMOD32 38
++#define R_MIPS_TLS_DTPREL32 39
++#define R_MIPS_TLS_DTPMOD64 40
++#define R_MIPS_TLS_DTPREL64 41
++#define R_MIPS_TLS_GD 42
++#define R_MIPS_TLS_LDM 43
++#define R_MIPS_TLS_DTPREL_HI16 44
++#define R_MIPS_TLS_DTPREL_LO16 45
++#define R_MIPS_TLS_GOTTPREL 46
++#define R_MIPS_TLS_TPREL32 47
++#define R_MIPS_TLS_TPREL64 48
++#define R_MIPS_TLS_TPREL_HI16 49
++#define R_MIPS_TLS_TPREL_LO16 50
++#define R_MIPS_GLOB_DAT 51
++#define R_MIPS_COPY 126
++#define R_MIPS_JUMP_SLOT 127
++
++#define R_MIPS_NUM 128
++
++
++
++#define PT_MIPS_REGINFO 0x70000000
++#define PT_MIPS_RTPROC 0x70000001
++#define PT_MIPS_OPTIONS 0x70000002
++
++
++
++#define PF_MIPS_LOCAL 0x10000000
++
++
++
++#define DT_MIPS_RLD_VERSION 0x70000001
++#define DT_MIPS_TIME_STAMP 0x70000002
++#define DT_MIPS_ICHECKSUM 0x70000003
++#define DT_MIPS_IVERSION 0x70000004
++#define DT_MIPS_FLAGS 0x70000005
++#define DT_MIPS_BASE_ADDRESS 0x70000006
++#define DT_MIPS_MSYM 0x70000007
++#define DT_MIPS_CONFLICT 0x70000008
++#define DT_MIPS_LIBLIST 0x70000009
++#define DT_MIPS_LOCAL_GOTNO 0x7000000a
++#define DT_MIPS_CONFLICTNO 0x7000000b
++#define DT_MIPS_LIBLISTNO 0x70000010
++#define DT_MIPS_SYMTABNO 0x70000011
++#define DT_MIPS_UNREFEXTNO 0x70000012
++#define DT_MIPS_GOTSYM 0x70000013
++#define DT_MIPS_HIPAGENO 0x70000014
++#define DT_MIPS_RLD_MAP 0x70000016
++#define DT_MIPS_DELTA_CLASS 0x70000017
++#define DT_MIPS_DELTA_CLASS_NO 0x70000018
++
++#define DT_MIPS_DELTA_INSTANCE 0x70000019
++#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
++
++#define DT_MIPS_DELTA_RELOC 0x7000001b
++#define DT_MIPS_DELTA_RELOC_NO 0x7000001c
++
++#define DT_MIPS_DELTA_SYM 0x7000001d
++
++#define DT_MIPS_DELTA_SYM_NO 0x7000001e
++
++#define DT_MIPS_DELTA_CLASSSYM 0x70000020
++
++#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
++
++#define DT_MIPS_CXX_FLAGS 0x70000022
++#define DT_MIPS_PIXIE_INIT 0x70000023
++#define DT_MIPS_SYMBOL_LIB 0x70000024
++#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
++#define DT_MIPS_LOCAL_GOTIDX 0x70000026
++#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
++#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
++#define DT_MIPS_OPTIONS 0x70000029
++#define DT_MIPS_INTERFACE 0x7000002a
++#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
++#define DT_MIPS_INTERFACE_SIZE 0x7000002c
++#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
++
++#define DT_MIPS_PERF_SUFFIX 0x7000002e
++
++#define DT_MIPS_COMPACT_SIZE 0x7000002f
++#define DT_MIPS_GP_VALUE 0x70000030
++#define DT_MIPS_AUX_DYNAMIC 0x70000031
++
++#define DT_MIPS_PLTGOT 0x70000032
++
++#define DT_MIPS_RWPLT 0x70000034
++#define DT_MIPS_NUM 0x35
++
++
++
++#define RHF_NONE 0
++#define RHF_QUICKSTART (1 << 0)
++#define RHF_NOTPOT (1 << 1)
++#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
++#define RHF_NO_MOVE (1 << 3)
++#define RHF_SGI_ONLY (1 << 4)
++#define RHF_GUARANTEE_INIT (1 << 5)
++#define RHF_DELTA_C_PLUS_PLUS (1 << 6)
++#define RHF_GUARANTEE_START_INIT (1 << 7)
++#define RHF_PIXIE (1 << 8)
++#define RHF_DEFAULT_DELAY_LOAD (1 << 9)
++#define RHF_REQUICKSTART (1 << 10)
++#define RHF_REQUICKSTARTED (1 << 11)
++#define RHF_CORD (1 << 12)
++#define RHF_NO_UNRES_UNDEF (1 << 13)
++#define RHF_RLD_ORDER_SAFE (1 << 14)
++
++
++
++typedef struct
++{
++ Elf32_Word l_name;
++ Elf32_Word l_time_stamp;
++ Elf32_Word l_checksum;
++ Elf32_Word l_version;
++ Elf32_Word l_flags;
++} Elf32_Lib;
++
++typedef struct
++{
++ Elf64_Word l_name;
++ Elf64_Word l_time_stamp;
++ Elf64_Word l_checksum;
++ Elf64_Word l_version;
++ Elf64_Word l_flags;
++} Elf64_Lib;
++
++
++
++
++#define LL_NONE 0
++#define LL_EXACT_MATCH (1 << 0)
++#define LL_IGNORE_INT_VER (1 << 1)
++#define LL_REQUIRE_MINOR (1 << 2)
++#define LL_EXPORTS (1 << 3)
++#define LL_DELAY_LOAD (1 << 4)
++#define LL_DELTA (1 << 5)
++
++
++
++typedef Elf32_Addr Elf32_Conflict;
++
++
++
++
++
++
++#define EF_PARISC_TRAPNIL 0x00010000
++#define EF_PARISC_EXT 0x00020000
++#define EF_PARISC_LSB 0x00040000
++#define EF_PARISC_WIDE 0x00080000
++#define EF_PARISC_NO_KABP 0x00100000
++
++#define EF_PARISC_LAZYSWAP 0x00400000
++#define EF_PARISC_ARCH 0x0000ffff
++
++
++
++#define EFA_PARISC_1_0 0x020b
++#define EFA_PARISC_1_1 0x0210
++#define EFA_PARISC_2_0 0x0214
++
++
++
++#define SHN_PARISC_ANSI_COMMON 0xff00
++
++#define SHN_PARISC_HUGE_COMMON 0xff01
++
++
++
++#define SHT_PARISC_EXT 0x70000000
++#define SHT_PARISC_UNWIND 0x70000001
++#define SHT_PARISC_DOC 0x70000002
++
++
++
++#define SHF_PARISC_SHORT 0x20000000
++#define SHF_PARISC_HUGE 0x40000000
++#define SHF_PARISC_SBP 0x80000000
++
++
++
++#define STT_PARISC_MILLICODE 13
++
++#define STT_HP_OPAQUE (STT_LOOS + 0x1)
++#define STT_HP_STUB (STT_LOOS + 0x2)
++
++
++
++#define R_PARISC_NONE 0
++#define R_PARISC_DIR32 1
++#define R_PARISC_DIR21L 2
++#define R_PARISC_DIR17R 3
++#define R_PARISC_DIR17F 4
++#define R_PARISC_DIR14R 6
++#define R_PARISC_PCREL32 9
++#define R_PARISC_PCREL21L 10
++#define R_PARISC_PCREL17R 11
++#define R_PARISC_PCREL17F 12
++#define R_PARISC_PCREL14R 14
++#define R_PARISC_DPREL21L 18
++#define R_PARISC_DPREL14R 22
++#define R_PARISC_GPREL21L 26
++#define R_PARISC_GPREL14R 30
++#define R_PARISC_LTOFF21L 34
++#define R_PARISC_LTOFF14R 38
++#define R_PARISC_SECREL32 41
++#define R_PARISC_SEGBASE 48
++#define R_PARISC_SEGREL32 49
++#define R_PARISC_PLTOFF21L 50
++#define R_PARISC_PLTOFF14R 54
++#define R_PARISC_LTOFF_FPTR32 57
++#define R_PARISC_LTOFF_FPTR21L 58
++#define R_PARISC_LTOFF_FPTR14R 62
++#define R_PARISC_FPTR64 64
++#define R_PARISC_PLABEL32 65
++#define R_PARISC_PLABEL21L 66
++#define R_PARISC_PLABEL14R 70
++#define R_PARISC_PCREL64 72
++#define R_PARISC_PCREL22F 74
++#define R_PARISC_PCREL14WR 75
++#define R_PARISC_PCREL14DR 76
++#define R_PARISC_PCREL16F 77
++#define R_PARISC_PCREL16WF 78
++#define R_PARISC_PCREL16DF 79
++#define R_PARISC_DIR64 80
++#define R_PARISC_DIR14WR 83
++#define R_PARISC_DIR14DR 84
++#define R_PARISC_DIR16F 85
++#define R_PARISC_DIR16WF 86
++#define R_PARISC_DIR16DF 87
++#define R_PARISC_GPREL64 88
++#define R_PARISC_GPREL14WR 91
++#define R_PARISC_GPREL14DR 92
++#define R_PARISC_GPREL16F 93
++#define R_PARISC_GPREL16WF 94
++#define R_PARISC_GPREL16DF 95
++#define R_PARISC_LTOFF64 96
++#define R_PARISC_LTOFF14WR 99
++#define R_PARISC_LTOFF14DR 100
++#define R_PARISC_LTOFF16F 101
++#define R_PARISC_LTOFF16WF 102
++#define R_PARISC_LTOFF16DF 103
++#define R_PARISC_SECREL64 104
++#define R_PARISC_SEGREL64 112
++#define R_PARISC_PLTOFF14WR 115
++#define R_PARISC_PLTOFF14DR 116
++#define R_PARISC_PLTOFF16F 117
++#define R_PARISC_PLTOFF16WF 118
++#define R_PARISC_PLTOFF16DF 119
++#define R_PARISC_LTOFF_FPTR64 120
++#define R_PARISC_LTOFF_FPTR14WR 123
++#define R_PARISC_LTOFF_FPTR14DR 124
++#define R_PARISC_LTOFF_FPTR16F 125
++#define R_PARISC_LTOFF_FPTR16WF 126
++#define R_PARISC_LTOFF_FPTR16DF 127
++#define R_PARISC_LORESERVE 128
++#define R_PARISC_COPY 128
++#define R_PARISC_IPLT 129
++#define R_PARISC_EPLT 130
++#define R_PARISC_TPREL32 153
++#define R_PARISC_TPREL21L 154
++#define R_PARISC_TPREL14R 158
++#define R_PARISC_LTOFF_TP21L 162
++#define R_PARISC_LTOFF_TP14R 166
++#define R_PARISC_LTOFF_TP14F 167
++#define R_PARISC_TPREL64 216
++#define R_PARISC_TPREL14WR 219
++#define R_PARISC_TPREL14DR 220
++#define R_PARISC_TPREL16F 221
++#define R_PARISC_TPREL16WF 222
++#define R_PARISC_TPREL16DF 223
++#define R_PARISC_LTOFF_TP64 224
++#define R_PARISC_LTOFF_TP14WR 227
++#define R_PARISC_LTOFF_TP14DR 228
++#define R_PARISC_LTOFF_TP16F 229
++#define R_PARISC_LTOFF_TP16WF 230
++#define R_PARISC_LTOFF_TP16DF 231
++#define R_PARISC_GNU_VTENTRY 232
++#define R_PARISC_GNU_VTINHERIT 233
++#define R_PARISC_TLS_GD21L 234
++#define R_PARISC_TLS_GD14R 235
++#define R_PARISC_TLS_GDCALL 236
++#define R_PARISC_TLS_LDM21L 237
++#define R_PARISC_TLS_LDM14R 238
++#define R_PARISC_TLS_LDMCALL 239
++#define R_PARISC_TLS_LDO21L 240
++#define R_PARISC_TLS_LDO14R 241
++#define R_PARISC_TLS_DTPMOD32 242
++#define R_PARISC_TLS_DTPMOD64 243
++#define R_PARISC_TLS_DTPOFF32 244
++#define R_PARISC_TLS_DTPOFF64 245
++#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L
++#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R
++#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L
++#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R
++#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32
++#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64
++#define R_PARISC_HIRESERVE 255
++
++
++
++#define PT_HP_TLS (PT_LOOS + 0x0)
++#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
++#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
++#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
++#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
++#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
++#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
++#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
++#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
++#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
++#define PT_HP_PARALLEL (PT_LOOS + 0x10)
++#define PT_HP_FASTBIND (PT_LOOS + 0x11)
++#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
++#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
++#define PT_HP_STACK (PT_LOOS + 0x14)
++
++#define PT_PARISC_ARCHEXT 0x70000000
++#define PT_PARISC_UNWIND 0x70000001
++
++
++
++#define PF_PARISC_SBP 0x08000000
++
++#define PF_HP_PAGE_SIZE 0x00100000
++#define PF_HP_FAR_SHARED 0x00200000
++#define PF_HP_NEAR_SHARED 0x00400000
++#define PF_HP_CODE 0x01000000
++#define PF_HP_MODIFY 0x02000000
++#define PF_HP_LAZYSWAP 0x04000000
++#define PF_HP_SBP 0x08000000
++
++
++
++
++
++
++#define EF_ALPHA_32BIT 1
++#define EF_ALPHA_CANRELAX 2
++
++
++
++
++#define SHT_ALPHA_DEBUG 0x70000001
++#define SHT_ALPHA_REGINFO 0x70000002
++
++
++
++#define SHF_ALPHA_GPREL 0x10000000
++
++
++#define STO_ALPHA_NOPV 0x80
++#define STO_ALPHA_STD_GPLOAD 0x88
++
++
++
++#define R_ALPHA_NONE 0
++#define R_ALPHA_REFLONG 1
++#define R_ALPHA_REFQUAD 2
++#define R_ALPHA_GPREL32 3
++#define R_ALPHA_LITERAL 4
++#define R_ALPHA_LITUSE 5
++#define R_ALPHA_GPDISP 6
++#define R_ALPHA_BRADDR 7
++#define R_ALPHA_HINT 8
++#define R_ALPHA_SREL16 9
++#define R_ALPHA_SREL32 10
++#define R_ALPHA_SREL64 11
++#define R_ALPHA_GPRELHIGH 17
++#define R_ALPHA_GPRELLOW 18
++#define R_ALPHA_GPREL16 19
++#define R_ALPHA_COPY 24
++#define R_ALPHA_GLOB_DAT 25
++#define R_ALPHA_JMP_SLOT 26
++#define R_ALPHA_RELATIVE 27
++#define R_ALPHA_TLS_GD_HI 28
++#define R_ALPHA_TLSGD 29
++#define R_ALPHA_TLS_LDM 30
++#define R_ALPHA_DTPMOD64 31
++#define R_ALPHA_GOTDTPREL 32
++#define R_ALPHA_DTPREL64 33
++#define R_ALPHA_DTPRELHI 34
++#define R_ALPHA_DTPRELLO 35
++#define R_ALPHA_DTPREL16 36
++#define R_ALPHA_GOTTPREL 37
++#define R_ALPHA_TPREL64 38
++#define R_ALPHA_TPRELHI 39
++#define R_ALPHA_TPRELLO 40
++#define R_ALPHA_TPREL16 41
++
++#define R_ALPHA_NUM 46
++
++
++#define LITUSE_ALPHA_ADDR 0
++#define LITUSE_ALPHA_BASE 1
++#define LITUSE_ALPHA_BYTOFF 2
++#define LITUSE_ALPHA_JSR 3
++#define LITUSE_ALPHA_TLS_GD 4
++#define LITUSE_ALPHA_TLS_LDM 5
++
++
++#define DT_ALPHA_PLTRO (DT_LOPROC + 0)
++#define DT_ALPHA_NUM 1
++
++
++
++
++#define EF_PPC_EMB 0x80000000
++
++
++#define EF_PPC_RELOCATABLE 0x00010000
++#define EF_PPC_RELOCATABLE_LIB 0x00008000
++
++
++
++#define R_PPC_NONE 0
++#define R_PPC_ADDR32 1
++#define R_PPC_ADDR24 2
++#define R_PPC_ADDR16 3
++#define R_PPC_ADDR16_LO 4
++#define R_PPC_ADDR16_HI 5
++#define R_PPC_ADDR16_HA 6
++#define R_PPC_ADDR14 7
++#define R_PPC_ADDR14_BRTAKEN 8
++#define R_PPC_ADDR14_BRNTAKEN 9
++#define R_PPC_REL24 10
++#define R_PPC_REL14 11
++#define R_PPC_REL14_BRTAKEN 12
++#define R_PPC_REL14_BRNTAKEN 13
++#define R_PPC_GOT16 14
++#define R_PPC_GOT16_LO 15
++#define R_PPC_GOT16_HI 16
++#define R_PPC_GOT16_HA 17
++#define R_PPC_PLTREL24 18
++#define R_PPC_COPY 19
++#define R_PPC_GLOB_DAT 20
++#define R_PPC_JMP_SLOT 21
++#define R_PPC_RELATIVE 22
++#define R_PPC_LOCAL24PC 23
++#define R_PPC_UADDR32 24
++#define R_PPC_UADDR16 25
++#define R_PPC_REL32 26
++#define R_PPC_PLT32 27
++#define R_PPC_PLTREL32 28
++#define R_PPC_PLT16_LO 29
++#define R_PPC_PLT16_HI 30
++#define R_PPC_PLT16_HA 31
++#define R_PPC_SDAREL16 32
++#define R_PPC_SECTOFF 33
++#define R_PPC_SECTOFF_LO 34
++#define R_PPC_SECTOFF_HI 35
++#define R_PPC_SECTOFF_HA 36
++
++
++#define R_PPC_TLS 67
++#define R_PPC_DTPMOD32 68
++#define R_PPC_TPREL16 69
++#define R_PPC_TPREL16_LO 70
++#define R_PPC_TPREL16_HI 71
++#define R_PPC_TPREL16_HA 72
++#define R_PPC_TPREL32 73
++#define R_PPC_DTPREL16 74
++#define R_PPC_DTPREL16_LO 75
++#define R_PPC_DTPREL16_HI 76
++#define R_PPC_DTPREL16_HA 77
++#define R_PPC_DTPREL32 78
++#define R_PPC_GOT_TLSGD16 79
++#define R_PPC_GOT_TLSGD16_LO 80
++#define R_PPC_GOT_TLSGD16_HI 81
++#define R_PPC_GOT_TLSGD16_HA 82
++#define R_PPC_GOT_TLSLD16 83
++#define R_PPC_GOT_TLSLD16_LO 84
++#define R_PPC_GOT_TLSLD16_HI 85
++#define R_PPC_GOT_TLSLD16_HA 86
++#define R_PPC_GOT_TPREL16 87
++#define R_PPC_GOT_TPREL16_LO 88
++#define R_PPC_GOT_TPREL16_HI 89
++#define R_PPC_GOT_TPREL16_HA 90
++#define R_PPC_GOT_DTPREL16 91
++#define R_PPC_GOT_DTPREL16_LO 92
++#define R_PPC_GOT_DTPREL16_HI 93
++#define R_PPC_GOT_DTPREL16_HA 94
++
++
++
++#define R_PPC_EMB_NADDR32 101
++#define R_PPC_EMB_NADDR16 102
++#define R_PPC_EMB_NADDR16_LO 103
++#define R_PPC_EMB_NADDR16_HI 104
++#define R_PPC_EMB_NADDR16_HA 105
++#define R_PPC_EMB_SDAI16 106
++#define R_PPC_EMB_SDA2I16 107
++#define R_PPC_EMB_SDA2REL 108
++#define R_PPC_EMB_SDA21 109
++#define R_PPC_EMB_MRKREF 110
++#define R_PPC_EMB_RELSEC16 111
++#define R_PPC_EMB_RELST_LO 112
++#define R_PPC_EMB_RELST_HI 113
++#define R_PPC_EMB_RELST_HA 114
++#define R_PPC_EMB_BIT_FLD 115
++#define R_PPC_EMB_RELSDA 116
++
++
++#define R_PPC_DIAB_SDA21_LO 180
++#define R_PPC_DIAB_SDA21_HI 181
++#define R_PPC_DIAB_SDA21_HA 182
++#define R_PPC_DIAB_RELSDA_LO 183
++#define R_PPC_DIAB_RELSDA_HI 184
++#define R_PPC_DIAB_RELSDA_HA 185
++
++
++#define R_PPC_IRELATIVE 248
++
++
++#define R_PPC_REL16 249
++#define R_PPC_REL16_LO 250
++#define R_PPC_REL16_HI 251
++#define R_PPC_REL16_HA 252
++
++
++
++#define R_PPC_TOC16 255
++
++
++#define DT_PPC_GOT (DT_LOPROC + 0)
++#define DT_PPC_NUM 1
++
++
++#define R_PPC64_NONE R_PPC_NONE
++#define R_PPC64_ADDR32 R_PPC_ADDR32
++#define R_PPC64_ADDR24 R_PPC_ADDR24
++#define R_PPC64_ADDR16 R_PPC_ADDR16
++#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO
++#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI
++#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA
++#define R_PPC64_ADDR14 R_PPC_ADDR14
++#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
++#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
++#define R_PPC64_REL24 R_PPC_REL24
++#define R_PPC64_REL14 R_PPC_REL14
++#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
++#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
++#define R_PPC64_GOT16 R_PPC_GOT16
++#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
++#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
++#define R_PPC64_GOT16_HA R_PPC_GOT16_HA
++
++#define R_PPC64_COPY R_PPC_COPY
++#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
++#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
++#define R_PPC64_RELATIVE R_PPC_RELATIVE
++
++#define R_PPC64_UADDR32 R_PPC_UADDR32
++#define R_PPC64_UADDR16 R_PPC_UADDR16
++#define R_PPC64_REL32 R_PPC_REL32
++#define R_PPC64_PLT32 R_PPC_PLT32
++#define R_PPC64_PLTREL32 R_PPC_PLTREL32
++#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
++#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
++#define R_PPC64_PLT16_HA R_PPC_PLT16_HA
++
++#define R_PPC64_SECTOFF R_PPC_SECTOFF
++#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
++#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
++#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
++#define R_PPC64_ADDR30 37
++#define R_PPC64_ADDR64 38
++#define R_PPC64_ADDR16_HIGHER 39
++#define R_PPC64_ADDR16_HIGHERA 40
++#define R_PPC64_ADDR16_HIGHEST 41
++#define R_PPC64_ADDR16_HIGHESTA 42
++#define R_PPC64_UADDR64 43
++#define R_PPC64_REL64 44
++#define R_PPC64_PLT64 45
++#define R_PPC64_PLTREL64 46
++#define R_PPC64_TOC16 47
++#define R_PPC64_TOC16_LO 48
++#define R_PPC64_TOC16_HI 49
++#define R_PPC64_TOC16_HA 50
++#define R_PPC64_TOC 51
++#define R_PPC64_PLTGOT16 52
++#define R_PPC64_PLTGOT16_LO 53
++#define R_PPC64_PLTGOT16_HI 54
++#define R_PPC64_PLTGOT16_HA 55
++
++#define R_PPC64_ADDR16_DS 56
++#define R_PPC64_ADDR16_LO_DS 57
++#define R_PPC64_GOT16_DS 58
++#define R_PPC64_GOT16_LO_DS 59
++#define R_PPC64_PLT16_LO_DS 60
++#define R_PPC64_SECTOFF_DS 61
++#define R_PPC64_SECTOFF_LO_DS 62
++#define R_PPC64_TOC16_DS 63
++#define R_PPC64_TOC16_LO_DS 64
++#define R_PPC64_PLTGOT16_DS 65
++#define R_PPC64_PLTGOT16_LO_DS 66
++
++
++#define R_PPC64_TLS 67
++#define R_PPC64_DTPMOD64 68
++#define R_PPC64_TPREL16 69
++#define R_PPC64_TPREL16_LO 70
++#define R_PPC64_TPREL16_HI 71
++#define R_PPC64_TPREL16_HA 72
++#define R_PPC64_TPREL64 73
++#define R_PPC64_DTPREL16 74
++#define R_PPC64_DTPREL16_LO 75
++#define R_PPC64_DTPREL16_HI 76
++#define R_PPC64_DTPREL16_HA 77
++#define R_PPC64_DTPREL64 78
++#define R_PPC64_GOT_TLSGD16 79
++#define R_PPC64_GOT_TLSGD16_LO 80
++#define R_PPC64_GOT_TLSGD16_HI 81
++#define R_PPC64_GOT_TLSGD16_HA 82
++#define R_PPC64_GOT_TLSLD16 83
++#define R_PPC64_GOT_TLSLD16_LO 84
++#define R_PPC64_GOT_TLSLD16_HI 85
++#define R_PPC64_GOT_TLSLD16_HA 86
++#define R_PPC64_GOT_TPREL16_DS 87
++#define R_PPC64_GOT_TPREL16_LO_DS 88
++#define R_PPC64_GOT_TPREL16_HI 89
++#define R_PPC64_GOT_TPREL16_HA 90
++#define R_PPC64_GOT_DTPREL16_DS 91
++#define R_PPC64_GOT_DTPREL16_LO_DS 92
++#define R_PPC64_GOT_DTPREL16_HI 93
++#define R_PPC64_GOT_DTPREL16_HA 94
++#define R_PPC64_TPREL16_DS 95
++#define R_PPC64_TPREL16_LO_DS 96
++#define R_PPC64_TPREL16_HIGHER 97
++#define R_PPC64_TPREL16_HIGHERA 98
++#define R_PPC64_TPREL16_HIGHEST 99
++#define R_PPC64_TPREL16_HIGHESTA 100
++#define R_PPC64_DTPREL16_DS 101
++#define R_PPC64_DTPREL16_LO_DS 102
++#define R_PPC64_DTPREL16_HIGHER 103
++#define R_PPC64_DTPREL16_HIGHERA 104
++#define R_PPC64_DTPREL16_HIGHEST 105
++#define R_PPC64_DTPREL16_HIGHESTA 106
++
++
++#define R_PPC64_JMP_IREL 247
++#define R_PPC64_IRELATIVE 248
++#define R_PPC64_REL16 249
++#define R_PPC64_REL16_LO 250
++#define R_PPC64_REL16_HI 251
++#define R_PPC64_REL16_HA 252
++
++
++#define DT_PPC64_GLINK (DT_LOPROC + 0)
++#define DT_PPC64_OPD (DT_LOPROC + 1)
++#define DT_PPC64_OPDSZ (DT_LOPROC + 2)
++#define DT_PPC64_NUM 3
++
++
++
++
++
++#define EF_ARM_RELEXEC 0x01
++#define EF_ARM_HASENTRY 0x02
++#define EF_ARM_INTERWORK 0x04
++#define EF_ARM_APCS_26 0x08
++#define EF_ARM_APCS_FLOAT 0x10
++#define EF_ARM_PIC 0x20
++#define EF_ARM_ALIGN8 0x40
++#define EF_ARM_NEW_ABI 0x80
++#define EF_ARM_OLD_ABI 0x100
++#define EF_ARM_SOFT_FLOAT 0x200
++#define EF_ARM_VFP_FLOAT 0x400
++#define EF_ARM_MAVERICK_FLOAT 0x800
++
++#define EF_ARM_ABI_FLOAT_SOFT 0x200
++#define EF_ARM_ABI_FLOAT_HARD 0x400
++
++
++#define EF_ARM_SYMSARESORTED 0x04
++#define EF_ARM_DYNSYMSUSESEGIDX 0x08
++#define EF_ARM_MAPSYMSFIRST 0x10
++#define EF_ARM_EABIMASK 0XFF000000
++
++
++#define EF_ARM_BE8 0x00800000
++#define EF_ARM_LE8 0x00400000
++
++#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
++#define EF_ARM_EABI_UNKNOWN 0x00000000
++#define EF_ARM_EABI_VER1 0x01000000
++#define EF_ARM_EABI_VER2 0x02000000
++#define EF_ARM_EABI_VER3 0x03000000
++#define EF_ARM_EABI_VER4 0x04000000
++#define EF_ARM_EABI_VER5 0x05000000
++
++
++#define STT_ARM_TFUNC STT_LOPROC
++#define STT_ARM_16BIT STT_HIPROC
++
++
++#define SHF_ARM_ENTRYSECT 0x10000000
++#define SHF_ARM_COMDEF 0x80000000
++
++
++
++#define PF_ARM_SB 0x10000000
++
++#define PF_ARM_PI 0x20000000
++#define PF_ARM_ABS 0x40000000
++
++
++#define PT_ARM_EXIDX (PT_LOPROC + 1)
++
++
++#define SHT_ARM_EXIDX (SHT_LOPROC + 1)
++#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2)
++#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3)
++
++
++#define R_AARCH64_NONE 0
++#define R_AARCH64_ABS64 257
++#define R_AARCH64_ABS32 258
++#define R_AARCH64_COPY 1024
++#define R_AARCH64_GLOB_DAT 1025
++#define R_AARCH64_JUMP_SLOT 1026
++#define R_AARCH64_RELATIVE 1027
++#define R_AARCH64_TLS_DTPMOD64 1028
++#define R_AARCH64_TLS_DTPREL64 1029
++#define R_AARCH64_TLS_TPREL64 1030
++#define R_AARCH64_TLSDESC 1031
++
++
++#define R_ARM_NONE 0
++#define R_ARM_PC24 1
++#define R_ARM_ABS32 2
++#define R_ARM_REL32 3
++#define R_ARM_PC13 4
++#define R_ARM_ABS16 5
++#define R_ARM_ABS12 6
++#define R_ARM_THM_ABS5 7
++#define R_ARM_ABS8 8
++#define R_ARM_SBREL32 9
++#define R_ARM_THM_PC22 10
++#define R_ARM_THM_PC8 11
++#define R_ARM_AMP_VCALL9 12
++#define R_ARM_TLS_DESC 13
++#define R_ARM_THM_SWI8 14
++#define R_ARM_XPC25 15
++#define R_ARM_THM_XPC22 16
++#define R_ARM_TLS_DTPMOD32 17
++#define R_ARM_TLS_DTPOFF32 18
++#define R_ARM_TLS_TPOFF32 19
++#define R_ARM_COPY 20
++#define R_ARM_GLOB_DAT 21
++#define R_ARM_JUMP_SLOT 22
++#define R_ARM_RELATIVE 23
++#define R_ARM_GOTOFF 24
++#define R_ARM_GOTPC 25
++#define R_ARM_GOT32 26
++#define R_ARM_PLT32 27
++#define R_ARM_CALL 28
++#define R_ARM_JUMP24 29
++#define R_ARM_THM_JUMP24 30
++#define R_ARM_BASE_ABS 31
++#define R_ARM_ALU_PCREL_7_0 32
++#define R_ARM_ALU_PCREL_15_8 33
++#define R_ARM_ALU_PCREL_23_15 34
++#define R_ARM_LDR_SBREL_11_0 35
++#define R_ARM_ALU_SBREL_19_12 36
++#define R_ARM_ALU_SBREL_27_20 37
++#define R_ARM_TARGET1 38
++#define R_ARM_SBREL31 39
++#define R_ARM_V4BX 40
++#define R_ARM_TARGET2 41
++#define R_ARM_PREL31 42
++#define R_ARM_MOVW_ABS_NC 43
++#define R_ARM_MOVT_ABS 44
++#define R_ARM_MOVW_PREL_NC 45
++#define R_ARM_MOVT_PREL 46
++#define R_ARM_THM_MOVW_ABS_NC 47
++#define R_ARM_THM_MOVT_ABS 48
++#define R_ARM_THM_MOVW_PREL_NC 49
++#define R_ARM_THM_MOVT_PREL 50
++#define R_ARM_THM_JUMP19 51
++#define R_ARM_THM_JUMP6 52
++#define R_ARM_THM_ALU_PREL_11_0 53
++#define R_ARM_THM_PC12 54
++#define R_ARM_ABS32_NOI 55
++#define R_ARM_REL32_NOI 56
++#define R_ARM_ALU_PC_G0_NC 57
++#define R_ARM_ALU_PC_G0 58
++#define R_ARM_ALU_PC_G1_NC 59
++#define R_ARM_ALU_PC_G1 60
++#define R_ARM_ALU_PC_G2 61
++#define R_ARM_LDR_PC_G1 62
++#define R_ARM_LDR_PC_G2 63
++#define R_ARM_LDRS_PC_G0 64
++#define R_ARM_LDRS_PC_G1 65
++#define R_ARM_LDRS_PC_G2 66
++#define R_ARM_LDC_PC_G0 67
++#define R_ARM_LDC_PC_G1 68
++#define R_ARM_LDC_PC_G2 69
++#define R_ARM_ALU_SB_G0_NC 70
++#define R_ARM_ALU_SB_G0 71
++#define R_ARM_ALU_SB_G1_NC 72
++#define R_ARM_ALU_SB_G1 73
++#define R_ARM_ALU_SB_G2 74
++#define R_ARM_LDR_SB_G0 75
++#define R_ARM_LDR_SB_G1 76
++#define R_ARM_LDR_SB_G2 77
++#define R_ARM_LDRS_SB_G0 78
++#define R_ARM_LDRS_SB_G1 79
++#define R_ARM_LDRS_SB_G2 80
++#define R_ARM_LDC_SB_G0 81
++#define R_ARM_LDC_SB_G1 82
++#define R_ARM_LDC_SB_G2 83
++#define R_ARM_MOVW_BREL_NC 84
++#define R_ARM_MOVT_BREL 85
++#define R_ARM_MOVW_BREL 86
++#define R_ARM_THM_MOVW_BREL_NC 87
++#define R_ARM_THM_MOVT_BREL 88
++#define R_ARM_THM_MOVW_BREL 89
++#define R_ARM_TLS_GOTDESC 90
++#define R_ARM_TLS_CALL 91
++#define R_ARM_TLS_DESCSEQ 92
++#define R_ARM_THM_TLS_CALL 93
++#define R_ARM_PLT32_ABS 94
++#define R_ARM_GOT_ABS 95
++#define R_ARM_GOT_PREL 96
++#define R_ARM_GOT_BREL12 97
++#define R_ARM_GOTOFF12 98
++#define R_ARM_GOTRELAX 99
++#define R_ARM_GNU_VTENTRY 100
++#define R_ARM_GNU_VTINHERIT 101
++#define R_ARM_THM_PC11 102
++#define R_ARM_THM_PC9 103
++#define R_ARM_TLS_GD32 104
++
++#define R_ARM_TLS_LDM32 105
++
++#define R_ARM_TLS_LDO32 106
++
++#define R_ARM_TLS_IE32 107
++
++#define R_ARM_TLS_LE32 108
++#define R_ARM_TLS_LDO12 109
++#define R_ARM_TLS_LE12 110
++#define R_ARM_TLS_IE12GP 111
++#define R_ARM_ME_TOO 128
++#define R_ARM_THM_TLS_DESCSEQ 129
++#define R_ARM_THM_TLS_DESCSEQ16 129
++#define R_ARM_THM_TLS_DESCSEQ32 130
++#define R_ARM_THM_GOT_BREL12 131
++#define R_ARM_IRELATIVE 160
++#define R_ARM_RXPC25 249
++#define R_ARM_RSBREL32 250
++#define R_ARM_THM_RPC22 251
++#define R_ARM_RREL32 252
++#define R_ARM_RABS22 253
++#define R_ARM_RPC24 254
++#define R_ARM_RBASE 255
++
++#define R_ARM_NUM 256
++
++
++
++
++#define EF_IA_64_MASKOS 0x0000000f
++#define EF_IA_64_ABI64 0x00000010
++#define EF_IA_64_ARCH 0xff000000
++
++
++#define PT_IA_64_ARCHEXT (PT_LOPROC + 0)
++#define PT_IA_64_UNWIND (PT_LOPROC + 1)
++#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)
++#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)
++#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)
++
++
++#define PF_IA_64_NORECOV 0x80000000
++
++
++#define SHT_IA_64_EXT (SHT_LOPROC + 0)
++#define SHT_IA_64_UNWIND (SHT_LOPROC + 1)
++
++
++#define SHF_IA_64_SHORT 0x10000000
++#define SHF_IA_64_NORECOV 0x20000000
++
++
++#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
++#define DT_IA_64_NUM 1
++
++
++#define R_IA64_NONE 0x00
++#define R_IA64_IMM14 0x21
++#define R_IA64_IMM22 0x22
++#define R_IA64_IMM64 0x23
++#define R_IA64_DIR32MSB 0x24
++#define R_IA64_DIR32LSB 0x25
++#define R_IA64_DIR64MSB 0x26
++#define R_IA64_DIR64LSB 0x27
++#define R_IA64_GPREL22 0x2a
++#define R_IA64_GPREL64I 0x2b
++#define R_IA64_GPREL32MSB 0x2c
++#define R_IA64_GPREL32LSB 0x2d
++#define R_IA64_GPREL64MSB 0x2e
++#define R_IA64_GPREL64LSB 0x2f
++#define R_IA64_LTOFF22 0x32
++#define R_IA64_LTOFF64I 0x33
++#define R_IA64_PLTOFF22 0x3a
++#define R_IA64_PLTOFF64I 0x3b
++#define R_IA64_PLTOFF64MSB 0x3e
++#define R_IA64_PLTOFF64LSB 0x3f
++#define R_IA64_FPTR64I 0x43
++#define R_IA64_FPTR32MSB 0x44
++#define R_IA64_FPTR32LSB 0x45
++#define R_IA64_FPTR64MSB 0x46
++#define R_IA64_FPTR64LSB 0x47
++#define R_IA64_PCREL60B 0x48
++#define R_IA64_PCREL21B 0x49
++#define R_IA64_PCREL21M 0x4a
++#define R_IA64_PCREL21F 0x4b
++#define R_IA64_PCREL32MSB 0x4c
++#define R_IA64_PCREL32LSB 0x4d
++#define R_IA64_PCREL64MSB 0x4e
++#define R_IA64_PCREL64LSB 0x4f
++#define R_IA64_LTOFF_FPTR22 0x52
++#define R_IA64_LTOFF_FPTR64I 0x53
++#define R_IA64_LTOFF_FPTR32MSB 0x54
++#define R_IA64_LTOFF_FPTR32LSB 0x55
++#define R_IA64_LTOFF_FPTR64MSB 0x56
++#define R_IA64_LTOFF_FPTR64LSB 0x57
++#define R_IA64_SEGREL32MSB 0x5c
++#define R_IA64_SEGREL32LSB 0x5d
++#define R_IA64_SEGREL64MSB 0x5e
++#define R_IA64_SEGREL64LSB 0x5f
++#define R_IA64_SECREL32MSB 0x64
++#define R_IA64_SECREL32LSB 0x65
++#define R_IA64_SECREL64MSB 0x66
++#define R_IA64_SECREL64LSB 0x67
++#define R_IA64_REL32MSB 0x6c
++#define R_IA64_REL32LSB 0x6d
++#define R_IA64_REL64MSB 0x6e
++#define R_IA64_REL64LSB 0x6f
++#define R_IA64_LTV32MSB 0x74
++#define R_IA64_LTV32LSB 0x75
++#define R_IA64_LTV64MSB 0x76
++#define R_IA64_LTV64LSB 0x77
++#define R_IA64_PCREL21BI 0x79
++#define R_IA64_PCREL22 0x7a
++#define R_IA64_PCREL64I 0x7b
++#define R_IA64_IPLTMSB 0x80
++#define R_IA64_IPLTLSB 0x81
++#define R_IA64_COPY 0x84
++#define R_IA64_SUB 0x85
++#define R_IA64_LTOFF22X 0x86
++#define R_IA64_LDXMOV 0x87
++#define R_IA64_TPREL14 0x91
++#define R_IA64_TPREL22 0x92
++#define R_IA64_TPREL64I 0x93
++#define R_IA64_TPREL64MSB 0x96
++#define R_IA64_TPREL64LSB 0x97
++#define R_IA64_LTOFF_TPREL22 0x9a
++#define R_IA64_DTPMOD64MSB 0xa6
++#define R_IA64_DTPMOD64LSB 0xa7
++#define R_IA64_LTOFF_DTPMOD22 0xaa
++#define R_IA64_DTPREL14 0xb1
++#define R_IA64_DTPREL22 0xb2
++#define R_IA64_DTPREL64I 0xb3
++#define R_IA64_DTPREL32MSB 0xb4
++#define R_IA64_DTPREL32LSB 0xb5
++#define R_IA64_DTPREL64MSB 0xb6
++#define R_IA64_DTPREL64LSB 0xb7
++#define R_IA64_LTOFF_DTPREL22 0xba
++
++
++
++
++#define R_SH_NONE 0
++#define R_SH_DIR32 1
++#define R_SH_REL32 2
++#define R_SH_DIR8WPN 3
++#define R_SH_IND12W 4
++#define R_SH_DIR8WPL 5
++#define R_SH_DIR8WPZ 6
++#define R_SH_DIR8BP 7
++#define R_SH_DIR8W 8
++#define R_SH_DIR8L 9
++#define R_SH_SWITCH16 25
++#define R_SH_SWITCH32 26
++#define R_SH_USES 27
++#define R_SH_COUNT 28
++#define R_SH_ALIGN 29
++#define R_SH_CODE 30
++#define R_SH_DATA 31
++#define R_SH_LABEL 32
++#define R_SH_SWITCH8 33
++#define R_SH_GNU_VTINHERIT 34
++#define R_SH_GNU_VTENTRY 35
++#define R_SH_TLS_GD_32 144
++#define R_SH_TLS_LD_32 145
++#define R_SH_TLS_LDO_32 146
++#define R_SH_TLS_IE_32 147
++#define R_SH_TLS_LE_32 148
++#define R_SH_TLS_DTPMOD32 149
++#define R_SH_TLS_DTPOFF32 150
++#define R_SH_TLS_TPOFF32 151
++#define R_SH_GOT32 160
++#define R_SH_PLT32 161
++#define R_SH_COPY 162
++#define R_SH_GLOB_DAT 163
++#define R_SH_JMP_SLOT 164
++#define R_SH_RELATIVE 165
++#define R_SH_GOTOFF 166
++#define R_SH_GOTPC 167
++
++#define R_SH_NUM 256
++
++
++
++#define R_390_NONE 0
++#define R_390_8 1
++#define R_390_12 2
++#define R_390_16 3
++#define R_390_32 4
++#define R_390_PC32 5
++#define R_390_GOT12 6
++#define R_390_GOT32 7
++#define R_390_PLT32 8
++#define R_390_COPY 9
++#define R_390_GLOB_DAT 10
++#define R_390_JMP_SLOT 11
++#define R_390_RELATIVE 12
++#define R_390_GOTOFF32 13
++#define R_390_GOTPC 14
++#define R_390_GOT16 15
++#define R_390_PC16 16
++#define R_390_PC16DBL 17
++#define R_390_PLT16DBL 18
++#define R_390_PC32DBL 19
++#define R_390_PLT32DBL 20
++#define R_390_GOTPCDBL 21
++#define R_390_64 22
++#define R_390_PC64 23
++#define R_390_GOT64 24
++#define R_390_PLT64 25
++#define R_390_GOTENT 26
++#define R_390_GOTOFF16 27
++#define R_390_GOTOFF64 28
++#define R_390_GOTPLT12 29
++#define R_390_GOTPLT16 30
++#define R_390_GOTPLT32 31
++#define R_390_GOTPLT64 32
++#define R_390_GOTPLTENT 33
++#define R_390_PLTOFF16 34
++#define R_390_PLTOFF32 35
++#define R_390_PLTOFF64 36
++#define R_390_TLS_LOAD 37
++#define R_390_TLS_GDCALL 38
++
++#define R_390_TLS_LDCALL 39
++
++#define R_390_TLS_GD32 40
++
++#define R_390_TLS_GD64 41
++
++#define R_390_TLS_GOTIE12 42
++
++#define R_390_TLS_GOTIE32 43
++
++#define R_390_TLS_GOTIE64 44
++
++#define R_390_TLS_LDM32 45
++
++#define R_390_TLS_LDM64 46
++
++#define R_390_TLS_IE32 47
++
++#define R_390_TLS_IE64 48
++
++#define R_390_TLS_IEENT 49
++
++#define R_390_TLS_LE32 50
++
++#define R_390_TLS_LE64 51
++
++#define R_390_TLS_LDO32 52
++
++#define R_390_TLS_LDO64 53
++
++#define R_390_TLS_DTPMOD 54
++#define R_390_TLS_DTPOFF 55
++#define R_390_TLS_TPOFF 56
++
++#define R_390_20 57
++#define R_390_GOT20 58
++#define R_390_GOTPLT20 59
++#define R_390_TLS_GOTIE20 60
++
++
++#define R_390_NUM 61
++
++
++
++#define R_CRIS_NONE 0
++#define R_CRIS_8 1
++#define R_CRIS_16 2
++#define R_CRIS_32 3
++#define R_CRIS_8_PCREL 4
++#define R_CRIS_16_PCREL 5
++#define R_CRIS_32_PCREL 6
++#define R_CRIS_GNU_VTINHERIT 7
++#define R_CRIS_GNU_VTENTRY 8
++#define R_CRIS_COPY 9
++#define R_CRIS_GLOB_DAT 10
++#define R_CRIS_JUMP_SLOT 11
++#define R_CRIS_RELATIVE 12
++#define R_CRIS_16_GOT 13
++#define R_CRIS_32_GOT 14
++#define R_CRIS_16_GOTPLT 15
++#define R_CRIS_32_GOTPLT 16
++#define R_CRIS_32_GOTREL 17
++#define R_CRIS_32_PLT_GOTREL 18
++#define R_CRIS_32_PLT_PCREL 19
++
++#define R_CRIS_NUM 20
++
++
++
++#define R_X86_64_NONE 0
++#define R_X86_64_64 1
++#define R_X86_64_PC32 2
++#define R_X86_64_GOT32 3
++#define R_X86_64_PLT32 4
++#define R_X86_64_COPY 5
++#define R_X86_64_GLOB_DAT 6
++#define R_X86_64_JUMP_SLOT 7
++#define R_X86_64_RELATIVE 8
++#define R_X86_64_GOTPCREL 9
++
++#define R_X86_64_32 10
++#define R_X86_64_32S 11
++#define R_X86_64_16 12
++#define R_X86_64_PC16 13
++#define R_X86_64_8 14
++#define R_X86_64_PC8 15
++#define R_X86_64_DTPMOD64 16
++#define R_X86_64_DTPOFF64 17
++#define R_X86_64_TPOFF64 18
++#define R_X86_64_TLSGD 19
++
++#define R_X86_64_TLSLD 20
++
++#define R_X86_64_DTPOFF32 21
++#define R_X86_64_GOTTPOFF 22
++
++#define R_X86_64_TPOFF32 23
++#define R_X86_64_PC64 24
++#define R_X86_64_GOTOFF64 25
++#define R_X86_64_GOTPC32 26
++#define R_X86_64_GOT64 27
++#define R_X86_64_GOTPCREL64 28
++#define R_X86_64_GOTPC64 29
++#define R_X86_64_GOTPLT64 30
++#define R_X86_64_PLTOFF64 31
++#define R_X86_64_SIZE32 32
++#define R_X86_64_SIZE64 33
++
++#define R_X86_64_GOTPC32_TLSDESC 34
++#define R_X86_64_TLSDESC_CALL 35
++
++#define R_X86_64_TLSDESC 36
++#define R_X86_64_IRELATIVE 37
++#define R_X86_64_RELATIVE64 38
++#define R_X86_64_NUM 39
++
++
++
++#define R_MN10300_NONE 0
++#define R_MN10300_32 1
++#define R_MN10300_16 2
++#define R_MN10300_8 3
++#define R_MN10300_PCREL32 4
++#define R_MN10300_PCREL16 5
++#define R_MN10300_PCREL8 6
++#define R_MN10300_GNU_VTINHERIT 7
++#define R_MN10300_GNU_VTENTRY 8
++#define R_MN10300_24 9
++#define R_MN10300_GOTPC32 10
++#define R_MN10300_GOTPC16 11
++#define R_MN10300_GOTOFF32 12
++#define R_MN10300_GOTOFF24 13
++#define R_MN10300_GOTOFF16 14
++#define R_MN10300_PLT32 15
++#define R_MN10300_PLT16 16
++#define R_MN10300_GOT32 17
++#define R_MN10300_GOT24 18
++#define R_MN10300_GOT16 19
++#define R_MN10300_COPY 20
++#define R_MN10300_GLOB_DAT 21
++#define R_MN10300_JMP_SLOT 22
++#define R_MN10300_RELATIVE 23
++
++#define R_MN10300_NUM 24
++
++
++
++#define R_M32R_NONE 0
++#define R_M32R_16 1
++#define R_M32R_32 2
++#define R_M32R_24 3
++#define R_M32R_10_PCREL 4
++#define R_M32R_18_PCREL 5
++#define R_M32R_26_PCREL 6
++#define R_M32R_HI16_ULO 7
++#define R_M32R_HI16_SLO 8
++#define R_M32R_LO16 9
++#define R_M32R_SDA16 10
++#define R_M32R_GNU_VTINHERIT 11
++#define R_M32R_GNU_VTENTRY 12
++
++#define R_M32R_16_RELA 33
++#define R_M32R_32_RELA 34
++#define R_M32R_24_RELA 35
++#define R_M32R_10_PCREL_RELA 36
++#define R_M32R_18_PCREL_RELA 37
++#define R_M32R_26_PCREL_RELA 38
++#define R_M32R_HI16_ULO_RELA 39
++#define R_M32R_HI16_SLO_RELA 40
++#define R_M32R_LO16_RELA 41
++#define R_M32R_SDA16_RELA 42
++#define R_M32R_RELA_GNU_VTINHERIT 43
++#define R_M32R_RELA_GNU_VTENTRY 44
++#define R_M32R_REL32 45
++
++#define R_M32R_GOT24 48
++#define R_M32R_26_PLTREL 49
++#define R_M32R_COPY 50
++#define R_M32R_GLOB_DAT 51
++#define R_M32R_JMP_SLOT 52
++#define R_M32R_RELATIVE 53
++#define R_M32R_GOTOFF 54
++#define R_M32R_GOTPC24 55
++#define R_M32R_GOT16_HI_ULO 56
++
++#define R_M32R_GOT16_HI_SLO 57
++
++#define R_M32R_GOT16_LO 58
++#define R_M32R_GOTPC_HI_ULO 59
++
++#define R_M32R_GOTPC_HI_SLO 60
++
++#define R_M32R_GOTPC_LO 61
++
++#define R_M32R_GOTOFF_HI_ULO 62
++
++#define R_M32R_GOTOFF_HI_SLO 63
++
++#define R_M32R_GOTOFF_LO 64
++#define R_M32R_NUM 256
++
++#define R_MICROBLAZE_NONE 0
++#define R_MICROBLAZE_32 1
++#define R_MICROBLAZE_32_PCREL 2
++#define R_MICROBLAZE_64_PCREL 3
++#define R_MICROBLAZE_32_PCREL_LO 4
++#define R_MICROBLAZE_64 5
++#define R_MICROBLAZE_32_LO 6
++#define R_MICROBLAZE_SRO32 7
++#define R_MICROBLAZE_SRW32 8
++#define R_MICROBLAZE_64_NONE 9
++#define R_MICROBLAZE_32_SYM_OP_SYM 10
++#define R_MICROBLAZE_GNU_VTINHERIT 11
++#define R_MICROBLAZE_GNU_VTENTRY 12
++#define R_MICROBLAZE_GOTPC_64 13
++#define R_MICROBLAZE_GOT_64 14
++#define R_MICROBLAZE_PLT_64 15
++#define R_MICROBLAZE_REL 16
++#define R_MICROBLAZE_JUMP_SLOT 17
++#define R_MICROBLAZE_GLOB_DAT 18
++#define R_MICROBLAZE_GOTOFF_64 19
++#define R_MICROBLAZE_GOTOFF_32 20
++#define R_MICROBLAZE_COPY 21
++#define R_MICROBLAZE_TLS 22
++#define R_MICROBLAZE_TLSGD 23
++#define R_MICROBLAZE_TLSLD 24
++#define R_MICROBLAZE_TLSDTPMOD32 25
++#define R_MICROBLAZE_TLSDTPREL32 26
++#define R_MICROBLAZE_TLSDTPREL64 27
++#define R_MICROBLAZE_TLSGOTTPREL32 28
++#define R_MICROBLAZE_TLSTPREL32 29
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
diff --git a/target/linux/patches/4.19.310/startup.patch b/target/linux/patches/4.19.310/startup.patch
new file mode 100644
index 000000000..4f42e84a7
--- /dev/null
+++ b/target/linux/patches/4.19.310/startup.patch
@@ -0,0 +1,25 @@
+diff -Nur linux-4.17.orig/init/initramfs.c linux-4.17/init/initramfs.c
+--- linux-4.17.orig/init/initramfs.c 2018-06-03 23:15:21.000000000 +0200
++++ linux-4.17/init/initramfs.c 2018-06-10 17:01:16.000000000 +0200
+@@ -659,6 +659,9 @@
+ * us a chance to load before device_initcalls.
+ */
+ load_default_modules();
++#ifdef CONFIG_DEVTMPFS_MOUNT
++ devtmpfs_mount("dev");
++#endif
+
+ return 0;
+ }
+diff -Nur linux-4.17.orig/init/main.c linux-4.17/init/main.c
+--- linux-4.17.orig/init/main.c 2018-06-03 23:15:21.000000000 +0200
++++ linux-4.17/init/main.c 2018-06-10 17:01:52.000000000 +0200
+@@ -1138,6 +1138,8 @@
+ if (ksys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
+ pr_err("Warning: unable to open an initial console.\n");
+
++ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
++
+ (void) ksys_dup(0);
+ (void) ksys_dup(0);
+ /*
diff --git a/target/linux/patches/4.19.310/vdso2.patch b/target/linux/patches/4.19.310/vdso2.patch
new file mode 100644
index 000000000..3d9d47ede
--- /dev/null
+++ b/target/linux/patches/4.19.310/vdso2.patch
@@ -0,0 +1,24 @@
+diff -Nur linux-4.19.151.orig/arch/x86/entry/vdso/vdso2c.c linux-4.19.151/arch/x86/entry/vdso/vdso2c.c
+--- linux-4.19.151.orig/arch/x86/entry/vdso/vdso2c.c 2020-10-14 10:31:27.000000000 +0200
++++ linux-4.19.151/arch/x86/entry/vdso/vdso2c.c 2020-10-17 06:09:50.000000000 +0200
+@@ -64,8 +64,20 @@
+ #include <tools/le_byteshift.h>
+
+ #include <linux/elf.h>
++#ifdef __linux__
+ #include <linux/types.h>
+ #include <linux/kernel.h>
++#else
++
++#define __must_be_array(a) 0
++#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
++
++typedef _Bool bool;
++enum {
++ false = 0,
++ true = 1
++};
++#endif
+
+ const char *outfilename;
+
diff --git a/target/linux/patches/4.4.132/startup.patch b/target/linux/patches/4.4.132/startup.patch
deleted file mode 100644
index e54ac19a6..000000000
--- a/target/linux/patches/4.4.132/startup.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -Nur linux-4.4.6.orig/init/initramfs.c linux-4.4.6/init/initramfs.c
---- linux-4.4.6.orig/init/initramfs.c 2016-03-16 16:43:17.000000000 +0100
-+++ linux-4.4.6/init/initramfs.c 2016-03-27 14:15:43.931044532 +0200
-@@ -653,6 +653,9 @@
- */
- load_default_modules();
- }
-+#ifdef CONFIG_DEVTMPFS_MOUNT
-+ devtmpfs_mount("dev");
-+#endif
- return 0;
- }
- rootfs_initcall(populate_rootfs);
-diff -Nur linux-4.4.6.orig/init/main.c linux-4.4.6/init/main.c
---- linux-4.4.6.orig/init/main.c 2016-03-16 16:43:17.000000000 +0100
-+++ linux-4.4.6/init/main.c 2016-03-27 14:15:43.935044783 +0200
-@@ -1011,6 +1011,8 @@
- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
- pr_err("Warning: unable to open an initial console.\n");
-
-+ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
-+
- (void) sys_dup(0);
- (void) sys_dup(0);
- /*
-@@ -1019,7 +1021,7 @@
- */
-
- if (!ramdisk_execute_command)
-- ramdisk_execute_command = "/init";
-+ ramdisk_execute_command = "/sbin/init";
-
- if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
- ramdisk_execute_command = NULL;
diff --git a/target/linux/patches/4.4.132/use-libgcc-for-sh.patch b/target/linux/patches/4.4.132/use-libgcc-for-sh.patch
deleted file mode 100644
index 6420219b0..000000000
--- a/target/linux/patches/4.4.132/use-libgcc-for-sh.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -Nur linux-4.1.13.orig/arch/sh/Makefile linux-4.1.13/arch/sh/Makefile
---- linux-4.1.13.orig/arch/sh/Makefile 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/Makefile 2015-12-06 19:59:31.000000000 +0100
-@@ -200,7 +206,9 @@
- KBUILD_CFLAGS += -fasynchronous-unwind-tables
- endif
-
--libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y)
-+LIBGCC = $(shell $(CC) $(KBUILD_CFLAGS) -print-file-name=libgcc.a)
-+
-+libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y) $(LIBGCC)
- libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y)
-
- BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.xz uImage.lzo \
-diff -Nur linux-4.1.13.orig/arch/sh/lib/Makefile linux-4.1.13/arch/sh/lib/Makefile
---- linux-4.1.13.orig/arch/sh/lib/Makefile 2015-11-09 23:34:10.000000000 +0100
-+++ linux-4.1.13/arch/sh/lib/Makefile 2015-12-06 19:59:14.000000000 +0100
-@@ -5,11 +5,6 @@
- lib-y = delay.o memmove.o memchr.o \
- checksum.o strlen.o div64.o div64-generic.o
-
--# Extracted from libgcc
--obj-y += movmem.o ashldi3.o ashrdi3.o lshrdi3.o \
-- ashlsi3.o ashrsi3.o ashiftrt.o lshrsi3.o \
-- udiv_qrnnd.o
--
- udivsi3-y := udivsi3_i4i-Os.o
-
- ifneq ($(CONFIG_CC_OPTIMIZE_FOR_SIZE),y)
diff --git a/target/linux/patches/4.4.132/coldfire-sighandler.patch b/target/linux/patches/4.4.302/coldfire-sighandler.patch
index c52a4e228..c52a4e228 100644
--- a/target/linux/patches/4.4.132/coldfire-sighandler.patch
+++ b/target/linux/patches/4.4.302/coldfire-sighandler.patch
diff --git a/target/linux/patches/4.4.132/crisv32.patch b/target/linux/patches/4.4.302/crisv32.patch
index cb9b0d028..cb9b0d028 100644
--- a/target/linux/patches/4.4.132/crisv32.patch
+++ b/target/linux/patches/4.4.302/crisv32.patch
diff --git a/target/linux/patches/4.4.132/crisv32_ethernet_driver.patch b/target/linux/patches/4.4.302/crisv32_ethernet_driver.patch
index 0cef202fc..0cef202fc 100644
--- a/target/linux/patches/4.4.132/crisv32_ethernet_driver.patch
+++ b/target/linux/patches/4.4.302/crisv32_ethernet_driver.patch
diff --git a/target/linux/patches/4.4.302/h8300-net.patch b/target/linux/patches/4.4.302/h8300-net.patch
new file mode 100644
index 000000000..788ae7db8
--- /dev/null
+++ b/target/linux/patches/4.4.302/h8300-net.patch
@@ -0,0 +1,81 @@
+diff -Nur linux-4.4.302.orig/arch/h8300/boot/dts/edosk2674.dts linux-4.4.302/arch/h8300/boot/dts/edosk2674.dts
+--- linux-4.4.302.orig/arch/h8300/boot/dts/edosk2674.dts 2022-02-03 09:27:54.000000000 +0100
++++ linux-4.4.302/arch/h8300/boot/dts/edosk2674.dts 2022-02-14 05:05:26.253691787 +0100
+@@ -6,7 +6,7 @@
+ interrupt-parent = <&h8intc>;
+
+ chosen {
+- bootargs = "console=ttySC2,38400";
++ bootargs = "console=ttySC2,38400 root=/dev/nfs ip=dhcp";
+ stdout-path = &sci2;
+ };
+ aliases {
+@@ -104,4 +104,9 @@
+ clocks = <&fclk>;
+ clock-names = "sci_ick";
+ };
++ ethernet: ethernet@f80000 {
++ compatible = "smsc,lan91c94";
++ reg = <0xf80000 0xfbffff>;
++ interrupts = <16 0>;
++ };
+ };
+diff -Nur linux-4.4.302.orig/drivers/net/ethernet/smsc/Kconfig linux-4.4.302/drivers/net/ethernet/smsc/Kconfig
+--- linux-4.4.302.orig/drivers/net/ethernet/smsc/Kconfig 2022-02-03 09:27:54.000000000 +0100
++++ linux-4.4.302/drivers/net/ethernet/smsc/Kconfig 2022-02-14 04:21:54.546112552 +0100
+@@ -7,7 +7,7 @@
+ default y
+ depends on ARM || ARM64 || ATARI_ETHERNAT || BLACKFIN || COLDFIRE || \
+ ISA || M32R || MAC || MIPS || MN10300 || NIOS2 || PCI || \
+- PCMCIA || SUPERH || XTENSA
++ PCMCIA || SUPERH || XTENSA || H8300
+ ---help---
+ If you have a network (Ethernet) card belonging to this class, say Y.
+
+@@ -36,9 +36,8 @@
+ tristate "SMC 91C9x/91C1xxx support"
+ select CRC32
+ select MII
+- depends on !OF || GPIOLIB
+ depends on ARM || ARM64 || ATARI_ETHERNAT || BLACKFIN || COLDFIRE || \
+- M32R || MIPS || MN10300 || NIOS2 || SUPERH || XTENSA
++ M32R || MIPS || MN10300 || NIOS2 || SUPERH || XTENSA || H8300
+ ---help---
+ This is a driver for SMC's 91x series of Ethernet chipsets,
+ including the SMC91C94 and the SMC91C111. Say Y if you want it
+diff -Nur linux-4.4.302.orig/drivers/net/ethernet/smsc/smc91x.c linux-4.4.302/drivers/net/ethernet/smsc/smc91x.c
+--- linux-4.4.302.orig/drivers/net/ethernet/smsc/smc91x.c 2022-02-03 09:27:54.000000000 +0100
++++ linux-4.4.302/drivers/net/ethernet/smsc/smc91x.c 2022-02-14 05:31:18.727485106 +0100
+@@ -61,7 +61,7 @@
+
+ /* Debugging level */
+ #ifndef SMC_DEBUG
+-#define SMC_DEBUG 0
++#define SMC_DEBUG 1
+ #endif
+
+
+@@ -2204,6 +2204,7 @@
+ };
+ MODULE_DEVICE_TABLE(of, smc91x_match);
+
++#if defined(CONFIG_GPIOLIB)
+ /**
+ * of_try_set_control_gpio - configure a gpio if it exists
+ */
+@@ -2228,6 +2229,15 @@
+
+ return 0;
+ }
++#else
++static int try_toggle_control_gpio(struct device *dev,
++ struct gpio_desc **desc,
++ const char *name, int index,
++ int value, unsigned int nsdelay)
++{
++ return 0;
++}
++#endif
+ #endif
+
+ /*
diff --git a/target/linux/patches/4.4.132/h8300.patch b/target/linux/patches/4.4.302/h8300.patch
index cf73989a6..cf73989a6 100644
--- a/target/linux/patches/4.4.132/h8300.patch
+++ b/target/linux/patches/4.4.302/h8300.patch
diff --git a/target/linux/patches/4.1.51/initramfs-nosizelimit.patch b/target/linux/patches/4.4.302/initramfs-nosizelimit.patch
index 40d2f6bd8..40d2f6bd8 100644
--- a/target/linux/patches/4.1.51/initramfs-nosizelimit.patch
+++ b/target/linux/patches/4.4.302/initramfs-nosizelimit.patch
diff --git a/target/linux/patches/4.4.132/ld-or1k.patch b/target/linux/patches/4.4.302/ld-or1k.patch
index 264f9166f..264f9166f 100644
--- a/target/linux/patches/4.4.132/ld-or1k.patch
+++ b/target/linux/patches/4.4.302/ld-or1k.patch
diff --git a/target/linux/patches/4.4.132/macsonic.patch b/target/linux/patches/4.4.302/macsonic.patch
index 75a6fcad2..75a6fcad2 100644
--- a/target/linux/patches/4.4.132/macsonic.patch
+++ b/target/linux/patches/4.4.302/macsonic.patch
diff --git a/target/linux/patches/4.4.132/mips-xz.patch b/target/linux/patches/4.4.302/mips-xz.patch
index 5cfac6254..5cfac6254 100644
--- a/target/linux/patches/4.4.132/mips-xz.patch
+++ b/target/linux/patches/4.4.302/mips-xz.patch
diff --git a/target/linux/patches/4.4.132/patch-realtime b/target/linux/patches/4.4.302/patch-realtime
index 9fe252409..9fe252409 100644
--- a/target/linux/patches/4.4.132/patch-realtime
+++ b/target/linux/patches/4.4.302/patch-realtime
diff --git a/target/linux/patches/4.4.302/startup.patch b/target/linux/patches/4.4.302/startup.patch
new file mode 100644
index 000000000..f9ab3f1c1
--- /dev/null
+++ b/target/linux/patches/4.4.302/startup.patch
@@ -0,0 +1,25 @@
+diff -Nur linux-4.4.6.orig/init/initramfs.c linux-4.4.6/init/initramfs.c
+--- linux-4.4.6.orig/init/initramfs.c 2016-03-16 16:43:17.000000000 +0100
++++ linux-4.4.6/init/initramfs.c 2016-03-27 14:15:43.931044532 +0200
+@@ -653,6 +653,9 @@
+ */
+ load_default_modules();
+ }
++#ifdef CONFIG_DEVTMPFS_MOUNT
++ devtmpfs_mount("dev");
++#endif
+ return 0;
+ }
+ rootfs_initcall(populate_rootfs);
+diff -Nur linux-4.4.6.orig/init/main.c linux-4.4.6/init/main.c
+--- linux-4.4.6.orig/init/main.c 2016-03-16 16:43:17.000000000 +0100
++++ linux-4.4.6/init/main.c 2016-03-27 14:15:43.935044783 +0200
+@@ -1011,6 +1011,8 @@
+ if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
+ pr_err("Warning: unable to open an initial console.\n");
+
++ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
++
+ (void) sys_dup(0);
+ (void) sys_dup(0);
+ /*
diff --git a/target/linux/patches/4.1.51/use-libgcc-for-sh.patch b/target/linux/patches/4.4.302/use-libgcc-for-sh.patch
index 6420219b0..6420219b0 100644
--- a/target/linux/patches/4.1.51/use-libgcc-for-sh.patch
+++ b/target/linux/patches/4.4.302/use-libgcc-for-sh.patch
diff --git a/target/linux/patches/4.4.132/versatile-nommu.patch b/target/linux/patches/4.4.302/versatile-nommu.patch
index 96140b30c..96140b30c 100644
--- a/target/linux/patches/4.4.132/versatile-nommu.patch
+++ b/target/linux/patches/4.4.302/versatile-nommu.patch
diff --git a/target/linux/patches/4.9.103/initramfs-nosizelimit.patch b/target/linux/patches/4.9.103/initramfs-nosizelimit.patch
deleted file mode 100644
index 40d2f6bd8..000000000
--- a/target/linux/patches/4.9.103/initramfs-nosizelimit.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 9a18df7a71bfa620b1278777d64783a359d7eb4e Mon Sep 17 00:00:00 2001
-From: Thorsten Glaser <tg@mirbsd.org>
-Date: Sun, 4 May 2014 01:37:54 +0200
-Subject: [PATCH] mount tmpfs-as-rootfs (initramfs) with -o
- nr_blocks=0,nr_inodes=0
-
-I would have preferred to write this patch to be able to pass
-rootflags=nr_blocks=0,nr_inodes=0 on the kernel command line,
-and then hand these rootflags over to the initramfs (tmpfs)
-mount in the same way the kernel hands them over to the block
-device rootfs mount. But at least the Debian/m68k initrd also
-parses $rootflags from the environment and adds it to the call
-to the user-space mount for the eventual root device, which
-would make the kernel command line rootflags option be used in
-both places (tmpfs and e.g. ext4) which is guaranteed to error
-out in at least one of them.
-
-This change is intended to aid people in a setup where the
-initrd is the final root filesystem, i.e. not mounted over.
-This is especially useful in automated tests running on qemu
-for boards with constrained memory (e.g. 64 MiB on sh4).
-
-Considering that the initramfs is normally emptied out then
-overmounted, this change is probably safe for setups where
-initramfs just hosts early userspace, too, since the tmpfs
-backing it is not accessible any more later on, AFAICT.
-
-Signed-off-by: Thorsten Glaser <tg@mirbsd.org>
----
- init/do_mounts.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/init/do_mounts.c b/init/do_mounts.c
-index 82f2288..55a4cfe 100644
---- a/init/do_mounts.c
-+++ b/init/do_mounts.c
-@@ -594,6 +594,7 @@ out:
- }
-
- static bool is_tmpfs;
-+static char tmpfs_rootflags[] = "nr_blocks=0,nr_inodes=0";
- static struct dentry *rootfs_mount(struct file_system_type *fs_type,
- int flags, const char *dev_name, void *data)
- {
-@@ -606,6 +607,9 @@ static struct dentry *rootfs_mount(struct file_system_type *fs_type,
- if (IS_ENABLED(CONFIG_TMPFS) && is_tmpfs)
- fill = shmem_fill_super;
-
-+ if (is_tmpfs)
-+ data = tmpfs_rootflags;
-+
- return mount_nodev(fs_type, flags, data, fill);
- }
-
---
-2.0.0.rc0
-
diff --git a/target/linux/patches/4.9.103/startup.patch b/target/linux/patches/4.9.103/startup.patch
deleted file mode 100644
index e54ac19a6..000000000
--- a/target/linux/patches/4.9.103/startup.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -Nur linux-4.4.6.orig/init/initramfs.c linux-4.4.6/init/initramfs.c
---- linux-4.4.6.orig/init/initramfs.c 2016-03-16 16:43:17.000000000 +0100
-+++ linux-4.4.6/init/initramfs.c 2016-03-27 14:15:43.931044532 +0200
-@@ -653,6 +653,9 @@
- */
- load_default_modules();
- }
-+#ifdef CONFIG_DEVTMPFS_MOUNT
-+ devtmpfs_mount("dev");
-+#endif
- return 0;
- }
- rootfs_initcall(populate_rootfs);
-diff -Nur linux-4.4.6.orig/init/main.c linux-4.4.6/init/main.c
---- linux-4.4.6.orig/init/main.c 2016-03-16 16:43:17.000000000 +0100
-+++ linux-4.4.6/init/main.c 2016-03-27 14:15:43.935044783 +0200
-@@ -1011,6 +1011,8 @@
- if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
- pr_err("Warning: unable to open an initial console.\n");
-
-+ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
-+
- (void) sys_dup(0);
- (void) sys_dup(0);
- /*
-@@ -1019,7 +1021,7 @@
- */
-
- if (!ramdisk_execute_command)
-- ramdisk_execute_command = "/init";
-+ ramdisk_execute_command = "/sbin/init";
-
- if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
- ramdisk_execute_command = NULL;
diff --git a/target/linux/patches/4.9.103/alpha-remove-coff.patch b/target/linux/patches/4.9.287/alpha-remove-coff.patch
index 176db3c88..176db3c88 100644
--- a/target/linux/patches/4.9.103/alpha-remove-coff.patch
+++ b/target/linux/patches/4.9.287/alpha-remove-coff.patch
diff --git a/target/linux/patches/4.9.103/arm-nommu.patch b/target/linux/patches/4.9.287/arm-nommu.patch
index a9e80f197..a9e80f197 100644
--- a/target/linux/patches/4.9.103/arm-nommu.patch
+++ b/target/linux/patches/4.9.287/arm-nommu.patch
diff --git a/target/linux/patches/4.9.103/arm-thumb2.patch b/target/linux/patches/4.9.287/arm-thumb2.patch
index 6a42899b6..6a42899b6 100644
--- a/target/linux/patches/4.9.103/arm-thumb2.patch
+++ b/target/linux/patches/4.9.287/arm-thumb2.patch
diff --git a/target/linux/patches/4.9.103/crisv32_ethernet_driver.patch b/target/linux/patches/4.9.287/crisv32_ethernet_driver.patch
index 0cef202fc..0cef202fc 100644
--- a/target/linux/patches/4.9.103/crisv32_ethernet_driver.patch
+++ b/target/linux/patches/4.9.287/crisv32_ethernet_driver.patch
diff --git a/target/linux/patches/4.9.103/h8300.patch b/target/linux/patches/4.9.287/h8300.patch
index c71194f0a..c71194f0a 100644
--- a/target/linux/patches/4.9.103/h8300.patch
+++ b/target/linux/patches/4.9.287/h8300.patch
diff --git a/target/linux/patches/4.9.103/hppa-remove-debug.patch b/target/linux/patches/4.9.287/hppa-remove-debug.patch
index 72059657f..72059657f 100644
--- a/target/linux/patches/4.9.103/hppa-remove-debug.patch
+++ b/target/linux/patches/4.9.287/hppa-remove-debug.patch
diff --git a/target/linux/patches/4.4.132/initramfs-nosizelimit.patch b/target/linux/patches/4.9.287/initramfs-nosizelimit.patch
index 40d2f6bd8..40d2f6bd8 100644
--- a/target/linux/patches/4.4.132/initramfs-nosizelimit.patch
+++ b/target/linux/patches/4.9.287/initramfs-nosizelimit.patch
diff --git a/target/linux/patches/4.9.103/ld-or1k.patch b/target/linux/patches/4.9.287/ld-or1k.patch
index 264f9166f..264f9166f 100644
--- a/target/linux/patches/4.9.103/ld-or1k.patch
+++ b/target/linux/patches/4.9.287/ld-or1k.patch
diff --git a/target/linux/patches/4.9.103/macsonic.patch b/target/linux/patches/4.9.287/macsonic.patch
index 75a6fcad2..75a6fcad2 100644
--- a/target/linux/patches/4.9.103/macsonic.patch
+++ b/target/linux/patches/4.9.287/macsonic.patch
diff --git a/target/linux/patches/4.9.103/microblaze-sigaltstack.patch b/target/linux/patches/4.9.287/microblaze-sigaltstack.patch
index c4064e8b9..c4064e8b9 100644
--- a/target/linux/patches/4.9.103/microblaze-sigaltstack.patch
+++ b/target/linux/patches/4.9.287/microblaze-sigaltstack.patch
diff --git a/target/linux/patches/4.9.287/or1k-more-ram.patch b/target/linux/patches/4.9.287/or1k-more-ram.patch
new file mode 100644
index 000000000..de848c838
--- /dev/null
+++ b/target/linux/patches/4.9.287/or1k-more-ram.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts
+--- linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts 2016-11-26 09:57:13.000000000 +0100
++++ linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts 2016-12-04 14:39:46.092952799 +0100
+@@ -11,7 +11,7 @@
+
+ memory@0 {
+ device_type = "memory";
+- reg = <0x00000000 0x02000000>;
++ reg = <0x00000000 0x04000000>;
+ };
+
+ cpus {
diff --git a/target/linux/patches/4.9.103/patch-realtime b/target/linux/patches/4.9.287/patch-realtime
index 7bb72e14d..7bb72e14d 100644
--- a/target/linux/patches/4.9.103/patch-realtime
+++ b/target/linux/patches/4.9.287/patch-realtime
diff --git a/target/linux/patches/4.9.103/sh2.patch b/target/linux/patches/4.9.287/sh2.patch
index 9debe80ad..9debe80ad 100644
--- a/target/linux/patches/4.9.103/sh2.patch
+++ b/target/linux/patches/4.9.287/sh2.patch
diff --git a/target/linux/patches/4.9.287/startup.patch b/target/linux/patches/4.9.287/startup.patch
new file mode 100644
index 000000000..f9ab3f1c1
--- /dev/null
+++ b/target/linux/patches/4.9.287/startup.patch
@@ -0,0 +1,25 @@
+diff -Nur linux-4.4.6.orig/init/initramfs.c linux-4.4.6/init/initramfs.c
+--- linux-4.4.6.orig/init/initramfs.c 2016-03-16 16:43:17.000000000 +0100
++++ linux-4.4.6/init/initramfs.c 2016-03-27 14:15:43.931044532 +0200
+@@ -653,6 +653,9 @@
+ */
+ load_default_modules();
+ }
++#ifdef CONFIG_DEVTMPFS_MOUNT
++ devtmpfs_mount("dev");
++#endif
+ return 0;
+ }
+ rootfs_initcall(populate_rootfs);
+diff -Nur linux-4.4.6.orig/init/main.c linux-4.4.6/init/main.c
+--- linux-4.4.6.orig/init/main.c 2016-03-16 16:43:17.000000000 +0100
++++ linux-4.4.6/init/main.c 2016-03-27 14:15:43.935044783 +0200
+@@ -1011,6 +1011,8 @@
+ if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
+ pr_err("Warning: unable to open an initial console.\n");
+
++ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
++
+ (void) sys_dup(0);
+ (void) sys_dup(0);
+ /*
diff --git a/target/linux/patches/4.9.287/stm32.patch b/target/linux/patches/4.9.287/stm32.patch
new file mode 100644
index 000000000..9071eab47
--- /dev/null
+++ b/target/linux/patches/4.9.287/stm32.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-4.9.257.orig/arch/arm/boot/dts/stm32f429-disco.dts linux-4.9.257/arch/arm/boot/dts/stm32f429-disco.dts
+--- linux-4.9.257.orig/arch/arm/boot/dts/stm32f429-disco.dts 2021-02-10 09:09:27.000000000 +0100
++++ linux-4.9.257/arch/arm/boot/dts/stm32f429-disco.dts 2021-04-09 20:08:56.113152788 +0200
+@@ -53,7 +53,7 @@
+ compatible = "st,stm32f429i-disco", "st,stm32f429";
+
+ chosen {
+- bootargs = "root=/dev/ram rdinit=/linuxrc";
++ bootargs = "";
+ stdout-path = "serial0:115200n8";
+ };
+
diff --git a/target/linux/patches/4.9.103/vdso2.patch b/target/linux/patches/4.9.287/vdso2.patch
index 35df488a8..35df488a8 100644
--- a/target/linux/patches/4.9.103/vdso2.patch
+++ b/target/linux/patches/4.9.287/vdso2.patch
diff --git a/target/linux/patches/5.10.213/arc.patch b/target/linux/patches/5.10.213/arc.patch
new file mode 100644
index 000000000..20810ce64
--- /dev/null
+++ b/target/linux/patches/5.10.213/arc.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-4.17.1.orig/arch/arc/boot/Makefile linux-4.17.1/arch/arc/boot/Makefile
+--- linux-4.17.1.orig/arch/arc/boot/Makefile 2018-06-11 22:43:19.000000000 +0200
++++ linux-4.17.1/arch/arc/boot/Makefile 2018-06-16 18:28:02.000000000 +0200
+@@ -7,7 +7,7 @@
+
+ OBJCOPYFLAGS= -O binary -R .note -R .note.gnu.build-id -R .comment -S
+
+-LINUX_START_TEXT = $$(readelf -h vmlinux | \
++LINUX_START_TEXT = $$(${CROSS_COMPILE}readelf -h vmlinux | \
+ grep "Entry point address" | grep -o 0x.*)
+
+ UIMAGE_LOADADDR = $(CONFIG_LINUX_LINK_BASE)
diff --git a/target/linux/patches/5.10.213/darwin-dtc.patch b/target/linux/patches/5.10.213/darwin-dtc.patch
new file mode 100644
index 000000000..0cdc23ab4
--- /dev/null
+++ b/target/linux/patches/5.10.213/darwin-dtc.patch
@@ -0,0 +1,26 @@
+diff -Nur linux-4.19.132.orig/scripts/dtc/dtc.h linux-4.19.132/scripts/dtc/dtc.h
+--- linux-4.19.132.orig/scripts/dtc/dtc.h 2020-07-09 09:37:13.000000000 +0200
++++ linux-4.19.132/scripts/dtc/dtc.h 2020-07-15 02:38:00.000000000 +0200
+@@ -33,8 +33,8 @@
+ #include <unistd.h>
+ #include <inttypes.h>
+
+-#include <libfdt_env.h>
+-#include <fdt.h>
++#include "libfdt/libfdt_env.h"
++#include "libfdt/fdt.h"
+
+ #include "util.h"
+
+diff -Nur linux-4.19.132.orig/scripts/dtc/util.c linux-4.19.132/scripts/dtc/util.c
+--- linux-4.19.132.orig/scripts/dtc/util.c 2020-07-09 09:37:13.000000000 +0200
++++ linux-4.19.132/scripts/dtc/util.c 2020-07-15 02:38:18.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+
+-#include "libfdt.h"
++#include "libfdt/libfdt.h"
+ #include "util.h"
+ #include "version_gen.h"
+
diff --git a/target/linux/patches/5.10.213/darwin-file2alias.patch b/target/linux/patches/5.10.213/darwin-file2alias.patch
new file mode 100644
index 000000000..fdbc598a8
--- /dev/null
+++ b/target/linux/patches/5.10.213/darwin-file2alias.patch
@@ -0,0 +1,14 @@
+diff -Nur linux-5.4.42.orig/scripts/mod/file2alias.c linux-5.4.42/scripts/mod/file2alias.c
+--- linux-5.4.42.orig/scripts/mod/file2alias.c 2020-05-20 08:20:41.000000000 +0200
++++ linux-5.4.42/scripts/mod/file2alias.c 2020-06-06 20:14:59.000000000 +0200
+@@ -10,6 +10,10 @@
+ * of the GNU General Public License, incorporated herein by reference.
+ */
+
++/* workaround for Darwin */
++#define _UUID_T
++#define __GETHOSTUUID_H
++
+ #include "modpost.h"
+ #include "devicetable-offsets.h"
+
diff --git a/target/linux/patches/5.10.213/dtc-noyaml.patch b/target/linux/patches/5.10.213/dtc-noyaml.patch
new file mode 100644
index 000000000..759bb01f7
--- /dev/null
+++ b/target/linux/patches/5.10.213/dtc-noyaml.patch
@@ -0,0 +1,16 @@
+diff -Nur linux-5.4.53.orig/scripts/dtc/dtc.c linux-5.4.53/scripts/dtc/dtc.c
+--- linux-5.4.53.orig/scripts/dtc/dtc.c 2020-07-22 09:33:18.000000000 +0200
++++ linux-5.4.53/scripts/dtc/dtc.c 2020-07-28 14:20:10.000000000 +0200
+@@ -349,12 +349,6 @@
+
+ if (streq(outform, "dts")) {
+ dt_to_source(outf, dti);
+-#ifndef NO_YAML
+- } else if (streq(outform, "yaml")) {
+- if (!streq(inform, "dts"))
+- die("YAML output format requires dts input format\n");
+- dt_to_yaml(outf, dti);
+-#endif
+ } else if (streq(outform, "dtb")) {
+ dt_to_blob(outf, dti, outversion);
+ } else if (streq(outform, "asm")) {
diff --git a/target/linux/patches/5.10.213/nds32-ag101p.patch b/target/linux/patches/5.10.213/nds32-ag101p.patch
new file mode 100644
index 000000000..a8beea478
--- /dev/null
+++ b/target/linux/patches/5.10.213/nds32-ag101p.patch
@@ -0,0 +1,64 @@
+diff -Nur linux-5.10.93.orig/arch/nds32/boot/dts/ag101p.dts linux-5.10.93/arch/nds32/boot/dts/ag101p.dts
+--- linux-5.10.93.orig/arch/nds32/boot/dts/ag101p.dts 1970-01-01 01:00:00.000000000 +0100
++++ linux-5.10.93/arch/nds32/boot/dts/ag101p.dts 2022-01-21 03:39:21.936044612 +0100
+@@ -0,0 +1,60 @@
++/dts-v1/;
++/ {
++ compatible = "nds32 ag101p";
++ #address-cells = <1>;
++ #size-cells = <1>;
++ interrupt-parent = <&intc>;
++
++ chosen {
++ bootargs = "console=ttyS0,38400n8 earlyprintk=uart8250-32bit,0x99600000 debug loglevel=7";
++ };
++
++ memory@0 {
++ device_type = "memory";
++ reg = <0x00000000 0x40000000>;
++ };
++
++ cpus {
++ cpu@0 {
++ device_type = "cpu";
++ compatible = "andestech,n13";
++ next-level-cache = <&L2>;
++ };
++ };
++
++ intc: interrupt-controller {
++ compatible = "andestech,atnointc010";
++ #interrupt-cells = <2>;
++ interrupt-controller;
++ };
++
++ serial0: serial@99600000 {
++ compatible = "andestech,uart16550", "ns16550a";
++ reg = <0x99600000 0x1000>;
++ interrupts = <7 4>;
++ clock-frequency = <14745600>;
++ reg-shift = <2>;
++ no-loopback-test = <1>;
++ };
++
++ timer0: timer@98400000 {
++ compatible = "andestech,atftmr010";
++ reg = <0x98400000 0x1000>;
++ interrupts = <19 4>;
++ clock-frequency = <15000000>;
++ cycle-count-offset = <0x20>;
++ };
++
++ mac0: mac@90900000 {
++ compatible = "andestech,atmac100";
++ reg = <0x90900000 0x1000>;
++ interrupts = <25 4>;
++ };
++
++ L2: l2-cache {
++ compatible = "andestech,atl2c";
++ reg = <0x90f00000 0x1000>;
++ cache-unified;
++ cache-level = <2>;
++ };
++};
diff --git a/target/linux/patches/5.10.213/or1k-more-ram.patch b/target/linux/patches/5.10.213/or1k-more-ram.patch
new file mode 100644
index 000000000..de848c838
--- /dev/null
+++ b/target/linux/patches/5.10.213/or1k-more-ram.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts
+--- linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts 2016-11-26 09:57:13.000000000 +0100
++++ linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts 2016-12-04 14:39:46.092952799 +0100
+@@ -11,7 +11,7 @@
+
+ memory@0 {
+ device_type = "memory";
+- reg = <0x00000000 0x02000000>;
++ reg = <0x00000000 0x04000000>;
+ };
+
+ cpus {
diff --git a/target/linux/patches/5.10.213/relocs.patch b/target/linux/patches/5.10.213/relocs.patch
new file mode 100644
index 000000000..5bcd974c7
--- /dev/null
+++ b/target/linux/patches/5.10.213/relocs.patch
@@ -0,0 +1,2698 @@
+diff -Nur linux-5.4.42.orig/arch/x86/tools/relocs.h linux-5.4.42/arch/x86/tools/relocs.h
+--- linux-5.4.42.orig/arch/x86/tools/relocs.h 2020-05-20 08:20:41.000000000 +0200
++++ linux-5.4.42/arch/x86/tools/relocs.h 2020-06-06 18:18:17.000000000 +0200
+@@ -10,11 +10,19 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <unistd.h>
++#ifdef __linux__
+ #include <elf.h>
+ #include <byteswap.h>
+ #define USE_BSD
+ #include <endian.h>
++#else
++#include "elf.h"
++#endif
++#ifdef __APPLE__
++#include <pcreposix.h>
++#else
+ #include <regex.h>
++#endif
+ #include <tools/le_byteshift.h>
+
+ void die(char *fmt, ...) __attribute__((noreturn));
+diff -Nur linux-5.4.42.orig/tools/include/elf.h linux-5.4.42/tools/include/elf.h
+--- linux-5.4.42.orig/tools/include/elf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-5.4.42/tools/include/elf.h 2020-06-06 18:18:17.000000000 +0200
+@@ -0,0 +1,2671 @@
++#ifndef _ELF_H
++#define _ELF_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#include <stdint.h>
++
++typedef uint16_t Elf32_Half;
++typedef uint16_t Elf64_Half;
++
++typedef uint32_t Elf32_Word;
++typedef int32_t Elf32_Sword;
++typedef uint32_t Elf64_Word;
++typedef int32_t Elf64_Sword;
++
++typedef uint64_t Elf32_Xword;
++typedef int64_t Elf32_Sxword;
++typedef uint64_t Elf64_Xword;
++typedef int64_t Elf64_Sxword;
++
++typedef uint32_t Elf32_Addr;
++typedef uint64_t Elf64_Addr;
++
++typedef uint32_t Elf32_Off;
++typedef uint64_t Elf64_Off;
++
++typedef uint16_t Elf32_Section;
++typedef uint16_t Elf64_Section;
++
++typedef Elf32_Half Elf32_Versym;
++typedef Elf64_Half Elf64_Versym;
++
++#define EI_NIDENT (16)
++
++typedef struct {
++ unsigned char e_ident[EI_NIDENT];
++ Elf32_Half e_type;
++ Elf32_Half e_machine;
++ Elf32_Word e_version;
++ Elf32_Addr e_entry;
++ Elf32_Off e_phoff;
++ Elf32_Off e_shoff;
++ Elf32_Word e_flags;
++ Elf32_Half e_ehsize;
++ Elf32_Half e_phentsize;
++ Elf32_Half e_phnum;
++ Elf32_Half e_shentsize;
++ Elf32_Half e_shnum;
++ Elf32_Half e_shstrndx;
++} Elf32_Ehdr;
++
++typedef struct {
++ unsigned char e_ident[EI_NIDENT];
++ Elf64_Half e_type;
++ Elf64_Half e_machine;
++ Elf64_Word e_version;
++ Elf64_Addr e_entry;
++ Elf64_Off e_phoff;
++ Elf64_Off e_shoff;
++ Elf64_Word e_flags;
++ Elf64_Half e_ehsize;
++ Elf64_Half e_phentsize;
++ Elf64_Half e_phnum;
++ Elf64_Half e_shentsize;
++ Elf64_Half e_shnum;
++ Elf64_Half e_shstrndx;
++} Elf64_Ehdr;
++
++#define EI_MAG0 0
++#define ELFMAG0 0x7f
++
++#define EI_MAG1 1
++#define ELFMAG1 'E'
++
++#define EI_MAG2 2
++#define ELFMAG2 'L'
++
++#define EI_MAG3 3
++#define ELFMAG3 'F'
++
++
++#define ELFMAG "\177ELF"
++#define SELFMAG 4
++
++#define EI_CLASS 4
++#define ELFCLASSNONE 0
++#define ELFCLASS32 1
++#define ELFCLASS64 2
++#define ELFCLASSNUM 3
++
++#define EI_DATA 5
++#define ELFDATANONE 0
++#define ELFDATA2LSB 1
++#define ELFDATA2MSB 2
++#define ELFDATANUM 3
++
++#define EI_VERSION 6
++
++
++#define EI_OSABI 7
++#define ELFOSABI_NONE 0
++#define ELFOSABI_SYSV 0
++#define ELFOSABI_HPUX 1
++#define ELFOSABI_NETBSD 2
++#define ELFOSABI_LINUX 3
++#define ELFOSABI_GNU 3
++#define ELFOSABI_SOLARIS 6
++#define ELFOSABI_AIX 7
++#define ELFOSABI_IRIX 8
++#define ELFOSABI_FREEBSD 9
++#define ELFOSABI_TRU64 10
++#define ELFOSABI_MODESTO 11
++#define ELFOSABI_OPENBSD 12
++#define ELFOSABI_ARM 97
++#define ELFOSABI_STANDALONE 255
++
++#define EI_ABIVERSION 8
++
++#define EI_PAD 9
++
++
++
++#define ET_NONE 0
++#define ET_REL 1
++#define ET_EXEC 2
++#define ET_DYN 3
++#define ET_CORE 4
++#define ET_NUM 5
++#define ET_LOOS 0xfe00
++#define ET_HIOS 0xfeff
++#define ET_LOPROC 0xff00
++#define ET_HIPROC 0xffff
++
++
++
++#define EM_NONE 0
++#define EM_M32 1
++#define EM_SPARC 2
++#define EM_386 3
++#define EM_68K 4
++#define EM_88K 5
++#define EM_860 7
++#define EM_MIPS 8
++#define EM_S370 9
++#define EM_MIPS_RS3_LE 10
++
++#define EM_PARISC 15
++#define EM_VPP500 17
++#define EM_SPARC32PLUS 18
++#define EM_960 19
++#define EM_PPC 20
++#define EM_PPC64 21
++#define EM_S390 22
++
++#define EM_V800 36
++#define EM_FR20 37
++#define EM_RH32 38
++#define EM_RCE 39
++#define EM_ARM 40
++#define EM_FAKE_ALPHA 41
++#define EM_SH 42
++#define EM_SPARCV9 43
++#define EM_TRICORE 44
++#define EM_ARC 45
++#define EM_H8_300 46
++#define EM_H8_300H 47
++#define EM_H8S 48
++#define EM_H8_500 49
++#define EM_IA_64 50
++#define EM_MIPS_X 51
++#define EM_COLDFIRE 52
++#define EM_68HC12 53
++#define EM_MMA 54
++#define EM_PCP 55
++#define EM_NCPU 56
++#define EM_NDR1 57
++#define EM_STARCORE 58
++#define EM_ME16 59
++#define EM_ST100 60
++#define EM_TINYJ 61
++#define EM_X86_64 62
++#define EM_PDSP 63
++
++#define EM_FX66 66
++#define EM_ST9PLUS 67
++#define EM_ST7 68
++#define EM_68HC16 69
++#define EM_68HC11 70
++#define EM_68HC08 71
++#define EM_68HC05 72
++#define EM_SVX 73
++#define EM_ST19 74
++#define EM_VAX 75
++#define EM_CRIS 76
++#define EM_JAVELIN 77
++#define EM_FIREPATH 78
++#define EM_ZSP 79
++#define EM_MMIX 80
++#define EM_HUANY 81
++#define EM_PRISM 82
++#define EM_AVR 83
++#define EM_FR30 84
++#define EM_D10V 85
++#define EM_D30V 86
++#define EM_V850 87
++#define EM_M32R 88
++#define EM_MN10300 89
++#define EM_MN10200 90
++#define EM_PJ 91
++#define EM_OPENRISC 92
++#define EM_ARC_A5 93
++#define EM_XTENSA 94
++#define EM_AARCH64 183
++#define EM_TILEPRO 188
++#define EM_MICROBLAZE 189
++#define EM_TILEGX 191
++#define EM_NUM 192
++#define EM_ALPHA 0x9026
++
++#define EV_NONE 0
++#define EV_CURRENT 1
++#define EV_NUM 2
++
++typedef struct {
++ Elf32_Word sh_name;
++ Elf32_Word sh_type;
++ Elf32_Word sh_flags;
++ Elf32_Addr sh_addr;
++ Elf32_Off sh_offset;
++ Elf32_Word sh_size;
++ Elf32_Word sh_link;
++ Elf32_Word sh_info;
++ Elf32_Word sh_addralign;
++ Elf32_Word sh_entsize;
++} Elf32_Shdr;
++
++typedef struct {
++ Elf64_Word sh_name;
++ Elf64_Word sh_type;
++ Elf64_Xword sh_flags;
++ Elf64_Addr sh_addr;
++ Elf64_Off sh_offset;
++ Elf64_Xword sh_size;
++ Elf64_Word sh_link;
++ Elf64_Word sh_info;
++ Elf64_Xword sh_addralign;
++ Elf64_Xword sh_entsize;
++} Elf64_Shdr;
++
++
++
++#define SHN_UNDEF 0
++#define SHN_LORESERVE 0xff00
++#define SHN_LOPROC 0xff00
++#define SHN_BEFORE 0xff00
++
++#define SHN_AFTER 0xff01
++
++#define SHN_HIPROC 0xff1f
++#define SHN_LOOS 0xff20
++#define SHN_HIOS 0xff3f
++#define SHN_ABS 0xfff1
++#define SHN_COMMON 0xfff2
++#define SHN_XINDEX 0xffff
++#define SHN_HIRESERVE 0xffff
++
++
++
++#define SHT_NULL 0
++#define SHT_PROGBITS 1
++#define SHT_SYMTAB 2
++#define SHT_STRTAB 3
++#define SHT_RELA 4
++#define SHT_HASH 5
++#define SHT_DYNAMIC 6
++#define SHT_NOTE 7
++#define SHT_NOBITS 8
++#define SHT_REL 9
++#define SHT_SHLIB 10
++#define SHT_DYNSYM 11
++#define SHT_INIT_ARRAY 14
++#define SHT_FINI_ARRAY 15
++#define SHT_PREINIT_ARRAY 16
++#define SHT_GROUP 17
++#define SHT_SYMTAB_SHNDX 18
++#define SHT_NUM 19
++#define SHT_LOOS 0x60000000
++#define SHT_GNU_ATTRIBUTES 0x6ffffff5
++#define SHT_GNU_HASH 0x6ffffff6
++#define SHT_GNU_LIBLIST 0x6ffffff7
++#define SHT_CHECKSUM 0x6ffffff8
++#define SHT_LOSUNW 0x6ffffffa
++#define SHT_SUNW_move 0x6ffffffa
++#define SHT_SUNW_COMDAT 0x6ffffffb
++#define SHT_SUNW_syminfo 0x6ffffffc
++#define SHT_GNU_verdef 0x6ffffffd
++#define SHT_GNU_verneed 0x6ffffffe
++#define SHT_GNU_versym 0x6fffffff
++#define SHT_HISUNW 0x6fffffff
++#define SHT_HIOS 0x6fffffff
++#define SHT_LOPROC 0x70000000
++#define SHT_HIPROC 0x7fffffff
++#define SHT_LOUSER 0x80000000
++#define SHT_HIUSER 0x8fffffff
++
++#define SHF_WRITE (1 << 0)
++#define SHF_ALLOC (1 << 1)
++#define SHF_EXECINSTR (1 << 2)
++#define SHF_MERGE (1 << 4)
++#define SHF_STRINGS (1 << 5)
++#define SHF_INFO_LINK (1 << 6)
++#define SHF_LINK_ORDER (1 << 7)
++#define SHF_OS_NONCONFORMING (1 << 8)
++
++#define SHF_GROUP (1 << 9)
++#define SHF_TLS (1 << 10)
++#define SHF_MASKOS 0x0ff00000
++#define SHF_MASKPROC 0xf0000000
++#define SHF_ORDERED (1 << 30)
++#define SHF_EXCLUDE (1 << 31)
++
++#define GRP_COMDAT 0x1
++
++typedef struct {
++ Elf32_Word st_name;
++ Elf32_Addr st_value;
++ Elf32_Word st_size;
++ unsigned char st_info;
++ unsigned char st_other;
++ Elf32_Section st_shndx;
++} Elf32_Sym;
++
++typedef struct {
++ Elf64_Word st_name;
++ unsigned char st_info;
++ unsigned char st_other;
++ Elf64_Section st_shndx;
++ Elf64_Addr st_value;
++ Elf64_Xword st_size;
++} Elf64_Sym;
++
++typedef struct {
++ Elf32_Half si_boundto;
++ Elf32_Half si_flags;
++} Elf32_Syminfo;
++
++typedef struct {
++ Elf64_Half si_boundto;
++ Elf64_Half si_flags;
++} Elf64_Syminfo;
++
++#define SYMINFO_BT_SELF 0xffff
++#define SYMINFO_BT_PARENT 0xfffe
++#define SYMINFO_BT_LOWRESERVE 0xff00
++
++#define SYMINFO_FLG_DIRECT 0x0001
++#define SYMINFO_FLG_PASSTHRU 0x0002
++#define SYMINFO_FLG_COPY 0x0004
++#define SYMINFO_FLG_LAZYLOAD 0x0008
++
++#define SYMINFO_NONE 0
++#define SYMINFO_CURRENT 1
++#define SYMINFO_NUM 2
++
++#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
++#define ELF32_ST_TYPE(val) ((val) & 0xf)
++#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
++
++#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
++#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
++#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
++
++#define STB_LOCAL 0
++#define STB_GLOBAL 1
++#define STB_WEAK 2
++#define STB_NUM 3
++#define STB_LOOS 10
++#define STB_GNU_UNIQUE 10
++#define STB_HIOS 12
++#define STB_LOPROC 13
++#define STB_HIPROC 15
++
++#define STT_NOTYPE 0
++#define STT_OBJECT 1
++#define STT_FUNC 2
++#define STT_SECTION 3
++#define STT_FILE 4
++#define STT_COMMON 5
++#define STT_TLS 6
++#define STT_NUM 7
++#define STT_LOOS 10
++#define STT_GNU_IFUNC 10
++#define STT_HIOS 12
++#define STT_LOPROC 13
++#define STT_HIPROC 15
++
++#define STN_UNDEF 0
++
++#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
++#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
++
++#define STV_DEFAULT 0
++#define STV_INTERNAL 1
++#define STV_HIDDEN 2
++#define STV_PROTECTED 3
++
++
++
++
++typedef struct
++{
++ Elf32_Addr r_offset;
++ Elf32_Word r_info;
++} Elf32_Rel;
++
++typedef struct {
++ Elf64_Addr r_offset;
++ Elf64_Xword r_info;
++} Elf64_Rel;
++
++
++
++typedef struct {
++ Elf32_Addr r_offset;
++ Elf32_Word r_info;
++ Elf32_Sword r_addend;
++} Elf32_Rela;
++
++typedef struct {
++ Elf64_Addr r_offset;
++ Elf64_Xword r_info;
++ Elf64_Sxword r_addend;
++} Elf64_Rela;
++
++
++
++#define ELF32_R_SYM(val) ((val) >> 8)
++#define ELF32_R_TYPE(val) ((val) & 0xff)
++#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
++
++#define ELF64_R_SYM(i) ((i) >> 32)
++#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
++#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
++
++
++
++typedef struct {
++ Elf32_Word p_type;
++ Elf32_Off p_offset;
++ Elf32_Addr p_vaddr;
++ Elf32_Addr p_paddr;
++ Elf32_Word p_filesz;
++ Elf32_Word p_memsz;
++ Elf32_Word p_flags;
++ Elf32_Word p_align;
++} Elf32_Phdr;
++
++typedef struct {
++ Elf64_Word p_type;
++ Elf64_Word p_flags;
++ Elf64_Off p_offset;
++ Elf64_Addr p_vaddr;
++ Elf64_Addr p_paddr;
++ Elf64_Xword p_filesz;
++ Elf64_Xword p_memsz;
++ Elf64_Xword p_align;
++} Elf64_Phdr;
++
++
++
++#define PT_NULL 0
++#define PT_LOAD 1
++#define PT_DYNAMIC 2
++#define PT_INTERP 3
++#define PT_NOTE 4
++#define PT_SHLIB 5
++#define PT_PHDR 6
++#define PT_TLS 7
++#define PT_NUM 8
++#define PT_LOOS 0x60000000
++#define PT_GNU_EH_FRAME 0x6474e550
++#define PT_GNU_STACK 0x6474e551
++#define PT_GNU_RELRO 0x6474e552
++#define PT_LOSUNW 0x6ffffffa
++#define PT_SUNWBSS 0x6ffffffa
++#define PT_SUNWSTACK 0x6ffffffb
++#define PT_HISUNW 0x6fffffff
++#define PT_HIOS 0x6fffffff
++#define PT_LOPROC 0x70000000
++#define PT_HIPROC 0x7fffffff
++
++
++#define PN_XNUM 0xffff
++
++
++#define PF_X (1 << 0)
++#define PF_W (1 << 1)
++#define PF_R (1 << 2)
++#define PF_MASKOS 0x0ff00000
++#define PF_MASKPROC 0xf0000000
++
++
++
++#define NT_PRSTATUS 1
++#define NT_FPREGSET 2
++#define NT_PRPSINFO 3
++#define NT_PRXREG 4
++#define NT_TASKSTRUCT 4
++#define NT_PLATFORM 5
++#define NT_AUXV 6
++#define NT_GWINDOWS 7
++#define NT_ASRS 8
++#define NT_PSTATUS 10
++#define NT_PSINFO 13
++#define NT_PRCRED 14
++#define NT_UTSNAME 15
++#define NT_LWPSTATUS 16
++#define NT_LWPSINFO 17
++#define NT_PRFPXREG 20
++#define NT_SIGINFO 0x53494749
++#define NT_FILE 0x46494c45
++#define NT_PRXFPREG 0x46e62b7f
++#define NT_PPC_VMX 0x100
++#define NT_PPC_SPE 0x101
++#define NT_PPC_VSX 0x102
++#define NT_386_TLS 0x200
++#define NT_386_IOPERM 0x201
++#define NT_X86_XSTATE 0x202
++#define NT_S390_HIGH_GPRS 0x300
++#define NT_S390_TIMER 0x301
++#define NT_S390_TODCMP 0x302
++#define NT_S390_TODPREG 0x303
++#define NT_S390_CTRS 0x304
++#define NT_S390_PREFIX 0x305
++#define NT_S390_LAST_BREAK 0x306
++#define NT_S390_SYSTEM_CALL 0x307
++#define NT_S390_TDB 0x308
++#define NT_ARM_VFP 0x400
++#define NT_ARM_TLS 0x401
++#define NT_ARM_HW_BREAK 0x402
++#define NT_ARM_HW_WATCH 0x403
++#define NT_METAG_CBUF 0x500
++#define NT_METAG_RPIPE 0x501
++#define NT_METAG_TLS 0x502
++#define NT_VERSION 1
++
++
++
++
++typedef struct {
++ Elf32_Sword d_tag;
++ union {
++ Elf32_Word d_val;
++ Elf32_Addr d_ptr;
++ } d_un;
++} Elf32_Dyn;
++
++typedef struct {
++ Elf64_Sxword d_tag;
++ union {
++ Elf64_Xword d_val;
++ Elf64_Addr d_ptr;
++ } d_un;
++} Elf64_Dyn;
++
++
++
++#define DT_NULL 0
++#define DT_NEEDED 1
++#define DT_PLTRELSZ 2
++#define DT_PLTGOT 3
++#define DT_HASH 4
++#define DT_STRTAB 5
++#define DT_SYMTAB 6
++#define DT_RELA 7
++#define DT_RELASZ 8
++#define DT_RELAENT 9
++#define DT_STRSZ 10
++#define DT_SYMENT 11
++#define DT_INIT 12
++#define DT_FINI 13
++#define DT_SONAME 14
++#define DT_RPATH 15
++#define DT_SYMBOLIC 16
++#define DT_REL 17
++#define DT_RELSZ 18
++#define DT_RELENT 19
++#define DT_PLTREL 20
++#define DT_DEBUG 21
++#define DT_TEXTREL 22
++#define DT_JMPREL 23
++#define DT_BIND_NOW 24
++#define DT_INIT_ARRAY 25
++#define DT_FINI_ARRAY 26
++#define DT_INIT_ARRAYSZ 27
++#define DT_FINI_ARRAYSZ 28
++#define DT_RUNPATH 29
++#define DT_FLAGS 30
++#define DT_ENCODING 32
++#define DT_PREINIT_ARRAY 32
++#define DT_PREINIT_ARRAYSZ 33
++#define DT_NUM 34
++#define DT_LOOS 0x6000000d
++#define DT_HIOS 0x6ffff000
++#define DT_LOPROC 0x70000000
++#define DT_HIPROC 0x7fffffff
++#define DT_PROCNUM DT_MIPS_NUM
++
++#define DT_VALRNGLO 0x6ffffd00
++#define DT_GNU_PRELINKED 0x6ffffdf5
++#define DT_GNU_CONFLICTSZ 0x6ffffdf6
++#define DT_GNU_LIBLISTSZ 0x6ffffdf7
++#define DT_CHECKSUM 0x6ffffdf8
++#define DT_PLTPADSZ 0x6ffffdf9
++#define DT_MOVEENT 0x6ffffdfa
++#define DT_MOVESZ 0x6ffffdfb
++#define DT_FEATURE_1 0x6ffffdfc
++#define DT_POSFLAG_1 0x6ffffdfd
++
++#define DT_SYMINSZ 0x6ffffdfe
++#define DT_SYMINENT 0x6ffffdff
++#define DT_VALRNGHI 0x6ffffdff
++#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag))
++#define DT_VALNUM 12
++
++#define DT_ADDRRNGLO 0x6ffffe00
++#define DT_GNU_HASH 0x6ffffef5
++#define DT_TLSDESC_PLT 0x6ffffef6
++#define DT_TLSDESC_GOT 0x6ffffef7
++#define DT_GNU_CONFLICT 0x6ffffef8
++#define DT_GNU_LIBLIST 0x6ffffef9
++#define DT_CONFIG 0x6ffffefa
++#define DT_DEPAUDIT 0x6ffffefb
++#define DT_AUDIT 0x6ffffefc
++#define DT_PLTPAD 0x6ffffefd
++#define DT_MOVETAB 0x6ffffefe
++#define DT_SYMINFO 0x6ffffeff
++#define DT_ADDRRNGHI 0x6ffffeff
++#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag))
++#define DT_ADDRNUM 11
++
++
++
++#define DT_VERSYM 0x6ffffff0
++
++#define DT_RELACOUNT 0x6ffffff9
++#define DT_RELCOUNT 0x6ffffffa
++
++
++#define DT_FLAGS_1 0x6ffffffb
++#define DT_VERDEF 0x6ffffffc
++
++#define DT_VERDEFNUM 0x6ffffffd
++#define DT_VERNEED 0x6ffffffe
++
++#define DT_VERNEEDNUM 0x6fffffff
++#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))
++#define DT_VERSIONTAGNUM 16
++
++
++
++#define DT_AUXILIARY 0x7ffffffd
++#define DT_FILTER 0x7fffffff
++#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
++#define DT_EXTRANUM 3
++
++
++#define DF_ORIGIN 0x00000001
++#define DF_SYMBOLIC 0x00000002
++#define DF_TEXTREL 0x00000004
++#define DF_BIND_NOW 0x00000008
++#define DF_STATIC_TLS 0x00000010
++
++
++
++#define DF_1_NOW 0x00000001
++#define DF_1_GLOBAL 0x00000002
++#define DF_1_GROUP 0x00000004
++#define DF_1_NODELETE 0x00000008
++#define DF_1_LOADFLTR 0x00000010
++#define DF_1_INITFIRST 0x00000020
++#define DF_1_NOOPEN 0x00000040
++#define DF_1_ORIGIN 0x00000080
++#define DF_1_DIRECT 0x00000100
++#define DF_1_TRANS 0x00000200
++#define DF_1_INTERPOSE 0x00000400
++#define DF_1_NODEFLIB 0x00000800
++#define DF_1_NODUMP 0x00001000
++#define DF_1_CONFALT 0x00002000
++#define DF_1_ENDFILTEE 0x00004000
++#define DF_1_DISPRELDNE 0x00008000
++#define DF_1_DISPRELPND 0x00010000
++#define DF_1_NODIRECT 0x00020000
++#define DF_1_IGNMULDEF 0x00040000
++#define DF_1_NOKSYMS 0x00080000
++#define DF_1_NOHDR 0x00100000
++#define DF_1_EDITED 0x00200000
++#define DF_1_NORELOC 0x00400000
++#define DF_1_SYMINTPOSE 0x00800000
++#define DF_1_GLOBAUDIT 0x01000000
++#define DF_1_SINGLETON 0x02000000
++
++#define DTF_1_PARINIT 0x00000001
++#define DTF_1_CONFEXP 0x00000002
++
++
++#define DF_P1_LAZYLOAD 0x00000001
++#define DF_P1_GROUPPERM 0x00000002
++
++
++
++
++typedef struct {
++ Elf32_Half vd_version;
++ Elf32_Half vd_flags;
++ Elf32_Half vd_ndx;
++ Elf32_Half vd_cnt;
++ Elf32_Word vd_hash;
++ Elf32_Word vd_aux;
++ Elf32_Word vd_next;
++} Elf32_Verdef;
++
++typedef struct {
++ Elf64_Half vd_version;
++ Elf64_Half vd_flags;
++ Elf64_Half vd_ndx;
++ Elf64_Half vd_cnt;
++ Elf64_Word vd_hash;
++ Elf64_Word vd_aux;
++ Elf64_Word vd_next;
++} Elf64_Verdef;
++
++
++
++#define VER_DEF_NONE 0
++#define VER_DEF_CURRENT 1
++#define VER_DEF_NUM 2
++
++
++#define VER_FLG_BASE 0x1
++#define VER_FLG_WEAK 0x2
++
++
++#define VER_NDX_LOCAL 0
++#define VER_NDX_GLOBAL 1
++#define VER_NDX_LORESERVE 0xff00
++#define VER_NDX_ELIMINATE 0xff01
++
++
++
++typedef struct {
++ Elf32_Word vda_name;
++ Elf32_Word vda_next;
++} Elf32_Verdaux;
++
++typedef struct {
++ Elf64_Word vda_name;
++ Elf64_Word vda_next;
++} Elf64_Verdaux;
++
++
++
++
++typedef struct {
++ Elf32_Half vn_version;
++ Elf32_Half vn_cnt;
++ Elf32_Word vn_file;
++ Elf32_Word vn_aux;
++ Elf32_Word vn_next;
++} Elf32_Verneed;
++
++typedef struct {
++ Elf64_Half vn_version;
++ Elf64_Half vn_cnt;
++ Elf64_Word vn_file;
++ Elf64_Word vn_aux;
++ Elf64_Word vn_next;
++} Elf64_Verneed;
++
++
++
++#define VER_NEED_NONE 0
++#define VER_NEED_CURRENT 1
++#define VER_NEED_NUM 2
++
++
++
++typedef struct {
++ Elf32_Word vna_hash;
++ Elf32_Half vna_flags;
++ Elf32_Half vna_other;
++ Elf32_Word vna_name;
++ Elf32_Word vna_next;
++} Elf32_Vernaux;
++
++typedef struct {
++ Elf64_Word vna_hash;
++ Elf64_Half vna_flags;
++ Elf64_Half vna_other;
++ Elf64_Word vna_name;
++ Elf64_Word vna_next;
++} Elf64_Vernaux;
++
++
++
++#define VER_FLG_WEAK 0x2
++
++
++
++typedef struct {
++ uint32_t a_type;
++ union {
++ uint32_t a_val;
++ } a_un;
++} Elf32_auxv_t;
++
++typedef struct {
++ uint64_t a_type;
++ union {
++ uint64_t a_val;
++ } a_un;
++} Elf64_auxv_t;
++
++
++
++#define AT_NULL 0
++#define AT_IGNORE 1
++#define AT_EXECFD 2
++#define AT_PHDR 3
++#define AT_PHENT 4
++#define AT_PHNUM 5
++#define AT_PAGESZ 6
++#define AT_BASE 7
++#define AT_FLAGS 8
++#define AT_ENTRY 9
++#define AT_NOTELF 10
++#define AT_UID 11
++#define AT_EUID 12
++#define AT_GID 13
++#define AT_EGID 14
++#define AT_CLKTCK 17
++
++
++#define AT_PLATFORM 15
++#define AT_HWCAP 16
++
++
++
++
++#define AT_FPUCW 18
++
++
++#define AT_DCACHEBSIZE 19
++#define AT_ICACHEBSIZE 20
++#define AT_UCACHEBSIZE 21
++
++
++
++#define AT_IGNOREPPC 22
++
++#define AT_SECURE 23
++
++#define AT_BASE_PLATFORM 24
++
++#define AT_RANDOM 25
++
++#define AT_HWCAP2 26
++
++#define AT_EXECFN 31
++
++
++
++#define AT_SYSINFO 32
++#define AT_SYSINFO_EHDR 33
++
++
++
++#define AT_L1I_CACHESHAPE 34
++#define AT_L1D_CACHESHAPE 35
++#define AT_L2_CACHESHAPE 36
++#define AT_L3_CACHESHAPE 37
++
++
++
++
++typedef struct {
++ Elf32_Word n_namesz;
++ Elf32_Word n_descsz;
++ Elf32_Word n_type;
++} Elf32_Nhdr;
++
++typedef struct {
++ Elf64_Word n_namesz;
++ Elf64_Word n_descsz;
++ Elf64_Word n_type;
++} Elf64_Nhdr;
++
++
++
++
++#define ELF_NOTE_SOLARIS "SUNW Solaris"
++
++
++#define ELF_NOTE_GNU "GNU"
++
++
++
++
++
++#define ELF_NOTE_PAGESIZE_HINT 1
++
++
++#define NT_GNU_ABI_TAG 1
++#define ELF_NOTE_ABI NT_GNU_ABI_TAG
++
++
++
++#define ELF_NOTE_OS_LINUX 0
++#define ELF_NOTE_OS_GNU 1
++#define ELF_NOTE_OS_SOLARIS2 2
++#define ELF_NOTE_OS_FREEBSD 3
++
++#define NT_GNU_BUILD_ID 3
++#define NT_GNU_GOLD_VERSION 4
++
++
++
++typedef struct {
++ Elf32_Xword m_value;
++ Elf32_Word m_info;
++ Elf32_Word m_poffset;
++ Elf32_Half m_repeat;
++ Elf32_Half m_stride;
++} Elf32_Move;
++
++typedef struct {
++ Elf64_Xword m_value;
++ Elf64_Xword m_info;
++ Elf64_Xword m_poffset;
++ Elf64_Half m_repeat;
++ Elf64_Half m_stride;
++} Elf64_Move;
++
++
++#define ELF32_M_SYM(info) ((info) >> 8)
++#define ELF32_M_SIZE(info) ((unsigned char) (info))
++#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
++
++#define ELF64_M_SYM(info) ELF32_M_SYM (info)
++#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
++#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
++
++#define EF_CPU32 0x00810000
++
++#define R_68K_NONE 0
++#define R_68K_32 1
++#define R_68K_16 2
++#define R_68K_8 3
++#define R_68K_PC32 4
++#define R_68K_PC16 5
++#define R_68K_PC8 6
++#define R_68K_GOT32 7
++#define R_68K_GOT16 8
++#define R_68K_GOT8 9
++#define R_68K_GOT32O 10
++#define R_68K_GOT16O 11
++#define R_68K_GOT8O 12
++#define R_68K_PLT32 13
++#define R_68K_PLT16 14
++#define R_68K_PLT8 15
++#define R_68K_PLT32O 16
++#define R_68K_PLT16O 17
++#define R_68K_PLT8O 18
++#define R_68K_COPY 19
++#define R_68K_GLOB_DAT 20
++#define R_68K_JMP_SLOT 21
++#define R_68K_RELATIVE 22
++#define R_68K_NUM 23
++
++#define R_386_NONE 0
++#define R_386_32 1
++#define R_386_PC32 2
++#define R_386_GOT32 3
++#define R_386_PLT32 4
++#define R_386_COPY 5
++#define R_386_GLOB_DAT 6
++#define R_386_JMP_SLOT 7
++#define R_386_RELATIVE 8
++#define R_386_GOTOFF 9
++#define R_386_GOTPC 10
++#define R_386_32PLT 11
++#define R_386_TLS_TPOFF 14
++#define R_386_TLS_IE 15
++#define R_386_TLS_GOTIE 16
++#define R_386_TLS_LE 17
++#define R_386_TLS_GD 18
++#define R_386_TLS_LDM 19
++#define R_386_16 20
++#define R_386_PC16 21
++#define R_386_8 22
++#define R_386_PC8 23
++#define R_386_TLS_GD_32 24
++#define R_386_TLS_GD_PUSH 25
++#define R_386_TLS_GD_CALL 26
++#define R_386_TLS_GD_POP 27
++#define R_386_TLS_LDM_32 28
++#define R_386_TLS_LDM_PUSH 29
++#define R_386_TLS_LDM_CALL 30
++#define R_386_TLS_LDM_POP 31
++#define R_386_TLS_LDO_32 32
++#define R_386_TLS_IE_32 33
++#define R_386_TLS_LE_32 34
++#define R_386_TLS_DTPMOD32 35
++#define R_386_TLS_DTPOFF32 36
++#define R_386_TLS_TPOFF32 37
++#define R_386_SIZE32 38
++#define R_386_TLS_GOTDESC 39
++#define R_386_TLS_DESC_CALL 40
++#define R_386_TLS_DESC 41
++#define R_386_IRELATIVE 42
++#define R_386_NUM 43
++
++
++
++
++
++#define STT_SPARC_REGISTER 13
++
++
++
++#define EF_SPARCV9_MM 3
++#define EF_SPARCV9_TSO 0
++#define EF_SPARCV9_PSO 1
++#define EF_SPARCV9_RMO 2
++#define EF_SPARC_LEDATA 0x800000
++#define EF_SPARC_EXT_MASK 0xFFFF00
++#define EF_SPARC_32PLUS 0x000100
++#define EF_SPARC_SUN_US1 0x000200
++#define EF_SPARC_HAL_R1 0x000400
++#define EF_SPARC_SUN_US3 0x000800
++
++
++
++#define R_SPARC_NONE 0
++#define R_SPARC_8 1
++#define R_SPARC_16 2
++#define R_SPARC_32 3
++#define R_SPARC_DISP8 4
++#define R_SPARC_DISP16 5
++#define R_SPARC_DISP32 6
++#define R_SPARC_WDISP30 7
++#define R_SPARC_WDISP22 8
++#define R_SPARC_HI22 9
++#define R_SPARC_22 10
++#define R_SPARC_13 11
++#define R_SPARC_LO10 12
++#define R_SPARC_GOT10 13
++#define R_SPARC_GOT13 14
++#define R_SPARC_GOT22 15
++#define R_SPARC_PC10 16
++#define R_SPARC_PC22 17
++#define R_SPARC_WPLT30 18
++#define R_SPARC_COPY 19
++#define R_SPARC_GLOB_DAT 20
++#define R_SPARC_JMP_SLOT 21
++#define R_SPARC_RELATIVE 22
++#define R_SPARC_UA32 23
++
++
++
++#define R_SPARC_PLT32 24
++#define R_SPARC_HIPLT22 25
++#define R_SPARC_LOPLT10 26
++#define R_SPARC_PCPLT32 27
++#define R_SPARC_PCPLT22 28
++#define R_SPARC_PCPLT10 29
++#define R_SPARC_10 30
++#define R_SPARC_11 31
++#define R_SPARC_64 32
++#define R_SPARC_OLO10 33
++#define R_SPARC_HH22 34
++#define R_SPARC_HM10 35
++#define R_SPARC_LM22 36
++#define R_SPARC_PC_HH22 37
++#define R_SPARC_PC_HM10 38
++#define R_SPARC_PC_LM22 39
++#define R_SPARC_WDISP16 40
++#define R_SPARC_WDISP19 41
++#define R_SPARC_GLOB_JMP 42
++#define R_SPARC_7 43
++#define R_SPARC_5 44
++#define R_SPARC_6 45
++#define R_SPARC_DISP64 46
++#define R_SPARC_PLT64 47
++#define R_SPARC_HIX22 48
++#define R_SPARC_LOX10 49
++#define R_SPARC_H44 50
++#define R_SPARC_M44 51
++#define R_SPARC_L44 52
++#define R_SPARC_REGISTER 53
++#define R_SPARC_UA64 54
++#define R_SPARC_UA16 55
++#define R_SPARC_TLS_GD_HI22 56
++#define R_SPARC_TLS_GD_LO10 57
++#define R_SPARC_TLS_GD_ADD 58
++#define R_SPARC_TLS_GD_CALL 59
++#define R_SPARC_TLS_LDM_HI22 60
++#define R_SPARC_TLS_LDM_LO10 61
++#define R_SPARC_TLS_LDM_ADD 62
++#define R_SPARC_TLS_LDM_CALL 63
++#define R_SPARC_TLS_LDO_HIX22 64
++#define R_SPARC_TLS_LDO_LOX10 65
++#define R_SPARC_TLS_LDO_ADD 66
++#define R_SPARC_TLS_IE_HI22 67
++#define R_SPARC_TLS_IE_LO10 68
++#define R_SPARC_TLS_IE_LD 69
++#define R_SPARC_TLS_IE_LDX 70
++#define R_SPARC_TLS_IE_ADD 71
++#define R_SPARC_TLS_LE_HIX22 72
++#define R_SPARC_TLS_LE_LOX10 73
++#define R_SPARC_TLS_DTPMOD32 74
++#define R_SPARC_TLS_DTPMOD64 75
++#define R_SPARC_TLS_DTPOFF32 76
++#define R_SPARC_TLS_DTPOFF64 77
++#define R_SPARC_TLS_TPOFF32 78
++#define R_SPARC_TLS_TPOFF64 79
++#define R_SPARC_GOTDATA_HIX22 80
++#define R_SPARC_GOTDATA_LOX10 81
++#define R_SPARC_GOTDATA_OP_HIX22 82
++#define R_SPARC_GOTDATA_OP_LOX10 83
++#define R_SPARC_GOTDATA_OP 84
++#define R_SPARC_H34 85
++#define R_SPARC_SIZE32 86
++#define R_SPARC_SIZE64 87
++#define R_SPARC_GNU_VTINHERIT 250
++#define R_SPARC_GNU_VTENTRY 251
++#define R_SPARC_REV32 252
++
++#define R_SPARC_NUM 253
++
++
++
++#define DT_SPARC_REGISTER 0x70000001
++#define DT_SPARC_NUM 2
++
++
++#define EF_MIPS_NOREORDER 1
++#define EF_MIPS_PIC 2
++#define EF_MIPS_CPIC 4
++#define EF_MIPS_XGOT 8
++#define EF_MIPS_64BIT_WHIRL 16
++#define EF_MIPS_ABI2 32
++#define EF_MIPS_ABI_ON32 64
++#define EF_MIPS_ARCH 0xf0000000
++
++
++
++#define EF_MIPS_ARCH_1 0x00000000
++#define EF_MIPS_ARCH_2 0x10000000
++#define EF_MIPS_ARCH_3 0x20000000
++#define EF_MIPS_ARCH_4 0x30000000
++#define EF_MIPS_ARCH_5 0x40000000
++#define EF_MIPS_ARCH_32 0x50000000
++#define EF_MIPS_ARCH_64 0x60000000
++#define EF_MIPS_ARCH_32R2 0x70000000
++#define EF_MIPS_ARCH_64R2 0x80000000
++
++
++#define E_MIPS_ARCH_1 0x00000000
++#define E_MIPS_ARCH_2 0x10000000
++#define E_MIPS_ARCH_3 0x20000000
++#define E_MIPS_ARCH_4 0x30000000
++#define E_MIPS_ARCH_5 0x40000000
++#define E_MIPS_ARCH_32 0x50000000
++#define E_MIPS_ARCH_64 0x60000000
++
++
++
++#define SHN_MIPS_ACOMMON 0xff00
++#define SHN_MIPS_TEXT 0xff01
++#define SHN_MIPS_DATA 0xff02
++#define SHN_MIPS_SCOMMON 0xff03
++#define SHN_MIPS_SUNDEFINED 0xff04
++
++
++
++#define SHT_MIPS_LIBLIST 0x70000000
++#define SHT_MIPS_MSYM 0x70000001
++#define SHT_MIPS_CONFLICT 0x70000002
++#define SHT_MIPS_GPTAB 0x70000003
++#define SHT_MIPS_UCODE 0x70000004
++#define SHT_MIPS_DEBUG 0x70000005
++#define SHT_MIPS_REGINFO 0x70000006
++#define SHT_MIPS_PACKAGE 0x70000007
++#define SHT_MIPS_PACKSYM 0x70000008
++#define SHT_MIPS_RELD 0x70000009
++#define SHT_MIPS_IFACE 0x7000000b
++#define SHT_MIPS_CONTENT 0x7000000c
++#define SHT_MIPS_OPTIONS 0x7000000d
++#define SHT_MIPS_SHDR 0x70000010
++#define SHT_MIPS_FDESC 0x70000011
++#define SHT_MIPS_EXTSYM 0x70000012
++#define SHT_MIPS_DENSE 0x70000013
++#define SHT_MIPS_PDESC 0x70000014
++#define SHT_MIPS_LOCSYM 0x70000015
++#define SHT_MIPS_AUXSYM 0x70000016
++#define SHT_MIPS_OPTSYM 0x70000017
++#define SHT_MIPS_LOCSTR 0x70000018
++#define SHT_MIPS_LINE 0x70000019
++#define SHT_MIPS_RFDESC 0x7000001a
++#define SHT_MIPS_DELTASYM 0x7000001b
++#define SHT_MIPS_DELTAINST 0x7000001c
++#define SHT_MIPS_DELTACLASS 0x7000001d
++#define SHT_MIPS_DWARF 0x7000001e
++#define SHT_MIPS_DELTADECL 0x7000001f
++#define SHT_MIPS_SYMBOL_LIB 0x70000020
++#define SHT_MIPS_EVENTS 0x70000021
++#define SHT_MIPS_TRANSLATE 0x70000022
++#define SHT_MIPS_PIXIE 0x70000023
++#define SHT_MIPS_XLATE 0x70000024
++#define SHT_MIPS_XLATE_DEBUG 0x70000025
++#define SHT_MIPS_WHIRL 0x70000026
++#define SHT_MIPS_EH_REGION 0x70000027
++#define SHT_MIPS_XLATE_OLD 0x70000028
++#define SHT_MIPS_PDR_EXCEPTION 0x70000029
++
++
++
++#define SHF_MIPS_GPREL 0x10000000
++#define SHF_MIPS_MERGE 0x20000000
++#define SHF_MIPS_ADDR 0x40000000
++#define SHF_MIPS_STRINGS 0x80000000
++#define SHF_MIPS_NOSTRIP 0x08000000
++#define SHF_MIPS_LOCAL 0x04000000
++#define SHF_MIPS_NAMES 0x02000000
++#define SHF_MIPS_NODUPE 0x01000000
++
++
++
++
++
++#define STO_MIPS_DEFAULT 0x0
++#define STO_MIPS_INTERNAL 0x1
++#define STO_MIPS_HIDDEN 0x2
++#define STO_MIPS_PROTECTED 0x3
++#define STO_MIPS_PLT 0x8
++#define STO_MIPS_SC_ALIGN_UNUSED 0xff
++
++
++#define STB_MIPS_SPLIT_COMMON 13
++
++
++
++typedef union {
++ struct {
++ Elf32_Word gt_current_g_value;
++ Elf32_Word gt_unused;
++ } gt_header;
++ struct {
++ Elf32_Word gt_g_value;
++ Elf32_Word gt_bytes;
++ } gt_entry;
++} Elf32_gptab;
++
++
++
++typedef struct {
++ Elf32_Word ri_gprmask;
++ Elf32_Word ri_cprmask[4];
++ Elf32_Sword ri_gp_value;
++} Elf32_RegInfo;
++
++
++
++typedef struct {
++ unsigned char kind;
++
++ unsigned char size;
++ Elf32_Section section;
++
++ Elf32_Word info;
++} Elf_Options;
++
++
++
++#define ODK_NULL 0
++#define ODK_REGINFO 1
++#define ODK_EXCEPTIONS 2
++#define ODK_PAD 3
++#define ODK_HWPATCH 4
++#define ODK_FILL 5
++#define ODK_TAGS 6
++#define ODK_HWAND 7
++#define ODK_HWOR 8
++
++
++
++#define OEX_FPU_MIN 0x1f
++#define OEX_FPU_MAX 0x1f00
++#define OEX_PAGE0 0x10000
++#define OEX_SMM 0x20000
++#define OEX_FPDBUG 0x40000
++#define OEX_PRECISEFP OEX_FPDBUG
++#define OEX_DISMISS 0x80000
++
++#define OEX_FPU_INVAL 0x10
++#define OEX_FPU_DIV0 0x08
++#define OEX_FPU_OFLO 0x04
++#define OEX_FPU_UFLO 0x02
++#define OEX_FPU_INEX 0x01
++
++
++
++#define OHW_R4KEOP 0x1
++#define OHW_R8KPFETCH 0x2
++#define OHW_R5KEOP 0x4
++#define OHW_R5KCVTL 0x8
++
++#define OPAD_PREFIX 0x1
++#define OPAD_POSTFIX 0x2
++#define OPAD_SYMBOL 0x4
++
++
++
++typedef struct {
++ Elf32_Word hwp_flags1;
++ Elf32_Word hwp_flags2;
++} Elf_Options_Hw;
++
++
++
++#define OHWA0_R4KEOP_CHECKED 0x00000001
++#define OHWA1_R4KEOP_CLEAN 0x00000002
++
++
++
++#define R_MIPS_NONE 0
++#define R_MIPS_16 1
++#define R_MIPS_32 2
++#define R_MIPS_REL32 3
++#define R_MIPS_26 4
++#define R_MIPS_HI16 5
++#define R_MIPS_LO16 6
++#define R_MIPS_GPREL16 7
++#define R_MIPS_LITERAL 8
++#define R_MIPS_GOT16 9
++#define R_MIPS_PC16 10
++#define R_MIPS_CALL16 11
++#define R_MIPS_GPREL32 12
++
++#define R_MIPS_SHIFT5 16
++#define R_MIPS_SHIFT6 17
++#define R_MIPS_64 18
++#define R_MIPS_GOT_DISP 19
++#define R_MIPS_GOT_PAGE 20
++#define R_MIPS_GOT_OFST 21
++#define R_MIPS_GOT_HI16 22
++#define R_MIPS_GOT_LO16 23
++#define R_MIPS_SUB 24
++#define R_MIPS_INSERT_A 25
++#define R_MIPS_INSERT_B 26
++#define R_MIPS_DELETE 27
++#define R_MIPS_HIGHER 28
++#define R_MIPS_HIGHEST 29
++#define R_MIPS_CALL_HI16 30
++#define R_MIPS_CALL_LO16 31
++#define R_MIPS_SCN_DISP 32
++#define R_MIPS_REL16 33
++#define R_MIPS_ADD_IMMEDIATE 34
++#define R_MIPS_PJUMP 35
++#define R_MIPS_RELGOT 36
++#define R_MIPS_JALR 37
++#define R_MIPS_TLS_DTPMOD32 38
++#define R_MIPS_TLS_DTPREL32 39
++#define R_MIPS_TLS_DTPMOD64 40
++#define R_MIPS_TLS_DTPREL64 41
++#define R_MIPS_TLS_GD 42
++#define R_MIPS_TLS_LDM 43
++#define R_MIPS_TLS_DTPREL_HI16 44
++#define R_MIPS_TLS_DTPREL_LO16 45
++#define R_MIPS_TLS_GOTTPREL 46
++#define R_MIPS_TLS_TPREL32 47
++#define R_MIPS_TLS_TPREL64 48
++#define R_MIPS_TLS_TPREL_HI16 49
++#define R_MIPS_TLS_TPREL_LO16 50
++#define R_MIPS_GLOB_DAT 51
++#define R_MIPS_COPY 126
++#define R_MIPS_JUMP_SLOT 127
++
++#define R_MIPS_NUM 128
++
++
++
++#define PT_MIPS_REGINFO 0x70000000
++#define PT_MIPS_RTPROC 0x70000001
++#define PT_MIPS_OPTIONS 0x70000002
++
++
++
++#define PF_MIPS_LOCAL 0x10000000
++
++
++
++#define DT_MIPS_RLD_VERSION 0x70000001
++#define DT_MIPS_TIME_STAMP 0x70000002
++#define DT_MIPS_ICHECKSUM 0x70000003
++#define DT_MIPS_IVERSION 0x70000004
++#define DT_MIPS_FLAGS 0x70000005
++#define DT_MIPS_BASE_ADDRESS 0x70000006
++#define DT_MIPS_MSYM 0x70000007
++#define DT_MIPS_CONFLICT 0x70000008
++#define DT_MIPS_LIBLIST 0x70000009
++#define DT_MIPS_LOCAL_GOTNO 0x7000000a
++#define DT_MIPS_CONFLICTNO 0x7000000b
++#define DT_MIPS_LIBLISTNO 0x70000010
++#define DT_MIPS_SYMTABNO 0x70000011
++#define DT_MIPS_UNREFEXTNO 0x70000012
++#define DT_MIPS_GOTSYM 0x70000013
++#define DT_MIPS_HIPAGENO 0x70000014
++#define DT_MIPS_RLD_MAP 0x70000016
++#define DT_MIPS_DELTA_CLASS 0x70000017
++#define DT_MIPS_DELTA_CLASS_NO 0x70000018
++
++#define DT_MIPS_DELTA_INSTANCE 0x70000019
++#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
++
++#define DT_MIPS_DELTA_RELOC 0x7000001b
++#define DT_MIPS_DELTA_RELOC_NO 0x7000001c
++
++#define DT_MIPS_DELTA_SYM 0x7000001d
++
++#define DT_MIPS_DELTA_SYM_NO 0x7000001e
++
++#define DT_MIPS_DELTA_CLASSSYM 0x70000020
++
++#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
++
++#define DT_MIPS_CXX_FLAGS 0x70000022
++#define DT_MIPS_PIXIE_INIT 0x70000023
++#define DT_MIPS_SYMBOL_LIB 0x70000024
++#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
++#define DT_MIPS_LOCAL_GOTIDX 0x70000026
++#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
++#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
++#define DT_MIPS_OPTIONS 0x70000029
++#define DT_MIPS_INTERFACE 0x7000002a
++#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
++#define DT_MIPS_INTERFACE_SIZE 0x7000002c
++#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
++
++#define DT_MIPS_PERF_SUFFIX 0x7000002e
++
++#define DT_MIPS_COMPACT_SIZE 0x7000002f
++#define DT_MIPS_GP_VALUE 0x70000030
++#define DT_MIPS_AUX_DYNAMIC 0x70000031
++
++#define DT_MIPS_PLTGOT 0x70000032
++
++#define DT_MIPS_RWPLT 0x70000034
++#define DT_MIPS_NUM 0x35
++
++
++
++#define RHF_NONE 0
++#define RHF_QUICKSTART (1 << 0)
++#define RHF_NOTPOT (1 << 1)
++#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
++#define RHF_NO_MOVE (1 << 3)
++#define RHF_SGI_ONLY (1 << 4)
++#define RHF_GUARANTEE_INIT (1 << 5)
++#define RHF_DELTA_C_PLUS_PLUS (1 << 6)
++#define RHF_GUARANTEE_START_INIT (1 << 7)
++#define RHF_PIXIE (1 << 8)
++#define RHF_DEFAULT_DELAY_LOAD (1 << 9)
++#define RHF_REQUICKSTART (1 << 10)
++#define RHF_REQUICKSTARTED (1 << 11)
++#define RHF_CORD (1 << 12)
++#define RHF_NO_UNRES_UNDEF (1 << 13)
++#define RHF_RLD_ORDER_SAFE (1 << 14)
++
++
++
++typedef struct
++{
++ Elf32_Word l_name;
++ Elf32_Word l_time_stamp;
++ Elf32_Word l_checksum;
++ Elf32_Word l_version;
++ Elf32_Word l_flags;
++} Elf32_Lib;
++
++typedef struct
++{
++ Elf64_Word l_name;
++ Elf64_Word l_time_stamp;
++ Elf64_Word l_checksum;
++ Elf64_Word l_version;
++ Elf64_Word l_flags;
++} Elf64_Lib;
++
++
++
++
++#define LL_NONE 0
++#define LL_EXACT_MATCH (1 << 0)
++#define LL_IGNORE_INT_VER (1 << 1)
++#define LL_REQUIRE_MINOR (1 << 2)
++#define LL_EXPORTS (1 << 3)
++#define LL_DELAY_LOAD (1 << 4)
++#define LL_DELTA (1 << 5)
++
++
++
++typedef Elf32_Addr Elf32_Conflict;
++
++
++
++
++
++
++#define EF_PARISC_TRAPNIL 0x00010000
++#define EF_PARISC_EXT 0x00020000
++#define EF_PARISC_LSB 0x00040000
++#define EF_PARISC_WIDE 0x00080000
++#define EF_PARISC_NO_KABP 0x00100000
++
++#define EF_PARISC_LAZYSWAP 0x00400000
++#define EF_PARISC_ARCH 0x0000ffff
++
++
++
++#define EFA_PARISC_1_0 0x020b
++#define EFA_PARISC_1_1 0x0210
++#define EFA_PARISC_2_0 0x0214
++
++
++
++#define SHN_PARISC_ANSI_COMMON 0xff00
++
++#define SHN_PARISC_HUGE_COMMON 0xff01
++
++
++
++#define SHT_PARISC_EXT 0x70000000
++#define SHT_PARISC_UNWIND 0x70000001
++#define SHT_PARISC_DOC 0x70000002
++
++
++
++#define SHF_PARISC_SHORT 0x20000000
++#define SHF_PARISC_HUGE 0x40000000
++#define SHF_PARISC_SBP 0x80000000
++
++
++
++#define STT_PARISC_MILLICODE 13
++
++#define STT_HP_OPAQUE (STT_LOOS + 0x1)
++#define STT_HP_STUB (STT_LOOS + 0x2)
++
++
++
++#define R_PARISC_NONE 0
++#define R_PARISC_DIR32 1
++#define R_PARISC_DIR21L 2
++#define R_PARISC_DIR17R 3
++#define R_PARISC_DIR17F 4
++#define R_PARISC_DIR14R 6
++#define R_PARISC_PCREL32 9
++#define R_PARISC_PCREL21L 10
++#define R_PARISC_PCREL17R 11
++#define R_PARISC_PCREL17F 12
++#define R_PARISC_PCREL14R 14
++#define R_PARISC_DPREL21L 18
++#define R_PARISC_DPREL14R 22
++#define R_PARISC_GPREL21L 26
++#define R_PARISC_GPREL14R 30
++#define R_PARISC_LTOFF21L 34
++#define R_PARISC_LTOFF14R 38
++#define R_PARISC_SECREL32 41
++#define R_PARISC_SEGBASE 48
++#define R_PARISC_SEGREL32 49
++#define R_PARISC_PLTOFF21L 50
++#define R_PARISC_PLTOFF14R 54
++#define R_PARISC_LTOFF_FPTR32 57
++#define R_PARISC_LTOFF_FPTR21L 58
++#define R_PARISC_LTOFF_FPTR14R 62
++#define R_PARISC_FPTR64 64
++#define R_PARISC_PLABEL32 65
++#define R_PARISC_PLABEL21L 66
++#define R_PARISC_PLABEL14R 70
++#define R_PARISC_PCREL64 72
++#define R_PARISC_PCREL22F 74
++#define R_PARISC_PCREL14WR 75
++#define R_PARISC_PCREL14DR 76
++#define R_PARISC_PCREL16F 77
++#define R_PARISC_PCREL16WF 78
++#define R_PARISC_PCREL16DF 79
++#define R_PARISC_DIR64 80
++#define R_PARISC_DIR14WR 83
++#define R_PARISC_DIR14DR 84
++#define R_PARISC_DIR16F 85
++#define R_PARISC_DIR16WF 86
++#define R_PARISC_DIR16DF 87
++#define R_PARISC_GPREL64 88
++#define R_PARISC_GPREL14WR 91
++#define R_PARISC_GPREL14DR 92
++#define R_PARISC_GPREL16F 93
++#define R_PARISC_GPREL16WF 94
++#define R_PARISC_GPREL16DF 95
++#define R_PARISC_LTOFF64 96
++#define R_PARISC_LTOFF14WR 99
++#define R_PARISC_LTOFF14DR 100
++#define R_PARISC_LTOFF16F 101
++#define R_PARISC_LTOFF16WF 102
++#define R_PARISC_LTOFF16DF 103
++#define R_PARISC_SECREL64 104
++#define R_PARISC_SEGREL64 112
++#define R_PARISC_PLTOFF14WR 115
++#define R_PARISC_PLTOFF14DR 116
++#define R_PARISC_PLTOFF16F 117
++#define R_PARISC_PLTOFF16WF 118
++#define R_PARISC_PLTOFF16DF 119
++#define R_PARISC_LTOFF_FPTR64 120
++#define R_PARISC_LTOFF_FPTR14WR 123
++#define R_PARISC_LTOFF_FPTR14DR 124
++#define R_PARISC_LTOFF_FPTR16F 125
++#define R_PARISC_LTOFF_FPTR16WF 126
++#define R_PARISC_LTOFF_FPTR16DF 127
++#define R_PARISC_LORESERVE 128
++#define R_PARISC_COPY 128
++#define R_PARISC_IPLT 129
++#define R_PARISC_EPLT 130
++#define R_PARISC_TPREL32 153
++#define R_PARISC_TPREL21L 154
++#define R_PARISC_TPREL14R 158
++#define R_PARISC_LTOFF_TP21L 162
++#define R_PARISC_LTOFF_TP14R 166
++#define R_PARISC_LTOFF_TP14F 167
++#define R_PARISC_TPREL64 216
++#define R_PARISC_TPREL14WR 219
++#define R_PARISC_TPREL14DR 220
++#define R_PARISC_TPREL16F 221
++#define R_PARISC_TPREL16WF 222
++#define R_PARISC_TPREL16DF 223
++#define R_PARISC_LTOFF_TP64 224
++#define R_PARISC_LTOFF_TP14WR 227
++#define R_PARISC_LTOFF_TP14DR 228
++#define R_PARISC_LTOFF_TP16F 229
++#define R_PARISC_LTOFF_TP16WF 230
++#define R_PARISC_LTOFF_TP16DF 231
++#define R_PARISC_GNU_VTENTRY 232
++#define R_PARISC_GNU_VTINHERIT 233
++#define R_PARISC_TLS_GD21L 234
++#define R_PARISC_TLS_GD14R 235
++#define R_PARISC_TLS_GDCALL 236
++#define R_PARISC_TLS_LDM21L 237
++#define R_PARISC_TLS_LDM14R 238
++#define R_PARISC_TLS_LDMCALL 239
++#define R_PARISC_TLS_LDO21L 240
++#define R_PARISC_TLS_LDO14R 241
++#define R_PARISC_TLS_DTPMOD32 242
++#define R_PARISC_TLS_DTPMOD64 243
++#define R_PARISC_TLS_DTPOFF32 244
++#define R_PARISC_TLS_DTPOFF64 245
++#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L
++#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R
++#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L
++#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R
++#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32
++#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64
++#define R_PARISC_HIRESERVE 255
++
++
++
++#define PT_HP_TLS (PT_LOOS + 0x0)
++#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
++#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
++#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
++#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
++#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
++#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
++#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
++#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
++#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
++#define PT_HP_PARALLEL (PT_LOOS + 0x10)
++#define PT_HP_FASTBIND (PT_LOOS + 0x11)
++#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
++#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
++#define PT_HP_STACK (PT_LOOS + 0x14)
++
++#define PT_PARISC_ARCHEXT 0x70000000
++#define PT_PARISC_UNWIND 0x70000001
++
++
++
++#define PF_PARISC_SBP 0x08000000
++
++#define PF_HP_PAGE_SIZE 0x00100000
++#define PF_HP_FAR_SHARED 0x00200000
++#define PF_HP_NEAR_SHARED 0x00400000
++#define PF_HP_CODE 0x01000000
++#define PF_HP_MODIFY 0x02000000
++#define PF_HP_LAZYSWAP 0x04000000
++#define PF_HP_SBP 0x08000000
++
++
++
++
++
++
++#define EF_ALPHA_32BIT 1
++#define EF_ALPHA_CANRELAX 2
++
++
++
++
++#define SHT_ALPHA_DEBUG 0x70000001
++#define SHT_ALPHA_REGINFO 0x70000002
++
++
++
++#define SHF_ALPHA_GPREL 0x10000000
++
++
++#define STO_ALPHA_NOPV 0x80
++#define STO_ALPHA_STD_GPLOAD 0x88
++
++
++
++#define R_ALPHA_NONE 0
++#define R_ALPHA_REFLONG 1
++#define R_ALPHA_REFQUAD 2
++#define R_ALPHA_GPREL32 3
++#define R_ALPHA_LITERAL 4
++#define R_ALPHA_LITUSE 5
++#define R_ALPHA_GPDISP 6
++#define R_ALPHA_BRADDR 7
++#define R_ALPHA_HINT 8
++#define R_ALPHA_SREL16 9
++#define R_ALPHA_SREL32 10
++#define R_ALPHA_SREL64 11
++#define R_ALPHA_GPRELHIGH 17
++#define R_ALPHA_GPRELLOW 18
++#define R_ALPHA_GPREL16 19
++#define R_ALPHA_COPY 24
++#define R_ALPHA_GLOB_DAT 25
++#define R_ALPHA_JMP_SLOT 26
++#define R_ALPHA_RELATIVE 27
++#define R_ALPHA_TLS_GD_HI 28
++#define R_ALPHA_TLSGD 29
++#define R_ALPHA_TLS_LDM 30
++#define R_ALPHA_DTPMOD64 31
++#define R_ALPHA_GOTDTPREL 32
++#define R_ALPHA_DTPREL64 33
++#define R_ALPHA_DTPRELHI 34
++#define R_ALPHA_DTPRELLO 35
++#define R_ALPHA_DTPREL16 36
++#define R_ALPHA_GOTTPREL 37
++#define R_ALPHA_TPREL64 38
++#define R_ALPHA_TPRELHI 39
++#define R_ALPHA_TPRELLO 40
++#define R_ALPHA_TPREL16 41
++
++#define R_ALPHA_NUM 46
++
++
++#define LITUSE_ALPHA_ADDR 0
++#define LITUSE_ALPHA_BASE 1
++#define LITUSE_ALPHA_BYTOFF 2
++#define LITUSE_ALPHA_JSR 3
++#define LITUSE_ALPHA_TLS_GD 4
++#define LITUSE_ALPHA_TLS_LDM 5
++
++
++#define DT_ALPHA_PLTRO (DT_LOPROC + 0)
++#define DT_ALPHA_NUM 1
++
++
++
++
++#define EF_PPC_EMB 0x80000000
++
++
++#define EF_PPC_RELOCATABLE 0x00010000
++#define EF_PPC_RELOCATABLE_LIB 0x00008000
++
++
++
++#define R_PPC_NONE 0
++#define R_PPC_ADDR32 1
++#define R_PPC_ADDR24 2
++#define R_PPC_ADDR16 3
++#define R_PPC_ADDR16_LO 4
++#define R_PPC_ADDR16_HI 5
++#define R_PPC_ADDR16_HA 6
++#define R_PPC_ADDR14 7
++#define R_PPC_ADDR14_BRTAKEN 8
++#define R_PPC_ADDR14_BRNTAKEN 9
++#define R_PPC_REL24 10
++#define R_PPC_REL14 11
++#define R_PPC_REL14_BRTAKEN 12
++#define R_PPC_REL14_BRNTAKEN 13
++#define R_PPC_GOT16 14
++#define R_PPC_GOT16_LO 15
++#define R_PPC_GOT16_HI 16
++#define R_PPC_GOT16_HA 17
++#define R_PPC_PLTREL24 18
++#define R_PPC_COPY 19
++#define R_PPC_GLOB_DAT 20
++#define R_PPC_JMP_SLOT 21
++#define R_PPC_RELATIVE 22
++#define R_PPC_LOCAL24PC 23
++#define R_PPC_UADDR32 24
++#define R_PPC_UADDR16 25
++#define R_PPC_REL32 26
++#define R_PPC_PLT32 27
++#define R_PPC_PLTREL32 28
++#define R_PPC_PLT16_LO 29
++#define R_PPC_PLT16_HI 30
++#define R_PPC_PLT16_HA 31
++#define R_PPC_SDAREL16 32
++#define R_PPC_SECTOFF 33
++#define R_PPC_SECTOFF_LO 34
++#define R_PPC_SECTOFF_HI 35
++#define R_PPC_SECTOFF_HA 36
++
++
++#define R_PPC_TLS 67
++#define R_PPC_DTPMOD32 68
++#define R_PPC_TPREL16 69
++#define R_PPC_TPREL16_LO 70
++#define R_PPC_TPREL16_HI 71
++#define R_PPC_TPREL16_HA 72
++#define R_PPC_TPREL32 73
++#define R_PPC_DTPREL16 74
++#define R_PPC_DTPREL16_LO 75
++#define R_PPC_DTPREL16_HI 76
++#define R_PPC_DTPREL16_HA 77
++#define R_PPC_DTPREL32 78
++#define R_PPC_GOT_TLSGD16 79
++#define R_PPC_GOT_TLSGD16_LO 80
++#define R_PPC_GOT_TLSGD16_HI 81
++#define R_PPC_GOT_TLSGD16_HA 82
++#define R_PPC_GOT_TLSLD16 83
++#define R_PPC_GOT_TLSLD16_LO 84
++#define R_PPC_GOT_TLSLD16_HI 85
++#define R_PPC_GOT_TLSLD16_HA 86
++#define R_PPC_GOT_TPREL16 87
++#define R_PPC_GOT_TPREL16_LO 88
++#define R_PPC_GOT_TPREL16_HI 89
++#define R_PPC_GOT_TPREL16_HA 90
++#define R_PPC_GOT_DTPREL16 91
++#define R_PPC_GOT_DTPREL16_LO 92
++#define R_PPC_GOT_DTPREL16_HI 93
++#define R_PPC_GOT_DTPREL16_HA 94
++
++
++
++#define R_PPC_EMB_NADDR32 101
++#define R_PPC_EMB_NADDR16 102
++#define R_PPC_EMB_NADDR16_LO 103
++#define R_PPC_EMB_NADDR16_HI 104
++#define R_PPC_EMB_NADDR16_HA 105
++#define R_PPC_EMB_SDAI16 106
++#define R_PPC_EMB_SDA2I16 107
++#define R_PPC_EMB_SDA2REL 108
++#define R_PPC_EMB_SDA21 109
++#define R_PPC_EMB_MRKREF 110
++#define R_PPC_EMB_RELSEC16 111
++#define R_PPC_EMB_RELST_LO 112
++#define R_PPC_EMB_RELST_HI 113
++#define R_PPC_EMB_RELST_HA 114
++#define R_PPC_EMB_BIT_FLD 115
++#define R_PPC_EMB_RELSDA 116
++
++
++#define R_PPC_DIAB_SDA21_LO 180
++#define R_PPC_DIAB_SDA21_HI 181
++#define R_PPC_DIAB_SDA21_HA 182
++#define R_PPC_DIAB_RELSDA_LO 183
++#define R_PPC_DIAB_RELSDA_HI 184
++#define R_PPC_DIAB_RELSDA_HA 185
++
++
++#define R_PPC_IRELATIVE 248
++
++
++#define R_PPC_REL16 249
++#define R_PPC_REL16_LO 250
++#define R_PPC_REL16_HI 251
++#define R_PPC_REL16_HA 252
++
++
++
++#define R_PPC_TOC16 255
++
++
++#define DT_PPC_GOT (DT_LOPROC + 0)
++#define DT_PPC_NUM 1
++
++
++#define R_PPC64_NONE R_PPC_NONE
++#define R_PPC64_ADDR32 R_PPC_ADDR32
++#define R_PPC64_ADDR24 R_PPC_ADDR24
++#define R_PPC64_ADDR16 R_PPC_ADDR16
++#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO
++#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI
++#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA
++#define R_PPC64_ADDR14 R_PPC_ADDR14
++#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
++#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
++#define R_PPC64_REL24 R_PPC_REL24
++#define R_PPC64_REL14 R_PPC_REL14
++#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
++#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
++#define R_PPC64_GOT16 R_PPC_GOT16
++#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
++#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
++#define R_PPC64_GOT16_HA R_PPC_GOT16_HA
++
++#define R_PPC64_COPY R_PPC_COPY
++#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
++#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
++#define R_PPC64_RELATIVE R_PPC_RELATIVE
++
++#define R_PPC64_UADDR32 R_PPC_UADDR32
++#define R_PPC64_UADDR16 R_PPC_UADDR16
++#define R_PPC64_REL32 R_PPC_REL32
++#define R_PPC64_PLT32 R_PPC_PLT32
++#define R_PPC64_PLTREL32 R_PPC_PLTREL32
++#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
++#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
++#define R_PPC64_PLT16_HA R_PPC_PLT16_HA
++
++#define R_PPC64_SECTOFF R_PPC_SECTOFF
++#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
++#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
++#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
++#define R_PPC64_ADDR30 37
++#define R_PPC64_ADDR64 38
++#define R_PPC64_ADDR16_HIGHER 39
++#define R_PPC64_ADDR16_HIGHERA 40
++#define R_PPC64_ADDR16_HIGHEST 41
++#define R_PPC64_ADDR16_HIGHESTA 42
++#define R_PPC64_UADDR64 43
++#define R_PPC64_REL64 44
++#define R_PPC64_PLT64 45
++#define R_PPC64_PLTREL64 46
++#define R_PPC64_TOC16 47
++#define R_PPC64_TOC16_LO 48
++#define R_PPC64_TOC16_HI 49
++#define R_PPC64_TOC16_HA 50
++#define R_PPC64_TOC 51
++#define R_PPC64_PLTGOT16 52
++#define R_PPC64_PLTGOT16_LO 53
++#define R_PPC64_PLTGOT16_HI 54
++#define R_PPC64_PLTGOT16_HA 55
++
++#define R_PPC64_ADDR16_DS 56
++#define R_PPC64_ADDR16_LO_DS 57
++#define R_PPC64_GOT16_DS 58
++#define R_PPC64_GOT16_LO_DS 59
++#define R_PPC64_PLT16_LO_DS 60
++#define R_PPC64_SECTOFF_DS 61
++#define R_PPC64_SECTOFF_LO_DS 62
++#define R_PPC64_TOC16_DS 63
++#define R_PPC64_TOC16_LO_DS 64
++#define R_PPC64_PLTGOT16_DS 65
++#define R_PPC64_PLTGOT16_LO_DS 66
++
++
++#define R_PPC64_TLS 67
++#define R_PPC64_DTPMOD64 68
++#define R_PPC64_TPREL16 69
++#define R_PPC64_TPREL16_LO 70
++#define R_PPC64_TPREL16_HI 71
++#define R_PPC64_TPREL16_HA 72
++#define R_PPC64_TPREL64 73
++#define R_PPC64_DTPREL16 74
++#define R_PPC64_DTPREL16_LO 75
++#define R_PPC64_DTPREL16_HI 76
++#define R_PPC64_DTPREL16_HA 77
++#define R_PPC64_DTPREL64 78
++#define R_PPC64_GOT_TLSGD16 79
++#define R_PPC64_GOT_TLSGD16_LO 80
++#define R_PPC64_GOT_TLSGD16_HI 81
++#define R_PPC64_GOT_TLSGD16_HA 82
++#define R_PPC64_GOT_TLSLD16 83
++#define R_PPC64_GOT_TLSLD16_LO 84
++#define R_PPC64_GOT_TLSLD16_HI 85
++#define R_PPC64_GOT_TLSLD16_HA 86
++#define R_PPC64_GOT_TPREL16_DS 87
++#define R_PPC64_GOT_TPREL16_LO_DS 88
++#define R_PPC64_GOT_TPREL16_HI 89
++#define R_PPC64_GOT_TPREL16_HA 90
++#define R_PPC64_GOT_DTPREL16_DS 91
++#define R_PPC64_GOT_DTPREL16_LO_DS 92
++#define R_PPC64_GOT_DTPREL16_HI 93
++#define R_PPC64_GOT_DTPREL16_HA 94
++#define R_PPC64_TPREL16_DS 95
++#define R_PPC64_TPREL16_LO_DS 96
++#define R_PPC64_TPREL16_HIGHER 97
++#define R_PPC64_TPREL16_HIGHERA 98
++#define R_PPC64_TPREL16_HIGHEST 99
++#define R_PPC64_TPREL16_HIGHESTA 100
++#define R_PPC64_DTPREL16_DS 101
++#define R_PPC64_DTPREL16_LO_DS 102
++#define R_PPC64_DTPREL16_HIGHER 103
++#define R_PPC64_DTPREL16_HIGHERA 104
++#define R_PPC64_DTPREL16_HIGHEST 105
++#define R_PPC64_DTPREL16_HIGHESTA 106
++
++
++#define R_PPC64_JMP_IREL 247
++#define R_PPC64_IRELATIVE 248
++#define R_PPC64_REL16 249
++#define R_PPC64_REL16_LO 250
++#define R_PPC64_REL16_HI 251
++#define R_PPC64_REL16_HA 252
++
++
++#define DT_PPC64_GLINK (DT_LOPROC + 0)
++#define DT_PPC64_OPD (DT_LOPROC + 1)
++#define DT_PPC64_OPDSZ (DT_LOPROC + 2)
++#define DT_PPC64_NUM 3
++
++
++
++
++
++#define EF_ARM_RELEXEC 0x01
++#define EF_ARM_HASENTRY 0x02
++#define EF_ARM_INTERWORK 0x04
++#define EF_ARM_APCS_26 0x08
++#define EF_ARM_APCS_FLOAT 0x10
++#define EF_ARM_PIC 0x20
++#define EF_ARM_ALIGN8 0x40
++#define EF_ARM_NEW_ABI 0x80
++#define EF_ARM_OLD_ABI 0x100
++#define EF_ARM_SOFT_FLOAT 0x200
++#define EF_ARM_VFP_FLOAT 0x400
++#define EF_ARM_MAVERICK_FLOAT 0x800
++
++#define EF_ARM_ABI_FLOAT_SOFT 0x200
++#define EF_ARM_ABI_FLOAT_HARD 0x400
++
++
++#define EF_ARM_SYMSARESORTED 0x04
++#define EF_ARM_DYNSYMSUSESEGIDX 0x08
++#define EF_ARM_MAPSYMSFIRST 0x10
++#define EF_ARM_EABIMASK 0XFF000000
++
++
++#define EF_ARM_BE8 0x00800000
++#define EF_ARM_LE8 0x00400000
++
++#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
++#define EF_ARM_EABI_UNKNOWN 0x00000000
++#define EF_ARM_EABI_VER1 0x01000000
++#define EF_ARM_EABI_VER2 0x02000000
++#define EF_ARM_EABI_VER3 0x03000000
++#define EF_ARM_EABI_VER4 0x04000000
++#define EF_ARM_EABI_VER5 0x05000000
++
++
++#define STT_ARM_TFUNC STT_LOPROC
++#define STT_ARM_16BIT STT_HIPROC
++
++
++#define SHF_ARM_ENTRYSECT 0x10000000
++#define SHF_ARM_COMDEF 0x80000000
++
++
++
++#define PF_ARM_SB 0x10000000
++
++#define PF_ARM_PI 0x20000000
++#define PF_ARM_ABS 0x40000000
++
++
++#define PT_ARM_EXIDX (PT_LOPROC + 1)
++
++
++#define SHT_ARM_EXIDX (SHT_LOPROC + 1)
++#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2)
++#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3)
++
++
++#define R_AARCH64_NONE 0
++#define R_AARCH64_ABS64 257
++#define R_AARCH64_ABS32 258
++#define R_AARCH64_COPY 1024
++#define R_AARCH64_GLOB_DAT 1025
++#define R_AARCH64_JUMP_SLOT 1026
++#define R_AARCH64_RELATIVE 1027
++#define R_AARCH64_TLS_DTPMOD64 1028
++#define R_AARCH64_TLS_DTPREL64 1029
++#define R_AARCH64_TLS_TPREL64 1030
++#define R_AARCH64_TLSDESC 1031
++
++
++#define R_ARM_NONE 0
++#define R_ARM_PC24 1
++#define R_ARM_ABS32 2
++#define R_ARM_REL32 3
++#define R_ARM_PC13 4
++#define R_ARM_ABS16 5
++#define R_ARM_ABS12 6
++#define R_ARM_THM_ABS5 7
++#define R_ARM_ABS8 8
++#define R_ARM_SBREL32 9
++#define R_ARM_THM_PC22 10
++#define R_ARM_THM_PC8 11
++#define R_ARM_AMP_VCALL9 12
++#define R_ARM_TLS_DESC 13
++#define R_ARM_THM_SWI8 14
++#define R_ARM_XPC25 15
++#define R_ARM_THM_XPC22 16
++#define R_ARM_TLS_DTPMOD32 17
++#define R_ARM_TLS_DTPOFF32 18
++#define R_ARM_TLS_TPOFF32 19
++#define R_ARM_COPY 20
++#define R_ARM_GLOB_DAT 21
++#define R_ARM_JUMP_SLOT 22
++#define R_ARM_RELATIVE 23
++#define R_ARM_GOTOFF 24
++#define R_ARM_GOTPC 25
++#define R_ARM_GOT32 26
++#define R_ARM_PLT32 27
++#define R_ARM_CALL 28
++#define R_ARM_JUMP24 29
++#define R_ARM_THM_JUMP24 30
++#define R_ARM_BASE_ABS 31
++#define R_ARM_ALU_PCREL_7_0 32
++#define R_ARM_ALU_PCREL_15_8 33
++#define R_ARM_ALU_PCREL_23_15 34
++#define R_ARM_LDR_SBREL_11_0 35
++#define R_ARM_ALU_SBREL_19_12 36
++#define R_ARM_ALU_SBREL_27_20 37
++#define R_ARM_TARGET1 38
++#define R_ARM_SBREL31 39
++#define R_ARM_V4BX 40
++#define R_ARM_TARGET2 41
++#define R_ARM_PREL31 42
++#define R_ARM_MOVW_ABS_NC 43
++#define R_ARM_MOVT_ABS 44
++#define R_ARM_MOVW_PREL_NC 45
++#define R_ARM_MOVT_PREL 46
++#define R_ARM_THM_MOVW_ABS_NC 47
++#define R_ARM_THM_MOVT_ABS 48
++#define R_ARM_THM_MOVW_PREL_NC 49
++#define R_ARM_THM_MOVT_PREL 50
++#define R_ARM_THM_JUMP19 51
++#define R_ARM_THM_JUMP6 52
++#define R_ARM_THM_ALU_PREL_11_0 53
++#define R_ARM_THM_PC12 54
++#define R_ARM_ABS32_NOI 55
++#define R_ARM_REL32_NOI 56
++#define R_ARM_ALU_PC_G0_NC 57
++#define R_ARM_ALU_PC_G0 58
++#define R_ARM_ALU_PC_G1_NC 59
++#define R_ARM_ALU_PC_G1 60
++#define R_ARM_ALU_PC_G2 61
++#define R_ARM_LDR_PC_G1 62
++#define R_ARM_LDR_PC_G2 63
++#define R_ARM_LDRS_PC_G0 64
++#define R_ARM_LDRS_PC_G1 65
++#define R_ARM_LDRS_PC_G2 66
++#define R_ARM_LDC_PC_G0 67
++#define R_ARM_LDC_PC_G1 68
++#define R_ARM_LDC_PC_G2 69
++#define R_ARM_ALU_SB_G0_NC 70
++#define R_ARM_ALU_SB_G0 71
++#define R_ARM_ALU_SB_G1_NC 72
++#define R_ARM_ALU_SB_G1 73
++#define R_ARM_ALU_SB_G2 74
++#define R_ARM_LDR_SB_G0 75
++#define R_ARM_LDR_SB_G1 76
++#define R_ARM_LDR_SB_G2 77
++#define R_ARM_LDRS_SB_G0 78
++#define R_ARM_LDRS_SB_G1 79
++#define R_ARM_LDRS_SB_G2 80
++#define R_ARM_LDC_SB_G0 81
++#define R_ARM_LDC_SB_G1 82
++#define R_ARM_LDC_SB_G2 83
++#define R_ARM_MOVW_BREL_NC 84
++#define R_ARM_MOVT_BREL 85
++#define R_ARM_MOVW_BREL 86
++#define R_ARM_THM_MOVW_BREL_NC 87
++#define R_ARM_THM_MOVT_BREL 88
++#define R_ARM_THM_MOVW_BREL 89
++#define R_ARM_TLS_GOTDESC 90
++#define R_ARM_TLS_CALL 91
++#define R_ARM_TLS_DESCSEQ 92
++#define R_ARM_THM_TLS_CALL 93
++#define R_ARM_PLT32_ABS 94
++#define R_ARM_GOT_ABS 95
++#define R_ARM_GOT_PREL 96
++#define R_ARM_GOT_BREL12 97
++#define R_ARM_GOTOFF12 98
++#define R_ARM_GOTRELAX 99
++#define R_ARM_GNU_VTENTRY 100
++#define R_ARM_GNU_VTINHERIT 101
++#define R_ARM_THM_PC11 102
++#define R_ARM_THM_PC9 103
++#define R_ARM_TLS_GD32 104
++
++#define R_ARM_TLS_LDM32 105
++
++#define R_ARM_TLS_LDO32 106
++
++#define R_ARM_TLS_IE32 107
++
++#define R_ARM_TLS_LE32 108
++#define R_ARM_TLS_LDO12 109
++#define R_ARM_TLS_LE12 110
++#define R_ARM_TLS_IE12GP 111
++#define R_ARM_ME_TOO 128
++#define R_ARM_THM_TLS_DESCSEQ 129
++#define R_ARM_THM_TLS_DESCSEQ16 129
++#define R_ARM_THM_TLS_DESCSEQ32 130
++#define R_ARM_THM_GOT_BREL12 131
++#define R_ARM_IRELATIVE 160
++#define R_ARM_RXPC25 249
++#define R_ARM_RSBREL32 250
++#define R_ARM_THM_RPC22 251
++#define R_ARM_RREL32 252
++#define R_ARM_RABS22 253
++#define R_ARM_RPC24 254
++#define R_ARM_RBASE 255
++
++#define R_ARM_NUM 256
++
++
++
++
++#define EF_IA_64_MASKOS 0x0000000f
++#define EF_IA_64_ABI64 0x00000010
++#define EF_IA_64_ARCH 0xff000000
++
++
++#define PT_IA_64_ARCHEXT (PT_LOPROC + 0)
++#define PT_IA_64_UNWIND (PT_LOPROC + 1)
++#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)
++#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)
++#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)
++
++
++#define PF_IA_64_NORECOV 0x80000000
++
++
++#define SHT_IA_64_EXT (SHT_LOPROC + 0)
++#define SHT_IA_64_UNWIND (SHT_LOPROC + 1)
++
++
++#define SHF_IA_64_SHORT 0x10000000
++#define SHF_IA_64_NORECOV 0x20000000
++
++
++#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
++#define DT_IA_64_NUM 1
++
++
++#define R_IA64_NONE 0x00
++#define R_IA64_IMM14 0x21
++#define R_IA64_IMM22 0x22
++#define R_IA64_IMM64 0x23
++#define R_IA64_DIR32MSB 0x24
++#define R_IA64_DIR32LSB 0x25
++#define R_IA64_DIR64MSB 0x26
++#define R_IA64_DIR64LSB 0x27
++#define R_IA64_GPREL22 0x2a
++#define R_IA64_GPREL64I 0x2b
++#define R_IA64_GPREL32MSB 0x2c
++#define R_IA64_GPREL32LSB 0x2d
++#define R_IA64_GPREL64MSB 0x2e
++#define R_IA64_GPREL64LSB 0x2f
++#define R_IA64_LTOFF22 0x32
++#define R_IA64_LTOFF64I 0x33
++#define R_IA64_PLTOFF22 0x3a
++#define R_IA64_PLTOFF64I 0x3b
++#define R_IA64_PLTOFF64MSB 0x3e
++#define R_IA64_PLTOFF64LSB 0x3f
++#define R_IA64_FPTR64I 0x43
++#define R_IA64_FPTR32MSB 0x44
++#define R_IA64_FPTR32LSB 0x45
++#define R_IA64_FPTR64MSB 0x46
++#define R_IA64_FPTR64LSB 0x47
++#define R_IA64_PCREL60B 0x48
++#define R_IA64_PCREL21B 0x49
++#define R_IA64_PCREL21M 0x4a
++#define R_IA64_PCREL21F 0x4b
++#define R_IA64_PCREL32MSB 0x4c
++#define R_IA64_PCREL32LSB 0x4d
++#define R_IA64_PCREL64MSB 0x4e
++#define R_IA64_PCREL64LSB 0x4f
++#define R_IA64_LTOFF_FPTR22 0x52
++#define R_IA64_LTOFF_FPTR64I 0x53
++#define R_IA64_LTOFF_FPTR32MSB 0x54
++#define R_IA64_LTOFF_FPTR32LSB 0x55
++#define R_IA64_LTOFF_FPTR64MSB 0x56
++#define R_IA64_LTOFF_FPTR64LSB 0x57
++#define R_IA64_SEGREL32MSB 0x5c
++#define R_IA64_SEGREL32LSB 0x5d
++#define R_IA64_SEGREL64MSB 0x5e
++#define R_IA64_SEGREL64LSB 0x5f
++#define R_IA64_SECREL32MSB 0x64
++#define R_IA64_SECREL32LSB 0x65
++#define R_IA64_SECREL64MSB 0x66
++#define R_IA64_SECREL64LSB 0x67
++#define R_IA64_REL32MSB 0x6c
++#define R_IA64_REL32LSB 0x6d
++#define R_IA64_REL64MSB 0x6e
++#define R_IA64_REL64LSB 0x6f
++#define R_IA64_LTV32MSB 0x74
++#define R_IA64_LTV32LSB 0x75
++#define R_IA64_LTV64MSB 0x76
++#define R_IA64_LTV64LSB 0x77
++#define R_IA64_PCREL21BI 0x79
++#define R_IA64_PCREL22 0x7a
++#define R_IA64_PCREL64I 0x7b
++#define R_IA64_IPLTMSB 0x80
++#define R_IA64_IPLTLSB 0x81
++#define R_IA64_COPY 0x84
++#define R_IA64_SUB 0x85
++#define R_IA64_LTOFF22X 0x86
++#define R_IA64_LDXMOV 0x87
++#define R_IA64_TPREL14 0x91
++#define R_IA64_TPREL22 0x92
++#define R_IA64_TPREL64I 0x93
++#define R_IA64_TPREL64MSB 0x96
++#define R_IA64_TPREL64LSB 0x97
++#define R_IA64_LTOFF_TPREL22 0x9a
++#define R_IA64_DTPMOD64MSB 0xa6
++#define R_IA64_DTPMOD64LSB 0xa7
++#define R_IA64_LTOFF_DTPMOD22 0xaa
++#define R_IA64_DTPREL14 0xb1
++#define R_IA64_DTPREL22 0xb2
++#define R_IA64_DTPREL64I 0xb3
++#define R_IA64_DTPREL32MSB 0xb4
++#define R_IA64_DTPREL32LSB 0xb5
++#define R_IA64_DTPREL64MSB 0xb6
++#define R_IA64_DTPREL64LSB 0xb7
++#define R_IA64_LTOFF_DTPREL22 0xba
++
++
++
++
++#define R_SH_NONE 0
++#define R_SH_DIR32 1
++#define R_SH_REL32 2
++#define R_SH_DIR8WPN 3
++#define R_SH_IND12W 4
++#define R_SH_DIR8WPL 5
++#define R_SH_DIR8WPZ 6
++#define R_SH_DIR8BP 7
++#define R_SH_DIR8W 8
++#define R_SH_DIR8L 9
++#define R_SH_SWITCH16 25
++#define R_SH_SWITCH32 26
++#define R_SH_USES 27
++#define R_SH_COUNT 28
++#define R_SH_ALIGN 29
++#define R_SH_CODE 30
++#define R_SH_DATA 31
++#define R_SH_LABEL 32
++#define R_SH_SWITCH8 33
++#define R_SH_GNU_VTINHERIT 34
++#define R_SH_GNU_VTENTRY 35
++#define R_SH_TLS_GD_32 144
++#define R_SH_TLS_LD_32 145
++#define R_SH_TLS_LDO_32 146
++#define R_SH_TLS_IE_32 147
++#define R_SH_TLS_LE_32 148
++#define R_SH_TLS_DTPMOD32 149
++#define R_SH_TLS_DTPOFF32 150
++#define R_SH_TLS_TPOFF32 151
++#define R_SH_GOT32 160
++#define R_SH_PLT32 161
++#define R_SH_COPY 162
++#define R_SH_GLOB_DAT 163
++#define R_SH_JMP_SLOT 164
++#define R_SH_RELATIVE 165
++#define R_SH_GOTOFF 166
++#define R_SH_GOTPC 167
++
++#define R_SH_NUM 256
++
++
++
++#define R_390_NONE 0
++#define R_390_8 1
++#define R_390_12 2
++#define R_390_16 3
++#define R_390_32 4
++#define R_390_PC32 5
++#define R_390_GOT12 6
++#define R_390_GOT32 7
++#define R_390_PLT32 8
++#define R_390_COPY 9
++#define R_390_GLOB_DAT 10
++#define R_390_JMP_SLOT 11
++#define R_390_RELATIVE 12
++#define R_390_GOTOFF32 13
++#define R_390_GOTPC 14
++#define R_390_GOT16 15
++#define R_390_PC16 16
++#define R_390_PC16DBL 17
++#define R_390_PLT16DBL 18
++#define R_390_PC32DBL 19
++#define R_390_PLT32DBL 20
++#define R_390_GOTPCDBL 21
++#define R_390_64 22
++#define R_390_PC64 23
++#define R_390_GOT64 24
++#define R_390_PLT64 25
++#define R_390_GOTENT 26
++#define R_390_GOTOFF16 27
++#define R_390_GOTOFF64 28
++#define R_390_GOTPLT12 29
++#define R_390_GOTPLT16 30
++#define R_390_GOTPLT32 31
++#define R_390_GOTPLT64 32
++#define R_390_GOTPLTENT 33
++#define R_390_PLTOFF16 34
++#define R_390_PLTOFF32 35
++#define R_390_PLTOFF64 36
++#define R_390_TLS_LOAD 37
++#define R_390_TLS_GDCALL 38
++
++#define R_390_TLS_LDCALL 39
++
++#define R_390_TLS_GD32 40
++
++#define R_390_TLS_GD64 41
++
++#define R_390_TLS_GOTIE12 42
++
++#define R_390_TLS_GOTIE32 43
++
++#define R_390_TLS_GOTIE64 44
++
++#define R_390_TLS_LDM32 45
++
++#define R_390_TLS_LDM64 46
++
++#define R_390_TLS_IE32 47
++
++#define R_390_TLS_IE64 48
++
++#define R_390_TLS_IEENT 49
++
++#define R_390_TLS_LE32 50
++
++#define R_390_TLS_LE64 51
++
++#define R_390_TLS_LDO32 52
++
++#define R_390_TLS_LDO64 53
++
++#define R_390_TLS_DTPMOD 54
++#define R_390_TLS_DTPOFF 55
++#define R_390_TLS_TPOFF 56
++
++#define R_390_20 57
++#define R_390_GOT20 58
++#define R_390_GOTPLT20 59
++#define R_390_TLS_GOTIE20 60
++
++
++#define R_390_NUM 61
++
++
++
++#define R_CRIS_NONE 0
++#define R_CRIS_8 1
++#define R_CRIS_16 2
++#define R_CRIS_32 3
++#define R_CRIS_8_PCREL 4
++#define R_CRIS_16_PCREL 5
++#define R_CRIS_32_PCREL 6
++#define R_CRIS_GNU_VTINHERIT 7
++#define R_CRIS_GNU_VTENTRY 8
++#define R_CRIS_COPY 9
++#define R_CRIS_GLOB_DAT 10
++#define R_CRIS_JUMP_SLOT 11
++#define R_CRIS_RELATIVE 12
++#define R_CRIS_16_GOT 13
++#define R_CRIS_32_GOT 14
++#define R_CRIS_16_GOTPLT 15
++#define R_CRIS_32_GOTPLT 16
++#define R_CRIS_32_GOTREL 17
++#define R_CRIS_32_PLT_GOTREL 18
++#define R_CRIS_32_PLT_PCREL 19
++
++#define R_CRIS_NUM 20
++
++
++
++#define R_X86_64_NONE 0
++#define R_X86_64_64 1
++#define R_X86_64_PC32 2
++#define R_X86_64_GOT32 3
++#define R_X86_64_PLT32 4
++#define R_X86_64_COPY 5
++#define R_X86_64_GLOB_DAT 6
++#define R_X86_64_JUMP_SLOT 7
++#define R_X86_64_RELATIVE 8
++#define R_X86_64_GOTPCREL 9
++
++#define R_X86_64_32 10
++#define R_X86_64_32S 11
++#define R_X86_64_16 12
++#define R_X86_64_PC16 13
++#define R_X86_64_8 14
++#define R_X86_64_PC8 15
++#define R_X86_64_DTPMOD64 16
++#define R_X86_64_DTPOFF64 17
++#define R_X86_64_TPOFF64 18
++#define R_X86_64_TLSGD 19
++
++#define R_X86_64_TLSLD 20
++
++#define R_X86_64_DTPOFF32 21
++#define R_X86_64_GOTTPOFF 22
++
++#define R_X86_64_TPOFF32 23
++#define R_X86_64_PC64 24
++#define R_X86_64_GOTOFF64 25
++#define R_X86_64_GOTPC32 26
++#define R_X86_64_GOT64 27
++#define R_X86_64_GOTPCREL64 28
++#define R_X86_64_GOTPC64 29
++#define R_X86_64_GOTPLT64 30
++#define R_X86_64_PLTOFF64 31
++#define R_X86_64_SIZE32 32
++#define R_X86_64_SIZE64 33
++
++#define R_X86_64_GOTPC32_TLSDESC 34
++#define R_X86_64_TLSDESC_CALL 35
++
++#define R_X86_64_TLSDESC 36
++#define R_X86_64_IRELATIVE 37
++#define R_X86_64_RELATIVE64 38
++#define R_X86_64_NUM 39
++
++
++
++#define R_MN10300_NONE 0
++#define R_MN10300_32 1
++#define R_MN10300_16 2
++#define R_MN10300_8 3
++#define R_MN10300_PCREL32 4
++#define R_MN10300_PCREL16 5
++#define R_MN10300_PCREL8 6
++#define R_MN10300_GNU_VTINHERIT 7
++#define R_MN10300_GNU_VTENTRY 8
++#define R_MN10300_24 9
++#define R_MN10300_GOTPC32 10
++#define R_MN10300_GOTPC16 11
++#define R_MN10300_GOTOFF32 12
++#define R_MN10300_GOTOFF24 13
++#define R_MN10300_GOTOFF16 14
++#define R_MN10300_PLT32 15
++#define R_MN10300_PLT16 16
++#define R_MN10300_GOT32 17
++#define R_MN10300_GOT24 18
++#define R_MN10300_GOT16 19
++#define R_MN10300_COPY 20
++#define R_MN10300_GLOB_DAT 21
++#define R_MN10300_JMP_SLOT 22
++#define R_MN10300_RELATIVE 23
++
++#define R_MN10300_NUM 24
++
++
++
++#define R_M32R_NONE 0
++#define R_M32R_16 1
++#define R_M32R_32 2
++#define R_M32R_24 3
++#define R_M32R_10_PCREL 4
++#define R_M32R_18_PCREL 5
++#define R_M32R_26_PCREL 6
++#define R_M32R_HI16_ULO 7
++#define R_M32R_HI16_SLO 8
++#define R_M32R_LO16 9
++#define R_M32R_SDA16 10
++#define R_M32R_GNU_VTINHERIT 11
++#define R_M32R_GNU_VTENTRY 12
++
++#define R_M32R_16_RELA 33
++#define R_M32R_32_RELA 34
++#define R_M32R_24_RELA 35
++#define R_M32R_10_PCREL_RELA 36
++#define R_M32R_18_PCREL_RELA 37
++#define R_M32R_26_PCREL_RELA 38
++#define R_M32R_HI16_ULO_RELA 39
++#define R_M32R_HI16_SLO_RELA 40
++#define R_M32R_LO16_RELA 41
++#define R_M32R_SDA16_RELA 42
++#define R_M32R_RELA_GNU_VTINHERIT 43
++#define R_M32R_RELA_GNU_VTENTRY 44
++#define R_M32R_REL32 45
++
++#define R_M32R_GOT24 48
++#define R_M32R_26_PLTREL 49
++#define R_M32R_COPY 50
++#define R_M32R_GLOB_DAT 51
++#define R_M32R_JMP_SLOT 52
++#define R_M32R_RELATIVE 53
++#define R_M32R_GOTOFF 54
++#define R_M32R_GOTPC24 55
++#define R_M32R_GOT16_HI_ULO 56
++
++#define R_M32R_GOT16_HI_SLO 57
++
++#define R_M32R_GOT16_LO 58
++#define R_M32R_GOTPC_HI_ULO 59
++
++#define R_M32R_GOTPC_HI_SLO 60
++
++#define R_M32R_GOTPC_LO 61
++
++#define R_M32R_GOTOFF_HI_ULO 62
++
++#define R_M32R_GOTOFF_HI_SLO 63
++
++#define R_M32R_GOTOFF_LO 64
++#define R_M32R_NUM 256
++
++#define R_MICROBLAZE_NONE 0
++#define R_MICROBLAZE_32 1
++#define R_MICROBLAZE_32_PCREL 2
++#define R_MICROBLAZE_64_PCREL 3
++#define R_MICROBLAZE_32_PCREL_LO 4
++#define R_MICROBLAZE_64 5
++#define R_MICROBLAZE_32_LO 6
++#define R_MICROBLAZE_SRO32 7
++#define R_MICROBLAZE_SRW32 8
++#define R_MICROBLAZE_64_NONE 9
++#define R_MICROBLAZE_32_SYM_OP_SYM 10
++#define R_MICROBLAZE_GNU_VTINHERIT 11
++#define R_MICROBLAZE_GNU_VTENTRY 12
++#define R_MICROBLAZE_GOTPC_64 13
++#define R_MICROBLAZE_GOT_64 14
++#define R_MICROBLAZE_PLT_64 15
++#define R_MICROBLAZE_REL 16
++#define R_MICROBLAZE_JUMP_SLOT 17
++#define R_MICROBLAZE_GLOB_DAT 18
++#define R_MICROBLAZE_GOTOFF_64 19
++#define R_MICROBLAZE_GOTOFF_32 20
++#define R_MICROBLAZE_COPY 21
++#define R_MICROBLAZE_TLS 22
++#define R_MICROBLAZE_TLSGD 23
++#define R_MICROBLAZE_TLSLD 24
++#define R_MICROBLAZE_TLSDTPMOD32 25
++#define R_MICROBLAZE_TLSDTPREL32 26
++#define R_MICROBLAZE_TLSDTPREL64 27
++#define R_MICROBLAZE_TLSGOTTPREL32 28
++#define R_MICROBLAZE_TLSTPREL32 29
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
diff --git a/target/linux/patches/5.10.213/startup.patch b/target/linux/patches/5.10.213/startup.patch
new file mode 100644
index 000000000..eef481021
--- /dev/null
+++ b/target/linux/patches/5.10.213/startup.patch
@@ -0,0 +1,25 @@
+diff -Nur linux-5.10.17.orig/init/initramfs.c linux-5.10.17/init/initramfs.c
+--- linux-5.10.17.orig/init/initramfs.c 2021-02-17 11:02:30.000000000 +0100
++++ linux-5.10.17/init/initramfs.c 2021-02-23 13:27:40.449467155 +0100
+@@ -636,6 +636,9 @@
+ initrd_start = 0;
+ initrd_end = 0;
+
++#ifdef CONFIG_DEVTMPFS_MOUNT
++ devtmpfs_mount();
++#endif
+ flush_delayed_fput();
+ return 0;
+ }
+diff -Nur linux-5.10.17.orig/init/main.c linux-5.10.17/init/main.c
+--- linux-5.10.17.orig/init/main.c 2021-02-17 11:02:30.000000000 +0100
++++ linux-5.10.17/init/main.c 2021-02-23 13:39:32.238650450 +0100
+@@ -1483,6 +1483,8 @@
+ pr_err("Warning: unable to open an initial console.\n");
+ return;
+ }
++ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
++
+ init_dup(file);
+ init_dup(file);
+ init_dup(file);
diff --git a/target/linux/patches/5.15.152/darwin-dtc.patch b/target/linux/patches/5.15.152/darwin-dtc.patch
new file mode 100644
index 000000000..0cdc23ab4
--- /dev/null
+++ b/target/linux/patches/5.15.152/darwin-dtc.patch
@@ -0,0 +1,26 @@
+diff -Nur linux-4.19.132.orig/scripts/dtc/dtc.h linux-4.19.132/scripts/dtc/dtc.h
+--- linux-4.19.132.orig/scripts/dtc/dtc.h 2020-07-09 09:37:13.000000000 +0200
++++ linux-4.19.132/scripts/dtc/dtc.h 2020-07-15 02:38:00.000000000 +0200
+@@ -33,8 +33,8 @@
+ #include <unistd.h>
+ #include <inttypes.h>
+
+-#include <libfdt_env.h>
+-#include <fdt.h>
++#include "libfdt/libfdt_env.h"
++#include "libfdt/fdt.h"
+
+ #include "util.h"
+
+diff -Nur linux-4.19.132.orig/scripts/dtc/util.c linux-4.19.132/scripts/dtc/util.c
+--- linux-4.19.132.orig/scripts/dtc/util.c 2020-07-09 09:37:13.000000000 +0200
++++ linux-4.19.132/scripts/dtc/util.c 2020-07-15 02:38:18.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+
+-#include "libfdt.h"
++#include "libfdt/libfdt.h"
+ #include "util.h"
+ #include "version_gen.h"
+
diff --git a/target/linux/patches/5.15.152/darwin-file2alias.patch b/target/linux/patches/5.15.152/darwin-file2alias.patch
new file mode 100644
index 000000000..fdbc598a8
--- /dev/null
+++ b/target/linux/patches/5.15.152/darwin-file2alias.patch
@@ -0,0 +1,14 @@
+diff -Nur linux-5.4.42.orig/scripts/mod/file2alias.c linux-5.4.42/scripts/mod/file2alias.c
+--- linux-5.4.42.orig/scripts/mod/file2alias.c 2020-05-20 08:20:41.000000000 +0200
++++ linux-5.4.42/scripts/mod/file2alias.c 2020-06-06 20:14:59.000000000 +0200
+@@ -10,6 +10,10 @@
+ * of the GNU General Public License, incorporated herein by reference.
+ */
+
++/* workaround for Darwin */
++#define _UUID_T
++#define __GETHOSTUUID_H
++
+ #include "modpost.h"
+ #include "devicetable-offsets.h"
+
diff --git a/target/linux/patches/5.15.152/dtc-noyaml.patch b/target/linux/patches/5.15.152/dtc-noyaml.patch
new file mode 100644
index 000000000..759bb01f7
--- /dev/null
+++ b/target/linux/patches/5.15.152/dtc-noyaml.patch
@@ -0,0 +1,16 @@
+diff -Nur linux-5.4.53.orig/scripts/dtc/dtc.c linux-5.4.53/scripts/dtc/dtc.c
+--- linux-5.4.53.orig/scripts/dtc/dtc.c 2020-07-22 09:33:18.000000000 +0200
++++ linux-5.4.53/scripts/dtc/dtc.c 2020-07-28 14:20:10.000000000 +0200
+@@ -349,12 +349,6 @@
+
+ if (streq(outform, "dts")) {
+ dt_to_source(outf, dti);
+-#ifndef NO_YAML
+- } else if (streq(outform, "yaml")) {
+- if (!streq(inform, "dts"))
+- die("YAML output format requires dts input format\n");
+- dt_to_yaml(outf, dti);
+-#endif
+ } else if (streq(outform, "dtb")) {
+ dt_to_blob(outf, dti, outversion);
+ } else if (streq(outform, "asm")) {
diff --git a/target/linux/patches/5.15.152/enable-ethernet-bpi-m2-plus.patch b/target/linux/patches/5.15.152/enable-ethernet-bpi-m2-plus.patch
new file mode 100644
index 000000000..7e9abd9ce
--- /dev/null
+++ b/target/linux/patches/5.15.152/enable-ethernet-bpi-m2-plus.patch
@@ -0,0 +1,15 @@
+diff -Nur linux-6.0.11.orig/arch/arm/boot/dts/sunxi-h3-h5.dtsi linux-6.0.11/arch/arm/boot/dts/sunxi-h3-h5.dtsi
+--- linux-6.0.11.orig/arch/arm/boot/dts/sunxi-h3-h5.dtsi 2022-12-02 17:43:18.000000000 +0100
++++ linux-6.0.11/arch/arm/boot/dts/sunxi-h3-h5.dtsi 2022-12-19 08:06:16.836436057 +0100
+@@ -532,7 +532,10 @@
+ reset-names = "stmmaceth";
+ clocks = <&ccu CLK_BUS_EMAC>;
+ clock-names = "stmmaceth";
+- status = "disabled";
++ status = "okay";
++ phy-handle = <&int_mii_phy>;
++ phy-mode = "mii";
++ allwinner,leds-active-low;
+
+ mdio: mdio {
+ #address-cells = <1>;
diff --git a/target/linux/patches/5.15.152/nds32-ag101p.patch b/target/linux/patches/5.15.152/nds32-ag101p.patch
new file mode 100644
index 000000000..a8beea478
--- /dev/null
+++ b/target/linux/patches/5.15.152/nds32-ag101p.patch
@@ -0,0 +1,64 @@
+diff -Nur linux-5.10.93.orig/arch/nds32/boot/dts/ag101p.dts linux-5.10.93/arch/nds32/boot/dts/ag101p.dts
+--- linux-5.10.93.orig/arch/nds32/boot/dts/ag101p.dts 1970-01-01 01:00:00.000000000 +0100
++++ linux-5.10.93/arch/nds32/boot/dts/ag101p.dts 2022-01-21 03:39:21.936044612 +0100
+@@ -0,0 +1,60 @@
++/dts-v1/;
++/ {
++ compatible = "nds32 ag101p";
++ #address-cells = <1>;
++ #size-cells = <1>;
++ interrupt-parent = <&intc>;
++
++ chosen {
++ bootargs = "console=ttyS0,38400n8 earlyprintk=uart8250-32bit,0x99600000 debug loglevel=7";
++ };
++
++ memory@0 {
++ device_type = "memory";
++ reg = <0x00000000 0x40000000>;
++ };
++
++ cpus {
++ cpu@0 {
++ device_type = "cpu";
++ compatible = "andestech,n13";
++ next-level-cache = <&L2>;
++ };
++ };
++
++ intc: interrupt-controller {
++ compatible = "andestech,atnointc010";
++ #interrupt-cells = <2>;
++ interrupt-controller;
++ };
++
++ serial0: serial@99600000 {
++ compatible = "andestech,uart16550", "ns16550a";
++ reg = <0x99600000 0x1000>;
++ interrupts = <7 4>;
++ clock-frequency = <14745600>;
++ reg-shift = <2>;
++ no-loopback-test = <1>;
++ };
++
++ timer0: timer@98400000 {
++ compatible = "andestech,atftmr010";
++ reg = <0x98400000 0x1000>;
++ interrupts = <19 4>;
++ clock-frequency = <15000000>;
++ cycle-count-offset = <0x20>;
++ };
++
++ mac0: mac@90900000 {
++ compatible = "andestech,atmac100";
++ reg = <0x90900000 0x1000>;
++ interrupts = <25 4>;
++ };
++
++ L2: l2-cache {
++ compatible = "andestech,atl2c";
++ reg = <0x90f00000 0x1000>;
++ cache-unified;
++ cache-level = <2>;
++ };
++};
diff --git a/target/linux/patches/5.15.152/or1k-more-ram.patch b/target/linux/patches/5.15.152/or1k-more-ram.patch
new file mode 100644
index 000000000..de848c838
--- /dev/null
+++ b/target/linux/patches/5.15.152/or1k-more-ram.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts
+--- linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts 2016-11-26 09:57:13.000000000 +0100
++++ linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts 2016-12-04 14:39:46.092952799 +0100
+@@ -11,7 +11,7 @@
+
+ memory@0 {
+ device_type = "memory";
+- reg = <0x00000000 0x02000000>;
++ reg = <0x00000000 0x04000000>;
+ };
+
+ cpus {
diff --git a/target/linux/patches/5.15.152/relocs.patch b/target/linux/patches/5.15.152/relocs.patch
new file mode 100644
index 000000000..5bcd974c7
--- /dev/null
+++ b/target/linux/patches/5.15.152/relocs.patch
@@ -0,0 +1,2698 @@
+diff -Nur linux-5.4.42.orig/arch/x86/tools/relocs.h linux-5.4.42/arch/x86/tools/relocs.h
+--- linux-5.4.42.orig/arch/x86/tools/relocs.h 2020-05-20 08:20:41.000000000 +0200
++++ linux-5.4.42/arch/x86/tools/relocs.h 2020-06-06 18:18:17.000000000 +0200
+@@ -10,11 +10,19 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <unistd.h>
++#ifdef __linux__
+ #include <elf.h>
+ #include <byteswap.h>
+ #define USE_BSD
+ #include <endian.h>
++#else
++#include "elf.h"
++#endif
++#ifdef __APPLE__
++#include <pcreposix.h>
++#else
+ #include <regex.h>
++#endif
+ #include <tools/le_byteshift.h>
+
+ void die(char *fmt, ...) __attribute__((noreturn));
+diff -Nur linux-5.4.42.orig/tools/include/elf.h linux-5.4.42/tools/include/elf.h
+--- linux-5.4.42.orig/tools/include/elf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-5.4.42/tools/include/elf.h 2020-06-06 18:18:17.000000000 +0200
+@@ -0,0 +1,2671 @@
++#ifndef _ELF_H
++#define _ELF_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#include <stdint.h>
++
++typedef uint16_t Elf32_Half;
++typedef uint16_t Elf64_Half;
++
++typedef uint32_t Elf32_Word;
++typedef int32_t Elf32_Sword;
++typedef uint32_t Elf64_Word;
++typedef int32_t Elf64_Sword;
++
++typedef uint64_t Elf32_Xword;
++typedef int64_t Elf32_Sxword;
++typedef uint64_t Elf64_Xword;
++typedef int64_t Elf64_Sxword;
++
++typedef uint32_t Elf32_Addr;
++typedef uint64_t Elf64_Addr;
++
++typedef uint32_t Elf32_Off;
++typedef uint64_t Elf64_Off;
++
++typedef uint16_t Elf32_Section;
++typedef uint16_t Elf64_Section;
++
++typedef Elf32_Half Elf32_Versym;
++typedef Elf64_Half Elf64_Versym;
++
++#define EI_NIDENT (16)
++
++typedef struct {
++ unsigned char e_ident[EI_NIDENT];
++ Elf32_Half e_type;
++ Elf32_Half e_machine;
++ Elf32_Word e_version;
++ Elf32_Addr e_entry;
++ Elf32_Off e_phoff;
++ Elf32_Off e_shoff;
++ Elf32_Word e_flags;
++ Elf32_Half e_ehsize;
++ Elf32_Half e_phentsize;
++ Elf32_Half e_phnum;
++ Elf32_Half e_shentsize;
++ Elf32_Half e_shnum;
++ Elf32_Half e_shstrndx;
++} Elf32_Ehdr;
++
++typedef struct {
++ unsigned char e_ident[EI_NIDENT];
++ Elf64_Half e_type;
++ Elf64_Half e_machine;
++ Elf64_Word e_version;
++ Elf64_Addr e_entry;
++ Elf64_Off e_phoff;
++ Elf64_Off e_shoff;
++ Elf64_Word e_flags;
++ Elf64_Half e_ehsize;
++ Elf64_Half e_phentsize;
++ Elf64_Half e_phnum;
++ Elf64_Half e_shentsize;
++ Elf64_Half e_shnum;
++ Elf64_Half e_shstrndx;
++} Elf64_Ehdr;
++
++#define EI_MAG0 0
++#define ELFMAG0 0x7f
++
++#define EI_MAG1 1
++#define ELFMAG1 'E'
++
++#define EI_MAG2 2
++#define ELFMAG2 'L'
++
++#define EI_MAG3 3
++#define ELFMAG3 'F'
++
++
++#define ELFMAG "\177ELF"
++#define SELFMAG 4
++
++#define EI_CLASS 4
++#define ELFCLASSNONE 0
++#define ELFCLASS32 1
++#define ELFCLASS64 2
++#define ELFCLASSNUM 3
++
++#define EI_DATA 5
++#define ELFDATANONE 0
++#define ELFDATA2LSB 1
++#define ELFDATA2MSB 2
++#define ELFDATANUM 3
++
++#define EI_VERSION 6
++
++
++#define EI_OSABI 7
++#define ELFOSABI_NONE 0
++#define ELFOSABI_SYSV 0
++#define ELFOSABI_HPUX 1
++#define ELFOSABI_NETBSD 2
++#define ELFOSABI_LINUX 3
++#define ELFOSABI_GNU 3
++#define ELFOSABI_SOLARIS 6
++#define ELFOSABI_AIX 7
++#define ELFOSABI_IRIX 8
++#define ELFOSABI_FREEBSD 9
++#define ELFOSABI_TRU64 10
++#define ELFOSABI_MODESTO 11
++#define ELFOSABI_OPENBSD 12
++#define ELFOSABI_ARM 97
++#define ELFOSABI_STANDALONE 255
++
++#define EI_ABIVERSION 8
++
++#define EI_PAD 9
++
++
++
++#define ET_NONE 0
++#define ET_REL 1
++#define ET_EXEC 2
++#define ET_DYN 3
++#define ET_CORE 4
++#define ET_NUM 5
++#define ET_LOOS 0xfe00
++#define ET_HIOS 0xfeff
++#define ET_LOPROC 0xff00
++#define ET_HIPROC 0xffff
++
++
++
++#define EM_NONE 0
++#define EM_M32 1
++#define EM_SPARC 2
++#define EM_386 3
++#define EM_68K 4
++#define EM_88K 5
++#define EM_860 7
++#define EM_MIPS 8
++#define EM_S370 9
++#define EM_MIPS_RS3_LE 10
++
++#define EM_PARISC 15
++#define EM_VPP500 17
++#define EM_SPARC32PLUS 18
++#define EM_960 19
++#define EM_PPC 20
++#define EM_PPC64 21
++#define EM_S390 22
++
++#define EM_V800 36
++#define EM_FR20 37
++#define EM_RH32 38
++#define EM_RCE 39
++#define EM_ARM 40
++#define EM_FAKE_ALPHA 41
++#define EM_SH 42
++#define EM_SPARCV9 43
++#define EM_TRICORE 44
++#define EM_ARC 45
++#define EM_H8_300 46
++#define EM_H8_300H 47
++#define EM_H8S 48
++#define EM_H8_500 49
++#define EM_IA_64 50
++#define EM_MIPS_X 51
++#define EM_COLDFIRE 52
++#define EM_68HC12 53
++#define EM_MMA 54
++#define EM_PCP 55
++#define EM_NCPU 56
++#define EM_NDR1 57
++#define EM_STARCORE 58
++#define EM_ME16 59
++#define EM_ST100 60
++#define EM_TINYJ 61
++#define EM_X86_64 62
++#define EM_PDSP 63
++
++#define EM_FX66 66
++#define EM_ST9PLUS 67
++#define EM_ST7 68
++#define EM_68HC16 69
++#define EM_68HC11 70
++#define EM_68HC08 71
++#define EM_68HC05 72
++#define EM_SVX 73
++#define EM_ST19 74
++#define EM_VAX 75
++#define EM_CRIS 76
++#define EM_JAVELIN 77
++#define EM_FIREPATH 78
++#define EM_ZSP 79
++#define EM_MMIX 80
++#define EM_HUANY 81
++#define EM_PRISM 82
++#define EM_AVR 83
++#define EM_FR30 84
++#define EM_D10V 85
++#define EM_D30V 86
++#define EM_V850 87
++#define EM_M32R 88
++#define EM_MN10300 89
++#define EM_MN10200 90
++#define EM_PJ 91
++#define EM_OPENRISC 92
++#define EM_ARC_A5 93
++#define EM_XTENSA 94
++#define EM_AARCH64 183
++#define EM_TILEPRO 188
++#define EM_MICROBLAZE 189
++#define EM_TILEGX 191
++#define EM_NUM 192
++#define EM_ALPHA 0x9026
++
++#define EV_NONE 0
++#define EV_CURRENT 1
++#define EV_NUM 2
++
++typedef struct {
++ Elf32_Word sh_name;
++ Elf32_Word sh_type;
++ Elf32_Word sh_flags;
++ Elf32_Addr sh_addr;
++ Elf32_Off sh_offset;
++ Elf32_Word sh_size;
++ Elf32_Word sh_link;
++ Elf32_Word sh_info;
++ Elf32_Word sh_addralign;
++ Elf32_Word sh_entsize;
++} Elf32_Shdr;
++
++typedef struct {
++ Elf64_Word sh_name;
++ Elf64_Word sh_type;
++ Elf64_Xword sh_flags;
++ Elf64_Addr sh_addr;
++ Elf64_Off sh_offset;
++ Elf64_Xword sh_size;
++ Elf64_Word sh_link;
++ Elf64_Word sh_info;
++ Elf64_Xword sh_addralign;
++ Elf64_Xword sh_entsize;
++} Elf64_Shdr;
++
++
++
++#define SHN_UNDEF 0
++#define SHN_LORESERVE 0xff00
++#define SHN_LOPROC 0xff00
++#define SHN_BEFORE 0xff00
++
++#define SHN_AFTER 0xff01
++
++#define SHN_HIPROC 0xff1f
++#define SHN_LOOS 0xff20
++#define SHN_HIOS 0xff3f
++#define SHN_ABS 0xfff1
++#define SHN_COMMON 0xfff2
++#define SHN_XINDEX 0xffff
++#define SHN_HIRESERVE 0xffff
++
++
++
++#define SHT_NULL 0
++#define SHT_PROGBITS 1
++#define SHT_SYMTAB 2
++#define SHT_STRTAB 3
++#define SHT_RELA 4
++#define SHT_HASH 5
++#define SHT_DYNAMIC 6
++#define SHT_NOTE 7
++#define SHT_NOBITS 8
++#define SHT_REL 9
++#define SHT_SHLIB 10
++#define SHT_DYNSYM 11
++#define SHT_INIT_ARRAY 14
++#define SHT_FINI_ARRAY 15
++#define SHT_PREINIT_ARRAY 16
++#define SHT_GROUP 17
++#define SHT_SYMTAB_SHNDX 18
++#define SHT_NUM 19
++#define SHT_LOOS 0x60000000
++#define SHT_GNU_ATTRIBUTES 0x6ffffff5
++#define SHT_GNU_HASH 0x6ffffff6
++#define SHT_GNU_LIBLIST 0x6ffffff7
++#define SHT_CHECKSUM 0x6ffffff8
++#define SHT_LOSUNW 0x6ffffffa
++#define SHT_SUNW_move 0x6ffffffa
++#define SHT_SUNW_COMDAT 0x6ffffffb
++#define SHT_SUNW_syminfo 0x6ffffffc
++#define SHT_GNU_verdef 0x6ffffffd
++#define SHT_GNU_verneed 0x6ffffffe
++#define SHT_GNU_versym 0x6fffffff
++#define SHT_HISUNW 0x6fffffff
++#define SHT_HIOS 0x6fffffff
++#define SHT_LOPROC 0x70000000
++#define SHT_HIPROC 0x7fffffff
++#define SHT_LOUSER 0x80000000
++#define SHT_HIUSER 0x8fffffff
++
++#define SHF_WRITE (1 << 0)
++#define SHF_ALLOC (1 << 1)
++#define SHF_EXECINSTR (1 << 2)
++#define SHF_MERGE (1 << 4)
++#define SHF_STRINGS (1 << 5)
++#define SHF_INFO_LINK (1 << 6)
++#define SHF_LINK_ORDER (1 << 7)
++#define SHF_OS_NONCONFORMING (1 << 8)
++
++#define SHF_GROUP (1 << 9)
++#define SHF_TLS (1 << 10)
++#define SHF_MASKOS 0x0ff00000
++#define SHF_MASKPROC 0xf0000000
++#define SHF_ORDERED (1 << 30)
++#define SHF_EXCLUDE (1 << 31)
++
++#define GRP_COMDAT 0x1
++
++typedef struct {
++ Elf32_Word st_name;
++ Elf32_Addr st_value;
++ Elf32_Word st_size;
++ unsigned char st_info;
++ unsigned char st_other;
++ Elf32_Section st_shndx;
++} Elf32_Sym;
++
++typedef struct {
++ Elf64_Word st_name;
++ unsigned char st_info;
++ unsigned char st_other;
++ Elf64_Section st_shndx;
++ Elf64_Addr st_value;
++ Elf64_Xword st_size;
++} Elf64_Sym;
++
++typedef struct {
++ Elf32_Half si_boundto;
++ Elf32_Half si_flags;
++} Elf32_Syminfo;
++
++typedef struct {
++ Elf64_Half si_boundto;
++ Elf64_Half si_flags;
++} Elf64_Syminfo;
++
++#define SYMINFO_BT_SELF 0xffff
++#define SYMINFO_BT_PARENT 0xfffe
++#define SYMINFO_BT_LOWRESERVE 0xff00
++
++#define SYMINFO_FLG_DIRECT 0x0001
++#define SYMINFO_FLG_PASSTHRU 0x0002
++#define SYMINFO_FLG_COPY 0x0004
++#define SYMINFO_FLG_LAZYLOAD 0x0008
++
++#define SYMINFO_NONE 0
++#define SYMINFO_CURRENT 1
++#define SYMINFO_NUM 2
++
++#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
++#define ELF32_ST_TYPE(val) ((val) & 0xf)
++#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
++
++#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
++#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
++#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
++
++#define STB_LOCAL 0
++#define STB_GLOBAL 1
++#define STB_WEAK 2
++#define STB_NUM 3
++#define STB_LOOS 10
++#define STB_GNU_UNIQUE 10
++#define STB_HIOS 12
++#define STB_LOPROC 13
++#define STB_HIPROC 15
++
++#define STT_NOTYPE 0
++#define STT_OBJECT 1
++#define STT_FUNC 2
++#define STT_SECTION 3
++#define STT_FILE 4
++#define STT_COMMON 5
++#define STT_TLS 6
++#define STT_NUM 7
++#define STT_LOOS 10
++#define STT_GNU_IFUNC 10
++#define STT_HIOS 12
++#define STT_LOPROC 13
++#define STT_HIPROC 15
++
++#define STN_UNDEF 0
++
++#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
++#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
++
++#define STV_DEFAULT 0
++#define STV_INTERNAL 1
++#define STV_HIDDEN 2
++#define STV_PROTECTED 3
++
++
++
++
++typedef struct
++{
++ Elf32_Addr r_offset;
++ Elf32_Word r_info;
++} Elf32_Rel;
++
++typedef struct {
++ Elf64_Addr r_offset;
++ Elf64_Xword r_info;
++} Elf64_Rel;
++
++
++
++typedef struct {
++ Elf32_Addr r_offset;
++ Elf32_Word r_info;
++ Elf32_Sword r_addend;
++} Elf32_Rela;
++
++typedef struct {
++ Elf64_Addr r_offset;
++ Elf64_Xword r_info;
++ Elf64_Sxword r_addend;
++} Elf64_Rela;
++
++
++
++#define ELF32_R_SYM(val) ((val) >> 8)
++#define ELF32_R_TYPE(val) ((val) & 0xff)
++#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
++
++#define ELF64_R_SYM(i) ((i) >> 32)
++#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
++#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
++
++
++
++typedef struct {
++ Elf32_Word p_type;
++ Elf32_Off p_offset;
++ Elf32_Addr p_vaddr;
++ Elf32_Addr p_paddr;
++ Elf32_Word p_filesz;
++ Elf32_Word p_memsz;
++ Elf32_Word p_flags;
++ Elf32_Word p_align;
++} Elf32_Phdr;
++
++typedef struct {
++ Elf64_Word p_type;
++ Elf64_Word p_flags;
++ Elf64_Off p_offset;
++ Elf64_Addr p_vaddr;
++ Elf64_Addr p_paddr;
++ Elf64_Xword p_filesz;
++ Elf64_Xword p_memsz;
++ Elf64_Xword p_align;
++} Elf64_Phdr;
++
++
++
++#define PT_NULL 0
++#define PT_LOAD 1
++#define PT_DYNAMIC 2
++#define PT_INTERP 3
++#define PT_NOTE 4
++#define PT_SHLIB 5
++#define PT_PHDR 6
++#define PT_TLS 7
++#define PT_NUM 8
++#define PT_LOOS 0x60000000
++#define PT_GNU_EH_FRAME 0x6474e550
++#define PT_GNU_STACK 0x6474e551
++#define PT_GNU_RELRO 0x6474e552
++#define PT_LOSUNW 0x6ffffffa
++#define PT_SUNWBSS 0x6ffffffa
++#define PT_SUNWSTACK 0x6ffffffb
++#define PT_HISUNW 0x6fffffff
++#define PT_HIOS 0x6fffffff
++#define PT_LOPROC 0x70000000
++#define PT_HIPROC 0x7fffffff
++
++
++#define PN_XNUM 0xffff
++
++
++#define PF_X (1 << 0)
++#define PF_W (1 << 1)
++#define PF_R (1 << 2)
++#define PF_MASKOS 0x0ff00000
++#define PF_MASKPROC 0xf0000000
++
++
++
++#define NT_PRSTATUS 1
++#define NT_FPREGSET 2
++#define NT_PRPSINFO 3
++#define NT_PRXREG 4
++#define NT_TASKSTRUCT 4
++#define NT_PLATFORM 5
++#define NT_AUXV 6
++#define NT_GWINDOWS 7
++#define NT_ASRS 8
++#define NT_PSTATUS 10
++#define NT_PSINFO 13
++#define NT_PRCRED 14
++#define NT_UTSNAME 15
++#define NT_LWPSTATUS 16
++#define NT_LWPSINFO 17
++#define NT_PRFPXREG 20
++#define NT_SIGINFO 0x53494749
++#define NT_FILE 0x46494c45
++#define NT_PRXFPREG 0x46e62b7f
++#define NT_PPC_VMX 0x100
++#define NT_PPC_SPE 0x101
++#define NT_PPC_VSX 0x102
++#define NT_386_TLS 0x200
++#define NT_386_IOPERM 0x201
++#define NT_X86_XSTATE 0x202
++#define NT_S390_HIGH_GPRS 0x300
++#define NT_S390_TIMER 0x301
++#define NT_S390_TODCMP 0x302
++#define NT_S390_TODPREG 0x303
++#define NT_S390_CTRS 0x304
++#define NT_S390_PREFIX 0x305
++#define NT_S390_LAST_BREAK 0x306
++#define NT_S390_SYSTEM_CALL 0x307
++#define NT_S390_TDB 0x308
++#define NT_ARM_VFP 0x400
++#define NT_ARM_TLS 0x401
++#define NT_ARM_HW_BREAK 0x402
++#define NT_ARM_HW_WATCH 0x403
++#define NT_METAG_CBUF 0x500
++#define NT_METAG_RPIPE 0x501
++#define NT_METAG_TLS 0x502
++#define NT_VERSION 1
++
++
++
++
++typedef struct {
++ Elf32_Sword d_tag;
++ union {
++ Elf32_Word d_val;
++ Elf32_Addr d_ptr;
++ } d_un;
++} Elf32_Dyn;
++
++typedef struct {
++ Elf64_Sxword d_tag;
++ union {
++ Elf64_Xword d_val;
++ Elf64_Addr d_ptr;
++ } d_un;
++} Elf64_Dyn;
++
++
++
++#define DT_NULL 0
++#define DT_NEEDED 1
++#define DT_PLTRELSZ 2
++#define DT_PLTGOT 3
++#define DT_HASH 4
++#define DT_STRTAB 5
++#define DT_SYMTAB 6
++#define DT_RELA 7
++#define DT_RELASZ 8
++#define DT_RELAENT 9
++#define DT_STRSZ 10
++#define DT_SYMENT 11
++#define DT_INIT 12
++#define DT_FINI 13
++#define DT_SONAME 14
++#define DT_RPATH 15
++#define DT_SYMBOLIC 16
++#define DT_REL 17
++#define DT_RELSZ 18
++#define DT_RELENT 19
++#define DT_PLTREL 20
++#define DT_DEBUG 21
++#define DT_TEXTREL 22
++#define DT_JMPREL 23
++#define DT_BIND_NOW 24
++#define DT_INIT_ARRAY 25
++#define DT_FINI_ARRAY 26
++#define DT_INIT_ARRAYSZ 27
++#define DT_FINI_ARRAYSZ 28
++#define DT_RUNPATH 29
++#define DT_FLAGS 30
++#define DT_ENCODING 32
++#define DT_PREINIT_ARRAY 32
++#define DT_PREINIT_ARRAYSZ 33
++#define DT_NUM 34
++#define DT_LOOS 0x6000000d
++#define DT_HIOS 0x6ffff000
++#define DT_LOPROC 0x70000000
++#define DT_HIPROC 0x7fffffff
++#define DT_PROCNUM DT_MIPS_NUM
++
++#define DT_VALRNGLO 0x6ffffd00
++#define DT_GNU_PRELINKED 0x6ffffdf5
++#define DT_GNU_CONFLICTSZ 0x6ffffdf6
++#define DT_GNU_LIBLISTSZ 0x6ffffdf7
++#define DT_CHECKSUM 0x6ffffdf8
++#define DT_PLTPADSZ 0x6ffffdf9
++#define DT_MOVEENT 0x6ffffdfa
++#define DT_MOVESZ 0x6ffffdfb
++#define DT_FEATURE_1 0x6ffffdfc
++#define DT_POSFLAG_1 0x6ffffdfd
++
++#define DT_SYMINSZ 0x6ffffdfe
++#define DT_SYMINENT 0x6ffffdff
++#define DT_VALRNGHI 0x6ffffdff
++#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag))
++#define DT_VALNUM 12
++
++#define DT_ADDRRNGLO 0x6ffffe00
++#define DT_GNU_HASH 0x6ffffef5
++#define DT_TLSDESC_PLT 0x6ffffef6
++#define DT_TLSDESC_GOT 0x6ffffef7
++#define DT_GNU_CONFLICT 0x6ffffef8
++#define DT_GNU_LIBLIST 0x6ffffef9
++#define DT_CONFIG 0x6ffffefa
++#define DT_DEPAUDIT 0x6ffffefb
++#define DT_AUDIT 0x6ffffefc
++#define DT_PLTPAD 0x6ffffefd
++#define DT_MOVETAB 0x6ffffefe
++#define DT_SYMINFO 0x6ffffeff
++#define DT_ADDRRNGHI 0x6ffffeff
++#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag))
++#define DT_ADDRNUM 11
++
++
++
++#define DT_VERSYM 0x6ffffff0
++
++#define DT_RELACOUNT 0x6ffffff9
++#define DT_RELCOUNT 0x6ffffffa
++
++
++#define DT_FLAGS_1 0x6ffffffb
++#define DT_VERDEF 0x6ffffffc
++
++#define DT_VERDEFNUM 0x6ffffffd
++#define DT_VERNEED 0x6ffffffe
++
++#define DT_VERNEEDNUM 0x6fffffff
++#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))
++#define DT_VERSIONTAGNUM 16
++
++
++
++#define DT_AUXILIARY 0x7ffffffd
++#define DT_FILTER 0x7fffffff
++#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
++#define DT_EXTRANUM 3
++
++
++#define DF_ORIGIN 0x00000001
++#define DF_SYMBOLIC 0x00000002
++#define DF_TEXTREL 0x00000004
++#define DF_BIND_NOW 0x00000008
++#define DF_STATIC_TLS 0x00000010
++
++
++
++#define DF_1_NOW 0x00000001
++#define DF_1_GLOBAL 0x00000002
++#define DF_1_GROUP 0x00000004
++#define DF_1_NODELETE 0x00000008
++#define DF_1_LOADFLTR 0x00000010
++#define DF_1_INITFIRST 0x00000020
++#define DF_1_NOOPEN 0x00000040
++#define DF_1_ORIGIN 0x00000080
++#define DF_1_DIRECT 0x00000100
++#define DF_1_TRANS 0x00000200
++#define DF_1_INTERPOSE 0x00000400
++#define DF_1_NODEFLIB 0x00000800
++#define DF_1_NODUMP 0x00001000
++#define DF_1_CONFALT 0x00002000
++#define DF_1_ENDFILTEE 0x00004000
++#define DF_1_DISPRELDNE 0x00008000
++#define DF_1_DISPRELPND 0x00010000
++#define DF_1_NODIRECT 0x00020000
++#define DF_1_IGNMULDEF 0x00040000
++#define DF_1_NOKSYMS 0x00080000
++#define DF_1_NOHDR 0x00100000
++#define DF_1_EDITED 0x00200000
++#define DF_1_NORELOC 0x00400000
++#define DF_1_SYMINTPOSE 0x00800000
++#define DF_1_GLOBAUDIT 0x01000000
++#define DF_1_SINGLETON 0x02000000
++
++#define DTF_1_PARINIT 0x00000001
++#define DTF_1_CONFEXP 0x00000002
++
++
++#define DF_P1_LAZYLOAD 0x00000001
++#define DF_P1_GROUPPERM 0x00000002
++
++
++
++
++typedef struct {
++ Elf32_Half vd_version;
++ Elf32_Half vd_flags;
++ Elf32_Half vd_ndx;
++ Elf32_Half vd_cnt;
++ Elf32_Word vd_hash;
++ Elf32_Word vd_aux;
++ Elf32_Word vd_next;
++} Elf32_Verdef;
++
++typedef struct {
++ Elf64_Half vd_version;
++ Elf64_Half vd_flags;
++ Elf64_Half vd_ndx;
++ Elf64_Half vd_cnt;
++ Elf64_Word vd_hash;
++ Elf64_Word vd_aux;
++ Elf64_Word vd_next;
++} Elf64_Verdef;
++
++
++
++#define VER_DEF_NONE 0
++#define VER_DEF_CURRENT 1
++#define VER_DEF_NUM 2
++
++
++#define VER_FLG_BASE 0x1
++#define VER_FLG_WEAK 0x2
++
++
++#define VER_NDX_LOCAL 0
++#define VER_NDX_GLOBAL 1
++#define VER_NDX_LORESERVE 0xff00
++#define VER_NDX_ELIMINATE 0xff01
++
++
++
++typedef struct {
++ Elf32_Word vda_name;
++ Elf32_Word vda_next;
++} Elf32_Verdaux;
++
++typedef struct {
++ Elf64_Word vda_name;
++ Elf64_Word vda_next;
++} Elf64_Verdaux;
++
++
++
++
++typedef struct {
++ Elf32_Half vn_version;
++ Elf32_Half vn_cnt;
++ Elf32_Word vn_file;
++ Elf32_Word vn_aux;
++ Elf32_Word vn_next;
++} Elf32_Verneed;
++
++typedef struct {
++ Elf64_Half vn_version;
++ Elf64_Half vn_cnt;
++ Elf64_Word vn_file;
++ Elf64_Word vn_aux;
++ Elf64_Word vn_next;
++} Elf64_Verneed;
++
++
++
++#define VER_NEED_NONE 0
++#define VER_NEED_CURRENT 1
++#define VER_NEED_NUM 2
++
++
++
++typedef struct {
++ Elf32_Word vna_hash;
++ Elf32_Half vna_flags;
++ Elf32_Half vna_other;
++ Elf32_Word vna_name;
++ Elf32_Word vna_next;
++} Elf32_Vernaux;
++
++typedef struct {
++ Elf64_Word vna_hash;
++ Elf64_Half vna_flags;
++ Elf64_Half vna_other;
++ Elf64_Word vna_name;
++ Elf64_Word vna_next;
++} Elf64_Vernaux;
++
++
++
++#define VER_FLG_WEAK 0x2
++
++
++
++typedef struct {
++ uint32_t a_type;
++ union {
++ uint32_t a_val;
++ } a_un;
++} Elf32_auxv_t;
++
++typedef struct {
++ uint64_t a_type;
++ union {
++ uint64_t a_val;
++ } a_un;
++} Elf64_auxv_t;
++
++
++
++#define AT_NULL 0
++#define AT_IGNORE 1
++#define AT_EXECFD 2
++#define AT_PHDR 3
++#define AT_PHENT 4
++#define AT_PHNUM 5
++#define AT_PAGESZ 6
++#define AT_BASE 7
++#define AT_FLAGS 8
++#define AT_ENTRY 9
++#define AT_NOTELF 10
++#define AT_UID 11
++#define AT_EUID 12
++#define AT_GID 13
++#define AT_EGID 14
++#define AT_CLKTCK 17
++
++
++#define AT_PLATFORM 15
++#define AT_HWCAP 16
++
++
++
++
++#define AT_FPUCW 18
++
++
++#define AT_DCACHEBSIZE 19
++#define AT_ICACHEBSIZE 20
++#define AT_UCACHEBSIZE 21
++
++
++
++#define AT_IGNOREPPC 22
++
++#define AT_SECURE 23
++
++#define AT_BASE_PLATFORM 24
++
++#define AT_RANDOM 25
++
++#define AT_HWCAP2 26
++
++#define AT_EXECFN 31
++
++
++
++#define AT_SYSINFO 32
++#define AT_SYSINFO_EHDR 33
++
++
++
++#define AT_L1I_CACHESHAPE 34
++#define AT_L1D_CACHESHAPE 35
++#define AT_L2_CACHESHAPE 36
++#define AT_L3_CACHESHAPE 37
++
++
++
++
++typedef struct {
++ Elf32_Word n_namesz;
++ Elf32_Word n_descsz;
++ Elf32_Word n_type;
++} Elf32_Nhdr;
++
++typedef struct {
++ Elf64_Word n_namesz;
++ Elf64_Word n_descsz;
++ Elf64_Word n_type;
++} Elf64_Nhdr;
++
++
++
++
++#define ELF_NOTE_SOLARIS "SUNW Solaris"
++
++
++#define ELF_NOTE_GNU "GNU"
++
++
++
++
++
++#define ELF_NOTE_PAGESIZE_HINT 1
++
++
++#define NT_GNU_ABI_TAG 1
++#define ELF_NOTE_ABI NT_GNU_ABI_TAG
++
++
++
++#define ELF_NOTE_OS_LINUX 0
++#define ELF_NOTE_OS_GNU 1
++#define ELF_NOTE_OS_SOLARIS2 2
++#define ELF_NOTE_OS_FREEBSD 3
++
++#define NT_GNU_BUILD_ID 3
++#define NT_GNU_GOLD_VERSION 4
++
++
++
++typedef struct {
++ Elf32_Xword m_value;
++ Elf32_Word m_info;
++ Elf32_Word m_poffset;
++ Elf32_Half m_repeat;
++ Elf32_Half m_stride;
++} Elf32_Move;
++
++typedef struct {
++ Elf64_Xword m_value;
++ Elf64_Xword m_info;
++ Elf64_Xword m_poffset;
++ Elf64_Half m_repeat;
++ Elf64_Half m_stride;
++} Elf64_Move;
++
++
++#define ELF32_M_SYM(info) ((info) >> 8)
++#define ELF32_M_SIZE(info) ((unsigned char) (info))
++#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
++
++#define ELF64_M_SYM(info) ELF32_M_SYM (info)
++#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
++#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
++
++#define EF_CPU32 0x00810000
++
++#define R_68K_NONE 0
++#define R_68K_32 1
++#define R_68K_16 2
++#define R_68K_8 3
++#define R_68K_PC32 4
++#define R_68K_PC16 5
++#define R_68K_PC8 6
++#define R_68K_GOT32 7
++#define R_68K_GOT16 8
++#define R_68K_GOT8 9
++#define R_68K_GOT32O 10
++#define R_68K_GOT16O 11
++#define R_68K_GOT8O 12
++#define R_68K_PLT32 13
++#define R_68K_PLT16 14
++#define R_68K_PLT8 15
++#define R_68K_PLT32O 16
++#define R_68K_PLT16O 17
++#define R_68K_PLT8O 18
++#define R_68K_COPY 19
++#define R_68K_GLOB_DAT 20
++#define R_68K_JMP_SLOT 21
++#define R_68K_RELATIVE 22
++#define R_68K_NUM 23
++
++#define R_386_NONE 0
++#define R_386_32 1
++#define R_386_PC32 2
++#define R_386_GOT32 3
++#define R_386_PLT32 4
++#define R_386_COPY 5
++#define R_386_GLOB_DAT 6
++#define R_386_JMP_SLOT 7
++#define R_386_RELATIVE 8
++#define R_386_GOTOFF 9
++#define R_386_GOTPC 10
++#define R_386_32PLT 11
++#define R_386_TLS_TPOFF 14
++#define R_386_TLS_IE 15
++#define R_386_TLS_GOTIE 16
++#define R_386_TLS_LE 17
++#define R_386_TLS_GD 18
++#define R_386_TLS_LDM 19
++#define R_386_16 20
++#define R_386_PC16 21
++#define R_386_8 22
++#define R_386_PC8 23
++#define R_386_TLS_GD_32 24
++#define R_386_TLS_GD_PUSH 25
++#define R_386_TLS_GD_CALL 26
++#define R_386_TLS_GD_POP 27
++#define R_386_TLS_LDM_32 28
++#define R_386_TLS_LDM_PUSH 29
++#define R_386_TLS_LDM_CALL 30
++#define R_386_TLS_LDM_POP 31
++#define R_386_TLS_LDO_32 32
++#define R_386_TLS_IE_32 33
++#define R_386_TLS_LE_32 34
++#define R_386_TLS_DTPMOD32 35
++#define R_386_TLS_DTPOFF32 36
++#define R_386_TLS_TPOFF32 37
++#define R_386_SIZE32 38
++#define R_386_TLS_GOTDESC 39
++#define R_386_TLS_DESC_CALL 40
++#define R_386_TLS_DESC 41
++#define R_386_IRELATIVE 42
++#define R_386_NUM 43
++
++
++
++
++
++#define STT_SPARC_REGISTER 13
++
++
++
++#define EF_SPARCV9_MM 3
++#define EF_SPARCV9_TSO 0
++#define EF_SPARCV9_PSO 1
++#define EF_SPARCV9_RMO 2
++#define EF_SPARC_LEDATA 0x800000
++#define EF_SPARC_EXT_MASK 0xFFFF00
++#define EF_SPARC_32PLUS 0x000100
++#define EF_SPARC_SUN_US1 0x000200
++#define EF_SPARC_HAL_R1 0x000400
++#define EF_SPARC_SUN_US3 0x000800
++
++
++
++#define R_SPARC_NONE 0
++#define R_SPARC_8 1
++#define R_SPARC_16 2
++#define R_SPARC_32 3
++#define R_SPARC_DISP8 4
++#define R_SPARC_DISP16 5
++#define R_SPARC_DISP32 6
++#define R_SPARC_WDISP30 7
++#define R_SPARC_WDISP22 8
++#define R_SPARC_HI22 9
++#define R_SPARC_22 10
++#define R_SPARC_13 11
++#define R_SPARC_LO10 12
++#define R_SPARC_GOT10 13
++#define R_SPARC_GOT13 14
++#define R_SPARC_GOT22 15
++#define R_SPARC_PC10 16
++#define R_SPARC_PC22 17
++#define R_SPARC_WPLT30 18
++#define R_SPARC_COPY 19
++#define R_SPARC_GLOB_DAT 20
++#define R_SPARC_JMP_SLOT 21
++#define R_SPARC_RELATIVE 22
++#define R_SPARC_UA32 23
++
++
++
++#define R_SPARC_PLT32 24
++#define R_SPARC_HIPLT22 25
++#define R_SPARC_LOPLT10 26
++#define R_SPARC_PCPLT32 27
++#define R_SPARC_PCPLT22 28
++#define R_SPARC_PCPLT10 29
++#define R_SPARC_10 30
++#define R_SPARC_11 31
++#define R_SPARC_64 32
++#define R_SPARC_OLO10 33
++#define R_SPARC_HH22 34
++#define R_SPARC_HM10 35
++#define R_SPARC_LM22 36
++#define R_SPARC_PC_HH22 37
++#define R_SPARC_PC_HM10 38
++#define R_SPARC_PC_LM22 39
++#define R_SPARC_WDISP16 40
++#define R_SPARC_WDISP19 41
++#define R_SPARC_GLOB_JMP 42
++#define R_SPARC_7 43
++#define R_SPARC_5 44
++#define R_SPARC_6 45
++#define R_SPARC_DISP64 46
++#define R_SPARC_PLT64 47
++#define R_SPARC_HIX22 48
++#define R_SPARC_LOX10 49
++#define R_SPARC_H44 50
++#define R_SPARC_M44 51
++#define R_SPARC_L44 52
++#define R_SPARC_REGISTER 53
++#define R_SPARC_UA64 54
++#define R_SPARC_UA16 55
++#define R_SPARC_TLS_GD_HI22 56
++#define R_SPARC_TLS_GD_LO10 57
++#define R_SPARC_TLS_GD_ADD 58
++#define R_SPARC_TLS_GD_CALL 59
++#define R_SPARC_TLS_LDM_HI22 60
++#define R_SPARC_TLS_LDM_LO10 61
++#define R_SPARC_TLS_LDM_ADD 62
++#define R_SPARC_TLS_LDM_CALL 63
++#define R_SPARC_TLS_LDO_HIX22 64
++#define R_SPARC_TLS_LDO_LOX10 65
++#define R_SPARC_TLS_LDO_ADD 66
++#define R_SPARC_TLS_IE_HI22 67
++#define R_SPARC_TLS_IE_LO10 68
++#define R_SPARC_TLS_IE_LD 69
++#define R_SPARC_TLS_IE_LDX 70
++#define R_SPARC_TLS_IE_ADD 71
++#define R_SPARC_TLS_LE_HIX22 72
++#define R_SPARC_TLS_LE_LOX10 73
++#define R_SPARC_TLS_DTPMOD32 74
++#define R_SPARC_TLS_DTPMOD64 75
++#define R_SPARC_TLS_DTPOFF32 76
++#define R_SPARC_TLS_DTPOFF64 77
++#define R_SPARC_TLS_TPOFF32 78
++#define R_SPARC_TLS_TPOFF64 79
++#define R_SPARC_GOTDATA_HIX22 80
++#define R_SPARC_GOTDATA_LOX10 81
++#define R_SPARC_GOTDATA_OP_HIX22 82
++#define R_SPARC_GOTDATA_OP_LOX10 83
++#define R_SPARC_GOTDATA_OP 84
++#define R_SPARC_H34 85
++#define R_SPARC_SIZE32 86
++#define R_SPARC_SIZE64 87
++#define R_SPARC_GNU_VTINHERIT 250
++#define R_SPARC_GNU_VTENTRY 251
++#define R_SPARC_REV32 252
++
++#define R_SPARC_NUM 253
++
++
++
++#define DT_SPARC_REGISTER 0x70000001
++#define DT_SPARC_NUM 2
++
++
++#define EF_MIPS_NOREORDER 1
++#define EF_MIPS_PIC 2
++#define EF_MIPS_CPIC 4
++#define EF_MIPS_XGOT 8
++#define EF_MIPS_64BIT_WHIRL 16
++#define EF_MIPS_ABI2 32
++#define EF_MIPS_ABI_ON32 64
++#define EF_MIPS_ARCH 0xf0000000
++
++
++
++#define EF_MIPS_ARCH_1 0x00000000
++#define EF_MIPS_ARCH_2 0x10000000
++#define EF_MIPS_ARCH_3 0x20000000
++#define EF_MIPS_ARCH_4 0x30000000
++#define EF_MIPS_ARCH_5 0x40000000
++#define EF_MIPS_ARCH_32 0x50000000
++#define EF_MIPS_ARCH_64 0x60000000
++#define EF_MIPS_ARCH_32R2 0x70000000
++#define EF_MIPS_ARCH_64R2 0x80000000
++
++
++#define E_MIPS_ARCH_1 0x00000000
++#define E_MIPS_ARCH_2 0x10000000
++#define E_MIPS_ARCH_3 0x20000000
++#define E_MIPS_ARCH_4 0x30000000
++#define E_MIPS_ARCH_5 0x40000000
++#define E_MIPS_ARCH_32 0x50000000
++#define E_MIPS_ARCH_64 0x60000000
++
++
++
++#define SHN_MIPS_ACOMMON 0xff00
++#define SHN_MIPS_TEXT 0xff01
++#define SHN_MIPS_DATA 0xff02
++#define SHN_MIPS_SCOMMON 0xff03
++#define SHN_MIPS_SUNDEFINED 0xff04
++
++
++
++#define SHT_MIPS_LIBLIST 0x70000000
++#define SHT_MIPS_MSYM 0x70000001
++#define SHT_MIPS_CONFLICT 0x70000002
++#define SHT_MIPS_GPTAB 0x70000003
++#define SHT_MIPS_UCODE 0x70000004
++#define SHT_MIPS_DEBUG 0x70000005
++#define SHT_MIPS_REGINFO 0x70000006
++#define SHT_MIPS_PACKAGE 0x70000007
++#define SHT_MIPS_PACKSYM 0x70000008
++#define SHT_MIPS_RELD 0x70000009
++#define SHT_MIPS_IFACE 0x7000000b
++#define SHT_MIPS_CONTENT 0x7000000c
++#define SHT_MIPS_OPTIONS 0x7000000d
++#define SHT_MIPS_SHDR 0x70000010
++#define SHT_MIPS_FDESC 0x70000011
++#define SHT_MIPS_EXTSYM 0x70000012
++#define SHT_MIPS_DENSE 0x70000013
++#define SHT_MIPS_PDESC 0x70000014
++#define SHT_MIPS_LOCSYM 0x70000015
++#define SHT_MIPS_AUXSYM 0x70000016
++#define SHT_MIPS_OPTSYM 0x70000017
++#define SHT_MIPS_LOCSTR 0x70000018
++#define SHT_MIPS_LINE 0x70000019
++#define SHT_MIPS_RFDESC 0x7000001a
++#define SHT_MIPS_DELTASYM 0x7000001b
++#define SHT_MIPS_DELTAINST 0x7000001c
++#define SHT_MIPS_DELTACLASS 0x7000001d
++#define SHT_MIPS_DWARF 0x7000001e
++#define SHT_MIPS_DELTADECL 0x7000001f
++#define SHT_MIPS_SYMBOL_LIB 0x70000020
++#define SHT_MIPS_EVENTS 0x70000021
++#define SHT_MIPS_TRANSLATE 0x70000022
++#define SHT_MIPS_PIXIE 0x70000023
++#define SHT_MIPS_XLATE 0x70000024
++#define SHT_MIPS_XLATE_DEBUG 0x70000025
++#define SHT_MIPS_WHIRL 0x70000026
++#define SHT_MIPS_EH_REGION 0x70000027
++#define SHT_MIPS_XLATE_OLD 0x70000028
++#define SHT_MIPS_PDR_EXCEPTION 0x70000029
++
++
++
++#define SHF_MIPS_GPREL 0x10000000
++#define SHF_MIPS_MERGE 0x20000000
++#define SHF_MIPS_ADDR 0x40000000
++#define SHF_MIPS_STRINGS 0x80000000
++#define SHF_MIPS_NOSTRIP 0x08000000
++#define SHF_MIPS_LOCAL 0x04000000
++#define SHF_MIPS_NAMES 0x02000000
++#define SHF_MIPS_NODUPE 0x01000000
++
++
++
++
++
++#define STO_MIPS_DEFAULT 0x0
++#define STO_MIPS_INTERNAL 0x1
++#define STO_MIPS_HIDDEN 0x2
++#define STO_MIPS_PROTECTED 0x3
++#define STO_MIPS_PLT 0x8
++#define STO_MIPS_SC_ALIGN_UNUSED 0xff
++
++
++#define STB_MIPS_SPLIT_COMMON 13
++
++
++
++typedef union {
++ struct {
++ Elf32_Word gt_current_g_value;
++ Elf32_Word gt_unused;
++ } gt_header;
++ struct {
++ Elf32_Word gt_g_value;
++ Elf32_Word gt_bytes;
++ } gt_entry;
++} Elf32_gptab;
++
++
++
++typedef struct {
++ Elf32_Word ri_gprmask;
++ Elf32_Word ri_cprmask[4];
++ Elf32_Sword ri_gp_value;
++} Elf32_RegInfo;
++
++
++
++typedef struct {
++ unsigned char kind;
++
++ unsigned char size;
++ Elf32_Section section;
++
++ Elf32_Word info;
++} Elf_Options;
++
++
++
++#define ODK_NULL 0
++#define ODK_REGINFO 1
++#define ODK_EXCEPTIONS 2
++#define ODK_PAD 3
++#define ODK_HWPATCH 4
++#define ODK_FILL 5
++#define ODK_TAGS 6
++#define ODK_HWAND 7
++#define ODK_HWOR 8
++
++
++
++#define OEX_FPU_MIN 0x1f
++#define OEX_FPU_MAX 0x1f00
++#define OEX_PAGE0 0x10000
++#define OEX_SMM 0x20000
++#define OEX_FPDBUG 0x40000
++#define OEX_PRECISEFP OEX_FPDBUG
++#define OEX_DISMISS 0x80000
++
++#define OEX_FPU_INVAL 0x10
++#define OEX_FPU_DIV0 0x08
++#define OEX_FPU_OFLO 0x04
++#define OEX_FPU_UFLO 0x02
++#define OEX_FPU_INEX 0x01
++
++
++
++#define OHW_R4KEOP 0x1
++#define OHW_R8KPFETCH 0x2
++#define OHW_R5KEOP 0x4
++#define OHW_R5KCVTL 0x8
++
++#define OPAD_PREFIX 0x1
++#define OPAD_POSTFIX 0x2
++#define OPAD_SYMBOL 0x4
++
++
++
++typedef struct {
++ Elf32_Word hwp_flags1;
++ Elf32_Word hwp_flags2;
++} Elf_Options_Hw;
++
++
++
++#define OHWA0_R4KEOP_CHECKED 0x00000001
++#define OHWA1_R4KEOP_CLEAN 0x00000002
++
++
++
++#define R_MIPS_NONE 0
++#define R_MIPS_16 1
++#define R_MIPS_32 2
++#define R_MIPS_REL32 3
++#define R_MIPS_26 4
++#define R_MIPS_HI16 5
++#define R_MIPS_LO16 6
++#define R_MIPS_GPREL16 7
++#define R_MIPS_LITERAL 8
++#define R_MIPS_GOT16 9
++#define R_MIPS_PC16 10
++#define R_MIPS_CALL16 11
++#define R_MIPS_GPREL32 12
++
++#define R_MIPS_SHIFT5 16
++#define R_MIPS_SHIFT6 17
++#define R_MIPS_64 18
++#define R_MIPS_GOT_DISP 19
++#define R_MIPS_GOT_PAGE 20
++#define R_MIPS_GOT_OFST 21
++#define R_MIPS_GOT_HI16 22
++#define R_MIPS_GOT_LO16 23
++#define R_MIPS_SUB 24
++#define R_MIPS_INSERT_A 25
++#define R_MIPS_INSERT_B 26
++#define R_MIPS_DELETE 27
++#define R_MIPS_HIGHER 28
++#define R_MIPS_HIGHEST 29
++#define R_MIPS_CALL_HI16 30
++#define R_MIPS_CALL_LO16 31
++#define R_MIPS_SCN_DISP 32
++#define R_MIPS_REL16 33
++#define R_MIPS_ADD_IMMEDIATE 34
++#define R_MIPS_PJUMP 35
++#define R_MIPS_RELGOT 36
++#define R_MIPS_JALR 37
++#define R_MIPS_TLS_DTPMOD32 38
++#define R_MIPS_TLS_DTPREL32 39
++#define R_MIPS_TLS_DTPMOD64 40
++#define R_MIPS_TLS_DTPREL64 41
++#define R_MIPS_TLS_GD 42
++#define R_MIPS_TLS_LDM 43
++#define R_MIPS_TLS_DTPREL_HI16 44
++#define R_MIPS_TLS_DTPREL_LO16 45
++#define R_MIPS_TLS_GOTTPREL 46
++#define R_MIPS_TLS_TPREL32 47
++#define R_MIPS_TLS_TPREL64 48
++#define R_MIPS_TLS_TPREL_HI16 49
++#define R_MIPS_TLS_TPREL_LO16 50
++#define R_MIPS_GLOB_DAT 51
++#define R_MIPS_COPY 126
++#define R_MIPS_JUMP_SLOT 127
++
++#define R_MIPS_NUM 128
++
++
++
++#define PT_MIPS_REGINFO 0x70000000
++#define PT_MIPS_RTPROC 0x70000001
++#define PT_MIPS_OPTIONS 0x70000002
++
++
++
++#define PF_MIPS_LOCAL 0x10000000
++
++
++
++#define DT_MIPS_RLD_VERSION 0x70000001
++#define DT_MIPS_TIME_STAMP 0x70000002
++#define DT_MIPS_ICHECKSUM 0x70000003
++#define DT_MIPS_IVERSION 0x70000004
++#define DT_MIPS_FLAGS 0x70000005
++#define DT_MIPS_BASE_ADDRESS 0x70000006
++#define DT_MIPS_MSYM 0x70000007
++#define DT_MIPS_CONFLICT 0x70000008
++#define DT_MIPS_LIBLIST 0x70000009
++#define DT_MIPS_LOCAL_GOTNO 0x7000000a
++#define DT_MIPS_CONFLICTNO 0x7000000b
++#define DT_MIPS_LIBLISTNO 0x70000010
++#define DT_MIPS_SYMTABNO 0x70000011
++#define DT_MIPS_UNREFEXTNO 0x70000012
++#define DT_MIPS_GOTSYM 0x70000013
++#define DT_MIPS_HIPAGENO 0x70000014
++#define DT_MIPS_RLD_MAP 0x70000016
++#define DT_MIPS_DELTA_CLASS 0x70000017
++#define DT_MIPS_DELTA_CLASS_NO 0x70000018
++
++#define DT_MIPS_DELTA_INSTANCE 0x70000019
++#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
++
++#define DT_MIPS_DELTA_RELOC 0x7000001b
++#define DT_MIPS_DELTA_RELOC_NO 0x7000001c
++
++#define DT_MIPS_DELTA_SYM 0x7000001d
++
++#define DT_MIPS_DELTA_SYM_NO 0x7000001e
++
++#define DT_MIPS_DELTA_CLASSSYM 0x70000020
++
++#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
++
++#define DT_MIPS_CXX_FLAGS 0x70000022
++#define DT_MIPS_PIXIE_INIT 0x70000023
++#define DT_MIPS_SYMBOL_LIB 0x70000024
++#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
++#define DT_MIPS_LOCAL_GOTIDX 0x70000026
++#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
++#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
++#define DT_MIPS_OPTIONS 0x70000029
++#define DT_MIPS_INTERFACE 0x7000002a
++#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
++#define DT_MIPS_INTERFACE_SIZE 0x7000002c
++#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
++
++#define DT_MIPS_PERF_SUFFIX 0x7000002e
++
++#define DT_MIPS_COMPACT_SIZE 0x7000002f
++#define DT_MIPS_GP_VALUE 0x70000030
++#define DT_MIPS_AUX_DYNAMIC 0x70000031
++
++#define DT_MIPS_PLTGOT 0x70000032
++
++#define DT_MIPS_RWPLT 0x70000034
++#define DT_MIPS_NUM 0x35
++
++
++
++#define RHF_NONE 0
++#define RHF_QUICKSTART (1 << 0)
++#define RHF_NOTPOT (1 << 1)
++#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
++#define RHF_NO_MOVE (1 << 3)
++#define RHF_SGI_ONLY (1 << 4)
++#define RHF_GUARANTEE_INIT (1 << 5)
++#define RHF_DELTA_C_PLUS_PLUS (1 << 6)
++#define RHF_GUARANTEE_START_INIT (1 << 7)
++#define RHF_PIXIE (1 << 8)
++#define RHF_DEFAULT_DELAY_LOAD (1 << 9)
++#define RHF_REQUICKSTART (1 << 10)
++#define RHF_REQUICKSTARTED (1 << 11)
++#define RHF_CORD (1 << 12)
++#define RHF_NO_UNRES_UNDEF (1 << 13)
++#define RHF_RLD_ORDER_SAFE (1 << 14)
++
++
++
++typedef struct
++{
++ Elf32_Word l_name;
++ Elf32_Word l_time_stamp;
++ Elf32_Word l_checksum;
++ Elf32_Word l_version;
++ Elf32_Word l_flags;
++} Elf32_Lib;
++
++typedef struct
++{
++ Elf64_Word l_name;
++ Elf64_Word l_time_stamp;
++ Elf64_Word l_checksum;
++ Elf64_Word l_version;
++ Elf64_Word l_flags;
++} Elf64_Lib;
++
++
++
++
++#define LL_NONE 0
++#define LL_EXACT_MATCH (1 << 0)
++#define LL_IGNORE_INT_VER (1 << 1)
++#define LL_REQUIRE_MINOR (1 << 2)
++#define LL_EXPORTS (1 << 3)
++#define LL_DELAY_LOAD (1 << 4)
++#define LL_DELTA (1 << 5)
++
++
++
++typedef Elf32_Addr Elf32_Conflict;
++
++
++
++
++
++
++#define EF_PARISC_TRAPNIL 0x00010000
++#define EF_PARISC_EXT 0x00020000
++#define EF_PARISC_LSB 0x00040000
++#define EF_PARISC_WIDE 0x00080000
++#define EF_PARISC_NO_KABP 0x00100000
++
++#define EF_PARISC_LAZYSWAP 0x00400000
++#define EF_PARISC_ARCH 0x0000ffff
++
++
++
++#define EFA_PARISC_1_0 0x020b
++#define EFA_PARISC_1_1 0x0210
++#define EFA_PARISC_2_0 0x0214
++
++
++
++#define SHN_PARISC_ANSI_COMMON 0xff00
++
++#define SHN_PARISC_HUGE_COMMON 0xff01
++
++
++
++#define SHT_PARISC_EXT 0x70000000
++#define SHT_PARISC_UNWIND 0x70000001
++#define SHT_PARISC_DOC 0x70000002
++
++
++
++#define SHF_PARISC_SHORT 0x20000000
++#define SHF_PARISC_HUGE 0x40000000
++#define SHF_PARISC_SBP 0x80000000
++
++
++
++#define STT_PARISC_MILLICODE 13
++
++#define STT_HP_OPAQUE (STT_LOOS + 0x1)
++#define STT_HP_STUB (STT_LOOS + 0x2)
++
++
++
++#define R_PARISC_NONE 0
++#define R_PARISC_DIR32 1
++#define R_PARISC_DIR21L 2
++#define R_PARISC_DIR17R 3
++#define R_PARISC_DIR17F 4
++#define R_PARISC_DIR14R 6
++#define R_PARISC_PCREL32 9
++#define R_PARISC_PCREL21L 10
++#define R_PARISC_PCREL17R 11
++#define R_PARISC_PCREL17F 12
++#define R_PARISC_PCREL14R 14
++#define R_PARISC_DPREL21L 18
++#define R_PARISC_DPREL14R 22
++#define R_PARISC_GPREL21L 26
++#define R_PARISC_GPREL14R 30
++#define R_PARISC_LTOFF21L 34
++#define R_PARISC_LTOFF14R 38
++#define R_PARISC_SECREL32 41
++#define R_PARISC_SEGBASE 48
++#define R_PARISC_SEGREL32 49
++#define R_PARISC_PLTOFF21L 50
++#define R_PARISC_PLTOFF14R 54
++#define R_PARISC_LTOFF_FPTR32 57
++#define R_PARISC_LTOFF_FPTR21L 58
++#define R_PARISC_LTOFF_FPTR14R 62
++#define R_PARISC_FPTR64 64
++#define R_PARISC_PLABEL32 65
++#define R_PARISC_PLABEL21L 66
++#define R_PARISC_PLABEL14R 70
++#define R_PARISC_PCREL64 72
++#define R_PARISC_PCREL22F 74
++#define R_PARISC_PCREL14WR 75
++#define R_PARISC_PCREL14DR 76
++#define R_PARISC_PCREL16F 77
++#define R_PARISC_PCREL16WF 78
++#define R_PARISC_PCREL16DF 79
++#define R_PARISC_DIR64 80
++#define R_PARISC_DIR14WR 83
++#define R_PARISC_DIR14DR 84
++#define R_PARISC_DIR16F 85
++#define R_PARISC_DIR16WF 86
++#define R_PARISC_DIR16DF 87
++#define R_PARISC_GPREL64 88
++#define R_PARISC_GPREL14WR 91
++#define R_PARISC_GPREL14DR 92
++#define R_PARISC_GPREL16F 93
++#define R_PARISC_GPREL16WF 94
++#define R_PARISC_GPREL16DF 95
++#define R_PARISC_LTOFF64 96
++#define R_PARISC_LTOFF14WR 99
++#define R_PARISC_LTOFF14DR 100
++#define R_PARISC_LTOFF16F 101
++#define R_PARISC_LTOFF16WF 102
++#define R_PARISC_LTOFF16DF 103
++#define R_PARISC_SECREL64 104
++#define R_PARISC_SEGREL64 112
++#define R_PARISC_PLTOFF14WR 115
++#define R_PARISC_PLTOFF14DR 116
++#define R_PARISC_PLTOFF16F 117
++#define R_PARISC_PLTOFF16WF 118
++#define R_PARISC_PLTOFF16DF 119
++#define R_PARISC_LTOFF_FPTR64 120
++#define R_PARISC_LTOFF_FPTR14WR 123
++#define R_PARISC_LTOFF_FPTR14DR 124
++#define R_PARISC_LTOFF_FPTR16F 125
++#define R_PARISC_LTOFF_FPTR16WF 126
++#define R_PARISC_LTOFF_FPTR16DF 127
++#define R_PARISC_LORESERVE 128
++#define R_PARISC_COPY 128
++#define R_PARISC_IPLT 129
++#define R_PARISC_EPLT 130
++#define R_PARISC_TPREL32 153
++#define R_PARISC_TPREL21L 154
++#define R_PARISC_TPREL14R 158
++#define R_PARISC_LTOFF_TP21L 162
++#define R_PARISC_LTOFF_TP14R 166
++#define R_PARISC_LTOFF_TP14F 167
++#define R_PARISC_TPREL64 216
++#define R_PARISC_TPREL14WR 219
++#define R_PARISC_TPREL14DR 220
++#define R_PARISC_TPREL16F 221
++#define R_PARISC_TPREL16WF 222
++#define R_PARISC_TPREL16DF 223
++#define R_PARISC_LTOFF_TP64 224
++#define R_PARISC_LTOFF_TP14WR 227
++#define R_PARISC_LTOFF_TP14DR 228
++#define R_PARISC_LTOFF_TP16F 229
++#define R_PARISC_LTOFF_TP16WF 230
++#define R_PARISC_LTOFF_TP16DF 231
++#define R_PARISC_GNU_VTENTRY 232
++#define R_PARISC_GNU_VTINHERIT 233
++#define R_PARISC_TLS_GD21L 234
++#define R_PARISC_TLS_GD14R 235
++#define R_PARISC_TLS_GDCALL 236
++#define R_PARISC_TLS_LDM21L 237
++#define R_PARISC_TLS_LDM14R 238
++#define R_PARISC_TLS_LDMCALL 239
++#define R_PARISC_TLS_LDO21L 240
++#define R_PARISC_TLS_LDO14R 241
++#define R_PARISC_TLS_DTPMOD32 242
++#define R_PARISC_TLS_DTPMOD64 243
++#define R_PARISC_TLS_DTPOFF32 244
++#define R_PARISC_TLS_DTPOFF64 245
++#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L
++#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R
++#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L
++#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R
++#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32
++#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64
++#define R_PARISC_HIRESERVE 255
++
++
++
++#define PT_HP_TLS (PT_LOOS + 0x0)
++#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
++#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
++#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
++#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
++#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
++#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
++#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
++#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
++#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
++#define PT_HP_PARALLEL (PT_LOOS + 0x10)
++#define PT_HP_FASTBIND (PT_LOOS + 0x11)
++#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
++#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
++#define PT_HP_STACK (PT_LOOS + 0x14)
++
++#define PT_PARISC_ARCHEXT 0x70000000
++#define PT_PARISC_UNWIND 0x70000001
++
++
++
++#define PF_PARISC_SBP 0x08000000
++
++#define PF_HP_PAGE_SIZE 0x00100000
++#define PF_HP_FAR_SHARED 0x00200000
++#define PF_HP_NEAR_SHARED 0x00400000
++#define PF_HP_CODE 0x01000000
++#define PF_HP_MODIFY 0x02000000
++#define PF_HP_LAZYSWAP 0x04000000
++#define PF_HP_SBP 0x08000000
++
++
++
++
++
++
++#define EF_ALPHA_32BIT 1
++#define EF_ALPHA_CANRELAX 2
++
++
++
++
++#define SHT_ALPHA_DEBUG 0x70000001
++#define SHT_ALPHA_REGINFO 0x70000002
++
++
++
++#define SHF_ALPHA_GPREL 0x10000000
++
++
++#define STO_ALPHA_NOPV 0x80
++#define STO_ALPHA_STD_GPLOAD 0x88
++
++
++
++#define R_ALPHA_NONE 0
++#define R_ALPHA_REFLONG 1
++#define R_ALPHA_REFQUAD 2
++#define R_ALPHA_GPREL32 3
++#define R_ALPHA_LITERAL 4
++#define R_ALPHA_LITUSE 5
++#define R_ALPHA_GPDISP 6
++#define R_ALPHA_BRADDR 7
++#define R_ALPHA_HINT 8
++#define R_ALPHA_SREL16 9
++#define R_ALPHA_SREL32 10
++#define R_ALPHA_SREL64 11
++#define R_ALPHA_GPRELHIGH 17
++#define R_ALPHA_GPRELLOW 18
++#define R_ALPHA_GPREL16 19
++#define R_ALPHA_COPY 24
++#define R_ALPHA_GLOB_DAT 25
++#define R_ALPHA_JMP_SLOT 26
++#define R_ALPHA_RELATIVE 27
++#define R_ALPHA_TLS_GD_HI 28
++#define R_ALPHA_TLSGD 29
++#define R_ALPHA_TLS_LDM 30
++#define R_ALPHA_DTPMOD64 31
++#define R_ALPHA_GOTDTPREL 32
++#define R_ALPHA_DTPREL64 33
++#define R_ALPHA_DTPRELHI 34
++#define R_ALPHA_DTPRELLO 35
++#define R_ALPHA_DTPREL16 36
++#define R_ALPHA_GOTTPREL 37
++#define R_ALPHA_TPREL64 38
++#define R_ALPHA_TPRELHI 39
++#define R_ALPHA_TPRELLO 40
++#define R_ALPHA_TPREL16 41
++
++#define R_ALPHA_NUM 46
++
++
++#define LITUSE_ALPHA_ADDR 0
++#define LITUSE_ALPHA_BASE 1
++#define LITUSE_ALPHA_BYTOFF 2
++#define LITUSE_ALPHA_JSR 3
++#define LITUSE_ALPHA_TLS_GD 4
++#define LITUSE_ALPHA_TLS_LDM 5
++
++
++#define DT_ALPHA_PLTRO (DT_LOPROC + 0)
++#define DT_ALPHA_NUM 1
++
++
++
++
++#define EF_PPC_EMB 0x80000000
++
++
++#define EF_PPC_RELOCATABLE 0x00010000
++#define EF_PPC_RELOCATABLE_LIB 0x00008000
++
++
++
++#define R_PPC_NONE 0
++#define R_PPC_ADDR32 1
++#define R_PPC_ADDR24 2
++#define R_PPC_ADDR16 3
++#define R_PPC_ADDR16_LO 4
++#define R_PPC_ADDR16_HI 5
++#define R_PPC_ADDR16_HA 6
++#define R_PPC_ADDR14 7
++#define R_PPC_ADDR14_BRTAKEN 8
++#define R_PPC_ADDR14_BRNTAKEN 9
++#define R_PPC_REL24 10
++#define R_PPC_REL14 11
++#define R_PPC_REL14_BRTAKEN 12
++#define R_PPC_REL14_BRNTAKEN 13
++#define R_PPC_GOT16 14
++#define R_PPC_GOT16_LO 15
++#define R_PPC_GOT16_HI 16
++#define R_PPC_GOT16_HA 17
++#define R_PPC_PLTREL24 18
++#define R_PPC_COPY 19
++#define R_PPC_GLOB_DAT 20
++#define R_PPC_JMP_SLOT 21
++#define R_PPC_RELATIVE 22
++#define R_PPC_LOCAL24PC 23
++#define R_PPC_UADDR32 24
++#define R_PPC_UADDR16 25
++#define R_PPC_REL32 26
++#define R_PPC_PLT32 27
++#define R_PPC_PLTREL32 28
++#define R_PPC_PLT16_LO 29
++#define R_PPC_PLT16_HI 30
++#define R_PPC_PLT16_HA 31
++#define R_PPC_SDAREL16 32
++#define R_PPC_SECTOFF 33
++#define R_PPC_SECTOFF_LO 34
++#define R_PPC_SECTOFF_HI 35
++#define R_PPC_SECTOFF_HA 36
++
++
++#define R_PPC_TLS 67
++#define R_PPC_DTPMOD32 68
++#define R_PPC_TPREL16 69
++#define R_PPC_TPREL16_LO 70
++#define R_PPC_TPREL16_HI 71
++#define R_PPC_TPREL16_HA 72
++#define R_PPC_TPREL32 73
++#define R_PPC_DTPREL16 74
++#define R_PPC_DTPREL16_LO 75
++#define R_PPC_DTPREL16_HI 76
++#define R_PPC_DTPREL16_HA 77
++#define R_PPC_DTPREL32 78
++#define R_PPC_GOT_TLSGD16 79
++#define R_PPC_GOT_TLSGD16_LO 80
++#define R_PPC_GOT_TLSGD16_HI 81
++#define R_PPC_GOT_TLSGD16_HA 82
++#define R_PPC_GOT_TLSLD16 83
++#define R_PPC_GOT_TLSLD16_LO 84
++#define R_PPC_GOT_TLSLD16_HI 85
++#define R_PPC_GOT_TLSLD16_HA 86
++#define R_PPC_GOT_TPREL16 87
++#define R_PPC_GOT_TPREL16_LO 88
++#define R_PPC_GOT_TPREL16_HI 89
++#define R_PPC_GOT_TPREL16_HA 90
++#define R_PPC_GOT_DTPREL16 91
++#define R_PPC_GOT_DTPREL16_LO 92
++#define R_PPC_GOT_DTPREL16_HI 93
++#define R_PPC_GOT_DTPREL16_HA 94
++
++
++
++#define R_PPC_EMB_NADDR32 101
++#define R_PPC_EMB_NADDR16 102
++#define R_PPC_EMB_NADDR16_LO 103
++#define R_PPC_EMB_NADDR16_HI 104
++#define R_PPC_EMB_NADDR16_HA 105
++#define R_PPC_EMB_SDAI16 106
++#define R_PPC_EMB_SDA2I16 107
++#define R_PPC_EMB_SDA2REL 108
++#define R_PPC_EMB_SDA21 109
++#define R_PPC_EMB_MRKREF 110
++#define R_PPC_EMB_RELSEC16 111
++#define R_PPC_EMB_RELST_LO 112
++#define R_PPC_EMB_RELST_HI 113
++#define R_PPC_EMB_RELST_HA 114
++#define R_PPC_EMB_BIT_FLD 115
++#define R_PPC_EMB_RELSDA 116
++
++
++#define R_PPC_DIAB_SDA21_LO 180
++#define R_PPC_DIAB_SDA21_HI 181
++#define R_PPC_DIAB_SDA21_HA 182
++#define R_PPC_DIAB_RELSDA_LO 183
++#define R_PPC_DIAB_RELSDA_HI 184
++#define R_PPC_DIAB_RELSDA_HA 185
++
++
++#define R_PPC_IRELATIVE 248
++
++
++#define R_PPC_REL16 249
++#define R_PPC_REL16_LO 250
++#define R_PPC_REL16_HI 251
++#define R_PPC_REL16_HA 252
++
++
++
++#define R_PPC_TOC16 255
++
++
++#define DT_PPC_GOT (DT_LOPROC + 0)
++#define DT_PPC_NUM 1
++
++
++#define R_PPC64_NONE R_PPC_NONE
++#define R_PPC64_ADDR32 R_PPC_ADDR32
++#define R_PPC64_ADDR24 R_PPC_ADDR24
++#define R_PPC64_ADDR16 R_PPC_ADDR16
++#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO
++#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI
++#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA
++#define R_PPC64_ADDR14 R_PPC_ADDR14
++#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
++#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
++#define R_PPC64_REL24 R_PPC_REL24
++#define R_PPC64_REL14 R_PPC_REL14
++#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
++#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
++#define R_PPC64_GOT16 R_PPC_GOT16
++#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
++#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
++#define R_PPC64_GOT16_HA R_PPC_GOT16_HA
++
++#define R_PPC64_COPY R_PPC_COPY
++#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
++#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
++#define R_PPC64_RELATIVE R_PPC_RELATIVE
++
++#define R_PPC64_UADDR32 R_PPC_UADDR32
++#define R_PPC64_UADDR16 R_PPC_UADDR16
++#define R_PPC64_REL32 R_PPC_REL32
++#define R_PPC64_PLT32 R_PPC_PLT32
++#define R_PPC64_PLTREL32 R_PPC_PLTREL32
++#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
++#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
++#define R_PPC64_PLT16_HA R_PPC_PLT16_HA
++
++#define R_PPC64_SECTOFF R_PPC_SECTOFF
++#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
++#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
++#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
++#define R_PPC64_ADDR30 37
++#define R_PPC64_ADDR64 38
++#define R_PPC64_ADDR16_HIGHER 39
++#define R_PPC64_ADDR16_HIGHERA 40
++#define R_PPC64_ADDR16_HIGHEST 41
++#define R_PPC64_ADDR16_HIGHESTA 42
++#define R_PPC64_UADDR64 43
++#define R_PPC64_REL64 44
++#define R_PPC64_PLT64 45
++#define R_PPC64_PLTREL64 46
++#define R_PPC64_TOC16 47
++#define R_PPC64_TOC16_LO 48
++#define R_PPC64_TOC16_HI 49
++#define R_PPC64_TOC16_HA 50
++#define R_PPC64_TOC 51
++#define R_PPC64_PLTGOT16 52
++#define R_PPC64_PLTGOT16_LO 53
++#define R_PPC64_PLTGOT16_HI 54
++#define R_PPC64_PLTGOT16_HA 55
++
++#define R_PPC64_ADDR16_DS 56
++#define R_PPC64_ADDR16_LO_DS 57
++#define R_PPC64_GOT16_DS 58
++#define R_PPC64_GOT16_LO_DS 59
++#define R_PPC64_PLT16_LO_DS 60
++#define R_PPC64_SECTOFF_DS 61
++#define R_PPC64_SECTOFF_LO_DS 62
++#define R_PPC64_TOC16_DS 63
++#define R_PPC64_TOC16_LO_DS 64
++#define R_PPC64_PLTGOT16_DS 65
++#define R_PPC64_PLTGOT16_LO_DS 66
++
++
++#define R_PPC64_TLS 67
++#define R_PPC64_DTPMOD64 68
++#define R_PPC64_TPREL16 69
++#define R_PPC64_TPREL16_LO 70
++#define R_PPC64_TPREL16_HI 71
++#define R_PPC64_TPREL16_HA 72
++#define R_PPC64_TPREL64 73
++#define R_PPC64_DTPREL16 74
++#define R_PPC64_DTPREL16_LO 75
++#define R_PPC64_DTPREL16_HI 76
++#define R_PPC64_DTPREL16_HA 77
++#define R_PPC64_DTPREL64 78
++#define R_PPC64_GOT_TLSGD16 79
++#define R_PPC64_GOT_TLSGD16_LO 80
++#define R_PPC64_GOT_TLSGD16_HI 81
++#define R_PPC64_GOT_TLSGD16_HA 82
++#define R_PPC64_GOT_TLSLD16 83
++#define R_PPC64_GOT_TLSLD16_LO 84
++#define R_PPC64_GOT_TLSLD16_HI 85
++#define R_PPC64_GOT_TLSLD16_HA 86
++#define R_PPC64_GOT_TPREL16_DS 87
++#define R_PPC64_GOT_TPREL16_LO_DS 88
++#define R_PPC64_GOT_TPREL16_HI 89
++#define R_PPC64_GOT_TPREL16_HA 90
++#define R_PPC64_GOT_DTPREL16_DS 91
++#define R_PPC64_GOT_DTPREL16_LO_DS 92
++#define R_PPC64_GOT_DTPREL16_HI 93
++#define R_PPC64_GOT_DTPREL16_HA 94
++#define R_PPC64_TPREL16_DS 95
++#define R_PPC64_TPREL16_LO_DS 96
++#define R_PPC64_TPREL16_HIGHER 97
++#define R_PPC64_TPREL16_HIGHERA 98
++#define R_PPC64_TPREL16_HIGHEST 99
++#define R_PPC64_TPREL16_HIGHESTA 100
++#define R_PPC64_DTPREL16_DS 101
++#define R_PPC64_DTPREL16_LO_DS 102
++#define R_PPC64_DTPREL16_HIGHER 103
++#define R_PPC64_DTPREL16_HIGHERA 104
++#define R_PPC64_DTPREL16_HIGHEST 105
++#define R_PPC64_DTPREL16_HIGHESTA 106
++
++
++#define R_PPC64_JMP_IREL 247
++#define R_PPC64_IRELATIVE 248
++#define R_PPC64_REL16 249
++#define R_PPC64_REL16_LO 250
++#define R_PPC64_REL16_HI 251
++#define R_PPC64_REL16_HA 252
++
++
++#define DT_PPC64_GLINK (DT_LOPROC + 0)
++#define DT_PPC64_OPD (DT_LOPROC + 1)
++#define DT_PPC64_OPDSZ (DT_LOPROC + 2)
++#define DT_PPC64_NUM 3
++
++
++
++
++
++#define EF_ARM_RELEXEC 0x01
++#define EF_ARM_HASENTRY 0x02
++#define EF_ARM_INTERWORK 0x04
++#define EF_ARM_APCS_26 0x08
++#define EF_ARM_APCS_FLOAT 0x10
++#define EF_ARM_PIC 0x20
++#define EF_ARM_ALIGN8 0x40
++#define EF_ARM_NEW_ABI 0x80
++#define EF_ARM_OLD_ABI 0x100
++#define EF_ARM_SOFT_FLOAT 0x200
++#define EF_ARM_VFP_FLOAT 0x400
++#define EF_ARM_MAVERICK_FLOAT 0x800
++
++#define EF_ARM_ABI_FLOAT_SOFT 0x200
++#define EF_ARM_ABI_FLOAT_HARD 0x400
++
++
++#define EF_ARM_SYMSARESORTED 0x04
++#define EF_ARM_DYNSYMSUSESEGIDX 0x08
++#define EF_ARM_MAPSYMSFIRST 0x10
++#define EF_ARM_EABIMASK 0XFF000000
++
++
++#define EF_ARM_BE8 0x00800000
++#define EF_ARM_LE8 0x00400000
++
++#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
++#define EF_ARM_EABI_UNKNOWN 0x00000000
++#define EF_ARM_EABI_VER1 0x01000000
++#define EF_ARM_EABI_VER2 0x02000000
++#define EF_ARM_EABI_VER3 0x03000000
++#define EF_ARM_EABI_VER4 0x04000000
++#define EF_ARM_EABI_VER5 0x05000000
++
++
++#define STT_ARM_TFUNC STT_LOPROC
++#define STT_ARM_16BIT STT_HIPROC
++
++
++#define SHF_ARM_ENTRYSECT 0x10000000
++#define SHF_ARM_COMDEF 0x80000000
++
++
++
++#define PF_ARM_SB 0x10000000
++
++#define PF_ARM_PI 0x20000000
++#define PF_ARM_ABS 0x40000000
++
++
++#define PT_ARM_EXIDX (PT_LOPROC + 1)
++
++
++#define SHT_ARM_EXIDX (SHT_LOPROC + 1)
++#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2)
++#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3)
++
++
++#define R_AARCH64_NONE 0
++#define R_AARCH64_ABS64 257
++#define R_AARCH64_ABS32 258
++#define R_AARCH64_COPY 1024
++#define R_AARCH64_GLOB_DAT 1025
++#define R_AARCH64_JUMP_SLOT 1026
++#define R_AARCH64_RELATIVE 1027
++#define R_AARCH64_TLS_DTPMOD64 1028
++#define R_AARCH64_TLS_DTPREL64 1029
++#define R_AARCH64_TLS_TPREL64 1030
++#define R_AARCH64_TLSDESC 1031
++
++
++#define R_ARM_NONE 0
++#define R_ARM_PC24 1
++#define R_ARM_ABS32 2
++#define R_ARM_REL32 3
++#define R_ARM_PC13 4
++#define R_ARM_ABS16 5
++#define R_ARM_ABS12 6
++#define R_ARM_THM_ABS5 7
++#define R_ARM_ABS8 8
++#define R_ARM_SBREL32 9
++#define R_ARM_THM_PC22 10
++#define R_ARM_THM_PC8 11
++#define R_ARM_AMP_VCALL9 12
++#define R_ARM_TLS_DESC 13
++#define R_ARM_THM_SWI8 14
++#define R_ARM_XPC25 15
++#define R_ARM_THM_XPC22 16
++#define R_ARM_TLS_DTPMOD32 17
++#define R_ARM_TLS_DTPOFF32 18
++#define R_ARM_TLS_TPOFF32 19
++#define R_ARM_COPY 20
++#define R_ARM_GLOB_DAT 21
++#define R_ARM_JUMP_SLOT 22
++#define R_ARM_RELATIVE 23
++#define R_ARM_GOTOFF 24
++#define R_ARM_GOTPC 25
++#define R_ARM_GOT32 26
++#define R_ARM_PLT32 27
++#define R_ARM_CALL 28
++#define R_ARM_JUMP24 29
++#define R_ARM_THM_JUMP24 30
++#define R_ARM_BASE_ABS 31
++#define R_ARM_ALU_PCREL_7_0 32
++#define R_ARM_ALU_PCREL_15_8 33
++#define R_ARM_ALU_PCREL_23_15 34
++#define R_ARM_LDR_SBREL_11_0 35
++#define R_ARM_ALU_SBREL_19_12 36
++#define R_ARM_ALU_SBREL_27_20 37
++#define R_ARM_TARGET1 38
++#define R_ARM_SBREL31 39
++#define R_ARM_V4BX 40
++#define R_ARM_TARGET2 41
++#define R_ARM_PREL31 42
++#define R_ARM_MOVW_ABS_NC 43
++#define R_ARM_MOVT_ABS 44
++#define R_ARM_MOVW_PREL_NC 45
++#define R_ARM_MOVT_PREL 46
++#define R_ARM_THM_MOVW_ABS_NC 47
++#define R_ARM_THM_MOVT_ABS 48
++#define R_ARM_THM_MOVW_PREL_NC 49
++#define R_ARM_THM_MOVT_PREL 50
++#define R_ARM_THM_JUMP19 51
++#define R_ARM_THM_JUMP6 52
++#define R_ARM_THM_ALU_PREL_11_0 53
++#define R_ARM_THM_PC12 54
++#define R_ARM_ABS32_NOI 55
++#define R_ARM_REL32_NOI 56
++#define R_ARM_ALU_PC_G0_NC 57
++#define R_ARM_ALU_PC_G0 58
++#define R_ARM_ALU_PC_G1_NC 59
++#define R_ARM_ALU_PC_G1 60
++#define R_ARM_ALU_PC_G2 61
++#define R_ARM_LDR_PC_G1 62
++#define R_ARM_LDR_PC_G2 63
++#define R_ARM_LDRS_PC_G0 64
++#define R_ARM_LDRS_PC_G1 65
++#define R_ARM_LDRS_PC_G2 66
++#define R_ARM_LDC_PC_G0 67
++#define R_ARM_LDC_PC_G1 68
++#define R_ARM_LDC_PC_G2 69
++#define R_ARM_ALU_SB_G0_NC 70
++#define R_ARM_ALU_SB_G0 71
++#define R_ARM_ALU_SB_G1_NC 72
++#define R_ARM_ALU_SB_G1 73
++#define R_ARM_ALU_SB_G2 74
++#define R_ARM_LDR_SB_G0 75
++#define R_ARM_LDR_SB_G1 76
++#define R_ARM_LDR_SB_G2 77
++#define R_ARM_LDRS_SB_G0 78
++#define R_ARM_LDRS_SB_G1 79
++#define R_ARM_LDRS_SB_G2 80
++#define R_ARM_LDC_SB_G0 81
++#define R_ARM_LDC_SB_G1 82
++#define R_ARM_LDC_SB_G2 83
++#define R_ARM_MOVW_BREL_NC 84
++#define R_ARM_MOVT_BREL 85
++#define R_ARM_MOVW_BREL 86
++#define R_ARM_THM_MOVW_BREL_NC 87
++#define R_ARM_THM_MOVT_BREL 88
++#define R_ARM_THM_MOVW_BREL 89
++#define R_ARM_TLS_GOTDESC 90
++#define R_ARM_TLS_CALL 91
++#define R_ARM_TLS_DESCSEQ 92
++#define R_ARM_THM_TLS_CALL 93
++#define R_ARM_PLT32_ABS 94
++#define R_ARM_GOT_ABS 95
++#define R_ARM_GOT_PREL 96
++#define R_ARM_GOT_BREL12 97
++#define R_ARM_GOTOFF12 98
++#define R_ARM_GOTRELAX 99
++#define R_ARM_GNU_VTENTRY 100
++#define R_ARM_GNU_VTINHERIT 101
++#define R_ARM_THM_PC11 102
++#define R_ARM_THM_PC9 103
++#define R_ARM_TLS_GD32 104
++
++#define R_ARM_TLS_LDM32 105
++
++#define R_ARM_TLS_LDO32 106
++
++#define R_ARM_TLS_IE32 107
++
++#define R_ARM_TLS_LE32 108
++#define R_ARM_TLS_LDO12 109
++#define R_ARM_TLS_LE12 110
++#define R_ARM_TLS_IE12GP 111
++#define R_ARM_ME_TOO 128
++#define R_ARM_THM_TLS_DESCSEQ 129
++#define R_ARM_THM_TLS_DESCSEQ16 129
++#define R_ARM_THM_TLS_DESCSEQ32 130
++#define R_ARM_THM_GOT_BREL12 131
++#define R_ARM_IRELATIVE 160
++#define R_ARM_RXPC25 249
++#define R_ARM_RSBREL32 250
++#define R_ARM_THM_RPC22 251
++#define R_ARM_RREL32 252
++#define R_ARM_RABS22 253
++#define R_ARM_RPC24 254
++#define R_ARM_RBASE 255
++
++#define R_ARM_NUM 256
++
++
++
++
++#define EF_IA_64_MASKOS 0x0000000f
++#define EF_IA_64_ABI64 0x00000010
++#define EF_IA_64_ARCH 0xff000000
++
++
++#define PT_IA_64_ARCHEXT (PT_LOPROC + 0)
++#define PT_IA_64_UNWIND (PT_LOPROC + 1)
++#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)
++#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)
++#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)
++
++
++#define PF_IA_64_NORECOV 0x80000000
++
++
++#define SHT_IA_64_EXT (SHT_LOPROC + 0)
++#define SHT_IA_64_UNWIND (SHT_LOPROC + 1)
++
++
++#define SHF_IA_64_SHORT 0x10000000
++#define SHF_IA_64_NORECOV 0x20000000
++
++
++#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
++#define DT_IA_64_NUM 1
++
++
++#define R_IA64_NONE 0x00
++#define R_IA64_IMM14 0x21
++#define R_IA64_IMM22 0x22
++#define R_IA64_IMM64 0x23
++#define R_IA64_DIR32MSB 0x24
++#define R_IA64_DIR32LSB 0x25
++#define R_IA64_DIR64MSB 0x26
++#define R_IA64_DIR64LSB 0x27
++#define R_IA64_GPREL22 0x2a
++#define R_IA64_GPREL64I 0x2b
++#define R_IA64_GPREL32MSB 0x2c
++#define R_IA64_GPREL32LSB 0x2d
++#define R_IA64_GPREL64MSB 0x2e
++#define R_IA64_GPREL64LSB 0x2f
++#define R_IA64_LTOFF22 0x32
++#define R_IA64_LTOFF64I 0x33
++#define R_IA64_PLTOFF22 0x3a
++#define R_IA64_PLTOFF64I 0x3b
++#define R_IA64_PLTOFF64MSB 0x3e
++#define R_IA64_PLTOFF64LSB 0x3f
++#define R_IA64_FPTR64I 0x43
++#define R_IA64_FPTR32MSB 0x44
++#define R_IA64_FPTR32LSB 0x45
++#define R_IA64_FPTR64MSB 0x46
++#define R_IA64_FPTR64LSB 0x47
++#define R_IA64_PCREL60B 0x48
++#define R_IA64_PCREL21B 0x49
++#define R_IA64_PCREL21M 0x4a
++#define R_IA64_PCREL21F 0x4b
++#define R_IA64_PCREL32MSB 0x4c
++#define R_IA64_PCREL32LSB 0x4d
++#define R_IA64_PCREL64MSB 0x4e
++#define R_IA64_PCREL64LSB 0x4f
++#define R_IA64_LTOFF_FPTR22 0x52
++#define R_IA64_LTOFF_FPTR64I 0x53
++#define R_IA64_LTOFF_FPTR32MSB 0x54
++#define R_IA64_LTOFF_FPTR32LSB 0x55
++#define R_IA64_LTOFF_FPTR64MSB 0x56
++#define R_IA64_LTOFF_FPTR64LSB 0x57
++#define R_IA64_SEGREL32MSB 0x5c
++#define R_IA64_SEGREL32LSB 0x5d
++#define R_IA64_SEGREL64MSB 0x5e
++#define R_IA64_SEGREL64LSB 0x5f
++#define R_IA64_SECREL32MSB 0x64
++#define R_IA64_SECREL32LSB 0x65
++#define R_IA64_SECREL64MSB 0x66
++#define R_IA64_SECREL64LSB 0x67
++#define R_IA64_REL32MSB 0x6c
++#define R_IA64_REL32LSB 0x6d
++#define R_IA64_REL64MSB 0x6e
++#define R_IA64_REL64LSB 0x6f
++#define R_IA64_LTV32MSB 0x74
++#define R_IA64_LTV32LSB 0x75
++#define R_IA64_LTV64MSB 0x76
++#define R_IA64_LTV64LSB 0x77
++#define R_IA64_PCREL21BI 0x79
++#define R_IA64_PCREL22 0x7a
++#define R_IA64_PCREL64I 0x7b
++#define R_IA64_IPLTMSB 0x80
++#define R_IA64_IPLTLSB 0x81
++#define R_IA64_COPY 0x84
++#define R_IA64_SUB 0x85
++#define R_IA64_LTOFF22X 0x86
++#define R_IA64_LDXMOV 0x87
++#define R_IA64_TPREL14 0x91
++#define R_IA64_TPREL22 0x92
++#define R_IA64_TPREL64I 0x93
++#define R_IA64_TPREL64MSB 0x96
++#define R_IA64_TPREL64LSB 0x97
++#define R_IA64_LTOFF_TPREL22 0x9a
++#define R_IA64_DTPMOD64MSB 0xa6
++#define R_IA64_DTPMOD64LSB 0xa7
++#define R_IA64_LTOFF_DTPMOD22 0xaa
++#define R_IA64_DTPREL14 0xb1
++#define R_IA64_DTPREL22 0xb2
++#define R_IA64_DTPREL64I 0xb3
++#define R_IA64_DTPREL32MSB 0xb4
++#define R_IA64_DTPREL32LSB 0xb5
++#define R_IA64_DTPREL64MSB 0xb6
++#define R_IA64_DTPREL64LSB 0xb7
++#define R_IA64_LTOFF_DTPREL22 0xba
++
++
++
++
++#define R_SH_NONE 0
++#define R_SH_DIR32 1
++#define R_SH_REL32 2
++#define R_SH_DIR8WPN 3
++#define R_SH_IND12W 4
++#define R_SH_DIR8WPL 5
++#define R_SH_DIR8WPZ 6
++#define R_SH_DIR8BP 7
++#define R_SH_DIR8W 8
++#define R_SH_DIR8L 9
++#define R_SH_SWITCH16 25
++#define R_SH_SWITCH32 26
++#define R_SH_USES 27
++#define R_SH_COUNT 28
++#define R_SH_ALIGN 29
++#define R_SH_CODE 30
++#define R_SH_DATA 31
++#define R_SH_LABEL 32
++#define R_SH_SWITCH8 33
++#define R_SH_GNU_VTINHERIT 34
++#define R_SH_GNU_VTENTRY 35
++#define R_SH_TLS_GD_32 144
++#define R_SH_TLS_LD_32 145
++#define R_SH_TLS_LDO_32 146
++#define R_SH_TLS_IE_32 147
++#define R_SH_TLS_LE_32 148
++#define R_SH_TLS_DTPMOD32 149
++#define R_SH_TLS_DTPOFF32 150
++#define R_SH_TLS_TPOFF32 151
++#define R_SH_GOT32 160
++#define R_SH_PLT32 161
++#define R_SH_COPY 162
++#define R_SH_GLOB_DAT 163
++#define R_SH_JMP_SLOT 164
++#define R_SH_RELATIVE 165
++#define R_SH_GOTOFF 166
++#define R_SH_GOTPC 167
++
++#define R_SH_NUM 256
++
++
++
++#define R_390_NONE 0
++#define R_390_8 1
++#define R_390_12 2
++#define R_390_16 3
++#define R_390_32 4
++#define R_390_PC32 5
++#define R_390_GOT12 6
++#define R_390_GOT32 7
++#define R_390_PLT32 8
++#define R_390_COPY 9
++#define R_390_GLOB_DAT 10
++#define R_390_JMP_SLOT 11
++#define R_390_RELATIVE 12
++#define R_390_GOTOFF32 13
++#define R_390_GOTPC 14
++#define R_390_GOT16 15
++#define R_390_PC16 16
++#define R_390_PC16DBL 17
++#define R_390_PLT16DBL 18
++#define R_390_PC32DBL 19
++#define R_390_PLT32DBL 20
++#define R_390_GOTPCDBL 21
++#define R_390_64 22
++#define R_390_PC64 23
++#define R_390_GOT64 24
++#define R_390_PLT64 25
++#define R_390_GOTENT 26
++#define R_390_GOTOFF16 27
++#define R_390_GOTOFF64 28
++#define R_390_GOTPLT12 29
++#define R_390_GOTPLT16 30
++#define R_390_GOTPLT32 31
++#define R_390_GOTPLT64 32
++#define R_390_GOTPLTENT 33
++#define R_390_PLTOFF16 34
++#define R_390_PLTOFF32 35
++#define R_390_PLTOFF64 36
++#define R_390_TLS_LOAD 37
++#define R_390_TLS_GDCALL 38
++
++#define R_390_TLS_LDCALL 39
++
++#define R_390_TLS_GD32 40
++
++#define R_390_TLS_GD64 41
++
++#define R_390_TLS_GOTIE12 42
++
++#define R_390_TLS_GOTIE32 43
++
++#define R_390_TLS_GOTIE64 44
++
++#define R_390_TLS_LDM32 45
++
++#define R_390_TLS_LDM64 46
++
++#define R_390_TLS_IE32 47
++
++#define R_390_TLS_IE64 48
++
++#define R_390_TLS_IEENT 49
++
++#define R_390_TLS_LE32 50
++
++#define R_390_TLS_LE64 51
++
++#define R_390_TLS_LDO32 52
++
++#define R_390_TLS_LDO64 53
++
++#define R_390_TLS_DTPMOD 54
++#define R_390_TLS_DTPOFF 55
++#define R_390_TLS_TPOFF 56
++
++#define R_390_20 57
++#define R_390_GOT20 58
++#define R_390_GOTPLT20 59
++#define R_390_TLS_GOTIE20 60
++
++
++#define R_390_NUM 61
++
++
++
++#define R_CRIS_NONE 0
++#define R_CRIS_8 1
++#define R_CRIS_16 2
++#define R_CRIS_32 3
++#define R_CRIS_8_PCREL 4
++#define R_CRIS_16_PCREL 5
++#define R_CRIS_32_PCREL 6
++#define R_CRIS_GNU_VTINHERIT 7
++#define R_CRIS_GNU_VTENTRY 8
++#define R_CRIS_COPY 9
++#define R_CRIS_GLOB_DAT 10
++#define R_CRIS_JUMP_SLOT 11
++#define R_CRIS_RELATIVE 12
++#define R_CRIS_16_GOT 13
++#define R_CRIS_32_GOT 14
++#define R_CRIS_16_GOTPLT 15
++#define R_CRIS_32_GOTPLT 16
++#define R_CRIS_32_GOTREL 17
++#define R_CRIS_32_PLT_GOTREL 18
++#define R_CRIS_32_PLT_PCREL 19
++
++#define R_CRIS_NUM 20
++
++
++
++#define R_X86_64_NONE 0
++#define R_X86_64_64 1
++#define R_X86_64_PC32 2
++#define R_X86_64_GOT32 3
++#define R_X86_64_PLT32 4
++#define R_X86_64_COPY 5
++#define R_X86_64_GLOB_DAT 6
++#define R_X86_64_JUMP_SLOT 7
++#define R_X86_64_RELATIVE 8
++#define R_X86_64_GOTPCREL 9
++
++#define R_X86_64_32 10
++#define R_X86_64_32S 11
++#define R_X86_64_16 12
++#define R_X86_64_PC16 13
++#define R_X86_64_8 14
++#define R_X86_64_PC8 15
++#define R_X86_64_DTPMOD64 16
++#define R_X86_64_DTPOFF64 17
++#define R_X86_64_TPOFF64 18
++#define R_X86_64_TLSGD 19
++
++#define R_X86_64_TLSLD 20
++
++#define R_X86_64_DTPOFF32 21
++#define R_X86_64_GOTTPOFF 22
++
++#define R_X86_64_TPOFF32 23
++#define R_X86_64_PC64 24
++#define R_X86_64_GOTOFF64 25
++#define R_X86_64_GOTPC32 26
++#define R_X86_64_GOT64 27
++#define R_X86_64_GOTPCREL64 28
++#define R_X86_64_GOTPC64 29
++#define R_X86_64_GOTPLT64 30
++#define R_X86_64_PLTOFF64 31
++#define R_X86_64_SIZE32 32
++#define R_X86_64_SIZE64 33
++
++#define R_X86_64_GOTPC32_TLSDESC 34
++#define R_X86_64_TLSDESC_CALL 35
++
++#define R_X86_64_TLSDESC 36
++#define R_X86_64_IRELATIVE 37
++#define R_X86_64_RELATIVE64 38
++#define R_X86_64_NUM 39
++
++
++
++#define R_MN10300_NONE 0
++#define R_MN10300_32 1
++#define R_MN10300_16 2
++#define R_MN10300_8 3
++#define R_MN10300_PCREL32 4
++#define R_MN10300_PCREL16 5
++#define R_MN10300_PCREL8 6
++#define R_MN10300_GNU_VTINHERIT 7
++#define R_MN10300_GNU_VTENTRY 8
++#define R_MN10300_24 9
++#define R_MN10300_GOTPC32 10
++#define R_MN10300_GOTPC16 11
++#define R_MN10300_GOTOFF32 12
++#define R_MN10300_GOTOFF24 13
++#define R_MN10300_GOTOFF16 14
++#define R_MN10300_PLT32 15
++#define R_MN10300_PLT16 16
++#define R_MN10300_GOT32 17
++#define R_MN10300_GOT24 18
++#define R_MN10300_GOT16 19
++#define R_MN10300_COPY 20
++#define R_MN10300_GLOB_DAT 21
++#define R_MN10300_JMP_SLOT 22
++#define R_MN10300_RELATIVE 23
++
++#define R_MN10300_NUM 24
++
++
++
++#define R_M32R_NONE 0
++#define R_M32R_16 1
++#define R_M32R_32 2
++#define R_M32R_24 3
++#define R_M32R_10_PCREL 4
++#define R_M32R_18_PCREL 5
++#define R_M32R_26_PCREL 6
++#define R_M32R_HI16_ULO 7
++#define R_M32R_HI16_SLO 8
++#define R_M32R_LO16 9
++#define R_M32R_SDA16 10
++#define R_M32R_GNU_VTINHERIT 11
++#define R_M32R_GNU_VTENTRY 12
++
++#define R_M32R_16_RELA 33
++#define R_M32R_32_RELA 34
++#define R_M32R_24_RELA 35
++#define R_M32R_10_PCREL_RELA 36
++#define R_M32R_18_PCREL_RELA 37
++#define R_M32R_26_PCREL_RELA 38
++#define R_M32R_HI16_ULO_RELA 39
++#define R_M32R_HI16_SLO_RELA 40
++#define R_M32R_LO16_RELA 41
++#define R_M32R_SDA16_RELA 42
++#define R_M32R_RELA_GNU_VTINHERIT 43
++#define R_M32R_RELA_GNU_VTENTRY 44
++#define R_M32R_REL32 45
++
++#define R_M32R_GOT24 48
++#define R_M32R_26_PLTREL 49
++#define R_M32R_COPY 50
++#define R_M32R_GLOB_DAT 51
++#define R_M32R_JMP_SLOT 52
++#define R_M32R_RELATIVE 53
++#define R_M32R_GOTOFF 54
++#define R_M32R_GOTPC24 55
++#define R_M32R_GOT16_HI_ULO 56
++
++#define R_M32R_GOT16_HI_SLO 57
++
++#define R_M32R_GOT16_LO 58
++#define R_M32R_GOTPC_HI_ULO 59
++
++#define R_M32R_GOTPC_HI_SLO 60
++
++#define R_M32R_GOTPC_LO 61
++
++#define R_M32R_GOTOFF_HI_ULO 62
++
++#define R_M32R_GOTOFF_HI_SLO 63
++
++#define R_M32R_GOTOFF_LO 64
++#define R_M32R_NUM 256
++
++#define R_MICROBLAZE_NONE 0
++#define R_MICROBLAZE_32 1
++#define R_MICROBLAZE_32_PCREL 2
++#define R_MICROBLAZE_64_PCREL 3
++#define R_MICROBLAZE_32_PCREL_LO 4
++#define R_MICROBLAZE_64 5
++#define R_MICROBLAZE_32_LO 6
++#define R_MICROBLAZE_SRO32 7
++#define R_MICROBLAZE_SRW32 8
++#define R_MICROBLAZE_64_NONE 9
++#define R_MICROBLAZE_32_SYM_OP_SYM 10
++#define R_MICROBLAZE_GNU_VTINHERIT 11
++#define R_MICROBLAZE_GNU_VTENTRY 12
++#define R_MICROBLAZE_GOTPC_64 13
++#define R_MICROBLAZE_GOT_64 14
++#define R_MICROBLAZE_PLT_64 15
++#define R_MICROBLAZE_REL 16
++#define R_MICROBLAZE_JUMP_SLOT 17
++#define R_MICROBLAZE_GLOB_DAT 18
++#define R_MICROBLAZE_GOTOFF_64 19
++#define R_MICROBLAZE_GOTOFF_32 20
++#define R_MICROBLAZE_COPY 21
++#define R_MICROBLAZE_TLS 22
++#define R_MICROBLAZE_TLSGD 23
++#define R_MICROBLAZE_TLSLD 24
++#define R_MICROBLAZE_TLSDTPMOD32 25
++#define R_MICROBLAZE_TLSDTPREL32 26
++#define R_MICROBLAZE_TLSDTPREL64 27
++#define R_MICROBLAZE_TLSGOTTPREL32 28
++#define R_MICROBLAZE_TLSTPREL32 29
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
diff --git a/target/linux/patches/5.15.152/rockchip-115200.patch b/target/linux/patches/5.15.152/rockchip-115200.patch
new file mode 100644
index 000000000..ad8a2d7a7
--- /dev/null
+++ b/target/linux/patches/5.15.152/rockchip-115200.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-5.15.81.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi linux-5.15.81/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
+--- linux-5.15.81.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-02 17:41:12.000000000 +0100
++++ linux-5.15.81/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-22 09:51:57.370394227 +0100
+@@ -17,7 +17,7 @@
+ };
+
+ chosen {
+- stdout-path = "serial2:1500000n8";
++ stdout-path = "serial2:115200n8";
+ };
+
+ clkin_gmac: external-gmac-clock {
diff --git a/target/linux/patches/5.15.152/startup.patch b/target/linux/patches/5.15.152/startup.patch
new file mode 100644
index 000000000..eef481021
--- /dev/null
+++ b/target/linux/patches/5.15.152/startup.patch
@@ -0,0 +1,25 @@
+diff -Nur linux-5.10.17.orig/init/initramfs.c linux-5.10.17/init/initramfs.c
+--- linux-5.10.17.orig/init/initramfs.c 2021-02-17 11:02:30.000000000 +0100
++++ linux-5.10.17/init/initramfs.c 2021-02-23 13:27:40.449467155 +0100
+@@ -636,6 +636,9 @@
+ initrd_start = 0;
+ initrd_end = 0;
+
++#ifdef CONFIG_DEVTMPFS_MOUNT
++ devtmpfs_mount();
++#endif
+ flush_delayed_fput();
+ return 0;
+ }
+diff -Nur linux-5.10.17.orig/init/main.c linux-5.10.17/init/main.c
+--- linux-5.10.17.orig/init/main.c 2021-02-17 11:02:30.000000000 +0100
++++ linux-5.10.17/init/main.c 2021-02-23 13:39:32.238650450 +0100
+@@ -1483,6 +1483,8 @@
+ pr_err("Warning: unable to open an initial console.\n");
+ return;
+ }
++ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
++
+ init_dup(file);
+ init_dup(file);
+ init_dup(file);
diff --git a/target/linux/patches/5.4.272/arc.patch b/target/linux/patches/5.4.272/arc.patch
new file mode 100644
index 000000000..20810ce64
--- /dev/null
+++ b/target/linux/patches/5.4.272/arc.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-4.17.1.orig/arch/arc/boot/Makefile linux-4.17.1/arch/arc/boot/Makefile
+--- linux-4.17.1.orig/arch/arc/boot/Makefile 2018-06-11 22:43:19.000000000 +0200
++++ linux-4.17.1/arch/arc/boot/Makefile 2018-06-16 18:28:02.000000000 +0200
+@@ -7,7 +7,7 @@
+
+ OBJCOPYFLAGS= -O binary -R .note -R .note.gnu.build-id -R .comment -S
+
+-LINUX_START_TEXT = $$(readelf -h vmlinux | \
++LINUX_START_TEXT = $$(${CROSS_COMPILE}readelf -h vmlinux | \
+ grep "Entry point address" | grep -o 0x.*)
+
+ UIMAGE_LOADADDR = $(CONFIG_LINUX_LINK_BASE)
diff --git a/target/linux/patches/5.4.272/arm-nommu.patch b/target/linux/patches/5.4.272/arm-nommu.patch
new file mode 100644
index 000000000..fdcec3f09
--- /dev/null
+++ b/target/linux/patches/5.4.272/arm-nommu.patch
@@ -0,0 +1,81 @@
+diff -Nur linux-5.4.155.orig/arch/arm/include/asm/mach/map.h linux-5.4.155/arch/arm/include/asm/mach/map.h
+--- linux-5.4.155.orig/arch/arm/include/asm/mach/map.h 2021-10-20 11:40:18.000000000 +0200
++++ linux-5.4.155/arch/arm/include/asm/mach/map.h 2021-10-26 11:20:50.164712192 +0200
+@@ -59,6 +59,7 @@
+ #else
+ #define iotable_init(map,num) do { } while (0)
+ #define vm_reserve_area_early(a,s,c) do { } while (0)
++#define debug_ll_io_init() do { } while (0)
+ #endif
+
+ #endif
+diff -Nur linux-5.4.155.orig/arch/arm/Kconfig linux-5.4.155/arch/arm/Kconfig
+--- linux-5.4.155.orig/arch/arm/Kconfig 2021-10-20 11:40:18.000000000 +0200
++++ linux-5.4.155/arch/arm/Kconfig 2021-10-26 11:20:50.164712192 +0200
+@@ -340,6 +340,17 @@
+ select SPARSE_IRQ
+ select USE_OF
+
++config ARM_SINGLE_ARCH_VERSATILE
++ bool "ARM Ltd. Versatile family"
++ depends on !MMU
++ select AUTO_ZRELADDR
++ select CLKSRC_OF
++ select COMMON_CLK
++ select GENERIC_CLOCKEVENTS
++ select GPIOLIB
++ select SPARSE_IRQ
++ select USE_OF
++
+ config ARCH_EBSA110
+ bool "EBSA-110"
+ select ARCH_USES_GETTIMEOFFSET
+diff -Nur linux-5.4.155.orig/arch/arm/Kconfig.debug linux-5.4.155/arch/arm/Kconfig.debug
+--- linux-5.4.155.orig/arch/arm/Kconfig.debug 2021-10-20 11:40:18.000000000 +0200
++++ linux-5.4.155/arch/arm/Kconfig.debug 2021-10-26 11:20:50.168712192 +0200
+@@ -1878,7 +1878,8 @@
+ config UNCOMPRESS_INCLUDE
+ string
+ default "debug/uncompress.h" if ARCH_MULTIPLATFORM || ARCH_MSM || \
+- PLAT_SAMSUNG || ARM_SINGLE_ARMV7M
++ PLAT_SAMSUNG || ARM_SINGLE_ARMV7M || \
++ ARM_SINGLE_ARCH_VERSATILE
+ default "mach/uncompress.h"
+
+ config EARLY_PRINTK
+diff -Nur linux-5.4.155.orig/arch/arm/mach-versatile/Kconfig linux-5.4.155/arch/arm/mach-versatile/Kconfig
+--- linux-5.4.155.orig/arch/arm/mach-versatile/Kconfig 2021-10-20 11:40:18.000000000 +0200
++++ linux-5.4.155/arch/arm/mach-versatile/Kconfig 2021-10-26 11:20:50.168712192 +0200
+@@ -1,7 +1,8 @@
+ # SPDX-License-Identifier: GPL-2.0
+ config ARCH_VERSATILE
+- bool "ARM Ltd. Versatile family"
+- depends on ARCH_MULTI_V5
++ bool "ARM Ltd. Versatile family" if ARCH_MULTI_V5
++ depends on ARCH_MULTI_V5 || ARM_SINGLE_ARCH_VERSATILE
++ default y if ARM_SINGLE_ARCH_VERSATILE
+ select ARM_AMBA
+ select ARM_TIMER_SP804
+ select ARM_VIC
+diff -Nur linux-5.4.155.orig/arch/arm/mach-versatile/Makefile.boot linux-5.4.155/arch/arm/mach-versatile/Makefile.boot
+--- linux-5.4.155.orig/arch/arm/mach-versatile/Makefile.boot 1970-01-01 01:00:00.000000000 +0100
++++ linux-5.4.155/arch/arm/mach-versatile/Makefile.boot 2021-10-26 11:20:50.168712192 +0200
+@@ -0,0 +1,3 @@
++# Empty file waiting for deletion once Makefile.boot isn't needed any more.
++# Patch waits for application at
++# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
+diff -Nur linux-5.4.155.orig/arch/arm/mach-versatile/versatile_dt.c linux-5.4.155/arch/arm/mach-versatile/versatile_dt.c
+--- linux-5.4.155.orig/arch/arm/mach-versatile/versatile_dt.c 2021-10-20 11:40:18.000000000 +0200
++++ linux-5.4.155/arch/arm/mach-versatile/versatile_dt.c 2021-10-26 11:20:50.168712192 +0200
+@@ -22,7 +22,11 @@
+ #include <asm/mach/map.h>
+
+ /* macro to get at MMIO space when running virtually */
++#ifdef CONFIG_MMU
+ #define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
++#else
++#define IO_ADDRESS(x) (x)
++#endif
+ #define __io_address(n) ((void __iomem __force *)IO_ADDRESS(n))
+
+ /*
diff --git a/target/linux/patches/5.4.272/darwin-dtc.patch b/target/linux/patches/5.4.272/darwin-dtc.patch
new file mode 100644
index 000000000..0cdc23ab4
--- /dev/null
+++ b/target/linux/patches/5.4.272/darwin-dtc.patch
@@ -0,0 +1,26 @@
+diff -Nur linux-4.19.132.orig/scripts/dtc/dtc.h linux-4.19.132/scripts/dtc/dtc.h
+--- linux-4.19.132.orig/scripts/dtc/dtc.h 2020-07-09 09:37:13.000000000 +0200
++++ linux-4.19.132/scripts/dtc/dtc.h 2020-07-15 02:38:00.000000000 +0200
+@@ -33,8 +33,8 @@
+ #include <unistd.h>
+ #include <inttypes.h>
+
+-#include <libfdt_env.h>
+-#include <fdt.h>
++#include "libfdt/libfdt_env.h"
++#include "libfdt/fdt.h"
+
+ #include "util.h"
+
+diff -Nur linux-4.19.132.orig/scripts/dtc/util.c linux-4.19.132/scripts/dtc/util.c
+--- linux-4.19.132.orig/scripts/dtc/util.c 2020-07-09 09:37:13.000000000 +0200
++++ linux-4.19.132/scripts/dtc/util.c 2020-07-15 02:38:18.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+
+-#include "libfdt.h"
++#include "libfdt/libfdt.h"
+ #include "util.h"
+ #include "version_gen.h"
+
diff --git a/target/linux/patches/5.4.272/darwin-file2alias.patch b/target/linux/patches/5.4.272/darwin-file2alias.patch
new file mode 100644
index 000000000..fdbc598a8
--- /dev/null
+++ b/target/linux/patches/5.4.272/darwin-file2alias.patch
@@ -0,0 +1,14 @@
+diff -Nur linux-5.4.42.orig/scripts/mod/file2alias.c linux-5.4.42/scripts/mod/file2alias.c
+--- linux-5.4.42.orig/scripts/mod/file2alias.c 2020-05-20 08:20:41.000000000 +0200
++++ linux-5.4.42/scripts/mod/file2alias.c 2020-06-06 20:14:59.000000000 +0200
+@@ -10,6 +10,10 @@
+ * of the GNU General Public License, incorporated herein by reference.
+ */
+
++/* workaround for Darwin */
++#define _UUID_T
++#define __GETHOSTUUID_H
++
+ #include "modpost.h"
+ #include "devicetable-offsets.h"
+
diff --git a/target/linux/patches/5.4.272/dtc-noyaml.patch b/target/linux/patches/5.4.272/dtc-noyaml.patch
new file mode 100644
index 000000000..759bb01f7
--- /dev/null
+++ b/target/linux/patches/5.4.272/dtc-noyaml.patch
@@ -0,0 +1,16 @@
+diff -Nur linux-5.4.53.orig/scripts/dtc/dtc.c linux-5.4.53/scripts/dtc/dtc.c
+--- linux-5.4.53.orig/scripts/dtc/dtc.c 2020-07-22 09:33:18.000000000 +0200
++++ linux-5.4.53/scripts/dtc/dtc.c 2020-07-28 14:20:10.000000000 +0200
+@@ -349,12 +349,6 @@
+
+ if (streq(outform, "dts")) {
+ dt_to_source(outf, dti);
+-#ifndef NO_YAML
+- } else if (streq(outform, "yaml")) {
+- if (!streq(inform, "dts"))
+- die("YAML output format requires dts input format\n");
+- dt_to_yaml(outf, dti);
+-#endif
+ } else if (streq(outform, "dtb")) {
+ dt_to_blob(outf, dti, outversion);
+ } else if (streq(outform, "asm")) {
diff --git a/target/linux/patches/5.4.272/macsonic.patch b/target/linux/patches/5.4.272/macsonic.patch
new file mode 100644
index 000000000..75a6fcad2
--- /dev/null
+++ b/target/linux/patches/5.4.272/macsonic.patch
@@ -0,0 +1,11 @@
+diff -Nur linux-4.4.6.orig/drivers/net/ethernet/natsemi/Kconfig linux-4.4.6/drivers/net/ethernet/natsemi/Kconfig
+--- linux-4.4.6.orig/drivers/net/ethernet/natsemi/Kconfig 2016-03-16 16:43:17.000000000 +0100
++++ linux-4.4.6/drivers/net/ethernet/natsemi/Kconfig 2016-03-18 10:43:34.000000000 +0100
+@@ -18,6 +18,7 @@
+ config MACSONIC
+ tristate "Macintosh SONIC based ethernet (onboard, NuBus, LC, CS)"
+ depends on MAC
++ select BITREVERSE
+ ---help---
+ Support for NatSemi SONIC based Ethernet devices. This includes
+ the onboard Ethernet in many Quadras as well as some LC-PDS,
diff --git a/target/linux/patches/5.4.272/or1k-more-ram.patch b/target/linux/patches/5.4.272/or1k-more-ram.patch
new file mode 100644
index 000000000..540dc43b5
--- /dev/null
+++ b/target/linux/patches/5.4.272/or1k-more-ram.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts
+--- linux-4.8.11.orig/arch/openrisc/boot/dts/or1ksim.dts 2016-11-26 09:57:13.000000000 +0100
++++ linux-4.8.11/arch/openrisc/boot/dts/or1ksim.dts 2016-12-04 14:39:46.092952799 +0100
+@@ -11,7 +11,7 @@
+
+ memory@0 {
+ device_type = "memory";
+- reg = <0x00000000 0x02000000>;
++ reg = <0x00000000 0x08000000>;
+ };
+
+ cpus {
diff --git a/target/linux/patches/5.4.272/relocs.patch b/target/linux/patches/5.4.272/relocs.patch
new file mode 100644
index 000000000..5bcd974c7
--- /dev/null
+++ b/target/linux/patches/5.4.272/relocs.patch
@@ -0,0 +1,2698 @@
+diff -Nur linux-5.4.42.orig/arch/x86/tools/relocs.h linux-5.4.42/arch/x86/tools/relocs.h
+--- linux-5.4.42.orig/arch/x86/tools/relocs.h 2020-05-20 08:20:41.000000000 +0200
++++ linux-5.4.42/arch/x86/tools/relocs.h 2020-06-06 18:18:17.000000000 +0200
+@@ -10,11 +10,19 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <unistd.h>
++#ifdef __linux__
+ #include <elf.h>
+ #include <byteswap.h>
+ #define USE_BSD
+ #include <endian.h>
++#else
++#include "elf.h"
++#endif
++#ifdef __APPLE__
++#include <pcreposix.h>
++#else
+ #include <regex.h>
++#endif
+ #include <tools/le_byteshift.h>
+
+ void die(char *fmt, ...) __attribute__((noreturn));
+diff -Nur linux-5.4.42.orig/tools/include/elf.h linux-5.4.42/tools/include/elf.h
+--- linux-5.4.42.orig/tools/include/elf.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-5.4.42/tools/include/elf.h 2020-06-06 18:18:17.000000000 +0200
+@@ -0,0 +1,2671 @@
++#ifndef _ELF_H
++#define _ELF_H
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#include <stdint.h>
++
++typedef uint16_t Elf32_Half;
++typedef uint16_t Elf64_Half;
++
++typedef uint32_t Elf32_Word;
++typedef int32_t Elf32_Sword;
++typedef uint32_t Elf64_Word;
++typedef int32_t Elf64_Sword;
++
++typedef uint64_t Elf32_Xword;
++typedef int64_t Elf32_Sxword;
++typedef uint64_t Elf64_Xword;
++typedef int64_t Elf64_Sxword;
++
++typedef uint32_t Elf32_Addr;
++typedef uint64_t Elf64_Addr;
++
++typedef uint32_t Elf32_Off;
++typedef uint64_t Elf64_Off;
++
++typedef uint16_t Elf32_Section;
++typedef uint16_t Elf64_Section;
++
++typedef Elf32_Half Elf32_Versym;
++typedef Elf64_Half Elf64_Versym;
++
++#define EI_NIDENT (16)
++
++typedef struct {
++ unsigned char e_ident[EI_NIDENT];
++ Elf32_Half e_type;
++ Elf32_Half e_machine;
++ Elf32_Word e_version;
++ Elf32_Addr e_entry;
++ Elf32_Off e_phoff;
++ Elf32_Off e_shoff;
++ Elf32_Word e_flags;
++ Elf32_Half e_ehsize;
++ Elf32_Half e_phentsize;
++ Elf32_Half e_phnum;
++ Elf32_Half e_shentsize;
++ Elf32_Half e_shnum;
++ Elf32_Half e_shstrndx;
++} Elf32_Ehdr;
++
++typedef struct {
++ unsigned char e_ident[EI_NIDENT];
++ Elf64_Half e_type;
++ Elf64_Half e_machine;
++ Elf64_Word e_version;
++ Elf64_Addr e_entry;
++ Elf64_Off e_phoff;
++ Elf64_Off e_shoff;
++ Elf64_Word e_flags;
++ Elf64_Half e_ehsize;
++ Elf64_Half e_phentsize;
++ Elf64_Half e_phnum;
++ Elf64_Half e_shentsize;
++ Elf64_Half e_shnum;
++ Elf64_Half e_shstrndx;
++} Elf64_Ehdr;
++
++#define EI_MAG0 0
++#define ELFMAG0 0x7f
++
++#define EI_MAG1 1
++#define ELFMAG1 'E'
++
++#define EI_MAG2 2
++#define ELFMAG2 'L'
++
++#define EI_MAG3 3
++#define ELFMAG3 'F'
++
++
++#define ELFMAG "\177ELF"
++#define SELFMAG 4
++
++#define EI_CLASS 4
++#define ELFCLASSNONE 0
++#define ELFCLASS32 1
++#define ELFCLASS64 2
++#define ELFCLASSNUM 3
++
++#define EI_DATA 5
++#define ELFDATANONE 0
++#define ELFDATA2LSB 1
++#define ELFDATA2MSB 2
++#define ELFDATANUM 3
++
++#define EI_VERSION 6
++
++
++#define EI_OSABI 7
++#define ELFOSABI_NONE 0
++#define ELFOSABI_SYSV 0
++#define ELFOSABI_HPUX 1
++#define ELFOSABI_NETBSD 2
++#define ELFOSABI_LINUX 3
++#define ELFOSABI_GNU 3
++#define ELFOSABI_SOLARIS 6
++#define ELFOSABI_AIX 7
++#define ELFOSABI_IRIX 8
++#define ELFOSABI_FREEBSD 9
++#define ELFOSABI_TRU64 10
++#define ELFOSABI_MODESTO 11
++#define ELFOSABI_OPENBSD 12
++#define ELFOSABI_ARM 97
++#define ELFOSABI_STANDALONE 255
++
++#define EI_ABIVERSION 8
++
++#define EI_PAD 9
++
++
++
++#define ET_NONE 0
++#define ET_REL 1
++#define ET_EXEC 2
++#define ET_DYN 3
++#define ET_CORE 4
++#define ET_NUM 5
++#define ET_LOOS 0xfe00
++#define ET_HIOS 0xfeff
++#define ET_LOPROC 0xff00
++#define ET_HIPROC 0xffff
++
++
++
++#define EM_NONE 0
++#define EM_M32 1
++#define EM_SPARC 2
++#define EM_386 3
++#define EM_68K 4
++#define EM_88K 5
++#define EM_860 7
++#define EM_MIPS 8
++#define EM_S370 9
++#define EM_MIPS_RS3_LE 10
++
++#define EM_PARISC 15
++#define EM_VPP500 17
++#define EM_SPARC32PLUS 18
++#define EM_960 19
++#define EM_PPC 20
++#define EM_PPC64 21
++#define EM_S390 22
++
++#define EM_V800 36
++#define EM_FR20 37
++#define EM_RH32 38
++#define EM_RCE 39
++#define EM_ARM 40
++#define EM_FAKE_ALPHA 41
++#define EM_SH 42
++#define EM_SPARCV9 43
++#define EM_TRICORE 44
++#define EM_ARC 45
++#define EM_H8_300 46
++#define EM_H8_300H 47
++#define EM_H8S 48
++#define EM_H8_500 49
++#define EM_IA_64 50
++#define EM_MIPS_X 51
++#define EM_COLDFIRE 52
++#define EM_68HC12 53
++#define EM_MMA 54
++#define EM_PCP 55
++#define EM_NCPU 56
++#define EM_NDR1 57
++#define EM_STARCORE 58
++#define EM_ME16 59
++#define EM_ST100 60
++#define EM_TINYJ 61
++#define EM_X86_64 62
++#define EM_PDSP 63
++
++#define EM_FX66 66
++#define EM_ST9PLUS 67
++#define EM_ST7 68
++#define EM_68HC16 69
++#define EM_68HC11 70
++#define EM_68HC08 71
++#define EM_68HC05 72
++#define EM_SVX 73
++#define EM_ST19 74
++#define EM_VAX 75
++#define EM_CRIS 76
++#define EM_JAVELIN 77
++#define EM_FIREPATH 78
++#define EM_ZSP 79
++#define EM_MMIX 80
++#define EM_HUANY 81
++#define EM_PRISM 82
++#define EM_AVR 83
++#define EM_FR30 84
++#define EM_D10V 85
++#define EM_D30V 86
++#define EM_V850 87
++#define EM_M32R 88
++#define EM_MN10300 89
++#define EM_MN10200 90
++#define EM_PJ 91
++#define EM_OPENRISC 92
++#define EM_ARC_A5 93
++#define EM_XTENSA 94
++#define EM_AARCH64 183
++#define EM_TILEPRO 188
++#define EM_MICROBLAZE 189
++#define EM_TILEGX 191
++#define EM_NUM 192
++#define EM_ALPHA 0x9026
++
++#define EV_NONE 0
++#define EV_CURRENT 1
++#define EV_NUM 2
++
++typedef struct {
++ Elf32_Word sh_name;
++ Elf32_Word sh_type;
++ Elf32_Word sh_flags;
++ Elf32_Addr sh_addr;
++ Elf32_Off sh_offset;
++ Elf32_Word sh_size;
++ Elf32_Word sh_link;
++ Elf32_Word sh_info;
++ Elf32_Word sh_addralign;
++ Elf32_Word sh_entsize;
++} Elf32_Shdr;
++
++typedef struct {
++ Elf64_Word sh_name;
++ Elf64_Word sh_type;
++ Elf64_Xword sh_flags;
++ Elf64_Addr sh_addr;
++ Elf64_Off sh_offset;
++ Elf64_Xword sh_size;
++ Elf64_Word sh_link;
++ Elf64_Word sh_info;
++ Elf64_Xword sh_addralign;
++ Elf64_Xword sh_entsize;
++} Elf64_Shdr;
++
++
++
++#define SHN_UNDEF 0
++#define SHN_LORESERVE 0xff00
++#define SHN_LOPROC 0xff00
++#define SHN_BEFORE 0xff00
++
++#define SHN_AFTER 0xff01
++
++#define SHN_HIPROC 0xff1f
++#define SHN_LOOS 0xff20
++#define SHN_HIOS 0xff3f
++#define SHN_ABS 0xfff1
++#define SHN_COMMON 0xfff2
++#define SHN_XINDEX 0xffff
++#define SHN_HIRESERVE 0xffff
++
++
++
++#define SHT_NULL 0
++#define SHT_PROGBITS 1
++#define SHT_SYMTAB 2
++#define SHT_STRTAB 3
++#define SHT_RELA 4
++#define SHT_HASH 5
++#define SHT_DYNAMIC 6
++#define SHT_NOTE 7
++#define SHT_NOBITS 8
++#define SHT_REL 9
++#define SHT_SHLIB 10
++#define SHT_DYNSYM 11
++#define SHT_INIT_ARRAY 14
++#define SHT_FINI_ARRAY 15
++#define SHT_PREINIT_ARRAY 16
++#define SHT_GROUP 17
++#define SHT_SYMTAB_SHNDX 18
++#define SHT_NUM 19
++#define SHT_LOOS 0x60000000
++#define SHT_GNU_ATTRIBUTES 0x6ffffff5
++#define SHT_GNU_HASH 0x6ffffff6
++#define SHT_GNU_LIBLIST 0x6ffffff7
++#define SHT_CHECKSUM 0x6ffffff8
++#define SHT_LOSUNW 0x6ffffffa
++#define SHT_SUNW_move 0x6ffffffa
++#define SHT_SUNW_COMDAT 0x6ffffffb
++#define SHT_SUNW_syminfo 0x6ffffffc
++#define SHT_GNU_verdef 0x6ffffffd
++#define SHT_GNU_verneed 0x6ffffffe
++#define SHT_GNU_versym 0x6fffffff
++#define SHT_HISUNW 0x6fffffff
++#define SHT_HIOS 0x6fffffff
++#define SHT_LOPROC 0x70000000
++#define SHT_HIPROC 0x7fffffff
++#define SHT_LOUSER 0x80000000
++#define SHT_HIUSER 0x8fffffff
++
++#define SHF_WRITE (1 << 0)
++#define SHF_ALLOC (1 << 1)
++#define SHF_EXECINSTR (1 << 2)
++#define SHF_MERGE (1 << 4)
++#define SHF_STRINGS (1 << 5)
++#define SHF_INFO_LINK (1 << 6)
++#define SHF_LINK_ORDER (1 << 7)
++#define SHF_OS_NONCONFORMING (1 << 8)
++
++#define SHF_GROUP (1 << 9)
++#define SHF_TLS (1 << 10)
++#define SHF_MASKOS 0x0ff00000
++#define SHF_MASKPROC 0xf0000000
++#define SHF_ORDERED (1 << 30)
++#define SHF_EXCLUDE (1 << 31)
++
++#define GRP_COMDAT 0x1
++
++typedef struct {
++ Elf32_Word st_name;
++ Elf32_Addr st_value;
++ Elf32_Word st_size;
++ unsigned char st_info;
++ unsigned char st_other;
++ Elf32_Section st_shndx;
++} Elf32_Sym;
++
++typedef struct {
++ Elf64_Word st_name;
++ unsigned char st_info;
++ unsigned char st_other;
++ Elf64_Section st_shndx;
++ Elf64_Addr st_value;
++ Elf64_Xword st_size;
++} Elf64_Sym;
++
++typedef struct {
++ Elf32_Half si_boundto;
++ Elf32_Half si_flags;
++} Elf32_Syminfo;
++
++typedef struct {
++ Elf64_Half si_boundto;
++ Elf64_Half si_flags;
++} Elf64_Syminfo;
++
++#define SYMINFO_BT_SELF 0xffff
++#define SYMINFO_BT_PARENT 0xfffe
++#define SYMINFO_BT_LOWRESERVE 0xff00
++
++#define SYMINFO_FLG_DIRECT 0x0001
++#define SYMINFO_FLG_PASSTHRU 0x0002
++#define SYMINFO_FLG_COPY 0x0004
++#define SYMINFO_FLG_LAZYLOAD 0x0008
++
++#define SYMINFO_NONE 0
++#define SYMINFO_CURRENT 1
++#define SYMINFO_NUM 2
++
++#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
++#define ELF32_ST_TYPE(val) ((val) & 0xf)
++#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
++
++#define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
++#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
++#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
++
++#define STB_LOCAL 0
++#define STB_GLOBAL 1
++#define STB_WEAK 2
++#define STB_NUM 3
++#define STB_LOOS 10
++#define STB_GNU_UNIQUE 10
++#define STB_HIOS 12
++#define STB_LOPROC 13
++#define STB_HIPROC 15
++
++#define STT_NOTYPE 0
++#define STT_OBJECT 1
++#define STT_FUNC 2
++#define STT_SECTION 3
++#define STT_FILE 4
++#define STT_COMMON 5
++#define STT_TLS 6
++#define STT_NUM 7
++#define STT_LOOS 10
++#define STT_GNU_IFUNC 10
++#define STT_HIOS 12
++#define STT_LOPROC 13
++#define STT_HIPROC 15
++
++#define STN_UNDEF 0
++
++#define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
++#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
++
++#define STV_DEFAULT 0
++#define STV_INTERNAL 1
++#define STV_HIDDEN 2
++#define STV_PROTECTED 3
++
++
++
++
++typedef struct
++{
++ Elf32_Addr r_offset;
++ Elf32_Word r_info;
++} Elf32_Rel;
++
++typedef struct {
++ Elf64_Addr r_offset;
++ Elf64_Xword r_info;
++} Elf64_Rel;
++
++
++
++typedef struct {
++ Elf32_Addr r_offset;
++ Elf32_Word r_info;
++ Elf32_Sword r_addend;
++} Elf32_Rela;
++
++typedef struct {
++ Elf64_Addr r_offset;
++ Elf64_Xword r_info;
++ Elf64_Sxword r_addend;
++} Elf64_Rela;
++
++
++
++#define ELF32_R_SYM(val) ((val) >> 8)
++#define ELF32_R_TYPE(val) ((val) & 0xff)
++#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
++
++#define ELF64_R_SYM(i) ((i) >> 32)
++#define ELF64_R_TYPE(i) ((i) & 0xffffffff)
++#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
++
++
++
++typedef struct {
++ Elf32_Word p_type;
++ Elf32_Off p_offset;
++ Elf32_Addr p_vaddr;
++ Elf32_Addr p_paddr;
++ Elf32_Word p_filesz;
++ Elf32_Word p_memsz;
++ Elf32_Word p_flags;
++ Elf32_Word p_align;
++} Elf32_Phdr;
++
++typedef struct {
++ Elf64_Word p_type;
++ Elf64_Word p_flags;
++ Elf64_Off p_offset;
++ Elf64_Addr p_vaddr;
++ Elf64_Addr p_paddr;
++ Elf64_Xword p_filesz;
++ Elf64_Xword p_memsz;
++ Elf64_Xword p_align;
++} Elf64_Phdr;
++
++
++
++#define PT_NULL 0
++#define PT_LOAD 1
++#define PT_DYNAMIC 2
++#define PT_INTERP 3
++#define PT_NOTE 4
++#define PT_SHLIB 5
++#define PT_PHDR 6
++#define PT_TLS 7
++#define PT_NUM 8
++#define PT_LOOS 0x60000000
++#define PT_GNU_EH_FRAME 0x6474e550
++#define PT_GNU_STACK 0x6474e551
++#define PT_GNU_RELRO 0x6474e552
++#define PT_LOSUNW 0x6ffffffa
++#define PT_SUNWBSS 0x6ffffffa
++#define PT_SUNWSTACK 0x6ffffffb
++#define PT_HISUNW 0x6fffffff
++#define PT_HIOS 0x6fffffff
++#define PT_LOPROC 0x70000000
++#define PT_HIPROC 0x7fffffff
++
++
++#define PN_XNUM 0xffff
++
++
++#define PF_X (1 << 0)
++#define PF_W (1 << 1)
++#define PF_R (1 << 2)
++#define PF_MASKOS 0x0ff00000
++#define PF_MASKPROC 0xf0000000
++
++
++
++#define NT_PRSTATUS 1
++#define NT_FPREGSET 2
++#define NT_PRPSINFO 3
++#define NT_PRXREG 4
++#define NT_TASKSTRUCT 4
++#define NT_PLATFORM 5
++#define NT_AUXV 6
++#define NT_GWINDOWS 7
++#define NT_ASRS 8
++#define NT_PSTATUS 10
++#define NT_PSINFO 13
++#define NT_PRCRED 14
++#define NT_UTSNAME 15
++#define NT_LWPSTATUS 16
++#define NT_LWPSINFO 17
++#define NT_PRFPXREG 20
++#define NT_SIGINFO 0x53494749
++#define NT_FILE 0x46494c45
++#define NT_PRXFPREG 0x46e62b7f
++#define NT_PPC_VMX 0x100
++#define NT_PPC_SPE 0x101
++#define NT_PPC_VSX 0x102
++#define NT_386_TLS 0x200
++#define NT_386_IOPERM 0x201
++#define NT_X86_XSTATE 0x202
++#define NT_S390_HIGH_GPRS 0x300
++#define NT_S390_TIMER 0x301
++#define NT_S390_TODCMP 0x302
++#define NT_S390_TODPREG 0x303
++#define NT_S390_CTRS 0x304
++#define NT_S390_PREFIX 0x305
++#define NT_S390_LAST_BREAK 0x306
++#define NT_S390_SYSTEM_CALL 0x307
++#define NT_S390_TDB 0x308
++#define NT_ARM_VFP 0x400
++#define NT_ARM_TLS 0x401
++#define NT_ARM_HW_BREAK 0x402
++#define NT_ARM_HW_WATCH 0x403
++#define NT_METAG_CBUF 0x500
++#define NT_METAG_RPIPE 0x501
++#define NT_METAG_TLS 0x502
++#define NT_VERSION 1
++
++
++
++
++typedef struct {
++ Elf32_Sword d_tag;
++ union {
++ Elf32_Word d_val;
++ Elf32_Addr d_ptr;
++ } d_un;
++} Elf32_Dyn;
++
++typedef struct {
++ Elf64_Sxword d_tag;
++ union {
++ Elf64_Xword d_val;
++ Elf64_Addr d_ptr;
++ } d_un;
++} Elf64_Dyn;
++
++
++
++#define DT_NULL 0
++#define DT_NEEDED 1
++#define DT_PLTRELSZ 2
++#define DT_PLTGOT 3
++#define DT_HASH 4
++#define DT_STRTAB 5
++#define DT_SYMTAB 6
++#define DT_RELA 7
++#define DT_RELASZ 8
++#define DT_RELAENT 9
++#define DT_STRSZ 10
++#define DT_SYMENT 11
++#define DT_INIT 12
++#define DT_FINI 13
++#define DT_SONAME 14
++#define DT_RPATH 15
++#define DT_SYMBOLIC 16
++#define DT_REL 17
++#define DT_RELSZ 18
++#define DT_RELENT 19
++#define DT_PLTREL 20
++#define DT_DEBUG 21
++#define DT_TEXTREL 22
++#define DT_JMPREL 23
++#define DT_BIND_NOW 24
++#define DT_INIT_ARRAY 25
++#define DT_FINI_ARRAY 26
++#define DT_INIT_ARRAYSZ 27
++#define DT_FINI_ARRAYSZ 28
++#define DT_RUNPATH 29
++#define DT_FLAGS 30
++#define DT_ENCODING 32
++#define DT_PREINIT_ARRAY 32
++#define DT_PREINIT_ARRAYSZ 33
++#define DT_NUM 34
++#define DT_LOOS 0x6000000d
++#define DT_HIOS 0x6ffff000
++#define DT_LOPROC 0x70000000
++#define DT_HIPROC 0x7fffffff
++#define DT_PROCNUM DT_MIPS_NUM
++
++#define DT_VALRNGLO 0x6ffffd00
++#define DT_GNU_PRELINKED 0x6ffffdf5
++#define DT_GNU_CONFLICTSZ 0x6ffffdf6
++#define DT_GNU_LIBLISTSZ 0x6ffffdf7
++#define DT_CHECKSUM 0x6ffffdf8
++#define DT_PLTPADSZ 0x6ffffdf9
++#define DT_MOVEENT 0x6ffffdfa
++#define DT_MOVESZ 0x6ffffdfb
++#define DT_FEATURE_1 0x6ffffdfc
++#define DT_POSFLAG_1 0x6ffffdfd
++
++#define DT_SYMINSZ 0x6ffffdfe
++#define DT_SYMINENT 0x6ffffdff
++#define DT_VALRNGHI 0x6ffffdff
++#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag))
++#define DT_VALNUM 12
++
++#define DT_ADDRRNGLO 0x6ffffe00
++#define DT_GNU_HASH 0x6ffffef5
++#define DT_TLSDESC_PLT 0x6ffffef6
++#define DT_TLSDESC_GOT 0x6ffffef7
++#define DT_GNU_CONFLICT 0x6ffffef8
++#define DT_GNU_LIBLIST 0x6ffffef9
++#define DT_CONFIG 0x6ffffefa
++#define DT_DEPAUDIT 0x6ffffefb
++#define DT_AUDIT 0x6ffffefc
++#define DT_PLTPAD 0x6ffffefd
++#define DT_MOVETAB 0x6ffffefe
++#define DT_SYMINFO 0x6ffffeff
++#define DT_ADDRRNGHI 0x6ffffeff
++#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag))
++#define DT_ADDRNUM 11
++
++
++
++#define DT_VERSYM 0x6ffffff0
++
++#define DT_RELACOUNT 0x6ffffff9
++#define DT_RELCOUNT 0x6ffffffa
++
++
++#define DT_FLAGS_1 0x6ffffffb
++#define DT_VERDEF 0x6ffffffc
++
++#define DT_VERDEFNUM 0x6ffffffd
++#define DT_VERNEED 0x6ffffffe
++
++#define DT_VERNEEDNUM 0x6fffffff
++#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))
++#define DT_VERSIONTAGNUM 16
++
++
++
++#define DT_AUXILIARY 0x7ffffffd
++#define DT_FILTER 0x7fffffff
++#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
++#define DT_EXTRANUM 3
++
++
++#define DF_ORIGIN 0x00000001
++#define DF_SYMBOLIC 0x00000002
++#define DF_TEXTREL 0x00000004
++#define DF_BIND_NOW 0x00000008
++#define DF_STATIC_TLS 0x00000010
++
++
++
++#define DF_1_NOW 0x00000001
++#define DF_1_GLOBAL 0x00000002
++#define DF_1_GROUP 0x00000004
++#define DF_1_NODELETE 0x00000008
++#define DF_1_LOADFLTR 0x00000010
++#define DF_1_INITFIRST 0x00000020
++#define DF_1_NOOPEN 0x00000040
++#define DF_1_ORIGIN 0x00000080
++#define DF_1_DIRECT 0x00000100
++#define DF_1_TRANS 0x00000200
++#define DF_1_INTERPOSE 0x00000400
++#define DF_1_NODEFLIB 0x00000800
++#define DF_1_NODUMP 0x00001000
++#define DF_1_CONFALT 0x00002000
++#define DF_1_ENDFILTEE 0x00004000
++#define DF_1_DISPRELDNE 0x00008000
++#define DF_1_DISPRELPND 0x00010000
++#define DF_1_NODIRECT 0x00020000
++#define DF_1_IGNMULDEF 0x00040000
++#define DF_1_NOKSYMS 0x00080000
++#define DF_1_NOHDR 0x00100000
++#define DF_1_EDITED 0x00200000
++#define DF_1_NORELOC 0x00400000
++#define DF_1_SYMINTPOSE 0x00800000
++#define DF_1_GLOBAUDIT 0x01000000
++#define DF_1_SINGLETON 0x02000000
++
++#define DTF_1_PARINIT 0x00000001
++#define DTF_1_CONFEXP 0x00000002
++
++
++#define DF_P1_LAZYLOAD 0x00000001
++#define DF_P1_GROUPPERM 0x00000002
++
++
++
++
++typedef struct {
++ Elf32_Half vd_version;
++ Elf32_Half vd_flags;
++ Elf32_Half vd_ndx;
++ Elf32_Half vd_cnt;
++ Elf32_Word vd_hash;
++ Elf32_Word vd_aux;
++ Elf32_Word vd_next;
++} Elf32_Verdef;
++
++typedef struct {
++ Elf64_Half vd_version;
++ Elf64_Half vd_flags;
++ Elf64_Half vd_ndx;
++ Elf64_Half vd_cnt;
++ Elf64_Word vd_hash;
++ Elf64_Word vd_aux;
++ Elf64_Word vd_next;
++} Elf64_Verdef;
++
++
++
++#define VER_DEF_NONE 0
++#define VER_DEF_CURRENT 1
++#define VER_DEF_NUM 2
++
++
++#define VER_FLG_BASE 0x1
++#define VER_FLG_WEAK 0x2
++
++
++#define VER_NDX_LOCAL 0
++#define VER_NDX_GLOBAL 1
++#define VER_NDX_LORESERVE 0xff00
++#define VER_NDX_ELIMINATE 0xff01
++
++
++
++typedef struct {
++ Elf32_Word vda_name;
++ Elf32_Word vda_next;
++} Elf32_Verdaux;
++
++typedef struct {
++ Elf64_Word vda_name;
++ Elf64_Word vda_next;
++} Elf64_Verdaux;
++
++
++
++
++typedef struct {
++ Elf32_Half vn_version;
++ Elf32_Half vn_cnt;
++ Elf32_Word vn_file;
++ Elf32_Word vn_aux;
++ Elf32_Word vn_next;
++} Elf32_Verneed;
++
++typedef struct {
++ Elf64_Half vn_version;
++ Elf64_Half vn_cnt;
++ Elf64_Word vn_file;
++ Elf64_Word vn_aux;
++ Elf64_Word vn_next;
++} Elf64_Verneed;
++
++
++
++#define VER_NEED_NONE 0
++#define VER_NEED_CURRENT 1
++#define VER_NEED_NUM 2
++
++
++
++typedef struct {
++ Elf32_Word vna_hash;
++ Elf32_Half vna_flags;
++ Elf32_Half vna_other;
++ Elf32_Word vna_name;
++ Elf32_Word vna_next;
++} Elf32_Vernaux;
++
++typedef struct {
++ Elf64_Word vna_hash;
++ Elf64_Half vna_flags;
++ Elf64_Half vna_other;
++ Elf64_Word vna_name;
++ Elf64_Word vna_next;
++} Elf64_Vernaux;
++
++
++
++#define VER_FLG_WEAK 0x2
++
++
++
++typedef struct {
++ uint32_t a_type;
++ union {
++ uint32_t a_val;
++ } a_un;
++} Elf32_auxv_t;
++
++typedef struct {
++ uint64_t a_type;
++ union {
++ uint64_t a_val;
++ } a_un;
++} Elf64_auxv_t;
++
++
++
++#define AT_NULL 0
++#define AT_IGNORE 1
++#define AT_EXECFD 2
++#define AT_PHDR 3
++#define AT_PHENT 4
++#define AT_PHNUM 5
++#define AT_PAGESZ 6
++#define AT_BASE 7
++#define AT_FLAGS 8
++#define AT_ENTRY 9
++#define AT_NOTELF 10
++#define AT_UID 11
++#define AT_EUID 12
++#define AT_GID 13
++#define AT_EGID 14
++#define AT_CLKTCK 17
++
++
++#define AT_PLATFORM 15
++#define AT_HWCAP 16
++
++
++
++
++#define AT_FPUCW 18
++
++
++#define AT_DCACHEBSIZE 19
++#define AT_ICACHEBSIZE 20
++#define AT_UCACHEBSIZE 21
++
++
++
++#define AT_IGNOREPPC 22
++
++#define AT_SECURE 23
++
++#define AT_BASE_PLATFORM 24
++
++#define AT_RANDOM 25
++
++#define AT_HWCAP2 26
++
++#define AT_EXECFN 31
++
++
++
++#define AT_SYSINFO 32
++#define AT_SYSINFO_EHDR 33
++
++
++
++#define AT_L1I_CACHESHAPE 34
++#define AT_L1D_CACHESHAPE 35
++#define AT_L2_CACHESHAPE 36
++#define AT_L3_CACHESHAPE 37
++
++
++
++
++typedef struct {
++ Elf32_Word n_namesz;
++ Elf32_Word n_descsz;
++ Elf32_Word n_type;
++} Elf32_Nhdr;
++
++typedef struct {
++ Elf64_Word n_namesz;
++ Elf64_Word n_descsz;
++ Elf64_Word n_type;
++} Elf64_Nhdr;
++
++
++
++
++#define ELF_NOTE_SOLARIS "SUNW Solaris"
++
++
++#define ELF_NOTE_GNU "GNU"
++
++
++
++
++
++#define ELF_NOTE_PAGESIZE_HINT 1
++
++
++#define NT_GNU_ABI_TAG 1
++#define ELF_NOTE_ABI NT_GNU_ABI_TAG
++
++
++
++#define ELF_NOTE_OS_LINUX 0
++#define ELF_NOTE_OS_GNU 1
++#define ELF_NOTE_OS_SOLARIS2 2
++#define ELF_NOTE_OS_FREEBSD 3
++
++#define NT_GNU_BUILD_ID 3
++#define NT_GNU_GOLD_VERSION 4
++
++
++
++typedef struct {
++ Elf32_Xword m_value;
++ Elf32_Word m_info;
++ Elf32_Word m_poffset;
++ Elf32_Half m_repeat;
++ Elf32_Half m_stride;
++} Elf32_Move;
++
++typedef struct {
++ Elf64_Xword m_value;
++ Elf64_Xword m_info;
++ Elf64_Xword m_poffset;
++ Elf64_Half m_repeat;
++ Elf64_Half m_stride;
++} Elf64_Move;
++
++
++#define ELF32_M_SYM(info) ((info) >> 8)
++#define ELF32_M_SIZE(info) ((unsigned char) (info))
++#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
++
++#define ELF64_M_SYM(info) ELF32_M_SYM (info)
++#define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
++#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
++
++#define EF_CPU32 0x00810000
++
++#define R_68K_NONE 0
++#define R_68K_32 1
++#define R_68K_16 2
++#define R_68K_8 3
++#define R_68K_PC32 4
++#define R_68K_PC16 5
++#define R_68K_PC8 6
++#define R_68K_GOT32 7
++#define R_68K_GOT16 8
++#define R_68K_GOT8 9
++#define R_68K_GOT32O 10
++#define R_68K_GOT16O 11
++#define R_68K_GOT8O 12
++#define R_68K_PLT32 13
++#define R_68K_PLT16 14
++#define R_68K_PLT8 15
++#define R_68K_PLT32O 16
++#define R_68K_PLT16O 17
++#define R_68K_PLT8O 18
++#define R_68K_COPY 19
++#define R_68K_GLOB_DAT 20
++#define R_68K_JMP_SLOT 21
++#define R_68K_RELATIVE 22
++#define R_68K_NUM 23
++
++#define R_386_NONE 0
++#define R_386_32 1
++#define R_386_PC32 2
++#define R_386_GOT32 3
++#define R_386_PLT32 4
++#define R_386_COPY 5
++#define R_386_GLOB_DAT 6
++#define R_386_JMP_SLOT 7
++#define R_386_RELATIVE 8
++#define R_386_GOTOFF 9
++#define R_386_GOTPC 10
++#define R_386_32PLT 11
++#define R_386_TLS_TPOFF 14
++#define R_386_TLS_IE 15
++#define R_386_TLS_GOTIE 16
++#define R_386_TLS_LE 17
++#define R_386_TLS_GD 18
++#define R_386_TLS_LDM 19
++#define R_386_16 20
++#define R_386_PC16 21
++#define R_386_8 22
++#define R_386_PC8 23
++#define R_386_TLS_GD_32 24
++#define R_386_TLS_GD_PUSH 25
++#define R_386_TLS_GD_CALL 26
++#define R_386_TLS_GD_POP 27
++#define R_386_TLS_LDM_32 28
++#define R_386_TLS_LDM_PUSH 29
++#define R_386_TLS_LDM_CALL 30
++#define R_386_TLS_LDM_POP 31
++#define R_386_TLS_LDO_32 32
++#define R_386_TLS_IE_32 33
++#define R_386_TLS_LE_32 34
++#define R_386_TLS_DTPMOD32 35
++#define R_386_TLS_DTPOFF32 36
++#define R_386_TLS_TPOFF32 37
++#define R_386_SIZE32 38
++#define R_386_TLS_GOTDESC 39
++#define R_386_TLS_DESC_CALL 40
++#define R_386_TLS_DESC 41
++#define R_386_IRELATIVE 42
++#define R_386_NUM 43
++
++
++
++
++
++#define STT_SPARC_REGISTER 13
++
++
++
++#define EF_SPARCV9_MM 3
++#define EF_SPARCV9_TSO 0
++#define EF_SPARCV9_PSO 1
++#define EF_SPARCV9_RMO 2
++#define EF_SPARC_LEDATA 0x800000
++#define EF_SPARC_EXT_MASK 0xFFFF00
++#define EF_SPARC_32PLUS 0x000100
++#define EF_SPARC_SUN_US1 0x000200
++#define EF_SPARC_HAL_R1 0x000400
++#define EF_SPARC_SUN_US3 0x000800
++
++
++
++#define R_SPARC_NONE 0
++#define R_SPARC_8 1
++#define R_SPARC_16 2
++#define R_SPARC_32 3
++#define R_SPARC_DISP8 4
++#define R_SPARC_DISP16 5
++#define R_SPARC_DISP32 6
++#define R_SPARC_WDISP30 7
++#define R_SPARC_WDISP22 8
++#define R_SPARC_HI22 9
++#define R_SPARC_22 10
++#define R_SPARC_13 11
++#define R_SPARC_LO10 12
++#define R_SPARC_GOT10 13
++#define R_SPARC_GOT13 14
++#define R_SPARC_GOT22 15
++#define R_SPARC_PC10 16
++#define R_SPARC_PC22 17
++#define R_SPARC_WPLT30 18
++#define R_SPARC_COPY 19
++#define R_SPARC_GLOB_DAT 20
++#define R_SPARC_JMP_SLOT 21
++#define R_SPARC_RELATIVE 22
++#define R_SPARC_UA32 23
++
++
++
++#define R_SPARC_PLT32 24
++#define R_SPARC_HIPLT22 25
++#define R_SPARC_LOPLT10 26
++#define R_SPARC_PCPLT32 27
++#define R_SPARC_PCPLT22 28
++#define R_SPARC_PCPLT10 29
++#define R_SPARC_10 30
++#define R_SPARC_11 31
++#define R_SPARC_64 32
++#define R_SPARC_OLO10 33
++#define R_SPARC_HH22 34
++#define R_SPARC_HM10 35
++#define R_SPARC_LM22 36
++#define R_SPARC_PC_HH22 37
++#define R_SPARC_PC_HM10 38
++#define R_SPARC_PC_LM22 39
++#define R_SPARC_WDISP16 40
++#define R_SPARC_WDISP19 41
++#define R_SPARC_GLOB_JMP 42
++#define R_SPARC_7 43
++#define R_SPARC_5 44
++#define R_SPARC_6 45
++#define R_SPARC_DISP64 46
++#define R_SPARC_PLT64 47
++#define R_SPARC_HIX22 48
++#define R_SPARC_LOX10 49
++#define R_SPARC_H44 50
++#define R_SPARC_M44 51
++#define R_SPARC_L44 52
++#define R_SPARC_REGISTER 53
++#define R_SPARC_UA64 54
++#define R_SPARC_UA16 55
++#define R_SPARC_TLS_GD_HI22 56
++#define R_SPARC_TLS_GD_LO10 57
++#define R_SPARC_TLS_GD_ADD 58
++#define R_SPARC_TLS_GD_CALL 59
++#define R_SPARC_TLS_LDM_HI22 60
++#define R_SPARC_TLS_LDM_LO10 61
++#define R_SPARC_TLS_LDM_ADD 62
++#define R_SPARC_TLS_LDM_CALL 63
++#define R_SPARC_TLS_LDO_HIX22 64
++#define R_SPARC_TLS_LDO_LOX10 65
++#define R_SPARC_TLS_LDO_ADD 66
++#define R_SPARC_TLS_IE_HI22 67
++#define R_SPARC_TLS_IE_LO10 68
++#define R_SPARC_TLS_IE_LD 69
++#define R_SPARC_TLS_IE_LDX 70
++#define R_SPARC_TLS_IE_ADD 71
++#define R_SPARC_TLS_LE_HIX22 72
++#define R_SPARC_TLS_LE_LOX10 73
++#define R_SPARC_TLS_DTPMOD32 74
++#define R_SPARC_TLS_DTPMOD64 75
++#define R_SPARC_TLS_DTPOFF32 76
++#define R_SPARC_TLS_DTPOFF64 77
++#define R_SPARC_TLS_TPOFF32 78
++#define R_SPARC_TLS_TPOFF64 79
++#define R_SPARC_GOTDATA_HIX22 80
++#define R_SPARC_GOTDATA_LOX10 81
++#define R_SPARC_GOTDATA_OP_HIX22 82
++#define R_SPARC_GOTDATA_OP_LOX10 83
++#define R_SPARC_GOTDATA_OP 84
++#define R_SPARC_H34 85
++#define R_SPARC_SIZE32 86
++#define R_SPARC_SIZE64 87
++#define R_SPARC_GNU_VTINHERIT 250
++#define R_SPARC_GNU_VTENTRY 251
++#define R_SPARC_REV32 252
++
++#define R_SPARC_NUM 253
++
++
++
++#define DT_SPARC_REGISTER 0x70000001
++#define DT_SPARC_NUM 2
++
++
++#define EF_MIPS_NOREORDER 1
++#define EF_MIPS_PIC 2
++#define EF_MIPS_CPIC 4
++#define EF_MIPS_XGOT 8
++#define EF_MIPS_64BIT_WHIRL 16
++#define EF_MIPS_ABI2 32
++#define EF_MIPS_ABI_ON32 64
++#define EF_MIPS_ARCH 0xf0000000
++
++
++
++#define EF_MIPS_ARCH_1 0x00000000
++#define EF_MIPS_ARCH_2 0x10000000
++#define EF_MIPS_ARCH_3 0x20000000
++#define EF_MIPS_ARCH_4 0x30000000
++#define EF_MIPS_ARCH_5 0x40000000
++#define EF_MIPS_ARCH_32 0x50000000
++#define EF_MIPS_ARCH_64 0x60000000
++#define EF_MIPS_ARCH_32R2 0x70000000
++#define EF_MIPS_ARCH_64R2 0x80000000
++
++
++#define E_MIPS_ARCH_1 0x00000000
++#define E_MIPS_ARCH_2 0x10000000
++#define E_MIPS_ARCH_3 0x20000000
++#define E_MIPS_ARCH_4 0x30000000
++#define E_MIPS_ARCH_5 0x40000000
++#define E_MIPS_ARCH_32 0x50000000
++#define E_MIPS_ARCH_64 0x60000000
++
++
++
++#define SHN_MIPS_ACOMMON 0xff00
++#define SHN_MIPS_TEXT 0xff01
++#define SHN_MIPS_DATA 0xff02
++#define SHN_MIPS_SCOMMON 0xff03
++#define SHN_MIPS_SUNDEFINED 0xff04
++
++
++
++#define SHT_MIPS_LIBLIST 0x70000000
++#define SHT_MIPS_MSYM 0x70000001
++#define SHT_MIPS_CONFLICT 0x70000002
++#define SHT_MIPS_GPTAB 0x70000003
++#define SHT_MIPS_UCODE 0x70000004
++#define SHT_MIPS_DEBUG 0x70000005
++#define SHT_MIPS_REGINFO 0x70000006
++#define SHT_MIPS_PACKAGE 0x70000007
++#define SHT_MIPS_PACKSYM 0x70000008
++#define SHT_MIPS_RELD 0x70000009
++#define SHT_MIPS_IFACE 0x7000000b
++#define SHT_MIPS_CONTENT 0x7000000c
++#define SHT_MIPS_OPTIONS 0x7000000d
++#define SHT_MIPS_SHDR 0x70000010
++#define SHT_MIPS_FDESC 0x70000011
++#define SHT_MIPS_EXTSYM 0x70000012
++#define SHT_MIPS_DENSE 0x70000013
++#define SHT_MIPS_PDESC 0x70000014
++#define SHT_MIPS_LOCSYM 0x70000015
++#define SHT_MIPS_AUXSYM 0x70000016
++#define SHT_MIPS_OPTSYM 0x70000017
++#define SHT_MIPS_LOCSTR 0x70000018
++#define SHT_MIPS_LINE 0x70000019
++#define SHT_MIPS_RFDESC 0x7000001a
++#define SHT_MIPS_DELTASYM 0x7000001b
++#define SHT_MIPS_DELTAINST 0x7000001c
++#define SHT_MIPS_DELTACLASS 0x7000001d
++#define SHT_MIPS_DWARF 0x7000001e
++#define SHT_MIPS_DELTADECL 0x7000001f
++#define SHT_MIPS_SYMBOL_LIB 0x70000020
++#define SHT_MIPS_EVENTS 0x70000021
++#define SHT_MIPS_TRANSLATE 0x70000022
++#define SHT_MIPS_PIXIE 0x70000023
++#define SHT_MIPS_XLATE 0x70000024
++#define SHT_MIPS_XLATE_DEBUG 0x70000025
++#define SHT_MIPS_WHIRL 0x70000026
++#define SHT_MIPS_EH_REGION 0x70000027
++#define SHT_MIPS_XLATE_OLD 0x70000028
++#define SHT_MIPS_PDR_EXCEPTION 0x70000029
++
++
++
++#define SHF_MIPS_GPREL 0x10000000
++#define SHF_MIPS_MERGE 0x20000000
++#define SHF_MIPS_ADDR 0x40000000
++#define SHF_MIPS_STRINGS 0x80000000
++#define SHF_MIPS_NOSTRIP 0x08000000
++#define SHF_MIPS_LOCAL 0x04000000
++#define SHF_MIPS_NAMES 0x02000000
++#define SHF_MIPS_NODUPE 0x01000000
++
++
++
++
++
++#define STO_MIPS_DEFAULT 0x0
++#define STO_MIPS_INTERNAL 0x1
++#define STO_MIPS_HIDDEN 0x2
++#define STO_MIPS_PROTECTED 0x3
++#define STO_MIPS_PLT 0x8
++#define STO_MIPS_SC_ALIGN_UNUSED 0xff
++
++
++#define STB_MIPS_SPLIT_COMMON 13
++
++
++
++typedef union {
++ struct {
++ Elf32_Word gt_current_g_value;
++ Elf32_Word gt_unused;
++ } gt_header;
++ struct {
++ Elf32_Word gt_g_value;
++ Elf32_Word gt_bytes;
++ } gt_entry;
++} Elf32_gptab;
++
++
++
++typedef struct {
++ Elf32_Word ri_gprmask;
++ Elf32_Word ri_cprmask[4];
++ Elf32_Sword ri_gp_value;
++} Elf32_RegInfo;
++
++
++
++typedef struct {
++ unsigned char kind;
++
++ unsigned char size;
++ Elf32_Section section;
++
++ Elf32_Word info;
++} Elf_Options;
++
++
++
++#define ODK_NULL 0
++#define ODK_REGINFO 1
++#define ODK_EXCEPTIONS 2
++#define ODK_PAD 3
++#define ODK_HWPATCH 4
++#define ODK_FILL 5
++#define ODK_TAGS 6
++#define ODK_HWAND 7
++#define ODK_HWOR 8
++
++
++
++#define OEX_FPU_MIN 0x1f
++#define OEX_FPU_MAX 0x1f00
++#define OEX_PAGE0 0x10000
++#define OEX_SMM 0x20000
++#define OEX_FPDBUG 0x40000
++#define OEX_PRECISEFP OEX_FPDBUG
++#define OEX_DISMISS 0x80000
++
++#define OEX_FPU_INVAL 0x10
++#define OEX_FPU_DIV0 0x08
++#define OEX_FPU_OFLO 0x04
++#define OEX_FPU_UFLO 0x02
++#define OEX_FPU_INEX 0x01
++
++
++
++#define OHW_R4KEOP 0x1
++#define OHW_R8KPFETCH 0x2
++#define OHW_R5KEOP 0x4
++#define OHW_R5KCVTL 0x8
++
++#define OPAD_PREFIX 0x1
++#define OPAD_POSTFIX 0x2
++#define OPAD_SYMBOL 0x4
++
++
++
++typedef struct {
++ Elf32_Word hwp_flags1;
++ Elf32_Word hwp_flags2;
++} Elf_Options_Hw;
++
++
++
++#define OHWA0_R4KEOP_CHECKED 0x00000001
++#define OHWA1_R4KEOP_CLEAN 0x00000002
++
++
++
++#define R_MIPS_NONE 0
++#define R_MIPS_16 1
++#define R_MIPS_32 2
++#define R_MIPS_REL32 3
++#define R_MIPS_26 4
++#define R_MIPS_HI16 5
++#define R_MIPS_LO16 6
++#define R_MIPS_GPREL16 7
++#define R_MIPS_LITERAL 8
++#define R_MIPS_GOT16 9
++#define R_MIPS_PC16 10
++#define R_MIPS_CALL16 11
++#define R_MIPS_GPREL32 12
++
++#define R_MIPS_SHIFT5 16
++#define R_MIPS_SHIFT6 17
++#define R_MIPS_64 18
++#define R_MIPS_GOT_DISP 19
++#define R_MIPS_GOT_PAGE 20
++#define R_MIPS_GOT_OFST 21
++#define R_MIPS_GOT_HI16 22
++#define R_MIPS_GOT_LO16 23
++#define R_MIPS_SUB 24
++#define R_MIPS_INSERT_A 25
++#define R_MIPS_INSERT_B 26
++#define R_MIPS_DELETE 27
++#define R_MIPS_HIGHER 28
++#define R_MIPS_HIGHEST 29
++#define R_MIPS_CALL_HI16 30
++#define R_MIPS_CALL_LO16 31
++#define R_MIPS_SCN_DISP 32
++#define R_MIPS_REL16 33
++#define R_MIPS_ADD_IMMEDIATE 34
++#define R_MIPS_PJUMP 35
++#define R_MIPS_RELGOT 36
++#define R_MIPS_JALR 37
++#define R_MIPS_TLS_DTPMOD32 38
++#define R_MIPS_TLS_DTPREL32 39
++#define R_MIPS_TLS_DTPMOD64 40
++#define R_MIPS_TLS_DTPREL64 41
++#define R_MIPS_TLS_GD 42
++#define R_MIPS_TLS_LDM 43
++#define R_MIPS_TLS_DTPREL_HI16 44
++#define R_MIPS_TLS_DTPREL_LO16 45
++#define R_MIPS_TLS_GOTTPREL 46
++#define R_MIPS_TLS_TPREL32 47
++#define R_MIPS_TLS_TPREL64 48
++#define R_MIPS_TLS_TPREL_HI16 49
++#define R_MIPS_TLS_TPREL_LO16 50
++#define R_MIPS_GLOB_DAT 51
++#define R_MIPS_COPY 126
++#define R_MIPS_JUMP_SLOT 127
++
++#define R_MIPS_NUM 128
++
++
++
++#define PT_MIPS_REGINFO 0x70000000
++#define PT_MIPS_RTPROC 0x70000001
++#define PT_MIPS_OPTIONS 0x70000002
++
++
++
++#define PF_MIPS_LOCAL 0x10000000
++
++
++
++#define DT_MIPS_RLD_VERSION 0x70000001
++#define DT_MIPS_TIME_STAMP 0x70000002
++#define DT_MIPS_ICHECKSUM 0x70000003
++#define DT_MIPS_IVERSION 0x70000004
++#define DT_MIPS_FLAGS 0x70000005
++#define DT_MIPS_BASE_ADDRESS 0x70000006
++#define DT_MIPS_MSYM 0x70000007
++#define DT_MIPS_CONFLICT 0x70000008
++#define DT_MIPS_LIBLIST 0x70000009
++#define DT_MIPS_LOCAL_GOTNO 0x7000000a
++#define DT_MIPS_CONFLICTNO 0x7000000b
++#define DT_MIPS_LIBLISTNO 0x70000010
++#define DT_MIPS_SYMTABNO 0x70000011
++#define DT_MIPS_UNREFEXTNO 0x70000012
++#define DT_MIPS_GOTSYM 0x70000013
++#define DT_MIPS_HIPAGENO 0x70000014
++#define DT_MIPS_RLD_MAP 0x70000016
++#define DT_MIPS_DELTA_CLASS 0x70000017
++#define DT_MIPS_DELTA_CLASS_NO 0x70000018
++
++#define DT_MIPS_DELTA_INSTANCE 0x70000019
++#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
++
++#define DT_MIPS_DELTA_RELOC 0x7000001b
++#define DT_MIPS_DELTA_RELOC_NO 0x7000001c
++
++#define DT_MIPS_DELTA_SYM 0x7000001d
++
++#define DT_MIPS_DELTA_SYM_NO 0x7000001e
++
++#define DT_MIPS_DELTA_CLASSSYM 0x70000020
++
++#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
++
++#define DT_MIPS_CXX_FLAGS 0x70000022
++#define DT_MIPS_PIXIE_INIT 0x70000023
++#define DT_MIPS_SYMBOL_LIB 0x70000024
++#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
++#define DT_MIPS_LOCAL_GOTIDX 0x70000026
++#define DT_MIPS_HIDDEN_GOTIDX 0x70000027
++#define DT_MIPS_PROTECTED_GOTIDX 0x70000028
++#define DT_MIPS_OPTIONS 0x70000029
++#define DT_MIPS_INTERFACE 0x7000002a
++#define DT_MIPS_DYNSTR_ALIGN 0x7000002b
++#define DT_MIPS_INTERFACE_SIZE 0x7000002c
++#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
++
++#define DT_MIPS_PERF_SUFFIX 0x7000002e
++
++#define DT_MIPS_COMPACT_SIZE 0x7000002f
++#define DT_MIPS_GP_VALUE 0x70000030
++#define DT_MIPS_AUX_DYNAMIC 0x70000031
++
++#define DT_MIPS_PLTGOT 0x70000032
++
++#define DT_MIPS_RWPLT 0x70000034
++#define DT_MIPS_NUM 0x35
++
++
++
++#define RHF_NONE 0
++#define RHF_QUICKSTART (1 << 0)
++#define RHF_NOTPOT (1 << 1)
++#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
++#define RHF_NO_MOVE (1 << 3)
++#define RHF_SGI_ONLY (1 << 4)
++#define RHF_GUARANTEE_INIT (1 << 5)
++#define RHF_DELTA_C_PLUS_PLUS (1 << 6)
++#define RHF_GUARANTEE_START_INIT (1 << 7)
++#define RHF_PIXIE (1 << 8)
++#define RHF_DEFAULT_DELAY_LOAD (1 << 9)
++#define RHF_REQUICKSTART (1 << 10)
++#define RHF_REQUICKSTARTED (1 << 11)
++#define RHF_CORD (1 << 12)
++#define RHF_NO_UNRES_UNDEF (1 << 13)
++#define RHF_RLD_ORDER_SAFE (1 << 14)
++
++
++
++typedef struct
++{
++ Elf32_Word l_name;
++ Elf32_Word l_time_stamp;
++ Elf32_Word l_checksum;
++ Elf32_Word l_version;
++ Elf32_Word l_flags;
++} Elf32_Lib;
++
++typedef struct
++{
++ Elf64_Word l_name;
++ Elf64_Word l_time_stamp;
++ Elf64_Word l_checksum;
++ Elf64_Word l_version;
++ Elf64_Word l_flags;
++} Elf64_Lib;
++
++
++
++
++#define LL_NONE 0
++#define LL_EXACT_MATCH (1 << 0)
++#define LL_IGNORE_INT_VER (1 << 1)
++#define LL_REQUIRE_MINOR (1 << 2)
++#define LL_EXPORTS (1 << 3)
++#define LL_DELAY_LOAD (1 << 4)
++#define LL_DELTA (1 << 5)
++
++
++
++typedef Elf32_Addr Elf32_Conflict;
++
++
++
++
++
++
++#define EF_PARISC_TRAPNIL 0x00010000
++#define EF_PARISC_EXT 0x00020000
++#define EF_PARISC_LSB 0x00040000
++#define EF_PARISC_WIDE 0x00080000
++#define EF_PARISC_NO_KABP 0x00100000
++
++#define EF_PARISC_LAZYSWAP 0x00400000
++#define EF_PARISC_ARCH 0x0000ffff
++
++
++
++#define EFA_PARISC_1_0 0x020b
++#define EFA_PARISC_1_1 0x0210
++#define EFA_PARISC_2_0 0x0214
++
++
++
++#define SHN_PARISC_ANSI_COMMON 0xff00
++
++#define SHN_PARISC_HUGE_COMMON 0xff01
++
++
++
++#define SHT_PARISC_EXT 0x70000000
++#define SHT_PARISC_UNWIND 0x70000001
++#define SHT_PARISC_DOC 0x70000002
++
++
++
++#define SHF_PARISC_SHORT 0x20000000
++#define SHF_PARISC_HUGE 0x40000000
++#define SHF_PARISC_SBP 0x80000000
++
++
++
++#define STT_PARISC_MILLICODE 13
++
++#define STT_HP_OPAQUE (STT_LOOS + 0x1)
++#define STT_HP_STUB (STT_LOOS + 0x2)
++
++
++
++#define R_PARISC_NONE 0
++#define R_PARISC_DIR32 1
++#define R_PARISC_DIR21L 2
++#define R_PARISC_DIR17R 3
++#define R_PARISC_DIR17F 4
++#define R_PARISC_DIR14R 6
++#define R_PARISC_PCREL32 9
++#define R_PARISC_PCREL21L 10
++#define R_PARISC_PCREL17R 11
++#define R_PARISC_PCREL17F 12
++#define R_PARISC_PCREL14R 14
++#define R_PARISC_DPREL21L 18
++#define R_PARISC_DPREL14R 22
++#define R_PARISC_GPREL21L 26
++#define R_PARISC_GPREL14R 30
++#define R_PARISC_LTOFF21L 34
++#define R_PARISC_LTOFF14R 38
++#define R_PARISC_SECREL32 41
++#define R_PARISC_SEGBASE 48
++#define R_PARISC_SEGREL32 49
++#define R_PARISC_PLTOFF21L 50
++#define R_PARISC_PLTOFF14R 54
++#define R_PARISC_LTOFF_FPTR32 57
++#define R_PARISC_LTOFF_FPTR21L 58
++#define R_PARISC_LTOFF_FPTR14R 62
++#define R_PARISC_FPTR64 64
++#define R_PARISC_PLABEL32 65
++#define R_PARISC_PLABEL21L 66
++#define R_PARISC_PLABEL14R 70
++#define R_PARISC_PCREL64 72
++#define R_PARISC_PCREL22F 74
++#define R_PARISC_PCREL14WR 75
++#define R_PARISC_PCREL14DR 76
++#define R_PARISC_PCREL16F 77
++#define R_PARISC_PCREL16WF 78
++#define R_PARISC_PCREL16DF 79
++#define R_PARISC_DIR64 80
++#define R_PARISC_DIR14WR 83
++#define R_PARISC_DIR14DR 84
++#define R_PARISC_DIR16F 85
++#define R_PARISC_DIR16WF 86
++#define R_PARISC_DIR16DF 87
++#define R_PARISC_GPREL64 88
++#define R_PARISC_GPREL14WR 91
++#define R_PARISC_GPREL14DR 92
++#define R_PARISC_GPREL16F 93
++#define R_PARISC_GPREL16WF 94
++#define R_PARISC_GPREL16DF 95
++#define R_PARISC_LTOFF64 96
++#define R_PARISC_LTOFF14WR 99
++#define R_PARISC_LTOFF14DR 100
++#define R_PARISC_LTOFF16F 101
++#define R_PARISC_LTOFF16WF 102
++#define R_PARISC_LTOFF16DF 103
++#define R_PARISC_SECREL64 104
++#define R_PARISC_SEGREL64 112
++#define R_PARISC_PLTOFF14WR 115
++#define R_PARISC_PLTOFF14DR 116
++#define R_PARISC_PLTOFF16F 117
++#define R_PARISC_PLTOFF16WF 118
++#define R_PARISC_PLTOFF16DF 119
++#define R_PARISC_LTOFF_FPTR64 120
++#define R_PARISC_LTOFF_FPTR14WR 123
++#define R_PARISC_LTOFF_FPTR14DR 124
++#define R_PARISC_LTOFF_FPTR16F 125
++#define R_PARISC_LTOFF_FPTR16WF 126
++#define R_PARISC_LTOFF_FPTR16DF 127
++#define R_PARISC_LORESERVE 128
++#define R_PARISC_COPY 128
++#define R_PARISC_IPLT 129
++#define R_PARISC_EPLT 130
++#define R_PARISC_TPREL32 153
++#define R_PARISC_TPREL21L 154
++#define R_PARISC_TPREL14R 158
++#define R_PARISC_LTOFF_TP21L 162
++#define R_PARISC_LTOFF_TP14R 166
++#define R_PARISC_LTOFF_TP14F 167
++#define R_PARISC_TPREL64 216
++#define R_PARISC_TPREL14WR 219
++#define R_PARISC_TPREL14DR 220
++#define R_PARISC_TPREL16F 221
++#define R_PARISC_TPREL16WF 222
++#define R_PARISC_TPREL16DF 223
++#define R_PARISC_LTOFF_TP64 224
++#define R_PARISC_LTOFF_TP14WR 227
++#define R_PARISC_LTOFF_TP14DR 228
++#define R_PARISC_LTOFF_TP16F 229
++#define R_PARISC_LTOFF_TP16WF 230
++#define R_PARISC_LTOFF_TP16DF 231
++#define R_PARISC_GNU_VTENTRY 232
++#define R_PARISC_GNU_VTINHERIT 233
++#define R_PARISC_TLS_GD21L 234
++#define R_PARISC_TLS_GD14R 235
++#define R_PARISC_TLS_GDCALL 236
++#define R_PARISC_TLS_LDM21L 237
++#define R_PARISC_TLS_LDM14R 238
++#define R_PARISC_TLS_LDMCALL 239
++#define R_PARISC_TLS_LDO21L 240
++#define R_PARISC_TLS_LDO14R 241
++#define R_PARISC_TLS_DTPMOD32 242
++#define R_PARISC_TLS_DTPMOD64 243
++#define R_PARISC_TLS_DTPOFF32 244
++#define R_PARISC_TLS_DTPOFF64 245
++#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L
++#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R
++#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L
++#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R
++#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32
++#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64
++#define R_PARISC_HIRESERVE 255
++
++
++
++#define PT_HP_TLS (PT_LOOS + 0x0)
++#define PT_HP_CORE_NONE (PT_LOOS + 0x1)
++#define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
++#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
++#define PT_HP_CORE_COMM (PT_LOOS + 0x4)
++#define PT_HP_CORE_PROC (PT_LOOS + 0x5)
++#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
++#define PT_HP_CORE_STACK (PT_LOOS + 0x7)
++#define PT_HP_CORE_SHM (PT_LOOS + 0x8)
++#define PT_HP_CORE_MMF (PT_LOOS + 0x9)
++#define PT_HP_PARALLEL (PT_LOOS + 0x10)
++#define PT_HP_FASTBIND (PT_LOOS + 0x11)
++#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
++#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
++#define PT_HP_STACK (PT_LOOS + 0x14)
++
++#define PT_PARISC_ARCHEXT 0x70000000
++#define PT_PARISC_UNWIND 0x70000001
++
++
++
++#define PF_PARISC_SBP 0x08000000
++
++#define PF_HP_PAGE_SIZE 0x00100000
++#define PF_HP_FAR_SHARED 0x00200000
++#define PF_HP_NEAR_SHARED 0x00400000
++#define PF_HP_CODE 0x01000000
++#define PF_HP_MODIFY 0x02000000
++#define PF_HP_LAZYSWAP 0x04000000
++#define PF_HP_SBP 0x08000000
++
++
++
++
++
++
++#define EF_ALPHA_32BIT 1
++#define EF_ALPHA_CANRELAX 2
++
++
++
++
++#define SHT_ALPHA_DEBUG 0x70000001
++#define SHT_ALPHA_REGINFO 0x70000002
++
++
++
++#define SHF_ALPHA_GPREL 0x10000000
++
++
++#define STO_ALPHA_NOPV 0x80
++#define STO_ALPHA_STD_GPLOAD 0x88
++
++
++
++#define R_ALPHA_NONE 0
++#define R_ALPHA_REFLONG 1
++#define R_ALPHA_REFQUAD 2
++#define R_ALPHA_GPREL32 3
++#define R_ALPHA_LITERAL 4
++#define R_ALPHA_LITUSE 5
++#define R_ALPHA_GPDISP 6
++#define R_ALPHA_BRADDR 7
++#define R_ALPHA_HINT 8
++#define R_ALPHA_SREL16 9
++#define R_ALPHA_SREL32 10
++#define R_ALPHA_SREL64 11
++#define R_ALPHA_GPRELHIGH 17
++#define R_ALPHA_GPRELLOW 18
++#define R_ALPHA_GPREL16 19
++#define R_ALPHA_COPY 24
++#define R_ALPHA_GLOB_DAT 25
++#define R_ALPHA_JMP_SLOT 26
++#define R_ALPHA_RELATIVE 27
++#define R_ALPHA_TLS_GD_HI 28
++#define R_ALPHA_TLSGD 29
++#define R_ALPHA_TLS_LDM 30
++#define R_ALPHA_DTPMOD64 31
++#define R_ALPHA_GOTDTPREL 32
++#define R_ALPHA_DTPREL64 33
++#define R_ALPHA_DTPRELHI 34
++#define R_ALPHA_DTPRELLO 35
++#define R_ALPHA_DTPREL16 36
++#define R_ALPHA_GOTTPREL 37
++#define R_ALPHA_TPREL64 38
++#define R_ALPHA_TPRELHI 39
++#define R_ALPHA_TPRELLO 40
++#define R_ALPHA_TPREL16 41
++
++#define R_ALPHA_NUM 46
++
++
++#define LITUSE_ALPHA_ADDR 0
++#define LITUSE_ALPHA_BASE 1
++#define LITUSE_ALPHA_BYTOFF 2
++#define LITUSE_ALPHA_JSR 3
++#define LITUSE_ALPHA_TLS_GD 4
++#define LITUSE_ALPHA_TLS_LDM 5
++
++
++#define DT_ALPHA_PLTRO (DT_LOPROC + 0)
++#define DT_ALPHA_NUM 1
++
++
++
++
++#define EF_PPC_EMB 0x80000000
++
++
++#define EF_PPC_RELOCATABLE 0x00010000
++#define EF_PPC_RELOCATABLE_LIB 0x00008000
++
++
++
++#define R_PPC_NONE 0
++#define R_PPC_ADDR32 1
++#define R_PPC_ADDR24 2
++#define R_PPC_ADDR16 3
++#define R_PPC_ADDR16_LO 4
++#define R_PPC_ADDR16_HI 5
++#define R_PPC_ADDR16_HA 6
++#define R_PPC_ADDR14 7
++#define R_PPC_ADDR14_BRTAKEN 8
++#define R_PPC_ADDR14_BRNTAKEN 9
++#define R_PPC_REL24 10
++#define R_PPC_REL14 11
++#define R_PPC_REL14_BRTAKEN 12
++#define R_PPC_REL14_BRNTAKEN 13
++#define R_PPC_GOT16 14
++#define R_PPC_GOT16_LO 15
++#define R_PPC_GOT16_HI 16
++#define R_PPC_GOT16_HA 17
++#define R_PPC_PLTREL24 18
++#define R_PPC_COPY 19
++#define R_PPC_GLOB_DAT 20
++#define R_PPC_JMP_SLOT 21
++#define R_PPC_RELATIVE 22
++#define R_PPC_LOCAL24PC 23
++#define R_PPC_UADDR32 24
++#define R_PPC_UADDR16 25
++#define R_PPC_REL32 26
++#define R_PPC_PLT32 27
++#define R_PPC_PLTREL32 28
++#define R_PPC_PLT16_LO 29
++#define R_PPC_PLT16_HI 30
++#define R_PPC_PLT16_HA 31
++#define R_PPC_SDAREL16 32
++#define R_PPC_SECTOFF 33
++#define R_PPC_SECTOFF_LO 34
++#define R_PPC_SECTOFF_HI 35
++#define R_PPC_SECTOFF_HA 36
++
++
++#define R_PPC_TLS 67
++#define R_PPC_DTPMOD32 68
++#define R_PPC_TPREL16 69
++#define R_PPC_TPREL16_LO 70
++#define R_PPC_TPREL16_HI 71
++#define R_PPC_TPREL16_HA 72
++#define R_PPC_TPREL32 73
++#define R_PPC_DTPREL16 74
++#define R_PPC_DTPREL16_LO 75
++#define R_PPC_DTPREL16_HI 76
++#define R_PPC_DTPREL16_HA 77
++#define R_PPC_DTPREL32 78
++#define R_PPC_GOT_TLSGD16 79
++#define R_PPC_GOT_TLSGD16_LO 80
++#define R_PPC_GOT_TLSGD16_HI 81
++#define R_PPC_GOT_TLSGD16_HA 82
++#define R_PPC_GOT_TLSLD16 83
++#define R_PPC_GOT_TLSLD16_LO 84
++#define R_PPC_GOT_TLSLD16_HI 85
++#define R_PPC_GOT_TLSLD16_HA 86
++#define R_PPC_GOT_TPREL16 87
++#define R_PPC_GOT_TPREL16_LO 88
++#define R_PPC_GOT_TPREL16_HI 89
++#define R_PPC_GOT_TPREL16_HA 90
++#define R_PPC_GOT_DTPREL16 91
++#define R_PPC_GOT_DTPREL16_LO 92
++#define R_PPC_GOT_DTPREL16_HI 93
++#define R_PPC_GOT_DTPREL16_HA 94
++
++
++
++#define R_PPC_EMB_NADDR32 101
++#define R_PPC_EMB_NADDR16 102
++#define R_PPC_EMB_NADDR16_LO 103
++#define R_PPC_EMB_NADDR16_HI 104
++#define R_PPC_EMB_NADDR16_HA 105
++#define R_PPC_EMB_SDAI16 106
++#define R_PPC_EMB_SDA2I16 107
++#define R_PPC_EMB_SDA2REL 108
++#define R_PPC_EMB_SDA21 109
++#define R_PPC_EMB_MRKREF 110
++#define R_PPC_EMB_RELSEC16 111
++#define R_PPC_EMB_RELST_LO 112
++#define R_PPC_EMB_RELST_HI 113
++#define R_PPC_EMB_RELST_HA 114
++#define R_PPC_EMB_BIT_FLD 115
++#define R_PPC_EMB_RELSDA 116
++
++
++#define R_PPC_DIAB_SDA21_LO 180
++#define R_PPC_DIAB_SDA21_HI 181
++#define R_PPC_DIAB_SDA21_HA 182
++#define R_PPC_DIAB_RELSDA_LO 183
++#define R_PPC_DIAB_RELSDA_HI 184
++#define R_PPC_DIAB_RELSDA_HA 185
++
++
++#define R_PPC_IRELATIVE 248
++
++
++#define R_PPC_REL16 249
++#define R_PPC_REL16_LO 250
++#define R_PPC_REL16_HI 251
++#define R_PPC_REL16_HA 252
++
++
++
++#define R_PPC_TOC16 255
++
++
++#define DT_PPC_GOT (DT_LOPROC + 0)
++#define DT_PPC_NUM 1
++
++
++#define R_PPC64_NONE R_PPC_NONE
++#define R_PPC64_ADDR32 R_PPC_ADDR32
++#define R_PPC64_ADDR24 R_PPC_ADDR24
++#define R_PPC64_ADDR16 R_PPC_ADDR16
++#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO
++#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI
++#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA
++#define R_PPC64_ADDR14 R_PPC_ADDR14
++#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN
++#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
++#define R_PPC64_REL24 R_PPC_REL24
++#define R_PPC64_REL14 R_PPC_REL14
++#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN
++#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN
++#define R_PPC64_GOT16 R_PPC_GOT16
++#define R_PPC64_GOT16_LO R_PPC_GOT16_LO
++#define R_PPC64_GOT16_HI R_PPC_GOT16_HI
++#define R_PPC64_GOT16_HA R_PPC_GOT16_HA
++
++#define R_PPC64_COPY R_PPC_COPY
++#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT
++#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT
++#define R_PPC64_RELATIVE R_PPC_RELATIVE
++
++#define R_PPC64_UADDR32 R_PPC_UADDR32
++#define R_PPC64_UADDR16 R_PPC_UADDR16
++#define R_PPC64_REL32 R_PPC_REL32
++#define R_PPC64_PLT32 R_PPC_PLT32
++#define R_PPC64_PLTREL32 R_PPC_PLTREL32
++#define R_PPC64_PLT16_LO R_PPC_PLT16_LO
++#define R_PPC64_PLT16_HI R_PPC_PLT16_HI
++#define R_PPC64_PLT16_HA R_PPC_PLT16_HA
++
++#define R_PPC64_SECTOFF R_PPC_SECTOFF
++#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO
++#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI
++#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA
++#define R_PPC64_ADDR30 37
++#define R_PPC64_ADDR64 38
++#define R_PPC64_ADDR16_HIGHER 39
++#define R_PPC64_ADDR16_HIGHERA 40
++#define R_PPC64_ADDR16_HIGHEST 41
++#define R_PPC64_ADDR16_HIGHESTA 42
++#define R_PPC64_UADDR64 43
++#define R_PPC64_REL64 44
++#define R_PPC64_PLT64 45
++#define R_PPC64_PLTREL64 46
++#define R_PPC64_TOC16 47
++#define R_PPC64_TOC16_LO 48
++#define R_PPC64_TOC16_HI 49
++#define R_PPC64_TOC16_HA 50
++#define R_PPC64_TOC 51
++#define R_PPC64_PLTGOT16 52
++#define R_PPC64_PLTGOT16_LO 53
++#define R_PPC64_PLTGOT16_HI 54
++#define R_PPC64_PLTGOT16_HA 55
++
++#define R_PPC64_ADDR16_DS 56
++#define R_PPC64_ADDR16_LO_DS 57
++#define R_PPC64_GOT16_DS 58
++#define R_PPC64_GOT16_LO_DS 59
++#define R_PPC64_PLT16_LO_DS 60
++#define R_PPC64_SECTOFF_DS 61
++#define R_PPC64_SECTOFF_LO_DS 62
++#define R_PPC64_TOC16_DS 63
++#define R_PPC64_TOC16_LO_DS 64
++#define R_PPC64_PLTGOT16_DS 65
++#define R_PPC64_PLTGOT16_LO_DS 66
++
++
++#define R_PPC64_TLS 67
++#define R_PPC64_DTPMOD64 68
++#define R_PPC64_TPREL16 69
++#define R_PPC64_TPREL16_LO 70
++#define R_PPC64_TPREL16_HI 71
++#define R_PPC64_TPREL16_HA 72
++#define R_PPC64_TPREL64 73
++#define R_PPC64_DTPREL16 74
++#define R_PPC64_DTPREL16_LO 75
++#define R_PPC64_DTPREL16_HI 76
++#define R_PPC64_DTPREL16_HA 77
++#define R_PPC64_DTPREL64 78
++#define R_PPC64_GOT_TLSGD16 79
++#define R_PPC64_GOT_TLSGD16_LO 80
++#define R_PPC64_GOT_TLSGD16_HI 81
++#define R_PPC64_GOT_TLSGD16_HA 82
++#define R_PPC64_GOT_TLSLD16 83
++#define R_PPC64_GOT_TLSLD16_LO 84
++#define R_PPC64_GOT_TLSLD16_HI 85
++#define R_PPC64_GOT_TLSLD16_HA 86
++#define R_PPC64_GOT_TPREL16_DS 87
++#define R_PPC64_GOT_TPREL16_LO_DS 88
++#define R_PPC64_GOT_TPREL16_HI 89
++#define R_PPC64_GOT_TPREL16_HA 90
++#define R_PPC64_GOT_DTPREL16_DS 91
++#define R_PPC64_GOT_DTPREL16_LO_DS 92
++#define R_PPC64_GOT_DTPREL16_HI 93
++#define R_PPC64_GOT_DTPREL16_HA 94
++#define R_PPC64_TPREL16_DS 95
++#define R_PPC64_TPREL16_LO_DS 96
++#define R_PPC64_TPREL16_HIGHER 97
++#define R_PPC64_TPREL16_HIGHERA 98
++#define R_PPC64_TPREL16_HIGHEST 99
++#define R_PPC64_TPREL16_HIGHESTA 100
++#define R_PPC64_DTPREL16_DS 101
++#define R_PPC64_DTPREL16_LO_DS 102
++#define R_PPC64_DTPREL16_HIGHER 103
++#define R_PPC64_DTPREL16_HIGHERA 104
++#define R_PPC64_DTPREL16_HIGHEST 105
++#define R_PPC64_DTPREL16_HIGHESTA 106
++
++
++#define R_PPC64_JMP_IREL 247
++#define R_PPC64_IRELATIVE 248
++#define R_PPC64_REL16 249
++#define R_PPC64_REL16_LO 250
++#define R_PPC64_REL16_HI 251
++#define R_PPC64_REL16_HA 252
++
++
++#define DT_PPC64_GLINK (DT_LOPROC + 0)
++#define DT_PPC64_OPD (DT_LOPROC + 1)
++#define DT_PPC64_OPDSZ (DT_LOPROC + 2)
++#define DT_PPC64_NUM 3
++
++
++
++
++
++#define EF_ARM_RELEXEC 0x01
++#define EF_ARM_HASENTRY 0x02
++#define EF_ARM_INTERWORK 0x04
++#define EF_ARM_APCS_26 0x08
++#define EF_ARM_APCS_FLOAT 0x10
++#define EF_ARM_PIC 0x20
++#define EF_ARM_ALIGN8 0x40
++#define EF_ARM_NEW_ABI 0x80
++#define EF_ARM_OLD_ABI 0x100
++#define EF_ARM_SOFT_FLOAT 0x200
++#define EF_ARM_VFP_FLOAT 0x400
++#define EF_ARM_MAVERICK_FLOAT 0x800
++
++#define EF_ARM_ABI_FLOAT_SOFT 0x200
++#define EF_ARM_ABI_FLOAT_HARD 0x400
++
++
++#define EF_ARM_SYMSARESORTED 0x04
++#define EF_ARM_DYNSYMSUSESEGIDX 0x08
++#define EF_ARM_MAPSYMSFIRST 0x10
++#define EF_ARM_EABIMASK 0XFF000000
++
++
++#define EF_ARM_BE8 0x00800000
++#define EF_ARM_LE8 0x00400000
++
++#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
++#define EF_ARM_EABI_UNKNOWN 0x00000000
++#define EF_ARM_EABI_VER1 0x01000000
++#define EF_ARM_EABI_VER2 0x02000000
++#define EF_ARM_EABI_VER3 0x03000000
++#define EF_ARM_EABI_VER4 0x04000000
++#define EF_ARM_EABI_VER5 0x05000000
++
++
++#define STT_ARM_TFUNC STT_LOPROC
++#define STT_ARM_16BIT STT_HIPROC
++
++
++#define SHF_ARM_ENTRYSECT 0x10000000
++#define SHF_ARM_COMDEF 0x80000000
++
++
++
++#define PF_ARM_SB 0x10000000
++
++#define PF_ARM_PI 0x20000000
++#define PF_ARM_ABS 0x40000000
++
++
++#define PT_ARM_EXIDX (PT_LOPROC + 1)
++
++
++#define SHT_ARM_EXIDX (SHT_LOPROC + 1)
++#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2)
++#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3)
++
++
++#define R_AARCH64_NONE 0
++#define R_AARCH64_ABS64 257
++#define R_AARCH64_ABS32 258
++#define R_AARCH64_COPY 1024
++#define R_AARCH64_GLOB_DAT 1025
++#define R_AARCH64_JUMP_SLOT 1026
++#define R_AARCH64_RELATIVE 1027
++#define R_AARCH64_TLS_DTPMOD64 1028
++#define R_AARCH64_TLS_DTPREL64 1029
++#define R_AARCH64_TLS_TPREL64 1030
++#define R_AARCH64_TLSDESC 1031
++
++
++#define R_ARM_NONE 0
++#define R_ARM_PC24 1
++#define R_ARM_ABS32 2
++#define R_ARM_REL32 3
++#define R_ARM_PC13 4
++#define R_ARM_ABS16 5
++#define R_ARM_ABS12 6
++#define R_ARM_THM_ABS5 7
++#define R_ARM_ABS8 8
++#define R_ARM_SBREL32 9
++#define R_ARM_THM_PC22 10
++#define R_ARM_THM_PC8 11
++#define R_ARM_AMP_VCALL9 12
++#define R_ARM_TLS_DESC 13
++#define R_ARM_THM_SWI8 14
++#define R_ARM_XPC25 15
++#define R_ARM_THM_XPC22 16
++#define R_ARM_TLS_DTPMOD32 17
++#define R_ARM_TLS_DTPOFF32 18
++#define R_ARM_TLS_TPOFF32 19
++#define R_ARM_COPY 20
++#define R_ARM_GLOB_DAT 21
++#define R_ARM_JUMP_SLOT 22
++#define R_ARM_RELATIVE 23
++#define R_ARM_GOTOFF 24
++#define R_ARM_GOTPC 25
++#define R_ARM_GOT32 26
++#define R_ARM_PLT32 27
++#define R_ARM_CALL 28
++#define R_ARM_JUMP24 29
++#define R_ARM_THM_JUMP24 30
++#define R_ARM_BASE_ABS 31
++#define R_ARM_ALU_PCREL_7_0 32
++#define R_ARM_ALU_PCREL_15_8 33
++#define R_ARM_ALU_PCREL_23_15 34
++#define R_ARM_LDR_SBREL_11_0 35
++#define R_ARM_ALU_SBREL_19_12 36
++#define R_ARM_ALU_SBREL_27_20 37
++#define R_ARM_TARGET1 38
++#define R_ARM_SBREL31 39
++#define R_ARM_V4BX 40
++#define R_ARM_TARGET2 41
++#define R_ARM_PREL31 42
++#define R_ARM_MOVW_ABS_NC 43
++#define R_ARM_MOVT_ABS 44
++#define R_ARM_MOVW_PREL_NC 45
++#define R_ARM_MOVT_PREL 46
++#define R_ARM_THM_MOVW_ABS_NC 47
++#define R_ARM_THM_MOVT_ABS 48
++#define R_ARM_THM_MOVW_PREL_NC 49
++#define R_ARM_THM_MOVT_PREL 50
++#define R_ARM_THM_JUMP19 51
++#define R_ARM_THM_JUMP6 52
++#define R_ARM_THM_ALU_PREL_11_0 53
++#define R_ARM_THM_PC12 54
++#define R_ARM_ABS32_NOI 55
++#define R_ARM_REL32_NOI 56
++#define R_ARM_ALU_PC_G0_NC 57
++#define R_ARM_ALU_PC_G0 58
++#define R_ARM_ALU_PC_G1_NC 59
++#define R_ARM_ALU_PC_G1 60
++#define R_ARM_ALU_PC_G2 61
++#define R_ARM_LDR_PC_G1 62
++#define R_ARM_LDR_PC_G2 63
++#define R_ARM_LDRS_PC_G0 64
++#define R_ARM_LDRS_PC_G1 65
++#define R_ARM_LDRS_PC_G2 66
++#define R_ARM_LDC_PC_G0 67
++#define R_ARM_LDC_PC_G1 68
++#define R_ARM_LDC_PC_G2 69
++#define R_ARM_ALU_SB_G0_NC 70
++#define R_ARM_ALU_SB_G0 71
++#define R_ARM_ALU_SB_G1_NC 72
++#define R_ARM_ALU_SB_G1 73
++#define R_ARM_ALU_SB_G2 74
++#define R_ARM_LDR_SB_G0 75
++#define R_ARM_LDR_SB_G1 76
++#define R_ARM_LDR_SB_G2 77
++#define R_ARM_LDRS_SB_G0 78
++#define R_ARM_LDRS_SB_G1 79
++#define R_ARM_LDRS_SB_G2 80
++#define R_ARM_LDC_SB_G0 81
++#define R_ARM_LDC_SB_G1 82
++#define R_ARM_LDC_SB_G2 83
++#define R_ARM_MOVW_BREL_NC 84
++#define R_ARM_MOVT_BREL 85
++#define R_ARM_MOVW_BREL 86
++#define R_ARM_THM_MOVW_BREL_NC 87
++#define R_ARM_THM_MOVT_BREL 88
++#define R_ARM_THM_MOVW_BREL 89
++#define R_ARM_TLS_GOTDESC 90
++#define R_ARM_TLS_CALL 91
++#define R_ARM_TLS_DESCSEQ 92
++#define R_ARM_THM_TLS_CALL 93
++#define R_ARM_PLT32_ABS 94
++#define R_ARM_GOT_ABS 95
++#define R_ARM_GOT_PREL 96
++#define R_ARM_GOT_BREL12 97
++#define R_ARM_GOTOFF12 98
++#define R_ARM_GOTRELAX 99
++#define R_ARM_GNU_VTENTRY 100
++#define R_ARM_GNU_VTINHERIT 101
++#define R_ARM_THM_PC11 102
++#define R_ARM_THM_PC9 103
++#define R_ARM_TLS_GD32 104
++
++#define R_ARM_TLS_LDM32 105
++
++#define R_ARM_TLS_LDO32 106
++
++#define R_ARM_TLS_IE32 107
++
++#define R_ARM_TLS_LE32 108
++#define R_ARM_TLS_LDO12 109
++#define R_ARM_TLS_LE12 110
++#define R_ARM_TLS_IE12GP 111
++#define R_ARM_ME_TOO 128
++#define R_ARM_THM_TLS_DESCSEQ 129
++#define R_ARM_THM_TLS_DESCSEQ16 129
++#define R_ARM_THM_TLS_DESCSEQ32 130
++#define R_ARM_THM_GOT_BREL12 131
++#define R_ARM_IRELATIVE 160
++#define R_ARM_RXPC25 249
++#define R_ARM_RSBREL32 250
++#define R_ARM_THM_RPC22 251
++#define R_ARM_RREL32 252
++#define R_ARM_RABS22 253
++#define R_ARM_RPC24 254
++#define R_ARM_RBASE 255
++
++#define R_ARM_NUM 256
++
++
++
++
++#define EF_IA_64_MASKOS 0x0000000f
++#define EF_IA_64_ABI64 0x00000010
++#define EF_IA_64_ARCH 0xff000000
++
++
++#define PT_IA_64_ARCHEXT (PT_LOPROC + 0)
++#define PT_IA_64_UNWIND (PT_LOPROC + 1)
++#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12)
++#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13)
++#define PT_IA_64_HP_STACK (PT_LOOS + 0x14)
++
++
++#define PF_IA_64_NORECOV 0x80000000
++
++
++#define SHT_IA_64_EXT (SHT_LOPROC + 0)
++#define SHT_IA_64_UNWIND (SHT_LOPROC + 1)
++
++
++#define SHF_IA_64_SHORT 0x10000000
++#define SHF_IA_64_NORECOV 0x20000000
++
++
++#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
++#define DT_IA_64_NUM 1
++
++
++#define R_IA64_NONE 0x00
++#define R_IA64_IMM14 0x21
++#define R_IA64_IMM22 0x22
++#define R_IA64_IMM64 0x23
++#define R_IA64_DIR32MSB 0x24
++#define R_IA64_DIR32LSB 0x25
++#define R_IA64_DIR64MSB 0x26
++#define R_IA64_DIR64LSB 0x27
++#define R_IA64_GPREL22 0x2a
++#define R_IA64_GPREL64I 0x2b
++#define R_IA64_GPREL32MSB 0x2c
++#define R_IA64_GPREL32LSB 0x2d
++#define R_IA64_GPREL64MSB 0x2e
++#define R_IA64_GPREL64LSB 0x2f
++#define R_IA64_LTOFF22 0x32
++#define R_IA64_LTOFF64I 0x33
++#define R_IA64_PLTOFF22 0x3a
++#define R_IA64_PLTOFF64I 0x3b
++#define R_IA64_PLTOFF64MSB 0x3e
++#define R_IA64_PLTOFF64LSB 0x3f
++#define R_IA64_FPTR64I 0x43
++#define R_IA64_FPTR32MSB 0x44
++#define R_IA64_FPTR32LSB 0x45
++#define R_IA64_FPTR64MSB 0x46
++#define R_IA64_FPTR64LSB 0x47
++#define R_IA64_PCREL60B 0x48
++#define R_IA64_PCREL21B 0x49
++#define R_IA64_PCREL21M 0x4a
++#define R_IA64_PCREL21F 0x4b
++#define R_IA64_PCREL32MSB 0x4c
++#define R_IA64_PCREL32LSB 0x4d
++#define R_IA64_PCREL64MSB 0x4e
++#define R_IA64_PCREL64LSB 0x4f
++#define R_IA64_LTOFF_FPTR22 0x52
++#define R_IA64_LTOFF_FPTR64I 0x53
++#define R_IA64_LTOFF_FPTR32MSB 0x54
++#define R_IA64_LTOFF_FPTR32LSB 0x55
++#define R_IA64_LTOFF_FPTR64MSB 0x56
++#define R_IA64_LTOFF_FPTR64LSB 0x57
++#define R_IA64_SEGREL32MSB 0x5c
++#define R_IA64_SEGREL32LSB 0x5d
++#define R_IA64_SEGREL64MSB 0x5e
++#define R_IA64_SEGREL64LSB 0x5f
++#define R_IA64_SECREL32MSB 0x64
++#define R_IA64_SECREL32LSB 0x65
++#define R_IA64_SECREL64MSB 0x66
++#define R_IA64_SECREL64LSB 0x67
++#define R_IA64_REL32MSB 0x6c
++#define R_IA64_REL32LSB 0x6d
++#define R_IA64_REL64MSB 0x6e
++#define R_IA64_REL64LSB 0x6f
++#define R_IA64_LTV32MSB 0x74
++#define R_IA64_LTV32LSB 0x75
++#define R_IA64_LTV64MSB 0x76
++#define R_IA64_LTV64LSB 0x77
++#define R_IA64_PCREL21BI 0x79
++#define R_IA64_PCREL22 0x7a
++#define R_IA64_PCREL64I 0x7b
++#define R_IA64_IPLTMSB 0x80
++#define R_IA64_IPLTLSB 0x81
++#define R_IA64_COPY 0x84
++#define R_IA64_SUB 0x85
++#define R_IA64_LTOFF22X 0x86
++#define R_IA64_LDXMOV 0x87
++#define R_IA64_TPREL14 0x91
++#define R_IA64_TPREL22 0x92
++#define R_IA64_TPREL64I 0x93
++#define R_IA64_TPREL64MSB 0x96
++#define R_IA64_TPREL64LSB 0x97
++#define R_IA64_LTOFF_TPREL22 0x9a
++#define R_IA64_DTPMOD64MSB 0xa6
++#define R_IA64_DTPMOD64LSB 0xa7
++#define R_IA64_LTOFF_DTPMOD22 0xaa
++#define R_IA64_DTPREL14 0xb1
++#define R_IA64_DTPREL22 0xb2
++#define R_IA64_DTPREL64I 0xb3
++#define R_IA64_DTPREL32MSB 0xb4
++#define R_IA64_DTPREL32LSB 0xb5
++#define R_IA64_DTPREL64MSB 0xb6
++#define R_IA64_DTPREL64LSB 0xb7
++#define R_IA64_LTOFF_DTPREL22 0xba
++
++
++
++
++#define R_SH_NONE 0
++#define R_SH_DIR32 1
++#define R_SH_REL32 2
++#define R_SH_DIR8WPN 3
++#define R_SH_IND12W 4
++#define R_SH_DIR8WPL 5
++#define R_SH_DIR8WPZ 6
++#define R_SH_DIR8BP 7
++#define R_SH_DIR8W 8
++#define R_SH_DIR8L 9
++#define R_SH_SWITCH16 25
++#define R_SH_SWITCH32 26
++#define R_SH_USES 27
++#define R_SH_COUNT 28
++#define R_SH_ALIGN 29
++#define R_SH_CODE 30
++#define R_SH_DATA 31
++#define R_SH_LABEL 32
++#define R_SH_SWITCH8 33
++#define R_SH_GNU_VTINHERIT 34
++#define R_SH_GNU_VTENTRY 35
++#define R_SH_TLS_GD_32 144
++#define R_SH_TLS_LD_32 145
++#define R_SH_TLS_LDO_32 146
++#define R_SH_TLS_IE_32 147
++#define R_SH_TLS_LE_32 148
++#define R_SH_TLS_DTPMOD32 149
++#define R_SH_TLS_DTPOFF32 150
++#define R_SH_TLS_TPOFF32 151
++#define R_SH_GOT32 160
++#define R_SH_PLT32 161
++#define R_SH_COPY 162
++#define R_SH_GLOB_DAT 163
++#define R_SH_JMP_SLOT 164
++#define R_SH_RELATIVE 165
++#define R_SH_GOTOFF 166
++#define R_SH_GOTPC 167
++
++#define R_SH_NUM 256
++
++
++
++#define R_390_NONE 0
++#define R_390_8 1
++#define R_390_12 2
++#define R_390_16 3
++#define R_390_32 4
++#define R_390_PC32 5
++#define R_390_GOT12 6
++#define R_390_GOT32 7
++#define R_390_PLT32 8
++#define R_390_COPY 9
++#define R_390_GLOB_DAT 10
++#define R_390_JMP_SLOT 11
++#define R_390_RELATIVE 12
++#define R_390_GOTOFF32 13
++#define R_390_GOTPC 14
++#define R_390_GOT16 15
++#define R_390_PC16 16
++#define R_390_PC16DBL 17
++#define R_390_PLT16DBL 18
++#define R_390_PC32DBL 19
++#define R_390_PLT32DBL 20
++#define R_390_GOTPCDBL 21
++#define R_390_64 22
++#define R_390_PC64 23
++#define R_390_GOT64 24
++#define R_390_PLT64 25
++#define R_390_GOTENT 26
++#define R_390_GOTOFF16 27
++#define R_390_GOTOFF64 28
++#define R_390_GOTPLT12 29
++#define R_390_GOTPLT16 30
++#define R_390_GOTPLT32 31
++#define R_390_GOTPLT64 32
++#define R_390_GOTPLTENT 33
++#define R_390_PLTOFF16 34
++#define R_390_PLTOFF32 35
++#define R_390_PLTOFF64 36
++#define R_390_TLS_LOAD 37
++#define R_390_TLS_GDCALL 38
++
++#define R_390_TLS_LDCALL 39
++
++#define R_390_TLS_GD32 40
++
++#define R_390_TLS_GD64 41
++
++#define R_390_TLS_GOTIE12 42
++
++#define R_390_TLS_GOTIE32 43
++
++#define R_390_TLS_GOTIE64 44
++
++#define R_390_TLS_LDM32 45
++
++#define R_390_TLS_LDM64 46
++
++#define R_390_TLS_IE32 47
++
++#define R_390_TLS_IE64 48
++
++#define R_390_TLS_IEENT 49
++
++#define R_390_TLS_LE32 50
++
++#define R_390_TLS_LE64 51
++
++#define R_390_TLS_LDO32 52
++
++#define R_390_TLS_LDO64 53
++
++#define R_390_TLS_DTPMOD 54
++#define R_390_TLS_DTPOFF 55
++#define R_390_TLS_TPOFF 56
++
++#define R_390_20 57
++#define R_390_GOT20 58
++#define R_390_GOTPLT20 59
++#define R_390_TLS_GOTIE20 60
++
++
++#define R_390_NUM 61
++
++
++
++#define R_CRIS_NONE 0
++#define R_CRIS_8 1
++#define R_CRIS_16 2
++#define R_CRIS_32 3
++#define R_CRIS_8_PCREL 4
++#define R_CRIS_16_PCREL 5
++#define R_CRIS_32_PCREL 6
++#define R_CRIS_GNU_VTINHERIT 7
++#define R_CRIS_GNU_VTENTRY 8
++#define R_CRIS_COPY 9
++#define R_CRIS_GLOB_DAT 10
++#define R_CRIS_JUMP_SLOT 11
++#define R_CRIS_RELATIVE 12
++#define R_CRIS_16_GOT 13
++#define R_CRIS_32_GOT 14
++#define R_CRIS_16_GOTPLT 15
++#define R_CRIS_32_GOTPLT 16
++#define R_CRIS_32_GOTREL 17
++#define R_CRIS_32_PLT_GOTREL 18
++#define R_CRIS_32_PLT_PCREL 19
++
++#define R_CRIS_NUM 20
++
++
++
++#define R_X86_64_NONE 0
++#define R_X86_64_64 1
++#define R_X86_64_PC32 2
++#define R_X86_64_GOT32 3
++#define R_X86_64_PLT32 4
++#define R_X86_64_COPY 5
++#define R_X86_64_GLOB_DAT 6
++#define R_X86_64_JUMP_SLOT 7
++#define R_X86_64_RELATIVE 8
++#define R_X86_64_GOTPCREL 9
++
++#define R_X86_64_32 10
++#define R_X86_64_32S 11
++#define R_X86_64_16 12
++#define R_X86_64_PC16 13
++#define R_X86_64_8 14
++#define R_X86_64_PC8 15
++#define R_X86_64_DTPMOD64 16
++#define R_X86_64_DTPOFF64 17
++#define R_X86_64_TPOFF64 18
++#define R_X86_64_TLSGD 19
++
++#define R_X86_64_TLSLD 20
++
++#define R_X86_64_DTPOFF32 21
++#define R_X86_64_GOTTPOFF 22
++
++#define R_X86_64_TPOFF32 23
++#define R_X86_64_PC64 24
++#define R_X86_64_GOTOFF64 25
++#define R_X86_64_GOTPC32 26
++#define R_X86_64_GOT64 27
++#define R_X86_64_GOTPCREL64 28
++#define R_X86_64_GOTPC64 29
++#define R_X86_64_GOTPLT64 30
++#define R_X86_64_PLTOFF64 31
++#define R_X86_64_SIZE32 32
++#define R_X86_64_SIZE64 33
++
++#define R_X86_64_GOTPC32_TLSDESC 34
++#define R_X86_64_TLSDESC_CALL 35
++
++#define R_X86_64_TLSDESC 36
++#define R_X86_64_IRELATIVE 37
++#define R_X86_64_RELATIVE64 38
++#define R_X86_64_NUM 39
++
++
++
++#define R_MN10300_NONE 0
++#define R_MN10300_32 1
++#define R_MN10300_16 2
++#define R_MN10300_8 3
++#define R_MN10300_PCREL32 4
++#define R_MN10300_PCREL16 5
++#define R_MN10300_PCREL8 6
++#define R_MN10300_GNU_VTINHERIT 7
++#define R_MN10300_GNU_VTENTRY 8
++#define R_MN10300_24 9
++#define R_MN10300_GOTPC32 10
++#define R_MN10300_GOTPC16 11
++#define R_MN10300_GOTOFF32 12
++#define R_MN10300_GOTOFF24 13
++#define R_MN10300_GOTOFF16 14
++#define R_MN10300_PLT32 15
++#define R_MN10300_PLT16 16
++#define R_MN10300_GOT32 17
++#define R_MN10300_GOT24 18
++#define R_MN10300_GOT16 19
++#define R_MN10300_COPY 20
++#define R_MN10300_GLOB_DAT 21
++#define R_MN10300_JMP_SLOT 22
++#define R_MN10300_RELATIVE 23
++
++#define R_MN10300_NUM 24
++
++
++
++#define R_M32R_NONE 0
++#define R_M32R_16 1
++#define R_M32R_32 2
++#define R_M32R_24 3
++#define R_M32R_10_PCREL 4
++#define R_M32R_18_PCREL 5
++#define R_M32R_26_PCREL 6
++#define R_M32R_HI16_ULO 7
++#define R_M32R_HI16_SLO 8
++#define R_M32R_LO16 9
++#define R_M32R_SDA16 10
++#define R_M32R_GNU_VTINHERIT 11
++#define R_M32R_GNU_VTENTRY 12
++
++#define R_M32R_16_RELA 33
++#define R_M32R_32_RELA 34
++#define R_M32R_24_RELA 35
++#define R_M32R_10_PCREL_RELA 36
++#define R_M32R_18_PCREL_RELA 37
++#define R_M32R_26_PCREL_RELA 38
++#define R_M32R_HI16_ULO_RELA 39
++#define R_M32R_HI16_SLO_RELA 40
++#define R_M32R_LO16_RELA 41
++#define R_M32R_SDA16_RELA 42
++#define R_M32R_RELA_GNU_VTINHERIT 43
++#define R_M32R_RELA_GNU_VTENTRY 44
++#define R_M32R_REL32 45
++
++#define R_M32R_GOT24 48
++#define R_M32R_26_PLTREL 49
++#define R_M32R_COPY 50
++#define R_M32R_GLOB_DAT 51
++#define R_M32R_JMP_SLOT 52
++#define R_M32R_RELATIVE 53
++#define R_M32R_GOTOFF 54
++#define R_M32R_GOTPC24 55
++#define R_M32R_GOT16_HI_ULO 56
++
++#define R_M32R_GOT16_HI_SLO 57
++
++#define R_M32R_GOT16_LO 58
++#define R_M32R_GOTPC_HI_ULO 59
++
++#define R_M32R_GOTPC_HI_SLO 60
++
++#define R_M32R_GOTPC_LO 61
++
++#define R_M32R_GOTOFF_HI_ULO 62
++
++#define R_M32R_GOTOFF_HI_SLO 63
++
++#define R_M32R_GOTOFF_LO 64
++#define R_M32R_NUM 256
++
++#define R_MICROBLAZE_NONE 0
++#define R_MICROBLAZE_32 1
++#define R_MICROBLAZE_32_PCREL 2
++#define R_MICROBLAZE_64_PCREL 3
++#define R_MICROBLAZE_32_PCREL_LO 4
++#define R_MICROBLAZE_64 5
++#define R_MICROBLAZE_32_LO 6
++#define R_MICROBLAZE_SRO32 7
++#define R_MICROBLAZE_SRW32 8
++#define R_MICROBLAZE_64_NONE 9
++#define R_MICROBLAZE_32_SYM_OP_SYM 10
++#define R_MICROBLAZE_GNU_VTINHERIT 11
++#define R_MICROBLAZE_GNU_VTENTRY 12
++#define R_MICROBLAZE_GOTPC_64 13
++#define R_MICROBLAZE_GOT_64 14
++#define R_MICROBLAZE_PLT_64 15
++#define R_MICROBLAZE_REL 16
++#define R_MICROBLAZE_JUMP_SLOT 17
++#define R_MICROBLAZE_GLOB_DAT 18
++#define R_MICROBLAZE_GOTOFF_64 19
++#define R_MICROBLAZE_GOTOFF_32 20
++#define R_MICROBLAZE_COPY 21
++#define R_MICROBLAZE_TLS 22
++#define R_MICROBLAZE_TLSGD 23
++#define R_MICROBLAZE_TLSLD 24
++#define R_MICROBLAZE_TLSDTPMOD32 25
++#define R_MICROBLAZE_TLSDTPREL32 26
++#define R_MICROBLAZE_TLSDTPREL64 27
++#define R_MICROBLAZE_TLSGOTTPREL32 28
++#define R_MICROBLAZE_TLSTPREL32 29
++
++#ifdef __cplusplus
++}
++#endif
++
++
++#endif
diff --git a/target/linux/patches/5.4.272/sh4.patch b/target/linux/patches/5.4.272/sh4.patch
new file mode 100644
index 000000000..8ae79d49d
--- /dev/null
+++ b/target/linux/patches/5.4.272/sh4.patch
@@ -0,0 +1,11 @@
+diff -Nur linux-5.4.69.orig/arch/sh/boot/compressed/vmlinux.scr linux-5.4.69/arch/sh/boot/compressed/vmlinux.scr
+--- linux-5.4.69.orig/arch/sh/boot/compressed/vmlinux.scr 2020-10-01 13:19:27.000000000 +0200
++++ linux-5.4.69/arch/sh/boot/compressed/vmlinux.scr 2020-10-31 07:13:51.213954737 +0100
+@@ -1,6 +1,6 @@
+ SECTIONS
+ {
+- .rodata..compressed : {
++ .rodata..compressed : ALIGN(8) {
+ input_len = .;
+ LONG(input_data_end - input_data) input_data = .;
+ *(.data)
diff --git a/target/linux/patches/5.4.272/startup.patch b/target/linux/patches/5.4.272/startup.patch
new file mode 100644
index 000000000..081aa103a
--- /dev/null
+++ b/target/linux/patches/5.4.272/startup.patch
@@ -0,0 +1,25 @@
+diff -Nur linux-5.4.147.orig/init/initramfs.c linux-5.4.147/init/initramfs.c
+--- linux-5.4.147.orig/init/initramfs.c 2021-09-16 12:56:14.000000000 +0200
++++ linux-5.4.147/init/initramfs.c 2021-09-16 16:11:25.493140211 +0200
+@@ -674,6 +674,9 @@
+ initrd_start = 0;
+ initrd_end = 0;
+
++#ifdef CONFIG_DEVTMPFS_MOUNT
++ devtmpfs_mount("dev");
++#endif
+ flush_delayed_fput();
+ return 0;
+ }
+diff -Nur linux-5.4.147.orig/init/main.c linux-5.4.147/init/main.c
+--- linux-5.4.147.orig/init/main.c 2021-09-16 12:56:14.000000000 +0200
++++ linux-5.4.147/init/main.c 2021-09-16 16:11:25.497140211 +0200
+@@ -1198,6 +1198,8 @@
+ if (ksys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
+ pr_err("Warning: unable to open an initial console.\n");
+
++ printk(KERN_WARNING "Starting Linux (built with OpenADK).\n");
++
+ (void) ksys_dup(0);
+ (void) ksys_dup(0);
+ /*
diff --git a/target/linux/patches/59aeb16c7f1254f1383476956dda0766d10c918a/disable-gcc-plugins.patch b/target/linux/patches/59aeb16c7f1254f1383476956dda0766d10c918a/disable-gcc-plugins.patch
new file mode 100644
index 000000000..271fc5402
--- /dev/null
+++ b/target/linux/patches/59aeb16c7f1254f1383476956dda0766d10c918a/disable-gcc-plugins.patch
@@ -0,0 +1,22 @@
+diff -Nur linux-59aeb16c7f1254f1383476956dda0766d10c918a.orig/arch/arm/Kconfig linux-59aeb16c7f1254f1383476956dda0766d10c918a/arch/arm/Kconfig
+--- linux-59aeb16c7f1254f1383476956dda0766d10c918a.orig/arch/arm/Kconfig 2022-01-21 19:27:36.000000000 +0100
++++ linux-59aeb16c7f1254f1383476956dda0766d10c918a/arch/arm/Kconfig 2022-02-13 02:06:15.880669581 +0100
+@@ -88,7 +88,6 @@
+ select HAVE_FUNCTION_GRAPH_TRACER if !THUMB2_KERNEL && !CC_IS_CLANG
+ select HAVE_FUNCTION_TRACER if !XIP_KERNEL
+ select HAVE_FUTEX_CMPXCHG if FUTEX
+- select HAVE_GCC_PLUGINS
+ select HAVE_HW_BREAKPOINT if PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)
+ select HAVE_IDE if PCI || ISA || PCMCIA
+ select HAVE_IRQ_TIME_ACCOUNTING
+diff -Nur linux-59aeb16c7f1254f1383476956dda0766d10c918a.orig/arch/arm64/Kconfig linux-59aeb16c7f1254f1383476956dda0766d10c918a/arch/arm64/Kconfig
+--- linux-59aeb16c7f1254f1383476956dda0766d10c918a.orig/arch/arm64/Kconfig 2022-01-21 19:27:37.000000000 +0100
++++ linux-59aeb16c7f1254f1383476956dda0766d10c918a/arch/arm64/Kconfig 2022-02-13 02:06:27.852961034 +0100
+@@ -165,7 +165,6 @@
+ select HAVE_FUNCTION_TRACER
+ select HAVE_FUNCTION_ERROR_INJECTION
+ select HAVE_FUNCTION_GRAPH_TRACER
+- select HAVE_GCC_PLUGINS
+ select HAVE_HW_BREAKPOINT if PERF_EVENTS
+ select HAVE_IRQ_TIME_ACCOUNTING
+ select HAVE_NMI
diff --git a/target/linux/patches/59aeb16c7f1254f1383476956dda0766d10c918a/localversion.patch b/target/linux/patches/59aeb16c7f1254f1383476956dda0766d10c918a/localversion.patch
new file mode 100644
index 000000000..b4b4b95d7
--- /dev/null
+++ b/target/linux/patches/59aeb16c7f1254f1383476956dda0766d10c918a/localversion.patch
@@ -0,0 +1,18 @@
+diff -Nur linux-59aeb16c7f1254f1383476956dda0766d10c918a.orig/arch/arm/configs/bcm2711_defconfig linux-59aeb16c7f1254f1383476956dda0766d10c918a/arch/arm/configs/bcm2711_defconfig
+--- linux-59aeb16c7f1254f1383476956dda0766d10c918a.orig/arch/arm/configs/bcm2711_defconfig 2022-01-21 19:27:36.000000000 +0100
++++ linux-59aeb16c7f1254f1383476956dda0766d10c918a/arch/arm/configs/bcm2711_defconfig 2022-02-15 12:41:31.879194595 +0100
+@@ -1,4 +1,4 @@
+-CONFIG_LOCALVERSION="-v7l"
++CONFIG_LOCALVERSION=""
+ # CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SYSVIPC=y
+ CONFIG_POSIX_MQUEUE=y
+diff -Nur linux-59aeb16c7f1254f1383476956dda0766d10c918a.orig/arch/arm64/configs/bcm2711_defconfig linux-59aeb16c7f1254f1383476956dda0766d10c918a/arch/arm64/configs/bcm2711_defconfig
+--- linux-59aeb16c7f1254f1383476956dda0766d10c918a.orig/arch/arm64/configs/bcm2711_defconfig 2022-01-21 19:27:37.000000000 +0100
++++ linux-59aeb16c7f1254f1383476956dda0766d10c918a/arch/arm64/configs/bcm2711_defconfig 2022-02-15 12:41:11.014686670 +0100
+@@ -1,4 +1,4 @@
+-CONFIG_LOCALVERSION="-v8"
++CONFIG_LOCALVERSION=""
+ # CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SYSVIPC=y
+ CONFIG_POSIX_MQUEUE=y
diff --git a/target/linux/patches/6.1.82/armnommu-fix-thread-registers.patch b/target/linux/patches/6.1.82/armnommu-fix-thread-registers.patch
new file mode 100644
index 000000000..8ab2196dc
--- /dev/null
+++ b/target/linux/patches/6.1.82/armnommu-fix-thread-registers.patch
@@ -0,0 +1,57 @@
+From 1410ebe685f13c1699a16bf147ae1332e7fd1983 Mon Sep 17 00:00:00 2001
+From: Greg Ungerer <gerg@kernel.org>
+Date: Thu, 20 Apr 2023 09:52:08 +1000
+Subject: [PATCH] ARM: start_thread: restore registers on ELF load for noMMU
+
+The binfmt_elf-fdpic loader is capable of loading constant displacement
+ELF format binaries (like those compiled -pie) on noMMU systems as well
+as elf-fdpic format binaries. The traditional ELF loader cannot be
+enabled on noMMU systems.
+
+Commit 5e588114329c ("ARM: start_thread(): don't always clear all regs")
+fixed the start_thread() code so that it maintains the required
+elf-fdpic registers through to the new process, but it only does that if
+current has its personality FDPIC_FUNCPTRS bit set. That is true for
+elf-fdpic format binaries but will not be true for non-fdpic ELF
+binaries.
+
+Modify the test of the FDPIC_FUNCPTRS personality bit to also carry out
+the register restore if this is a noMMU system. This is not perfect,
+since it will also preserve these registers on noMMU systems for all
+binary format types (could be flat format for example). That won't break
+anything, but it is potentially leaking some information into the new
+process. But for the noMMU case we need those start time registers set to
+be able to finalize the runtime loading of the -pie style ELF binary
+(carry out its segment and dynamic relocation processing).
+
+Unfortunately the FDPIC_FUNCPTRS flag cannot just be enabled for all
+elf-fdpic loaded binaries. That personality bit is used for other things
+like the controlling the changed behavior for signal handling.
+
+There is no change in behavior for normal ELF loading on MMU systems.
+A -pie style ELF binary built for noMMU systems can be load and run using
+the usual ELF loader on an MMU system (elf-fdpic loader not required in
+this case).
+
+Signed-off-by: Greg Ungerer <gerg@kernel.org>
+---
+ arch/arm/include/asm/processor.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h
+index 326864f79d18..5074cc3ae4e1 100644
+--- a/arch/arm/include/asm/processor.h
++++ b/arch/arm/include/asm/processor.h
+@@ -60,7 +60,8 @@ static inline void arch_thread_struct_whitelist(unsigned long *offset,
+ } \
+ memset(regs->uregs, 0, sizeof(regs->uregs)); \
+ if (IS_ENABLED(CONFIG_BINFMT_ELF_FDPIC) && \
+- current->personality & FDPIC_FUNCPTRS) { \
++ ((! IS_ENABLED(CONFIG_MMU)) || \
++ current->personality & FDPIC_FUNCPTRS)) { \
+ regs->ARM_r7 = r7; \
+ regs->ARM_r8 = r8; \
+ regs->ARM_r9 = r9; \
+--
+2.25.1
+
diff --git a/target/linux/patches/6.1.82/armnommu-versatile.patch b/target/linux/patches/6.1.82/armnommu-versatile.patch
new file mode 100644
index 000000000..f8f10f50b
--- /dev/null
+++ b/target/linux/patches/6.1.82/armnommu-versatile.patch
@@ -0,0 +1,101 @@
+From 77c038d93769c92ef54cdbb50388564d1b37987b Mon Sep 17 00:00:00 2001
+From: Greg Ungerer <gerg@kernel.org>
+Date: Fri, 23 Sep 2016 13:37:34 +1000
+Subject: [PATCH] ARM: versatile: support configuring versatile machine for no-MMU
+
+Allow the arm versatile machine to be configured for no-MMU operation.
+
+Older kernels had the ability to build the versatile machine with the MMU
+disabled (!CONFIG_MMU). Recent changes to convert the versatile machine
+to device tree lost this ability. (Although older kernels could be built
+they did not run due to a bug in the IO_ADDRESS() mapping on this machine).
+
+The motivation for this is that the versatile machine is well supported
+in qemu. And this provides an excellent platform for development and
+testing no-MMU support on ARM in general.
+
+This patch adds a versatile platform selection in the upper level arm
+system type menu - where it appeared in older kernel versions - when
+configuring for the no-MMU case. There is no visible change to the way
+versatile is selected for the MMU enabled case.
+
+Signed-off-by: Greg Ungerer <gerg@kernel.org>
+---
+ arch/arm/Kconfig | 13 ++++++++++++-
+ arch/arm/include/asm/mach/map.h | 1 +
+ arch/arm/mach-versatile/Kconfig | 2 +-
+ arch/arm/mach-versatile/versatile.c | 4 ++++
+ 4 files changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/mach-versatile/versatile.c b/arch/arm/mach-versatile/versatile.c
+index 02ba68abe533..835b51bc597b 100644
+--- a/arch/arm/mach-versatile/versatile.c
++++ b/arch/arm/mach-versatile/versatile.c
+@@ -22,7 +22,11 @@
+ #include <asm/mach/map.h>
+
+ /* macro to get at MMIO space when running virtually */
++#ifdef CONFIG_MMU
+ #define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
++#else
++#define IO_ADDRESS(x) (x)
++#endif
+ #define __io_address(n) ((void __iomem __force *)IO_ADDRESS(n))
+
+ /*
+diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
+index 2b8970d8e5a2..41844ab6aec5 100644
+--- a/arch/arm/include/asm/mach/map.h
++++ b/arch/arm/include/asm/mach/map.h
+@@ -60,6 +60,7 @@ extern int ioremap_page(unsigned long virt, unsigned long phys,
+ #else
+ #define iotable_init(map,num) do { } while (0)
+ #define vm_reserve_area_early(a,s,c) do { } while (0)
++#define debug_ll_io_init() do { } while (0)
+ #endif
+
+ #endif
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index e24a9820e12f..342e1efa583a 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -307,12 +307,23 @@ config MMU
+ Select if you want MMU-based virtualised addressing space
+ support by paged memory management. If unsure, say 'Y'.
+
++choice
++ prompt "ARM system type"
++ depends on !MMU
++ default ARM_SINGLE_ARMV7M
++
+ config ARM_SINGLE_ARMV7M
+- def_bool !MMU
++ bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
+ select ARM_NVIC
+ select CPU_V7M
+ select NO_IOPORT_MAP
+
++config ARM_SINGLE_ARM926
++ bool "ARM926 based platforms"
++ select CPU_ARM926T
++
++endchoice
++
+ config ARCH_MMAP_RND_BITS_MIN
+ default 8
+
+diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
+index b1519b4dc03a..2f1bf95daeb0 100644
+--- a/arch/arm/mach-versatile/Kconfig
++++ b/arch/arm/mach-versatile/Kconfig
+@@ -1,7 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0
+ config ARCH_VERSATILE
+ bool "ARM Ltd. Versatile family"
+- depends on ARCH_MULTI_V5
++ depends on ARCH_MULTI_V5 || ARM_SINGLE_ARM926
+ depends on CPU_LITTLE_ENDIAN
+ select ARM_AMBA
+ select ARM_TIMER_SP804
+--
+2.25.1
diff --git a/target/linux/patches/6.1.82/board-rockpi4-0003-arm64-dts-pcie.patch b/target/linux/patches/6.1.82/board-rockpi4-0003-arm64-dts-pcie.patch
new file mode 100644
index 000000000..1777e7a86
--- /dev/null
+++ b/target/linux/patches/6.1.82/board-rockpi4-0003-arm64-dts-pcie.patch
@@ -0,0 +1,35 @@
+diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
+index 1ae1ebd4e..2f84397d5 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
++++ b/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
+@@ -62,6 +62,8 @@
+ regulator-name = "vcc3v3_pcie";
+ regulator-always-on;
+ regulator-boot-on;
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
+ vin-supply = <&vcc5v0_sys>;
+ };
+
+@@ -434,6 +459,21 @@
+ gpio1830-supply = <&vcc_3v0>;
+ };
+
++&pcie0 {
++ ep-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>;
++ num-lanes = <4>;
++ max-link-speed = <1>;
++ pinctrl-names = "default";
++ pinctrl-0 = <&pcie_clkreqnb_cpm>;
++ vpcie12v-supply = <&vcc12v_dcin>;
++ vpcie3v3-supply = <&vcc3v3_pcie>;
++ status = "okay";
++};
++
++&pcie_phy {
++ status = "okay";
++};
++
+ &pmu_io_domains {
+ status = "okay";
+
diff --git a/target/linux/patches/6.1.82/enable-ethernet-bpi-m2-plus.patch b/target/linux/patches/6.1.82/enable-ethernet-bpi-m2-plus.patch
new file mode 100644
index 000000000..7e9abd9ce
--- /dev/null
+++ b/target/linux/patches/6.1.82/enable-ethernet-bpi-m2-plus.patch
@@ -0,0 +1,15 @@
+diff -Nur linux-6.0.11.orig/arch/arm/boot/dts/sunxi-h3-h5.dtsi linux-6.0.11/arch/arm/boot/dts/sunxi-h3-h5.dtsi
+--- linux-6.0.11.orig/arch/arm/boot/dts/sunxi-h3-h5.dtsi 2022-12-02 17:43:18.000000000 +0100
++++ linux-6.0.11/arch/arm/boot/dts/sunxi-h3-h5.dtsi 2022-12-19 08:06:16.836436057 +0100
+@@ -532,7 +532,10 @@
+ reset-names = "stmmaceth";
+ clocks = <&ccu CLK_BUS_EMAC>;
+ clock-names = "stmmaceth";
+- status = "disabled";
++ status = "okay";
++ phy-handle = <&int_mii_phy>;
++ phy-mode = "mii";
++ allwinner,leds-active-low;
+
+ mdio: mdio {
+ #address-cells = <1>;
diff --git a/target/linux/patches/6.1.82/hppa-cross-compile.patch b/target/linux/patches/6.1.82/hppa-cross-compile.patch
new file mode 100644
index 000000000..5400e87a0
--- /dev/null
+++ b/target/linux/patches/6.1.82/hppa-cross-compile.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-6.1.41.orig/arch/parisc/Makefile linux-6.1.41/arch/parisc/Makefile
+--- linux-6.1.41.orig/arch/parisc/Makefile 2023-07-24 18:55:35.000000000 +0200
++++ linux-6.1.41/arch/parisc/Makefile 2023-07-25 17:32:20.338363915 +0200
+@@ -41,7 +41,7 @@
+
+ # Set default 32 bits cross compilers for vdso
+ CC_ARCHES_32 = hppa hppa2.0 hppa1.1
+-CC_SUFFIXES = linux linux-gnu unknown-linux-gnu suse-linux
++CC_SUFFIXES = linux linux-gnu unknown-linux-gnu suse-linux openadk-linux-uclibc
+ CROSS32_COMPILE := $(call cc-cross-prefix, \
+ $(foreach a,$(CC_ARCHES_32), \
+ $(foreach s,$(CC_SUFFIXES),$(a)-$(s)-)))
diff --git a/target/linux/patches/6.1.82/macsonic.patch b/target/linux/patches/6.1.82/macsonic.patch
new file mode 100644
index 000000000..177397221
--- /dev/null
+++ b/target/linux/patches/6.1.82/macsonic.patch
@@ -0,0 +1,11 @@
+diff -Nur linux-6.1.41.orig/drivers/net/ethernet/natsemi/Kconfig linux-6.1.41/drivers/net/ethernet/natsemi/Kconfig
+--- linux-6.1.41.orig/drivers/net/ethernet/natsemi/Kconfig 2023-07-24 18:55:35.000000000 +0200
++++ linux-6.1.41/drivers/net/ethernet/natsemi/Kconfig 2023-07-26 17:06:27.179154363 +0200
+@@ -19,6 +19,7 @@
+ config MACSONIC
+ tristate "Macintosh SONIC based ethernet (onboard, NuBus, LC, CS)"
+ depends on MAC
++ select BITREVERSE
+ help
+ Support for NatSemi SONIC based Ethernet devices. This includes
+ the onboard Ethernet in many Quadras as well as some LC-PDS,
diff --git a/target/linux/patches/6.1.82/nios2.patch b/target/linux/patches/6.1.82/nios2.patch
new file mode 100644
index 000000000..43631971e
--- /dev/null
+++ b/target/linux/patches/6.1.82/nios2.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-6.1.41.orig/arch/nios2/configs/10m50_defconfig linux-6.1.41/arch/nios2/configs/10m50_defconfig
+--- linux-6.1.41.orig/arch/nios2/configs/10m50_defconfig 2023-07-24 18:55:35.000000000 +0200
++++ linux-6.1.41/arch/nios2/configs/10m50_defconfig 2023-07-29 13:12:27.796785539 +0200
+@@ -20,6 +20,8 @@
+ CONFIG_NIOS2_DCACHE_SIZE=0x8000
+ CONFIG_NIOS2_ICACHE_SIZE=0x8000
+ # CONFIG_NIOS2_CMDLINE_IGNORE_DTB is not set
++CONFIG_NIOS2_DTB_SOURCE_BOOL=y
++CONFIG_NIOS2_DTB_SOURCE="10m50_devboard.dts"
+ CONFIG_NET=y
+ CONFIG_PACKET=y
+ CONFIG_UNIX=y
diff --git a/target/linux/patches/6.1.82/or1k-more-ram.patch b/target/linux/patches/6.1.82/or1k-more-ram.patch
new file mode 100644
index 000000000..6397f8445
--- /dev/null
+++ b/target/linux/patches/6.1.82/or1k-more-ram.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-6.1.82.orig/arch/openrisc/boot/dts/or1ksim.dts linux-6.1.82/arch/openrisc/boot/dts/or1ksim.dts
+--- linux-6.1.82.orig/arch/openrisc/boot/dts/or1ksim.dts 2024-03-15 19:27:50.000000000 +0100
++++ linux-6.1.82/arch/openrisc/boot/dts/or1ksim.dts 2024-04-14 16:37:35.139984380 +0200
+@@ -17,7 +17,7 @@
+
+ memory@0 {
+ device_type = "memory";
+- reg = <0x00000000 0x02000000>;
++ reg = <0x00000000 0x08000000>;
+ };
+
+ cpus {
diff --git a/target/linux/patches/6.1.82/riscv32.patch b/target/linux/patches/6.1.82/riscv32.patch
new file mode 100644
index 000000000..648b0de4d
--- /dev/null
+++ b/target/linux/patches/6.1.82/riscv32.patch
@@ -0,0 +1,49 @@
+diff -Nur linux-6.0.15.orig/arch/riscv/include/uapi/asm/unistd.h linux-6.0.15/arch/riscv/include/uapi/asm/unistd.h
+--- linux-6.0.15.orig/arch/riscv/include/uapi/asm/unistd.h 2022-12-21 17:41:16.000000000 +0100
++++ linux-6.0.15/arch/riscv/include/uapi/asm/unistd.h 2023-01-09 11:28:16.590796198 +0100
+@@ -15,9 +15,14 @@
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+-#if defined(__LP64__) && !defined(__SYSCALL_COMPAT)
++#ifndef __SYSCALL_COMPAT
+ #define __ARCH_WANT_NEW_STAT
+ #define __ARCH_WANT_SET_GET_RLIMIT
++#endif /* __SYSCALL_COMPAT */
++
++#ifndef __LP64__
++#define __ARCH_WANT_STAT64
++#define __ARCH_WANT_TIME32_SYSCALLS
+ #endif /* __LP64__ */
+
+ #define __ARCH_WANT_SYS_CLONE3
+diff -Nur linux-6.0.15.orig/arch/riscv/Kconfig linux-6.0.15/arch/riscv/Kconfig
+--- linux-6.0.15.orig/arch/riscv/Kconfig 2022-12-21 17:41:16.000000000 +0100
++++ linux-6.0.15/arch/riscv/Kconfig 2023-01-09 14:27:16.560750598 +0100
+@@ -163,8 +163,9 @@
+
+ config PAGE_OFFSET
+ hex
+- default 0xC0000000 if 32BIT
++ default 0xC0000000 if 32BIT && MMU
+ default 0x80000000 if 64BIT && !MMU
++ default 0x80000000 if !MMU
+ default 0xff60000000000000 if 64BIT
+
+ config KASAN_SHADOW_OFFSET
+@@ -262,7 +263,6 @@
+ select GENERIC_LIB_ASHRDI3
+ select GENERIC_LIB_LSHRDI3
+ select GENERIC_LIB_UCMPDI2
+- select MMU
+
+ config ARCH_RV64I
+ bool "RV64I"
+@@ -670,7 +670,6 @@
+ default !NONPORTABLE
+ select EFI
+ select OF
+- select MMU
+
+ menu "Power management options"
+
diff --git a/target/linux/patches/6.1.82/riscv64-flat.patch b/target/linux/patches/6.1.82/riscv64-flat.patch
new file mode 100644
index 000000000..ee70ea915
--- /dev/null
+++ b/target/linux/patches/6.1.82/riscv64-flat.patch
@@ -0,0 +1,19 @@
+diff -Nur linux-6.1.79.orig/fs/binfmt_flat.c linux-6.1.79/fs/binfmt_flat.c
+--- linux-6.1.79.orig/fs/binfmt_flat.c 2024-02-23 09:12:53.000000000 +0100
++++ linux-6.1.79/fs/binfmt_flat.c 2024-03-23 22:35:54.496759006 +0100
+@@ -879,6 +879,7 @@
+ if (res < 0)
+ return res;
+
++#ifndef CONFIG_BINFMT_FLAT_NO_DATA_START_OFFSET
+ /* Update data segment pointers for all libraries */
+ for (i = 0; i < MAX_SHARED_LIBS; i++) {
+ if (!libinfo.lib_list[i].loaded)
+@@ -893,6 +894,7 @@
+ return -EFAULT;
+ }
+ }
++#endif
+
+ set_binfmt(&flat_format);
+
diff --git a/target/linux/patches/6.1.82/rockchip-115200.patch b/target/linux/patches/6.1.82/rockchip-115200.patch
new file mode 100644
index 000000000..ad8a2d7a7
--- /dev/null
+++ b/target/linux/patches/6.1.82/rockchip-115200.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-5.15.81.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi linux-5.15.81/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
+--- linux-5.15.81.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-02 17:41:12.000000000 +0100
++++ linux-5.15.81/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-22 09:51:57.370394227 +0100
+@@ -17,7 +17,7 @@
+ };
+
+ chosen {
+- stdout-path = "serial2:1500000n8";
++ stdout-path = "serial2:115200n8";
+ };
+
+ clkin_gmac: external-gmac-clock {
diff --git a/target/linux/patches/6.1.82/rockchip-pcie-timeout.patch b/target/linux/patches/6.1.82/rockchip-pcie-timeout.patch
new file mode 100644
index 000000000..2ef7df2da
--- /dev/null
+++ b/target/linux/patches/6.1.82/rockchip-pcie-timeout.patch
@@ -0,0 +1,16 @@
+diff -Nur linux-6.0.11.orig/drivers/pci/controller/pcie-rockchip-host.c linux-6.0.11/drivers/pci/controller/pcie-rockchip-host.c
+--- linux-6.0.11.orig/drivers/pci/controller/pcie-rockchip-host.c 2022-12-02 17:43:18.000000000 +0100
++++ linux-6.0.11/drivers/pci/controller/pcie-rockchip-host.c 2022-12-24 11:12:25.753213273 +0100
+@@ -327,10 +327,10 @@
+
+ gpiod_set_value_cansleep(rockchip->ep_gpio, 1);
+
+- /* 500ms timeout value should be enough for Gen1/2 training */
++ /* 1000ms timeout value should be enough for Gen1/2 training */
+ err = readl_poll_timeout(rockchip->apb_base + PCIE_CLIENT_BASIC_STATUS1,
+ status, PCIE_LINK_UP(status), 20,
+- 500 * USEC_PER_MSEC);
++ 1000 * USEC_PER_MSEC);
+ if (err) {
+ dev_err(dev, "PCIe link training gen1 timeout!\n");
+ goto err_power_off_phy;
diff --git a/target/linux/patches/6.6.28/armnommu-fix-thread-registers.patch b/target/linux/patches/6.6.28/armnommu-fix-thread-registers.patch
new file mode 100644
index 000000000..8ab2196dc
--- /dev/null
+++ b/target/linux/patches/6.6.28/armnommu-fix-thread-registers.patch
@@ -0,0 +1,57 @@
+From 1410ebe685f13c1699a16bf147ae1332e7fd1983 Mon Sep 17 00:00:00 2001
+From: Greg Ungerer <gerg@kernel.org>
+Date: Thu, 20 Apr 2023 09:52:08 +1000
+Subject: [PATCH] ARM: start_thread: restore registers on ELF load for noMMU
+
+The binfmt_elf-fdpic loader is capable of loading constant displacement
+ELF format binaries (like those compiled -pie) on noMMU systems as well
+as elf-fdpic format binaries. The traditional ELF loader cannot be
+enabled on noMMU systems.
+
+Commit 5e588114329c ("ARM: start_thread(): don't always clear all regs")
+fixed the start_thread() code so that it maintains the required
+elf-fdpic registers through to the new process, but it only does that if
+current has its personality FDPIC_FUNCPTRS bit set. That is true for
+elf-fdpic format binaries but will not be true for non-fdpic ELF
+binaries.
+
+Modify the test of the FDPIC_FUNCPTRS personality bit to also carry out
+the register restore if this is a noMMU system. This is not perfect,
+since it will also preserve these registers on noMMU systems for all
+binary format types (could be flat format for example). That won't break
+anything, but it is potentially leaking some information into the new
+process. But for the noMMU case we need those start time registers set to
+be able to finalize the runtime loading of the -pie style ELF binary
+(carry out its segment and dynamic relocation processing).
+
+Unfortunately the FDPIC_FUNCPTRS flag cannot just be enabled for all
+elf-fdpic loaded binaries. That personality bit is used for other things
+like the controlling the changed behavior for signal handling.
+
+There is no change in behavior for normal ELF loading on MMU systems.
+A -pie style ELF binary built for noMMU systems can be load and run using
+the usual ELF loader on an MMU system (elf-fdpic loader not required in
+this case).
+
+Signed-off-by: Greg Ungerer <gerg@kernel.org>
+---
+ arch/arm/include/asm/processor.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h
+index 326864f79d18..5074cc3ae4e1 100644
+--- a/arch/arm/include/asm/processor.h
++++ b/arch/arm/include/asm/processor.h
+@@ -60,7 +60,8 @@ static inline void arch_thread_struct_whitelist(unsigned long *offset,
+ } \
+ memset(regs->uregs, 0, sizeof(regs->uregs)); \
+ if (IS_ENABLED(CONFIG_BINFMT_ELF_FDPIC) && \
+- current->personality & FDPIC_FUNCPTRS) { \
++ ((! IS_ENABLED(CONFIG_MMU)) || \
++ current->personality & FDPIC_FUNCPTRS)) { \
+ regs->ARM_r7 = r7; \
+ regs->ARM_r8 = r8; \
+ regs->ARM_r9 = r9; \
+--
+2.25.1
+
diff --git a/target/linux/patches/6.6.28/armnommu-versatile.patch b/target/linux/patches/6.6.28/armnommu-versatile.patch
new file mode 100644
index 000000000..f8f10f50b
--- /dev/null
+++ b/target/linux/patches/6.6.28/armnommu-versatile.patch
@@ -0,0 +1,101 @@
+From 77c038d93769c92ef54cdbb50388564d1b37987b Mon Sep 17 00:00:00 2001
+From: Greg Ungerer <gerg@kernel.org>
+Date: Fri, 23 Sep 2016 13:37:34 +1000
+Subject: [PATCH] ARM: versatile: support configuring versatile machine for no-MMU
+
+Allow the arm versatile machine to be configured for no-MMU operation.
+
+Older kernels had the ability to build the versatile machine with the MMU
+disabled (!CONFIG_MMU). Recent changes to convert the versatile machine
+to device tree lost this ability. (Although older kernels could be built
+they did not run due to a bug in the IO_ADDRESS() mapping on this machine).
+
+The motivation for this is that the versatile machine is well supported
+in qemu. And this provides an excellent platform for development and
+testing no-MMU support on ARM in general.
+
+This patch adds a versatile platform selection in the upper level arm
+system type menu - where it appeared in older kernel versions - when
+configuring for the no-MMU case. There is no visible change to the way
+versatile is selected for the MMU enabled case.
+
+Signed-off-by: Greg Ungerer <gerg@kernel.org>
+---
+ arch/arm/Kconfig | 13 ++++++++++++-
+ arch/arm/include/asm/mach/map.h | 1 +
+ arch/arm/mach-versatile/Kconfig | 2 +-
+ arch/arm/mach-versatile/versatile.c | 4 ++++
+ 4 files changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/mach-versatile/versatile.c b/arch/arm/mach-versatile/versatile.c
+index 02ba68abe533..835b51bc597b 100644
+--- a/arch/arm/mach-versatile/versatile.c
++++ b/arch/arm/mach-versatile/versatile.c
+@@ -22,7 +22,11 @@
+ #include <asm/mach/map.h>
+
+ /* macro to get at MMIO space when running virtually */
++#ifdef CONFIG_MMU
+ #define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
++#else
++#define IO_ADDRESS(x) (x)
++#endif
+ #define __io_address(n) ((void __iomem __force *)IO_ADDRESS(n))
+
+ /*
+diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
+index 2b8970d8e5a2..41844ab6aec5 100644
+--- a/arch/arm/include/asm/mach/map.h
++++ b/arch/arm/include/asm/mach/map.h
+@@ -60,6 +60,7 @@ extern int ioremap_page(unsigned long virt, unsigned long phys,
+ #else
+ #define iotable_init(map,num) do { } while (0)
+ #define vm_reserve_area_early(a,s,c) do { } while (0)
++#define debug_ll_io_init() do { } while (0)
+ #endif
+
+ #endif
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index e24a9820e12f..342e1efa583a 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -307,12 +307,23 @@ config MMU
+ Select if you want MMU-based virtualised addressing space
+ support by paged memory management. If unsure, say 'Y'.
+
++choice
++ prompt "ARM system type"
++ depends on !MMU
++ default ARM_SINGLE_ARMV7M
++
+ config ARM_SINGLE_ARMV7M
+- def_bool !MMU
++ bool "ARMv7-M based platforms (Cortex-M0/M3/M4)"
+ select ARM_NVIC
+ select CPU_V7M
+ select NO_IOPORT_MAP
+
++config ARM_SINGLE_ARM926
++ bool "ARM926 based platforms"
++ select CPU_ARM926T
++
++endchoice
++
+ config ARCH_MMAP_RND_BITS_MIN
+ default 8
+
+diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
+index b1519b4dc03a..2f1bf95daeb0 100644
+--- a/arch/arm/mach-versatile/Kconfig
++++ b/arch/arm/mach-versatile/Kconfig
+@@ -1,7 +1,7 @@
+ # SPDX-License-Identifier: GPL-2.0
+ config ARCH_VERSATILE
+ bool "ARM Ltd. Versatile family"
+- depends on ARCH_MULTI_V5
++ depends on ARCH_MULTI_V5 || ARM_SINGLE_ARM926
+ depends on CPU_LITTLE_ENDIAN
+ select ARM_AMBA
+ select ARM_TIMER_SP804
+--
+2.25.1
diff --git a/target/linux/patches/6.6.28/hppa-cross-compile.patch b/target/linux/patches/6.6.28/hppa-cross-compile.patch
new file mode 100644
index 000000000..51c24fff2
--- /dev/null
+++ b/target/linux/patches/6.6.28/hppa-cross-compile.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-6.6.22.orig/arch/parisc/Makefile linux-6.6.22/arch/parisc/Makefile
+--- linux-6.6.22.orig/arch/parisc/Makefile 2024-03-15 19:25:07.000000000 +0100
++++ linux-6.6.22/arch/parisc/Makefile 2024-04-16 03:57:37.515308996 +0200
+@@ -41,7 +41,7 @@
+
+ # Set default 32 bits cross compilers for vdso
+ CC_ARCHES_32 = hppa hppa2.0 hppa1.1
+-CC_SUFFIXES = linux linux-gnu unknown-linux-gnu suse-linux
++CC_SUFFIXES = linux linux-gnu unknown-linux-gnu suse-linux openadk-linux-uclibc
+ CROSS32_COMPILE := $(call cc-cross-prefix, \
+ $(foreach a,$(CC_ARCHES_32), \
+ $(foreach s,$(CC_SUFFIXES),$(a)-$(s)-)))
diff --git a/target/linux/patches/6.6.28/macsonic.patch b/target/linux/patches/6.6.28/macsonic.patch
new file mode 100644
index 000000000..51e76113b
--- /dev/null
+++ b/target/linux/patches/6.6.28/macsonic.patch
@@ -0,0 +1,11 @@
+diff -Nur linux-6.6.22.orig/drivers/net/ethernet/natsemi/Kconfig linux-6.6.22/drivers/net/ethernet/natsemi/Kconfig
+--- linux-6.6.22.orig/drivers/net/ethernet/natsemi/Kconfig 2024-03-15 19:25:07.000000000 +0100
++++ linux-6.6.22/drivers/net/ethernet/natsemi/Kconfig 2024-04-16 10:16:50.352443898 +0200
+@@ -19,6 +19,7 @@
+ config MACSONIC
+ tristate "Macintosh SONIC based ethernet (onboard, NuBus, LC, CS)"
+ depends on MAC
++ select BITREVERSE
+ help
+ Support for NatSemi SONIC based Ethernet devices. This includes
+ the onboard Ethernet in many Quadras as well as some LC-PDS,
diff --git a/target/linux/patches/6.6.28/riscv-flat.patch b/target/linux/patches/6.6.28/riscv-flat.patch
new file mode 100644
index 000000000..6d26c638f
--- /dev/null
+++ b/target/linux/patches/6.6.28/riscv-flat.patch
@@ -0,0 +1,19 @@
+diff -Nur linux-6.6.22.orig/fs/binfmt_flat.c linux-6.6.22/fs/binfmt_flat.c
+--- linux-6.6.22.orig/fs/binfmt_flat.c 2024-03-15 19:25:07.000000000 +0100
++++ linux-6.6.22/fs/binfmt_flat.c 2024-04-17 15:41:29.292461687 +0200
+@@ -879,6 +879,7 @@
+ if (res < 0)
+ return res;
+
++#ifndef CONFIG_BINFMT_FLAT_NO_DATA_START_OFFSET
+ /* Update data segment pointers for all libraries */
+ for (i = 0; i < MAX_SHARED_LIBS; i++) {
+ if (!libinfo.lib_list[i].loaded)
+@@ -893,6 +894,7 @@
+ return -EFAULT;
+ }
+ }
++#endif
+
+ set_binfmt(&flat_format);
+
diff --git a/target/linux/patches/6064a9bdf48cefbccc4f6472dd04251f0dec1931/startup.patch b/target/linux/patches/6064a9bdf48cefbccc4f6472dd04251f0dec1931/startup.patch
index e54ac19a6..f9ab3f1c1 100644
--- a/target/linux/patches/6064a9bdf48cefbccc4f6472dd04251f0dec1931/startup.patch
+++ b/target/linux/patches/6064a9bdf48cefbccc4f6472dd04251f0dec1931/startup.patch
@@ -23,12 +23,3 @@ diff -Nur linux-4.4.6.orig/init/main.c linux-4.4.6/init/main.c
(void) sys_dup(0);
(void) sys_dup(0);
/*
-@@ -1019,7 +1021,7 @@
- */
-
- if (!ramdisk_execute_command)
-- ramdisk_execute_command = "/init";
-+ ramdisk_execute_command = "/sbin/init";
-
- if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
- ramdisk_execute_command = NULL;
diff --git a/target/linux/patches/b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/delay.patch b/target/linux/patches/b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/delay.patch
new file mode 100644
index 000000000..dad7c6af3
--- /dev/null
+++ b/target/linux/patches/b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/delay.patch
@@ -0,0 +1,12 @@
+diff -Nur linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8.orig/init/main.c linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/init/main.c
+--- linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8.orig/init/main.c 2019-10-30 11:31:31.000000000 +0100
++++ linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/init/main.c 2019-10-31 23:59:00.424814394 +0100
+@@ -615,7 +615,7 @@
+ if (late_time_init)
+ late_time_init();
+ sched_clock_init();
+- calibrate_delay();
++ //calibrate_delay();
+ pidmap_init();
+ anon_vma_init();
+ acpi_early_init();
diff --git a/target/linux/patches/b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/uapi.patch b/target/linux/patches/b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/uapi.patch
new file mode 100644
index 000000000..9073d950f
--- /dev/null
+++ b/target/linux/patches/b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/uapi.patch
@@ -0,0 +1,156 @@
+diff -Nur linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8.orig/arch/lm32/include/uapi/asm/byteorder.h linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/arch/lm32/include/uapi/asm/byteorder.h
+--- linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8.orig/arch/lm32/include/uapi/asm/byteorder.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/arch/lm32/include/uapi/asm/byteorder.h 2019-10-30 14:32:57.868397215 +0100
+@@ -0,0 +1,16 @@
++#ifndef _LM32_ASM_BYTEORDER_H
++#define _LM32_ASM_BYTEORDER_H
++
++#include <asm/types.h>
++
++#if defined(__GNUC__) && !defined(__STRICT_ANSI__) || defined(__KERNEL__)
++// there is a 64bit data type supported by the processor
++# define __BYTEORDER_HAS_U64__
++
++// so we don't have to implement swab64 in assembler ;)
++# define __SWAB_64_THRU_32__
++#endif
++
++#include <linux/byteorder/big_endian.h>
++
++#endif /* _LM32_BYTEORDER_H */
+diff -Nur linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8.orig/arch/lm32/include/uapi/asm/Kbuild linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/arch/lm32/include/uapi/asm/Kbuild
+--- linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8.orig/arch/lm32/include/uapi/asm/Kbuild 1970-01-01 01:00:00.000000000 +0100
++++ linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/arch/lm32/include/uapi/asm/Kbuild 2019-10-30 14:34:14.357298364 +0100
+@@ -0,0 +1,6 @@
++# UAPI Header export list
++include include/uapi/asm-generic/Kbuild.asm
++
++header-y += byteorder.h
++header-y += ptrace.h
++header-y += unistd.h
+diff -Nur linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8.orig/arch/lm32/include/uapi/asm/ptrace.h linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/arch/lm32/include/uapi/asm/ptrace.h
+--- linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8.orig/arch/lm32/include/uapi/asm/ptrace.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/arch/lm32/include/uapi/asm/ptrace.h 2019-10-30 14:32:57.888398498 +0100
+@@ -0,0 +1,103 @@
++/*
++ * (C) Copyright 2007
++ * Theobroma Systems <www.theobroma-systems.com>
++ *
++ * See file CREDITS for list of people who contributed to this
++ * project.
++ *
++ * 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
++ */
++
++#ifndef _ASM_LM32_PTRACE_H
++#define _ASM_LM32_PTRACE_H
++
++#define PT_MODE_KERNEL 1
++#define PT_MODE_USER 0
++
++#ifndef __ASSEMBLY__
++
++#define user_stack_pointer(regs) ((regs)->sp)
++
++typedef unsigned long lm32_reg_t;
++
++struct pt_regs {
++ lm32_reg_t r0;
++ lm32_reg_t r1;
++ lm32_reg_t r2;
++ lm32_reg_t r3;
++ lm32_reg_t r4;
++ lm32_reg_t r5;
++ lm32_reg_t r6;
++ lm32_reg_t r7;
++ lm32_reg_t r8;
++ lm32_reg_t r9;
++ lm32_reg_t r10;
++ lm32_reg_t r11;
++ lm32_reg_t r12;
++ lm32_reg_t r13;
++ lm32_reg_t r14;
++ lm32_reg_t r15;
++ lm32_reg_t r16;
++ lm32_reg_t r17;
++ lm32_reg_t r18;
++ lm32_reg_t r19;
++ lm32_reg_t r20;
++ lm32_reg_t r21;
++ lm32_reg_t r22;
++ lm32_reg_t r23;
++ lm32_reg_t r24;
++ lm32_reg_t r25;
++ lm32_reg_t gp;
++ lm32_reg_t fp;
++ lm32_reg_t sp;
++ lm32_reg_t ra;
++ lm32_reg_t ea;
++ lm32_reg_t ba;
++ unsigned int pt_mode;
++};
++
++#ifdef __KERNEL__
++#define user_mode(regs) ((regs)->pt_mode == PT_MODE_USER)
++
++#define instruction_pointer(regs) ((regs)->ea)
++#define profile_pc(regs) instruction_pointer(regs)
++
++void show_regs(struct pt_regs *);
++
++#else /* !__KERNEL__ */
++
++/* TBD (gdbserver/ptrace) */
++
++#endif /* !__KERNEL__ */
++
++/* FIXME: remove this ? */
++/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
++#define PTRACE_GETREGS 12
++#define PTRACE_SETREGS 13
++
++#define PTRACE_GETFDPIC 31
++
++#define PTRACE_GETFDPIC_EXEC 0
++#define PTRACE_GETFDPIC_INTERP 1
++
++/* for gdb */
++#define PT_TEXT_ADDR 50
++#define PT_TEXT_END_ADDR 51
++#define PT_DATA_ADDR 52
++
++#endif /* !__ASSEMBLY__ */
++
++#endif /* _ASM_LM32_PTRACE_H */
+diff -Nur linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8.orig/arch/lm32/include/uapi/asm/unistd.h linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/arch/lm32/include/uapi/asm/unistd.h
+--- linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8.orig/arch/lm32/include/uapi/asm/unistd.h 1970-01-01 01:00:00.000000000 +0100
++++ linux-b6a72d383cf0d4c9c448c1f4e5e8d496ea5c1fd8/arch/lm32/include/uapi/asm/unistd.h 2019-10-30 14:32:57.884398247 +0100
+@@ -0,0 +1,15 @@
++#if !defined(_ASM_LM32_UNISTD_H) || defined(__SYSCALL)
++#define _ASM_LM32_UNISTD_H
++
++#define __ARCH_WANT_SYSCALL_NO_AT
++#define __ARCH_WANT_SYSCALL_NO_FLAGS
++#define __ARCH_WANT_SYSCALL_OFF_T
++#define __ARCH_WANT_SYSCALL_DEPRECATED
++
++#define __ARCH_WANT_SYS_CLONE
++
++#include <asm-generic/unistd.h>
++
++#undef __NR_mmap
++
++#endif /* _ASM_LM32_UNISTD_H */
diff --git a/target/linux/patches/b6bfece0d9ddf21e1526fead81340ef02f98f6ad/defconfig.patch b/target/linux/patches/b6bfece0d9ddf21e1526fead81340ef02f98f6ad/defconfig.patch
new file mode 100644
index 000000000..77025e98c
--- /dev/null
+++ b/target/linux/patches/b6bfece0d9ddf21e1526fead81340ef02f98f6ad/defconfig.patch
@@ -0,0 +1,18 @@
+diff -Nur linux-b6bfece0d9ddf21e1526fead81340ef02f98f6ad.orig/arch/arm/configs/bcm2711_defconfig linux-b6bfece0d9ddf21e1526fead81340ef02f98f6ad/arch/arm/configs/bcm2711_defconfig
+--- linux-b6bfece0d9ddf21e1526fead81340ef02f98f6ad.orig/arch/arm/configs/bcm2711_defconfig 2023-10-18 16:11:33.000000000 +0200
++++ linux-b6bfece0d9ddf21e1526fead81340ef02f98f6ad/arch/arm/configs/bcm2711_defconfig 2023-10-21 10:11:00.896240933 +0200
+@@ -1,5 +1,3 @@
+-CONFIG_LOCALVERSION="-v7l"
+-# CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SYSVIPC=y
+ CONFIG_POSIX_MQUEUE=y
+ CONFIG_GENERIC_IRQ_DEBUGFS=y
+@@ -62,7 +60,7 @@
+ CONFIG_MODULE_UNLOAD=y
+ CONFIG_MODVERSIONS=y
+ CONFIG_MODULE_SRCVERSION_ALL=y
+-CONFIG_MODULE_COMPRESS_XZ=y
++CONFIG_MODULE_COMPRESS_NONE=y
+ CONFIG_BLK_DEV_THROTTLING=y
+ CONFIG_PARTITION_ADVANCED=y
+ CONFIG_MAC_PARTITION=y
diff --git a/target/linux/patches/d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/defconfig.patch b/target/linux/patches/d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/defconfig.patch
new file mode 100644
index 000000000..581c80b5d
--- /dev/null
+++ b/target/linux/patches/d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/defconfig.patch
@@ -0,0 +1,54 @@
+diff -Nur linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f.orig/arch/arm/configs/bcm2711_defconfig linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/arch/arm/configs/bcm2711_defconfig
+--- linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f.orig/arch/arm/configs/bcm2711_defconfig 2024-01-04 18:44:08.000000000 +0100
++++ linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/arch/arm/configs/bcm2711_defconfig 2024-02-23 03:20:17.274662945 +0100
+@@ -1,4 +1,4 @@
+-CONFIG_LOCALVERSION="-v7l"
++CONFIG_LOCALVERSION=""
+ # CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SYSVIPC=y
+ CONFIG_POSIX_MQUEUE=y
+@@ -62,7 +62,7 @@
+ CONFIG_MODULE_UNLOAD=y
+ CONFIG_MODVERSIONS=y
+ CONFIG_MODULE_SRCVERSION_ALL=y
+-CONFIG_MODULE_COMPRESS_XZ=y
++CONFIG_MODULE_COMPRESS_NONE=y
+ CONFIG_BLK_DEV_THROTTLING=y
+ CONFIG_PARTITION_ADVANCED=y
+ CONFIG_MAC_PARTITION=y
+diff -Nur linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f.orig/arch/arm64/configs/bcm2711_defconfig linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/arch/arm64/configs/bcm2711_defconfig
+--- linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f.orig/arch/arm64/configs/bcm2711_defconfig 2024-01-04 18:44:09.000000000 +0100
++++ linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/arch/arm64/configs/bcm2711_defconfig 2024-02-23 03:18:12.395539339 +0100
+@@ -1,4 +1,4 @@
+-CONFIG_LOCALVERSION="-v8"
++CONFIG_LOCALVERSION=""
+ # CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SYSVIPC=y
+ CONFIG_POSIX_MQUEUE=y
+@@ -69,7 +69,7 @@
+ CONFIG_MODULE_UNLOAD=y
+ CONFIG_MODVERSIONS=y
+ CONFIG_MODULE_SRCVERSION_ALL=y
+-CONFIG_MODULE_COMPRESS_XZ=y
++CONFIG_MODULE_COMPRESS_NONE=y
+ CONFIG_BLK_DEV_THROTTLING=y
+ CONFIG_PARTITION_ADVANCED=y
+ CONFIG_MAC_PARTITION=y
+diff -Nur linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f.orig/arch/arm64/configs/bcm2712_defconfig linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/arch/arm64/configs/bcm2712_defconfig
+--- linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f.orig/arch/arm64/configs/bcm2712_defconfig 2024-01-04 18:44:09.000000000 +0100
++++ linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/arch/arm64/configs/bcm2712_defconfig 2024-02-23 03:18:12.395539339 +0100
+@@ -1,4 +1,4 @@
+-CONFIG_LOCALVERSION="-v8-16k"
++CONFIG_LOCALVERSION=""
+ # CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SYSVIPC=y
+ CONFIG_POSIX_MQUEUE=y
+@@ -72,7 +72,7 @@
+ CONFIG_MODULE_UNLOAD=y
+ CONFIG_MODVERSIONS=y
+ CONFIG_MODULE_SRCVERSION_ALL=y
+-CONFIG_MODULE_COMPRESS_XZ=y
++CONFIG_MODULE_COMPRESS_NONE=y
+ CONFIG_BLK_DEV_THROTTLING=y
+ CONFIG_PARTITION_ADVANCED=y
+ CONFIG_MAC_PARTITION=y
diff --git a/target/linux/patches/eb06d31da3e2025a2e578d8de9843e24b68137a6/defconfig.patch b/target/linux/patches/eb06d31da3e2025a2e578d8de9843e24b68137a6/defconfig.patch
new file mode 100644
index 000000000..17e1d1811
--- /dev/null
+++ b/target/linux/patches/eb06d31da3e2025a2e578d8de9843e24b68137a6/defconfig.patch
@@ -0,0 +1,36 @@
+diff -Nur linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f.orig/arch/arm64/configs/bcm2711_defconfig linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/arch/arm64/configs/bcm2711_defconfig
+--- linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f.orig/arch/arm64/configs/bcm2711_defconfig 2024-01-04 18:44:09.000000000 +0100
++++ linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/arch/arm64/configs/bcm2711_defconfig 2024-01-06 09:20:53.075282937 +0100
+@@ -1,4 +1,4 @@
+-CONFIG_LOCALVERSION="-v8"
++CONFIG_LOCALVERSION=""
+ # CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SYSVIPC=y
+ CONFIG_POSIX_MQUEUE=y
+@@ -69,7 +69,7 @@
+ CONFIG_MODULE_UNLOAD=y
+ CONFIG_MODVERSIONS=y
+ CONFIG_MODULE_SRCVERSION_ALL=y
+-CONFIG_MODULE_COMPRESS_XZ=y
++CONFIG_MODULE_COMPRESS_NONE=y
+ CONFIG_BLK_DEV_THROTTLING=y
+ CONFIG_PARTITION_ADVANCED=y
+ CONFIG_MAC_PARTITION=y
+diff -Nur linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f.orig/arch/arm64/configs/bcm2712_defconfig linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/arch/arm64/configs/bcm2712_defconfig
+--- linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f.orig/arch/arm64/configs/bcm2712_defconfig 2024-01-04 18:44:09.000000000 +0100
++++ linux-d5066442e39dd9bf4ba6431ffb3f99e3d5085d3f/arch/arm64/configs/bcm2712_defconfig 2024-01-06 09:20:34.328388717 +0100
+@@ -1,4 +1,4 @@
+-CONFIG_LOCALVERSION="-v8-16k"
++CONFIG_LOCALVERSION=""
+ # CONFIG_LOCALVERSION_AUTO is not set
+ CONFIG_SYSVIPC=y
+ CONFIG_POSIX_MQUEUE=y
+@@ -72,7 +72,7 @@
+ CONFIG_MODULE_UNLOAD=y
+ CONFIG_MODVERSIONS=y
+ CONFIG_MODULE_SRCVERSION_ALL=y
+-CONFIG_MODULE_COMPRESS_XZ=y
++CONFIG_MODULE_COMPRESS_NONE=y
+ CONFIG_BLK_DEV_THROTTLING=y
+ CONFIG_PARTITION_ADVANCED=y
+ CONFIG_MAC_PARTITION=y
diff --git a/target/linux/patches/stable-4.4-rockpi4/serial-baudrate.patch b/target/linux/patches/stable-4.4-rockpi4/serial-baudrate.patch
new file mode 100644
index 000000000..ba03e2a99
--- /dev/null
+++ b/target/linux/patches/stable-4.4-rockpi4/serial-baudrate.patch
@@ -0,0 +1,23 @@
+diff -Nur linux-stable-4.4-rockpi4.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi linux-stable-4.4-rockpi4/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
+--- linux-stable-4.4-rockpi4.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-09 18:12:00.000000000 +0100
++++ linux-stable-4.4-rockpi4/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi 2022-12-09 22:12:59.489123950 +0100
+@@ -58,7 +58,7 @@
+ rockchip,signal-irq = <182>;
+ rockchip,wake-irq = <0>;
+ rockchip,irq-mode-enable = <1>; /* If enable uart uses irq instead of fiq */
+- rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */
++ rockchip,baudrate = <115200>; /* Only 115200 and 1500000 */
+ pinctrl-names = "default";
+ pinctrl-0 = <&uart2c_xfer>;
+ };
+diff -Nur linux-stable-4.4-rockpi4.orig/scripts/dtc/dtc-lexer.lex.c_shipped linux-stable-4.4-rockpi4/scripts/dtc/dtc-lexer.lex.c_shipped
+--- linux-stable-4.4-rockpi4.orig/scripts/dtc/dtc-lexer.lex.c_shipped 2022-12-09 18:12:07.000000000 +0100
++++ linux-stable-4.4-rockpi4/scripts/dtc/dtc-lexer.lex.c_shipped 2022-12-09 22:11:26.298627242 +0100
+@@ -631,7 +631,6 @@
+ #include "srcpos.h"
+ #include "dtc-parser.tab.h"
+
+-YYLTYPE yylloc;
+ extern bool treesource_error;
+
+ /* CAUTION: this will stop working if we ever use yyless() or yyunput() */
diff --git a/target/lm32/Makefile b/target/lm32/Makefile
index ba872b7d7..6d6af4b0b 100644
--- a/target/lm32/Makefile
+++ b/target/lm32/Makefile
@@ -5,6 +5,51 @@ include $(ADK_TOPDIR)/rules.mk
include $(ADK_TOPDIR)/mk/kernel-build.mk
include $(ADK_TOPDIR)/mk/image.mk
+KERNEL:=$(LINUX_DIR)/arch/lm32/boot/simpleImage.milkymist_one
+
+QEMU_ARGS:=-M milkymist
+QEMU_ARGS+=-nographic -monitor pty -serial stdio -append "console=ttyS0 lpj=250"
+#
+# target helper text
+ifeq ($(ADK_TARGET_FS),archive)
+targethelp:
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "Use following command to create a QEMU Image:"
+ @echo "./scripts/create.sh qemu-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+ @echo "Start qemu with following options:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${ADK_TARGET_CPU_ARCH}.img'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfs)
+targethelp:
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfsarchive)
+targethelp:
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+endif
+ifeq ($(ADK_TARGET_FS),initramfspiggyback)
+targethelp:
+ @echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+endif
+endif
+
+kernel-strip:
+
+kernel-install: kernel-strip
+ @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
+
# filesystem specific targets
ifeq ($(ADK_TARGET_FS),initramfs)
imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
diff --git a/target/lm32/kernel/qemu-lm32 b/target/lm32/kernel/qemu-lm32
index cc589a506..b82eb9069 100644
--- a/target/lm32/kernel/qemu-lm32
+++ b/target/lm32/kernel/qemu-lm32
@@ -1,5 +1,5 @@
CONFIG_LM32=y
-CONFIG_PLAT_MILKYMIST=y
-CONFIG_CPU_MICO32=y
-CONFIG_BOARD_MILKYMIST_ONE=y
+CONFIG_BLK_DEV_INITRD=y
CONFIG_BUG=y
+CONFIG_BINFMT_MISC=y
+CONFIG_RD_GZIP=y
diff --git a/target/lm32/systems/qemu-lm32 b/target/lm32/systems/qemu-lm32
index f729902d8..ad573472c 100644
--- a/target/lm32/systems/qemu-lm32
+++ b/target/lm32/systems/qemu-lm32
@@ -2,7 +2,7 @@ config ADK_TARGET_SYSTEM_QEMU_LM32
bool "Qemu Emulator"
select ADK_TARGET_QEMU
select ADK_TARGET_CPU_LM32
- select ADK_TARGET_UCLINUX
+ select ADK_TARGET_KERNEL_SIMPLEIMAGE
help
Support for Qemu Emulator LM32 architecture.
diff --git a/target/lm32/uclibc-ng-nommu.config b/target/lm32/uclibc-ng-nommu.config
new file mode 100644
index 000000000..dbdf5613c
--- /dev/null
+++ b/target/lm32/uclibc-ng-nommu.config
@@ -0,0 +1,212 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# uClibc-ng 1.0.44 C Library Configuration
+#
+# TARGET_aarch64 is not set
+# TARGET_alpha is not set
+# TARGET_arc is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_c6x is not set
+# TARGET_cris is not set
+# TARGET_csky is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_ia64 is not set
+# TARGET_kvx is not set
+TARGET_lm32=y
+# TARGET_m68k is not set
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nds32 is not set
+# TARGET_nios2 is not set
+# TARGET_or1k is not set
+# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_sparc64 is not set
+# TARGET_tile is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="lm32"
+FORCE_OPTIONS_FOR_ARCH=y
+TARGET_SUBARCH=""
+UCLIBC_FORMAT_FLAT=y
+# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
+# UCLIBC_FORMAT_SHARED_FLAT is not set
+ARCH_HAS_DEPRECATED_SYSCALLS=y
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_NO_MMU=y
+
+#
+# Target CPU lacks a memory management unit (MMU)
+#
+UCLIBC_HAS_FLOATS=y
+# UCLIBC_HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+DO_XSI_MATH=y
+# UCLIBC_HAS_LONG_DOUBLE_MATH is not set
+KERNEL_HEADERS=""
+UCLIBC_UCLINUX_BROKEN_MUNMAP=y
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+HAVE_NO_PIC=y
+ARCH_HAS_NO_SHARED=y
+ARCH_HAS_NO_LDSO=y
+HAS_NO_THREADS=y
+# UCLIBC_HAS_LINUXTHREADS is not set
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+MALLOC_SIMPLE=y
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_SUSV2_LEGACY=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_SHA256_CRYPT_IMPL=y
+UCLIBC_HAS_SHA512_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+# UCLIBC_HAS_NETWORK_SUPPORT is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+# UCLIBC_HAS_WCHAR is not set
+# UCLIBC_HAS_LIBICONV is not set
+# UCLIBC_HAS_LIBINTL is not set
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set
+# USE_OLD_VFPRINTF is not set
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GETOPT_LONG=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+# UCLIBC_HAS_ARGP is not set
+
+#
+# Big and Tall
+#
+# UCLIBC_HAS_REGEX is not set
+# UCLIBC_HAS_FNMATCH is not set
+# UCLIBC_HAS_NFTW is not set
+# UCLIBC_HAS_FTW is not set
+# UCLIBC_HAS_FTS is not set
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+# UCLIBC_HAS_SSP is not set
+# UCLIBC_BUILD_NOEXECSTACK is not set
+
+#
+# Development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DOSTRIP is not set
+# DOASSERTS is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
diff --git a/target/lm32/uclibc-ng.config b/target/lm32/uclibc-ng.config
deleted file mode 100644
index 04fafd377..000000000
--- a/target/lm32/uclibc-ng.config
+++ /dev/null
@@ -1,221 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
-#
-# TARGET_aarch64 is not set
-# TARGET_alpha is not set
-# TARGET_arc is not set
-# TARGET_arm is not set
-# TARGET_avr32 is not set
-# TARGET_bfin is not set
-# TARGET_c6x is not set
-# TARGET_cris is not set
-# TARGET_frv is not set
-# TARGET_h8300 is not set
-# TARGET_hppa is not set
-# TARGET_i386 is not set
-# TARGET_ia64 is not set
-TARGET_lm32=y
-# TARGET_m68k is not set
-# TARGET_metag is not set
-# TARGET_microblaze is not set
-# TARGET_mips is not set
-# TARGET_nds32 is not set
-# TARGET_nios2 is not set
-# TARGET_or1k is not set
-# TARGET_powerpc is not set
-# TARGET_sh is not set
-# TARGET_sparc is not set
-# TARGET_sparc64 is not set
-# TARGET_x86_64 is not set
-# TARGET_xtensa is not set
-
-#
-# Target Architecture Features and Options
-#
-TARGET_ARCH="lm32"
-FORCE_OPTIONS_FOR_ARCH=y
-TARGET_SUBARCH=""
-UCLIBC_FORMAT_FLAT=y
-# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
-# UCLIBC_FORMAT_SHARED_FLAT is not set
-ARCH_HAS_DEPRECATED_SYSCALLS=y
-ARCH_BIG_ENDIAN=y
-
-#
-# Using Big Endian
-#
-ARCH_HAS_NO_MMU=y
-
-#
-# Target CPU lacks a memory management unit (MMU)
-#
-UCLIBC_HAS_FLOATS=y
-UCLIBC_HAS_FPU=y
-DO_C99_MATH=y
-DO_XSI_MATH=y
-# UCLIBC_HAS_FENV is not set
-UCLIBC_HAS_LONG_DOUBLE_MATH=y
-KERNEL_HEADERS=""
-UCLIBC_UCLINUX_BROKEN_MUNMAP=y
-HAVE_DOT_CONFIG=y
-
-#
-# General Library Settings
-#
-HAVE_NO_PIC=y
-ARCH_HAS_NO_SHARED=y
-ARCH_HAS_NO_LDSO=y
-UCLIBC_CTOR_DTOR=y
-# HAS_NO_THREADS is not set
-UCLIBC_HAS_LINUXTHREADS=y
-UCLIBC_HAS_THREADS=y
-PTHREADS_DEBUG_SUPPORT=y
-UCLIBC_HAS_SYSLOG=y
-UCLIBC_HAS_LFS=y
-MALLOC=y
-# MALLOC_SIMPLE is not set
-UCLIBC_DYNAMIC_ATEXIT=y
-UCLIBC_HAS_UTMPX=y
-UCLIBC_HAS_UTMP=y
-UCLIBC_SUSV2_LEGACY=y
-UCLIBC_SUSV3_LEGACY=y
-# UCLIBC_SUSV3_LEGACY_MACROS is not set
-UCLIBC_SUSV4_LEGACY=y
-# UCLIBC_STRICT_HEADERS is not set
-# UCLIBC_HAS_STUBS is not set
-UCLIBC_HAS_SHADOW=y
-UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
-UCLIBC_HAS___PROGNAME=y
-UCLIBC_HAS_PTY=y
-ASSUME_DEVPTS=y
-UNIX98PTY_ONLY=y
-UCLIBC_HAS_GETPT=y
-UCLIBC_HAS_LIBUTIL=y
-UCLIBC_HAS_TM_EXTENSIONS=y
-UCLIBC_HAS_TZ_CACHING=y
-UCLIBC_HAS_TZ_FILE=y
-UCLIBC_HAS_TZ_FILE_READ_MANY=y
-UCLIBC_TZ_FILE_PATH="/etc/TZ"
-UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
-
-#
-# Advanced Library Settings
-#
-UCLIBC_PWD_BUFFER_SIZE=256
-UCLIBC_GRP_BUFFER_SIZE=256
-
-#
-# Support various families of functions
-#
-UCLIBC_LINUX_SPECIFIC=y
-UCLIBC_HAS_GNU_ERROR=y
-UCLIBC_BSD_SPECIFIC=y
-UCLIBC_HAS_BSD_ERR=y
-UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
-# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
-# UCLIBC_NTP_LEGACY is not set
-UCLIBC_SV4_DEPRECATED=y
-UCLIBC_HAS_REALTIME=y
-UCLIBC_HAS_ADVANCED_REALTIME=y
-UCLIBC_HAS_EPOLL=y
-UCLIBC_HAS_XATTR=y
-# UCLIBC_HAS_PROFILING is not set
-UCLIBC_HAS_CRYPT_IMPL=y
-UCLIBC_HAS_SHA256_CRYPT_IMPL=y
-UCLIBC_HAS_SHA512_CRYPT_IMPL=y
-UCLIBC_HAS_CRYPT=y
-UCLIBC_HAS_NETWORK_SUPPORT=y
-UCLIBC_HAS_SOCKET=y
-UCLIBC_HAS_IPV4=y
-UCLIBC_HAS_IPV6=y
-UCLIBC_USE_NETLINK=y
-UCLIBC_SUPPORT_AI_ADDRCONFIG=y
-UCLIBC_HAS_BSD_RES_CLOSE=y
-UCLIBC_HAS_COMPAT_RES_STATE=y
-# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
-UCLIBC_HAS_RESOLVER_SUPPORT=y
-
-#
-# String and Stdio Support
-#
-UCLIBC_HAS_STRING_GENERIC_OPT=y
-UCLIBC_HAS_STRING_ARCH_OPT=y
-UCLIBC_HAS_CTYPE_TABLES=y
-UCLIBC_HAS_CTYPE_SIGNED=y
-# UCLIBC_HAS_CTYPE_UNSAFE is not set
-UCLIBC_HAS_CTYPE_CHECKED=y
-# UCLIBC_HAS_CTYPE_ENFORCED is not set
-UCLIBC_HAS_WCHAR=y
-# UCLIBC_HAS_LIBICONV is not set
-# UCLIBC_HAS_LIBINTL is not set
-# UCLIBC_HAS_LOCALE is not set
-UCLIBC_HAS_HEXADECIMAL_FLOATS=y
-UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
-UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
-# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
-UCLIBC_HAS_STDIO_BUFSIZ_4096=y
-# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
-UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
-# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
-UCLIBC_HAS_STDIO_GETC_MACRO=y
-UCLIBC_HAS_STDIO_PUTC_MACRO=y
-UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
-# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
-UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
-UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
-UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
-UCLIBC_HAS_PRINTF_M_SPEC=y
-UCLIBC_HAS_ERRNO_MESSAGES=y
-# UCLIBC_HAS_SYS_ERRLIST is not set
-UCLIBC_HAS_SIGNUM_MESSAGES=y
-# UCLIBC_HAS_SYS_SIGLIST is not set
-UCLIBC_HAS_GNU_GETOPT=y
-UCLIBC_HAS_GETOPT_LONG=y
-UCLIBC_HAS_GNU_GETSUBOPT=y
-UCLIBC_HAS_ARGP=y
-
-#
-# Big and Tall
-#
-UCLIBC_HAS_REGEX=y
-UCLIBC_HAS_FNMATCH=y
-UCLIBC_HAS_WORDEXP=y
-UCLIBC_HAS_NFTW=y
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_FTS=y
-UCLIBC_HAS_GLOB=y
-UCLIBC_HAS_GNU_GLOB=y
-
-#
-# Library Installation Options
-#
-RUNTIME_PREFIX="/"
-DEVEL_PREFIX="/usr/"
-MULTILIB_DIR="lib"
-HARDWIRED_ABSPATH=y
-
-#
-# Security options
-#
-# UCLIBC_HAS_ARC4RANDOM is not set
-# UCLIBC_HAS_SSP is not set
-UCLIBC_BUILD_NOEXECSTACK=y
-
-#
-# Development/debugging options
-#
-CROSS_COMPILER_PREFIX=""
-UCLIBC_EXTRA_CFLAGS=""
-# DODEBUG is not set
-# DODEBUG_PT is not set
-# DOSTRIP is not set
-# DOASSERTS is not set
-# UCLIBC_MALLOC_DEBUGGING is not set
-WARNINGS="-Wall"
-# EXTRA_WARNINGS is not set
diff --git a/target/loongarch/Makefile b/target/loongarch/Makefile
new file mode 100644
index 000000000..c238b5e62
--- /dev/null
+++ b/target/loongarch/Makefile
@@ -0,0 +1,62 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+include $(ADK_TOPDIR)/mk/kernel-build.mk
+include $(ADK_TOPDIR)/mk/image.mk
+
+KERNEL:=$(LINUX_DIR)/arch/loongarch/boot/vmlinux.efi
+
+QEMU_ARGS:=-M virt -bios target/loongarch/QEMU_EFI.fd -append "console=ttyS0,115200"
+QEMU_ARGS+=-nographic
+#
+# target helper text
+ifeq ($(ADK_TARGET_FS),archive)
+targethelp:
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "Use following command to create a QEMU Image:"
+ @echo "./scripts/create.sh qemu-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+ @echo "Start qemu with following options:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${ADK_TARGET_CPU_ARCH}.img'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfs)
+targethelp:
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),initramfsarchive)
+targethelp:
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
+endif
+ifeq ($(ADK_TARGET_FS),initramfspiggyback)
+targethelp:
+ @echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+endif
+endif
+
+kernel-strip:
+
+kernel-install: kernel-strip
+ @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
+
+# filesystem specific targets
+ifeq ($(ADK_TARGET_FS),initramfs)
+imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
+endif
+ifeq ($(ADK_TARGET_FS),initramfsarchive)
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
+endif
+ifeq ($(ADK_TARGET_FS),initramfspiggyback)
+imageinstall: createinitramfs targethelp
+endif
diff --git a/target/loongarch/QEMU_EFI.fd b/target/loongarch/QEMU_EFI.fd
new file mode 100644
index 000000000..f1fc9dc4c
--- /dev/null
+++ b/target/loongarch/QEMU_EFI.fd
Binary files differ
diff --git a/target/loongarch/kernel/qemu-loongarch b/target/loongarch/kernel/qemu-loongarch
new file mode 100644
index 000000000..579c3f26e
--- /dev/null
+++ b/target/loongarch/kernel/qemu-loongarch
@@ -0,0 +1,10 @@
+CONFIG_LOONGARCH=y
+CONFIG_64BIT=y
+CONFIG_MACH_LOONGSON64=y
+CONFIG_ACPI=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_EFI=y
+CONFIG_EFI_STUB=y
+CONFIG_SMP=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
diff --git a/target/loongarch/systems/qemu-loongarch b/target/loongarch/systems/qemu-loongarch
new file mode 100644
index 000000000..3b5d940de
--- /dev/null
+++ b/target/loongarch/systems/qemu-loongarch
@@ -0,0 +1,8 @@
+config ADK_TARGET_SYSTEM_QEMU_LOONGARCH
+ bool "Qemu Emulator"
+ select ADK_TARGET_QEMU
+ select ADK_TARGET_CPU_LOONGARCH
+ select ADK_TARGET_KERNEL_VMLINUX_EFI
+ help
+ Support for Qemu Emulator Loongarch architecture.
+
diff --git a/target/m68k/Makefile b/target/m68k/Makefile
index 0ffd9b8a2..0b742ed19 100644
--- a/target/m68k/Makefile
+++ b/target/m68k/Makefile
@@ -8,6 +8,12 @@ include $(ADK_TOPDIR)/mk/image.mk
KERNEL:=$(LINUX_DIR)/vmlinux
QEMU_ARGS:=${ADK_QEMU_ARGS}
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_M68K_VIRT),y)
+QEMU_ARGS+=-M virt -m 512M -netdev user,id=eth0 -device virtio-net-device,netdev=eth0
+ifeq ($(ADK_TARGET_FS),archive)
+QEMU_ARGS+=-append "rootwait root=/dev/vda1 ro" -drive file=qemu-m68k.img,format=raw,id=hd0 -device virtio-blk-device,drive=hd0
+endif
+endif
ifeq ($(ADK_TARGET_SYSTEM_QEMU_M68K_Q800),y)
QEMU_ARGS+=-M q800
endif
@@ -24,9 +30,13 @@ ifeq ($(ADK_TARGET_QEMU),y)
@echo "Use following command to create a QEMU Image:"
@echo "./scripts/create.sh qemu-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSUSERTARBALL)"
@echo "Start qemu with following options:"
+ifeq ($(ADK_TARGET_SYSTEM_QEMU_M68K_VIRT),y)
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+else
@echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${ADK_TARGET_CPU_ARCH}.img'
endif
endif
+endif
ifeq ($(ADK_TARGET_FS),initramfs)
targethelp:
@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
diff --git a/target/m68k/kernel/aranym-m68k b/target/m68k/kernel/aranym-m68k
index fb084e4b9..9a4db207a 100644
--- a/target/m68k/kernel/aranym-m68k
+++ b/target/m68k/kernel/aranym-m68k
@@ -6,3 +6,4 @@ CONFIG_FPU=y
CONFIG_ATARI=y
CONFIG_NATFEAT=y
CONFIG_NFETH=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/m68k/kernel/qemu-m68k-mcf5208 b/target/m68k/kernel/qemu-m68k-mcf5208
index a54ecadd9..9cfa4b601 100644
--- a/target/m68k/kernel/qemu-m68k-mcf5208
+++ b/target/m68k/kernel/qemu-m68k-mcf5208
@@ -1,4 +1,5 @@
CONFIG_M68K=y
+# CONFIG_MMU is not set
CONFIG_COLDFIRE=y
CONFIG_M520x=y
CONFIG_CLOCK_SET=y
@@ -14,3 +15,5 @@ CONFIG_4KSTACKS=y
CONFIG_RAMKERNEL=y
CONFIG_BOOTPARAM=y
CONFIG_BOOTPARAM_STRING="console=ttyS0,115200"
+CONFIG_CRC32=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/m68k/kernel/qemu-m68k-q800 b/target/m68k/kernel/qemu-m68k-q800
index 05324c42b..69cac7e51 100644
--- a/target/m68k/kernel/qemu-m68k-q800
+++ b/target/m68k/kernel/qemu-m68k-q800
@@ -7,3 +7,4 @@ CONFIG_ADB=y
CONFIG_ADB_MACII=y
CONFIG_BOOTPARAM=y
CONFIG_BOOTPARAM_STRING=""
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/m68k/kernel/qemu-m68k-virt b/target/m68k/kernel/qemu-m68k-virt
new file mode 100644
index 000000000..47e9200d4
--- /dev/null
+++ b/target/m68k/kernel/qemu-m68k-virt
@@ -0,0 +1,3 @@
+CONFIG_M68K=y
+CONFIG_VIRT=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/m68k/qemu-m68k-mcf5208/patches/3.18.44/m68k-coldfire-fec.patch b/target/m68k/qemu-m68k-mcf5208/patches/3.18.44/m68k-coldfire-fec.patch
deleted file mode 100644
index ceaa21ce6..000000000
--- a/target/m68k/qemu-m68k-mcf5208/patches/3.18.44/m68k-coldfire-fec.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-diff -Nur linux-3.18.2.orig/drivers/net/ethernet/freescale/fec_main.c linux-3.18.2/drivers/net/ethernet/freescale/fec_main.c
---- linux-3.18.2.orig/drivers/net/ethernet/freescale/fec_main.c 2015-01-08 12:30:41.000000000 -0600
-+++ linux-3.18.2/drivers/net/ethernet/freescale/fec_main.c 2015-01-11 20:34:04.690309863 -0600
-@@ -136,7 +136,7 @@
- module_param_array(macaddr, byte, NULL, 0);
- MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address");
-
--#if defined(CONFIG_M5272)
-+#if defined(CONFIG_COLDFIRE)
- /*
- * Some hardware gets it MAC address out of local flash memory.
- * if this is non-zero then assume it is the address to get MAC from.
-@@ -154,7 +154,7 @@
- #else
- #define FEC_FLASHMAC 0
- #endif
--#endif /* CONFIG_M5272 */
-+#endif /* CONFIG_COLDFIRE */
-
- /* The FEC stores dest/src/type/vlan, data, and checksum for receive packets.
- */
-@@ -978,7 +978,7 @@
- /* Set MII speed */
- writel(fep->phy_speed, fep->hwp + FEC_MII_SPEED);
-
--#if !defined(CONFIG_M5272)
-+#if !defined(CONFIG_COLDFIRE)
- /* set RX checksum */
- val = readl(fep->hwp + FEC_RACC);
- if (fep->csum_flags & FLAG_RX_CSUM_ENABLED)
-@@ -1039,7 +1039,7 @@
- #endif
- }
-
--#if !defined(CONFIG_M5272)
-+#if !defined(CONFIG_COLDFIRE)
- /* enable pause frame*/
- if ((fep->pause_flag & FEC_PAUSE_FLAG_ENABLE) ||
- ((fep->pause_flag & FEC_PAUSE_FLAG_AUTONEG) &&
-@@ -1057,13 +1057,13 @@
- } else {
- rcntl &= ~FEC_ENET_FCE;
- }
--#endif /* !defined(CONFIG_M5272) */
-+#endif /* !defined(CONFIG_COLDFIRE) */
-
- writel(rcntl, fep->hwp + FEC_R_CNTRL);
-
- /* Setup multicast filter. */
- set_multicast_list(ndev);
--#ifndef CONFIG_M5272
-+#ifndef CONFIG_COLDFIRE
- writel(0, fep->hwp + FEC_HASH_TABLE_HIGH);
- writel(0, fep->hwp + FEC_HASH_TABLE_LOW);
- #endif
-@@ -1078,7 +1078,7 @@
- if (fep->bufdesc_ex)
- ecntl |= (1 << 4);
-
--#ifndef CONFIG_M5272
-+#ifndef CONFIG_COLDFIRE
- /* Enable the MIB statistic event counters */
- writel(0 << 31, fep->hwp + FEC_MIB_CTRLSTAT);
- #endif
-@@ -1656,7 +1656,7 @@
- * 3) from flash or fuse (via platform data)
- */
- if (!is_valid_ether_addr(iap)) {
--#ifdef CONFIG_M5272
-+#ifdef CONFIG_COLDFIRE
- if (FEC_FLASHMAC)
- iap = (unsigned char *)FEC_FLASHMAC;
- #else
-@@ -1930,7 +1930,7 @@
- if (id_entry->driver_data & FEC_QUIRK_HAS_GBIT) {
- phy_dev->supported &= PHY_GBIT_FEATURES;
- phy_dev->supported &= ~SUPPORTED_1000baseT_Half;
--#if !defined(CONFIG_M5272)
-+#if !defined(CONFIG_COLDFIRE)
- phy_dev->supported |= SUPPORTED_Pause;
- #endif
- }
-@@ -2125,7 +2125,7 @@
- }
- }
-
--#if !defined(CONFIG_M5272)
-+#if !defined(CONFIG_COLDFIRE)
-
- static void fec_enet_get_pauseparam(struct net_device *ndev,
- struct ethtool_pauseparam *pause)
-@@ -2280,7 +2280,7 @@
- return -EOPNOTSUPP;
- }
- }
--#endif /* !defined(CONFIG_M5272) */
-+#endif /* !defined(CONFIG_COLDFIRE) */
-
- static int fec_enet_nway_reset(struct net_device *dev)
- {
-@@ -2466,7 +2466,7 @@
- .get_link = ethtool_op_get_link,
- .get_coalesce = fec_enet_get_coalesce,
- .set_coalesce = fec_enet_set_coalesce,
--#ifndef CONFIG_M5272
-+#ifndef CONFIG_COLDFIRE
- .get_pauseparam = fec_enet_get_pauseparam,
- .set_pauseparam = fec_enet_set_pauseparam,
- .get_strings = fec_enet_get_strings,
-@@ -3164,7 +3164,7 @@
- fep->num_rx_queues = num_rx_qs;
- fep->num_tx_queues = num_tx_qs;
-
--#if !defined(CONFIG_M5272)
-+#if !defined(CONFIG_COLDFIRE)
- /* default enable pause frame auto negotiation */
- if (pdev->id_entry &&
- (pdev->id_entry->driver_data & FEC_QUIRK_HAS_GBIT))
diff --git a/target/m68k/qemu-m68k-mcf5208/patches/4.1.35/m68k-coldfire-fec.patch b/target/m68k/qemu-m68k-mcf5208/patches/4.1.35/m68k-coldfire-fec.patch
deleted file mode 100644
index 690befe8f..000000000
--- a/target/m68k/qemu-m68k-mcf5208/patches/4.1.35/m68k-coldfire-fec.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-diff -Nur linux-4.1.10.orig/drivers/net/ethernet/freescale/fec_main.c linux-4.1.10/drivers/net/ethernet/freescale/fec_main.c
---- linux-4.1.10.orig/drivers/net/ethernet/freescale/fec_main.c 2015-10-03 13:49:38.000000000 +0200
-+++ linux-4.1.10/drivers/net/ethernet/freescale/fec_main.c 2015-10-31 18:05:40.000000000 +0100
-@@ -137,7 +137,7 @@
- module_param_array(macaddr, byte, NULL, 0);
- MODULE_PARM_DESC(macaddr, "FEC Ethernet MAC address");
-
--#if defined(CONFIG_M5272)
-+#if defined(CONFIG_COLDFIRE)
- /*
- * Some hardware gets it MAC address out of local flash memory.
- * if this is non-zero then assume it is the address to get MAC from.
-@@ -155,7 +155,7 @@
- #else
- #define FEC_FLASHMAC 0
- #endif
--#endif /* CONFIG_M5272 */
-+#endif /* CONFIG_COLDFIRE */
-
- /* The FEC stores dest/src/type/vlan, data, and checksum for receive packets.
- */
-@@ -969,7 +969,7 @@
- /* Set MII speed */
- writel(fep->phy_speed, fep->hwp + FEC_MII_SPEED);
-
--#if !defined(CONFIG_M5272)
-+#if !defined(CONFIG_COLDFIRE)
- /* set RX checksum */
- val = readl(fep->hwp + FEC_RACC);
- if (fep->csum_flags & FLAG_RX_CSUM_ENABLED)
-@@ -1033,7 +1033,7 @@
- #endif
- }
-
--#if !defined(CONFIG_M5272)
-+#if !defined(CONFIG_COLDFIRE)
- /* enable pause frame*/
- if ((fep->pause_flag & FEC_PAUSE_FLAG_ENABLE) ||
- ((fep->pause_flag & FEC_PAUSE_FLAG_AUTONEG) &&
-@@ -1051,13 +1051,13 @@
- } else {
- rcntl &= ~FEC_ENET_FCE;
- }
--#endif /* !defined(CONFIG_M5272) */
-+#endif /* !defined(CONFIG_COLDFIRE) */
-
- writel(rcntl, fep->hwp + FEC_R_CNTRL);
-
- /* Setup multicast filter. */
- set_multicast_list(ndev);
--#ifndef CONFIG_M5272
-+#ifndef CONFIG_COLDFIRE
- writel(0, fep->hwp + FEC_HASH_TABLE_HIGH);
- writel(0, fep->hwp + FEC_HASH_TABLE_LOW);
- #endif
-@@ -1072,7 +1072,7 @@
- if (fep->bufdesc_ex)
- ecntl |= (1 << 4);
-
--#ifndef CONFIG_M5272
-+#ifndef CONFIG_COLDFIRE
- /* Enable the MIB statistic event counters */
- writel(0 << 31, fep->hwp + FEC_MIB_CTRLSTAT);
- #endif
-@@ -1657,7 +1657,7 @@
- * 3) from flash or fuse (via platform data)
- */
- if (!is_valid_ether_addr(iap)) {
--#ifdef CONFIG_M5272
-+#ifdef CONFIG_COLDFIRE
- if (FEC_FLASHMAC)
- iap = (unsigned char *)FEC_FLASHMAC;
- #else
-@@ -1931,7 +1931,7 @@
- if (fep->quirks & FEC_QUIRK_HAS_GBIT) {
- phy_dev->supported &= PHY_GBIT_FEATURES;
- phy_dev->supported &= ~SUPPORTED_1000baseT_Half;
--#if !defined(CONFIG_M5272)
-+#if !defined(CONFIG_COLDFIRE)
- phy_dev->supported |= SUPPORTED_Pause;
- #endif
- }
-@@ -2148,7 +2148,7 @@
- }
- }
-
--#if !defined(CONFIG_M5272)
-+#if !defined(CONFIG_COLDFIRE)
-
- static void fec_enet_get_pauseparam(struct net_device *ndev,
- struct ethtool_pauseparam *pause)
-@@ -2303,7 +2303,7 @@
- return -EOPNOTSUPP;
- }
- }
--#endif /* !defined(CONFIG_M5272) */
-+#endif /* !defined(CONFIG_COLDFIRE) */
-
- static int fec_enet_nway_reset(struct net_device *dev)
- {
-@@ -2520,7 +2520,7 @@
- .get_link = ethtool_op_get_link,
- .get_coalesce = fec_enet_get_coalesce,
- .set_coalesce = fec_enet_set_coalesce,
--#ifndef CONFIG_M5272
-+#ifndef CONFIG_COLDFIRE
- .get_pauseparam = fec_enet_get_pauseparam,
- .set_pauseparam = fec_enet_set_pauseparam,
- .get_strings = fec_enet_get_strings,
-@@ -3220,7 +3220,7 @@
- fep->num_rx_queues = num_rx_qs;
- fep->num_tx_queues = num_tx_qs;
-
--#if !defined(CONFIG_M5272)
-+#if !defined(CONFIG_COLDFIRE)
- /* default enable pause frame auto negotiation */
- if (fep->quirks & FEC_QUIRK_HAS_GBIT)
- fep->pause_flag |= FEC_PAUSE_FLAG_AUTONEG;
diff --git a/target/m68k/systems/qemu-m68k-mcf5208 b/target/m68k/systems/qemu-m68k-mcf5208
index 921300bbc..8adcbc3a7 100644
--- a/target/m68k/systems/qemu-m68k-mcf5208
+++ b/target/m68k/systems/qemu-m68k-mcf5208
@@ -2,8 +2,7 @@ config ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208
bool "Qemu M68K (Coldfire MCF5208)"
select ADK_TARGET_QEMU
select ADK_TARGET_CPU_CF_5208
- select ADK_TARGET_BINFMT_FLAT
- select ADK_TARGET_UCLINUX
+ select ADK_TARGET_UCLINUX if ADK_TARGET_BINFMT_FLAT
select ADK_TARGET_KERNEL_ZIMAGE
select ADK_TARGET_KERNEL_WITH_COMPRESSION
help
diff --git a/target/m68k/systems/qemu-m68k-virt b/target/m68k/systems/qemu-m68k-virt
new file mode 100644
index 000000000..55493b9f1
--- /dev/null
+++ b/target/m68k/systems/qemu-m68k-virt
@@ -0,0 +1,10 @@
+config ADK_TARGET_SYSTEM_QEMU_M68K_VIRT
+ bool "Qemu M68K (virt)"
+ select ADK_TARGET_QEMU
+ select ADK_TARGET_WITH_MMU
+ select ADK_TARGET_CPU_M68K_68040
+ select ADK_TARGET_KERNEL_ZIMAGE
+ select ADK_TARGET_KERNEL_WITH_COMPRESSION
+ help
+ Support for Qemu Emulator with M68K architecture (virt).
+
diff --git a/target/m68k/uclibc-ng-nommu.config b/target/m68k/uclibc-ng-nommu.config
new file mode 100644
index 000000000..ce2bcc269
--- /dev/null
+++ b/target/m68k/uclibc-ng-nommu.config
@@ -0,0 +1,229 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# uClibc-ng 1.0.45 C Library Configuration
+#
+# TARGET_aarch64 is not set
+# TARGET_alpha is not set
+# TARGET_arc is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_c6x is not set
+# TARGET_cris is not set
+# TARGET_csky is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_ia64 is not set
+# TARGET_kvx is not set
+# TARGET_lm32 is not set
+TARGET_m68k=y
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nds32 is not set
+# TARGET_nios2 is not set
+# TARGET_or1k is not set
+# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_sparc64 is not set
+# TARGET_tile is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="m68k"
+FORCE_OPTIONS_FOR_ARCH=y
+TARGET_SUBARCH=""
+UCLIBC_FORMAT_ELF=y
+# UCLIBC_FORMAT_FLAT is not set
+# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
+# UCLIBC_FORMAT_SHARED_FLAT is not set
+ARCH_HAS_DEPRECATED_SYSCALLS=y
+ARCH_BIG_ENDIAN=y
+
+#
+# Using Big Endian
+#
+ARCH_HAS_MMU=y
+# ARCH_USE_MMU is not set
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+DO_XSI_MATH=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS=""
+UCLIBC_UCLINUX_BROKEN_MUNMAP=y
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+DOPIC=y
+STATIC_PIE=y
+ARCH_HAS_NO_SHARED=y
+HAVE_LDSO=y
+UCLIBC_CTOR_DTOR=y
+HAS_NO_THREADS=y
+# UCLIBC_HAS_LINUXTHREADS is not set
+PTHREADS_STACK_DEFAULT_SIZE=2097152
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+MALLOC=y
+# MALLOC_SIMPLE is not set
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_SUSV2_LEGACY=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_SHA256_CRYPT_IMPL=y
+UCLIBC_HAS_SHA512_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LIBICONV is not set
+# UCLIBC_HAS_LIBINTL is not set
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GETOPT_LONG=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_ARGP=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_FTS=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# Development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DOSTRIP is not set
+# DOASSERTS is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
diff --git a/target/m68k/uclibc-ng.config b/target/m68k/uclibc-ng.config
index 15e820611..7c8422128 100644
--- a/target/m68k/uclibc-ng.config
+++ b/target/m68k/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.27 C Library Configuration
+# uClibc-ng 1.0.45 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -16,6 +16,7 @@
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_ia64 is not set
+# TARGET_kvx is not set
# TARGET_lm32 is not set
TARGET_m68k=y
# TARGET_metag is not set
@@ -25,11 +26,16 @@ TARGET_m68k=y
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
#
# Target Architecture Features and Options
@@ -61,22 +67,23 @@ HAVE_DOT_CONFIG=y
# General Library Settings
#
DOPIC=y
+# STATIC_PIE is not set
+HAVE_LDSO=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
LDSO_CACHE_SUPPORT=y
-# LDSO_PRELOAD_ENV_SUPPORT is not set
+LDSO_PRELOAD_ENV_SUPPORT=y
# LDSO_PRELOAD_FILE_SUPPORT is not set
LDSO_BASE_FILENAME="ld.so"
# LDSO_STANDALONE_SUPPORT is not set
# LDSO_PRELINK_SUPPORT is not set
-# UCLIBC_STATIC_LDCONFIG is not set
+UCLIBC_STATIC_LDCONFIG=y
LDSO_RUNPATH=y
-LDSO_RUNPATH_OF_EXECUTABLE=y
+# LDSO_RUNPATH_OF_EXECUTABLE is not set
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -85,11 +92,12 @@ UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
-# MALLOC is not set
+MALLOC=y
# MALLOC_SIMPLE is not set
-MALLOC_STANDARD=y
+# MALLOC_STANDARD is not set
UCLIBC_DYNAMIC_ATEXIT=y
UCLIBC_HAS_UTMPX=y
UCLIBC_HAS_UTMP=y
@@ -113,6 +121,7 @@ UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
#
# Advanced Library Settings
@@ -128,6 +137,7 @@ UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_SV4_DEPRECATED=y
@@ -150,6 +160,10 @@ UCLIBC_HAS_BSD_RES_CLOSE=y
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
#
# String and Stdio Support
@@ -219,9 +233,8 @@ HARDWIRED_ABSPATH=y
#
# Security options
#
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
-# UCLIBC_BUILD_RELRO is not set
+UCLIBC_BUILD_RELRO=y
# UCLIBC_BUILD_NOW is not set
UCLIBC_BUILD_NOEXECSTACK=y
diff --git a/target/microblaze/kernel/qemu-microblaze-ml605 b/target/microblaze/kernel/qemu-microblaze-ml605
index 932843c13..9749c22fa 100644
--- a/target/microblaze/kernel/qemu-microblaze-ml605
+++ b/target/microblaze/kernel/qemu-microblaze-ml605
@@ -13,3 +13,4 @@ CONFIG_XILINX_MICROBLAZE0_HW_VER="8.10.a"
CONFIG_PCI_XILINX=y
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE_FORCE=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/microblaze/kernel/qemu-microblaze-s3adsp1800 b/target/microblaze/kernel/qemu-microblaze-s3adsp1800
index cf8c3a91c..91a7dc577 100644
--- a/target/microblaze/kernel/qemu-microblaze-s3adsp1800
+++ b/target/microblaze/kernel/qemu-microblaze-s3adsp1800
@@ -13,3 +13,4 @@ CONFIG_XILINX_MICROBLAZE0_HW_VER="7.10.d"
CONFIG_PCI_XILINX=y
CONFIG_CMDLINE_FORCE=y
CONFIG_CMDLINE_BOOL=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/microblaze/uclibc-ng.config b/target/microblaze/uclibc-ng.config
index 30a782ca3..77848e598 100644
--- a/target/microblaze/uclibc-ng.config
+++ b/target/microblaze/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
+# uClibc-ng 1.0.45 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -10,11 +10,13 @@
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
+# TARGET_csky is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_ia64 is not set
+# TARGET_kvx is not set
# TARGET_lm32 is not set
# TARGET_m68k is not set
# TARGET_metag is not set
@@ -24,11 +26,16 @@ TARGET_microblaze=y
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
#
# Target Architecture Features and Options
@@ -51,7 +58,6 @@ UCLIBC_HAS_FLOATS=y
UCLIBC_HAS_FPU=y
DO_C99_MATH=y
DO_XSI_MATH=y
-# UCLIBC_HAS_FENV is not set
UCLIBC_HAS_LONG_DOUBLE_MATH=y
KERNEL_HEADERS=""
HAVE_DOT_CONFIG=y
@@ -60,6 +66,7 @@ HAVE_DOT_CONFIG=y
# General Library Settings
#
DOPIC=y
+HAVE_LDSO=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
@@ -75,7 +82,6 @@ LDSO_RUNPATH_OF_EXECUTABLE=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -84,6 +90,7 @@ UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
@@ -112,6 +119,7 @@ UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
#
# Advanced Library Settings
@@ -127,6 +135,7 @@ UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_SV4_DEPRECATED=y
@@ -149,6 +158,10 @@ UCLIBC_HAS_BSD_RES_CLOSE=y
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
#
# String and Stdio Support
@@ -218,7 +231,6 @@ HARDWIRED_ABSPATH=y
#
# Security options
#
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set
diff --git a/target/mips/Makefile b/target/mips/Makefile
index 1c35e0b24..db66205bd 100644
--- a/target/mips/Makefile
+++ b/target/mips/Makefile
@@ -38,6 +38,10 @@ ifeq ($(ADK_TARGET_SYSTEM_MIKROTIK_RB532),y)
@echo 'then install kernel and filesystem via:'
@echo 'adkinstall -c -a ${ROOTFSTARBALL}'
endif
+ifeq ($(ADK_TARGET_SYSTEM_IMGTEC_CI20),y)
+ @echo "Use following command to install it on SD card:"
+ @echo "sudo ./scripts/install.sh $(ADK_TARGET_SYSTEM) /dev/sdX $(FW_DIR)/$(ROOTFSTARBALL)"
+endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
targethelp:
diff --git a/target/mips/kernel/qemu-mips b/target/mips/kernel/qemu-mips
index 94a0a0175..85ad371b6 100644
--- a/target/mips/kernel/qemu-mips
+++ b/target/mips/kernel/qemu-mips
@@ -3,3 +3,4 @@ CONFIG_MIPS_MALTA=y
CONFIG_MIPS_BONITO64=y
CONFIG_MIPS_MSC=y
CONFIG_CMDLINE_BOOL=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/mips/systems/imgtec-ci20 b/target/mips/systems/imgtec-ci20
index 3a91f03f6..82ea79683 100644
--- a/target/mips/systems/imgtec-ci20
+++ b/target/mips/systems/imgtec-ci20
@@ -11,6 +11,7 @@ config ADK_TARGET_SYSTEM_IMGTEC_CI20
select ADK_TARGET_WITH_BLOCK
select ADK_TARGET_KERNEL_WITH_COMPRESSION
select ADK_TARGET_KERNEL_UIMAGE
+ select ADK_PACKAGE_U_BOOT
select ADK_HOST_BUILD_U_BOOT
help
Support for Imagination Creator CI20.
diff --git a/target/mips/systems/sgi-indy b/target/mips/systems/sgi-indy
deleted file mode 100644
index 0eff206b6..000000000
--- a/target/mips/systems/sgi-indy
+++ /dev/null
@@ -1,12 +0,0 @@
-config ADK_TARGET_SYSTEM_SGI_INDY
- bool "SGI Indy"
- select ADK_TARGET_BIG_ENDIAN
- select ADK_TARGET_WITH_SERIAL
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_WITH_BLOCK
- select ADK_TARGET_WITH_SCSI
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- Support for SGI Indy.
-
diff --git a/target/mips/uclibc-ng.config b/target/mips/uclibc-ng.config
index 605390055..f40befb9f 100644
--- a/target/mips/uclibc-ng.config
+++ b/target/mips/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
+# uClibc-ng 1.0.45 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -10,11 +10,13 @@
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
+# TARGET_csky is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_ia64 is not set
+# TARGET_kvx is not set
# TARGET_lm32 is not set
# TARGET_m68k is not set
# TARGET_metag is not set
@@ -24,11 +26,16 @@ TARGET_mips=y
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
#
# Target Architecture Features and Options
@@ -57,7 +64,6 @@ UCLIBC_HAS_FLOATS=y
UCLIBC_HAS_FPU=y
DO_C99_MATH=y
DO_XSI_MATH=y
-# UCLIBC_HAS_FENV is not set
UCLIBC_HAS_LONG_DOUBLE_MATH=y
KERNEL_HEADERS=""
HAVE_DOT_CONFIG=y
@@ -66,7 +72,9 @@ HAVE_DOT_CONFIG=y
# General Library Settings
#
DOPIC=y
+# STATIC_PIE is not set
ARCH_HAS_UCONTEXT=y
+HAVE_LDSO=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
@@ -76,21 +84,22 @@ LDSO_CACHE_SUPPORT=y
LDSO_BASE_FILENAME="ld.so"
# LDSO_STANDALONE_SUPPORT is not set
# LDSO_PRELINK_SUPPORT is not set
+ARCH_VDSO_SUPPORT=y
+# VDSO_SUPPORT is not set
# UCLIBC_STATIC_LDCONFIG is not set
LDSO_RUNPATH=y
LDSO_RUNPATH_OF_EXECUTABLE=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
-# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
# UCLIBC_HAS_LINUXTHREADS is not set
UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
@@ -120,6 +129,7 @@ UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
#
# Advanced Library Settings
@@ -135,6 +145,7 @@ UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_SV4_DEPRECATED=y
@@ -157,6 +168,10 @@ UCLIBC_HAS_BSD_RES_CLOSE=y
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
#
# String and Stdio Support
@@ -227,7 +242,6 @@ HARDWIRED_ABSPATH=y
# Security options
#
# UCLIBC_BUILD_PIE is not set
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set
diff --git a/target/mips64/kernel/qemu-mips64 b/target/mips64/kernel/qemu-mips64
index 1c0076b03..4d0fef235 100644
--- a/target/mips64/kernel/qemu-mips64
+++ b/target/mips64/kernel/qemu-mips64
@@ -4,3 +4,4 @@ CONFIG_MIPS32_COMPAT=y
CONFIG_MIPS32_O32=y
CONFIG_MIPS32_N32=y
CONFIG_BINFMT_ELF32=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/mips64/systems/sgi-o2 b/target/mips64/systems/sgi-o2
deleted file mode 100644
index b6a480251..000000000
--- a/target/mips64/systems/sgi-o2
+++ /dev/null
@@ -1,14 +0,0 @@
-config ADK_TARGET_SYSTEM_SGI_O2
- bool "SGI O2"
- select ADK_TARGET_BIG_ENDIAN
- select ADK_TARGET_CPU_MIPS64_MIPS4
- select ADK_TARGET_WITH_SERIAL
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_WITH_BLOCK
- select ADK_TARGET_WITH_SCSI
- select ADK_TARGET_WITH_PCI
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- Support for SGI O2.
-
diff --git a/target/nds32/uclibc-ng.config b/target/nds32/uclibc-ng.config
index ee4791b35..30fd0f31a 100644
--- a/target/nds32/uclibc-ng.config
+++ b/target/nds32/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
+# uClibc-ng 1.0.32 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -10,6 +10,7 @@
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
+# TARGET_csky is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
@@ -24,9 +25,11 @@ TARGET_nds32=y
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
@@ -78,7 +81,6 @@ LDSO_RUNPATH_OF_EXECUTABLE=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -223,7 +225,6 @@ HARDWIRED_ABSPATH=y
# Security options
#
# UCLIBC_BUILD_PIE is not set
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set
diff --git a/target/nios2/Makefile b/target/nios2/Makefile
index ca418392d..8f08701df 100644
--- a/target/nios2/Makefile
+++ b/target/nios2/Makefile
@@ -59,8 +59,7 @@ kernel-install: kernel-strip
@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
dtb-install:
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- 10m50_devboard.dtb $(MAKE_TRACE)
+ ${KERNEL_MAKE} 10m50_devboard.dtb $(MAKE_TRACE)
for x in $(LINUX_DIR)/arch/nios2/boot/*.dtb; do \
[[ -e "$$x" ]] && cp $(LINUX_DIR)/arch/nios2/boot/*.dtb $(FW_DIR); \
break; \
diff --git a/target/nios2/kernel/qemu-nios2 b/target/nios2/kernel/qemu-nios2
index 8de73edf3..19e0ac753 100644
--- a/target/nios2/kernel/qemu-nios2
+++ b/target/nios2/kernel/qemu-nios2
@@ -4,8 +4,11 @@ CONFIG_NIOS2_HW_MUL_SUPPORT=y
CONFIG_NIOS2_HW_DIV_SUPPORT=y
CONFIG_CUSTOM_CACHE_SETTINGS=y
CONFIG_NIOS2_DCACHE_SIZE=0x8000
+CONFIG_NIOS2_DCACHE_LINE_SIZE=0x20
CONFIG_NIOS2_ICACHE_SIZE=0x8000
CONFIG_NIOS2_DTB_SOURCE_BOOL=y
-CONFIG_NIOS2_DTB_SOURCE="arch/nios2/boot/dts/10m50_devboard.dts"
+CONFIG_NIOS2_DTB_SOURCE="10m50_devboard.dts"
CONFIG_CMDLINE_BOOL=y
CONFIG_NIOS2_PASS_CMDLINE=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_NIOS2_ALIGNMENT_TRAP=y
diff --git a/target/or1k/Makefile b/target/or1k/Makefile
index 030c4efe6..b9273c6f8 100644
--- a/target/or1k/Makefile
+++ b/target/or1k/Makefile
@@ -7,7 +7,7 @@ include $(ADK_TOPDIR)/mk/image.mk
KERNEL:=$(LINUX_DIR)/vmlinux
OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id
-QEMU_ARGS:=-nographic
+QEMU_ARGS:=-m 256 -nographic
# target helper text
ifeq ($(ADK_TARGET_FS),initramfs)
diff --git a/target/or1k/kernel/qemu-or1k b/target/or1k/kernel/qemu-or1k
index ee4d9d55c..e96067748 100644
--- a/target/or1k/kernel/qemu-or1k
+++ b/target/or1k/kernel/qemu-or1k
@@ -6,3 +6,4 @@ CONFIG_OPENRISC_HAVE_INST_FL1=y
CONFIG_OPENRISC_HAVE_INST_MUL=y
CONFIG_OPENRISC_HAVE_INST_DIV=y
CONFIG_OPENRISC_NO_SPR_SR_DSX=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/or1k/uclibc-ng.config b/target/or1k/uclibc-ng.config
index d4d0cf062..881c73107 100644
--- a/target/or1k/uclibc-ng.config
+++ b/target/or1k/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
+# uClibc-ng 1.0.45 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -10,11 +10,13 @@
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
+# TARGET_csky is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_ia64 is not set
+# TARGET_kvx is not set
# TARGET_lm32 is not set
# TARGET_m68k is not set
# TARGET_metag is not set
@@ -24,11 +26,16 @@
# TARGET_nios2 is not set
TARGET_or1k=y
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
#
# Target Architecture Features and Options
@@ -51,7 +58,6 @@ UCLIBC_HAS_FLOATS=y
UCLIBC_HAS_FPU=y
DO_C99_MATH=y
DO_XSI_MATH=y
-# UCLIBC_HAS_FENV is not set
UCLIBC_HAS_LONG_DOUBLE_MATH=y
KERNEL_HEADERS=""
HAVE_DOT_CONFIG=y
@@ -60,6 +66,7 @@ HAVE_DOT_CONFIG=y
# General Library Settings
#
DOPIC=y
+HAVE_LDSO=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
@@ -75,7 +82,6 @@ LDSO_RUNPATH_OF_EXECUTABLE=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -84,6 +90,7 @@ UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
@@ -112,6 +119,7 @@ UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
#
# Advanced Library Settings
@@ -127,6 +135,7 @@ UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_SV4_DEPRECATED=y
@@ -149,6 +158,10 @@ UCLIBC_HAS_BSD_RES_CLOSE=y
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
#
# String and Stdio Support
@@ -218,7 +231,6 @@ HARDWIRED_ABSPATH=y
#
# Security options
#
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set
diff --git a/target/ppc/Makefile b/target/ppc/Makefile
index f62b31110..2b143943f 100644
--- a/target/ppc/Makefile
+++ b/target/ppc/Makefile
@@ -63,12 +63,6 @@ ifeq ($(ADK_TARGET_FS),nfsroot)
targethelp:
@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
-ifeq ($(ADK_TARGET_SYSTEM_APPLE_MACMINI),y)
- @echo 'Use <alt-gr>-<win>-o-f to get into OpenFirmware on bootup, then type:'
- @echo ' 0 > boot enet:10.0.0.1,yaboot'
- @echo 'In yaboot type:'
- @echo ' boot: enet:'
-endif
endif
# image creation and kernel install
@@ -80,8 +74,7 @@ kernel-install: kernel-strip
dtb-install:
ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC_VIRTEX_ML507),y)
- env $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- -j${ADK_MAKE_JOBS} virtex440-ml507.dtb $(MAKE_TRACE)
+ ${KERNEL_MAKE} virtex440-ml507.dtb $(MAKE_TRACE)
$(CP) $(LINUX_DIR)/arch/powerpc/boot/virtex440-ml507.dtb \
$(FW_DIR)/ppc.dtb
endif
diff --git a/target/ppc/kernel/qemu-ppc-bamboo b/target/ppc/kernel/qemu-ppc-bamboo
index b12292b7b..424addb14 100644
--- a/target/ppc/kernel/qemu-ppc-bamboo
+++ b/target/ppc/kernel/qemu-ppc-bamboo
@@ -3,3 +3,4 @@ CONFIG_PPC32=y
CONFIG_44x=y
CONFIG_BAMBOO=y
CONFIG_PRINTK=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/ppc/kernel/qemu-ppc-macppc b/target/ppc/kernel/qemu-ppc-macppc
index b68a484c0..b873a3096 100644
--- a/target/ppc/kernel/qemu-ppc-macppc
+++ b/target/ppc/kernel/qemu-ppc-macppc
@@ -23,3 +23,4 @@ CONFIG_ADB_CUDA=y
CONFIG_INPUT_ADBHID=y
CONFIG_CMDLINE_BOOL=y
CONFIG_PRINTK=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/ppc/kernel/qemu-ppc-mpc8544ds b/target/ppc/kernel/qemu-ppc-mpc8544ds
index 1e51d4b07..515cf400c 100644
--- a/target/ppc/kernel/qemu-ppc-mpc8544ds
+++ b/target/ppc/kernel/qemu-ppc-mpc8544ds
@@ -9,3 +9,4 @@ CONFIG_PHYS_64BIT=y
CONFIG_SPE=y
CONFIG_PPC_UDBG_16550=y
CONFIG_DEFAULT_UIMAGE=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/ppc/systems/apple-macmini b/target/ppc/systems/apple-macmini
deleted file mode 100644
index c1652ee52..000000000
--- a/target/ppc/systems/apple-macmini
+++ /dev/null
@@ -1,13 +0,0 @@
-config ADK_TARGET_SYSTEM_APPLE_MACMINI
- bool "Apple Mac mini"
- select ADK_TARGET_CPU_PPC_7400
- select ADK_TARGET_WITH_PCI
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_WITH_BLOCK
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_USB
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- Support for Apple Mac mini.
-
diff --git a/target/ppc/uclibc-ng.config b/target/ppc/uclibc-ng.config
index 112a4c0c2..d566d7318 100644
--- a/target/ppc/uclibc-ng.config
+++ b/target/ppc/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
+# uClibc-ng 1.0.45 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -10,11 +10,13 @@
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
+# TARGET_csky is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_ia64 is not set
+# TARGET_kvx is not set
# TARGET_lm32 is not set
# TARGET_m68k is not set
# TARGET_metag is not set
@@ -24,11 +26,16 @@
# TARGET_nios2 is not set
# TARGET_or1k is not set
TARGET_powerpc=y
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
#
# Target Architecture Features and Options
@@ -54,7 +61,6 @@ UCLIBC_HAS_FLOATS=y
UCLIBC_HAS_FPU=y
DO_C99_MATH=y
DO_XSI_MATH=y
-# UCLIBC_HAS_FENV is not set
UCLIBC_HAS_LONG_DOUBLE_MATH=y
KERNEL_HEADERS=""
HAVE_DOT_CONFIG=y
@@ -63,6 +69,8 @@ HAVE_DOT_CONFIG=y
# General Library Settings
#
DOPIC=y
+# STATIC_PIE is not set
+HAVE_LDSO=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
@@ -78,7 +86,6 @@ LDSO_RUNPATH_OF_EXECUTABLE=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -87,6 +94,7 @@ UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=4194304
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
@@ -115,6 +123,7 @@ UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
#
# Advanced Library Settings
@@ -130,6 +139,7 @@ UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_SV4_DEPRECATED=y
@@ -152,6 +162,10 @@ UCLIBC_HAS_BSD_RES_CLOSE=y
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
#
# String and Stdio Support
@@ -222,7 +236,6 @@ HARDWIRED_ABSPATH=y
# Security options
#
# UCLIBC_BUILD_PIE is not set
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set
diff --git a/target/ppc64/systems/apple-g5 b/target/ppc64/systems/apple-g5
deleted file mode 100644
index 7852d5905..000000000
--- a/target/ppc64/systems/apple-g5
+++ /dev/null
@@ -1,7 +0,0 @@
-config ADK_TARGET_SYSTEM_APPLE_G5
- bool "Apple G5"
- select ADK_TARGET_CPU_PPC64_POWERPC64
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- Support for Apple G5.
-
diff --git a/target/riscv32/Makefile b/target/riscv32/Makefile
index 9b268093a..3d34f7f09 100644
--- a/target/riscv32/Makefile
+++ b/target/riscv32/Makefile
@@ -5,15 +5,38 @@ include $(ADK_TOPDIR)/rules.mk
include $(ADK_TOPDIR)/mk/kernel-build.mk
include $(ADK_TOPDIR)/mk/image.mk
-KERNEL:=$(LINUX_DIR)/vmlinux
-OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id
-QEMU_ARGS:=-nographic
+KERNEL:=$(LINUX_DIR)/arch/riscv/boot/Image
+QEMU_ARGS:=-M virt -m 512 -nographic
+ifeq ($(ADK_TARGET_WITH_MMU),)
+QEMU_ARGS+=-bios none
+endif
+ifeq ($(ADK_TARGET_QEMU_WITH_VIRTIO),y)
+QEMU_ARGS+=-netdev user,id=eth0 -device virtio-net-device,netdev=eth0
+endif
+ifeq ($(ADK_TARGET_FS),archive)
+QEMU_ARGS+=-device virtio-blk-device,drive=vda -drive file=qemu-${ADK_TARGET_CPU_ARCH}.img,if=none,id=vda,format=raw
+endif
# target helper text
+ifeq ($(ADK_TARGET_FS),archive)
+targethelp:
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "Use following command to create a QEMU Image:"
+ @echo "./scripts/create.sh qemu-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "Start qemu with following options:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/fw_jump.elf'
+endif
+endif
ifeq ($(ADK_TARGET_FS),initramfs)
targethelp:
@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-riscv32 ${QEMU_ARGS} -kernel $(FW_DIR)/fw_jump.elf -initrd ${FW_DIR}/${INITRAMFS}'
+endif
endif
ifeq ($(ADK_TARGET_FS),initramfsarchive)
targethelp:
@@ -23,31 +46,24 @@ endif
ifeq ($(ADK_TARGET_FS),initramfspiggyback)
targethelp:
@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo "Start qemu with following command line:"
+ @echo 'qemu-system-riscv32 ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+endif
endif
kernel-strip:
- $(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
kernel-install: kernel-strip
- @cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
-
-bbl:
- @mkdir -p $(BUILD_DIR)/bbl
- @rm -rf $(BUILD_DIR)/riscv-pk
- (cd $(BUILD_DIR)/ && git clone https://github.com/riscv/riscv-pk.git)
- (cd $(BUILD_DIR)/bbl && PATH='$(HOST_PATH)' ../riscv-pk/configure \
- --host=$(GNU_TARGET_NAME) --target=$(GNU_TARGET_NAME) \
- --with-payload=$(FW_DIR)/$(TARGET_KERNEL))
- (cd $(BUILD_DIR)/bbl && PATH='$(HOST_PATH)' make)
- cp $(BUILD_DIR)/bbl/bbl $(FW_DIR)/$(TARGET_KERNEL).bbl
+ @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
# filesystem specific targets
ifeq ($(ADK_TARGET_FS),initramfs)
-imageinstall: kernel-install bbl $(FW_DIR)/$(INITRAMFS) targethelp
+imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
endif
ifeq ($(ADK_TARGET_FS),initramfsarchive)
-imageinstall: kernel-install bbl $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
endif
ifeq ($(ADK_TARGET_FS),initramfspiggyback)
-imageinstall: createinitramfs bbl targethelp
+imageinstall: createinitramfs targethelp
endif
diff --git a/target/riscv32/kernel/qemu-riscv32 b/target/riscv32/kernel/qemu-riscv32
index ab8ffb263..18c6f367d 100644
--- a/target/riscv32/kernel/qemu-riscv32
+++ b/target/riscv32/kernel/qemu-riscv32
@@ -1,7 +1,6 @@
CONFIG_RISCV=y
-CONFIG_ARCH_RV32I=y
-CONFIG_CMODEL_MEDANY=y
-CONFIG_CPU_RV_GENERIC=y
-CONFIG_RV_SYSRISCV_ATOMIC=y
-CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
CONFIG_32BIT=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_ARCH_RV32I=y
+CONFIG_SOC_VIRT=y
+CONFIG_NONPORTABLE=y
diff --git a/target/riscv32/systems/qemu-riscv32 b/target/riscv32/systems/qemu-riscv32
index 28f40004e..a9f1d9ce2 100644
--- a/target/riscv32/systems/qemu-riscv32
+++ b/target/riscv32/systems/qemu-riscv32
@@ -2,6 +2,7 @@ config ADK_TARGET_SYSTEM_QEMU_RISCV32
bool "Qemu Emulator"
select ADK_TARGET_QEMU
select ADK_TARGET_CPU_RISCV32
+ select ADK_TARGET_KERNEL_IMAGE
help
Qemu Emulator for RISCV32 architecture.
diff --git a/target/riscv32/uclibc-ng-nommu.config b/target/riscv32/uclibc-ng-nommu.config
new file mode 100644
index 000000000..f37db1615
--- /dev/null
+++ b/target/riscv32/uclibc-ng-nommu.config
@@ -0,0 +1,230 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# uClibc-ng 1.0.47 C Library Configuration
+#
+# TARGET_aarch64 is not set
+# TARGET_alpha is not set
+# TARGET_arc is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_c6x is not set
+# TARGET_cris is not set
+# TARGET_csky is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_ia64 is not set
+# TARGET_kvx is not set
+# TARGET_lm32 is not set
+# TARGET_m68k is not set
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nds32 is not set
+# TARGET_nios2 is not set
+# TARGET_or1k is not set
+# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+TARGET_riscv32=y
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_sparc64 is not set
+# TARGET_tile is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="riscv32"
+FORCE_OPTIONS_FOR_ARCH=y
+TARGET_SUBARCH=""
+# UCLIBC_FORMAT_ELF is not set
+UCLIBC_FORMAT_FLAT=y
+# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
+# UCLIBC_FORMAT_SHARED_FLAT is not set
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+# ARCH_USE_MMU is not set
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+DO_XSI_MATH=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS=""
+UCLIBC_UCLINUX_BROKEN_MUNMAP=y
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# DOPIC is not set
+ARCH_HAS_NO_SHARED=y
+ARCH_HAS_NO_LDSO=y
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_LINUXTHREADS=y
+UCLIBC_HAS_THREADS=y
+# PTHREADS_DEBUG_SUPPORT is not set
+PTHREADS_STACK_DEFAULT_SIZE=2097152
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+MALLOC=y
+# MALLOC_SIMPLE is not set
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_SUSV2_LEGACY=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_SHA256_CRYPT_IMPL=y
+UCLIBC_HAS_SHA512_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LIBICONV is not set
+# UCLIBC_HAS_LIBINTL is not set
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GETOPT_LONG=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_ARGP=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_FTS=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# Development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DODEBUG_PT is not set
+# DOSTRIP is not set
+# DOASSERTS is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
diff --git a/target/riscv32/uclibc-ng.config b/target/riscv32/uclibc-ng.config
new file mode 100644
index 000000000..63047370c
--- /dev/null
+++ b/target/riscv32/uclibc-ng.config
@@ -0,0 +1,251 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# uClibc-ng 1.0.45 C Library Configuration
+#
+# TARGET_aarch64 is not set
+# TARGET_alpha is not set
+# TARGET_arc is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_c6x is not set
+# TARGET_cris is not set
+# TARGET_csky is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_ia64 is not set
+# TARGET_kvx is not set
+# TARGET_lm32 is not set
+# TARGET_m68k is not set
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nds32 is not set
+# TARGET_nios2 is not set
+# TARGET_or1k is not set
+# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+TARGET_riscv32=y
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_sparc64 is not set
+# TARGET_tile is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="riscv32"
+FORCE_OPTIONS_FOR_ARCH=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+DO_XSI_MATH=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+DOPIC=y
+HAVE_LDSO=y
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_ENV_SUPPORT is not set
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# LDSO_STANDALONE_SUPPORT is not set
+# LDSO_PRELINK_SUPPORT is not set
+UCLIBC_STATIC_LDCONFIG=y
+LDSO_RUNPATH=y
+# LDSO_RUNPATH_OF_EXECUTABLE is not set
+LDSO_SAFE_RUNPATH=y
+LDSO_SEARCH_INTERP_PATH=y
+LDSO_LD_LIBRARY_PATH=y
+UCLIBC_CTOR_DTOR=y
+# LDSO_GNU_HASH_SUPPORT is not set
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS_NATIVE=y
+UCLIBC_HAS_THREADS=y
+UCLIBC_HAS_TLS=y
+PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_SUSV2_LEGACY=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_SHA256_CRYPT_IMPL=y
+UCLIBC_HAS_SHA512_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_STDIO_FUTEXES=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LIBICONV is not set
+# UCLIBC_HAS_LIBINTL is not set
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GETOPT_LONG=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_ARGP=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_FTS=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_RELRO=y
+# UCLIBC_BUILD_NOW is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# Development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DOSTRIP is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_HAS_BACKTRACE is not set
+WARNINGS="-Wall"
+EXTRA_WARNINGS=y
diff --git a/target/riscv64/Makefile b/target/riscv64/Makefile
index 9b022f98e..55134d24e 100644
--- a/target/riscv64/Makefile
+++ b/target/riscv64/Makefile
@@ -5,23 +5,43 @@ include $(ADK_TOPDIR)/rules.mk
include $(ADK_TOPDIR)/mk/kernel-build.mk
include $(ADK_TOPDIR)/mk/image.mk
-KERNEL:=$(LINUX_DIR)/vmlinux
-OSTRIP:=-R .reginfo -R .notes -R .note -R .comment -R .mdebug -R .note.gnu.build-id
-QEMU_ARGS:=-M virt -nographic
+KERNEL:=$(LINUX_DIR)/arch/riscv/boot/Image
+QEMU_ARGS:=-M virt -m 512 -nographic
+ifeq ($(ADK_TARGET_WITH_MMU),)
+QEMU_ARGS+=-bios none -cpu rv64,mmu=off
+endif
+
+ifeq ($(ADK_TARGET_QEMU_WITH_VIRTIO),y)
+QEMU_ARGS+=-netdev user,id=eth0 -device virtio-net-device,netdev=eth0
+endif
+ifeq ($(ADK_TARGET_FS),archive)
+QEMU_ARGS+=-device virtio-blk-device,drive=vda -drive file=qemu-${ADK_TARGET_CPU_ARCH}.img,if=none,id=vda,format=raw
+endif
# target helper text
+ifeq ($(ADK_TARGET_FS),archive)
+targethelp:
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSTARBALL)"
+ifeq ($(ADK_TARGET_QEMU),y)
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "Use following command to create a QEMU Image:"
+ @echo "./scripts/create.sh qemu-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
+ @echo "Start qemu with following options:"
+ @echo 'qemu-system-${ADK_TARGET_CPU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+endif
+endif
ifeq ($(ADK_TARGET_FS),initramfs)
targethelp:
@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
ifeq ($(ADK_TARGET_QEMU),y)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-riscv64 ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL).bbl -initrd ${FW_DIR}/${INITRAMFS}'
+ @echo 'qemu-system-riscv64 ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
endif
endif
ifeq ($(ADK_TARGET_FS),initramfsarchive)
targethelp:
- @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}.bbl'
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
@echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
endif
ifeq ($(ADK_TARGET_FS),initramfspiggyback)
@@ -29,33 +49,53 @@ targethelp:
@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
ifeq ($(ADK_TARGET_QEMU),y)
@echo "Start qemu with following command line:"
- @echo 'qemu-system-riscv64 ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL).bbl'
+ @echo 'qemu-system-riscv64 ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL)'
endif
+ifeq ($(ADK_TARGET_SYSTEM_SIPEED_MAIX_BIT),y)
+ @echo 'sudo python3 scripts/kflash.py -p /dev/ttyUSB0 -b 1500000 -t $(FW_DIR)/$(TARGET_KERNEL)'
+endif
+endif
+ifeq ($(ADK_TARGET_FS),genimage)
+targethelp:
+ @echo "The disk image is: $(FW_DIR)/sdcard.img"
+ @echo "Use following command to install it on SD card:"
+ @echo 'sudo dd if=$(FW_DIR)/sdcard.img of=/dev/sdX bs=2048k'
+endif
+ifeq ($(ADK_TARGET_FS),nfsroot)
+targethelp:
+ @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
+ @echo "The RootFS tarball is: $(FW_DIR)/$(ROOTFSUSERTARBALL)"
endif
kernel-strip:
- $(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
+ @cp $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
kernel-install: kernel-strip
@cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
-bbl:
- @mkdir -p $(BUILD_DIR)/bbl
- @rm -rf $(BUILD_DIR)/riscv-pk
- (cd $(BUILD_DIR)/ && git clone https://github.com/riscv/riscv-pk.git)
- (cd $(BUILD_DIR)/bbl && PATH='$(HOST_PATH)' ../riscv-pk/configure \
- --host=$(GNU_TARGET_NAME) --target=$(GNU_TARGET_NAME) \
- --with-payload=$(FW_DIR)/$(TARGET_KERNEL))
- (cd $(BUILD_DIR)/bbl && PATH='$(HOST_PATH)' make)
- cp $(BUILD_DIR)/bbl/bbl $(FW_DIR)/$(TARGET_KERNEL).bbl
+dtb-install:
+ ${KERNEL_MAKE} dtbs
+ for x in $(LINUX_DIR)/arch/riscv/boot/dts/*/*.dtb; do \
+ [[ -e "$$x" ]] && cp $(LINUX_DIR)/arch/riscv/boot/dts/*/*.dtb $(FW_DIR); \
+ break; \
+ done
# filesystem specific targets
+ifeq ($(ADK_TARGET_FS),archive)
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSTARBALL) targethelp
+endif
ifeq ($(ADK_TARGET_FS),initramfs)
-imageinstall: kernel-install bbl $(FW_DIR)/$(INITRAMFS) targethelp
+imageinstall: kernel-install $(FW_DIR)/$(INITRAMFS) targethelp
endif
ifeq ($(ADK_TARGET_FS),initramfsarchive)
-imageinstall: kernel-install bbl $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
endif
ifeq ($(ADK_TARGET_FS),initramfspiggyback)
-imageinstall: createinitramfs bbl targethelp
+imageinstall: createinitramfs targethelp
+endif
+ifeq ($(ADK_TARGET_FS),genimage)
+imageinstall: dtb-install $(FW_DIR)/$(GENIMAGE) targethelp
+endif
+ifeq ($(ADK_TARGET_FS),nfsroot)
+imageinstall: kernel-install $(FW_DIR)/$(ROOTFSUSERTARBALL) targethelp
endif
diff --git a/target/riscv64/kernel/qemu-riscv64 b/target/riscv64/kernel/qemu-riscv64
index 4991fbd69..ea30532ad 100644
--- a/target/riscv64/kernel/qemu-riscv64
+++ b/target/riscv64/kernel/qemu-riscv64
@@ -1,5 +1,6 @@
CONFIG_RISCV=y
-CONFIG_SIFIVE_PLIC=y
-CONFIG_HVC_RISCV_SBI=y
+CONFIG_FPU=y
+CONFIG_SOC_VIRT=y
+CONFIG_NONPORTABLE=y
CONFIG_CMDLINE_BOOL=y
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/riscv64/kernel/sipeed-maix-bit b/target/riscv64/kernel/sipeed-maix-bit
new file mode 100644
index 000000000..4ed48df2f
--- /dev/null
+++ b/target/riscv64/kernel/sipeed-maix-bit
@@ -0,0 +1,9 @@
+CONFIG_RISCV=y
+CONFIG_SOC_CANAAN=y
+CONFIG_SOC_CANAAN_K210_DTB_BUILTIN=y
+CONFIG_SOC_CANAAN_K210_DTB_SOURCE="sipeed_maix_bit"
+CONFIG_SMP=y
+CONFIG_NR_CPUS=2
+CONFIG_CMDLINE="earlycon console=ttySIF0"
+CONFIG_CMDLINE_FORCE=y
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
diff --git a/target/riscv64/kernel/starfive-visionfive2 b/target/riscv64/kernel/starfive-visionfive2
new file mode 100644
index 000000000..8bc705d87
--- /dev/null
+++ b/target/riscv64/kernel/starfive-visionfive2
@@ -0,0 +1,629 @@
+CONFIG_RISCV=y
+CONFIG_SOC_STARFIVE=y
+CONFIG_ARCH_STARFIVE=y
+CONFIG_FPU=y
+
+CONFIG_RISCV_USE_LINKER_RELAXATION=y
+CONFIG_RISCV_SBI=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CSUM=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_RISCV_DMA_NONCOHERENT=y
+CONFIG_AS_HAS_INSN=y
+CONFIG_AS_HAS_OPTION_ARCH=y
+CONFIG_ARCH_STARFIVE=y
+CONFIG_SOC_STARFIVE=y
+CONFIG_ERRATA_SIFIVE=y
+CONFIG_ERRATA_SIFIVE_CIP_453=y
+CONFIG_ERRATA_SIFIVE_CIP_1200=y
+CONFIG_NONPORTABLE=y
+CONFIG_ARCH_RV64I=y
+CONFIG_CMODEL_MEDANY=y
+CONFIG_MODULE_SECTIONS=y
+CONFIG_SMP=y
+CONFIG_HOTPLUG_CPU=y
+CONFIG_TUNE_GENERIC=y
+CONFIG_RISCV_ALTERNATIVE=y
+CONFIG_RISCV_ISA_C=y
+CONFIG_RISCV_ISA_SVNAPOT=y
+CONFIG_TOOLCHAIN_HAS_V=y
+CONFIG_RISCV_ISA_V=y
+CONFIG_RISCV_ISA_V_DEFAULT_ENABLE=y
+CONFIG_TOOLCHAIN_HAS_ZBB=y
+CONFIG_RISCV_ISA_ZBB=y
+CONFIG_RISCV_ISA_ZICBOM=y
+CONFIG_RISCV_ISA_ZICBOZ=y
+CONFIG_TOOLCHAIN_HAS_ZIHINTPAUSE=y
+CONFIG_TOOLCHAIN_NEEDS_EXPLICIT_ZICSR_ZIFENCEI=y
+CONFIG_FPU=y
+CONFIG_IRQ_STACKS=y
+CONFIG_RISCV_MISALIGNED=y
+CONFIG_HZ_250=y
+CONFIG_SCHED_HRTICK=y
+CONFIG_ARCH_SUPPORTS_KEXEC=y
+CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y
+CONFIG_ARCH_SUPPORTS_KEXEC_PURGATORY=y
+CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y
+CONFIG_ARCH_HAS_GENERIC_CRASHKERNEL_RESERVATION=y
+CONFIG_EFI_STUB=y
+CONFIG_EFI=y
+CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y
+CONFIG_RISCV_ISA_FALLBACK=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
+CONFIG_HIBERNATION=y
+CONFIG_HIBERNATION_SNAPSHOT_DEV=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM=y
+CONFIG_PM_CLK=y
+CONFIG_PM_GENERIC_DOMAINS=y
+CONFIG_PM_GENERIC_DOMAINS_SLEEP=y
+CONFIG_PM_GENERIC_DOMAINS_OF=y
+CONFIG_CPU_PM=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_DT_IDLE_STATES=y
+CONFIG_DT_IDLE_GENPD=y
+CONFIG_RISCV_SBI_CPUIDLE=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_ARCH_SUPPORTS_ACPI=y
+CONFIG_HOTPLUG_CORE_SYNC=y
+CONFIG_HOTPLUG_CORE_SYNC_DEAD=y
+CONFIG_GENERIC_ENTRY=y
+CONFIG_JUMP_LABEL=y
+CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_KPROBES_ON_FTRACE=y
+CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_CONTIGUOUS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
+CONFIG_ARCH_HAS_SET_MEMORY=y
+CONFIG_ARCH_HAS_SET_DIRECT_MAP=y
+CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
+CONFIG_ARCH_WANTS_NO_INSTR=y
+CONFIG_HAVE_ASM_MODVERSIONS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_RSEQ=y
+CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
+CONFIG_HAVE_PERF_REGS=y
+CONFIG_HAVE_PERF_USER_STACK_DUMP=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y
+CONFIG_MMU_LAZY_TLB_REFCOUNT=y
+CONFIG_HAVE_ARCH_SECCOMP=y
+CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP=y
+CONFIG_SECCOMP_FILTER=y
+CONFIG_HAVE_STACKPROTECTOR=y
+CONFIG_LTO_NONE=y
+CONFIG_ARCH_SUPPORTS_CFI_CLANG=y
+CONFIG_HAVE_CONTEXT_TRACKING_USER=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
+CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
+CONFIG_HAVE_MOVE_PUD=y
+CONFIG_HAVE_MOVE_PMD=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_HAVE_ARCH_HUGE_VMAP=y
+CONFIG_HAVE_ARCH_HUGE_VMALLOC=y
+CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
+CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_SOFTIRQ_ON_OWN_STACK=y
+CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
+CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
+CONFIG_PAGE_SIZE_LESS_THAN_64KB=y
+CONFIG_PAGE_SIZE_LESS_THAN_256KB=y
+CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_HAVE_ARCH_VMAP_STACK=y
+CONFIG_VMAP_STACK=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
+CONFIG_STRICT_KERNEL_RWX=y
+CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
+CONFIG_STRICT_MODULE_RWX=y
+CONFIG_ARCH_USE_MEMREMAP_PROT=y
+CONFIG_ARCH_HAS_VDSO_DATA=y
+CONFIG_HAVE_PREEMPT_DYNAMIC=y
+CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y
+CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y
+CONFIG_DYNAMIC_SIGFRAME=y
+CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
+CONFIG_HAVE_GCC_PLUGINS=y
+CONFIG_GCC_PLUGINS=y
+CONFIG_RT_MUTEXES=y
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_COMPRESS_ZSTD=y
+CONFIG_MODULES_TREE_LOOKUP=y
+CONFIG_BLOCK=y
+CONFIG_BLK_CGROUP_PUNT_BIO=y
+CONFIG_BLK_DEV_BSG_COMMON=y
+CONFIG_BLK_ICQ=y
+CONFIG_BLK_DEV_WRITE_MOUNTED=y
+CONFIG_BLK_WBT=y
+CONFIG_BLK_WBT_MQ=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_PM=y
+CONFIG_IOSCHED_BFQ=y
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+CONFIG_INLINE_READ_UNLOCK=y
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+CONFIG_INLINE_WRITE_UNLOCK=y
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
+CONFIG_QUEUED_RWLOCKS=y
+CONFIG_ARCH_HAS_MMIOWB=y
+CONFIG_MMIOWB=y
+CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
+CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
+CONFIG_FREEZER=y
+CONFIG_BINFMT_ELF=y
+CONFIG_ELFCORE=y
+CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
+CONFIG_BINFMT_SCRIPT=y
+CONFIG_ARCH_HAS_BINFMT_FLAT=y
+CONFIG_COREDUMP=y
+CONFIG_SWAP=y
+CONFIG_ZSMALLOC=y
+CONFIG_SLUB=y
+CONFIG_SLAB_MERGE_DEFAULT=y
+CONFIG_SLUB_CPU_PARTIAL=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FLATMEM=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP=y
+CONFIG_MEMORY_ISOLATION=y
+CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y
+CONFIG_COMPACTION=y
+CONFIG_MIGRATION=y
+CONFIG_CONTIG_ALLOC=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_KSM=y
+CONFIG_ARCH_WANTS_THP_SWAP=y
+CONFIG_CMA=y
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y
+CONFIG_ZONE_DMA32=y
+CONFIG_ARCH_HAS_PTE_SPECIAL=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_SECRETMEM=y
+CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y
+CONFIG_PER_VMA_LOCK=y
+CONFIG_LOCK_MM_AND_FIND_VMA=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_UNIX_SCM=y
+CONFIG_AF_UNIX_OOB=y
+CONFIG_NET_HANDSHAKE=y
+CONFIG_INET=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_PNP=y
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_IPV6=y
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_DNS_RESOLVER=y
+CONFIG_PCPU_DEV_REFCNT=y
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_SOCK_RX_QUEUE_MAPPING=y
+CONFIG_XPS=y
+CONFIG_NET_RX_BUSY_POLL=y
+CONFIG_BQL=y
+CONFIG_NET_FLOW_LIMIT=y
+CONFIG_FIB_RULES=y
+CONFIG_NET_SELFTESTS=y
+CONFIG_PAGE_POOL=y
+CONFIG_ARM_AMBA=y
+CONFIG_HAVE_PCI=y
+CONFIG_PCI=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_PCIEASPM=y
+CONFIG_PCIEASPM_DEFAULT=y
+CONFIG_PCIE_PME=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_PCI_ECAM=y
+CONFIG_PCIE_BUS_DEFAULT=y
+CONFIG_VGA_ARB=y
+CONFIG_PCI_HOST_COMMON=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_AUXILIARY_BUS=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_FW_CACHE=y
+CONFIG_ALLOW_DEV_COREDUMP=y
+CONFIG_GENERIC_CPU_DEVICES=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_SPI=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGMAP_IRQ=y
+CONFIG_DMA_SHARED_BUFFER=y
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+CONFIG_SIFIVE_CCACHE=y
+CONFIG_EFI_ESRT=y
+CONFIG_EFI_PARAMS_FROM_FDT=y
+CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB=y
+CONFIG_EFI_EARLYCON=y
+CONFIG_EFI_DISABLE_RUNTIME=y
+CONFIG_MTD=y
+CONFIG_MTD_OF_PARTS=y
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
+CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y
+CONFIG_DTC=y
+CONFIG_OF=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_RESERVED_MEM=y
+CONFIG_BLK_DEV=y
+CONFIG_CDROM=y
+CONFIG_ZRAM=y
+CONFIG_ZRAM_DEF_COMP_ZSTD=y
+CONFIG_ZRAM_TRACK_ENTRY_ACTIME=y
+CONFIG_ZRAM_MEMORY_TRACKING=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_NVME_CORE=y
+CONFIG_BLK_DEV_NVME=y
+CONFIG_SCSI_MOD=y
+CONFIG_SCSI_COMMON=y
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_PROC_FS=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_BLK_DEV_BSG=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_NETDEVICES=y
+CONFIG_MII=y
+CONFIG_NET_CORE=y
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_NET_VENDOR_AGERE=y
+CONFIG_NET_VENDOR_ALACRITECH=y
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_NET_VENDOR_AMAZON=y
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_NET_VENDOR_AQUANTIA=y
+CONFIG_NET_VENDOR_ARC=y
+CONFIG_NET_VENDOR_ASIX=y
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_NET_VENDOR_CADENCE=y
+CONFIG_NET_VENDOR_CAVIUM=y
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_NET_VENDOR_CORTINA=y
+CONFIG_NET_VENDOR_DAVICOM=y
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_NET_VENDOR_ENGLEDER=y
+CONFIG_NET_VENDOR_EZCHIP=y
+CONFIG_NET_VENDOR_FUNGIBLE=y
+CONFIG_NET_VENDOR_GOOGLE=y
+CONFIG_NET_VENDOR_HUAWEI=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_ADI=y
+CONFIG_NET_VENDOR_LITEX=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_NET_VENDOR_MICROCHIP=y
+CONFIG_NET_VENDOR_MICROSEMI=y
+CONFIG_NET_VENDOR_MICROSOFT=y
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_NET_VENDOR_NI=y
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_NETERION=y
+CONFIG_NET_VENDOR_NETRONOME=y
+CONFIG_NET_VENDOR_8390=y
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_NET_VENDOR_PACKET_ENGINES=y
+CONFIG_NET_VENDOR_PENSANDO=y
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_NET_VENDOR_QUALCOMM=y
+CONFIG_NET_VENDOR_RDC=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_NET_VENDOR_RENESAS=y
+CONFIG_NET_VENDOR_ROCKER=y
+CONFIG_NET_VENDOR_SAMSUNG=y
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_NET_VENDOR_SIS=y
+CONFIG_NET_VENDOR_SOLARFLARE=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_NET_VENDOR_SOCIONEXT=y
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=y
+CONFIG_STMMAC_PLATFORM=y
+CONFIG_DWMAC_DWC_QOS_ETH=y
+CONFIG_DWMAC_STARFIVE=y
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_NET_VENDOR_SYNOPSYS=y
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_NET_VENDOR_TI=y
+CONFIG_NET_VENDOR_VERTEXCOM=y
+CONFIG_NET_VENDOR_VIA=y
+CONFIG_NET_VENDOR_WANGXUN=y
+CONFIG_NET_VENDOR_WIZNET=y
+CONFIG_NET_VENDOR_XILINX=y
+CONFIG_PHYLINK=y
+CONFIG_PHYLIB=y
+CONFIG_SWPHY=y
+CONFIG_FIXED_PHY=y
+CONFIG_MICROCHIP_PHY=y
+CONFIG_MOTORCOMM_PHY=y
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+CONFIG_FWNODE_MDIO=y
+CONFIG_OF_MDIO=y
+CONFIG_MDIO_DEVRES=y
+CONFIG_PCS_XPCS=y
+CONFIG_USB_NET_DRIVERS=y
+CONFIG_INPUT=y
+CONFIG_TTY=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_TIOCSTI=y
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_DMA=y
+CONFIG_SERIAL_8250_PCILIB=y
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_8250_EXAR=y
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_8250_PERICOM=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_JH7110=y
+CONFIG_DEVMEM=y
+CONFIG_DEVPORT=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_DESIGNWARE_CORE=y
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+CONFIG_SPI_CADENCE_QUADSPI=y
+CONFIG_SPI_PL022=y
+CONFIG_SPI_SPIDEV=y
+CONFIG_PTP_1588_CLOCK_OPTIONAL=y
+CONFIG_PINCTRL=y
+CONFIG_GENERIC_PINCTRL_GROUPS=y
+CONFIG_PINMUX=y
+CONFIG_GENERIC_PINMUX_FUNCTIONS=y
+CONFIG_PINCONF=y
+CONFIG_GENERIC_PINCONF=y
+CONFIG_PINCTRL_STARFIVE_JH7100=y
+CONFIG_PINCTRL_STARFIVE_JH7110=y
+CONFIG_PINCTRL_STARFIVE_JH7110_SYS=y
+CONFIG_PINCTRL_STARFIVE_JH7110_AON=y
+CONFIG_GPIOLIB=y
+CONFIG_OF_GPIO=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_CDEV=y
+CONFIG_GPIO_CDEV_V1=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_GPIO_RESTART=y
+CONFIG_HWMON=y
+CONFIG_SENSORS_SFCTEMP=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_OF=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_CPU_THERMAL=y
+CONFIG_CPU_FREQ_THERMAL=y
+CONFIG_THERMAL_EMULATION=y
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
+CONFIG_STARFIVE_WATCHDOG=y
+CONFIG_SSB_POSSIBLE=y
+CONFIG_BCMA_POSSIBLE=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_AXP20X=y
+CONFIG_MFD_AXP20X_I2C=y
+CONFIG_MFD_SYSCON=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+CONFIG_REGULATOR_AXP20X=y
+CONFIG_MEDIA_CEC_SUPPORT=y
+CONFIG_MEDIA_SUPPORT=y
+CONFIG_MEDIA_SUPPORT_FILTER=y
+CONFIG_VIDEO_CMDLINE=y
+CONFIG_VIDEO_NOMODESET=y
+CONFIG_DRM=y
+CONFIG_DRM_PANEL=y
+CONFIG_DRM_BRIDGE=y
+CONFIG_DRM_PANEL_BRIDGE=y
+CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_HDMI=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_TIMER=y
+CONFIG_SND_PCM=y
+CONFIG_SND_DMAENGINE_PCM=y
+CONFIG_SND_JACK=y
+CONFIG_SND_JACK_INPUT_DEV=y
+CONFIG_SND_PCM_TIMER=y
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_PROC_FS=y
+CONFIG_SND_VERBOSE_PROCFS=y
+CONFIG_SND_CTL_FAST_LOOKUP=y
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_PCI=y
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
+CONFIG_SND_DESIGNWARE_I2S=y
+CONFIG_SND_SOC_STARFIVE=y
+CONFIG_SND_SOC_JH7110_PWMDAC=y
+CONFIG_SND_SOC_JH7110_TDM=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
+CONFIG_SND_SOC_SPDIF=y
+CONFIG_SND_SOC_WM8960=y
+CONFIG_SND_SIMPLE_CARD_UTILS=y
+CONFIG_SND_SIMPLE_CARD=y
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+CONFIG_HID_GENERIC=y
+CONFIG_USB_HID=y
+CONFIG_I2C_HID=y
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB=y
+CONFIG_USB_PCI=y
+CONFIG_USB_DEFAULT_PERSIST=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_PCI=y
+CONFIG_USB_XHCI_PLATFORM=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_PCI=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PCI=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_UAS=y
+CONFIG_USB_CDNS_SUPPORT=y
+CONFIG_USB_CDNS_HOST=y
+CONFIG_USB_CDNS3=y
+CONFIG_USB_CDNS3_GADGET=y
+CONFIG_USB_CDNS3_HOST=y
+CONFIG_USB_CDNS3_STARFIVE=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_FS=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_ROLE_SWITCH=y
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_OF_DWCMSHC=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_PLTFM=y
+CONFIG_MMC_DW_STARFIVE=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_DMADEVICES=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_VIRTUAL_CHANNELS=y
+CONFIG_DMA_OF=y
+CONFIG_AMBA_PL08X=y
+CONFIG_DW_AXI_DMAC=y
+CONFIG_DMATEST=y
+CONFIG_DMA_ENGINE_RAID=y
+CONFIG_SYNC_FILE=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_CLK_PREPARE=y
+CONFIG_COMMON_CLK=y
+CONFIG_CLK_STARFIVE_JH71X0=y
+CONFIG_CLK_STARFIVE_JH7100=y
+CONFIG_CLK_STARFIVE_JH7110_PLL=y
+CONFIG_CLK_STARFIVE_JH7110_SYS=y
+CONFIG_CLK_STARFIVE_JH7110_AON=y
+CONFIG_CLK_STARFIVE_JH7110_STG=y
+CONFIG_CLK_STARFIVE_JH7110_ISP=y
+CONFIG_CLK_STARFIVE_JH7110_VOUT=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_RISCV_TIMER=y
+CONFIG_JH71XX_PMU=y
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+CONFIG_IRQCHIP=y
+CONFIG_RISCV_INTC=y
+CONFIG_SIFIVE_PLIC=y
+CONFIG_RESET_CONTROLLER=y
+CONFIG_RESET_STARFIVE_JH71X0=y
+CONFIG_RESET_STARFIVE_JH7100=y
+CONFIG_RESET_STARFIVE_JH7110=y
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_PHY_MIPI_DPHY=y
+CONFIG_PHY_STARFIVE_JH7110_DPHY_RX=y
+CONFIG_PHY_STARFIVE_JH7110_PCIE=y
+CONFIG_PHY_STARFIVE_JH7110_USB=y
+CONFIG_RISCV_PMU=y
+CONFIG_RISCV_PMU_LEGACY=y
+CONFIG_RISCV_PMU_SBI=y
diff --git a/target/riscv64/starfive-visionfive2/extlinux.conf b/target/riscv64/starfive-visionfive2/extlinux.conf
new file mode 100644
index 000000000..3d7e45151
--- /dev/null
+++ b/target/riscv64/starfive-visionfive2/extlinux.conf
@@ -0,0 +1,4 @@
+label starfive-visionfive2
+ kernel /boot/kernel
+ devicetree /boot/jh7110-starfive-visionfive-2-v1.3b.dtb
+ append console=ttyS0,115200 root=/dev/mmcblk1p3 rootwait
diff --git a/target/riscv64/starfive-visionfive2/genimage.cfg b/target/riscv64/starfive-visionfive2/genimage.cfg
new file mode 100644
index 000000000..5d26dc49b
--- /dev/null
+++ b/target/riscv64/starfive-visionfive2/genimage.cfg
@@ -0,0 +1,28 @@
+# Minimal SD card image for the Starfive VisionFive2 board
+
+image sdcard.img {
+ hdimage {
+ partition-table-type = "gpt"
+ }
+
+ partition spl {
+ partition-type-uuid = 2E54B353-1271-4842-806F-E436D6AF6985
+ image = "u-boot-spl.bin.normal.out"
+ }
+
+ partition uboot {
+ partition-type-uuid = BC13C2FF-59E6-4262-A352-B275FD6F7172
+ image = "u-boot.itb"
+ }
+
+ partition rootfs {
+ partition-type-uuid = 0FC63DAF-8483-4772-8E79-3D69D8477DE4
+ bootable = true
+ image = "rootfs.ext"
+ }
+
+ partition cfgfs {
+ partition-type-uuid = 0FC63DAF-8483-4772-8E79-3D69D8477DE4
+ image = "cfgfs.img"
+ }
+}
diff --git a/target/riscv64/systems/qemu-riscv64 b/target/riscv64/systems/qemu-riscv64
index ae8401447..99fbfd0b9 100644
--- a/target/riscv64/systems/qemu-riscv64
+++ b/target/riscv64/systems/qemu-riscv64
@@ -3,6 +3,7 @@ config ADK_TARGET_SYSTEM_QEMU_RISCV64
select ADK_TARGET_QEMU
select ADK_TARGET_CPU_RISCV64
select ADK_TARGET_KERNEL_WITH_COMPRESSION
+ select ADK_TARGET_KERNEL_IMAGE
help
Qemu Emulator for RISCV64 architecture.
diff --git a/target/riscv64/systems/sipeed-maix-bit b/target/riscv64/systems/sipeed-maix-bit
new file mode 100644
index 000000000..3199d4a33
--- /dev/null
+++ b/target/riscv64/systems/sipeed-maix-bit
@@ -0,0 +1,7 @@
+config ADK_TARGET_SYSTEM_SIPEED_MAIX_BIT
+ bool "Sipeed MAiX Bit"
+ select ADK_TARGET_CPU_RISCV64
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_KERNEL_IMAGE
+ help
+ Sipeed MAiX Bit support.
diff --git a/target/riscv64/systems/starfive-visionfive2 b/target/riscv64/systems/starfive-visionfive2
new file mode 100644
index 000000000..041cd1c53
--- /dev/null
+++ b/target/riscv64/systems/starfive-visionfive2
@@ -0,0 +1,17 @@
+config ADK_TARGET_SYSTEM_STARFIVE_VISIONFIVE2
+ bool "Starfive VisionFive 2"
+ select ADK_TARGET_CPU_RISCV64
+ select ADK_TARGET_WITH_SERIAL
+ select ADK_TARGET_WITH_BLOCK
+ select ADK_TARGET_WITH_SD
+ select ADK_TARGET_WITH_SMP
+ select ADK_TARGET_WITH_PCI
+ select ADK_TARGET_WITH_USB
+ select ADK_TARGET_WITH_NET
+ select ADK_TARGET_WITH_NETDEVICE
+ select ADK_TARGET_KERNEL_IMAGE
+ select ADK_PACKAGE_GPTFDISK
+ select ADK_PACKAGE_OPENSBI
+ select ADK_PACKAGE_U_BOOT
+ help
+ Starfive VisionFive 2.
diff --git a/target/riscv64/uclibc-ng-nommu.config b/target/riscv64/uclibc-ng-nommu.config
new file mode 100644
index 000000000..1ca015b2c
--- /dev/null
+++ b/target/riscv64/uclibc-ng-nommu.config
@@ -0,0 +1,226 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# uClibc-ng 1.0.46 C Library Configuration
+#
+# TARGET_aarch64 is not set
+# TARGET_alpha is not set
+# TARGET_arc is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_c6x is not set
+# TARGET_cris is not set
+# TARGET_csky is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_ia64 is not set
+# TARGET_kvx is not set
+# TARGET_lm32 is not set
+# TARGET_m68k is not set
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nds32 is not set
+# TARGET_nios2 is not set
+# TARGET_or1k is not set
+# TARGET_powerpc is not set
+TARGET_riscv64=y
+# TARGET_riscv32 is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_sparc64 is not set
+# TARGET_tile is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="riscv64"
+FORCE_OPTIONS_FOR_ARCH=y
+TARGET_SUBARCH=""
+# UCLIBC_FORMAT_ELF is not set
+UCLIBC_FORMAT_FLAT=y
+# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
+# UCLIBC_FORMAT_SHARED_FLAT is not set
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+# ARCH_USE_MMU is not set
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+DO_XSI_MATH=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS=""
+UCLIBC_UCLINUX_BROKEN_MUNMAP=y
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+DOPIC=y
+# STATIC_PIE is not set
+ARCH_HAS_NO_SHARED=y
+ARCH_HAS_NO_LDSO=y
+UCLIBC_CTOR_DTOR=y
+HAS_NO_THREADS=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+MALLOC=y
+# MALLOC_SIMPLE is not set
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_SUSV2_LEGACY=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_SHA256_CRYPT_IMPL=y
+UCLIBC_HAS_SHA512_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LIBICONV is not set
+# UCLIBC_HAS_LIBINTL is not set
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GETOPT_LONG=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_ARGP=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_FTS=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# Development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DOSTRIP is not set
+# DOASSERTS is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
diff --git a/target/riscv64/uclibc-ng.config b/target/riscv64/uclibc-ng.config
new file mode 100644
index 000000000..a0f4ee9fc
--- /dev/null
+++ b/target/riscv64/uclibc-ng.config
@@ -0,0 +1,251 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# uClibc-ng 1.0.46 C Library Configuration
+#
+# TARGET_aarch64 is not set
+# TARGET_alpha is not set
+# TARGET_arc is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_c6x is not set
+# TARGET_cris is not set
+# TARGET_csky is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_ia64 is not set
+# TARGET_kvx is not set
+# TARGET_lm32 is not set
+# TARGET_m68k is not set
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nds32 is not set
+# TARGET_nios2 is not set
+# TARGET_or1k is not set
+# TARGET_powerpc is not set
+TARGET_riscv64=y
+# TARGET_riscv32 is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_sparc64 is not set
+# TARGET_tile is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="riscv64"
+FORCE_OPTIONS_FOR_ARCH=y
+TARGET_SUBARCH=""
+
+#
+# Using ELF file format
+#
+ARCH_LITTLE_ENDIAN=y
+
+#
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+DO_XSI_MATH=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+DOPIC=y
+# STATIC_PIE is not set
+HAVE_LDSO=y
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+LDSO_PRELOAD_ENV_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+# LDSO_STANDALONE_SUPPORT is not set
+# LDSO_PRELINK_SUPPORT is not set
+UCLIBC_STATIC_LDCONFIG=y
+LDSO_RUNPATH=y
+# LDSO_RUNPATH_OF_EXECUTABLE is not set
+LDSO_SAFE_RUNPATH=y
+LDSO_SEARCH_INTERP_PATH=y
+LDSO_LD_LIBRARY_PATH=y
+UCLIBC_CTOR_DTOR=y
+# LDSO_GNU_HASH_SUPPORT is not set
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS_NATIVE=y
+UCLIBC_HAS_THREADS=y
+UCLIBC_HAS_TLS=y
+PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_SUSV2_LEGACY=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_SHA256_CRYPT_IMPL=y
+UCLIBC_HAS_SHA512_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_STDIO_FUTEXES=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LIBICONV is not set
+# UCLIBC_HAS_LIBINTL is not set
+# UCLIBC_HAS_LOCALE is not set
+# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GETOPT_LONG=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_ARGP=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_FTS=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_RELRO=y
+# UCLIBC_BUILD_NOW is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# Development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DOSTRIP is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+# UCLIBC_HAS_BACKTRACE is not set
+WARNINGS="-Wall"
+EXTRA_WARNINGS=y
diff --git a/target/rtems/Makefile b/target/rtems/Makefile
deleted file mode 100644
index b33391269..000000000
--- a/target/rtems/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-prepare:
- if [ ! -d $(BUILD_DIR)/rtems ]; then \
- cd $(BUILD_DIR) ;\
- git clone git://git.rtems.org/rtems.git ;\
- fi
- if [ ! -f $(BUILD_DIR)/rtems/configure ]; then \
- cd $(BUILD_DIR)/rtems && ./bootstrap ;\
- fi
- -mkdir $(BUILD_DIR)/rtems-build
- cd $(BUILD_DIR)/rtems-build && \
- PATH='$(TARGET_PATH)' $(BUILD_DIR)/rtems/configure \
- --prefix=$(BUILD_DIR)/rtems-install
- --target=$(ADK_TARGET_CPU_ARCH)-$(ADK_TARGET_OS) \
- --enable-tests=samples \
-
-compile:
- PATH='$(TARGET_PATH)' $(MAKE) -C \
- $(BUILD_DIR)/rtems-build
-
-install:
- -mkdir $(BUILD_DIR)/rtems-install
- PATH='$(TARGET_PATH)' $(MAKE) -C \
- $(BUILD_DIR)/rtems-build install
-
-clean:
-
-targethelp:
-
diff --git a/target/rtems/arch.lst b/target/rtems/arch.lst
deleted file mode 100644
index fbc2ed8bf..000000000
--- a/target/rtems/arch.lst
+++ /dev/null
@@ -1,14 +0,0 @@
-arm
-bfin
-lm32
-m68k
-mips
-nios2
-or1k
-ppc
-riscv
-sh
-sparc
-sparc64
-x86
-x86_64
diff --git a/target/s390/Makefile b/target/s390/Makefile
index 93373aaa8..fd7142e45 100644
--- a/target/s390/Makefile
+++ b/target/s390/Makefile
@@ -5,11 +5,11 @@ include $(ADK_TOPDIR)/rules.mk
include $(ADK_TOPDIR)/mk/kernel-build.mk
include $(ADK_TOPDIR)/mk/image.mk
-KERNEL:=$(LINUX_DIR)/vmlinux
+KERNEL:=$(LINUX_DIR)/arch/s390/boot/bzImage
-QEMU_ARGS:=-monitor null -M s390-ccw-virtio-2.4
+QEMU_ARGS:=-monitor null -M s390-ccw-virtio
QEMU_ARGS+=${ADK_QEMU_ARGS}
-QEMU_ARGS+=-netdev user,id=eth0 -device virtio-net-ccw,netdev=eth0
+QEMU_ARGS+=-net nic,model=virtio -net user -serial mon:stdio
# target helper text
ifeq ($(ADK_TARGET_FS),archive)
@@ -47,11 +47,8 @@ endif
endif
# image creation and kernel install
-kernel-strip:
- $(TARGET_CROSS)objcopy $(OSTRIP) -S $(KERNEL) $(BUILD_DIR)/$(TARGET_KERNEL)
-
-kernel-install: kernel-strip
- @cp $(BUILD_DIR)/$(TARGET_KERNEL) $(FW_DIR)/${TARGET_KERNEL}
+kernel-install:
+ @cp $(KERNEL) $(FW_DIR)/${TARGET_KERNEL}
# filesystem specific targets
ifeq ($(ADK_TARGET_FS),archive)
diff --git a/target/s390/systems/qemu-s390 b/target/s390/systems/qemu-s390
index 692f4a53c..dbb0a4c23 100644
--- a/target/s390/systems/qemu-s390
+++ b/target/s390/systems/qemu-s390
@@ -2,6 +2,7 @@ config ADK_TARGET_SYSTEM_QEMU_S390
bool "Qemu Emulator"
select ADK_TARGET_CPU_S390_Z900
select ADK_TARGET_QEMU
+ select ADK_TARGET_KERNEL_BZIMAGE
select ADK_TARGET_KERNEL_WITH_COMPRESSION
help
Support for Qemu Emulator S/390 architecture.
diff --git a/target/sh/kernel/numato-mimasv2 b/target/sh/kernel/numato-mimasv2
index ca290f15d..faa0ff558 100644
--- a/target/sh/kernel/numato-mimasv2
+++ b/target/sh/kernel/numato-mimasv2
@@ -15,3 +15,4 @@ CONFIG_MMC_SPI=y
CONFIG_CLKSRC_JCORE_PIT=y
CONFIG_JCORE_AIC=y
CONFIG_SERIAL_EARLYCON=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/sh/kernel/qemu-sh b/target/sh/kernel/qemu-sh
index dbe8f023c..7a2e8f458 100644
--- a/target/sh/kernel/qemu-sh
+++ b/target/sh/kernel/qemu-sh
@@ -15,3 +15,4 @@ CONFIG_CMDLINE_EXTEND=y
CONFIG_SERIAL_SH_SCI=y
CONFIG_SERIAL_SH_SCI_NR_UARTS=2
CONFIG_SERIAL_SH_SCI_CONSOLE=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/sh/uclibc-ng-nommu.config b/target/sh/uclibc-ng-nommu.config
new file mode 100644
index 000000000..193587ccb
--- /dev/null
+++ b/target/sh/uclibc-ng-nommu.config
@@ -0,0 +1,235 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# uClibc-ng 1.0.45 C Library Configuration
+#
+# TARGET_aarch64 is not set
+# TARGET_alpha is not set
+# TARGET_arc is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_c6x is not set
+# TARGET_cris is not set
+# TARGET_csky is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_ia64 is not set
+# TARGET_kvx is not set
+# TARGET_lm32 is not set
+# TARGET_m68k is not set
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nds32 is not set
+# TARGET_nios2 is not set
+# TARGET_or1k is not set
+# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
+TARGET_sh=y
+# TARGET_sparc is not set
+# TARGET_sparc64 is not set
+# TARGET_tile is not set
+# TARGET_x86_64 is not set
+# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="sh"
+FORCE_OPTIONS_FOR_ARCH=y
+# CONFIG_SH2A is not set
+CONFIG_SH2=y
+# CONFIG_SH3 is not set
+# CONFIG_SH4 is not set
+# CONFIG_SH4A is not set
+TARGET_SUBARCH=""
+UCLIBC_FORMAT_FLAT=y
+# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
+# UCLIBC_FORMAT_SHARED_FLAT is not set
+ARCH_HAS_DEPRECATED_SYSCALLS=y
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_NO_MMU=y
+
+#
+# Target CPU lacks a memory management unit (MMU)
+#
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+DO_XSI_MATH=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS=""
+UCLIBC_UCLINUX_BROKEN_MUNMAP=y
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+DOPIC=y
+ARCH_HAS_NO_SHARED=y
+ARCH_HAS_NO_LDSO=y
+UCLIBC_CTOR_DTOR=y
+HAS_NO_THREADS=y
+# UCLIBC_HAS_LINUXTHREADS is not set
+# UCLIBC_HAS_THREADS_NATIVE is not set
+PTHREADS_STACK_DEFAULT_SIZE=2097152
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+MALLOC=y
+# MALLOC_SIMPLE is not set
+# MALLOC_STANDARD is not set
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_SUSV2_LEGACY=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_SHA256_CRYPT_IMPL=y
+UCLIBC_HAS_SHA512_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LIBICONV is not set
+# UCLIBC_HAS_LIBINTL is not set
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GETOPT_LONG=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_ARGP=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_FTS=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# Development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DOSTRIP is not set
+# DOASSERTS is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
diff --git a/target/sh/uclibc-ng.config b/target/sh/uclibc-ng.config
index ee04f1e24..d8dea4776 100644
--- a/target/sh/uclibc-ng.config
+++ b/target/sh/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
+# uClibc-ng 1.0.45 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -10,11 +10,13 @@
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
+# TARGET_csky is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_ia64 is not set
+# TARGET_kvx is not set
# TARGET_lm32 is not set
# TARGET_m68k is not set
# TARGET_metag is not set
@@ -24,11 +26,16 @@
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
TARGET_sh=y
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
#
# Target Architecture Features and Options
@@ -57,7 +64,6 @@ UCLIBC_HAS_FLOATS=y
UCLIBC_HAS_FPU=y
DO_C99_MATH=y
DO_XSI_MATH=y
-# UCLIBC_HAS_FENV is not set
UCLIBC_HAS_LONG_DOUBLE_MATH=y
KERNEL_HEADERS=""
HAVE_DOT_CONFIG=y
@@ -66,6 +72,7 @@ HAVE_DOT_CONFIG=y
# General Library Settings
#
DOPIC=y
+HAVE_LDSO=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
@@ -81,7 +88,6 @@ LDSO_RUNPATH_OF_EXECUTABLE=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -90,6 +96,7 @@ UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
@@ -118,6 +125,7 @@ UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
#
# Advanced Library Settings
@@ -133,6 +141,7 @@ UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_SV4_DEPRECATED=y
@@ -155,6 +164,10 @@ UCLIBC_HAS_BSD_RES_CLOSE=y
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
#
# String and Stdio Support
@@ -224,7 +237,6 @@ HARDWIRED_ABSPATH=y
#
# Security options
#
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set
diff --git a/target/sparc/kernel/qemu-sparc b/target/sparc/kernel/qemu-sparc
index ffa9bb9f8..1ee79ef31 100644
--- a/target/sparc/kernel/qemu-sparc
+++ b/target/sparc/kernel/qemu-sparc
@@ -7,3 +7,4 @@ CONFIG_SERIAL_CONSOLE=y
CONFIG_SERIAL_SUNCORE=y
CONFIG_SERIAL_SUNZILOG=y
CONFIG_SERIAL_SUNZILOG_CONSOLE=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/sparc/systems/sun-ipx b/target/sparc/systems/sun-ipx
deleted file mode 100644
index 73a02bc61..000000000
--- a/target/sparc/systems/sun-ipx
+++ /dev/null
@@ -1,11 +0,0 @@
-config ADK_TARGET_SYSTEM_SUN_IPX
- bool "Sun Sparcstation IPX"
- select ADK_TARGET_CPU_SPARC_V8
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_WITH_BLOCK
- select ADK_TARGET_KERNEL_ZIMAGE
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- Support for Sun Sparcstation IPX.
-
diff --git a/target/sparc/systems/sun-javastation b/target/sparc/systems/sun-javastation
deleted file mode 100644
index 13f6091bb..000000000
--- a/target/sparc/systems/sun-javastation
+++ /dev/null
@@ -1,10 +0,0 @@
-config ADK_TARGET_SYSTEM_SUN_JAVASTATION
- bool "Sun JavaStation"
- select ADK_TARGET_CPU_SPARC_V7
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_KERNEL_VMLINUX_AOUT
- help
- Support for Sun JavaStation.
-
diff --git a/target/sparc/systems/sun-voyager b/target/sparc/systems/sun-voyager
deleted file mode 100644
index a700918a4..000000000
--- a/target/sparc/systems/sun-voyager
+++ /dev/null
@@ -1,12 +0,0 @@
-config ADK_TARGET_SYSTEM_SUN_VOYAGER
- bool "Sun Voyager"
- select ADK_TARGET_CPU_SPARC_V8
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_WITH_BLOCK
- select ADK_TARGET_KERNEL_ZIMAGE
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- Support for Sun Voyager.
-
diff --git a/target/sparc/uclibc-ng.config b/target/sparc/uclibc-ng.config
index e98658573..c3ff0877b 100644
--- a/target/sparc/uclibc-ng.config
+++ b/target/sparc/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
+# uClibc-ng 1.0.45 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -10,11 +10,13 @@
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
+# TARGET_csky is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_ia64 is not set
+# TARGET_kvx is not set
# TARGET_lm32 is not set
# TARGET_m68k is not set
# TARGET_metag is not set
@@ -24,11 +26,16 @@
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
# TARGET_sh is not set
TARGET_sparc=y
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
#
# Target Architecture Features and Options
@@ -54,7 +61,6 @@ UCLIBC_HAS_FLOATS=y
UCLIBC_HAS_FPU=y
DO_C99_MATH=y
DO_XSI_MATH=y
-# UCLIBC_HAS_FENV is not set
UCLIBC_HAS_LONG_DOUBLE_MATH=y
KERNEL_HEADERS=""
HAVE_DOT_CONFIG=y
@@ -64,6 +70,7 @@ HAVE_DOT_CONFIG=y
#
DOPIC=y
ARCH_HAS_UCONTEXT=y
+HAVE_LDSO=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
@@ -79,7 +86,6 @@ LDSO_RUNPATH_OF_EXECUTABLE=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -88,6 +94,7 @@ UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
@@ -117,6 +124,7 @@ UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
#
# Advanced Library Settings
@@ -132,6 +140,7 @@ UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_SV4_DEPRECATED=y
@@ -154,6 +163,10 @@ UCLIBC_HAS_BSD_RES_CLOSE=y
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
#
# String and Stdio Support
@@ -223,7 +236,6 @@ HARDWIRED_ABSPATH=y
#
# Security options
#
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set
diff --git a/target/sparc64/systems/tadpole-ultrabook b/target/sparc64/systems/tadpole-ultrabook
deleted file mode 100644
index b371b4de6..000000000
--- a/target/sparc64/systems/tadpole-ultrabook
+++ /dev/null
@@ -1,8 +0,0 @@
-config ADK_TARGET_SYSTEM_TADPOLE_ULTRABOOK
- bool "Tadpole Ultrabook"
- select ADK_TARGET_CPU_SPARC64_V9
- select ADK_TARGET_KERNEL_ZIMAGE
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- help
- Support for Tadpole Ultrabook.
-
diff --git a/target/waldux/Config.in b/target/waldux/Config.in
deleted file mode 100644
index c59ef765d..000000000
--- a/target/waldux/Config.in
+++ /dev/null
@@ -1,28 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-source target/waldux/config/Config.in.kernel
-source target/waldux/config/Config.in.cpu
-source target/waldux/config/Config.in.bus
-source target/waldux/config/Config.in.block
-source target/waldux/config/Config.in.flash
-source target/waldux/config/Config.in.fs
-source target/waldux/config/Config.in.netdevice
-source target/waldux/config/Config.in.usb
-source target/waldux/config/Config.in.serial
-source target/waldux/config/Config.in.graphics
-source target/waldux/config/Config.in.input
-source target/waldux/config/Config.in.pcmcia
-source target/waldux/config/Config.in.network
-source target/waldux/config/Config.in.netfilter
-source target/waldux/config/Config.in.audio
-source target/waldux/config/Config.in.multimedia
-source target/waldux/config/Config.in.crypto
-source target/waldux/config/Config.in.misc
-source target/waldux/config/Config.in.arm
-source target/waldux/config/Config.in.mips
-source target/waldux/config/Config.in.xtensa
-source target/waldux/config/Config.in.pm
-source target/waldux/config/Config.in.kvm
-source target/waldux/config/Config.in.virtio
-source target/waldux/config/Config.in.debug
diff --git a/target/waldux/Config.in.kernelcfg b/target/waldux/Config.in.kernelcfg
deleted file mode 100644
index 48d098254..000000000
--- a/target/waldux/Config.in.kernelcfg
+++ /dev/null
@@ -1,49 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-choice
-prompt "Waldux Kernel configuration" if !ADK_TARGET_CHOOSE_ARCH
-depends on ADK_TARGET_OS_WALDUX
-
-config ADK_TARGET_WALDUX_KERNEL_USE_MINICONFIG
- bool "Use mini.config from OpenADK"
-
-config ADK_TARGET_WALDUX_KERNEL_USE_DEFCONFIG
- bool "Use defconfig from Waldux kernel"
-
-config ADK_TARGET_WALDUX_KERNEL_USE_CUSTOMCONFIG
- bool "Use custom Waldux kernel configuration file"
-
-endchoice
-
-config ADK_TARGET_WALDUX_KERNEL_DEFCONFIG
- string "Defconfig name"
- depends on ADK_TARGET_WALDUX_KERNEL_USE_DEFCONFIG
- default "bcmrpi_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI
- default "bcmrpi_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI0
- default "bcm2709_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI2
- default "bcm2709_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI3
- default "bcm2709_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI3P
- default "bcmrpi3_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI3_64
- default "bcmrpi3_defconfig" if ADK_TARGET_SYSTEM_RASPBERRY_PI3P_64
- default "twr-k70f120m_defconfig" if ADK_TARGET_SYSTEM_KINETIS_K70
- default "imx_v6_v7_defconfig" if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default "mvebu_defconfig" if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
- default "nsim_700_defconfig" if ADK_TARGET_CPU_ARC_ARC700 && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
- default "nsim_hs_defconfig" if ADK_TARGET_CPU_ARC_ARCHS && ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
- default "10m50_defconfig" if ADK_TARGET_SYSTEM_QEMU_NIOS2
- default "ag101p_defconfig" if ADK_TARGET_SYSTEM_ANDES_AG101P
- default "bb.org_defconfig" if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
- default "am335x_phytec_defconfig" if ADK_TARGET_SYSTEM_PHYTEC_WEGA
- default "j2_defconfig" if ADK_TARGET_SYSTEM_NUMATO_MIMASV2
- default "sunxi_defconfig" if ADK_TARGET_SYSTEM_ORANGE_PI0
- default "edosk2674_defconfig" if ADK_TARGET_SYSTEM_HITACHI_EDOSK2674
- default "x86_64_defconfig" if ADK_TARGET_SYSTEM_GENERIC_X86_64
- default "i386_defconfig" if ADK_TARGET_SYSTEM_GENERIC_X86
- default ""
-
-config ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH
- string "Kernel configuration file location"
- depends on ADK_TARGET_WALDUX_KERNEL_USE_CUSTOMCONFIG
- default ".kernelconfig"
-
diff --git a/target/waldux/Config.in.kernelversion b/target/waldux/Config.in.kernelversion
deleted file mode 100644
index f91772d45..000000000
--- a/target/waldux/Config.in.kernelversion
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-choice
-prompt "Kernel version" if !ADK_TARGET_CHOOSE_ARCH
-depends on ADK_TARGET_OS_WALDUX
-
-config ADK_TARGET_WALDUX_KERNEL_VERSION_GIT
- bool "git"
-
-endchoice
-
-config ADK_TARGET_WALDUX_KERNEL_GIT_REPO
- string "git repository"
- depends on ADK_TARGET_WALDUX_KERNEL_VERSION_GIT
- default "git://openadk.org/git/waldux"
- help
- GIT repository to use.
-
-config ADK_TARGET_WALDUX_KERNEL_GIT
- string "git branch"
- depends on ADK_TARGET_WALDUX_KERNEL_VERSION_GIT
- default "master"
-
-config ADK_TARGET_WALDUX_KERNEL_GIT_VER
- string "kernel version"
- depends on ADK_TARGET_WALDUX_KERNEL_VERSION_GIT
- default "4.9.107"
-
-config ADK_TARGET_WALDUX_KERNEL_GIT_TYPE
- string
- depends on ADK_TARGET_WALDUX_KERNEL_VERSION_GIT
- default "branch"
diff --git a/target/waldux/arch.lst b/target/waldux/arch.lst
deleted file mode 100644
index e20f056db..000000000
--- a/target/waldux/arch.lst
+++ /dev/null
@@ -1,30 +0,0 @@
-aarch64
-alpha
-arc
-arm
-avr32
-bfin
-c6x
-cris
-csky
-frv
-h8300
-hppa
-ia64
-m68k
-metag
-microblaze
-mips
-mips64
-nios2
-or1k
-ppc
-ppc64
-s390
-sparc
-sparc64
-sh
-tile
-x86
-x86_64
-xtensa
diff --git a/target/waldux/config/Config.in.arm b/target/waldux/config/Config.in.arm
deleted file mode 100644
index cc5576f94..000000000
--- a/target/waldux/config/Config.in.arm
+++ /dev/null
@@ -1,13 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_ARM_PATCH_PHYS_VIRT
- bool
- depends on ADK_TARGET_ARCH_ARM
-
-config ADK_WALDUX_KERNEL_ARCH_VERSATILE_PB
- bool
- select ADK_WALDUX_KERNEL_ARM_PATCH_PHYS_VIRT
- default y if !ADK_TARGET_WITH_DEVICETREE
- depends on ADK_TARGET_ARCH_ARM
-
diff --git a/target/waldux/config/Config.in.audio b/target/waldux/config/Config.in.audio
deleted file mode 100644
index 4c04dd2b2..000000000
--- a/target/waldux/config/Config.in.audio
+++ /dev/null
@@ -1,283 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Audio devices support"
-depends on ADK_TARGET_WITH_PCI \
- || ADK_TARGET_WITH_USB \
- || ADK_TARGET_WITH_SOUND \
- || ADK_TARGET_QEMU \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_SOUND
- tristate
-
-config ADK_WALDUX_KERNEL_SND_DRIVERS
- bool
-
-config ADK_WALDUX_KERNEL_SND_PCI
- bool
-
-config ADK_WALDUX_KERNEL_SND_USB
- bool
-
-config ADK_WALDUX_KERNEL_SND_SOC
- bool
-
-config ADK_WALDUX_KERNEL_SND_ARM
- bool
-
-config ADK_WALDUX_KERNEL_SND_TIMER
- tristate
-
-config ADK_WALDUX_KERNEL_SND_PCM
- tristate
-
-config ADK_WALDUX_KERNEL_SND_HWDEP
- tristate
-
-config ADK_WALDUX_KERNEL_SND_RAWMIDI
- tristate
-
-config ADK_WALDUX_KERNEL_SND_AC97_CODEC
- tristate
-
-config ADK_WALDUX_KERNEL_SND_SOC_GENERIC_DMAENGINE_PCM
- bool
-
-config ADK_WALDUX_KERNEL_SND_SOC_SPDIF
- tristate
-
-config ADK_WALDUX_KERNEL_SND_SOC_FSL_ASRC
- bool
-
-config ADK_WALDUX_KERNEL_SND_SOC_FSL_HDMI
- bool
-
-config ADK_WALDUX_KERNEL_SND_SOC_FSL_SPDIF
- tristate
-
-config ADK_WALDUX_KERNEL_SND_SOC_IMX_SGTL5000
- tristate
-
-config ADK_WALDUX_KERNEL_SND_SOC_IMX_PCM_DMA
- bool
-
-config ADK_WALDUX_KERNEL_SND_SOC_HDMI_CODEC
- tristate
-
-config ADK_WALDUX_KERNEL_SND_SOC_IMX_HDMI_DMA
- bool
-
-config ADK_WALDUX_KERNEL_SND_SOC_IMX_SPDIF
- tristate
-
-config ADK_WALDUX_KERNEL_SND_SOC_IMX_HDMI
- tristate
-
-config ADK_WALDUX_KERNEL_SND_PXA2XX_AC97
- tristate
-
-config ADK_WALDUX_KERNEL_SND_PXA2XX_SOC
- tristate
-
-config ADK_WALDUX_KERNEL_SND_SOC_I2C_AND_SPI
- tristate
-
-config ADK_WALDUX_KERNEL_SND_SOC_WM8731
- tristate
- select ADK_WALDUX_KERNEL_SND_SOC_I2C_AND_SPI
-
-config ADK_WALDUX_KERNEL_SND_SOC_WM8804
- tristate
- select ADK_WALDUX_KERNEL_SND_SOC_I2C_AND_SPI
-
-config ADK_WALDUX_KERNEL_SND_SOC_PCM5102A
- tristate
- select ADK_WALDUX_KERNEL_SND_SOC_I2C_AND_SPI
-
-config ADK_WALDUX_KERNEL_SND_SOC_PCM512x
- tristate
- select ADK_WALDUX_KERNEL_SND_SOC_I2C_AND_SPI
-
-config ADK_WALDUX_KERNEL_SND_SOC_PCM512x_I2C
- tristate
- select ADK_WALDUX_KERNEL_SND_SOC_PCM512x
- select ADK_WALDUX_KERNEL_SND_SOC_I2C_AND_SPI
-
-config ADK_WALDUX_KERNEL_SND_SOC_PCM512x_SPI
- tristate
- select ADK_WALDUX_KERNEL_SND_SOC_PCM512x
- select ADK_WALDUX_KERNEL_SND_SOC_I2C_AND_SPI
-
-config ADK_WALDUX_KERNEL_SND
- tristate
- select ADK_WALDUX_KERNEL_SOUND
- select ADK_WALDUX_KERNEL_SND_PCM
- select ADK_WALDUX_KERNEL_SND_HWDEP
- select ADK_WALDUX_KERNEL_SND_TIMER
-
-config ADK_WALDUX_KERNEL_SND_TIMER
- tristate
-
-config ADK_WALDUX_KERNEL_SND_RAWMIDI
- tristate
-
-config ADK_WALDUX_KERNEL_SND_SEQUENCER
- tristate "Sequencer support"
- select ADK_WALDUX_KERNEL_SND_TIMER
- select ADK_WALDUX_KERNEL_SND_RAWMIDI
-
-config ADK_WALDUX_KERNEL_SND_INTEL8X0
- tristate "Intel AC97 driver"
- select ADK_WALDUX_KERNEL_SND
- select ADK_WALDUX_KERNEL_SND_PCI
- select ADK_WALDUX_KERNEL_SND_AC97_CODEC
- default m if ADK_TARGET_SYSTEM_IBM_X40
- default m if ADK_TARGET_QEMU_WITH_AUDIO
- default n
- depends on ADK_TARGET_WITH_PCI \
- || ADK_TARGET_QEMU_WITH_AUDIO \
- || ADK_TARGET_GENERIC
- help
- Driver for intel chipsets.
-
-config ADK_WALDUX_KERNEL_SND_VIA82XX
- tristate "VIA82XX driver"
- select ADK_WALDUX_KERNEL_SND
- depends on ADK_TARGET_WITH_PCI || ADK_TARGET_GENERIC
- help
- ALSA VIA82XX driver
-
-config ADK_WALDUX_KERNEL_SND_ENS1370
- tristate "Ensoniq 1370 driver"
- select ADK_WALDUX_KERNEL_SND
- depends on ADK_TARGET_WITH_PCI || ADK_TARGET_GENERIC
- help
- ALSA Ensonique 1370 driver
-
-config ADK_WALDUX_KERNEL_SND_CS5535AUDIO
- tristate "AMD CS5535 driver"
- select ADK_WALDUX_KERNEL_SND_PCI
- select ADK_WALDUX_KERNEL_SND_AC97_CODEC
- select ADK_WALDUX_KERNEL_SND
- default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default m if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- depends on ADK_TARGET_WITH_PCI || ADK_TARGET_GENERIC
- help
- ALSA AMD CS5535 driver
-
-config ADK_WALDUX_KERNEL_SND_HDSP
- tristate "RME Hammerfall DSP Audio"
- select ADK_WALDUX_KERNEL_SND
- select ADK_WALDUX_KERNEL_SND_PCI
- select ADK_WALDUX_KERNEL_FW_LOADER
- select ADK_WALDUX_KERNEL_SND_HWDEP
- select ADK_WALDUX_KERNEL_SND_RAWMIDI
- select ADK_WALDUX_KERNEL_SND_PCM
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default n
- depends on ADK_TARGET_WITH_PCI || ADK_TARGET_GENERIC
- help
- ALSA driver for RME HDSP cards.
-
-config ADK_WALDUX_KERNEL_SND_PXA2XX_SOC_SPITZ
- tristate "Sharp Zaurus SoC"
- select ADK_WALDUX_KERNEL_SND
- select ADK_WALDUX_KERNEL_SND_ARM
- select ADK_WALDUX_KERNEL_SND_PXA2XX_AC97
- select ADK_WALDUX_KERNEL_SND_AC97_CODEC
- select ADK_WALDUX_KERNEL_SND_SOC
- select ADK_WALDUX_KERNEL_SND_PXA2XX_SOC
- depends on ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default m if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default n
-
-config ADK_WALDUX_KERNEL_SND_BCM2835
- tristate "BCM28XX onboard soundcard"
- select ADK_WALDUX_KERNEL_SND
- select ADK_WALDUX_KERNEL_SND_ARM
- depends on ADK_TARGET_BOARD_BCM28XX
- default m if ADK_TARGET_HARDWARE_NONE
- default n
-
-config ADK_WALDUX_KERNEL_SND_BCM2835_SOC_I2S
- tristate
- select ADK_WALDUX_KERNEL_SND
- select ADK_WALDUX_KERNEL_SND_ARM
- select ADK_WALDUX_KERNEL_SND_SOC
- select ADK_WALDUX_KERNEL_DMA_BCM2835
- select ADK_WALDUX_KERNEL_REGMAP
- select ADK_WALDUX_KERNEL_REGMAP_MMIO
- depends on ADK_TARGET_BOARD_BCM28XX
- default n
-
-config ADK_WALDUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_AMP
- tristate "Hifiberry AMP"
- select ADK_WALDUX_KERNEL_SND_BCM2835_SOC_I2S
- depends on ADK_TARGET_BOARD_BCM28XX
-
-config ADK_WALDUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DAC
- tristate "Hifiberry DAC"
- select ADK_WALDUX_KERNEL_SND_BCM2835_SOC_I2S
- select ADK_WALDUX_KERNEL_SND_SOC_PCM5102A
- depends on ADK_TARGET_BOARD_BCM28XX
-
-config ADK_WALDUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DACPLUS
- tristate "Hifiberry DACPLUS"
- select ADK_WALDUX_KERNEL_SND_BCM2835_SOC_I2S
- select ADK_WALDUX_KERNEL_SND_SOC_PCM512x_I2C
- select ADK_WALDUX_KERNEL_SND_SOC_PCM512x
- depends on ADK_TARGET_BOARD_BCM28XX
-
-config ADK_WALDUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DIGI
- tristate "Hifiberry DIGI"
- select ADK_WALDUX_KERNEL_SND_BCM2835_SOC_I2S
- select ADK_WALDUX_KERNEL_SND_SOC_WM8804
- depends on ADK_TARGET_BOARD_BCM28XX
-
-config ADK_WALDUX_KERNEL_SND_BCM2708_SOC_RPI_DAC
- tristate "RPI-DAC"
- select ADK_WALDUX_KERNEL_SND_BCM2835_SOC_I2S
- depends on ADK_TARGET_BOARD_BCM28XX
-
-config ADK_WALDUX_KERNEL_SND_BCM2708_SOC_IQAUDIO_DAC
- tristate "IQAudio-DAC"
- select ADK_WALDUX_KERNEL_SND_BCM2835_SOC_I2S
- select ADK_WALDUX_KERNEL_SND_SOC_PCM512x_I2C
- depends on ADK_TARGET_BOARD_BCM28XX
-
-config ADK_WALDUX_KERNEL_SND_BCM2708_SOC_RPI_PROTO
- tristate "Rpi-Proto"
- select ADK_WALDUX_KERNEL_SND_BCM2835_SOC_I2S
- select ADK_WALDUX_KERNEL_SND_SOC_WM8731
- depends on ADK_TARGET_BOARD_BCM28XX
-
-config ADK_WALDUX_KERNEL_SND_IMX_SOC
- tristate "IMX6 SoC sound chip"
- select ADK_WALDUX_KERNEL_SND
- select ADK_WALDUX_KERNEL_SND_SOC
- select ADK_WALDUX_KERNEL_SND_SOC_GENERIC_DMAENGINE_PCM
- select ADK_WALDUX_KERNEL_SND_SOC_HDMI_CODEC
- select ADK_WALDUX_KERNEL_SND_SOC_IMX_PCM_DMA
- select ADK_WALDUX_KERNEL_SND_SOC_IMX_HDMI_DMA
- select ADK_WALDUX_KERNEL_SND_SOC_IMX_HDMI
- select ADK_WALDUX_KERNEL_SND_SOC_IMX_SPDIF
- select ADK_WALDUX_KERNEL_SND_SOC_IMX_SGTL5000 if ADK_TARGET_MODEL_HUMMINGBOARD_I2EX
- select ADK_WALDUX_KERNEL_SND_SOC_FSL_ASRC
- select ADK_WALDUX_KERNEL_SND_SOC_FSL_SPDIF
- select ADK_WALDUX_KERNEL_SND_SOC_FSL_HDMI
- select ADK_WALDUX_KERNEL_REGMAP
- select ADK_WALDUX_KERNEL_REGMAP_SPI
- select ADK_WALDUX_KERNEL_REGMAP_I2C
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-config ADK_WALDUX_KERNEL_SND_ALOOP
- tristate "Generic loopback driver (PCM)"
- select ADK_WALDUX_KERNEL_SND
- select ADK_WALDUX_KERNEL_SND_DRIVERS
- select ADK_WALDUX_KERNEL_SND_PCM
- default n
-
-endmenu
diff --git a/target/waldux/config/Config.in.block b/target/waldux/config/Config.in.block
deleted file mode 100644
index c88e2ece3..000000000
--- a/target/waldux/config/Config.in.block
+++ /dev/null
@@ -1,717 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_BLOCK
- bool
- select ADK_WALDUX_KERNEL_AIO
- select ADK_WALDUX_KERNEL_INOTIFY_USER
-
-config ADK_WALDUX_KERNEL_AIO
- bool
-
-menu "Block devices support"
-depends on ADK_TARGET_WITH_BLOCK \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_IOSCHED_DEADLINE
- bool
-
-config ADK_WALDUX_KERNEL_IOSCHED_CFQ
- bool
-
-config ADK_WALDUX_KERNEL_IOSCHED_NOOP
- bool
-
-choice
-prompt "I/O scheduler"
-
-config ADK_WALDUX_KERNEL_DEFAULT_DEADLINE
- bool "deadline"
- select ADK_WALDUX_KERNEL_IOSCHED_DEADLINE
-
-config ADK_WALDUX_KERNEL_DEFAULT_CFQ
- bool "cfq"
- select ADK_WALDUX_KERNEL_IOSCHED_CFQ
-
-config ADK_WALDUX_KERNEL_DEFAULT_NOOP
- bool "noop"
- select ADK_WALDUX_KERNEL_IOSCHED_NOOP
-
-endchoice
-
-config ADK_WALDUX_KERNEL_IDE
- bool
-
-config ADK_WALDUX_KERNEL_IDE_GD
- bool
-
-config ADK_WALDUX_KERNEL_IDE_GD_ATA
- bool
-
-config ADK_WALDUX_KERNEL_LBDAF
- bool
-
-config ADK_WALDUX_KERNEL_BLK_DEV_BSG
- bool
-
-config ADK_WALDUX_KERNEL_BLK_DEV_BSGLIB
- bool
-
-config ADK_WALDUX_KERNEL_BLK_DEV_THROTTLING
- bool
-
-config ADK_WALDUX_KERNEL_MD
- bool
-
-config ADK_WALDUX_KERNEL_RAID6_PQ
- tristate
-
-config ADK_WALDUX_KERNEL_BLK_DEV_IO_TRACE
- bool
-
-config ADK_WALDUX_KERNEL_IOSCHED_AS
- bool
-
-config ADK_WALDUX_KERNEL_IOSCHED_DEADLINE
- bool
-
-config ADK_WALDUX_KERNEL_IOSCHED_CFQ
- bool
-
-config ADK_WALDUX_KERNEL_SCSI_LOWLEVEL
- bool
-
-config ADK_WALDUX_KERNEL_SCSI_DMA
- bool
-
-config ADK_WALDUX_KERNEL_SCSI_MULTI_LUN
- bool
-
-config ADK_WALDUX_KERNEL_SCSI_CONSTANTS
- bool
-
-config ADK_WALDUX_KERNEL_SCSI_LOGGING
- bool
-
-config ADK_WALDUX_KERNEL_SCSI_SCAN_ASYNC
- bool
-
-config ADK_WALDUX_KERNEL_ISCSI_TCP
- bool
-
-config ADK_WALDUX_KERNEL_BLK_DEV
- bool
-
-config ADK_WALDUX_KERNEL_ATA
- bool
-
-config ADK_WALDUX_KERNEL_ATA_SFF
- bool
-
-config ADK_WALDUX_KERNEL_ATA_BMDMA
- bool
-
-config ADK_WALDUX_KERNEL_SATA_AHCI_PLATFORM
- bool
-
-config ADK_WALDUX_KERNEL_SATA_PMP
- bool
-
-config ADK_WALDUX_KERNEL_AHCI_IMX
- bool
-
-config ADK_WALDUX_KERNEL_CONNECTOR
- bool
-
-config ADK_WALDUX_KERNEL_MMC
- bool
-
-config ADK_WALDUX_KERNEL_MMC_BLOCK
- bool
-
-config ADK_WALDUX_KERNEL_MMC_BLOCK_BOUNCE
- bool
-
-config ADK_WALDUX_KERNEL_MMC_UNSAFE_RESUME
- bool
-
-config ADK_WALDUX_KERNEL_MMC_SDHCI
- bool
-
-config ADK_WALDUX_KERNEL_MMC_SDHCI_IO_ACCESSORS
- bool
-
-config ADK_WALDUX_KERNEL_MMC_SDHCI_PLTFM
- bool
-
-config ADK_WALDUX_KERNEL_MMC_BCM2835_DMA
- bool
-
-config ADK_WALDUX_KERNEL_MMC_BCM2835_SDHOST
- bool
-
-config ADK_WALDUX_KERNEL_PWRSEQ_EMMC
- bool
-
-config ADK_WALDUX_KERNEL_PWRSEQ_SIMPLE
- bool
-
-config ADK_WALDUX_KERNEL_BOARD_GRASSHOPPER_MMC
- bool
-
-config ADK_WALDUX_KERNEL_BOARD_GRASSHOPPER_MMCLED
- bool
-
-menu "SATA/PATA devices support"
-depends on ADK_TARGET_WITH_PATA \
- || ADK_TARGET_WITH_SATA \
- || ADK_TARGET_QEMU \
- || ADK_TARGET_VBOX \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_PATA_RB532
- tristate "CF disk driver for Mikrotik RB532"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_ATA
- select ADK_WALDUX_KERNEL_ATA_SFF
- select ADK_WALDUX_KERNEL_ATA_BMDMA
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default y if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default n
-
-config ADK_WALDUX_KERNEL_PATA_AMD
- tristate "AMD PATA driver"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_ATA
- select ADK_WALDUX_KERNEL_ATA_SFF
- select ADK_WALDUX_KERNEL_ATA_BMDMA
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_PCENGINES_ALIX \
- || ADK_TARGET_SYSTEM_LEMOTE_YEELONG \
- || ADK_TARGET_GENERIC
- default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default n
-
-config ADK_WALDUX_KERNEL_PATA_SC1200
- tristate
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_ATA
- select ADK_WALDUX_KERNEL_ATA_SFF
- select ADK_WALDUX_KERNEL_ATA_BMDMA
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_PCENGINES_WRAP
- default y if ADK_TARGET_SYSTEM_PCENGINES_WRAP
- default n
-
-config ADK_WALDUX_KERNEL_SATA_AHCI
- tristate "AHCI SATA driver"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_ATA
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_ASUS_P5BVM || \
- ADK_TARGET_SYSTEM_PCENGINES_APU || \
- ADK_TARGET_GENERIC || \
- ADK_TARGET_VBOX
- default y if ADK_TARGET_SYSTEM_PCENGINES_APU
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default y if ADK_TARGET_VBOX
- default n
- help
- Enables support for AHCI Serial ATA.
-
-config ADK_WALDUX_KERNEL_ATA_PIIX
- tristate "ATA PIIX support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_SCSI_DMA
- select ADK_WALDUX_KERNEL_ATA
- select ADK_WALDUX_KERNEL_ATA_SFF
- select ADK_WALDUX_KERNEL_ATA_BMDMA
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_IBM_X40 || \
- ADK_TARGET_GENERIC || \
- ADK_TARGET_SYSTEM_QEMU_MIPS || \
- ADK_TARGET_SYSTEM_QEMU_MIPS64 || \
- ADK_TARGET_SYSTEM_QEMU_X86 || \
- ADK_TARGET_SYSTEM_QEMU_X86_64 || \
- ADK_TARGET_SYSTEM_ASUS_P5BVM
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default n
- help
- ATA PIIX driver.
-
-config ADK_WALDUX_KERNEL_PATA_MACIO
- tristate "MAC IO support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_ATA
- select ADK_WALDUX_KERNEL_ATA_SFF
- select ADK_WALDUX_KERNEL_ATA_BMDMA
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_QEMU_PPC_MACPPC
-
-config ADK_WALDUX_KERNEL_PATA_PLATFORM
- tristate "PATA platform driver"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_ATA
- select ADK_WALDUX_KERNEL_ATA_SFF
- select ADK_WALDUX_KERNEL_ATA_BMDMA
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_QEMU_SH
- default n
-
-config ADK_WALDUX_KERNEL_PATA_PCMCIA
- tristate
- select ADK_WALDUX_KERNEL_PCCARD
- select ADK_WALDUX_KERNEL_PCMCIA
-
-config ADK_WALDUX_KERNEL_PATA_IMX
- tristate "eSATA driver for IMX6 boards"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_ATA
- select ADK_WALDUX_KERNEL_ATA_SFF
- select ADK_WALDUX_KERNEL_ATA_BMDMA
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- select ADK_WALDUX_KERNEL_ATA
- select ADK_WALDUX_KERNEL_AHCI_IMX
- select ADK_WALDUX_KERNEL_SATA_PMP
- select ADK_WALDUX_KERNEL_SATA_AHCI_PLATFORM
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
- help
- eSATA driver for IMX6 boards.
-
-config ADK_WALDUX_KERNEL_PATA_CMD64X
- tristate "CMD64x PATA driver"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_ATA
- select ADK_WALDUX_KERNEL_ATA_SFF
- select ADK_WALDUX_KERNEL_ATA_BMDMA
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_QEMU_SPARC64
- help
- Driver for CMD64x chipsets.
-
-config ADK_WALDUX_KERNEL_PATA_PXA
- tristate "PATA driver for Sharp Zaurus"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_ATA
- select ADK_WALDUX_KERNEL_ATA_SFF
- select ADK_WALDUX_KERNEL_ATA_BMDMA
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- select ADK_WALDUX_KERNEL_PATA_PCMCIA
- select ADK_WALDUX_KERNEL_PCMCIA_PXA2XX
- depends on ADK_TARGET_SYSTEM_SHARP_ZAURUS \
- || ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER \
- || ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
- default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default n
- help
- Driver for PATA on Sharp Zaurus
-
-endmenu
-
-menu "IDE driver support"
-depends on ADK_TARGET_SYSTEM_QEMU_ALPHA
-
-config ADK_WALDUX_KERNEL_BLK_DEV_CMD64X
- tristate "CMD64x support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_IDE
- select ADK_WALDUX_KERNEL_IDE_GD
- select ADK_WALDUX_KERNEL_IDE_GD_ATA
- depends on ADK_TARGET_SYSTEM_QEMU_ALPHA
- help
- CMD64x IDE driver.
-
-endmenu
-
-menu "SCSI driver support"
-depends on ADK_TARGET_WITH_SCSI || \
- ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB || \
- ADK_TARGET_SYSTEM_QEMU_M68K_Q800 || \
- ADK_TARGET_SYSTEM_QEMU_PPC64 || \
- ADK_TARGET_SYSTEM_QEMU_SPARC
-
-config ADK_WALDUX_KERNEL_SCSI_AIC7XXX
- tristate "Adaptec AIC-7XXX support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_SCSI_LOWLEVEL
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- default y if ADK_TARGET_SYSTEM_SGI_O2
- depends on ADK_TARGET_SYSTEM_SGI_O2
-
-config ADK_WALDUX_KERNEL_SCSI_SYM53C8XX_2
- tristate "Symbios Logic 53C8XX2 support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_SCSI_LOWLEVEL
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB
-
-config ADK_WALDUX_KERNEL_SCSI_IBMVSCSI
- tristate "IBM VSCSI support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_SCSI_LOWLEVEL
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_QEMU_PPC64
-
-config ADK_WALDUX_KERNEL_SCSI_MAC_ESP
- tristate "MAC ESP support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_SCSI_LOWLEVEL
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_QEMU_M68K_Q800
-
-config ADK_WALDUX_KERNEL_SCSI_SUNESP
- tristate "SUN ESP support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_SCSI_LOWLEVEL
- select ADK_WALDUX_KERNEL_SBUS
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_QEMU_SPARC
-
-endmenu
-
-menu "SD/MMC driver support"
-depends on ADK_TARGET_WITH_SD || ADK_TARGET_QEMU
-
-config ADK_WALDUX_KERNEL_MMC_ARMMMCI
- bool "SD card support for Qemu ARM Vexpress A9"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_MMC
- select ADK_WALDUX_KERNEL_MMC_BLOCK
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
- default n
-
-config ADK_WALDUX_KERNEL_MMC_AT91
- tristate
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_MMC
- select ADK_WALDUX_KERNEL_MMC_BLOCK
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- depends on ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- default y if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- default n
-
-config ADK_WALDUX_KERNEL_MMC_BCM2835
- bool "SD card support for BCM28XX boards"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_MMC
- select ADK_WALDUX_KERNEL_MMC_BLOCK
- select ADK_WALDUX_KERNEL_MMC_BLOCK_BOUNCE
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- select ADK_WALDUX_KERNEL_BLK_DEV_BSG
- select ADK_WALDUX_KERNEL_BLK_DEV_BSGLIB
- select ADK_WALDUX_KERNEL_BLK_DEV_THROTTLING
- select ADK_WALDUX_KERNEL_MMC_SDHCI
- select ADK_WALDUX_KERNEL_MMC_SDHCI_PLTFM
- select ADK_WALDUX_KERNEL_MMC_BCM2835_DMA
- select ADK_WALDUX_KERNEL_MMC_BCM2835_SDHOST
- depends on ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_BOARD_BCM28XX
- default n
-
-config ADK_WALDUX_KERNEL_MMC_SDHCI_ESDHC_IMX
- bool "SD card support for IMX6 boards"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_LBDAF
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_SCSI_DMA
- select ADK_WALDUX_KERNEL_SCSI_MULTI_LUN
- select ADK_WALDUX_KERNEL_SCSI_CONSTANTS
- select ADK_WALDUX_KERNEL_SCSI_LOGGING
- select ADK_WALDUX_KERNEL_SCSI_SCAN_ASYNC
- select ADK_WALDUX_KERNEL_MMC
- select ADK_WALDUX_KERNEL_MMC_BLOCK
- select ADK_WALDUX_KERNEL_MMC_BLOCK_BOUNCE
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- select ADK_WALDUX_KERNEL_BLK_DEV_BSG
- select ADK_WALDUX_KERNEL_BLK_DEV_BSGLIB
- select ADK_WALDUX_KERNEL_MMC_SDHCI
- select ADK_WALDUX_KERNEL_MMC_SDHCI_IO_ACCESSORS
- select ADK_WALDUX_KERNEL_MMC_SDHCI_PLTFM
- select ADK_WALDUX_KERNEL_MMC_UNSAFE_RESUME
- select ADK_WALDUX_KERNEL_PWRSEQ_EMMC
- select ADK_WALDUX_KERNEL_PWRSEQ_SIMPLE
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-config ADK_WALDUX_KERNEL_MMC_SUNXI
- bool "SD card support for SUNXI boards"
- select ADK_WALDUX_KERNEL_REGULATOR_FIXED_VOLTAGE
- select ADK_WALDUX_KERNEL_REGULATOR_GPIO
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_SCSI_DMA
- select ADK_WALDUX_KERNEL_SCSI_MULTI_LUN
- select ADK_WALDUX_KERNEL_SCSI_CONSTANTS
- select ADK_WALDUX_KERNEL_SCSI_LOGGING
- select ADK_WALDUX_KERNEL_SCSI_SCAN_ASYNC
- select ADK_WALDUX_KERNEL_MMC
- select ADK_WALDUX_KERNEL_MMC_BLOCK
- select ADK_WALDUX_KERNEL_MMC_BLOCK_BOUNCE
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
- select ADK_WALDUX_KERNEL_BLK_DEV_BSG
- select ADK_WALDUX_KERNEL_BLK_DEV_BSGLIB
- select ADK_WALDUX_KERNEL_MMC_SDHCI
- select ADK_WALDUX_KERNEL_MMC_SDHCI_IO_ACCESSORS
- select ADK_WALDUX_KERNEL_MMC_SDHCI_PLTFM
- select ADK_WALDUX_KERNEL_MMC_UNSAFE_RESUME
- select ADK_WALDUX_KERNEL_LBDAF
- depends on ADK_TARGET_SYSTEM_BANANA_PRO || \
- ADK_TARGET_SYSTEM_ORANGE_PI0
- default y if ADK_TARGET_SYSTEM_BANANA_PRO
- default y if ADK_TARGET_SYSTEM_ORANGE_PI0
- default n
-
-config ADK_WALDUX_KERNEL_MMC_ATMELMCI
- bool "Atmel SD/MMC Driver (Multimedia Card Interface)"
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_MMC
- select ADK_WALDUX_KERNEL_MMC_BLOCK
- select ADK_WALDUX_KERNEL_MMC_BLOCK_BOUNCE
- select ADK_WALDUX_KERNEL_MMC_SDHCI
- select ADK_WALDUX_KERNEL_MMC_SDHCI_IO_ACCESSORS
- select ADK_WALDUX_KERNEL_MMC_SDHCI_PLTFM
- select ADK_WALDUX_KERNEL_BOARD_GRASSHOPPER_MMC if ADK_TARGET_SYSTEM_GRASSHOPPER
- select ADK_WALDUX_KERNEL_BOARD_GRASSHOPPER_MMCLED if ADK_TARGET_SYSTEM_GRASSHOPPER
- depends on ADK_TARGET_SYSTEM_GRASSHOPPER \
- || ADK_TARGET_SYSTEM_ATMEL_NGW100
- default y if ADK_TARGET_SYSTEM_GRASSHOPPER
- default y if ADK_TARGET_SYSTEM_ATMEL_NGW100
- default n
- help
- Atmel Multimedia Card Interface driver for AT32
- and AT91 plattforms.
-
-endmenu
-
-menu "Block driver support"
-
-config ADK_WALDUX_KERNEL_SCSI
- tristate "SCSI support"
- select ADK_WALDUX_KERNEL_IOSCHED_AS
- help
- If you want to use a SCSI hard disk, SCSI tape drive, SCSI CD-ROM or
- any other SCSI device under Linux, say Y and make sure that you know
- the name of your SCSI host adapter (the card inside your computer
- that "speaks" the SCSI protocol, also called SCSI controller),
- because you will be asked for it.
-
- You also need to say Y here if you have a device which speaks
- the SCSI protocol. Examples of this include the parallel port
- version of the IOMEGA ZIP drive, USB storage devices, Fibre
- Channel, FireWire storage and the IDE-SCSI emulation driver.
-
-config ADK_WALDUX_KERNEL_BLK_DEV_SD
- tristate "SCSI disk support"
- select ADK_WALDUX_KERNEL_SCSI
- help
- If you want to use SCSI hard disks, Fibre Channel disks,
- USB storage or the SCSI or parallel port version of
- the IOMEGA ZIP drive, say Y and read the SCSI-HOWTO,
- the Disk-HOWTO and the Multi-Disk-HOWTO, available from
- <http://www.tldp.org/docs.html#howto>. This is NOT for SCSI
- CD-ROMs.
-
-config ADK_WALDUX_KERNEL_BLK_DEV_SR
- tristate "SCSI CDROM support"
- select ADK_WALDUX_KERNEL_SCSI
- help
- If you want to use a SCSI or FireWire CD-ROM under Linux,
- say Y and read the SCSI-HOWTO and the CDROM-HOWTO at
- <http://www.tldp.org/docs.html#howto>. Also make sure to say
- Y or M to "ISO 9660 CD-ROM file system support" later.
-
-config ADK_WALDUX_KERNEL_BLK_DEV_MD
- tristate "RAID support"
- select ADK_WALDUX_KERNEL_MD
-
-config ADK_WALDUX_KERNEL_MD_RAID0
- tristate "RAID0 support"
- depends on ADK_WALDUX_KERNEL_BLK_DEV_MD
-
-config ADK_WALDUX_KERNEL_MD_RAID1
- tristate "RAID1 support"
- depends on ADK_WALDUX_KERNEL_BLK_DEV_MD
-
-config ADK_WALDUX_KERNEL_MD_RAID456
- tristate "RAID456 support"
- depends on ADK_WALDUX_KERNEL_BLK_DEV_MD
-
-config ADK_WALDUX_KERNEL_BLK_DEV_DM
- tristate "Device Mapper support"
- select ADK_WALDUX_KERNEL_MD
- help
- Device-mapper is a low level volume manager. It works by allowing
- people to specify mappings for ranges of logical sectors. Various
- mapping types are available, in addition people may write their own
- modules containing custom mappings if they wish.
-
- Higher level volume managers such as LVM2 use this driver.
-
-config ADK_WALDUX_KERNEL_DM_CRYPT
- tristate "Crypt target support"
- select ADK_WALDUX_KERNEL_MD
- select ADK_WALDUX_KERNEL_CRYPTO
- select ADK_WALDUX_KERNEL_CRYPTO_CBC
- select ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER
- depends on ADK_WALDUX_KERNEL_BLK_DEV_DM
- default n
- help
- This device-mapper target allows you to create a device that
- transparently encrypts the data on it. You'll need to activate
- the ciphers you're going to use in the cryptoapi configuration.
-
- Information on how to use dm-crypt can be found on
-
- <http://www.saout.de/misc/dm-crypt/>
-
-config ADK_WALDUX_KERNEL_DM_SNAPSHOT
- tristate "Devicemapper Snapshot target"
- depends on ADK_WALDUX_KERNEL_BLK_DEV_DM
- help
- Allow volume managers to take writable snapshots of a device.
-
-config ADK_WALDUX_KERNEL_DM_MIRROR
- tristate "Devicemapper Mirror target"
- depends on ADK_WALDUX_KERNEL_BLK_DEV_DM
- help
- Allow volume managers to mirror logical volumes, also
- needed for live data migration tools such as 'pvmove'.
-
-config ADK_WALDUX_KERNEL_BLK_DEV_DRBD
- tristate "DRBD support (Network RAID 1)"
- select ADK_WALDUX_KERNEL_BLK_DEV
- select ADK_WALDUX_KERNEL_CONNECTOR
- default n
- help
- DRBD - http://www.drbd.org
-
-config ADK_WALDUX_KERNEL_BLK_DEV_LOOP
- tristate "Loop mount support"
- select ADK_WALDUX_KERNEL_BLK_DEV
- default n
- help
- Saying Y here will allow you to use a regular file as a block
- device; you can then create a file system on that block device and
- mount it just as you would mount other block devices such as hard
- drive partitions, CD-ROM drives or floppy drives. The loop devices
- are block special device files with major number 7 and typically
- called /dev/loop0, /dev/loop1 etc.
-
- This is useful if you want to check an ISO 9660 file system before
- burning the CD, or if you want to use floppy images without first
- writing them to floppy. Furthermore, some Linux distributions avoid
- the need for a dedicated Linux partition by keeping their complete
- root file system inside a DOS FAT file using this loop device
- driver.
-
- To use the loop device, you need the losetup utility, found in the
- util-linux package, see
- <ftp://ftp.kernel.org/pub/linux/utils/util-linux/>.
-
- The loop device driver can also be used to "hide" a file system in
- a disk partition, floppy, or regular file, either using encryption
- (scrambling the data) or steganography (hiding the data in the low
- bits of, say, a sound file). This is also safe if the file resides
- on a remote file server.
-
- There are several ways of encrypting disks. Some of these require
- kernel patches. The vanilla kernel offers the cryptoloop option
- and a Device Mapper target (which is superior, as it supports all
- file systems). If you want to use the cryptoloop, say Y to both
- LOOP and CRYPTOLOOP, and make sure you have a recent (version 2.12
- or later) version of util-linux. Additionally, be aware that
- the cryptoloop is not safe for storing journaled filesystems.
-
- Note that this loop device has nothing to do with the loopback
- device used for network connections from the machine to itself.
-
-config ADK_WALDUX_KERNEL_BLK_DEV_NBD
- tristate "Network Block Device support"
- help
- Saying Y here will allow your computer to be a client for network
- block devices, i.e. it will be able to use block devices exported by
- servers (mount file systems on them etc.). Communication between
- client and server works over TCP/IP networking, but to the client
- program this is hidden: it looks like a regular local file access to
- a block device special file such as /dev/nd0.
-
- Network block devices also allows you to run a block-device in
- userland (making server and client physically the same computer,
- communicating using the loopback network device).
-
- Read <file:Documentation/nbd.txt> for more information, especially
- about where to find the server code, which runs in user space and
- does not need special kernel support.
-
- Note that this has nothing to do with the network file systems NFS
- or Coda; you can say N here even if you intend to use NFS or Coda.
-
-config ADK_WALDUX_KERNEL_SWAP
- bool "SWAP support"
- help
- Kernel swap support
-
-endmenu
-endmenu
diff --git a/target/waldux/config/Config.in.bluetooth b/target/waldux/config/Config.in.bluetooth
deleted file mode 100644
index 8c533b866..000000000
--- a/target/waldux/config/Config.in.bluetooth
+++ /dev/null
@@ -1,186 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Bluetooth support and drivers"
-depends on ADK_TARGET_WITH_USB \
- || ADK_TARGET_WITH_MINIPCI \
- || ADK_TARGET_WITH_SDIO \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_BT_BREDR
- bool
-
-config ADK_WALDUX_KERNEL_BT_BCM
- tristate
-
-config ADK_WALDUX_KERNEL_BT
- tristate "Bluetooth network stack"
- select ADK_WALDUX_KERNEL_BT_BREDR
- default n
- help
- Bluetooth is low-cost, low-power, short-range wireless technology.
- It was designed as a replacement for cables and other short-range
- technologies like IrDA. Bluetooth operates in personal area range
- that typically extends up to 10 meters. More information about
- Bluetooth can be found at <http://www.bluetooth.com/>.
-
- Linux Bluetooth subsystem consist of several layers:
- Bluetooth Core (HCI device and connection manager, scheduler)
- HCI Device drivers (Interface to the hardware)
- SCO Module (SCO audio links)
- L2CAP Module (Logical Link Control and Adaptation Protocol)
- RFCOMM Module (RFCOMM Protocol)
- BNEP Module (Bluetooth Network Encapsulation Protocol)
- CMTP Module (CAPI Message Transport Protocol)
- HIDP Module (Human Interface Device Protocol)
-
-config ADK_WALDUX_KERNEL_BT_L2CAP
- bool "L2CAP protocol support"
- select ADK_WALDUX_KERNEL_BT
- default n
- help
- L2CAP (Logical Link Control and Adaptation Protocol) provides
- connection oriented and connection-less data transport. L2CAP
- support is required for most Bluetooth applications.
-
-config ADK_WALDUX_KERNEL_BT_SCO
- bool "SCO link support"
- select ADK_WALDUX_KERNEL_BT
- default n
- help
- SCO link provides voice transport over Bluetooth. SCO support is
- required for voice applications like Headset and Audio.
-
-config ADK_WALDUX_KERNEL_BT_RFCOMM
- tristate "RFCOMM protocol support"
- select ADK_WALDUX_KERNEL_BT
- depends on ADK_WALDUX_KERNEL_BT_L2CAP
- default n
- help
- RFCOMM provides connection oriented stream transport. RFCOMM
- support is required for Dialup Networking, OBEX and other Bluetooth
- applications.
-
-config ADK_WALDUX_KERNEL_BT_BNEP
- tristate "BNEP protocol support"
- select ADK_WALDUX_KERNEL_BT
- depends on ADK_WALDUX_KERNEL_BT_L2CAP
- default n
- help
- BNEP (Bluetooth Network Encapsulation Protocol) is Ethernet
- emulation layer on top of Bluetooth. BNEP is required for
- Bluetooth PAN (Personal Area Network).
-
-config ADK_WALDUX_KERNEL_BT_HIDP
- tristate "HIDP protocol support"
- select ADK_WALDUX_KERNEL_INPUT
- select ADK_WALDUX_KERNEL_HID
- select ADK_WALDUX_KERNEL_BT
- depends on ADK_WALDUX_KERNEL_BT_L2CAP
- default n
- help
- HIDP (Human Interface Device Protocol) is a transport layer
- for HID reports. HIDP is required for the Bluetooth Human
- Interface Device Profile.
-
-config ADK_WALDUX_KERNEL_BT_HCIBTSDIO
- tristate "HCI SDIO driver"
- select ADK_WALDUX_KERNEL_BT
- depends on ADK_TARGET_WITH_SDIO
- default n
- help
- Bluetooth HCI SDIO driver.
- This driver is required if you want to use Bluetooth devices with
- SDIO interface.
-
-config ADK_WALDUX_KERNEL_BT_HCIBTUSB
- tristate "HCI USB driver"
- select ADK_WALDUX_KERNEL_BT
- depends on ADK_TARGET_WITH_USB
- default n
- help
- Bluetooth HCI USB driver.
- This driver is required if you want to use Bluetooth devices with
- USB interface.
-
-config ADK_WALDUX_KERNEL_BT_HCIBTUSB_BCM
- bool "Broadcom protocol support"
- depends on ADK_WALDUX_KERNEL_BT_HCIBTUSB
- select ADK_WALDUX_KERNEL_BT_BCM
- help
- The Broadcom protocol support enables firmware and patchram
- download support for Broadcom Bluetooth controllers.
-
-config ADK_WALDUX_KERNEL_BT_HCIUART
- tristate "HCI UART driver"
- select ADK_WALDUX_KERNEL_BT
- default n
- help
- Bluetooth HCI UART driver.
- This driver is required if you want to use Bluetooth devices with
- serial port interface. You will also need this driver if you have
- UART based Bluetooth PCMCIA and CF devices like Xircom Credit Card
- adapter and BrainBoxes Bluetooth PC Card.
-
-config ADK_WALDUX_KERNEL_BT_HCIUART_H4
- bool
- depends on ADK_WALDUX_KERNEL_BT_HCIUART
- default n
-
-config ADK_WALDUX_KERNEL_BT_HCIUART_3WIRE
- bool
- depends on ADK_WALDUX_KERNEL_BT_HCIUART
- default n
-
-config ADK_WALDUX_KERNEL_BT_HCIUART_BCM
- tristate "Broadcom protocol support"
- select ADK_WALDUX_KERNEL_BT_HCIUART
- select ADK_WALDUX_KERNEL_BT_HCIUART_3WIRE
- select ADK_WALDUX_KERNEL_BT_BCM
- depends on ADK_TARGET_SYSTEM_RASPBERRY_PI3
- depends on ADK_TARGET_SYSTEM_RASPBERRY_PI3P
- default n
- help
- The Broadcom protocol support enables Bluetooth HCI over serial
- port interface for Broadcom Bluetooth controllers.
-
-config ADK_WALDUX_KERNEL_BT_MRVL
- tristate "Marvell driver"
- select ADK_WALDUX_KERNEL_BT
- default n
- help
- Bluetooth Marvell driver.
-
-config ADK_WALDUX_KERNEL_BT_MRVL_SDIO
- tristate "Marvell SDIO driver"
- select ADK_PACKAGE_BRCM_BLUETOOTH
- select ADK_WALDUX_KERNEL_BT_MRVL
- select ADK_WALDUX_KERNEL_BT_HCIBTSDIO
- depends on ADK_TARGET_WITH_SDIO
- default n
- help
- Bluetooth Marvell driver.
-
-config ADK_WALDUX_KERNEL_BT_HCIBCM203X
- tristate "HCI BCM203x USB driver"
- select ADK_WALDUX_KERNEL_FW_LOADER
- select ADK_WALDUX_KERNEL_BT_HCIBTUSB
- select ADK_WALDUX_KERNEL_BT
- depends on ADK_TARGET_WITH_USB
- default n
- help
- Bluetooth HCI BCM203x USB driver.
- This driver provides the firmware loading mechanism for the Broadcom
- Blutonium based devices.
-
-config ADK_WALDUX_KERNEL_BT_HCIBPA10X
- tristate "HCI BPA10x USB driver"
- select ADK_WALDUX_KERNEL_BT
- select ADK_WALDUX_KERNEL_BT_HCIBTUSB
- default n
- help
- Bluetooth HCI BPA10x USB driver.
- This driver provides support for the Digianswer BPA 100/105 Bluetooth
- sniffer devices.
-
-endmenu
diff --git a/target/waldux/config/Config.in.bus b/target/waldux/config/Config.in.bus
deleted file mode 100644
index be809754e..000000000
--- a/target/waldux/config/Config.in.bus
+++ /dev/null
@@ -1,25 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_PCI
- bool
- select ADK_WALDUX_KERNEL_PCI_QUIRKS
- depends on ADK_TARGET_WITH_PCI \
- || ADK_TARGET_QEMU \
- || ADK_TARGET_VBOX \
- || ADK_TARGET_GENERIC
- default n if ADK_TARGET_CPU_XTENSA_DE212
- default n if ADK_TARGET_SYSTEM_GENERIC_NDS32
- default y
-
-config ADK_WALDUX_KERNEL_PCI_QUIRKS
- bool
-
-config ADK_WALDUX_KERNEL_PCI_MSI
- bool
-
-config ADK_WALDUX_KERNEL_PCI_IMX6
- bool
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
diff --git a/target/waldux/config/Config.in.compression b/target/waldux/config/Config.in.compression
deleted file mode 100644
index 01d5ebb0e..000000000
--- a/target/waldux/config/Config.in.compression
+++ /dev/null
@@ -1,137 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_NONE
- bool
-
-config ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_XZ
- bool
- select ADK_HOST_NEED_XZ
-
-config ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_LZ4
- bool
- select ADK_HOST_NEED_LZ4
-
-config ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_LZMA
- bool
- select ADK_HOST_NEED_LZMA
-
-config ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_LZO
- bool
- select ADK_HOST_NEED_LZOP
-
-config ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_BZIP2
- bool
- select ADK_HOST_NEED_BZIP2
-
-config ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_GZIP
- bool
-
-config ADK_WALDUX_KERNEL_RD_GZIP
- bool
-
-config ADK_WALDUX_KERNEL_KERNEL_GZIP
- bool
-
-config ADK_WALDUX_KERNEL_RD_BZIP2
- bool
-
-config ADK_WALDUX_KERNEL_KERNEL_BZIP2
- bool
-
-config ADK_WALDUX_KERNEL_RD_LZ4
- bool
-
-config ADK_WALDUX_KERNEL_KERNEL_LZ4
- bool
-
-config ADK_WALDUX_KERNEL_RD_LZMA
- bool
-
-config ADK_WALDUX_KERNEL_KERNEL_LZMA
- bool
-
-config ADK_WALDUX_KERNEL_RD_LZO
- bool
-
-config ADK_WALDUX_KERNEL_KERNEL_LZO
- bool
-
-config ADK_WALDUX_KERNEL_RD_XZ
- bool
-
-config ADK_WALDUX_KERNEL_KERNEL_XZ
- bool
-
-config ADK_WALDUX_KERNEL_KERNEL_COMPRESS_NONE
- bool
-
-config ADK_WALDUX_KERNEL_INITRAMFS_SOURCE
- string
- default ""
-
-choice
-prompt "Kernel compression"
-depends on ADK_TARGET_OS_WALDUX && !ADK_APPLIANCE_TOOLCHAIN && !ADK_TARGET_CHOOSE_ARCH
-default ADK_WALDUX_KERNEL_COMP_GZIP if ADK_TARGET_BOARD_BCM28XX
-default ADK_WALDUX_KERNEL_COMP_XZ
-
-config ADK_WALDUX_KERNEL_COMP_XZ
- bool "use XZ compression"
- select ADK_WALDUX_KERNEL_RD_XZ
- select ADK_WALDUX_KERNEL_KERNEL_XZ
- select ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_XZ
- depends on ADK_TARGET_KERNEL_WITH_COMPRESSION \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_COMP_LZ4
- bool "use LZ4 compression"
- select ADK_WALDUX_KERNEL_RD_LZ4
- select ADK_WALDUX_KERNEL_KERNEL_LZ4
- select ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_LZ4
- depends on ADK_TARGET_ARCH_ARM \
- || ADK_TARGET_ARCH_X86 \
- || ADK_TARGET_ARCH_X86_64
- depends on ADK_TARGET_KERNEL_WITH_COMPRESSION \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_COMP_LZMA
- bool "use LZMA compression"
- select ADK_WALDUX_KERNEL_RD_LZMA
- select ADK_WALDUX_KERNEL_KERNEL_LZMA
- select ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_LZMA
- depends on ADK_TARGET_KERNEL_WITH_COMPRESSION \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_COMP_LZO
- bool "use LZO compression"
- select ADK_WALDUX_KERNEL_RD_LZO
- select ADK_WALDUX_KERNEL_KERNEL_LZO
- select ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_LZO
- depends on ADK_TARGET_KERNEL_WITH_COMPRESSION \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_COMP_BZIP2
- bool "use BZIP2 compression"
- select ADK_WALDUX_KERNEL_RD_BZIP2
- select ADK_WALDUX_KERNEL_KERNEL_BZIP2
- select ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_BZIP2
- depends on ADK_TARGET_KERNEL_WITH_COMPRESSION \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_COMP_GZIP
- bool "use GZIP compression"
- select ADK_WALDUX_KERNEL_RD_GZIP
- select ADK_WALDUX_KERNEL_KERNEL_GZIP
- select ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_GZIP
- depends on ADK_TARGET_KERNEL_WITH_COMPRESSION \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_COMPRESS_NONE
- bool "use no compression"
- select ADK_WALDUX_KERNEL_KERNEL_COMPRESS_NONE
- select ADK_WALDUX_KERNEL_INITRAMFS_COMPRESSION_NONE
-
-endchoice
-
-
diff --git a/target/waldux/config/Config.in.cpu b/target/waldux/config/Config.in.cpu
deleted file mode 100644
index f3ca3b4ad..000000000
--- a/target/waldux/config/Config.in.cpu
+++ /dev/null
@@ -1,100 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_MTRR
- bool
- default y if ADK_TARGET_CPU_WITH_MTRR
- default n
-
-# hyper threading
-config ADK_WALDUX_KERNEL_PM_SLEEP_SMP
- bool
- default y if ADK_TARGET_CPU_WITH_HT
- default n
-
-config ADK_WALDUX_KERNEL_X86_HT
- bool
- default y if ADK_TARGET_CPU_WITH_HT
- default n
-
-config ADK_WALDUX_KERNEL_USE_GENERIC_SMP_HELPERS
- bool
- default y if ADK_TARGET_CPU_WITH_HT
- default n
-
-menu "CPU frequency support"
-depends on ADK_TARGET_WITH_CPU_FREQ
-
-config ADK_WALDUX_KERNEL_CPU_FREQ
- bool
-
-config ADK_WALDUX_KERNEL_CPU_FREQ_GOV_PERFORMANCE
- bool
-
-config ADK_WALDUX_KERNEL_CPU_FREQ_GOV_POWERSAVE
- bool
-
-config ADK_WALDUX_KERNEL_CPU_FREQ_GOV_USERSPACE
- bool
-
-config ADK_WALDUX_KERNEL_CPU_FREQ_GOV_ONDEMAND
- bool
-
-config ADK_WALDUX_KERNEL_CPU_FREQ_GOV_CONSERVATIVE
- bool
-
-config ADK_WALDUX_KERNEL_CPUFREQ_DT_PLATDEV
- bool
-
-config ADK_WALDUX_KERNEL_CPUFREQ_DT
- bool "CPU frequency support DT"
- select ADK_WALDUX_KERNEL_CPU_FREQ
- select ADK_WALDUX_KERNEL_CPUFREQ_DT_PLATDEV
- depends on ADK_TARGET_SYSTEM_ORANGE_PI0
- default y if ADK_TARGET_SYSTEM_ORANGE_PI0
- default n
-
-config ADK_WALDUX_KERNEL_ARM_IMX6Q_CPUFREQ
- bool "CPU frequency support for IMX6 boards"
- select ADK_WALDUX_KERNEL_CPU_FREQ
- select ADK_WALDUX_KERNEL_REGULATOR
- select ADK_WALDUX_KERNEL_REGULATOR_FIXED_VOLTAGE
- select ADK_WALDUX_KERNEL_REGULATOR_ANATOP
- select ADK_WALDUX_KERNEL_REGULATOR_PFUZE100
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-config ADK_WALDUX_KERNEL_ARM_BCM2835_CPUFREQ
- bool "CPU frequency support for BCM28XX boards"
- select ADK_WALDUX_KERNEL_CPU_FREQ
- depends on ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_BOARD_BCM28XX
- default n
-
-choice
-prompt "Governor"
-depends on ADK_WALDUX_KERNEL_ARM_BCM2835_CPUFREQ || ADK_WALDUX_KERNEL_ARM_IMX6_CPUFREQ
-
-config ADK_WALDUX_KERNEL_CPU_FREQ_DEFAULT_GOV_ONDEMAND
- bool "ondemand"
- select ADK_WALDUX_KERNEL_CPU_FREQ_GOV_ONDEMAND
-
-config ADK_WALDUX_KERNEL_CPU_FREQ_DEFAULT_GOV_PERFORMANCE
- bool "performance"
- select ADK_WALDUX_KERNEL_CPU_FREQ_GOV_PERFORMANCE
-
-config ADK_WALDUX_KERNEL_CPU_FREQ_DEFAULT_GOV_POWERSAVE
- bool "powersave"
- select ADK_WALDUX_KERNEL_CPU_FREQ_GOV_POWERSAVE
-
-config ADK_WALDUX_KERNEL_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
- bool "conservative"
- select ADK_WALDUX_KERNEL_CPU_FREQ_GOV_CONSERVATIVE
-
-config ADK_WALDUX_KERNEL_CPU_FREQ_DEFAULT_GOV_USERSPACE
- bool "userspace"
- select ADK_WALDUX_KERNEL_CPU_FREQ_GOV_USERSPACE
-
-endchoice
-endmenu
diff --git a/target/waldux/config/Config.in.crypto b/target/waldux/config/Config.in.crypto
deleted file mode 100644
index 67c40bcb6..000000000
--- a/target/waldux/config/Config.in.crypto
+++ /dev/null
@@ -1,553 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Crypto support"
-
-config ADK_WALDUX_KERNEL_CRYPTO
- tristate
-
-config ADK_WALDUX_KERNEL_CRYPTO_HW
- bool
-
-config ADK_WALDUX_KERNEL_XOR_BLOCKS
- tristate
-
-comment "Hardware cryptography"
-
-menu "Hardware crypto devices"
-depends on ADK_TARGET_WITH_PCI || ADK_TARGET_WITH_MINIPCI || ADK_TARGET_WITH_GEODE_CRYPTO
-
-config ADK_WALDUX_KERNEL_CRYPTO_DEV_GEODE
- tristate "Support for the Geode LX/GX AES engine"
- select ADK_WALDUX_KERNEL_CRYPTO
- select ADK_WALDUX_KERNEL_CRYPTO_HW
- select ADK_WALDUX_KERNEL_CRYPTO_ECB
- select ADK_WALDUX_KERNEL_CRYPTO_CBC
- depends on ADK_TARGET_WITH_GEODE_CRYPTO
- default y if ADK_TARGET_WITH_GEODE_CRYPTO
- default n
- help
- Say 'Y' here to use the AMD Geode LX processor on-board AES
- engine for the CryptoAPI AES algorithm.
-
-config ADK_WALDUX_KERNEL_CRYPTO_DEV_HIFN_795X
- tristate "Driver for HIFN 795x crypto accelerator chips"
- depends on ADK_TARGET_WITH_PCI || ADK_TARGET_WITH_MINIPCI
- select ADK_WALDUX_KERNEL_CRYPTO
- select ADK_WALDUX_KERNEL_CRYPTO_HW
- select ADK_WALDUX_KERNEL_CRYPTO_DES
- default n
- help
- This option allows you to have support for HIFN 795x crypto adapters.
-
-endmenu
-
-comment "Software cryptography support"
-
-menu "Crypto core / Block and Hash modes"
-
-config ADK_WALDUX_KERNEL_CRYPTO_PCOMP
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO_PCOMP2
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
-
-config ADK_WALDUX_KERNEL_CRYPTO_PCOMP2
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI2
-
-config ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI2
-
-config ADK_WALDUX_KERNEL_CRYPTO_ALGAPI2
- tristate
-
-config ADK_WALDUX_KERNEL_CRYPTO_AEAD
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO_AEAD2
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
-
-config ADK_WALDUX_KERNEL_CRYPTO_AEAD2
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI2
-
-config ADK_WALDUX_KERNEL_CRYPTO_HASH
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- select ADK_WALDUX_KERNEL_CRYPTO_HASH2
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
-
-config ADK_WALDUX_KERNEL_CRYPTO_HASH2
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI2
- tristate
-
-config ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER2
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
-
-config ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER2
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI2
- select ADK_WALDUX_KERNEL_CRYPTO_RNG2
- select ADK_WALDUX_KERNEL_CRYPTO_WORKQUEUE
-
-config ADK_WALDUX_KERNEL_CRYPTO_WORKQUEUE
- tristate
-
-config ADK_WALDUX_KERNEL_CRYPTO_RNG
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO_RNG2
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
-
-config ADK_WALDUX_KERNEL_CRYPTO_RNG2
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI2
-
-
-config ADK_WALDUX_KERNEL_CRYPTO_MANAGER
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO_MANAGER2
-
-config ADK_WALDUX_KERNEL_CRYPTO_MANAGER2
- def_tristate ADK_WALDUX_KERNEL_CRYPTO_MANAGER || (ADK_WALDUX_KERNEL_CRYPTO_MANAGER!=n && ADK_WALDUX_KERNEL_CRYPTO_ALGAPI=y)
- select ADK_WALDUX_KERNEL_CRYPTO_AEAD2
- select ADK_WALDUX_KERNEL_CRYPTO_HASH2
- select ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER2
- select ADK_WALDUX_KERNEL_CRYPTO_PCOMP2
-
-config ADK_WALDUX_KERNEL_CRYPTO_AUTHENC
- tristate "AuthENC (IPsec)"
- select ADK_WALDUX_KERNEL_CRYPTO_AEAD
- select ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER
- select ADK_WALDUX_KERNEL_CRYPTO_MANAGER
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- default n
-
-config ADK_WALDUX_KERNEL_CRYPTO_SEQIV
- tristate "Sequence Number IV Generator"
- select ADK_WALDUX_KERNEL_CRYPTO_AEAD
- select ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER
- select ADK_WALDUX_KERNEL_CRYPTO_RNG
- default n
- help
- This IV generator generates an IV based on a sequence number by
- xoring it with a salt. This algorithm is mainly useful for CTR
-
-config ADK_WALDUX_KERNEL_CRYPTO_CTS
- tristate "CTS support"
- select ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER
- default n
- help
- CTS: Cipher Text Stealing
- This is the Cipher Text Stealing mode as described by
- Section 8 of rfc2040 and referenced by rfc3962.
- (rfc3962 includes errata information in its Appendix A)
- This mode is required for Kerberos gss mechanism support
- for AES encryption.
-
-config ADK_WALDUX_KERNEL_CRYPTO_CBC
- tristate "CBC support"
- select ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER
- select ADK_WALDUX_KERNEL_CRYPTO_MANAGER
- default n
- help
- CBC: Cipher Block Chaining mode
- This block cipher algorithm is required for IPSec.
-
-config ADK_WALDUX_KERNEL_CRYPTO_CCM
- tristate "CCM support"
- select ADK_WALDUX_KERNEL_CRYPTO_CTR
- select ADK_WALDUX_KERNEL_CRYPTO_AEAD
- default n
- help
- Support for Counter with CBC MAC. Required for IPsec.
-
-config ADK_WALDUX_KERNEL_CRYPTO_GCM
- tristate "GCM support"
- select ADK_WALDUX_KERNEL_CRYPTO_CTR
- select ADK_WALDUX_KERNEL_CRYPTO_AEAD
- select ADK_WALDUX_KERNEL_CRYPTO_GHASH
- select ADK_WALDUX_KERNEL_CRYPTO_NULL
- default n
- help
- Support for Galois/Counter Mode (GCM) and Galois Message
- Authentication Code (GMAC). Required for IPSec.
-
-config ADK_WALDUX_KERNEL_CRYPTO_CTR
- tristate "CTR support"
- select ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER
- select ADK_WALDUX_KERNEL_CRYPTO_SEQIV
- select ADK_WALDUX_KERNEL_CRYPTO_MANAGER
- default n
- help
- CTR: Counter mode
- This block cipher algorithm is required for IPSec.
-
-config ADK_WALDUX_KERNEL_CRYPTO_ECB
- tristate "ECB support"
- select ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER
- select ADK_WALDUX_KERNEL_CRYPTO_MANAGER
- default n
- help
- ECB: Electronic CodeBook mode
- This is the simplest block cipher algorithm. It simply encrypts
- the input block by block.
-
-config ADK_WALDUX_KERNEL_CRYPTO_HMAC
- tristate "HMAC support"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- select ADK_WALDUX_KERNEL_CRYPTO_MANAGER
- default n
- help
- HMAC: Keyed-Hashing for Message Authentication (RFC2104).
- This is required for IPSec.
-
-config ADK_WALDUX_KERNEL_CRYPTO_XCBC
- tristate "XCBC support"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- select ADK_WALDUX_KERNEL_CRYPTO_MANAGER
- default n
- help
- XCBC: Keyed-Hashing with encryption algorithm
-
-endmenu
-
-menu "Digest algorithms"
-
-config ADK_WALDUX_KERNEL_CRYPTO_MD4
- tristate "MD4 digest algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- default n
- help
- MD4 message digest algorithm (RFC1320).
-
-config ADK_WALDUX_KERNEL_CRYPTO_MD5
- tristate "MD5 digest algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- default n
- help
- MD5 message digest algorithm (RFC1321).
-
-config ADK_WALDUX_KERNEL_CRYPTO_SHA1
- tristate "SHA1 digest algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- default n
- help
- SHA-1 secure hash standard (FIPS 180-1/DFIPS 180-2).
-
-config ADK_WALDUX_KERNEL_CRYPTO_SHA256
- tristate "SHA256 digest algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- default n
- help
- SHA256 secure hash standard (DFIPS 180-2).
-
- This version of SHA implements a 256 bit hash with 128 bits of
- security against collision attacks.
-
-config ADK_WALDUX_KERNEL_CRYPTO_SHA512
- tristate "SHA512 digest algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- default n
- help
- SHA512 secure hash standard (DFIPS 180-2).
-
- This version of SHA implements a 512 bit hash with 256 bits of
- security against collision attacks.
-
- This code also includes SHA-384, a 384 bit hash with 192 bits
- of security against collision attacks.
-
-config ADK_WALDUX_KERNEL_CRYPTO_WP512
- tristate "Whirlpool digest algorithms"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- default n
- help
- Whirlpool hash algorithm 512, 384 and 256-bit hashes
-
- Whirlpool-512 is part of the NESSIE cryptographic primitives.
- Whirlpool will be part of the ISO/IEC 10118-3:2003(E) standard
-
- See also:
- <http://planeta.terra.com.br/informatica/paulobarreto/WhirlpoolPage.html>
-
-config ADK_WALDUX_KERNEL_CRYPTO_TGR192
- tristate "Tiger digest algorithms"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- default n
- help
- Tiger hash algorithm 192, 160 and 128-bit hashes
-
- Tiger is a hash function optimized for 64-bit processors while
- still having decent performance on 32-bit processors.
- Tiger was developed by Ross Anderson and Eli Biham.
-
- See also:
- <http://www.cs.technion.ac.il/~biham/Reports/Tiger/>.
-endmenu
-
-menu "Cipher algoritms"
-
-config ADK_WALDUX_KERNEL_CRYPTO_AES
- tristate "AES cipher algorithms"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- AES cipher algorithms (FIPS-197). AES uses the Rijndael
- algorithm.
-
- Rijndael appears to be consistently a very good performer in
- both hardware and software across a wide range of computing
- environments regardless of its use in feedback or non-feedback
- modes. Its key setup time is excellent, and its key agility is
- good. Rijndael's very low memory requirements make it very well
- suited for restricted-space environments, in which it also
- demonstrates excellent performance. Rijndael's operations are
- among the easiest to defend against power and timing attacks.
-
- The AES specifies three key sizes: 128, 192 and 256 bits
-
- See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
-
-config ADK_WALDUX_KERNEL_CRYPTO_AES_586
- tristate "AES cipher algorithms (i586)"
- depends on ADK_x86
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- select ADK_WALDUX_KERNEL_CRYPTO_AES
- default n
- help
- AES cipher algorithms (FIPS-197). AES uses the Rijndael
- algorithm.
-
- Rijndael appears to be consistently a very good performer in
- both hardware and software across a wide range of computing
- environments regardless of its use in feedback or non-feedback
- modes. Its key setup time is excellent, and its key agility is
- good. Rijndael's very low memory requirements make it very well
- suited for restricted-space environments, in which it also
- demonstrates excellent performance. Rijndael's operations are
- among the easiest to defend against power and timing attacks.
-
- The AES specifies three key sizes: 128, 192 and 256 bits
-
- See <http://csrc.nist.gov/CryptoToolkit/aes/> for more information.
-
-config ADK_WALDUX_KERNEL_CRYPTO_ANUBIS
- tristate "Anubis cipher algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- Anubis cipher algorithm.
-
- Anubis is a variable key length cipher which can use keys from
- 128 bits to 320 bits in length. It was evaluated as a entrant
- in the NESSIE competition.
-
- See also:
- <https://www.cosic.esat.kuleuven.ac.be/nessie/reports/>
- <http://planeta.terra.com.br/informatica/paulobarreto/AnubisPage.html>
-
-config ADK_WALDUX_KERNEL_CRYPTO_ARC4
- tristate "ARC4 cipher algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER
- default n
- help
- ARC4 cipher algorithm.
-
- ARC4 is a stream cipher using keys ranging from 8 bits to 2048
- bits in length. This algorithm is required for driver-based
- WEP, but it should not be for other purposes because of the
- weakness of the algorithm.
-
-config ADK_WALDUX_KERNEL_CRYPTO_BLOWFISH
- tristate "Blowfish cipher algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- Blowfish cipher algorithm, by Bruce Schneier.
-
- This is a variable key length cipher which can use keys from 32
- bits to 448 bits in length. It's fast, simple and specifically
- designed for use on "large microprocessors".
-
- See also:
- <http://www.schneier.com/blowfish.html>
-
-config ADK_WALDUX_KERNEL_CRYPTO_CAMELLIA
- tristate "Camellia cipher algorithms"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- Camellia cipher algorithms module.
-
- Camellia is a symmetric key block cipher developed jointly
- at NTT and Mitsubishi Electric Corporation.
-
- The Camellia specifies three key sizes: 128, 192 and 256 bits.
-
- See also:
- <https://info.isl.ntt.co.jp/crypt/eng/camellia/index_s.html>
-
-config ADK_WALDUX_KERNEL_CRYPTO_CAST5
- tristate "CAST5 (CAST-128) cipher algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- The CAST5 encryption algorithm (synonymous with CAST-128) is
- described in RFC2144.
-
-config ADK_WALDUX_KERNEL_CRYPTO_CAST6
- tristate "CAST6 (CATS-256) cipher algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- The CAST6 encryption algorithm (synonymous with CAST-256) is
- described in RFC2612.
-
-config ADK_WALDUX_KERNEL_CRYPTO_DES
- tristate "DES and Triple DES EDE cipher algorithms"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- DES cipher algorithm (FIPS 46-2), and Triple DES EDE (FIPS 46-3).
-
-config ADK_WALDUX_KERNEL_CRYPTO_FCRYPT
- tristate "FCrypt cipher algorithms"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- FCrypt algorithm used by RxRPC.
-
-config ADK_WALDUX_KERNEL_CRYPTO_KHAZAD
- tristate "Khazad cipher algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- Khazad cipher algorithm.
-
- Khazad was a finalist in the initial NESSIE competition. It is
- an algorithm optimized for 64-bit processors with good performance
- on 32-bit processors. Khazad uses an 128 bit key size.
-
- See also:
- <http://planeta.terra.com.br/informatica/paulobarreto/KhazadPage.html>
-
-config ADK_WALDUX_KERNEL_CRYPTO_SERPENT
- tristate "Serpent cipher algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- Serpent cipher algorithm, by Anderson, Biham & Knudsen.
-
- Keys are allowed to be from 0 to 256 bits in length, in steps
- of 8 bits. Also includes the 'Tnepres' algorithm, a reversed
- variant of Serpent for compatibility with old kerneli code.
-
- See also:
- <http://www.cl.cam.ac.uk/~rja14/serpent.html>
-
-config ADK_WALDUX_KERNEL_CRYPTO_TEA
- tristate "TEA, XTEA and XETA cipher algorithms"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- TEA cipher algorithm.
-
- Tiny Encryption Algorithm is a simple cipher that uses
- many rounds for security. It is very fast and uses
- little memory.
-
- Xtendend Tiny Encryption Algorithm is a modification to
- the TEA algorithm to address a potential key weakness
- in the TEA algorithm.
-
- Xtendend Encryption Tiny Algorithm is a mis-implementation
- of the XTEA algorithm for compatibility purposes.
-
-config ADK_WALDUX_KERNEL_CRYPTO_TWOFISH
- tristate "Twofish cipher algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
- Twofish cipher algorithm.
-
- Twofish was submitted as an AES (Advanced Encryption Standard)
- candidate cipher by researchers at CounterPane Systems. It is a
- 16 round block cipher supporting key sizes of 128, 192, and 256
- bits.
-
- See also:
- <http://www.schneier.com/twofish.html>
-
-config ADK_WALDUX_KERNEL_CRYPTO_TWOFISH_586
- tristate "Twofish cipher algorithm (i586)"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- depends on ADK_x86
- default n
- help
- Twofish cipher algorithm.
-
- Twofish was submitted as an AES (Advanced Encryption Standard)
- candidate cipher by researchers at CounterPane Systems. It is a
- 16 round block cipher supporting key sizes of 128, 192, and 256
- bits.
-
- See also:
- <http://www.schneier.com/twofish.html>
-
-config ADK_WALDUX_KERNEL_CRYPTO_NULL
- tristate "Null algorithms"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- select ADK_WALDUX_KERNEL_CRYPTO_BLKCIPHER
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- default n
- help
- These are 'Null' algorithms, used by IPsec, which do nothing.
-
-endmenu
-
-menu "Compression"
-
-config ADK_WALDUX_KERNEL_CRYPTO_DEFLATE
- tristate "Deflate compression algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- select ADK_WALDUX_KERNEL_ZLIB_DEFLATE
- select ADK_WALDUX_KERNEL_ZLIB_INFLATE
- default n
- help
- This is the Deflate algorithm (RFC1951), specified for use in
- IPSec with the IPCOMP protocol (RFC3173, RFC2394).
-
- You will most probably want this if using IPSec.
-
-config ADK_WALDUX_KERNEL_CRYPTO_LZO
- tristate "LZO compression algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_ALGAPI
- default n
- help
-
-config ADK_WALDUX_KERNEL_CRYPTO_MICHAEL_MIC
- tristate "Michael MIC keyed digest algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- default n
- help
- Michael MIC is used for message integrity protection in TKIP
- (IEEE 802.11i). This algorithm is required for TKIP, but it
- should not be used for other purposes because of the weakness
- of the algorithm.
-
-config ADK_WALDUX_KERNEL_CRYPTO_CRC32C
- tristate "CRC32c CRC algorithm"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- select ADK_WALDUX_KERNEL_CRC32
- default n
- help
- Castagnoli, et al Cyclic Redundancy-Check Algorithm. Used
- by iSCSI for header and data digests and by others.
- See Castagnoli93. This implementation uses lib/libcrc32c.
- Module will be crc32c.
-
-endmenu
-endmenu
diff --git a/target/waldux/config/Config.in.debug b/target/waldux/config/Config.in.debug
deleted file mode 100644
index e0e360dcf..000000000
--- a/target/waldux/config/Config.in.debug
+++ /dev/null
@@ -1,135 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Kernel debugging"
-
-config ADK_WALDUX_KERNEL_FTRACE
- bool
-
-config ADK_WALDUX_KERNEL_GENERIC_TRACER
- bool
-
-config ADK_WALDUX_KERNEL_FUNCTION_TRACER
- bool
-
-config ADK_WALDUX_KERNEL_PROFILING
- bool
-
-config ADK_WALDUX_KERNEL_DEBUG_KERNEL
- bool
-
-config ADK_WALDUX_KERNEL_DEBUG_INFO
- bool
-
-config ADK_WALDUX_KERNEL_KGDB
- bool
-
-config ADK_WALDUX_KERNEL_KGDB_SERIAL_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_FRAME_POINTER
- bool
-
-config ADK_WALDUX_KERNEL_EARLY_PRINTK
- bool
-
-config ADK_WALDUX_KERNEL_KALLSYMS_ALL
- bool
-
-config ADK_WALDUX_KERNEL_PRINTK
- bool "printk support (disable to save space and quieten bootup)"
- select ADK_WALDUX_KERNEL_EARLY_PRINTK
- default y
- help
- Disable printk to save space and quieten bootup.
-
-config ADK_WALDUX_KERNEL_PRINTK_TIME
- bool "timing information for printk"
- depends on ADK_WALDUX_KERNEL_PRINTK
- default y
- help
- Enable timing information for printk, to analyze kernel
- bootup performance.
-
-config ADK_WALDUX_KERNEL_BUG
- bool "Enable BUGS()"
- help
- Enable if you need BUGS() in the kernel.
-
-config ADK_WALDUX_KERNEL_ELF_CORE
- bool
-
-config ADK_WALDUX_KERNEL_COREDUMP
- bool "Enable coredumps"
- select ADK_WALDUX_KERNEL_ELF_CORE
- help
- Enable if you need coredumps.
-
-config ADK_WALDUX_KERNEL_NETCONSOLE
- bool "Netconsole support"
- help
- Activate netconsole. netconsole=@/,@192.168.1.2/
-
-config ADK_PARAMETER_NETCONSOLE_SRC_IP
- prompt "IP address for source"
- string
- default "192.168.1.100"
- depends on ADK_WALDUX_KERNEL_NETCONSOLE
- help
- source ip address logging from.
-
-config ADK_PARAMETER_NETCONSOLE_DST_IP
- prompt "IP address for target"
- string
- default "192.168.1.2"
- depends on ADK_WALDUX_KERNEL_NETCONSOLE
- help
- ip address logging to.
-
-config ADK_WALDUX_KERNEL_MAGIC_SYSRQ
- bool "Magic BREAK sequence"
- default y
- help
- Enable this to be able to use the Magic SysRq functions,
- probably using a serial console break.
-
-config ADK_WALDUX_KERNEL_DEBUG_FS
- bool "Debug Filesystem"
- default n
- help
- debugfs is a virtual file system that kernel developers use to put
- debugging files into. Enable this option to be able to read and
- write to these files.
-
-config ADK_WALDUX_KERNEL_DEBUG_INFO
- bool "Debug info"
-
-config ADK_WALDUX_KERNEL_DEBUG_WITH_KGDB
- bool "Enable remote kernel debugging using KGDB"
- select ADK_WALDUX_KERNEL_DEBUG_KERNEL
- select ADK_WALDUX_KERNEL_DEBUG_INFO
- select ADK_WALDUX_KERNEL_KGDB
- select ADK_WALDUX_KERNEL_KGDB_SERIAL_CONSOLE
- select ADK_WALDUX_KERNEL_FRAME_POINTER
- depends on ADK_TARGET_ROOTFS_NFSROOT || \
- ADK_TARGET_ROOTFS_ARCHIVE || \
- ADK_TARGET_ROOTFS_INITRAMFS || \
- ADK_TARGET_ROOTFS_INITRAMFS_PIGGYBACK
- default n
-
-config ADK_WALDUX_KERNEL_OPROFILE
- tristate "Oprofile support"
- select ADK_WALDUX_KERNEL_PROFILING
- depends on !ADK_TARGET_ARCH_M68K
- default n
- help
- use oprofile package to make use of the kernel support.
-
-config ADK_WALDUX_KERNEL_KALLSYMS
- bool "Support for symbol names in OOPS"
- select ADK_WALDUX_KERNEL_KALLSYMS_ALL
- default n
- help
- Load all symbols to the kernel.
-
-endmenu
diff --git a/target/waldux/config/Config.in.dma b/target/waldux/config/Config.in.dma
deleted file mode 100644
index 120a31d5a..000000000
--- a/target/waldux/config/Config.in.dma
+++ /dev/null
@@ -1,81 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_DMADEVICES
- bool
-
-config ADK_WALDUX_KERNEL_CMA
- bool
-
-config ADK_WALDUX_KERNEL_CMA_SIZE_MBYTES
- int
- default 256 if ADK_WALDUX_KERNEL_CMA_SIZE_256
- default 128 if ADK_WALDUX_KERNEL_CMA_SIZE_128
- default 64 if ADK_WALDUX_KERNEL_CMA_SIZE_64
- default 16 if ADK_WALDUX_KERNEL_CMA_SIZE_16
- default 8 if ADK_WALDUX_KERNEL_CMA_SIZE_8
-
-config ADK_WALDUX_KERNEL_CMA_SIZE_256
- bool
-
-config ADK_WALDUX_KERNEL_CMA_SIZE_128
- bool
-
-config ADK_WALDUX_KERNEL_CMA_SIZE_64
- bool
-
-config ADK_WALDUX_KERNEL_CMA_SIZE_16
- bool
-
-config ADK_WALDUX_KERNEL_CMA_SIZE_8
- bool
-
-config ADK_WALDUX_KERNEL_CMA_SIZE_SEL_MBYTES
- bool
-
-config ADK_WALDUX_KERNEL_DMA_SHARED_BUFFER
- bool
-
-config ADK_WALDUX_KERNEL_DMA_CMA
- bool
-
-config ADK_WALDUX_KERNEL_MXS_DMA
- bool
-
-config ADK_WALDUX_KERNEL_DMA_BCM2835
- bool
-
-config ADK_WALDUX_KERNEL_DMA_BCM2708
- bool
- select ADK_WALDUX_KERNEL_DMA_BCM2835
- select ADK_WALDUX_KERNEL_DMADEVICES
- select ADK_WALDUX_KERNEL_DMA_SHARED_BUFFER
- select ADK_WALDUX_KERNEL_CMA
- select ADK_WALDUX_KERNEL_CMA_SIZE_SEL_MBYTES
- select ADK_WALDUX_KERNEL_CMA_SIZE_16
- select ADK_WALDUX_KERNEL_DMA_CMA
- depends on ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_BOARD_BCM28XX
- default n
-
-config ADK_WALDUX_KERNEL_IMX_SDMA
- bool
- select ADK_WALDUX_KERNEL_MXS_DMA
- select ADK_WALDUX_KERNEL_CMA
- select ADK_WALDUX_KERNEL_CMA_SIZE_SEL_MBYTES
- select ADK_WALDUX_KERNEL_CMA_SIZE_256
- select ADK_WALDUX_KERNEL_DMADEVICES
- select ADK_WALDUX_KERNEL_DMA_CMA
- select ADK_WALDUX_KERNEL_FW_LOADER
- select ADK_WALDUX_KERNEL_FIRMWARE_IN_KERNEL
- select ADK_WALDUX_KERNEL_FW_LOADER_USER_HELPER
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-config ADK_WALDUX_KERNEL_DMA_SUN6I
- bool
- select ADK_WALDUX_KERNEL_DMADEVICES
- depends on ADK_TARGET_SYSTEM_ORANGE_PI0
- default y if ADK_TARGET_SYSTEM_ORANGE_PI0
- default n
diff --git a/target/waldux/config/Config.in.ethernet b/target/waldux/config/Config.in.ethernet
deleted file mode 100644
index 040402100..000000000
--- a/target/waldux/config/Config.in.ethernet
+++ /dev/null
@@ -1,534 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Ethernet network devices support"
-depends on ADK_TARGET_WITH_NETDEVICE \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_NET_ETHERNET
- bool
- default y
-
-config ADK_WALDUX_KERNEL_NET_CADENCE
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_ARC
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_AMD
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_ATHEROS
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_DEC
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_IBM
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_INTEL
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_FARADAY
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_FREESCALE
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_NATSEMI
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_8390
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_REALTEK
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_MARVELL
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_SEEQ
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_SGI
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_TI
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_VIA
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_SMSC
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_STMICRO
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_XILINX
- bool
-
-config ADK_WALDUX_KERNEL_NET_VENDOR_XSCALE
- select ADK_WALDUX_KERNEL_NET_VENDOR_INTEL
- bool
-
-config ADK_WALDUX_KERNEL_NET_TULIP
- bool
-
-config ADK_WALDUX_KERNEL_NET_PTP_CLASSIFY
- bool
-
-config ADK_WALDUX_KERNEL_PHYLIB
- bool
-
-config ADK_WALDUX_KERNEL_GENERIC_PHY
- bool
-
-config ADK_WALDUX_KERNEL_MII
- bool
-
-config ADK_WALDUX_KERNEL_MDIO_BITBANG
- bool
-
-config ADK_WALDUX_KERNEL_ETRAX_HAVE_PHY
- bool
-
-config ADK_WALDUX_KERNEL_NET_PCI
- bool
-
-config ADK_WALDUX_KERNEL_NET_ETHERNET
- bool
-
-config ADK_WALDUX_KERNEL_NETDEV_1000
- bool
-
-config ADK_WALDUX_KERNEL_VIA_RHINE_MMIO
- bool
-
-config ADK_WALDUX_KERNEL_DWMAC_GENERIC
- bool
-
-config ADK_WALDUX_KERNEL_DWMAC_SUNXI
- bool
-
-config ADK_WALDUX_KERNEL_STMMAC_PLATFORM
- bool
-
-config ADK_WALDUX_KERNEL_LXT_PHY
- bool
-
-config ADK_WALDUX_KERNEL_AT803X_PHY
- tristate
- select ADK_WALDUX_KERNEL_PHYLIB
-
-config ADK_WALDUX_KERNEL_MICREL_PHY
- bool
-
-config ADK_WALDUX_KERNEL_SWCONFIG
- bool
-
-config ADK_WALDUX_KERNEL_AG71XX_AR8216_SUPPORT
- bool
-
-config ADK_WALDUX_KERNEL_AR8216_PHY
- bool
-
-config ADK_WALDUX_KERNEL_AG71XX
- tristate "AG71XX ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_ATHEROS
- select ADK_WALDUX_KERNEL_SWCONFIG
- select ADK_WALDUX_KERNEL_PHYLIB
- select ADK_WALDUX_KERNEL_GENERIC_PHY
- select ADK_WALDUX_KERNEL_MDIO_BITBANG
- select ADK_WALDUX_KERNEL_AR8216_PHY
- select ADK_WALDUX_KERNEL_AG71XX_AR8216_SUPPORT
- depends on ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
- default y if ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
- default n
- help
- Atheros AG71XX ethernet driver
-
-config ADK_WALDUX_KERNEL_DE2104X
- tristate "DE2104X ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_DEC
- select ADK_WALDUX_KERNEL_NET_TULIP
- depends on ADK_TARGET_SYSTEM_DEC_MULTIA
- default y if ADK_TARGET_SYSTEM_DEC_MULTIA
- default n
- help
- DEC Tulip ethernet driver.
-
-config ADK_WALDUX_KERNEL_FEC
- tristate "FEC ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_FREESCALE
- select ADK_WALDUX_KERNEL_AT803X_PHY
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6 || \
- ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208 || \
- ADK_TARGET_SYSTEM_KINETIS_K70
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208
- default n
- help
- FEC ethernet driver
-
-
-config ADK_WALDUX_KERNEL_IXP4XX_ETH
- tristate "IXP4XX ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_XSCALE
- select ADK_WALDUX_KERNEL_NET_PCI
- select ADK_WALDUX_KERNEL_PHYLIB
- select ADK_WALDUX_KERNEL_MII
- select ADK_WALDUX_KERNEL_NET_PTP_CLASSIFY
- depends on ADK_TARGET_SYSTEM_LINKSYS_NSLU2
- default y if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
- default n
- help
- IXP4XX ethernet driver
-
-config ADK_WALDUX_KERNEL_KINETIS_MAC
- bool "Kinetis ethernet driver"
- select ADK_WALDUX_KERNEL_NET_ETHERNET
- select ADK_WALDUX_KERNEL_NET_VENDOR_FREESCALE
- select ADK_WALDUX_KERNEL_FEC
- select ADK_WALDUX_KERNEL_PHYLIB
- select ADK_WALDUX_KERNEL_MICREL_PHY
- select ADK_WALDUX_KERNEL_MII
- depends on ADK_TARGET_SYSTEM_KINETIS_K70
- default y if ADK_TARGET_SYSTEM_KINETIS_K70
- default n
- help
- Ethernet driver for Kinetis K70
-
-config ADK_WALDUX_KERNEL_KORINA
- tristate "Korina ethernet driver"
- depends on ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default y if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default n
- help
- Korina ethernet driver
-
-config ADK_WALDUX_KERNEL_USB_NET_SMSC95XX
- tristate "SMSC95XX USB ethernet driver"
- select ADK_WALDUX_KERNEL_USB_NET_DRIVERS
- select ADK_WALDUX_KERNEL_USB_USBNET
- depends on ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_BOARD_BCM28XX
- default n
- help
- USB SMSC95XX ethernet driver
-
-config ADK_WALDUX_KERNEL_SMC91X
- tristate "SMC91X ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_SMSC
- select ADK_WALDUX_KERNEL_GPIOLIB
- depends on ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB || \
- ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE
- default n
- help
- SMC91X ethernet driver
-
-config ADK_WALDUX_KERNEL_SGISEEQ
- tristate "SGISEEQ ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_SEEQ
- depends on ADK_TARGET_SYSTEM_SGI_INDY
- default y if ADK_TARGET_SYSTEM_SGI_INDY
- default n
- help
- SGI ethernet driver
-
-config ADK_WALDUX_KERNEL_SMSC911X
- tristate "SMC911X ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_SMSC
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
- default n
- depends on ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
- help
- SMC911X ethernet driver
-
-config ADK_WALDUX_KERNEL_VIA_RHINE
- tristate "VIA Rhine ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_VIA
- select ADK_WALDUX_KERNEL_VIA_RHINE_MMIO
- depends on ADK_TARGET_SYSTEM_MIKROTIK_RB532 \
- || ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default y if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default n
- help
- VIA Rhine ethernet driver
-
-config ADK_WALDUX_KERNEL_XILINX_AXI_EMAC
- tristate "Xilinx AXI ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_XILINX
- depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605
- default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605
- default n
- help
- Xilinx AXI ethernet driver
-
-config ADK_WALDUX_KERNEL_XILINX_LL_TEMAC
- tristate "Xilinx Temac ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_XILINX
- depends on ADK_TARGET_SYSTEM_QEMU_PPC_VIRTEX_ML507
- default y if ADK_TARGET_SYSTEM_QEMU_PPC_VIRTEX_ML507
- default n
- help
- Xilinx Temac ethernet driver
-
-config ADK_WALDUX_KERNEL_XILINX_EMACLITE
- tristate "Xilinx Emaclite ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_XILINX
- depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800
- default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800
- default n
- help
- Xilinx Emaclite ethernet driver
-
-config ADK_WALDUX_KERNEL_NE2K_PCI
- tristate "NE2000 PCI driver"
- select ADK_WALDUX_KERNEL_NET_PCI
- select ADK_WALDUX_KERNEL_NET_VENDOR_NATSEMI
- select ADK_WALDUX_KERNEL_NET_VENDOR_8390
- select ADK_WALDUX_KERNEL_MII
- depends on ADK_TARGET_WITH_PCI \
- || ADK_TARGET_GENERIC
- default n
- help
- NE2000 PCI driver
-
-config ADK_WALDUX_KERNEL_PCNET32
- tristate "AMD PCNet32 PCI driver"
- select ADK_WALDUX_KERNEL_NET_PCI
- select ADK_WALDUX_KERNEL_MII
- depends on ADK_TARGET_WITH_PCI \
- || ADK_TARGET_GENERIC
- help
- AMD PCnet32 driver
-
-config ADK_WALDUX_KERNEL_8139CP
- tristate "RTL8139C+ PCI driver"
- select ADK_WALDUX_KERNEL_NET_PCI
- select ADK_WALDUX_KERNEL_NET_VENDOR_REALTEK
- select ADK_WALDUX_KERNEL_MII
- depends on ADK_TARGET_WITH_PCI \
- || ADK_TARGET_SYSTEM_QEMU_SH \
- || ADK_TARGET_GENERIC
- default y if ADK_TARGET_SYSTEM_QEMU_SH
- default n
- help
- RTL8139C+ pci driver
-
-config ADK_WALDUX_KERNEL_8139TOO
- tristate "RTL8139 PCI driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_REALTEK
- select ADK_WALDUX_KERNEL_NET_PCI
- select ADK_WALDUX_KERNEL_MII
- depends on ADK_TARGET_WITH_PCI \
- || ADK_TARGET_GENERIC
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default n
- help
- RTL8139 pci driver
-
-config ADK_WALDUX_KERNEL_E100
- tristate "Intel(R) PRO/100+ driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_INTEL
- select ADK_WALDUX_KERNEL_NET_PCI
- select ADK_WALDUX_KERNEL_MII
- depends on ADK_TARGET_WITH_PCI \
- || ADK_TARGET_GENERIC
- help
- Intel(R) PRO/100+ cards kernel support
-
-config ADK_WALDUX_KERNEL_E1000
- tristate "Intel(R) PRO/1000 Gigabit Ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_INTEL
- select ADK_WALDUX_KERNEL_NETDEV_1000
- depends on ADK_TARGET_WITH_PCI || \
- ADK_TARGET_SYSTEM_QEMU_X86 || \
- ADK_TARGET_SYSTEM_QEMU_X86_64 || \
- ADK_TARGET_SYSTEM_QEMU_MIPS || \
- ADK_TARGET_SYSTEM_QEMU_MIPS64 || \
- ADK_TARGET_SYSTEM_QEMU_PPC_MACPPC || \
- ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO || \
- ADK_TARGET_SYSTEM_QEMU_PPC_MPC8544DS || \
- ADK_TARGET_SYSTEM_QEMU_ALPHA || \
- ADK_TARGET_SYSTEM_QEMU_HPPA || \
- ADK_TARGET_SYSTEM_QEMU_SPARC64 || \
- ADK_TARGET_VBOX || \
- ADK_TARGET_GENERIC
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_QEMU_X86
- default y if ADK_TARGET_SYSTEM_QEMU_X86_64
- default y if ADK_TARGET_SYSTEM_QEMU_MIPS
- default y if ADK_TARGET_SYSTEM_QEMU_MIPS64
- default y if ADK_TARGET_SYSTEM_QEMU_PPC_MACPPC
- default y if ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO
- default y if ADK_TARGET_SYSTEM_QEMU_PPC_MPC8544DS
- default y if ADK_TARGET_SYSTEM_QEMU_ALPHA
- default y if ADK_TARGET_SYSTEM_QEMU_HPPA
- default y if ADK_TARGET_SYSTEM_QEMU_SPARC64
- default y if ADK_TARGET_VBOX
- default n
- help
- Intel(R) PRO/1000 gigabit ethernet driver
-
-config ADK_WALDUX_KERNEL_SUNLANCE
- tristate "AMD Sunlance Ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_AMD
- depends on ADK_TARGET_WITH_PCI || ADK_TARGET_SYSTEM_QEMU_SPARC
- default y if ADK_TARGET_SYSTEM_QEMU_SPARC
- default n
- help
- AMD Sunlance ethernet driver
-
-config ADK_WALDUX_KERNEL_IBMVETH
- tristate "IBM Ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_IBM
- depends on ADK_TARGET_WITH_PCI || ADK_TARGET_SYSTEM_QEMU_PPC64
- default y if ADK_TARGET_SYSTEM_QEMU_PPC64
- default n
- help
- IBM ethernet driver
-
-config ADK_WALDUX_KERNEL_MACB
- tristate "Atmel AT32/AT91 network driver"
- select ADK_WALDUX_KERNEL_NET_CADENCE
- depends on ADK_TARGET_CPU_AVR32 \
- || ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
- default y if ADK_TARGET_SYSTEM_ATMEL_NGW100
- default y if ADK_TARGET_SYSTEM_ATMEL_GRASSHOPPER
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
- default n
- help
- Ethernet Driver for Atmel AT32 and AT91 parts. This driver
- also supports the Cadence GEM (Gigabit Ethernet MAC found
- in some ARM SoC devices).
-
-config ADK_WALDUX_KERNEL_TI_DAVINCI_MDIO
- tristate "BeagleBone Back Davinci"
- select ADK_WALDUX_KERNEL_NET_VENDOR_TI
- depends on ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
- default y if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
- default n
- help
- TI Davinci driver
-
-config ADK_WALDUX_KERNEL_SKY2
- tristate "Marvell Yukon SKY2 driver"
- select ADK_WALDUX_KERNEL_NETDEV_1000
- select ADK_WALDUX_KERNEL_NET_VENDOR_MARVELL
- depends on ADK_TARGET_WITH_PCI \
- || ADK_TARGET_GENERIC
- default n
- help
- Marvell Yukon SKY2 driver
-
-config ADK_WALDUX_KERNEL_R8169
- tristate "RTL8169 driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_REALTEK
- select ADK_WALDUX_KERNEL_NETDEV_1000
- select ADK_WALDUX_KERNEL_MII
- select ADK_WALDUX_KERNEL_FW_LOADER
- select ADK_PACKAGE_REALTEK_FIRMWARE_WIRED
- depends on ADK_TARGET_WITH_PCI \
- || ADK_TARGET_WITH_MINIPCI \
- || ADK_TARGET_GENERIC
- default y if ADK_TARGET_SYSTEM_PCENGINES_APU
- default n
-
-config ADK_WALDUX_KERNEL_ETRAX_ETHERNET
- bool "ETRAX ethernet driver"
- select ADK_WALDUX_KERNEL_ETRAX_HAVE_PHY
- depends on ADK_TARGET_ARCH_CRIS
- default y if ADK_TARGET_ARCH_CRIS
- default n
-
-config ADK_WALDUX_KERNEL_MACSONIC
- bool "MAC sonic ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_NATSEMI
- depends on ADK_TARGET_SYSTEM_QEMU_M68K_Q800
- default y if ADK_TARGET_SYSTEM_QEMU_M68K_Q800
- default n
-
-config ADK_WALDUX_KERNEL_STMMAC_ETH
- bool "Stmicro MAC ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_STMICRO
- select ADK_WALDUX_KERNEL_STMMAC_PLATFORM
- select ADK_WALDUX_KERNEL_DWMAC_SUNXI if ADK_TARGET_SYSTEM_BANANA_PRO \
- || ADK_TARGET_SYSTEM_ORANGE_PI0
- select ADK_WALDUX_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
- select ADK_WALDUX_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
- select ADK_WALDUX_KERNEL_DWMAC_GENERIC if ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
- depends on ADK_TARGET_SYSTEM_BANANA_PRO \
- || ADK_TARGET_SYSTEM_ORANGE_PI0 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
- default y if ADK_TARGET_SYSTEM_BANANA_PRO
- default y if ADK_TARGET_SYSTEM_ORANGE_PI0
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
- default n
-
-config ADK_WALDUX_KERNEL_ETHOC
- bool "OpenCore ethernet driver"
- select ADK_WALDUX_KERNEL_PHYLIB
- select ADK_WALDUX_KERNEL_MII
- depends on ADK_TARGET_SYSTEM_QEMU_OR1K
- default y if ADK_TARGET_SYSTEM_QEMU_OR1K
- default n
-
-config ADK_WALDUX_KERNEL_FTMAC100
- bool "Andes ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_FARADAY
- depends on ADK_TARGET_SYSTEM_ANDES_AG101P
- default y if ADK_TARGET_SYSTEM_ANDES_AG101P
- default n
-
-config ADK_WALDUX_KERNEL_ATL1
- tristate "Atheros/Attansic L1 Gigabit Ethernet support"
- select ADK_WALDUX_KERNEL_NET_VENDOR_ATHEROS
- select ADK_WALDUX_KERNEL_MII
- select ADK_WALDUX_KERNEL_CRC32
- depends on ADK_TARGET_WITH_PCI \
- || ADK_TARGET_GENERIC
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default n
- help
- This driver supports the Atheros/Attansic L1 gigabit ethernet adapter.
-
-config ADK_WALDUX_KERNEL_SGI_O2MACE_ETH
- tristate "SGI O2 ethernet driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_SGI
- select ADK_WALDUX_KERNEL_CRC32
- depends on ADK_TARGET_SYSTEM_SGI_O2
- default y if ADK_TARGET_SYSTEM_SGI_O2
- default n
- help
- This driver supports the SGI O2 ethernet card.
-
-config ADK_WALDUX_KERNEL_ALTERA_TSE
- tristate "Altera TSE ethernet driver"
- select ADK_WALDUX_KERNEL_PHYLIB
- depends on ADK_TARGET_SYSTEM_QEMU_NIOS2
- default y if ADK_TARGET_SYSTEM_QEMU_NIOS2
- default n
- help
- This driver supports the NIOS2 ethernet chips.
-
-config ADK_WALDUX_KERNEL_DM9000
- tristate "Davicom 9000"
- select ADK_WALDUX_KERNEL_GPIO_GENERIC_PLATFORM
- select ADK_WALDUX_KERNEL_REGULATOR
- depends on ADK_TARGET_SYSTEM_IMGTEC_CI20
- default y if ADK_TARGET_SYSTEM_IMGTEC_CI20
- default n
- help
- Davicom 9000 ethernet driver.
-
-endmenu
diff --git a/target/waldux/config/Config.in.flash b/target/waldux/config/Config.in.flash
deleted file mode 100644
index f2597a29c..000000000
--- a/target/waldux/config/Config.in.flash
+++ /dev/null
@@ -1,191 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Flash device support"
-depends on ADK_TARGET_WITH_NAND || ADK_TARGET_WITH_MTD || ADK_TARGET_QEMU
-
-config ADK_WALDUX_KERNEL_MTD
- bool
- select ADK_WALDUX_KERNEL_GENERIC_IO
-
-config ADK_WALDUX_KERNEL_GENERIC_IO
- bool
-
-config ADK_WALDUX_KERNEL_MTD_MTDRAM
- bool
-
-config ADK_WALDUX_KERNEL_MTD_NAND
- bool
-
-config ADK_WALDUX_KERNEL_MTD_NAND_PLATFORM
- bool
-
-config ADK_WALDUX_KERNEL_MTD_CMDLINE_PARTS
- bool
-
-config ADK_WALDUX_KERNEL_MTD_CONCAT
- bool
-
-config ADK_WALDUX_KERNEL_MTD_CHAR
- bool
-
-config ADK_WALDUX_KERNEL_MTD_CMDLINE_PARTS
- bool
-
-config ADK_WALDUX_KERNEL_MTD_BLKDEVS
- bool
-
-config ADK_WALDUX_KERNEL_MTD_BLOCK
- bool
-
-config ADK_WALDUX_KERNEL_MTD_PARTITIONS
- bool
-
-config ADK_WALDUX_KERNEL_MTD_ROOTFS_ROOT_DEV
- bool
-
-config ADK_WALDUX_KERNEL_MTD_CFI
- bool
-
-config ADK_WALDUX_KERNEL_MTD_GEN_PROBE
- bool
-
-config ADK_WALDUX_KERNEL_MTD_PHYSMAP
- bool
-
-config ADK_WALDUX_KERNEL_MTD_PHYSMAP_OF
- bool
-
-config ADK_WALDUX_KERNEL_MTD_CFI_ADV_OPTIONS
- bool
-
-config ADK_WALDUX_KERNEL_MTD_NAND_RB4XX
- bool
-
-config ADK_WALDUX_KERNEL_MTD_AR7_PARTS
- bool
-
-config ADK_WALDUX_KERNEL_MTD_CFI_INTELEXT
- bool
-
-config ADK_WALDUX_KERNEL_MTD_CFI_AMDSTD
- bool
-
-config ADK_WALDUX_KERNEL_MTD_CFI_STAA
- bool
-
-config ADK_WALDUX_KERNEL_MTD_OF_PARTS
- bool
-
-config ADK_WALDUX_KERNEL_ETRAX_AXISFLASHMAP
- bool "Axis Flashmap driver"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_MTD
- select ADK_WALDUX_KERNEL_MTD_PARTITIONS
- select ADK_WALDUX_KERNEL_MTD_CHAR
- select ADK_WALDUX_KERNEL_MTD_BLKDEVS
- select ADK_WALDUX_KERNEL_MTD_BLOCK
- select ADK_WALDUX_KERNEL_MTD_ROOTFS_ROOT_DEV
- select ADK_WALDUX_KERNEL_MTD_CFI
- select ADK_WALDUX_KERNEL_MTD_CFI_INTELEXT
- depends on ADK_TARGET_SYSTEM_FOXBOARD_LX832
- default y if ADK_TARGET_SYSTEM_FOXBOARD_LX832
-
-config ADK_WALDUX_KERNEL_MTD_M25P80
- bool "MTD M25P80 driver"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_MTD
- select ADK_WALDUX_KERNEL_MTD_PARTITIONS
- select ADK_WALDUX_KERNEL_MTD_CHAR
- select ADK_WALDUX_KERNEL_MTD_BLKDEVS
- select ADK_WALDUX_KERNEL_MTD_BLOCK
- select ADK_WALDUX_KERNEL_MTD_ROOTFS_ROOT_DEV
- select ADK_WALDUX_KERNEL_MTD_CFI
- select ADK_WALDUX_KERNEL_MTD_CFI_INTELEXT
- select ADK_WALDUX_KERNEL_MTD_GEN_PROBE
- select ADK_WALDUX_KERNEL_MTD_PHYSMAP
- select ADK_WALDUX_KERNEL_MTD_PHYSMAP_OF
- select ADK_WALDUX_KERNEL_MTD_OF_PARTS
- select ADK_WALDUX_KERNEL_SPI
- select ADK_WALDUX_KERNEL_SPI_MASTER
- depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800 \
- || ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605
- default n
-
-config ADK_WALDUX_KERNEL_MTD_NAND_PLATFORM
- bool "NAND platform driver"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_MISC_FILESYSTEMS
- select ADK_WALDUX_KERNEL_MTD
- select ADK_WALDUX_KERNEL_MTD_PARTITIONS
- select ADK_WALDUX_KERNEL_MTD_NAND
- select ADK_WALDUX_KERNEL_MTD_CHAR
- select ADK_WALDUX_KERNEL_MTD_BLKDEVS
- select ADK_WALDUX_KERNEL_MTD_BLOCK
- depends on ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default y if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default n
- help
- platform nand driver
-
-config ADK_WALDUX_KERNEL_MTD_NAND_FSL_NFC
- bool "NAND driver for Kinetis K70"
- select ADK_WALDUX_KERNEL_MISC_FILESYSTEMS
- select ADK_WALDUX_KERNEL_MTD
- select ADK_WALDUX_KERNEL_MTD_PARTITIONS
- select ADK_WALDUX_KERNEL_MTD_NAND
- select ADK_WALDUX_KERNEL_MTD_CHAR
- select ADK_WALDUX_KERNEL_MTD_CONCAT
- select ADK_WALDUX_KERNEL_MTD_BLKDEVS
- select ADK_WALDUX_KERNEL_MTD_BLOCK
- select ADK_WALDUX_KERNEL_MTD_CMDLINE_PARTS
- depends on ADK_TARGET_SYSTEM_KINETIS_K70
- default y if ADK_TARGET_SYSTEM_KINETIS_K70
- default n
-
-config ADK_HARDWARE_FLASH_GRASSHOPPER
- bool "enable flash driver for grasshopper"
- select ADK_WALDUX_KERNEL_MTD
- select ADK_WALDUX_KERNEL_MTD_BLKDEVS
- select ADK_WALDUX_KERNEL_MTD_BLOCK
- select ADK_WALDUX_KERNEL_MTD_CMDLINE_PARTS
- select ADK_WALDUX_KERNEL_MTD_CFI
- select ADK_WALDUX_KERNEL_MTD_CFI_INTELEXT
- select ADK_WALDUX_KERNEL_MTD_CFI_AMDSTD
- select ADK_WALDUX_KERNEL_MTD_CFI_STAA
- select ADK_WALDUX_KERNEL_MTD_PHYSMAP
- select ADK_WALDUX_KERNEL_MTD_PHYSMAP_OF
- depends on ADK_TARGET_SYSTEM_GRASSHOPPER
- default y if ADK_TARGET_SYSTEM_GRASSHOPPER
- default n
-
-config ADK_TARGET_MTD_SIZE
- int
- depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800 \
- || ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \
- || ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9 \
- || ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default "16777216" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800
- default "33554432" if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605
- default "134217728" if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default "0"
-
-config ADK_TARGET_FLASH_PEB_SIZE
- int
- default 131072 if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- help
- Physical Erase Block size.
-
-config ADK_TARGET_FLASH_PAGE_SIZE
- int
- default 2048 if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- help
- Minimum input/output size.
-
-config ADK_TARGET_FLASH_SUBPAGE_SIZE
- int
- default 512 if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- help
- Size of NAND sub-pages (if supported).
-
-endmenu
diff --git a/target/waldux/config/Config.in.fs b/target/waldux/config/Config.in.fs
deleted file mode 100644
index 4cde2df11..000000000
--- a/target/waldux/config/Config.in.fs
+++ /dev/null
@@ -1,263 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Filesystems support"
-
-config ADK_WALDUX_KERNEL_MISC_FILESYSTEMS
- bool
-
-config ADK_WALDUX_KERNEL_FILE_LOCKING
- bool
- default y
-
-config ADK_WALDUX_KERNEL_FSNOTIFY
- bool
- default y
-
-config ADK_WALDUX_KERNEL_AUTOFS4_FS
- bool
-
-config ADK_WALDUX_KERNEL_TMPFS_POSIX_ACL
- bool
-
-config ADK_WALDUX_KERNEL_TMPFS_XATTR
- bool
-
-config ADK_WALDUX_KERNEL_EXPORTFS
- tristate
-
-config ADK_WALDUX_KERNEL_JBD2
- tristate
- select ADK_WALDUX_KERNEL_CRC32
- select ADK_WALDUX_KERNEL_CRYPTO
- select ADK_WALDUX_KERNEL_CRYPTO_CRC32C
-
-config ADK_WALDUX_KERNEL_EXT3_FS_XATTR
- bool
-
-config ADK_WALDUX_KERNEL_FAT_DEFAULT_CODEPAGE
- int
- default 850
-
-config ADK_WALDUX_KERNEL_FAT_DEFAULT_IOCHARSET
- string
- default "iso8859-1"
-
-config ADK_WALDUX_KERNEL_SQUASHFS_XZ
- bool
-
-config ADK_WALDUX_KERNEL_JFFS2_COMPRESSION_OPTIONS
- bool
-
-config ADK_WALDUX_KERNEL_JFFS2_ZLIB
- bool
-
-menu "Filesystems"
-
-config ADK_WALDUX_KERNEL_EXT2_FS
- tristate "EXT2 filesystem support"
- select ADK_WALDUX_KERNEL_BLOCK
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default n
- help
- Ext2 is a standard Linux file system for hard disks.
-
-config ADK_WALDUX_KERNEL_EXT3_FS
- tristate "EXT3 filesystem support"
- select ADK_WALDUX_KERNEL_BLOCK
- help
- This is the journalling version of the Second extended file system
- (often called ext3), the de facto standard Linux file system
- (method to organize files on a storage device) for hard disks.
-
- The journalling code included in this driver means you do not have
- to run e2fsck (file system checker) on your file systems after a
- crash. The journal keeps track of any changes that were being made
- at the time the system crashed, and can ensure that your file system
- is consistent without the need for a lengthy check.
-
- Other than adding the journal to the file system, the on-disk format
- of ext3 is identical to ext2. It is possible to freely switch
- between using the ext3 driver and the ext2 driver, as long as the
- file system has been cleanly unmounted, or e2fsck is run on the file
- system.
-
- To add a journal on an existing ext2 file system or change the
- behavior of ext3 file systems, you can use the tune2fs utility ("man
- tune2fs"). To modify attributes of files and directories on ext3
- file systems, use chattr ("man chattr"). You need to be using
- e2fsprogs version 1.20 or later in order to create ext3 journals
- (available at <http://sourceforge.net/projects/e2fsprogs/>).
-
-config ADK_WALDUX_KERNEL_EXT4_FS
- tristate "EXT4 filesystem support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_JBD2
- help
- Ext4 filesystem.
-
-config ADK_WALDUX_KERNEL_HFSPLUS_FS
- tristate "HFS+ filesystem support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_NLS_UTF8
- select ADK_WALDUX_KERNEL_MISC_FILESYSTEMS
- help
- If you say Y here, you will be able to mount extended format
- Macintosh-formatted hard drive partitions with full read-write access.
-
- This file system is often called HFS+ and was introduced with
- MacOS 8. It includes all Mac specific filesystem data such as
- data forks and creator codes, but it also has several UNIX
- style features such as file ownership and permissions.
-
-config ADK_WALDUX_KERNEL_NTFS_FS
- tristate "NTFS file system support"
- select ADK_WALDUX_KERNEL_BLOCK
- help
- NTFS is the file system of Microsoft Windows NT, 2000, XP and 2003.
-
- Saying Y or M here enables read support. There is partial, but
- safe, write support available. For write support you must also
- say Y to "NTFS write support" below.
-
- There are also a number of user-space tools available, called
- ntfsprogs. These include ntfsundelete and ntfsresize, that work
- without NTFS support enabled in the kernel.
-
- This is a rewrite from scratch of Linux NTFS support and replaced
- the old NTFS code starting with Linux 2.5.11. A backport to
- the Linux 2.4 kernel series is separately available as a patch
- from the project web site.
-
- For more information see <file:Documentation/filesystems/ntfs.txt>
- and <http://linux-ntfs.sourceforge.net/>.
-
- If you are not using Windows NT, 2000, XP or 2003 in addition to
- Linux on your computer it is safe to say N.
- Kernel modules for NTFS support
-
-config ADK_WALDUX_KERNEL_VFAT_FS
- tristate "VFAT filesystem support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_NLS_CODEPAGE_850
- select ADK_WALDUX_KERNEL_NLS_ISO8859_1
- default y if ADK_TARGET_BOARD_BCM28XX
- default n
- help
- This option provides support for normal Windows file systems with
- long filenames. That includes non-compressed FAT-based file systems
- used by Windows 95, Windows 98, Windows NT 4.0, and the Unix
- programs from the mtools package.
-
- The VFAT support enlarges your kernel by about 10 KB Please read the
- file <file:Documentation/filesystems/vfat.txt> for details.
-
-config ADK_WALDUX_KERNEL_XFS_FS
- tristate "XFS filesystem support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_EXPORTFS
- select ADK_WALDUX_KERNEL_LIBCRC32C
- help
- XFS is a high performance journaling filesystem which originated
- on the SGI IRIX platform. It is completely multi-threaded, can
- support large files and large filesystems, extended attributes,
- variable block sizes, is extent based, and makes extensive use of
- Btrees (directories, extents, free space) to aid both performance
- and scalability.
-
- Refer to the documentation at <http://oss.sgi.com/projects/xfs/>
- for complete details. This implementation is on-disk compatible
- with the IRIX version of XFS.
-
-config ADK_WALDUX_KERNEL_BTRFS_FS
- tristate "Btrfs filesystem support"
- select ADK_WALDUX_KERNEL_BLOCK
- select ADK_WALDUX_KERNEL_CRYPTO_CRC32C
- select ADK_WALDUX_KERNEL_RAID6_PQ
- select ADK_WALDUX_KERNEL_XOR_BLOCKS
- select ADK_WALDUX_KERNEL_ZLIB_DEFLATE
- select ADK_WALDUX_KERNEL_LZO_COMPRESS
- select ADK_WALDUX_KERNEL_LZO_DECOMPRESS
- help
- Btrfs is a general purpose copy-on-write filesystem with extents,
- writable snapshotting, support for multiple devices and many more
- features focused on fault tolerance, repair and easy administration.
- For more information, please see the web pages at
- http://btrfs.wiki.kernel.org
-
-config ADK_WALDUX_KERNEL_FUSE_FS
- tristate "Filesystem in Userspace support"
- help
- With FUSE it is possible to implement a fully functional
- filesystem in a userspace program.
-
- By enabling this, only the kernel module gets build.
- For using it, you will most likely also want to enable
- fuse-utils.
-
-config ADK_WALDUX_KERNEL_JOLIET
- bool
-
-config ADK_WALDUX_KERNEL_ISO9660_FS
- tristate "ISO 9660 / JOLIET CDROM file system support"
- select ADK_WALDUX_KERNEL_JOLIET
- help
- This is the standard file system used on CD-ROMs. It was previously
- known as "High Sierra File System" and is called "hsfs" on other
- Unix systems. The so-called Rock-Ridge extensions which allow for
- long Unix filenames and symbolic links are also supported by this
- driver. If you have a CD-ROM drive and want to do more with it than
- just listen to audio CDs and watch its LEDs, say Y (and read
- <file:Documentation/filesystems/isofs.txt> and the CD-ROM-HOWTO,
- available from <http://www.tldp.org/docs.html#howto>), thereby
- enlarging your kernel by about 27 KB; otherwise say N.
-
-config ADK_WALDUX_KERNEL_UDF_FS
- tristate "UDF file system support"
- select ADK_WALDUX_KERNEL_CRC_ITU_T
- help
- This is the new file system used on some CD-ROMs and DVDs. Say Y if
- you intend to mount DVD discs or CDRW's written in packet mode, or
- if written to by other UDF utilities, such as DirectCD.
- Please read <file:Documentation/filesystems/udf.txt>.
-
-config ADK_WALDUX_KERNEL_JFFS2_FS
- tristate "JFFS2 filesystem"
- select ADK_WALDUX_KERNEL_MISC_FILESYSTEMS
- select ADK_WALDUX_KERNEL_MTD
- select ADK_WALDUX_KERNEL_MTD_BLOCK
- select ADK_WALDUX_KERNEL_JFFS2_COMPRESSION_OPTIONS
- select ADK_WALDUX_KERNEL_JFFS2_ZLIB
- help
- JFFS2 flash filesystem
-
-config ADK_WALDUX_KERNEL_SQUASHFS
- tristate "SquashFS filesystem"
- select ADK_WALDUX_KERNEL_MISC_FILESYSTEMS
- select ADK_WALDUX_KERNEL_SQUASHFS_XZ
- help
- Squashfs compressed read-only filesystem
-
-config ADK_WALDUX_KERNEL_MTD_UBI_GLUEBI
- bool
-
-config ADK_WALDUX_KERNEL_MTD_UBI
- tristate
- select ADK_WALDUX_KERNEL_MTD
- select ADK_WALDUX_KERNEL_MTD_UBI_GLUEBI
-
-config ADK_WALDUX_KERNEL_UBIFS_FS
- tristate "UBIFS Filesystem"
- select ADK_WALDUX_KERNEL_MTD_UBI
- help
- UBIFS is a file system for flash devices which works on top of UBI.
-
-endmenu
-
-
-source target/waldux//config/Config.in.fsopts
-source target/waldux//config/Config.in.part
-source target/waldux//config/Config.in.fsnet
-source target/waldux//config/Config.in.nls
-
-endmenu
diff --git a/target/waldux/config/Config.in.fsnet b/target/waldux/config/Config.in.fsnet
deleted file mode 100644
index 7bd0b72ed..000000000
--- a/target/waldux/config/Config.in.fsnet
+++ /dev/null
@@ -1,163 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Network filesystems"
-
-config ADK_WALDUX_KERNEL_FS_POSIX_ACL
- bool
-
-config ADK_WALDUX_KERNEL_CIFS
- tristate "CIFS support"
- select ADK_WALDUX_KERNEL_NETWORK_FILESYSTEMS
- select ADK_WALDUX_KERNEL_CRYPTO_MD4
- select ADK_WALDUX_KERNEL_CRYPTO_MD5
- select ADK_WALDUX_KERNEL_CRYPTO_HMAC
- select ADK_WALDUX_KERNEL_CRYPTO_ARC4
- select ADK_WALDUX_KERNEL_CRYPTO_ECB
- select ADK_WALDUX_KERNEL_CRYPTO_DES
- select ADK_WALDUX_KERNEL_CRYPTO_SHA256
- select ADK_WALDUX_KERNEL_NLS_UTF8
- help
- This is the client VFS module for the Common Internet File System
- (CIFS) protocol which is the successor to the Server Message Block
- (SMB) protocol, the native file sharing mechanism for most early
- PC operating systems. The CIFS protocol is fully supported by
- file servers such as Windows 2000 (including Windows 2003, NT 4
- and Windows XP) as well by Samba (which provides excellent CIFS
- server support for Linux and many other operating systems). Limited
- support for Windows ME and similar servers is provided as well.
- You must use the smbfs client filesystem to access older SMB servers
- such as OS/2 and DOS.
-
- The intent of the cifs module is to provide an advanced
- network file system client for mounting to CIFS compliant servers,
- including support for dfs (hierarchical name space), secure per-user
- session establishment, safe distributed caching (oplock), optional
- packet signing, Unicode and other internationalization improvements,
- and optional Winbind (nsswitch) integration. You do not need to enable
- cifs if running only a (Samba) server. It is possible to enable both
- smbfs and cifs (e.g. if you are using CIFS for accessing Windows 2003
- and Samba 3 servers, and smbfs for accessing old servers). If you need
- to mount to Samba or Windows from this machine, say Y.
-
-config ADK_WALDUX_KERNEL_CODA_FS
- tristate "Support for CODA filesystem"
- select ADK_WALDUX_KERNEL_NETWORK_FILESYSTEMS
- help
- This is the kernel part of the client for the CODA filesystem.
-
-config ADK_WALDUX_KERNEL_NFS_V3
- bool
- select ADK_WALDUX_KERNEL_NETWORK_FILESYSTEMS
-
-config ADK_WALDUX_KERNEL_NFS_V4
- bool
- select ADK_WALDUX_KERNEL_NETWORK_FILESYSTEMS
-
-config ADK_WALDUX_KERNEL_NFS_FS
- tristate "NFS client support"
- select ADK_WALDUX_KERNEL_NFS_V3
- select ADK_WALDUX_KERNEL_FILE_LOCKING
- select ADK_WALDUX_KERNEL_DNOTIFY
- select ADK_WALDUX_KERNEL_SUNRPC
- select ADK_WALDUX_KERNEL_LOCKD
- select ADK_WALDUX_KERNEL_NETWORK_FILESYSTEMS
- help
- If you are connected to some other (usually local) Unix computer
- (using SLIP, PLIP, PPP or Ethernet) and want to mount files residing
- on that computer (the NFS server) using the Network File Sharing
- protocol, say Y. "Mounting files" means that the client can access
- the files with usual UNIX commands as if they were sitting on the
- client's hard disk. For this to work, the server must run the
- programs nfsd and mountd (but does not need to have NFS file system
- support enabled in its kernel). NFS is explained in the Network
- Administrator's Guide, available from
- <http://www.tldp.org/docs.html#guide>, on its man page: "man
- nfs", and in the NFS-HOWTO.
-
- A superior but less widely used alternative to NFS is provided by
- the Coda file system; see "Coda file system support" below.
-
- If you say Y here, you should have said Y to TCP/IP networking also.
- This option would enlarge your kernel by about 27 KB.
-
- To compile this file system support as a module, choose M here: the
- module will be called nfs.
-
- If you are configuring a diskless machine which will mount its root
- file system over NFS at boot time, say Y here and to "Kernel
- level IP autoconfiguration" above and to "Root file system on NFS"
- below. You cannot compile this driver as a module in this case.
- There are two packages designed for booting diskless machines over
- the net: netboot, available from
- <http://ftp1.sourceforge.net/netboot/>, and Etherboot,
- available from <http://ftp1.sourceforge.net/etherboot/>.
-
- If you don't know what all this is about, say N.
- Kernel modules for NFS client support
-
-config ADK_WALDUX_KERNEL_NFSD_V3
- bool
-
-config ADK_WALDUX_KERNEL_NFSD_V4
- bool
- select ADK_WALDUX_KERNEL_SUNRPC_GSS
- default y if ADK_PACKAGE_NFS_UTILS_V4
- default n
-
-config ADK_WALDUX_KERNEL_NFSD
- tristate "NFS server support"
- select ADK_WALDUX_KERNEL_EXPORTFS
- select ADK_WALDUX_KERNEL_NFSD_V3
- select ADK_WALDUX_KERNEL_DNOTIFY
- select ADK_WALDUX_KERNEL_FILE_LOCKING
- select ADK_WALDUX_KERNEL_SUNRPC
- select ADK_WALDUX_KERNEL_LOCKD
- select ADK_WALDUX_KERNEL_NETWORK_FILESYSTEMS
- help
- If you want your Linux box to act as an NFS *server*, so that other
- computers on your local network which support NFS can access certain
- directories on your box transparently, you have two options: you can
- use the self-contained user space program nfsd, in which case you
- should say N here, or you can say Y and use the kernel based NFS
- server. The advantage of the kernel based solution is that it is
- faster.
-
- In either case, you will need support software; the respective
- locations are given in the file <file:Documentation/Changes> in the
- NFS section.
-
- If you say Y here, you will get support for version 2 of the NFS
- protocol (NFSv2). If you also want NFSv3, say Y to the next question
- as well.
-
- Please read the NFS-HOWTO, available from
- <http://www.tldp.org/docs.html#howto>.
-
-config ADK_WALDUX_KERNEL_LOCKD
- tristate
-
-config ADK_WALDUX_KERNEL_SUNRPC
- tristate
-
-config ADK_WALDUX_KERNEL_SUNRPC_GSS
- tristate
- select ADK_WALDUX_KERNEL_SUNRPC
-
-config ADK_WALDUX_KERNEL_RPCSEC_GSS_KRB5
- tristate "RPC security support"
- select ADK_WALDUX_KERNEL_NETWORK_FILESYSTEMS
- select ADK_WALDUX_KERNEL_SUNRPC_GSS
- select ADK_WALDUX_KERNEL_SUNRPC
- select ADK_WALDUX_KERNEL_CRYPTO
- select ADK_WALDUX_KERNEL_CRYPTO_MD5
- select ADK_WALDUX_KERNEL_CRYPTO_DES
- select ADK_WALDUX_KERNEL_CRYPTO_CBC
- select ADK_WALDUX_KERNEL_CRYPTO_CTS
- select ADK_WALDUX_KERNEL_CRYPTO_ECB
- select ADK_WALDUX_KERNEL_CRYPTO_HMAC
- select ADK_WALDUX_KERNEL_CRYPTO_SHA1
- select ADK_WALDUX_KERNEL_CRYPTO_AES
- select ADK_WALDUX_KERNEL_CRYPTO_ARC4
-
-endmenu
diff --git a/target/waldux/config/Config.in.fsopts b/target/waldux/config/Config.in.fsopts
deleted file mode 100644
index 468be0544..000000000
--- a/target/waldux/config/Config.in.fsopts
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Filesystem options"
-
-config ADK_WALDUX_KERNEL_INOTIFY_USER
- bool "Enable INOTIFY"
-
-config ADK_WALDUX_KERNEL_DNOTIFY
- bool "Enable DNOTIFY"
-
-endmenu
diff --git a/target/waldux/config/Config.in.gpio b/target/waldux/config/Config.in.gpio
deleted file mode 100644
index 73c3083a7..000000000
--- a/target/waldux/config/Config.in.gpio
+++ /dev/null
@@ -1,48 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_RESET_GPIO
- bool
-
-config ADK_WALDUX_KERNEL_GPIOLIB
- bool
-
-config ADK_WALDUX_KERNEL_GPIO_SYSFS
- bool
-
-config ADK_WALDUX_KERNEL_GPIO_GENERIC
- bool
-
-config ADK_WALDUX_KERNEL_GPIO_DEVRES
- bool
-
-config ADK_WALDUX_KERNEL_GPIO_GENERIC_PLATFORM
- bool
-
-config ADK_WALDUX_KERNEL_BCM2708_GPIO
- bool
- select ADK_WALDUX_KERNEL_GPIOLIB
- select ADK_WALDUX_KERNEL_GPIO_SYSFS
- select ADK_WALDUX_KERNEL_GPIO_GENERIC
- select ADK_WALDUX_KERNEL_RESET_CONTROLLER
- depends on ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_BOARD_BCM28XX
- default n
-
-config ADK_WALDUX_KERNEL_GPIO_MXC
- bool
- select ADK_WALDUX_KERNEL_GPIOLIB
- select ADK_WALDUX_KERNEL_GPIO_SYSFS
- select ADK_WALDUX_KERNEL_GPIO_GENERIC
- select ADK_WALDUX_KERNEL_RESET_CONTROLLER
- select ADK_WALDUX_KERNEL_RESET_GPIO
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-config ADK_WALDUX_KERNEL_ETRAX_GPIO
- bool
- select ADK_WALDUX_KERNEL_GPIO_DEVRES
- depends on ADK_TARGET_SYSTEM_QEMU_CRIS
- default y if ADK_TARGET_SYSTEM_QEMU_CRIS
- default n
diff --git a/target/waldux/config/Config.in.graphics b/target/waldux/config/Config.in.graphics
deleted file mode 100644
index 3aebbc629..000000000
--- a/target/waldux/config/Config.in.graphics
+++ /dev/null
@@ -1,352 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Graphic devices support"
-depends on ADK_TARGET_WITH_VGA \
- || ADK_TARGET_QEMU \
- || ADK_TARGET_VBOX \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_VT
- bool
- default y if ADK_TARGET_WITH_VGA
- default y if ADK_TARGET_SYSTEM_GENERIC_X86
- default y if ADK_TARGET_SYSTEM_GENERIC_X86_64
- default n
-
-config ADK_WALDUX_KERNEL_VT_CONSOLE
- bool
- default y if ADK_TARGET_WITH_VGA
- default y if ADK_TARGET_SYSTEM_GENERIC_X86
- default y if ADK_TARGET_SYSTEM_GENERIC_X86_64
- default n
-
-config ADK_WALDUX_KERNEL_VGA_CONSOLE
- bool
- default y if ADK_TARGET_WITH_VGA
- default y if ADK_TARGET_SYSTEM_GENERIC_X86
- default y if ADK_TARGET_SYSTEM_GENERIC_X86_64
- default n
-
-config ADK_WALDUX_KERNEL_FONTS
- bool
-
-config ADK_WALDUX_KERNEL_FONT_8x16
- bool
- select ADK_WALDUX_KERNEL_FONTS
-
-config ADK_WALDUX_KERNEL_FB
- bool
- select ADK_WALDUX_KERNEL_VT
- select ADK_WALDUX_KERNEL_VT_CONSOLE
-
-config ADK_WALDUX_KERNEL_FB_SBUS
- bool
-
-config ADK_WALDUX_KERNEL_DUMMY_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- bool
- default y if ADK_TARGET_SYSTEM_ARANYM_M68K
- default n
-
-config ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY
- bool
-
-config ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE_ROTATION
- bool
-
-config ADK_WALDUX_KERNEL_VIDEO_CODA
- bool
- select ADK_WALDUX_KERNEL_MEDIA_SUPPORT
-
-config ADK_WALDUX_KERNEL_FB_MXC
- bool
-
-config ADK_WALDUX_KERNEL_FB_MXC_LDB
- bool
-
-config ADK_WALDUX_KERNEL_FB_MXC_SYNC_PANEL
- bool
-
-config ADK_WALDUX_KERNEL_FB_MXC_HDMI
- bool
-
-config ADK_WALDUX_KERNEL_FB_MXC_EDID
- bool
-
-config ADK_WALDUX_KERNEL_MXC_IPU
- bool
-
-config ADK_WALDUX_KERNEL_MXC_IPU_V3
- bool
-
-config ADK_WALDUX_KERNEL_MXC_VPU
- bool
-
-config ADK_WALDUX_KERNEL_MXC_GPU_VIV
- bool
-
-config ADK_WALDUX_KERNEL_MXC_GPU_VIV_V4
- bool
-
-config ADK_WALDUX_KERNEL_MXC_ASRC
- bool
-
-config ADK_WALDUX_KERNEL_MXC_HDMI_CEC
- bool
-
-config ADK_WALDUX_KERNEL_MXC_MIPI_CSI2
- bool
-
-config ADK_WALDUX_KERNEL_MXC_MLB
- bool
-
-config ADK_WALDUX_KERNEL_MXC_MLB150
- bool
- select ADK_WALDUX_KERNEL_SND
- select ADK_WALDUX_KERNEL_SND_PCM
-
-config ADK_WALDUX_KERNEL_V4L_MEM2MEM_DRIVERS
- bool
-
-config ADK_WALDUX_KERNEL_IMX_IPUV3_CORE
- bool
-
-config ADK_WALDUX_KERNEL_DRM_PANEL_SIMPLE
- bool
-
-config ADK_WALDUX_KERNEL_DRM_IMX
- bool
-
-config ADK_WALDUX_KERNEL_DRM_IMX_PARALLEL_DISPLAY
- bool
-
-config ADK_WALDUX_KERNEL_DRM_IMX_TVE
- bool
-
-config ADK_WALDUX_KERNEL_DRM_IMX_LDB
- bool
-
-config ADK_WALDUX_KERNEL_DRM_IMX_HDMI
- bool
-
-config ADK_WALDUX_KERNEL_FB_MXS
- bool
-
-config ADK_WALDUX_KERNEL_MFD_SM501
- bool
-
-config ADK_WALDUX_KERNEL_FB_ATARI
- bool
- select ADK_WALDUX_KERNEL_FB
- default y if ADK_TARGET_SYSTEM_ARANYM_M68K
- default n
-
-config ADK_WALDUX_KERNEL_FB_ARMCLCD
- bool
-
-config ADK_WALDUX_KERNEL_PLAT_VERSATILE_CLCD
- bool
- select ADK_WALDUX_KERNEL_FB_ARMCLCD
-
-config ADK_WALDUX_KERNEL_FB_CIRRUS
- bool
-
-config ADK_WALDUX_KERNEL_FB_GEODE
- bool
-
-config ADK_WALDUX_KERNEL_FB_SM501
- bool
- select ADK_WALDUX_KERNEL_MFD_SM501
-
-config ADK_WALDUX_KERNEL_DRM
- bool
-
-config ADK_WALDUX_KERNEL_DRM_VC4
- bool
-
-config ADK_WALDUX_KERNEL_DRM_I915
- bool
-
-config ADK_WALDUX_KERNEL_DRM_KMS_HELPER
- bool
-
-config ADK_WALDUX_KERNEL_DRM_FBDEV_EMULATION
- bool
-
-config ADK_WALDUX_KERNEL_INTEL_GTT
- bool
-
-config ADK_WALDUX_KERNEL_AGP
- bool
-
-config ADK_WALDUX_KERNEL_AGP_INTEL
- bool
-
-config ADK_WALDUX_KERNEL_LOGO
- bool
-
-config ADK_WALDUX_KERNEL_LOGO_LINUX_CLUT224
- bool "Enable Linux penguin boot logo"
- select ADK_WALDUX_KERNEL_LOGO
-
-config ADK_WALDUX_KERNEL_FB_CON_DECOR
- bool "Enable fullscreen boot logo"
- select ADK_PACKAGE_FBSPLASH
- depends on ADK_TARGET_KERNEL_VERSION_3_18 || \
- ADK_TARGET_KERNEL_VERSION_3_14
-
-config ADK_WALDUX_KERNEL_FB_SIMPLE
- bool "Simple Framebuffer"
- select ADK_WALDUX_KERNEL_FB
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- default y if ADK_TARGET_SYSTEM_BANANA_PRO
- default n
- help
- Simple Framebuffer driver.
-
-config ADK_WALDUX_KERNEL_FB_VESA
- bool "Framebuffer support for VESA"
- select ADK_WALDUX_KERNEL_FB
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- default y if ADK_TARGET_VBOX
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default n
- help
- Generic VESA Framebuffer support.
-
-config ADK_WALDUX_KERNEL_DRM_ETNAVIV
- bool "DRM support for Vivante chips (Cubox-i/Hummingboard)"
- select ADK_WALDUX_KERNEL_DRM
- select ADK_WALDUX_KERNEL_FB
- select ADK_WALDUX_KERNEL_IMX_IPUV3_CORE
- select ADK_WALDUX_KERNEL_DRM_IMX
- select ADK_WALDUX_KERNEL_DRM_IMX_PARALLEL_DISPLAY
- select ADK_WALDUX_KERNEL_DRM_IMX_TVE
- select ADK_WALDUX_KERNEL_DRM_IMX_LDB
- select ADK_WALDUX_KERNEL_DRM_IMX_HDMI
- select ADK_WALDUX_KERNEL_DRM_PANEL_SIMPLE
- select ADK_WALDUX_KERNEL_FB_MXS
- select ADK_WALDUX_KERNEL_MEDIA_CAMERA_SUPPORT
- select ADK_WALDUX_KERNEL_V4L_MEM2MEM_DRIVERS
- select ADK_WALDUX_KERNEL_VIDEO_CODA
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
- help
- Framebuffer support for Cubox-i/Hummingboard (Vivante)
-
-config ADK_WALDUX_KERNEL_FB_PXA
- bool "Framebuffer support for PXA boards (Sharp Zaurus)"
- select ADK_WALDUX_KERNEL_FB
- select ADK_WALDUX_KERNEL_DUMMY_CONSOLE
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE_ROTATION
- depends on ADK_TARGET_SYSTEM_SHARP_ZAURUS \
- || ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER \
- || ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
- default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
- default n
- help
- Framebuffer support for Sharp Zaurus CL Series.
-
-config ADK_WALDUX_KERNEL_FB_GEODE_LX
- bool "Framebuffer support for GEODE LX (PC Engines Alix1c)"
- select ADK_WALDUX_KERNEL_FB
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- select ADK_WALDUX_KERNEL_FB_GEODE
- depends on ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default n
- help
- Framebuffer support for ALIX boards with VGA.
-
-config ADK_WALDUX_KERNEL_FB_SM712
- bool "Framebuffer support for Silicon Motion 7xx (Lemote Yeelong)"
- select ADK_WALDUX_KERNEL_FB
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- select ADK_WALDUX_KERNEL_FONT_8x16
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default n
- depends on ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- help
- Framebuffer support for Lemote Yeelong.
-
-config ADK_WALDUX_KERNEL_FB_BCM2708
- bool "Framebuffer support for BCM28XX boards (Raspberry PI)"
- select ADK_WALDUX_KERNEL_FB
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- select ADK_WALDUX_KERNEL_FONT_8x16
- default y if ADK_TARGET_BOARD_BCM28XX
- default n
- depends on ADK_TARGET_BOARD_BCM28XX
- help
- Framebuffer support for BCM28XX boards.
-
-config ADK_WALDUX_KERNEL_FB_CGSIX
- bool "Framebuffer support for CGSIX cards (Sun Voyager)"
- select ADK_WALDUX_KERNEL_FB
- select ADK_WALDUX_KERNEL_FB_SBUS
- default y if ADK_TARGET_SYSTEM_SUN_VOYAGER
- default n
- depends on ADK_TARGET_SYSTEM_SUN_VOYAGER
- help
- Framebuffer support for Sun Voyager.
-
-config ADK_WALDUX_KERNEL_FB_RADEON
- bool "Framebuffer support for RADEON chips"
- select ADK_WALDUX_KERNEL_FB
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- select ADK_WALDUX_KERNEL_FONT_8x16
- help
- Framebuffer support for RADEON chips.
-
-config ADK_WALDUX_KERNEL_DRM_I915
- bool "Support for Intel graphic cards"
- select ADK_WALDUX_KERNEL_FB
- select ADK_WALDUX_KERNEL_DRM
- select ADK_WALDUX_KERNEL_INTEL_GTT
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- select ADK_WALDUX_KERNEL_DRM_KMS_HELPER
- select ADK_WALDUX_KERNEL_DRM_FBDEV_EMULATION
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default n
- help
- Support for Intel chipsets.
-
-config ADK_WALDUX_KERNEL_DRM_BOCHS
- bool "Support for QEMU STD VGA emulation"
- select ADK_WALDUX_KERNEL_DRM
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- depends on ADK_TARGET_SYSTEM_QEMU_X86 || ADK_TARGET_SYSTEM_QEMU_X86_64
- help
- Support for Qemu STD VGA emulation.
-
-config ADK_WALDUX_KERNEL_DRM_CIRRUS_QEMU
- bool "Support for QEMU cirrus VGA emulation"
- select ADK_WALDUX_KERNEL_DRM
- select ADK_WALDUX_KERNEL_FRAMEBUFFER_CONSOLE
- depends on ADK_TARGET_SYSTEM_QEMU_X86 || ADK_TARGET_SYSTEM_QEMU_X86_64
- help
- Support for Qemu cirrus VGA emulation.
-
-config ADK_WALDUX_KERNEL_DRM_RADEON
- bool "Support for Radeon graphic cards"
- select ADK_WALDUX_KERNEL_DRM
- select ADK_WALDUX_KERNEL_FB_CFB_FILLRECT
- select ADK_WALDUX_KERNEL_FB_CFB_COPYAREA
- select ADK_WALDUX_KERNEL_FB_CFB_IMAGEBLIT
- select ADK_WALDUX_KERNEL_FW_LOADER
- select ADK_WALDUX_KERNEL_DRM_KMS_HELPER
- select ADK_WALDUX_KERNEL_DRM_KMS_FB_HELPER
- select ADK_WALDUX_KERNEL_DRM_TTM
- help
- Support for Radeon chips.
-
-endmenu
diff --git a/target/waldux/config/Config.in.i2c b/target/waldux/config/Config.in.i2c
deleted file mode 100644
index 9b7e2c951..000000000
--- a/target/waldux/config/Config.in.i2c
+++ /dev/null
@@ -1,91 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "I2C driver support"
-depends on ADK_TARGET_WITH_I2C
-
-config ADK_WALDUX_KERNEL_I2C
- bool
-
-config ADK_WALDUX_KERNEL_I2C_CHARDEV
- tristate
-
-config ADK_WALDUX_KERNEL_I2C_BOARDINFO
- tristate
-
-config ADK_WALDUX_KERNEL_I2C_ALGOBIT
- tristate
-
-config ADK_WALDUX_KERNEL_I2C_GPIO
- bool
- select ADK_WALDUX_KERNEL_I2C
- select ADK_WALDUX_KERNEL_I2C_CHARDEV
- select ADK_WALDUX_KERNEL_I2C_BOARDINFO
- select ADK_WALDUX_KERNEL_I2C_ALGOBIT
- default y if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
- help
-
-config ADK_WALDUX_KERNEL_I2C_BCM2835
- tristate
-
-config ADK_WALDUX_KERNEL_I2C_BCM2708
- tristate "I2C driver for BCM28XX boards"
- select ADK_WALDUX_KERNEL_I2C
- select ADK_WALDUX_KERNEL_REGMAP
- select ADK_WALDUX_KERNEL_REGMAP_I2C
- select ADK_WALDUX_KERNEL_I2C_CHARDEV
- select ADK_WALDUX_KERNEL_I2C_BCM2835
- depends on ADK_TARGET_BOARD_BCM28XX
- default m if ADK_TARGET_BOARD_BCM28XX
- default n
- help
- I2C driver for BCM28XX boards.
-
-config ADK_WALDUX_KERNEL_I2C_SUNXI
- tristate "I2C driver for SUNXI boards"
- select ADK_WALDUX_KERNEL_I2C
- select ADK_WALDUX_KERNEL_REGMAP
- select ADK_WALDUX_KERNEL_REGMAP_I2C
- select ADK_WALDUX_KERNEL_I2C_CHARDEV
- depends on ADK_TARGET_SYSTEM_BANANA_PRO || \
- ADK_TARGET_SYSTEM_ORANGE_PI0
- default y if ADK_TARGET_SYSTEM_BANANA_PRO
- default y if ADK_TARGET_SYSTEM_ORANGE_PI0
- default n
- help
- I2C driver for SUNXI boards.
-
-config ADK_WALDUX_KERNEL_I2C_IMX
- tristate "I2C driver for IMX6 boards"
- select ADK_WALDUX_KERNEL_I2C
- select ADK_WALDUX_KERNEL_REGMAP
- select ADK_WALDUX_KERNEL_REGMAP_I2C
- select ADK_WALDUX_KERNEL_I2C_CHARDEV
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
- help
- I2C driver for IMX6 boards.
-
-config ADK_WALDUX_KERNEL_SCX200_ACB
- tristate "I2C driver for Geode"
- depends on ADK_TARGET_CPU_X86_GEODE
- select ADK_WALDUX_KERNEL_I2C
- select ADK_WALDUX_KERNEL_I2C_CHARDEV
- default y if ADK_TARGET_CPU_X86_GEODE
- default n
- help
- I2C driver for Geode boards.
-
-config ADK_WALDUX_KERNEL_BOARD_GRASSHOPPER_I2C
- bool "I2C driver for AVR32 Grasshopper"
- select ADK_WALDUX_KERNEL_I2C
- select ADK_WALDUX_KERNEL_I2C_GPIO
- select ADK_WALDUX_KERNEL_I2C_CHARDEV
- depends on ADK_TARGET_SYSTEM_GRASSHOPPER
- default y if ADK_TARGET_SYSTEM_GRASSHOPPER
- default n
- help
- I2C driver for AVR32 Grasshopper boards.
-
-endmenu
diff --git a/target/waldux/config/Config.in.input b/target/waldux/config/Config.in.input
deleted file mode 100644
index bfe3c76a4..000000000
--- a/target/waldux/config/Config.in.input
+++ /dev/null
@@ -1,199 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Input devices"
-depends on ADK_TARGET_WITH_USB \
- || ADK_TARGET_WITH_INPUT \
- || ADK_TARGET_WITH_TOUCHSCREEN \
- || ADK_TARGET_QEMU \
- || ADK_TARGET_GENERIC \
- || ADK_TARGET_VBOX
-
-config ADK_WALDUX_KERNEL_SERIO
- bool
- select ADK_WALDUX_KERNEL_SERIO_SERPORT
- select ADK_WALDUX_KERNEL_SERIO_LIBPS2
- select ADK_WALDUX_KERNEL_SERIO_I8042 if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- select ADK_WALDUX_KERNEL_SERIO_I8042 if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default y if ADK_TARGET_SYSTEM_ARANYM_M68K
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default n
-
-config ADK_WALDUX_KERNEL_SERIO_SERPORT
- bool
-
-config ADK_WALDUX_KERNEL_SERIO_LIBPS2
- bool
-
-config ADK_WALDUX_KERNEL_SERIO_I8042
- bool
-
-config ADK_WALDUX_KERNEL_INPUT
- bool
- default y if ADK_TARGET_VBOX
- default y if ADK_TARGET_SYSTEM_ARANYM_M68K
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER
- default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default n
-
-config ADK_WALDUX_KERNEL_HID_LOGITECH
- bool
-
-config ADK_WALDUX_KERNEL_HID_LOGITECH_DJ
- bool
-
-config ADK_WALDUX_KERNEL_KEYBOARD_ATARI
- bool
- default y if ADK_TARGET_SYSTEM_ARANYM_M68K
- default n
-
-config ADK_WALDUX_KERNEL_MOUSE_ATARI
- bool
- default y if ADK_TARGET_SYSTEM_ARANYM_M68K
- default n
-
-config ADK_WALDUX_KERNEL_KEYBOARD_GPIO
- bool
- default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER
- default n
-
-config ADK_WALDUX_KERNEL_KEYBOARD_MATRIX
- bool
- default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER
- default n
-
-config ADK_WALDUX_KERNEL_INPUT_TOUCHSCREEN
- bool
-
-config ADK_WALDUX_KERNEL_TOUCHSCREEN_ADS7846
- bool
- select ADK_WALDUX_KERNEL_INPUT_TOUCHSCREEN
- default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default n
-
-config ADK_WALDUX_KERNEL_INPUT_KEYBOARD
- bool
- default y if ADK_TARGET_VBOX
- default y if ADK_TARGET_SYSTEM_ARANYM_M68K
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER
- default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default n
-
-config ADK_WALDUX_KERNEL_INPUT_MOUSE
- bool
- default y if ADK_TARGET_VBOX
- default y if ADK_TARGET_SYSTEM_ARANYM_M68K
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_SPITZ
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_TERRIER
- default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default n
-
-config ADK_WALDUX_KERNEL_INPUT_MOUSEDEV
- bool
-
-config ADK_WALDUX_KERNEL_HID_SUPPORT
- bool
-
-config ADK_WALDUX_KERNEL_HID
- bool
-
-config ADK_WALDUX_KERNEL_HID_GENERIC
- bool
-
-config ADK_WALDUX_KERNEL_USB_HID
- tristate "USB Human Interactive Device support"
- select ADK_WALDUX_KERNEL_INPUT
- select ADK_WALDUX_KERNEL_HID
- select ADK_WALDUX_KERNEL_HID_SUPPORT
- select ADK_WALDUX_KERNEL_HID_GENERIC
- depends on ADK_TARGET_WITH_USB \
- || ADK_TARGET_GENERIC \
- || ADK_TARGET_QEMU
- help
- You need this driver for USB keyboard and mouse support.
-
-config ADK_TARGET_USB_KEYBOARD
- bool "enable keyboard support"
- depends on ADK_WALDUX_KERNEL_USB_HID
- select ADK_WALDUX_KERNEL_INPUT_KEYBOARD
- help
- Activate to get USB keyboard support.
-
-config ADK_WALDUX_KERNEL_HID_MICROSOFT
- tristate "Microsoft keyboard"
- depends on ADK_TARGET_USB_KEYBOARD
-
-config ADK_WALDUX_KERNEL_HID_CHERRY
- tristate "Cherry Cymotion keyboard"
- depends on ADK_TARGET_USB_KEYBOARD
-
-config ADK_TARGET_USB_MOUSE
- bool "enable mouse support"
- depends on ADK_WALDUX_KERNEL_USB_HID
- select ADK_WALDUX_KERNEL_INPUT_MOUSEDEV
- select ADK_WALDUX_KERNEL_INPUT_MOUSE
- help
- Activate to get USB mouse support.
-
-config ADK_WALDUX_KERNEL_UHID
- tristate "User-space I/O driver support for HID subsystem"
- select ADK_WALDUX_KERNEL_INPUT
- select ADK_WALDUX_KERNEL_HID
- select ADK_WALDUX_KERNEL_HID_SUPPORT
- select ADK_WALDUX_KERNEL_USB_HID
- help
- User-space I/O driver support for HID subsystem
-
-config ADK_WALDUX_KERNEL_LOGITECH_DINOVO
- bool "Support for Logitech DiNovo keyboard/mouse"
- select ADK_WALDUX_KERNEL_HID_LOGITECH
- select ADK_WALDUX_KERNEL_HID_LOGITECH_DJ
- depends on ADK_WALDUX_KERNEL_USB_HID
- help
- Support for Logitech DiNovo keyboard/mouse combination.
-
-config ADK_WALDUX_KERNEL_KEYBOARD_ATKBD
- bool "Keyboard support (AT)"
- select ADK_WALDUX_KERNEL_INPUT
- select ADK_WALDUX_KERNEL_INPUT_KEYBOARD
- depends on !ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_VBOX
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default n
-
-config ADK_WALDUX_KERNEL_MOUSE_PS2
- bool "Mouse support (PS/2)"
- select ADK_WALDUX_KERNEL_INPUT
- select ADK_WALDUX_KERNEL_INPUT_MOUSEDEV
- select ADK_WALDUX_KERNEL_INPUT_MOUSE
- depends on !ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_VBOX
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default n
-
-config ADK_WALDUX_KERNEL_INPUT_EVDEV
- tristate "Event device support"
- select ADK_WALDUX_KERNEL_INPUT
- default n
-
-endmenu
diff --git a/target/waldux/config/Config.in.ipsec b/target/waldux/config/Config.in.ipsec
deleted file mode 100644
index ea010e289..000000000
--- a/target/waldux/config/Config.in.ipsec
+++ /dev/null
@@ -1,61 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "IPSec support"
-
-config ADK_WALDUX_KERNEL_XFRM_ALGO
- tristate
-
-config ADK_WALDUX_KERNEL_NET_KEY
- tristate "PF_KEYv2 socket family"
- default n
- help
- PF_KEYv2 socket family, compatible to KAME ones.
-
-config ADK_WALDUX_KERNEL_XFRM_USER
- tristate "IPsec usertools support"
- select ADK_WALDUX_KERNEL_XFRM_ALGO
- default n
-
-config ADK_WALDUX_KERNEL_INET_AH
- tristate "IPsec AH support"
- select ADK_WALDUX_KERNEL_CRYPTO_HASH
- default n
- help
- Support for IPsec AH.
-
-config ADK_WALDUX_KERNEL_INET_ESP
- tristate "IPsec ESP support"
- select ADK_WALDUX_KERNEL_CRYPTO_AEAD
- default n
- help
- Support for IPsec ESP.
-
-config ADK_WALDUX_KERNEL_INET_IPCOMP
- tristate "IP Payload Compression"
- select ADK_WALDUX_KERNEL_CRYPTO_DEFLATE
- select ADK_WALDUX_KERNEL_INET_TUNNEL
- default n
- help
- Support for IP Payload Compression Protocol (IPComp) (RFC3173),
- typically needed for IPsec.
-
-config ADK_WALDUX_KERNEL_INET_XFRM_MODE_TRANSPORT
- tristate "IPsec transport mode"
- default n
- help
- Support for IPsec transport mode.
-
-config ADK_WALDUX_KERNEL_INET_XFRM_MODE_TUNNEL
- tristate "IPsec tunnel mode"
- default n
- help
- Support for IPsec tunnel mode.
-
-config ADK_WALDUX_KERNEL_INET_XFRM_MODE_BEET
- tristate "IPsec BEET mode"
- default n
- help
- Support for IPsec BEET mode.
-
-endmenu
diff --git a/target/waldux/config/Config.in.ipvs b/target/waldux/config/Config.in.ipvs
deleted file mode 100644
index cd295a49a..000000000
--- a/target/waldux/config/Config.in.ipvs
+++ /dev/null
@@ -1,104 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "IPVS support"
-
-config ADK_WALDUX_KERNEL_IP_VS
- tristate "IPVS support"
- select ADK_WALDUX_KERNEL_NETFILTER
- select ADK_WALDUX_KERNEL_NF_CONNTRACK
- default n
-
-config ADK_WALDUX_KERNEL_IP_VS_DEBUG
- bool "enable debugging support"
- depends on ADK_WALDUX_KERNEL_IP_VS
- default n
-
-menu "IPVS transport protocol load balancing support"
- depends on ADK_WALDUX_KERNEL_IP_VS
-
-config ADK_WALDUX_KERNEL_IP_VS_PROTO_TCP
- bool "TCP load balancing support"
- default n
- help
- This option enables support for load balancing TCP transport
- protocol. Say Y if unsure.
-
-config ADK_WALDUX_KERNEL_IP_VS_PROTO_UDP
- bool "UDP load balancing support"
- default n
- help
- This option enables support for load balancing UDP transport
- protocol. Say Y if unsure.
-
-config ADK_WALDUX_KERNEL_IP_VS_PROTO_ESP
- bool "ESP load balancing support"
- default n
- help
- This option enables support for load balancing ESP (Encapsulation
- Security Payload) transport protocol. Say Y if unsure.
-
-config ADK_WALDUX_KERNEL_IP_VS_PROTO_AH
- bool "AH load balancing support"
- default n
- help
- This option enables support for load balancing AH (Authentication
- Header) transport protocol. Say Y if unsure.
-
-endmenu
-
-menu "IPVS Scheduler"
- depends on ADK_WALDUX_KERNEL_IP_VS
-
-config ADK_WALDUX_KERNEL_IP_VS_RR
- tristate "round-robin"
- default n
-
-config ADK_WALDUX_KERNEL_IP_VS_WRR
- tristate "weighted round-robin"
- default n
-
-config ADK_WALDUX_KERNEL_IP_VS_LC
- tristate "least-connection"
- default n
-
-config ADK_WALDUX_KERNEL_IP_VS_WLC
- tristate "weighted least-connection"
- default n
-
-config ADK_WALDUX_KERNEL_IP_VS_LBLC
- tristate "locality-based least-connection"
- default n
-
-config ADK_WALDUX_KERNEL_IP_VS_LBLCR
- tristate "locality-based least-connection with replication"
- default n
-
-config ADK_WALDUX_KERNEL_IP_VS_DH
- tristate "destination hashing"
- default n
-
-config ADK_WALDUX_KERNEL_IP_VS_SH
- tristate "source hashing"
- default n
-
-config ADK_WALDUX_KERNEL_IP_VS_SED
- tristate "shortest expected delay"
- default n
-
-config ADK_WALDUX_KERNEL_IP_VS_NQ
- tristate "never queue"
- default n
-
-endmenu
-
-menu "IPVS application helper"
- depends on ADK_WALDUX_KERNEL_IP_VS
-
-config ADK_WALDUX_KERNEL_IP_VS_FTP
- tristate "FTP protocol"
- select ADK_WALDUX_KERNEL_IP_VS_PROTO_TCP
- default n
-
-endmenu
-endmenu
diff --git a/target/waldux/config/Config.in.kernel b/target/waldux/config/Config.in.kernel
deleted file mode 100644
index efd9731b2..000000000
--- a/target/waldux/config/Config.in.kernel
+++ /dev/null
@@ -1,272 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_EXPERIMENTAL
- bool
- default y
-
-config ADK_WALDUX_KERNEL_STAGING
- bool
-
-config ADK_WALDUX_KERNEL_CGROUP_CPUACCT
- bool
-
-config ADK_WALDUX_KERNEL_CGROUP_DEVICE
- bool
-
-config ADK_WALDUX_KERNEL_CGROUP_SCHED
- bool
-
-config ADK_WALDUX_KERNEL_CGROUPS
- bool
-
-config ADK_WALDUX_KERNEL_NAMESPACES
- bool
-
-config ADK_WALDUX_KERNEL_FHANDLE
- bool
-
-config ADK_WALDUX_KERNEL_AUDIT
- bool
-
-config ADK_WALDUX_KERNEL_RESET_CONTROLLER
- bool
-
-config ADK_WALDUX_KERNEL_BLK_DEV_INITRD
- bool
-
-config ADK_WALDUX_KERNEL_BLK_DEV_RAM
- bool
-
-config ADK_WALDUX_KERNEL_NETWORK_FILESYSTEMS
- bool
-
-config ADK_WALDUX_KERNEL_IP_PNP
- bool
-
-config ADK_WALDUX_KERNEL_IP_PNP_DHCP
- bool
-
-config ADK_WALDUX_KERNEL_ROOT_NFS
- bool
-
-config ADK_WALDUX_KERNEL_NFS_COMMON
- bool
-
-config ADK_WALDUX_KERNEL_64BIT
- bool
- default y if ADK_LINUX_64
-
-# ARM specific
-config ADK_WALDUX_KERNEL_AEABI
- bool
- default y if ADK_TARGET_ARCH_ARM
-
-config ADK_WALDUX_KERNEL_ARM_THUMB
- bool
-
-config ADK_WALDUX_KERNEL_THUMB2_KERNEL
- bool
-
-# endianess
-config ADK_WALDUX_KERNEL_CPU_BIG_ENDIAN
- bool
- default y if ADK_TARGET_BIG_ENDIAN
-
-config ADK_WALDUX_KERNEL_CPU_LITTLE_ENDIAN
- bool
- default y if ADK_TARGET_LITTLE_ENDIAN
-
-menu "Kernel options"
-
-config ADK_WALDUX_KERNEL_MODULE_UNLOAD
- bool "Module unloading"
-
-config ADK_WALDUX_KERNEL_HOTPLUG
- bool
-
-config ADK_WALDUX_KERNEL_DEVTMPFS
- bool
-
-config ADK_WALDUX_KERNEL_DEVTMPFS_MOUNT
- bool
- select ADK_WALDUX_KERNEL_HOTPLUG
-
-config ADK_WALDUX_KERNEL_UEVENT_HELPER
- bool
- depends on ADK_RUNTIME_DEV_MDEV
- default y if ADK_RUNTIME_DEV_MDEV
-
-config ADK_WALDUX_KERNEL_UEVENT_HELPER_PATH
- string
- default "/sbin/mdev"
- depends on ADK_RUNTIME_DEV_MDEV
-
-config ADK_WALDUX_KERNEL_BINFMT_ELF
- bool
- default y if ADK_TARGET_BINFMT_ELF
-
-config ADK_WALDUX_KERNEL_BINFMT_ELF_FDPIC
- bool
- default y if ADK_TARGET_BINFMT_FDPIC
-
-config ADK_WALDUX_KERNEL_BINFMT_FLAT
- bool
- default y if ADK_TARGET_BINFMT_FLAT
-
-config ADK_WALDUX_KERNEL_BINFMT_SHARED_FLAT
- bool
- default y if ADK_TARGET_BINFMT_FLAT_SHARED
-
-config ADK_WALDUX_KERNEL_MMU
- bool
-
-config ADK_WALDUX_KERNEL_VFP
- bool
- default y if ADK_TARGET_CPU_WITH_FPU_VFP
-
-config ADK_WALDUX_KERNEL_VFPv3
- bool
- select ADK_WALDUX_KERNEL_VFP
- default y if ADK_TARGET_CPU_WITH_FPU_VFPV3 || ADK_TARGET_CPU_WITH_FPU_VFPV4
-
-config ADK_WALDUX_KERNEL_NEON
- bool
- default y if ADK_TARGET_ARCH_ARM_WITH_NEON
-
-config ADK_WALDUX_KERNEL_KERNEL_MODE_NEON
- bool
- default y if ADK_TARGET_ARCH_ARM_WITH_NEON
-
-config ADK_WALDUX_KERNEL_PATCH_REALTIME
- bool
-
-choice
-prompt "preemptive mode"
-
-config ADK_WALDUX_KERNEL_PREEMPT_NONE
- bool "No Forced Preemption (Server)"
- help
- No Forced Preemption (Server)
-
-config ADK_WALDUX_KERNEL_PREEMPT_VOLUNTARY
- bool "Voluntary Kernel Preemption (Desktop)"
- select ADK_WALDUX_KERNEL_HIGH_RES_TIMERS
- help
- Voluntary Kernel Preemption (Desktop)
-
-config ADK_WALDUX_KERNEL_PREEMPT__LL
- bool "Preemptible Kernel (Low-Latency Desktop)"
- select ADK_WALDUX_KERNEL_HIGH_RES_TIMERS
- help
- Preemptible Kernel (Low-Latency Desktop)
-
-config ADK_WALDUX_KERNEL_PREEMPT_RTB
- bool "Preemptible Kernel (Basic RealTime)"
- select ADK_WALDUX_KERNEL_HIGH_RES_TIMERS
- select ADK_WALDUX_KERNEL_PATCH_REALTIME
- depends on !ADK_WALDUX_KERNEL_OPROFILE
- depends on ADK_TARGET_KERNEL_VERSION_4_4 \
- || ADK_TARGET_KERNEL_VERSION_4_9 \
- || (ADK_TARGET_KERNEL_VERSION_GIT && ADK_TARGET_BOARD_BCM28XX)
- help
- Preemptible Kernel (Basic RT)
-
-config ADK_WALDUX_KERNEL_PREEMPT_RT_FULL
- bool "Fully Preemptible Kernel (RealTime)"
- select ADK_WALDUX_KERNEL_HIGH_RES_TIMERS
- select ADK_WALDUX_KERNEL_PATCH_REALTIME
- depends on !ADK_WALDUX_KERNEL_OPROFILE
- depends on ADK_TARGET_KERNEL_VERSION_4_4 \
- || ADK_TARGET_KERNEL_VERSION_4_9 \
- || (ADK_TARGET_KERNEL_VERSION_GIT && ADK_TARGET_BOARD_BCM28XX)
- help
- Fully Preemptible Kernel (RealTime)
- https://www.kernel.org/pub/linux/kernel/projects/rt/
-
-endchoice
-
-config ADK_WALDUX_KERNEL_HIGH_RES_TIMERS
- bool "Enable high resolution timers"
-
-choice
-prompt "tick configuration"
-
-config ADK_WALDUX_KERNEL_NO_HZ_IDLE
- bool "no HZ IDLE, dynamic tick"
-
-config ADK_WALDUX_KERNEL_NO_HZ_FULL
- bool "no HZ FULL, dynamic tick"
-
-config ADK_WALDUX_KERNEL_HZ_PERIODIC
- bool "periodic tick"
-
-endchoice
-
-choice
-prompt "HZ"
-depends on ADK_WALDUX_KERNEL_HZ_PERIODIC
-
-config ADK_WALDUX_KERNEL_HZ_100
- bool "100 HZ"
-
-config ADK_WALDUX_KERNEL_HZ_500
- bool "500 HZ"
-
-config ADK_WALDUX_KERNEL_HZ_1000
- bool "1000 HZ"
-
-endchoice
-
-config ADK_TARGET_NO_CMDLINE
- bool "Do not builtin any kernel cmdline"
- help
- No kernel command line modifictaion is done.
-
-config ADK_WALDUX_KERNEL_SMP
- bool "Enable symmetric multi processing"
- depends on ADK_TARGET_WITH_SMP
- default y if ADK_TARGET_WITH_SMP
- default n
- help
- Enable symmetric multi processing support.
-
-config ADK_WALDUX_KERNEL_HIGHMEM
- bool "Enable high memory"
- # produces broken kernel on bcm28xx
- depends on !ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_MODEL_CUBOX_I4PRO
- default y if ADK_TARGET_MODEL_CUBOX_I2ULTRA
- default y if ADK_TARGET_MODEL_CUBOX_I2EX
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default y if ADK_TARGET_SYSTEM_PCENGINES_APU
- default n
- help
- Enable high memory support.
-
-config ADK_WALDUX_KERNEL_CC_OPTIMIZE_FOR_SIZE
- bool "Optimize for size"
- # does not boot in qemu-microblaze
- depends on !ADK_TARGET_ARCH_MICROBLAZE
- default y
-
-
-choice
-prompt "Page size"
-depends on ADK_TARGET_ARCH_MIPS64
-default ADK_WALDUX_KERNEL_PAGE_SIZE_16KB if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
-default ADK_WALDUX_KERNEL_PAGE_SIZE_4KB
-
-config ADK_WALDUX_KERNEL_PAGE_SIZE_4KB
- bool "4kB"
-
-config ADK_WALDUX_KERNEL_PAGE_SIZE_16KB
- bool "16kB"
-
-config ADK_WALDUX_KERNEL_PAGE_SIZE_64KB
- bool "64kB"
-
-endchoice
-
-endmenu
diff --git a/target/waldux/config/Config.in.kvm b/target/waldux/config/Config.in.kvm
deleted file mode 100644
index 0e1606019..000000000
--- a/target/waldux/config/Config.in.kvm
+++ /dev/null
@@ -1,39 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Virtualization"
-depends on (ADK_TARGET_ARCH_X86_64 || ADK_TARGET_ARCH_X86) && ADK_TARGET_CPU_WITH_VT
-
-config ADK_WALDUX_KERNEL_VIRTUALIZATION
- bool
- default n
-
-config ADK_WALDUX_KERNEL_KVM
- tristate "Kernel-based Virtual Machine (KVM) support"
- select ADK_WALDUX_KERNEL_VIRTUALIZATION
- default n
- help
- Support hosting fully virtualized guest machines using hardware
- virtualization extensions. You will need a fairly recent
- processor equipped with virtualization extensions. You will also
- need to select one or more of the processor modules below.
- This module provides access to the hardware capabilities through
- a character device node named /dev/kvm.
-
-config ADK_WALDUX_KERNEL_KVM_AMD
- tristate "KVM for AMD processors support"
- select ADK_WALDUX_KERNEL_VIRTUALIZATION
- default n
- help
- Provides support for KVM on AMD processors equipped with the AMD-V
- (SVM) extensions.
-
-config ADK_WALDUX_KERNEL_KVM_INTEL
- tristate "KVM for Intel processors support"
- select ADK_WALDUX_KERNEL_VIRTUALIZATION
- default n
- help
- Provides support for KVM on Intel processors equipped with the VT
- extensions.
-
-endmenu
diff --git a/target/waldux/config/Config.in.leds b/target/waldux/config/Config.in.leds
deleted file mode 100644
index 30496a109..000000000
--- a/target/waldux/config/Config.in.leds
+++ /dev/null
@@ -1,83 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_NEW_LEDS
- bool
-
-config ADK_WALDUX_KERNEL_LEDS_CLASS
- bool
- select ADK_WALDUX_KERNEL_NEW_LEDS
-
-config ADK_WALDUX_KERNEL_LEDS_TRIGGERS
- bool
- select ADK_WALDUX_KERNEL_NEW_LEDS
-
-config ADK_WALDUX_KERNEL_LEDS_GPIO
- bool
- select ADK_WALDUX_KERNEL_NEW_LEDS
- select ADK_WALDUX_KERNEL_LEDS_CLASS
- select ADK_WALDUX_KERNEL_GPIOLIB
-
-config ADK_WALDUX_KERNEL_LEDS_CLASS
- bool
-
-menu "LEDS driver support"
-depends on ADK_TARGET_WITH_LEDS
-
-config ADK_WALDUX_KERNEL_LEDS_MIKROTIK_RB532
- tristate "LED suppport for RB532"
- select ADK_WALDUX_KERNEL_LEDS_CLASS
- depends on ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default y if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default n
-
-config ADK_WALDUX_KERNEL_LEDS_WRAP
- tristate "LED suppport for WRAP"
- select ADK_WALDUX_KERNEL_LEDS_CLASS
- depends on ADK_TARGET_SYSTEM_PCENGINES_WRAP
- default y if ADK_TARGET_SYSTEM_PCENGINES_WRAP
- default n
-
-config ADK_WALDUX_KERNEL_LEDS_ALIX2
- tristate "LED suppport for ALIX2/ALIX3"
- select ADK_WALDUX_KERNEL_LEDS_CLASS
- depends on ADK_TARGET_MODEL_PCENGINES_ALIX2D
- default y if ADK_TARGET_MODEL_PCENGINES_ALIX2D
- default n
-
-config ADK_WALDUX_KERNEL_BOARD_GRASSHOPPER_LEDS
- bool "LED suppport for AVR32 Grasshopper boards"
- select ADK_WALDUX_KERNEL_LEDS_CLASS
- select ADK_WALDUX_KERNEL_LEDS_GPIO
- select ADK_WALDUX_KERNEL_LEDS_TRIGGERS
- select ADK_WALDUX_KERNEL_LEDS_TRIGGER_HEARTBEAT
- depends on ADK_TARGET_SYSTEM_GRASSHOPPER
- default y if ADK_TARGET_SYSTEM_GRASSHOPPER
- default n
-
-config ADK_WALDUX_KERNEL_LEDS_TRIGGER_TIMER
- tristate "LED Timer trigger"
- select ADK_WALDUX_KERNEL_LEDS_TRIGGERS
- select ADK_WALDUX_KERNEL_LEDS_CLASS
- default n
-
-config ADK_WALDUX_KERNEL_LEDS_TRIGGER_HEARTBEAT
- tristate "LED Heartbeat trigger"
- select ADK_WALDUX_KERNEL_LEDS_TRIGGERS
- select ADK_WALDUX_KERNEL_LEDS_CLASS
- default n
-
-config ADK_WALDUX_KERNEL_LEDS_TRIGGER_DEFAULT_ON
- tristate "LED Default On trigger"
- select ADK_WALDUX_KERNEL_LEDS_TRIGGERS
- select ADK_WALDUX_KERNEL_LEDS_CLASS
- default n
-
-config ADK_WALDUX_KERNEL_NETFILTER_XT_TARGET_LED
- tristate "LED IPTables trigger"
- select ADK_WALDUX_KERNEL_LEDS_TRIGGERS
- select ADK_WALDUX_KERNEL_LEDS_CLASS
- select ADK_PACKAGE_IPTABLES
- default n
-
-endmenu
diff --git a/target/waldux/config/Config.in.lib b/target/waldux/config/Config.in.lib
deleted file mode 100644
index 12865580c..000000000
--- a/target/waldux/config/Config.in.lib
+++ /dev/null
@@ -1,53 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Kernel Library Routines"
-
-config ADK_WALDUX_KERNEL_CRC_ITU_T
- tristate "CRC ITU-T V.41 functions"
- default n
- help
- This option is provided for the case where no in-kernel-tree
- modules require CRC ITU-T V.41 functions, but a module built outside
- the kernel tree does. Such modules that use library CRC ITU-T V.41
- functions require M here.
-
-config ADK_WALDUX_KERNEL_CRC16
- tristate "CRC16 library functions"
- default n
- help
-
-config ADK_WALDUX_KERNEL_CRC32
- bool "CRC32 library functions"
- default n
- help
-
-config ADK_WALDUX_KERNEL_LIBCRC32C
- tristate "CRC32c Cyclic Redundancy-Check"
- default n
- help
- This option is provided for the case where no in-kernel-tree
- modules require CRC32c functions, but a module built outside the
- kernel tree does. Such modules that use library CRC32c functions
- require M here. See Castagnoli93.
-
-config ADK_WALDUX_KERNEL_CRC_CCITT
- tristate "CRC-CCITT library functions"
- default n
- help
- This module provides CRC-CCITT library functions for kernel
- modules built outside the kernel.
-
-config ADK_WALDUX_KERNEL_ZLIB_DEFLATE
- tristate
-
-config ADK_WALDUX_KERNEL_ZLIB_INFLATE
- tristate
-
-config ADK_WALDUX_KERNEL_LZO_COMPRESS
- tristate
-
-config ADK_WALDUX_KERNEL_LZO_DECOMPRESS
- tristate
-
-endmenu
diff --git a/target/waldux/config/Config.in.mips b/target/waldux/config/Config.in.mips
deleted file mode 100644
index 6f215ed45..000000000
--- a/target/waldux/config/Config.in.mips
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_CPU_MIPS32_R1
- bool
-
-config ADK_WALDUX_KERNEL_CPU_MIPS32_R2
- bool
-
-config ADK_WALDUX_KERNEL_CPU_MIPS32_R6
- bool
-
-config ADK_WALDUX_KERNEL_CPU_MIPS64_R1
- bool
-
-config ADK_WALDUX_KERNEL_CPU_MIPS64_R2
- bool
-
-config ADK_WALDUX_KERNEL_CPU_MIPS64_R6
- bool
-
-menu "MIPS devices support"
-depends on ADK_TARGET_SYSTEM_LEMOTE_YEELONG
-
-config ADK_WALDUX_KERNEL_LEMOTE_YEELOONG2F_PDEV
- bool "Yeelong platform drivers (f.e. battery support)"
- depends on ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default n
- help
- Lemote Yeelong platform drivers.
-
-endmenu
diff --git a/target/waldux/config/Config.in.misc b/target/waldux/config/Config.in.misc
deleted file mode 100644
index db11d7b19..000000000
--- a/target/waldux/config/Config.in.misc
+++ /dev/null
@@ -1,147 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_MISC_DEVICES
- bool
-
-config ADK_WALDUX_KERNEL_MFD_SYSCON
- bool
-
-config ADK_WALDUX_KERNEL_OF
- bool
-
-config ADK_WALDUX_KERNEL_FIRMWARE_IN_KERNEL
- bool
- default y if ADK_WALDUX_KERNEL_R8169 && ADK_WALDUX_KERNEL_ROOT_NFS
- default n
-
-config ADK_WALDUX_KERNEL_EXTRA_FIRMWARE
- string
- default "rtl8168e-2.fw" if ADK_WALDUX_KERNEL_R8169 && ADK_WALDUX_KERNEL_ROOT_NFS
- default ""
-
-config ADK_WALDUX_KERNEL_FW_LOADER_USER_HELPER
- bool
-
-config ADK_WALDUX_KERNEL_KEYS
- bool
-
-config ADK_WALDUX_KERNEL_SBUS
- bool
-
-config ADK_WALDUX_KERNEL_FIQ
- bool
-
-config ADK_WALDUX_KERNEL_FSL_OTP
- bool
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-config ADK_WALDUX_KERNEL_IMX_WEIM
- bool
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-config ADK_WALDUX_KERNEL_INTEL_IOMMU
- bool
-
-config ADK_WALDUX_KERNEL_IOMMU_API
- bool
-
-config ADK_WALDUX_KERNEL_IOMMU_IOVA
- bool
-
-config ADK_WALDUX_KERNEL_DMAR_TABLE
- bool
-
-menu "Miscellaneous devices support"
-
-source "target/waldux//config/Config.in.rtc"
-source "target/waldux//config/Config.in.leds"
-source "target/waldux//config/Config.in.watchdog"
-source "target/waldux//config/Config.in.thermal"
-source "target/waldux//config/Config.in.i2c"
-source "target/waldux//config/Config.in.spi"
-source "target/waldux//config/Config.in.regmap"
-source "target/waldux//config/Config.in.regulator"
-source "target/waldux//config/Config.in.gpio"
-source "target/waldux//config/Config.in.dma"
-source "target/waldux//config/Config.in.lib"
-
-config ADK_WALDUX_KERNEL_PWM
- bool
-
-config ADK_WALDUX_KERNEL_PWM_IMX
- bool
- select ADK_WALDUX_KERNEL_PWM
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-config ADK_WALDUX_KERNEL_KEXEC
- bool "Add KEXEC syscall"
- help
- You need also kexec-tools to benefit from it.
-
-config ADK_WALDUX_KERNEL_PARPORT
- tristate "Generic parallel port support"
- depends on ADK_TARGET_WITH_PP
- help
- Kernel module for generic parallel port support.
-
-config ADK_WALDUX_KERNEL_PARPORT_PC
- tristate "PC style parallel port support"
- depends on ADK_WALDUX_KERNEL_PARPORT
- help
- Kernel module for PC style parallel port support.
-
-config ADK_WALDUX_KERNEL_PLIP
- tristate "PLIP (internet over parallel port)"
- depends on ADK_WALDUX_KERNEL_PARPORT
- select ADK_WALDUX_KERNEL_PARPORT_PC
- help
- PLIP: IPv4 over parallel port, using a Turbo Laplink
- (crossed null-printer) cable. Drivers exist for DOS
- (from Crynwr), Linux 2.x (protocol changed and is no
- longer compatible with Linux 1.x), FreeBSD and MirBSD.
- This will enlarge your kernel by about 8 KiB.
-
-config ADK_WALDUX_KERNEL_PRINTER
- tristate "Line printer support"
- depends on ADK_WALDUX_KERNEL_PARPORT
- select ADK_WALDUX_KERNEL_PARPORT_PC
- help
- Kernel module for line printer support
-
-config ADK_WALDUX_KERNEL_PPDEV
- tristate "Userland parallel port driver"
- depends on ADK_WALDUX_KERNEL_PARPORT
- select ADK_WALDUX_KERNEL_PARPORT_PC
- help
- Kernel module for userland parallel port access
-
-config ADK_WALDUX_KERNEL_FW_LOADER
- tristate "Userspace firmware loading support"
- depends on !ADK_TARGET_SYSTEM_SHARP_ZAURUS
- help
- This may be necessary when using drivers which require
- loading of external firmware files.
-
-config ADK_WALDUX_KERNEL_EEPROM_93CX6
- tristate "93cx6 eeprom support"
- depends on ADK_WALDUX_KERNEL_MAC80211
- select ADK_WALDUX_KERNEL_MISC_DEVICES
-
-config ADK_WALDUX_KERNEL_IOMMU_SUPPORT
- bool "IOMMU support for Intel"
- select ADK_WALDUX_KERNEL_PCI_MSI
- select ADK_WALDUX_KERNEL_INTEL_IOMMU
- select ADK_WALDUX_KERNEL_IOMMU_API
- select ADK_WALDUX_KERNEL_IOMMU_IOVA
- select ADK_WALDUX_KERNEL_DMAR_TABLE
- depends on ADK_TARGET_WITH_IOMMU
- default y
-
-endmenu
diff --git a/target/waldux/config/Config.in.multimedia b/target/waldux/config/Config.in.multimedia
deleted file mode 100644
index 8d0bbb959..000000000
--- a/target/waldux/config/Config.in.multimedia
+++ /dev/null
@@ -1,114 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Multimedia support"
-depends on ADK_TARGET_WITH_USB
-
-config ADK_WALDUX_KERNEL_MEDIA_SUPPORT
- tristate
-
-config ADK_WALDUX_KERNEL_MEDIA_RC_SUPPORT
- bool
-
-config ADK_WALDUX_KERNEL_VIDEO_DEV
- bool
-
-config ADK_WALDUX_KERNEL_VIDEO_V4L2
- bool
- select ADK_WALDUX_KERNEL_VIDEO_DEV
-
-config ADK_WALDUX_KERNEL_MEDIA_USB_SUPPORT
- bool
-
-config ADK_WALDUX_KERNEL_MEDIA_CAMERA_SUPPORT
- bool
-
-config ADK_WALDUX_KERNEL_MEDIA_ANALOG_TV_SUPPORT
- bool
-
-config ADK_WALDUX_KERNEL_MEDIA_DIGITAL_TV_SUPPORT
- bool
-
-config ADK_WALDUX_KERNEL_DVB_CORE
- tristate
-
-config ADK_WALDUX_KERNEL_RC_CORE
- tristate
-
-config ADK_WALDUX_KERNEL_VIDEO_CX231XX_DVB
- tristate
-
-config ADK_WALDUX_KERNEL_DVB_SI2165
- tristate
-
-config ADK_WALDUX_KERNEL_MEDIA_TUNER_TDA18271
- tristate
-
-menu "DVB card support"
-
-config ADK_WALDUX_KERNEL_VIDEO_CX231XX
- tristate "Hauppauge WinTV-HVR-930C"
- select ADK_WALDUX_KERNEL_MEDIA_SUPPORT
- select ADK_WALDUX_KERNEL_MEDIA_USB_SUPPORT
- select ADK_WALDUX_KERNEL_MEDIA_DIGITAL_TV_SUPPORT
- select ADK_WALDUX_KERNEL_MEDIA_ANALOG_TV_SUPPORT
- select ADK_WALDUX_KERNEL_MEDIA_RC_SUPPORT
- select ADK_WALDUX_KERNEL_RC_CORE
- select ADK_WALDUX_KERNEL_DVB_CORE
- select ADK_WALDUX_KERNEL_VIDEO_CX231XX_DVB
- select ADK_WALDUX_KERNEL_DVB_SI2165
- select ADK_WALDUX_KERNEL_MEDIA_TUNER_TDA18271
- help
- Driver for Hauppauge WinTV-HVR-930C
-
-config ADK_WALDUX_KERNEL_VIDEO_PVRUSB2
- tristate "Hauppauge PVR DVB stick"
- select ADK_WALDUX_KERNEL_MEDIA_SUPPORT
- select ADK_WALDUX_KERNEL_MEDIA_USB_SUPPORT
- select ADK_WALDUX_KERNEL_MEDIA_DIGITAL_TV_SUPPORT
- select ADK_WALDUX_KERNEL_MEDIA_ANALOG_TV_SUPPORT
- help
- Driver for Hauppauge PVR
-
-endmenu
-
-menu "Webcam support"
-
-config ADK_WALDUX_KERNEL_USB_VIDEO_CLASS
- tristate "Kernel driver for USB video webcams"
- depends on ADK_WALDUX_KERNEL_USB || ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- select ADK_WALDUX_KERNEL_MEDIA_SUPPORT
-
-config ADK_WALDUX_KERNEL_USB_GSPCA
- tristate "GSPCA webcam framework"
- depends on ADK_TARGET_WITH_USB
- select ADK_WALDUX_KERNEL_VIDEO_V4L2
- select ADK_WALDUX_KERNEL_MEDIA_SUPPORT
- select ADK_WALDUX_KERNEL_MEDIA_USB_SUPPORT
- select ADK_WALDUX_KERNEL_MEDIA_CAMERA_SUPPORT
- help
- GSPCA webcam framework
-
-config ADK_WALDUX_KERNEL_USB_GSPCA_PAC207
- tristate "Pixart PAC207 USB Camera Driver"
- depends on ADK_WALDUX_KERNEL_USB_GSPCA
- help
-
-config ADK_WALDUX_KERNEL_USB_GSPCA_PAC7311
- tristate "Pixart PAC7311 USB Camera Driver"
- depends on ADK_WALDUX_KERNEL_USB_GSPCA
- help
-
-config ADK_WALDUX_KERNEL_USB_GSPCA_SPCA561
- tristate "SPCA561 USB Camera Driver"
- depends on ADK_WALDUX_KERNEL_USB_GSPCA
- help
-
-config ADK_WALDUX_KERNEL_USB_PWC
- tristate "USB Philips Camera driver"
- depends on ADK_TARGET_WITH_USB
- default n
- help
-
-endmenu
-endmenu
diff --git a/target/waldux/config/Config.in.netdevice b/target/waldux/config/Config.in.netdevice
deleted file mode 100644
index 6ad7cf76b..000000000
--- a/target/waldux/config/Config.in.netdevice
+++ /dev/null
@@ -1,9 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Network device support"
-source "target/waldux//config/Config.in.ethernet"
-source "target/waldux//config/Config.in.wireless"
-source "target/waldux//config/Config.in.bluetooth"
-source "target/waldux//config/Config.in.nfc"
-endmenu
diff --git a/target/waldux/config/Config.in.netfilter b/target/waldux/config/Config.in.netfilter
deleted file mode 100644
index f441531ae..000000000
--- a/target/waldux/config/Config.in.netfilter
+++ /dev/null
@@ -1,131 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Netfilter"
-depends on ADK_TARGET_WITH_NET
-
-config ADK_WALDUX_KERNEL_NETFILTER
- bool
-
-config ADK_WALDUX_KERNEL_NETFILTER_ADVANCED
- bool
-
-config ADK_WALDUX_KERNEL_BRIDGE_NETFILTER
- bool
-
-config ADK_WALDUX_KERNEL_NETFILTER_XTABLES
- tristate
- select ADK_WALDUX_KERNEL_NETFILTER
- select ADK_WALDUX_KERNEL_NETFILTER_ADVANCED
-
-config ADK_WALDUX_KERNEL_NETFILTER_DEBUG
- bool
-
-config ADK_WALDUX_KERNEL_IP_NF_MATCH_LAYER7_DEBUG
- bool
-
-config ADK_WALDUX_KERNEL_IP_NF_TARGET_MIRROR
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_NAT_SNMP_BASIC
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_TARGET_DSCP
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_TARGET_MARK
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_TARGET_CLASSIFY
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_TARGET_IMQ
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_TARGET_CONNMARK
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_ARPTABLES
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_COMPAT_IPCHAINS
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_COMPAT_IPFWADM
- tristate
-
-config ADK_WALDUX_KERNEL_IP6_NF_QUEUE
- tristate
-
-config ADK_WALDUX_KERNEL_IP6_NF_IPTABLES
- tristate
-
-config ADK_WALDUX_KERNEL_IP_ROUTE_FWMARK
- bool
-
-config ADK_WALDUX_KERNEL_IP_NF_QUEUE
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_MATCH_TIME
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_MATCH_CONDITION
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_MATCH_DSCP
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_MATCH_AH_ESP
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_MATCH_LENGTH
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_MATCH_HELPER
- tristate
-
-# cannot be ADK_WALDUX_KERNEL_IP_NF_MATCH_STATE because
-# netfilter is built as a module -> this'll always be
-# a module, too
-config ADK_WALDUX_KERNEL_IP_NF_MATCH_STATE
- tristate
- select ADK_WALDUX_KERNEL_NETFILTER_XT_MATCH_STATE
-
-config ADK_WALDUX_KERNEL_NETFILTER_XT_NAT
- tristate
-
-config ADK_WALDUX_KERNEL_NETFILTER_XT_MATCH_STATE
- tristate
-
-# cannot be ADK_WALDUX_KERNEL_IP_NF_MATCH_CONNTRACK because
-# netfilter is built as a module -> this'll always be
-# a module, too
-config ADK_WALDUX_KERNEL_NETFILTER_XT_MATCH_CONNTRACK
- tristate
-
-config ADK_WALDUX_KERNEL_NETFILTER_XT_MATCH_CONNMARK
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_MATCH_UNCLEAN
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_MATCH_STRING
- tristate
-
-menu "Core Netfilter Configuration"
-source target/waldux//config/Config.in.netfilter.core
-endmenu
-
-menu "IPv4: Netfilter Configuration"
-source target/waldux//config/Config.in.netfilter.ip4
-endmenu
-
-menu "IPv6: Netfilter Configuration"
-source target/waldux//config/Config.in.netfilter.ip6
-endmenu
-
-menu "Ethernet bridge firewalling"
-source target/waldux//config/Config.in.netfilter.ebt
-endmenu
-
-endmenu
diff --git a/target/waldux/config/Config.in.netfilter.core b/target/waldux/config/Config.in.netfilter.core
deleted file mode 100644
index 1a11e8b21..000000000
--- a/target/waldux/config/Config.in.netfilter.core
+++ /dev/null
@@ -1,195 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK
- tristate 'Netfilter connection tracking support'
- select ADK_WALDUX_KERNEL_NETFILTER_XTABLES
- default n
- help
- Connection tracking keeps a record of what packets have passed
- through your machine, in order to figure out how they are related
- into connections.
-
- Layer 3 independent connection tracking is experimental scheme
- which generalize ip_conntrack to support other layer 3 protocols.
-
-menu "Netfilter connection tracking support for special protocols"
-depends on ADK_WALDUX_KERNEL_NF_CONNTRACK
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK_MARK
- bool 'Connection mark tracking support'
- depends on ADK_WALDUX_KERNEL_NF_CONNTRACK
- select ADK_WALDUX_KERNEL_IP_NF_MATCH_CONNMARK
- help
- This option enables support for connection marks, used by the
- `CONNMARK' target and `connmark' match. Similar to the mark value
- of packets, but this mark value is kept in the conntrack session
- instead of the individual packets.
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK_SECMARK
- bool 'Connection tracking security mark support'
- depends on ADK_WALDUX_KERNEL_NF_CONNTRACK
- #FIXME select NETWORK_SECMARK
- help
- This option enables security markings to be applied to
- connections. Typically they are copied to connections from
- packets using the CONNSECMARK target and copied back from
- connections to packets with the same target, with the packets
- being originally labeled via SECMARK.
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK_FTP
- tristate 'FTP protocol support'
- depends on ADK_WALDUX_KERNEL_NF_CONNTRACK
- help
- Tracking FTP connections is problematic: special helpers are
- required for tracking them, and doing masquerading and other forms
- of Network Address Translation on them.
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK_IRC
- tristate 'IRC protocol support'
- depends on ADK_WALDUX_KERNEL_NF_CONNTRACK
- help
- There is a commonly-used extension to IRC called
- Direct Client-to-Client Protocol (DCC). This enables users to send
- files to each other, and also chat to each other without the need
- of a server. DCC Sending is used anywhere you send files over IRC,
- and DCC Chat is most commonly used by Eggdrop bots. If you are
- using NAT, this extension will enable you to send files and initiate
- chats. Note that you do NOT need this extension to get files or
- have others initiate chats, or everything else in IRC.
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK_NETBIOS_NS
- tristate 'NetBIOS name service protocol support'
- depends on ADK_WALDUX_KERNEL_NF_CONNTRACK
- help
- NetBIOS name service requests are sent as broadcast messages from an
- unprivileged port and responded to with unicast messages to the
- same port. This make them hard to firewall properly because connection
- tracking doesn't deal with broadcasts. This helper tracks locally
- originating NetBIOS name service requests and the corresponding
- responses. It relies on correct IP address configuration, specifically
- netmask and broadcast address. When properly configured, the output
- of "ip address show" should look similar to this:
-
- $ ip -4 address show eth0
- 4: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 1000
- inet 172.16.2.252/24 brd 172.16.2.255 scope global eth0
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK_TFTP
- tristate 'TFTP protocol support'
- depends on ADK_WALDUX_KERNEL_NF_CONNTRACK
- help
- TFTP connection tracking helper, this is required depending
- on how restrictive your ruleset is.
- If you are using a tftp client behind -j SNAT or -j MASQUERADING
- you will need this.
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK_PPTP
- tristate 'PPTP protocol support'
- depends on ADK_WALDUX_KERNEL_NF_CONNTRACK
- help
- This module adds support for PPTP (Point to Point Tunnelling
- Protocol, RFC2637) connection tracking and NAT.
-
- If you are running PPTP sessions over a stateful firewall or NAT
- box, you may want to enable this feature.
-
- Please note that not all PPTP modes of operation are supported yet.
- For more info, read top of the file
- net/ipv4/netfilter/ip_conntrack_pptp.c
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK_H323
- tristate 'H.323 protocol support'
- depends on ADK_WALDUX_KERNEL_NF_CONNTRACK
- help
- H.323 is a VoIP signalling protocol from ITU-T. As one of the most
- important VoIP protocols, it is widely used by voice hardware and
- software including voice gateways, IP phones, Netmeeting, OpenPhone,
- Gnomemeeting, etc.
-
- With this module you can support H.323 on a connection tracking/NAT
- firewall.
-
- This module supports RAS, Fast Start, H.245 Tunnelling, Call
- Forwarding, RTP/RTCP and T.120 based audio, video, fax, chat,
- whiteboard, file transfer, etc. For more information, please
- visit http://nath323.sourceforge.net/.
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK_SIP
- tristate 'SIP protocol support'
- depends on ADK_WALDUX_KERNEL_NF_CONNTRACK
- help
- SIP is an application-layer control protocol that can establish,
- modify, and terminate multimedia sessions (conferences) such as
- Internet telephony calls. With the ip_conntrack_sip and
- the ip_nat_sip modules you can support the protocol on a connection
- tracking/NATing firewall.
-
-endmenu
-
-config ADK_WALDUX_KERNEL_NETFILTER_NETLINK_LOG
- tristate 'Netfilter LOG over NFNETLINK interface'
- help
- If this option is enabled, the kernel will include support
- for logging packets via NFNETLINK.
-
-menu "Netfilter target support"
-
-config ADK_WALDUX_KERNEL_NETFILTER_XT_TARGET_CHECKSUM
- tristate '"CHECKSUM" target support'
- select ADK_WALDUX_KERNEL_IP_NF_IPTABLES
- select ADK_WALDUX_KERNEL_NETFILTER_XTABLES
- select ADK_WALDUX_KERNEL_IP_NF_MANGLE
- select ADK_WALDUX_KERNEL_NETFILTER_ADVANCED
-
-config ADK_WALDUX_KERNEL_NETFILTER_XT_TARGET_CLASSIFY
- tristate '"CLASSIFY" target support'
- select ADK_WALDUX_KERNEL_NETFILTER_XTABLES
- help
- This option adds a `CLASSIFY' target, which enables the user to set
- the priority of a packet. Some qdiscs can use this value for
- classification, among these are:
-
- atm, cbq, dsmark, pfifo_fast, htb, prio
-
-config ADK_WALDUX_KERNEL_NETFILTER_XT_TARGET_CONNMARK
- tristate '"CONNMARK" target support'
- select ADK_WALDUX_KERNEL_NETFILTER_XTABLES
- select ADK_WALDUX_KERNEL_NF_CONNTRACK
- help
- This option adds a `CONNMARK' target, which allows one to manipulate
- the connection mark value. Similar to the MARK target, but
- affects the connection mark value rather than the packet mark value.
-
-config ADK_WALDUX_KERNEL_NETFILTER_XT_TARGET_MARK
- tristate '"MARK" target support'
- select ADK_WALDUX_KERNEL_NETFILTER_XTABLES
- help
- This option adds a `MARK' target, which allows you to create rules
- in the `mangle' table which alter the netfilter mark (nfmark) field
- associated with the packet prior to routing. This can change
- the routing method (see `Use netfilter MARK value as routing
- key') and can also be used by other subsystems to change their
- behavior.
-
-config ADK_WALDUX_KERNEL_NETFILTER_XT_TARGET_NFQUEUE
- tristate '"NFQUEUE" target support'
- select ADK_WALDUX_KERNEL_NETFILTER_XTABLES
- help
- This target replaced the old obsolete QUEUE target.
-
- As opposed to QUEUE, it supports 65535 different queues,
- not just one.
-
-config ADK_WALDUX_KERNEL_NETFILTER_XT_TARGET_LOG
- tristate '"LOG" target support'
- depends on ADK_WALDUX_KERNEL_IP_NF_FILTER
- help
- This option adds a `LOG' target, which allows you to create rules in
- any iptables table which records the packet header to the syslog.
-
-config ADK_WALDUX_KERNEL_NETFILTER_XT_TARGET_TCPMSS
- tristate '"TCPMSS" target support'
- select ADK_WALDUX_KERNEL_NETFILTER_XTABLES
-
-endmenu
diff --git a/target/waldux/config/Config.in.netfilter.ebt b/target/waldux/config/Config.in.netfilter.ebt
deleted file mode 100644
index 6b7c72fa5..000000000
--- a/target/waldux/config/Config.in.netfilter.ebt
+++ /dev/null
@@ -1,218 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- tristate 'Ethernet Bridge tables support'
- select ADK_WALDUX_KERNEL_BRIDGE_NETFILTER
- default n
- help
- ebtables is a general, extensible frame/packet identification
- framework. Say 'Y' or 'M' here if you want to do Ethernet
- filtering/NAT/brouting on the Ethernet bridge.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_BROUTE
- tristate "broute table support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- The ebtables broute table is used to define rules that decide between
- bridging and routing frames, giving Linux the functionality of a
- brouter. See the man page for ebtables(8) and examples on the ebtables
- website.
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_T_FILTER
- tristate "filter table support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- The ebtables filter table is used to define frame filtering rules at
- local input, forwarding and local output. See the man page for
- ebtables(8).
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_T_NAT
- tristate "nat table support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- The ebtables nat table is used to define rules that alter the MAC
- source address (MAC SNAT) or the MAC destination address (MAC DNAT).
- See the man page for ebtables(8).
-
-#
-# matches
-#
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_802_3
- tristate "802.3 filter support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds matching support for 802.3 Ethernet frames.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_AMONG
- tristate "among filter support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the among match, which allows matching the MAC source
- and/or destination address on a list of addresses. Optionally,
- MAC/IP address pairs can be matched, f.e. for anti-spoofing rules.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_ARP
- tristate "ARP filter support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the ARP match, which allows ARP and RARP header field
- filtering.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_IP
- tristate "IP filter support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the IP match, which allows basic IP header field
- filtering.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_IP6
- tristate "IP6 filter support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES && ADK_WALDUX_KERNEL_IPV6
- default n
- help
- This option adds the IP6 match, which allows basic IPV6 header field
- filtering.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_LIMIT
- tristate "limit match support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the limit match, which allows you to control
- the rate at which a rule can be matched. This match is the
- equivalent of the iptables limit match.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_MARK
- tristate "mark filter support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the mark match, which allows matching frames based on
- the 'nfmark' value in the frame. This can be set by the mark target.
- This value is the same as the one used in the iptables mark match and
- target.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_PKTTYPE
- tristate "packet type filter support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the packet type match, which allows matching on the
- type of packet based on its Ethernet "class" (as determined by
- the generic networking code): broadcast, multicast,
- for this host alone or for another host.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_STP
- tristate "STP filter support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the Spanning Tree Protocol match, which
- allows STP header field filtering.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_VLAN
- tristate "802.1Q VLAN filter support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the 802.1Q vlan match, which allows the filtering of
- 802.1Q vlan fields.
-
-#
-# targets
-#
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_ARPREPLY
- tristate "arp reply target support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the arp reply target, which allows
- automatically sending arp replies to arp requests.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_DNAT
- tristate "dnat target support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the MAC DNAT target, which allows altering the MAC
- destination address of frames.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_MARK_T
- tristate "mark target support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the mark target, which allows marking frames by
- setting the 'nfmark' value in the frame.
- This value is the same as the one used in the iptables mark match and
- target.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_REDIRECT
- tristate "redirect target support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the MAC redirect target, which allows altering the MAC
- destination address of a frame to that of the device it arrived on.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_SNAT
- tristate "snat target support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the MAC SNAT target, which allows altering the MAC
- source address of frames.
-
-#
-# watchers
-#
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_LOG
- tristate "log support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option adds the log watcher, that you can use in any rule
- in any ebtables table. It records info about the frame header
- to the syslog.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_ULOG
- tristate "ulog support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option enables the old bridge-specific "ebt_ulog" implementation
- which has been obsoleted by the new "nfnetlink_log" code (see
- CONFIG_NETFILTER_NETLINK_LOG).
-
- This option adds the ulog watcher, that you can use in any rule
- in any ebtables table. The packet is passed to a userspace
- logging daemon using netlink multicast sockets. This differs
- from the log watcher in the sense that the complete packet is
- sent to userspace instead of a descriptive text and that
- netlink multicast sockets are used instead of the syslog.
-
-config ADK_WALDUX_KERNEL_BRIDGE_EBT_NFLOG
- tristate "nflog support"
- depends on ADK_WALDUX_KERNEL_BRIDGE_NF_EBTABLES
- default n
- help
- This option enables the nflog watcher, which allows to LOG
- messages through the netfilter logging API, which can use
- either the old LOG target, the old ULOG target or nfnetlink_log
- as backend.
-
- This option adds the nflog watcher, that you can use in any rule
- in any ebtables table.
-
diff --git a/target/waldux/config/Config.in.netfilter.ip4 b/target/waldux/config/Config.in.netfilter.ip4
deleted file mode 100644
index 85849ed05..000000000
--- a/target/waldux/config/Config.in.netfilter.ip4
+++ /dev/null
@@ -1,119 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_NF_NAT
- tristate
-
-config ADK_WALDUX_KERNEL_NF_NAT_IPV4
- tristate
-
-config ADK_WALDUX_KERNEL_IP_NF_IPTABLES
- tristate 'IP tables support'
- select ADK_WALDUX_KERNEL_NETFILTER_XTABLES
- default n
- help
- iptables is a general, extensible packet identification framework.
- The packet filtering and full NAT (masquerading, port forwarding,
- etc) subsystems now use this: say `Y' or `M' here if you want to use
- either of those.
-
-config ADK_WALDUX_KERNEL_IP_NF_FILTER
- tristate 'IP Packet Filtering table support'
- depends on ADK_WALDUX_KERNEL_IP_NF_IPTABLES
- default n
- help
- Packet filtering defines a table `filter', which has a series of
- rules for simple packet filtering at local input, forwarding and
- local output.
-
-config ADK_WALDUX_KERNEL_IP_NF_NAT
- tristate 'IP NAT table support'
- select ADK_WALDUX_KERNEL_NETFILTER_XT_NAT
- select ADK_WALDUX_KERNEL_NF_NAT
- select ADK_WALDUX_KERNEL_NF_NAT_IPV4
- depends on ADK_WALDUX_KERNEL_IP_NF_IPTABLES
- default n
- help
-
-config ADK_WALDUX_KERNEL_IP_NF_MANGLE
- tristate 'IP Packet mangling table support'
- depends on ADK_WALDUX_KERNEL_IP_NF_IPTABLES
- default n
- help
- This option adds a `mangle' table to iptables: see the man page for
- iptables(8). This table is used for various packet alterations
- which can effect how the packet is routed.
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK_IPV4
- tristate 'IP connection tracking support (required for NAT)'
- select ADK_WALDUX_KERNEL_NF_CONNTRACK
- select ADK_WALDUX_KERNEL_NETFILTER_XT_MATCH_CONNTRACK
- default n
- help
- Connection tracking keeps a record of what packets have passed
- through your machine, in order to figure out how they are related
- into connections.
-
-config ADK_WALDUX_KERNEL_IP_NF_CT_ACCT
- bool 'Connection tracking flow accounting'
- depends on ADK_WALDUX_KERNEL_NF_CONNTRACK
- help
- If this option is enabled, the connection tracking code will
- keep per-flow packet and byte counters.
-
- Those counters can be used for flow-based accounting or the
- `connbytes' match.
-
-menu "IP target support"
-
-config ADK_WALDUX_KERNEL_IP_NF_TARGET_MASQUERADE
- tristate 'MASQUERADE target support'
- depends on ADK_WALDUX_KERNEL_NF_NAT
- default n
- help
- Masquerading is a special case of NAT: all outgoing connections are
- changed to seem to come from a particular interface's address, and
- if the interface goes down, those connections are lost. This is
- only useful for dialup accounts with dynamic IP address (ie. your IP
- address will be different on next dialup).
-
-config ADK_WALDUX_KERNEL_IP_NF_TARGET_REJECT
- tristate 'REJECT target support'
- depends on ADK_WALDUX_KERNEL_IP_NF_FILTER
- default n
- help
- The REJECT target allows a filtering rule to specify that an ICMP
- error should be issued in response to an incoming packet, rather
- than silently being dropped.
-
-config ADK_WALDUX_KERNEL_IP_NF_TARGET_REDIRECT
- tristate 'REDIRECT target support'
- depends on ADK_WALDUX_KERNEL_NF_NAT
- help
- REDIRECT is a special case of NAT: all incoming connections are
- mapped onto the incoming interface's address, causing the packets to
- come to the local machine instead of passing through. This is
- useful for transparent proxies.
-
-config ADK_WALDUX_KERNEL_IP_NF_TARGET_NETMAP
- tristate 'NETMAP target support'
- depends on ADK_WALDUX_KERNEL_NF_NAT
- help
- NETMAP is an implementation of static 1:1 NAT mapping of network
- addresses. It maps the network address part, while keeping the host
- address part intact. It is similar to Fast NAT, except that
- Netfilter's connection tracking doesn't work well with Fast NAT.
-
-config ADK_WALDUX_KERNEL_IP_NF_TARGET_ECN
- tristate 'ECN target support'
- depends on ADK_WALDUX_KERNEL_IP_NF_MANGLE
- help
- This option adds a `ECN' target, which can be used in the iptables mangle
- table.
-
- You can use this target to remove the ECN bits from the IPv4 header of
- an IP packet. This is particularly useful, if you need to work around
- existing ECN blackholes on the internet, but don't want to disable
- ECN support in general.
-
-endmenu
diff --git a/target/waldux/config/Config.in.netfilter.ip6 b/target/waldux/config/Config.in.netfilter.ip6
deleted file mode 100644
index d2bdd3df4..000000000
--- a/target/waldux/config/Config.in.netfilter.ip6
+++ /dev/null
@@ -1,132 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_NF_CONNTRACK_IPV6
- tristate "IPv6 connection tracking support"
- select ADK_WALDUX_KERNEL_NF_CONNTRACK
- select ADK_WALDUX_KERNEL_IPV6
- default n
- help
- Connection tracking keeps a record of what packets have passed
- through your machine, in order to figure out how they are related
- into connections.
-
- This is IPv6 support on Layer 3 independent connection tracking.
- Layer 3 independent connection tracking is experimental scheme
- which generalize ip_conntrack to support other layer 3 protocols.
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_IP6_NF_IPTABLES
- tristate "IP6 tables support (required for filtering)"
- select ADK_WALDUX_KERNEL_NETFILTER_XTABLES
- select ADK_WALDUX_KERNEL_IPV6
- default n
- help
- ip6tables is a general, extensible packet identification framework.
- Currently only the packet filtering and packet mangling subsystem
- for IPv6 use this, but connection tracking is going to follow.
- Say 'Y' or 'M' here if you want to use either of those.
-
- To compile it as a module, choose M here. If unsure, say N.
-
-if ADK_WALDUX_KERNEL_IP6_NF_IPTABLES
-
-# The simple matches.
-config ADK_WALDUX_KERNEL_IP6_NF_MATCH_AH
- tristate '"ah" match support'
- help
- This module allows one to match AH packets.
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_IP6_NF_MATCH_EUI64
- tristate '"eui64" address check'
- help
- This module performs checking on the IPv6 source address
- Compares the last 64 bits with the EUI64 (delivered
- from the MAC address) address
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_IP6_NF_MATCH_FRAG
- tristate '"frag" Fragmentation header match support'
- help
- frag matching allows you to match packets based on the fragmentation
- header of the packet.
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_IP6_NF_MATCH_OPTS
- tristate '"hbh" hop-by-hop and "dst" opts header match support'
- help
- This allows one to match packets based on the hop-by-hop
- and destination options headers of a packet.
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_IP6_NF_MATCH_IPV6HEADER
- tristate '"ipv6header" IPv6 Extension Headers Match'
- help
- This module allows one to match packets based upon
- the ipv6 extension headers.
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_IP6_NF_MATCH_MH
- tristate '"mh" match support'
- help
- This module allows one to match MH packets.
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_IP6_NF_MATCH_RT
- tristate '"rt" Routing header match support'
- help
- rt matching allows you to match packets based on the routing
- header of the packet.
-
- To compile it as a module, choose M here. If unsure, say N.
-
-# The targets
-
-config ADK_WALDUX_KERNEL_IP6_NF_FILTER
- tristate "Packet filtering"
- default n
- help
- Packet filtering defines a table `filter', which has a series of
- rules for simple packet filtering at local input, forwarding and
- local output. See the man page for iptables(8).
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_IP6_NF_TARGET_REJECT
- tristate "REJECT target support"
- depends on ADK_WALDUX_KERNEL_IP6_NF_FILTER
- help
- The REJECT target allows a filtering rule to specify that an ICMPv6
- error should be issued in response to an incoming packet, rather
- than silently being dropped.
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_IP6_NF_MANGLE
- tristate "Packet mangling"
- help
- This option adds a `mangle' table to iptables: see the man page for
- iptables(8). This table is used for various packet alterations
- which can effect how the packet is routed.
-
- To compile it as a module, choose M here. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_IP6_NF_RAW
- tristate 'raw table support (required for TRACE)'
- help
- This option adds a `raw' table to ip6tables. This table is the very
- first in the netfilter framework and hooks in at the PREROUTING
- and OUTPUT chains.
-
- If you want to compile it as a module, say M here and read
- <file:Documentation/kbuild/modules.txt>. If unsure, say `N'.
-
-endif # ADK_WALDUX_KERNEL_IP6_NF_IPTABLES
diff --git a/target/waldux/config/Config.in.network b/target/waldux/config/Config.in.network
deleted file mode 100644
index afbf36c7a..000000000
--- a/target/waldux/config/Config.in.network
+++ /dev/null
@@ -1,267 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Network support"
-depends on ADK_TARGET_WITH_NET \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_NETDEVICES
- bool
-
-config ADK_WALDUX_KERNEL_ETHERNET
- bool
-
-config ADK_WALDUX_KERNEL_NET
- bool
-
-config ADK_WALDUX_KERNEL_PACKET
- bool
-
-config ADK_WALDUX_KERNEL_UNIX
- bool
-
-config ADK_WALDUX_KERNEL_NET_CORE
- bool
-
-config ADK_WALDUX_KERNEL_INET
- bool "Enable TCP/IP support"
- select ADK_WALDUX_KERNEL_NET
- select ADK_WALDUX_KERNEL_UNIX
- select ADK_WALDUX_KERNEL_PACKET
- select ADK_WALDUX_KERNEL_NET_CORE
- select ADK_WALDUX_KERNEL_NETDEVICES
- select ADK_WALDUX_KERNEL_ETHERNET
- select ADK_WALDUX_KERNEL_CRYPTO
- select ADK_WALDUX_KERNEL_CRYPTO_AES
- default y
-
-config ADK_WALDUX_KERNEL_IP_FIB_HASH
- bool
- default y
-
-config ADK_WALDUX_KERNEL_IPV6
- tristate "Enable IPv6 support"
- select BUSYBOX_FEATURE_IPV6
- help
- This is complemental support for the IP version 6.
- You will still be able to do traditional IPv4 networking as well.
-
- For general information about IPv6, see
- <http://playground.sun.com/pub/ipng/html/ipng-main.html>.
- For Linux IPv6 development information, see <http://www.linux-ipv6.org>.
- For specific information about IPv6 under Linux, read the HOWTO at
- <http://www.bieringer.de/linux/IPv6/>.
-
-config ADK_WALDUX_KERNEL_IPV6_SIT
- tristate "IPv6-in-IPv4 tunnel (SIT driver)"
- select ADK_WALDUX_KERNEL_INET_TUNNEL
- select ADK_WALDUX_KERNEL_NET_IP_TUNNEL
- help
- Tunneling means encapsulating data of one protocol type within
- another protocol and sending it over a channel that understands the
- encapsulating protocol. This driver implements encapsulation of IPv6
- into IPv4 packets. This is useful if you want to connect two IPv6
- networks over an IPv4-only path.
-
-config ADK_WALDUX_KERNEL_SYN_COOKIES
- bool "TCP syncookie support"
-
-config ADK_WALDUX_KERNEL_IP_PNP_BOOTP
- bool
-
-config ADK_WALDUX_KERNEL_IP_PNP_RARP
- bool
-
-config ADK_WALDUX_KERNEL_NET_IPGRE_BROADCAST
- bool
-
-config ADK_WALDUX_KERNEL_NET_IPGRE_DEMUX
- bool
-
-config ADK_WALDUX_KERNEL_PPP_ASYNC
- bool
-
-config ADK_WALDUX_KERNEL_SLHC
- bool
-
-config ADK_WALDUX_KERNEL_IMQ
- tristate
-
-config ADK_WALDUX_KERNEL_LLC
- tristate
-
-config ADK_WALDUX_KERNEL_IP_MULTICAST
- bool "Enable IP Multicasting"
-
-config ADK_WALDUX_KERNEL_IP_MROUTE
- bool "Enable IP Multicasting Routing"
-
-config ADK_WALDUX_KERNEL_ATM
- tristate "Asynchronous Transfer Mode (ATM)"
- help
- ATM is a high-speed networking technology for Local Area Networks
- and Wide Area Networks. It uses a fixed packet size and is
- connection oriented, allowing for the negotiation of minimum
- bandwidth requirements.
-
- In order to participate in an ATM network, your Linux box needs an
- ATM networking card. If you have that, say Y here and to the driver
- of your ATM card below.
-
- Note that you need a set of user-space programs to actually make use
- of ATM. See the file <file:Documentation/networking/atm.txt> for
- further details.
-
-config ADK_WALDUX_KERNEL_ATM_BR2684
- tristate "BR2684 ATM module"
- select ADK_WALDUX_KERNEL_ATM
-
-config ADK_WALDUX_KERNEL_BRIDGE
- tristate "802.1d Ethernet Bridging"
- select ADK_WALDUX_KERNEL_LLC
- help
- If you say Y here, then your Linux box will be able to act as an
- Ethernet bridge, which means that the different Ethernet segments it
- is connected to will appear as one Ethernet to the participants.
- Several such bridges can work together to create even larger
- networks of Ethernets using the IEEE 802.1 spanning tree algorithm.
- As this is a standard, Linux bridges will cooperate properly with
- other third party bridge products.
-
- In order to use the Ethernet bridge, you'll need the bridge
- configuration tools; see <file:Documentation/networking/bridge.txt>
- for location. Please read the Bridge mini-HOWTO for more
- information.
-
- If you enable iptables support along with the bridge support then you
- turn your bridge into a bridging IP firewall.
- iptables will then see the IP packets being bridged, so you need to
- take this into account when setting up your firewall rules.
- Enabling arptables support when bridging will let arptables see
- bridged ARP traffic in the arptables FORWARD chain.
-
-config ADK_WALDUX_KERNEL_VLAN_8021Q
- tristate "802.1q VLAN support"
- help
- Select this and you will be able to create 802.1Q VLAN interfaces
- on your ethernet interfaces. 802.1Q VLAN supports almost
- everything a regular ethernet interface does, including
- firewalling, bridging, and of course IP traffic. You will need
- the 'vconfig' tool from the VLAN project in order to effectively
- use VLANs. See the VLAN web page for more information:
- <http://www.candelatech.com/~greear/vlan.html>
-
-config ADK_WALDUX_KERNEL_INET_TUNNEL
- tristate
-
-config ADK_WALDUX_KERNEL_NET_IP_TUNNEL
- tristate
- default n
-
-config ADK_WALDUX_KERNEL_NET_IPIP
- tristate "IP in IP encapsulation support"
- select ADK_WALDUX_KERNEL_INET_TUNNEL
- select ADK_WALDUX_KERNEL_NET_IP_TUNNEL
- help
- Tunneling means encapsulating data of one protocol type within
- another protocol and sending it over a channel that understands the
- encapsulating protocol. This particular tunneling driver implements
- encapsulation of IP within IP, which sounds kind of pointless, but
- can be useful if you want to make your (or some other) machine
- appear on a different network than it physically is, or to use
- mobile-IP facilities (allowing laptops to seamlessly move between
- networks without changing their IP addresses).
-
-config ADK_WALDUX_KERNEL_NET_IPGRE
- tristate "GRE tunnels over IP"
- select ADK_WALDUX_KERNEL_NET_IPGRE_BROADCAST
- select ADK_WALDUX_KERNEL_NET_IPGRE_DEMUX
- select ADK_WALDUX_KERNEL_NET_IP_TUNNEL
- help
- Tunneling means encapsulating data of one protocol type within
- another protocol and sending it over a channel that understands the
- encapsulating protocol. This particular tunneling driver implements
- GRE (Generic Routing Encapsulation) and at this time allows
- encapsulating of IPv4 or IPv6 over existing IPv4 infrastructure.
- This driver is useful if the other endpoint is a Cisco router: Cisco
- likes GRE much better than the other Linux tunneling driver ("IP
- tunneling" above). In addition, GRE allows multicast redistribution
- through the tunnel.
-
-config ADK_WALDUX_KERNEL_PPP
- tristate "PPP support"
- select ADK_WALDUX_KERNEL_PPP_ASYNC
- select ADK_WALDUX_KERNEL_SLHC
- select ADK_WALDUX_KERNEL_CRC_CCITT
- help
- PPP (Point to Point Protocol) is a newer and better SLIP. It serves
- the same purpose: sending Internet traffic over telephone (and other
- serial) lines. Ask your access provider if they support it, because
- otherwise you can't use it; most Internet access providers these
- days support PPP rather than SLIP.
-
- To use PPP, you need an additional program called pppd as described
- in the PPP-HOWTO, available at
- <http://www.tldp.org/docs.html#howto>. Make sure that you have
- the version of pppd recommended in <file:Documentation/Changes>.
- The PPP option enlarges your kernel by about 16 KB.
-
- There are actually two versions of PPP: the traditional PPP for
- asynchronous lines, such as regular analog phone lines, and
- synchronous PPP which can be used over digital ISDN lines for
- example. If you want to use PPP over phone lines or other
- asynchronous serial lines, you need to say Y (or M) here and also to
- the next option, "PPP support for async serial ports". For PPP over
- synchronous lines, you should say Y (or M) here and to "Support
- synchronous PPP", below.
-
-config ADK_WALDUX_KERNEL_PPP_MPPE
- tristate "PPP MPPE/MPPC module"
- depends on ADK_WALDUX_KERNEL_PPP
- select ADK_WALDUX_KERNEL_CRYPTO
- select ADK_WALDUX_KERNEL_CRYPTO_ARC4
- select ADK_WALDUX_KERNEL_CRYPTO_SHA1
- select ADK_WALDUX_KERNEL_CRYPTO_ECB
- help
- Support for the MPPE Encryption protocol, as employed by the
- Microsoft Point-to-Point Tunneling Protocol.
-
- See http://pptpclient.sourceforge.net/ for information on
- configuring PPTP clients and servers to utilize this method.
-
-config ADK_WALDUX_KERNEL_PPPOATM
- tristate "PPPoA (PPP over ATM) kernel support"
- depends on ADK_WALDUX_KERNEL_PPP
- select ADK_WALDUX_KERNEL_ATM
- help
- Support for PPP over ATM
-
-config ADK_WALDUX_KERNEL_PPPOE
- tristate "PPPoE (PPP over Ethernet) kernel support"
- depends on ADK_WALDUX_KERNEL_PPP
- help
- Support for PPP over Ethernet
-
-config ADK_WALDUX_KERNEL_TUN
- tristate "Universal TUN/TAP driver"
- help
- Kernel support for the TUN/TAP tunneling device
-
-config ADK_WALDUX_KERNEL_BONDING
- tristate "Bonding driver support"
- help
- Say 'Y' or 'M' if you wish to be able to 'bond' multiple Ethernet
- Channels together. This is called 'Etherchannel' by Cisco,
- 'Trunking' by Sun, 802.3ad by the IEEE, and 'Bonding' in Linux.
-
- The driver supports multiple bonding modes to allow for both high
- performance and high availability operation.
-
- Refer to <file:Documentation/networking/bonding.txt> for more
- information.
-
-source target/waldux//config/Config.in.sched
-source target/waldux//config/Config.in.ipsec
-source target/waldux//config/Config.in.ipvs
-
-endmenu
diff --git a/target/waldux/config/Config.in.nfc b/target/waldux/config/Config.in.nfc
deleted file mode 100644
index 25b22bdb9..000000000
--- a/target/waldux/config/Config.in.nfc
+++ /dev/null
@@ -1,37 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "NFC devices support"
-
-config ADK_WALDUX_KERNEL_NFC
- bool
-
-config ADK_WALDUX_KERNEL_NFC_DIGITAL
- bool
-
-config ADK_WALDUX_KERNEL_NFC_HCI
- bool
-
-config ADK_WALDUX_KERNEL_NFC_NCI
- bool
-
-config ADK_WALDUX_KERNEL_NFC_NCI_SPI
- bool
-
-config ADK_WALDUX_KERNEL_NFC_SHDLC
- bool
-
-config ADK_WALDUX_KERNEL_NFC_PN533
- tristate "PN533 USB chip"
- select ADK_WALDUX_KERNEL_NFC
- select ADK_WALDUX_KERNEL_NFC_DIGITAL
- select ADK_WALDUX_KERNEL_NFC_HCI
- select ADK_WALDUX_KERNEL_NFC_NCI
- select ADK_WALDUX_KERNEL_NFC_NCI_SPI
- select ADK_WALDUX_KERNEL_NFC_SHDLC
- default n
- help
- Driver for PN533 USB chip.
-
-endmenu
-
diff --git a/target/waldux/config/Config.in.nls b/target/waldux/config/Config.in.nls
deleted file mode 100644
index 89499d7ff..000000000
--- a/target/waldux/config/Config.in.nls
+++ /dev/null
@@ -1,471 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Native Language support"
-
-config ADK_WALDUX_KERNEL_NLS_DEFAULT
- string
- default "utf-8"
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_437
- tristate "Codepage 437 (United States, Canada)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored
- in so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage that is used in
- the United States and parts of Canada. This is recommended.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_737
- tristate "Codepage 737 (Greek)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored
- in so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage that is used for
- Greek. If unsure, say N.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_775
- tristate "Codepage 775 (Baltic Rim)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored
- in so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage that is used
- for the Baltic Rim Languages (Latvian and Lithuanian). If unsure,
- say N.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_850
- tristate "Codepage 850 (Western European Languages)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage that is used for
- much of Europe -- United Kingdom, Germany, Spain, Italy, and [add
- more countries here]. It has some characters useful to many European
- languages that are not part of the US codepage 437.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_852
- tristate "Codepage 852 (Eastern European Languages)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the Latin 2 codepage used by DOS
- for much of Central and Eastern Europe. It has all the required
- characters for these languages: Albanian, Croatian, Czech, English,
- Finnish, Hungarian, Irish, German, Polish, Romanian, Serbian (Latin
- transcription), Slovak, Slovenian, and Sorbian.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_855
- tristate "Codepage 855 (Cyrillic)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Cyrillic.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_857
- tristate "Codepage 857 (Turkish)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Turkish.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_860
- tristate "Codepage 860 (Portuguese)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Portuguese.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_861
- tristate "Codepage 861 (Icelandic)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Icelandic.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_862
- tristate "Codepage 862 (Hebrew)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Hebrew.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_863
- tristate "Codepage 863 (French Canadian)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Canadian
- French.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_864
- tristate "Codepage 864 (Arabic)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Arabic.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_865
- tristate "Codepage 865 (Norwegian, Danish)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for the Nordic
- European countries.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_866
- tristate "Codepage 866 (Cyrillic/Russian)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for
- Cyrillic/Russian.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_869
- tristate "Codepage 869 (Greek)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Greek.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_874
- tristate "Codepage 874 (Thai)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Thai.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_932
- tristate "Codepage 932 (Japanese)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Shift-JIS
- or EUC-JP. To use EUC-JP, you can use 'euc-jp' as mount option or
- NLS Default value during kernel configuration, instead of 'cp932'.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_936
- tristate "Codepage 936 (Simplified Chinese)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Simplified
- Chinese(GBK).
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_949
- tristate "Codepage 949 (Korean)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for UHC.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_950
- tristate "Codepage 950 (Traditional Chinese)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Traditional
- Chinese(Big5).
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_1250
- tristate "Codepage 1250 (Slavic/Central European)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CDROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the Windows CP-1250
- character set, which works for most Latin-written Slavic and Central
- European languages: Czech, German, Hungarian, Polish, Rumanian, Croatian,
- Slovak, Slovene.
-
-config ADK_WALDUX_KERNEL_NLS_CODEPAGE_1251
- tristate "Codepage 1251 (Bulgarian, Belarusian)"
- default n
- help
- The Microsoft FAT file system family can deal with filenames in
- native language character sets. These character sets are stored in
- so-called DOS codepages. You need to include the appropriate
- codepage if you want to be able to read/write these filenames on
- DOS/Windows partitions correctly. This does apply to the filenames
- only, not to the file contents. You can include several codepages;
- say Y here if you want to include the DOS codepage for Russian and
- Bulgarian and Belarusian.
-
-config ADK_WALDUX_KERNEL_NLS_ASCII
- tristate "ASCII (United States)"
- default n
- help
- An ASCII NLS module is needed if you want to override the
- DEFAULT NLS with this very basic charset and don't want any
- non-ASCII characters to be translated.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_1
- tristate "NLS ISO 8859-1 (Latin-1; Western European Languages)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the Latin 1 character
- set, which covers most West European languages such as Albanian,
- Catalan, Danish, Dutch, English, Faeroese, Finnish, French, German,
- Galician, Irish, Icelandic, Italian, Norwegian, Portuguese, Spanish,
- and Swedish. It is also the default for the US. If unsure, say Y.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_2
- tristate "NLS ISO 8859-2 (Latin-2; Central European Languages)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the Latin 2 character
- set, which works for most Latin-written Slavic and Central European
- languages: Czech, German, Hungarian, Polish, Rumanian, Croatian,
- Slovak, Slovene.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_3
- tristate "NLS ISO 8859-3 (Latin-3; Esperanto, Galician, Maltese, Turkish)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the Latin 3 character
- set, which is popular with authors of Esperanto, Galician, Maltese,
- and Turkish.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_4
- tristate "NLS ISO 8859-4 (Latin-4; old Baltic charset)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the Latin 4 character
- set which introduces letters for Estonian, Latvian, and
- Lithuanian. It is an incomplete predecessor of Latin 7.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_5
- tristate "NLS ISO 8859-5 (Cyrillic)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for ISO8859-5, a Cyrillic
- character set with which you can type Bulgarian, Belarusian,
- Macedonian, Russian, Serbian, and Ukrainian. Note that the charset
- KOI8-R is preferred in Russia.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_6
- tristate "NLS ISO 8859-6 (Arabic)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for ISO8859-6, the Arabic
- character set.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_7
- tristate "NLS ISO 8859-7 (Greek)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for ISO8859-7, the Modern
- Greek character set.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_8
- tristate "NLS ISO 8859-8 (Hebrew)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for ISO8859-8, the Hebrew
- character set.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_9
- tristate "NLS ISO 8859-9 (Latin-5; Turkish)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the Latin 5 character
- set, and it replaces the rarely needed Icelandic letters in Latin 1
- with the Turkish ones. Useful in Turkey.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_13
- tristate "NLS ISO 8859-13 (Latin-7; Baltic Rim)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the Latin 7 character
- set, which supports modern Baltic languages including Latvian
- and Lithuanian.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_14
- tristate "NLS ISO 8859-14 (Latin-8; Celtic)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the Latin 8 character
- set, which adds the last accented vowels for Welsh (aka Cymraeg)
- (and Manx Gaelic) that were missing in Latin 1.
- <http://linux.speech.cymru.org/> has further information.
-
-config ADK_WALDUX_KERNEL_NLS_ISO8859_15
- tristate "NLS ISO 8859-15 (Latin-9; Western European Languages with Euro)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the Latin 9 character
- set, which covers most West European languages such as Albanian,
- Catalan, Danish, Dutch, English, Estonian, Faeroese, Finnish,
- French, German, Galician, Irish, Icelandic, Italian, Norwegian,
- Portuguese, Spanish, and Swedish. Latin 9 is an update to
- Latin 1 (ISO 8859-1) that removes a handful of rarely used
- characters and instead adds support for Estonian, corrects the
- support for French and Finnish, and adds the new Euro character.
- If unsure, say Y.
-
-config ADK_WALDUX_KERNEL_NLS_KOI8_R
- tristate "NLS KOI8-R (Cryllic for Russian and Bulgarian)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the preferred Russian
- character set.
-
-config ADK_WALDUX_KERNEL_NLS_KOI8_U
- tristate "NLS KOI8-U (Cyrillic for Russian, Bulgarian and Ukrainian)"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the preferred Ukrainian
- (koi8-u) and Belarusian (koi8-ru) character sets.
-
-config ADK_WALDUX_KERNEL_NLS_UTF8
- tristate "NLS UTF8"
- default n
- help
- If you want to display filenames with native language characters
- from the Microsoft FAT file system family or from JOLIET CD-ROMs
- correctly on the screen, you need to include the appropriate
- input/output character sets. Say Y here for the UTF-8 encoding of
- the Unicode/ISO9646 universal character set.
-
-endmenu
diff --git a/target/waldux/config/Config.in.part b/target/waldux/config/Config.in.part
deleted file mode 100644
index 22faf4354..000000000
--- a/target/waldux/config/Config.in.part
+++ /dev/null
@@ -1,14 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Partition Types"
-
-config ADK_WALDUX_KERNEL_PARTITION_ADVANCED
- bool
- default y
-
-config ADK_WALDUX_KERNEL_MSDOS_PARTITION
- bool "MSDOS partitions"
- default y
-
-endmenu
diff --git a/target/waldux/config/Config.in.pcmcia b/target/waldux/config/Config.in.pcmcia
deleted file mode 100644
index 361c0d2e7..000000000
--- a/target/waldux/config/Config.in.pcmcia
+++ /dev/null
@@ -1,48 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "PCMCIA/CardBus support"
-depends on ADK_TARGET_WITH_CARDBUS || ADK_TARGET_WITH_PCMCIA || ADK_TARGET_QEMU
-
-config ADK_WALDUX_KERNEL_CARDBUS
- bool
-
-config ADK_WALDUX_KERNEL_PCMCIA_PROBE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_8250_EXTENDED
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_8250_SHARE_IRQ
- bool
- select ADK_WALDUX_KERNEL_SERIAL_8250_EXTENDED
-
-config ADK_WALDUX_KERNEL_PCMCIA_PXA2XX
- bool
-
-config ADK_WALDUX_KERNEL_PCCARD
- tristate "PCCARD support"
- default n
-
-config ADK_WALDUX_KERNEL_PCMCIA
- tristate "16-bit PCMCIA support"
- depends on ADK_WALDUX_KERNEL_PCCARD
- select ADK_WALDUX_KERNEL_FW_LOADER
- select ADK_WALDUX_KERNEL_CRC32
- select ADK_WALDUX_KERNEL_PCMCIA_PROBE
- default n
-
-config ADK_WALDUX_KERNEL_YENTA
- tristate "32-bit CardBus support"
- depends on ADK_WALDUX_KERNEL_PCCARD
- depends on ADK_TARGET_WITH_CARDBUS
- select ADK_WALDUX_KERNEL_CARDBUS
- default n
-
-config ADK_WALDUX_KERNEL_SERIAL_8250_CS
- tristate "PCMCIA/CardBus serial device support"
- select ADK_WALDUX_KERNEL_SERIAL_8250_SHARE_IRQ
- depends on ADK_WALDUX_KERNEL_PCMCIA && !ADK_TARGET_QEMU
- default n
-
-endmenu
diff --git a/target/waldux/config/Config.in.pm b/target/waldux/config/Config.in.pm
deleted file mode 100644
index dfbaf2aec..000000000
--- a/target/waldux/config/Config.in.pm
+++ /dev/null
@@ -1,82 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_PM
- bool
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_BOARD_BCM28XX
-
-config ADK_WALDUX_KERNEL_PM_RUNTIME
- bool
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
-
-config ADK_WALDUX_KERNEL_ACPI
- bool
-
-config ADK_WALDUX_KERNEL_ACPI_SYSFS_POWER
- bool
-
-config ADK_WALDUX_KERNEL_ACPI_AC
- bool
-
-config ADK_WALDUX_KERNEL_ACPI_BATTERY
- bool
-
-config ADK_WALDUX_KERNEL_ACPI_BUTTON
- bool
-
-config ADK_WALDUX_KERNEL_ACPI_FAN
- bool
-
-config ADK_WALDUX_KERNEL_ACPI_DOCK
- bool
-
-menu "Power Management support"
-depends on ADK_TARGET_WITH_ACPI \
- || ADK_TARGET_SYSTEM_LEMOTE_YEELONG \
- || ADK_TARGET_GENERIC
-
-config ADK_HARDWARE_ACPI
- bool "Enable ACPI support"
- select ADK_WALDUX_KERNEL_PM
- select ADK_WALDUX_KERNEL_PM_RUNTIME
- select ADK_WALDUX_KERNEL_ACPI
- select ADK_WALDUX_KERNEL_ACPI_SYSFS_POWER
- select ADK_WALDUX_KERNEL_ACPI_AC
- select ADK_WALDUX_KERNEL_ACPI_BATTERY
- select ADK_WALDUX_KERNEL_ACPI_BUTTON
- select ADK_WALDUX_KERNEL_ACPI_FAN
- select ADK_WALDUX_KERNEL_ACPI_DOCK
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default y if ADK_TARGET_SYSTEM_PCENGINES_APU
- default y if ADK_TARGET_SYSTEM_GENERIC_X86
- default y if ADK_TARGET_SYSTEM_GENERIC_X86_64
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default n
- help
- Enable ACPI support.
-
-config ADK_WALDUX_KERNEL_SUSPEND
- bool "Enable Suspend-to-RAM support"
- select ADK_WALDUX_KERNEL_PM
- select ADK_WALDUX_KERNEL_PM_RUNTIME
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default n
- help
- Enable Suspend-to-RAM support.
-
-config ADK_WALDUX_KERNEL_HIBERNATION
- bool "Enable Suspend-to-Disk support"
- select ADK_WALDUX_KERNEL_PM
- select ADK_WALDUX_KERNEL_PM_RUNTIME
- select ADK_WALDUX_KERNEL_SWAP
- select BUSYBOX_SWAPONOFF
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default n
- help
- Enable Suspend-to-Disk support.
-
-endmenu
diff --git a/target/waldux/config/Config.in.regmap b/target/waldux/config/Config.in.regmap
deleted file mode 100644
index c60071a2b..000000000
--- a/target/waldux/config/Config.in.regmap
+++ /dev/null
@@ -1,19 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_REGMAP
- bool
- select ADK_WALDUX_KERNEL_LZO_COMPRESS
- select ADK_WALDUX_KERNEL_LZO_DECOMPRESS
-
-config ADK_WALDUX_KERNEL_REGMAP_I2C
- tristate
-
-config ADK_WALDUX_KERNEL_REGMAP_SPI
- tristate
-
-config ADK_WALDUX_KERNEL_REGMAP_MMIO
- tristate
-
-config ADK_WALDUX_KERNEL_REGMAP_IRQ
- bool
diff --git a/target/waldux/config/Config.in.regulator b/target/waldux/config/Config.in.regulator
deleted file mode 100644
index 18d87ff1c..000000000
--- a/target/waldux/config/Config.in.regulator
+++ /dev/null
@@ -1,37 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_REGULATOR
- bool
-
-config ADK_WALDUX_KERNEL_REGULATOR_FIXED_VOLTAGE
- bool
- select ADK_WALDUX_KERNEL_REGULATOR
-
-config ADK_WALDUX_KERNEL_REGULATOR_GPIO
- bool
- select ADK_WALDUX_KERNEL_REGULATOR
-
-config ADK_WALDUX_KERNEL_REGULATOR_ANATOP
- bool
- select ADK_WALDUX_KERNEL_REGULATOR
-
-config ADK_WALDUX_KERNEL_REGULATOR_MC13XXX_CORE
- bool
- select ADK_WALDUX_KERNEL_REGULATOR
-
-config ADK_WALDUX_KERNEL_REGULATOR_DA9052
- bool
- select ADK_WALDUX_KERNEL_REGULATOR
-
-config ADK_WALDUX_KERNEL_REGULATOR_MC13783
- bool
- select ADK_WALDUX_KERNEL_REGULATOR
-
-config ADK_WALDUX_KERNEL_REGULATOR_MC13892
- bool
- select ADK_WALDUX_KERNEL_REGULATOR
-
-config ADK_WALDUX_KERNEL_REGULATOR_PFUZE100
- bool
- select ADK_WALDUX_KERNEL_REGULATOR
diff --git a/target/waldux/config/Config.in.rtc b/target/waldux/config/Config.in.rtc
deleted file mode 100644
index bcd4a37da..000000000
--- a/target/waldux/config/Config.in.rtc
+++ /dev/null
@@ -1,67 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "RTC device support"
-depends on ADK_TARGET_WITH_RTC
-
-config ADK_WALDUX_KERNEL_RTC_CLASS
- bool
-
-config ADK_WALDUX_KERNEL_RTC_HCTOSYS
- bool
-
-config ADK_WALDUX_KERNEL_RTC_INTF_DEV
- bool
-
-config ADK_WALDUX_KERNEL_RTC_INTF_DEV_UIE_EMUL
- bool
-
-config ADK_WALDUX_KERNEL_RTC_DRV_PCF8523
- bool "RTC support for Solidrun IMX6 (PCF8523)"
- select ADK_WALDUX_KERNEL_RTC_CLASS
- select ADK_WALDUX_KERNEL_RTC_HCTOSYS
- select ADK_WALDUX_KERNEL_RTC_INTF_DEV
- select ADK_WALDUX_KERNEL_RTC_INTF_DEV_UIE_EMUL
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- help
- PCF8523 RTC.
-
-config ADK_WALDUX_KERNEL_RTC_DRV_PXA
- bool "RTC support for Sharp Zaurus"
- select ADK_WALDUX_KERNEL_RTC_CLASS
- select ADK_WALDUX_KERNEL_RTC_HCTOSYS
- select ADK_WALDUX_KERNEL_RTC_INTF_DEV
- default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default n
- depends on ADK_TARGET_SYSTEM_SHARP_ZAURUS
- help
- Sharp Zaurus RTC.
-
-config ADK_WALDUX_KERNEL_RTC_DRV_AT91SAM9
- bool "RTC support for AT91SAM9 (Fox G20)"
- select ADK_WALDUX_KERNEL_RTC_CLASS
- select ADK_WALDUX_KERNEL_RTC_HCTOSYS
- select ADK_WALDUX_KERNEL_RTC_INTF_DEV
- default y if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- default n
- depends on ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- help
- Fox G20 RTC support.
-
-config ADK_WALDUX_KERNEL_RTC_DRV_CMOS
- bool "RTC support for PC CMOS"
- select ADK_WALDUX_KERNEL_RTC_CLASS
- select ADK_WALDUX_KERNEL_RTC_HCTOSYS
- select ADK_WALDUX_KERNEL_RTC_INTF_DEV
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default y if ADK_TARGET_MODEL_PCENGINES_ALIX1C
- default y if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default n
- depends on (ADK_TARGET_MODEL_PCENGINES_ALIX1C || ADK_TARGET_SYSTEM_IBM_X40 || ADK_TARGET_SYSTEM_LEMOTE_YEELONG || ADK_TARGET_SYSTEM_ASUS_P5BVM)
- help
- PC CMOS RTC support.
-
-endmenu
diff --git a/target/waldux/config/Config.in.sched b/target/waldux/config/Config.in.sched
deleted file mode 100644
index 3410040f5..000000000
--- a/target/waldux/config/Config.in.sched
+++ /dev/null
@@ -1,282 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "QoS and/or fair queueing"
-
-config ADK_WALDUX_KERNEL_NET_SCH_CSZ
- bool
-
-config ADK_WALDUX_KERNEL_NET_SCH_NETEM
- bool
-
-config ADK_WALDUX_KERNEL_NET_QOS
- bool
-
-config ADK_WALDUX_KERNEL_NET_ESTIMATOR
- bool
-
-config ADK_WALDUX_KERNEL_NET_SCHED
- bool
- help
- When the kernel has several packets to send out over a network
- device, it has to decide which ones to send first, which ones to
- delay, and which ones to drop. This is the job of the queueing
- disciplines, several different algorithms for how to do this
- "fairly" have been proposed.
-
- If you say N here, you will get the standard packet scheduler, which
- is a FIFO (first come, first served). If you say Y here, you will be
- able to choose from among several alternative algorithms which can
- then be attached to different network devices. This is useful for
- example if some of your network devices are real time devices that
- need a certain minimum data flow rate, or if you need to limit the
- maximum data flow rate for traffic which matches specified criteria.
- This code is considered to be experimental.
-
- To administer these schedulers, you'll need the user-level utilities
- from the package iproute2+tc at <ftp://ftp.tux.org/pub/net/ip-routing/>.
- That package also contains some documentation; for more, check out
- <http://linux-net.osdl.org/index.php/Iproute2>.
-
- This Quality of Service (QoS) support will enable you to use
- Differentiated Services (diffserv) and Resource Reservation Protocol
- (RSVP) on your Linux router if you also say Y to the corresponding
- classifiers below. Documentation and software is at
- <http://diffserv.sourceforge.net/>.
-
-comment "Queueing/Scheduling"
-
-config ADK_WALDUX_KERNEL_NET_SCH_CBQ
- tristate "Class Based Queueing (CBQ)"
- select ADK_WALDUX_KERNEL_NET_SCHED
- default n
- help
- Say Y here if you want to use the Class-Based Queueing (CBQ) packet
- scheduling algorithm. This algorithm classifies the waiting packets
- into a tree-like hierarchy of classes; the leaves of this tree are
- in turn scheduled by separate algorithms.
-
- See the top of <file:net/sched/sch_cbq.c> for more details.
-
- CBQ is a commonly used scheduler, so if you're unsure, you should
- say Y here. Then say Y to all the queueing algorithms below that you
- want to use as leaf disciplines.
-
-config ADK_WALDUX_KERNEL_NET_SCH_HTB
- tristate "Hierarchical Token Bucket (HTB)"
- select ADK_WALDUX_KERNEL_NET_SCHED
- default n
- help
- Say Y here if you want to use the Hierarchical Token Buckets (HTB)
- packet scheduling algorithm. See
- <http://luxik.cdi.cz/~devik/qos/htb/> for complete manual and
- in-depth articles.
-
- HTB is very similar to CBQ regarding its goals however is has
- different properties and different algorithm.
-
-config ADK_WALDUX_KERNEL_NET_SCH_HFSC
- tristate "Hierarchical Fair Service Curve (HFSC)"
- select ADK_WALDUX_KERNEL_NET_SCHED
- default n
- help
- Say Y here if you want to use the Hierarchical Fair Service Curve
- (HFSC) packet scheduling algorithm.
-
-config ADK_WALDUX_KERNEL_NET_SCH_ATM
- tristate "ATM Virtual Circuits (ATM)"
- depends on ADK_WALDUX_KERNEL_ATM
- select ADK_WALDUX_KERNEL_NET_SCHED
- default n
- help
- Say Y here if you want to use the ATM pseudo-scheduler. This
- provides a framework for invoking classifiers, which in turn
- select classes of this queuing discipline. Each class maps
- the flow(s) it is handling to a given virtual circuit.
-
- See the top of <file:net/sched/sch_atm.c>) for more details.
-
-config ADK_WALDUX_KERNEL_NET_SCH_PRIO
- tristate "Multi Band Priority Queueing (PRIO)"
- select ADK_WALDUX_KERNEL_NET_SCHED
- default n
- help
- Say Y here if you want to use an n-band priority queue packet
- scheduler.
-
-config ADK_WALDUX_KERNEL_NET_SCH_RED
- tristate "Random Early Detection (RED)"
- select ADK_WALDUX_KERNEL_NET_SCHED
- default n
- help
- Say Y here if you want to use the Random Early Detection (RED)
- packet scheduling algorithm.
-
- See the top of <file:net/sched/sch_red.c> for more details.
-
-config ADK_WALDUX_KERNEL_NET_SCH_SFQ
- tristate "Stochastic Fairness Queueing (SFQ)"
- select ADK_WALDUX_KERNEL_NET_SCHED
- default n
- help
- Say Y here if you want to use the Stochastic Fairness Queueing (SFQ)
- packet scheduling algorithm .
-
- See the top of <file:net/sched/sch_sfq.c> for more details.
-
-config ADK_WALDUX_KERNEL_NET_SCH_TBF
- tristate "Token Bucket Filter (TBF)"
- select ADK_WALDUX_KERNEL_NET_SCHED
- default n
- help
- Say Y here if you want to use the Token Bucket Filter (TBF) packet
- scheduling algorithm.
-
- See the top of <file:net/sched/sch_tbf.c> for more details.
-
-config ADK_WALDUX_KERNEL_NET_SCH_GRED
- tristate "Generic Random Early Detection (GRED)"
- select ADK_WALDUX_KERNEL_NET_SCHED
- default n
- help
- Say Y here if you want to use the Generic Random Early Detection
- (GRED) packet scheduling algorithm for some of your network devices
- (see the top of <file:net/sched/sch_red.c> for details and
- references about the algorithm).
-
-config ADK_WALDUX_KERNEL_NET_SCH_DSMARK
- tristate "Differentiated Services marker (DSMARK)"
- select ADK_WALDUX_KERNEL_NET_SCHED
- default n
- help
- Say Y if you want to schedule packets according to the
- Differentiated Services architecture proposed in RFC 2475.
- Technical information on this method, with pointers to associated
- RFCs, is available at <http://www.gta.ufrj.br/diffserv/>.
-
-config ADK_WALDUX_KERNEL_NET_SCH_INGRESS
- tristate "Ingress Qdisc"
- select ADK_WALDUX_KERNEL_NET_SCHED
- select ADK_WALDUX_KERNEL_NETFILTER
- select ADK_WALDUX_KERNEL_NET_CLS_ACT
- default n
- help
- Say Y here if you want to use classifiers for incoming packets.
- If unsure, say Y.
-
-comment "Classification"
-
-config ADK_WALDUX_KERNEL_NET_CLS
- bool
- select ADK_WALDUX_KERNEL_NET_SCHED
- default n
-
-config ADK_WALDUX_KERNEL_NET_CLS_BASIC
- tristate "Elementary classification (BASIC)"
- select ADK_WALDUX_KERNEL_NET_CLS
- default n
- help
- Say Y here if you want to be able to classify packets using
- only extended matches and actions.
-
-config ADK_WALDUX_KERNEL_NET_CLS_TCINDEX
- tristate "Traffic-Control Index (TCINDEX)"
- select ADK_WALDUX_KERNEL_NET_CLS
- default n
- help
- Say Y here if you want to be able to classify packets based on
- traffic control indices. You will want this feature if you want
- to implement Differentiated Services together with DSMARK.
-
-config ADK_WALDUX_KERNEL_NET_CLS_ROUTE4
- tristate "Routing decision (ROUTE)"
- select ADK_WALDUX_KERNEL_NET_CLS
- default n
- help
- If you say Y here, you will be able to classify packets
- according to the route table entry they matched.
-
-config ADK_WALDUX_KERNEL_NET_CLS_FW
- tristate "Netfilter mark (FW)"
- select ADK_WALDUX_KERNEL_NET_CLS
- default n
- help
- If you say Y here, you will be able to classify packets
- according to netfilter/firewall marks.
-
-config ADK_WALDUX_KERNEL_NET_CLS_U32
- tristate "Universal 32bit comparisons w/ hashing (U32)"
- select ADK_WALDUX_KERNEL_NET_CLS
- default n
- help
- Say Y here to be able to classify packets using a universal
- 32bit pieces based comparison scheme.
-
-config ADK_WALDUX_KERNEL_NET_CLS_U32_PERF
- bool "Performance counters support"
- select ADK_WALDUX_KERNEL_NET_CLS
- depends on ADK_WALDUX_KERNEL_NET_CLS_U32
- default n
- help
- Say Y here to make u32 gather additional statistics useful for
- fine tuning u32 classifiers.
-
-config ADK_WALDUX_KERNEL_NET_CLS_U32_MARK
- bool "Netfilter marks support"
- select ADK_WALDUX_KERNEL_NET_CLS
- depends on ADK_WALDUX_KERNEL_NET_CLS_U32
- depends on ADK_WALDUX_KERNEL_NET_CLS_FW
- default n
- help
- Say Y here to be able to use netfilter marks as u32 key.
-
-comment "Actions"
-
-config ADK_WALDUX_KERNEL_NET_CLS_ACT
- bool
- select ADK_WALDUX_KERNEL_NET_SCHED
- select ADK_WALDUX_KERNEL_NET_ESTIMATOR
- default n
-
-config ADK_WALDUX_KERNEL_NET_ACT_POLICE
- tristate "Traffic Policing"
- select ADK_WALDUX_KERNEL_NET_CLS_ACT
- default n
- help
- Say Y here if you want to do traffic policing, i.e. strict
- bandwidth limiting. This action replaces the existing policing
- module.
-
-config ADK_WALDUX_KERNEL_NET_ACT_GACT
- tristate "Generic actions"
- select ADK_WALDUX_KERNEL_NET_CLS_ACT
- default n
- help
- Say Y here to take generic actions such as dropping and
- accepting packets.
-
-config ADK_WALDUX_KERNEL_NET_ACT_MIRRED
- tristate "Redirecting and Mirroring"
- select ADK_WALDUX_KERNEL_NET_CLS_ACT
- default n
- help
- Say Y here to allow packets to be mirrored or redirected to
- other devices.
-
-config ADK_WALDUX_KERNEL_NET_ACT_IPT
- tristate "IPtables targets"
- select ADK_WALDUX_KERNEL_NET_CLS_ACT
- select ADK_WALDUX_KERNEL_IP_NF_IPTABLES
- default n
- help
- Say Y here to be able to invoke iptables targets after successful
- classification.
-
-config ADK_WALDUX_KERNEL_NET_ACT_PEDIT
- tristate "Packet Editing"
- select ADK_WALDUX_KERNEL_NET_CLS_ACT
- default n
- help
- Say Y here if you want to mangle the content of packets.
-
-endmenu
diff --git a/target/waldux/config/Config.in.serial b/target/waldux/config/Config.in.serial
deleted file mode 100644
index 8534a19be..000000000
--- a/target/waldux/config/Config.in.serial
+++ /dev/null
@@ -1,334 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Serial devices support"
-depends on ADK_TARGET_WITH_SERIAL || ADK_TARGET_QEMU || ADK_TARGET_VBOX || ADK_TARGET_SIM || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_SERIAL_8250_DMA
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_8250_DW
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_8250_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_8250_PNP
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_ARC_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_XILINX_PS_UART_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_IMX_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_OF_PLATFORM
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_OMAP_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_UARTLITE_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_ETRAXFS_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_MCF_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_PMACZILOG_TTYS
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_PMACZILOG_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_SH_SCI_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_AMBA_PL011_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_SUNCORE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_SUNSU_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_DA_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_IP22_ZILOG_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_BFIN_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_BFIN_UART0
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_BFIN_UART1
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_8250_INGENIC
- bool
-
-config ADK_WALDUX_KERNEL_SERIAL_BFIN
- bool "BFIN serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_BFIN_CONSOLE
- select ADK_WALDUX_KERNEL_SERIAL_BFIN_UART0
- select ADK_WALDUX_KERNEL_SERIAL_BFIN_UART1
- depends on ADK_TARGET_ARCH_BFIN
- default y if ADK_TARGET_ARCH_BFIN
-
-config ADK_WALDUX_KERNEL_SERIAL_8250
- bool "8250 serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_8250_CONSOLE
- select ADK_WALDUX_KERNEL_SERIAL_OF_PLATFORM if ADK_TARGET_SYSTEM_XILINX_KINTEX7 \
- || ADK_TARGET_SYSTEM_IMGTEC_CI20 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 \
- || ADK_TARGET_SYSTEM_QEMU_XTENSA \
- || ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \
- || ADK_TARGET_SYSTEM_QEMU_NIOS2 \
- || ADK_TARGET_SYSTEM_QEMU_OR1K \
- || ADK_TARGET_SYSTEM_ANDES_AG101P \
- || ADK_TARGET_SYSTEM_ORANGE_PI0 \
- || ADK_TARGET_SYSTEM_SOM_C6745
- select ADK_WALDUX_KERNEL_SERIAL_8250_PNP if ADK_TARGET_SYSTEM_PCENGINES_APU
- select ADK_WALDUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
- select ADK_WALDUX_KERNEL_SERIAL_8250_DW if ADK_TARGET_SYSTEM_ORANGE_PI0
- select ADK_WALDUX_KERNEL_SERIAL_8250_DMA if ADK_TARGET_SYSTEM_ORANGE_PI0
- select ADK_WALDUX_KERNEL_SERIAL_8250_INGENIC if ADK_TARGET_SYSTEM_IMGTEC_CI20
- depends on ADK_TARGET_SYSTEM_XILINX_KINTEX7 \
- || ADK_TARGET_SYSTEM_IMGTEC_CI20 \
- || ADK_TARGET_SYSTEM_LINKSYS_NSLU2 \
- || ADK_TARGET_SYSTEM_ANDES_AG101P \
- || ADK_TARGET_SYSTEM_PCENGINES_APU \
- || ADK_TARGET_SYSTEM_PCENGINES_ALIX \
- || ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605 \
- || ADK_TARGET_SYSTEM_QEMU_MIPS \
- || ADK_TARGET_SYSTEM_QEMU_MIPS64 \
- || ADK_TARGET_SYSTEM_SGI_O2 \
- || ADK_TARGET_SYSTEM_QEMU_ALPHA \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK610 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK807 \
- || ADK_TARGET_SYSTEM_QEMU_CSKY_CK810 \
- || ADK_TARGET_SYSTEM_QEMU_HPPA \
- || ADK_TARGET_SYSTEM_QEMU_NIOS2 \
- || ADK_TARGET_SYSTEM_QEMU_OR1K \
- || ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO \
- || ADK_TARGET_SYSTEM_QEMU_PPC_MPC8544DS \
- || ADK_TARGET_SYSTEM_QEMU_X86 \
- || ADK_TARGET_SYSTEM_QEMU_X86_64 \
- || ADK_TARGET_SYSTEM_QEMU_XTENSA \
- || ADK_TARGET_SYSTEM_IBM_X40 \
- || ADK_TARGET_SYSTEM_GENERIC_NDS32 \
- || ADK_TARGET_SYSTEM_GENERIC_X86 \
- || ADK_TARGET_SYSTEM_GENERIC_X86_64 \
- || ADK_TARGET_SYSTEM_MIKROTIK_RB532 \
- || ADK_TARGET_SYSTEM_MIKROTIK_RB4XX \
- || ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG \
- || ADK_TARGET_SYSTEM_ORANGE_PI0 \
- || ADK_TARGET_SYSTEM_DEC_MULTIA \
- || ADK_TARGET_SYSTEM_SOM_C6745
- default y if ADK_TARGET_SYSTEM_XILINX_KINTEX7
- default y if ADK_TARGET_SYSTEM_IMGTEC_CI20
- default y if ADK_TARGET_SYSTEM_LINKSYS_NSLU2
- default y if ADK_TARGET_SYSTEM_ANDES_AG101P
- default y if ADK_TARGET_SYSTEM_PCENGINES_APU
- default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_ML605
- default y if ADK_TARGET_SYSTEM_QEMU_MIPS
- default y if ADK_TARGET_SYSTEM_QEMU_MIPS64
- default y if ADK_TARGET_SYSTEM_SGI_O2
- default y if ADK_TARGET_SYSTEM_QEMU_ALPHA
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK610
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK807
- default y if ADK_TARGET_SYSTEM_QEMU_CSKY_CK810
- default y if ADK_TARGET_SYSTEM_QEMU_HPPA
- default y if ADK_TARGET_SYSTEM_QEMU_NIOS2
- default y if ADK_TARGET_SYSTEM_QEMU_OR1K
- default y if ADK_TARGET_SYSTEM_QEMU_PPC_BAMBOO
- default y if ADK_TARGET_SYSTEM_QEMU_PPC_MPC8544DS
- default y if ADK_TARGET_SYSTEM_QEMU_X86
- default y if ADK_TARGET_SYSTEM_QEMU_X86_64
- default y if ADK_TARGET_SYSTEM_QEMU_XTENSA
- default y if ADK_TARGET_SYSTEM_IBM_X40
- default y if ADK_TARGET_SYSTEM_GENERIC_NDS32
- default y if ADK_TARGET_SYSTEM_GENERIC_X86
- default y if ADK_TARGET_SYSTEM_GENERIC_X86_64
- default y if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default y if ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
- default y if ADK_TARGET_SYSTEM_ORANGE_PI0
- default y if ADK_TARGET_SYSTEM_SOM_C6745
- default y if ADK_TARGET_SYSTEM_DEC_MULTIA
- default n
- help
- Serial driver for 8250 UART chip.
-
-config ADK_WALDUX_KERNEL_DA_TTY
- bool "METAG serial driver"
- select ADK_WALDUX_KERNEL_DA_CONSOLE
- depends on ADK_TARGET_SYSTEM_QEMU_METAG
- default y if ADK_TARGET_SYSTEM_QEMU_METAG
- default n
- help
- Serial driver for Qemu METAG Emulation.
-
-config ADK_WALDUX_KERNEL_SERIAL_SUNSU
- bool "Sun Sparc64 serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_SUNSU_CONSOLE
- select ADK_WALDUX_KERNEL_SERIAL_SUNCORE
- depends on ADK_TARGET_SYSTEM_QEMU_SPARC64
- default y if ADK_TARGET_SYSTEM_QEMU_SPARC64
- default n
- help
- Serial driver for Sun SPARC64.
-
-config ADK_WALDUX_KERNEL_SERIAL_ETRAXFS
- bool "ETRAXFS serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_ETRAXFS_CONSOLE
- depends on ADK_TARGET_SYSTEM_QEMU_CRIS
- default y if ADK_TARGET_SYSTEM_QEMU_CRIS
- default n
- help
- Serial driver for ETRAXFS CRISv32 Qemu Emulation.
-
-config ADK_WALDUX_KERNEL_SERIAL_ARC
- bool "ARC serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_ARC_CONSOLE
- depends on ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
- default y if ADK_TARGET_SYSTEM_SYNOPSYS_NSIM
- default n
- help
- Serial driver for nSIM ARC simulator.
-
-config ADK_WALDUX_KERNEL_SERIAL_XILINX_PS_UART
- bool "Cadence serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_XILINX_PS_UART_CONSOLE
- depends on ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_XILINX_ZYNQ
- default n
- help
- Serial driver for Xilinx Zynq.
-
-config ADK_WALDUX_KERNEL_SERIAL_IMX
- bool "IMX serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_IMX_CONSOLE
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
- help
- Serial driver for IMX6 chip.
-
-config ADK_WALDUX_KERNEL_SERIAL_AMBA_PL011
- bool "AMBA PL011 serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_AMBA_PL011_CONSOLE
- select ADK_WALDUX_KERNEL_SERIAL_OF_PLATFORM
- select ADK_WALDUX_KERNEL_SERIAL_8250
- select ADK_WALDUX_KERNEL_SERIAL_8250_CONSOLE
- depends on ADK_TARGET_BOARD_BCM28XX \
- || ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE \
- || ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB \
- || ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI2
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_REALVIEW_EB_MPCORE
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_VERSATILEPB
- default y if ADK_TARGET_SYSTEM_QEMU_ARM_VEXPRESS_A9
- default n
- help
- Serial driver for AMBA PL011 chip.
-
-config ADK_WALDUX_KERNEL_SERIAL_SH_SCI
- bool "sci serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_SH_SCI_CONSOLE
- depends on ADK_TARGET_SYSTEM_SIM_H8300H \
- || ADK_TARGET_SYSTEM_SIM_H8S \
- || ADK_TARGET_SYSTEM_HITACHI_EDOSK2674
- default y if ADK_TARGET_SYSTEM_SIM_H8300H
- default y if ADK_TARGET_SYSTEM_SIM_H8S
- default y if ADK_TARGET_SYSTEM_HITACHI_EDOSK2674
- default n
- help
- Serial driver for SCI chip.
-
-config ADK_WALDUX_KERNEL_SERIAL_MCF
- bool "coldfire serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_MCF_CONSOLE
- depends on ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208
- default y if ADK_TARGET_SYSTEM_QEMU_M68K_MCF5208
- default n
- help
- Serial driver for Qemu coldfire.
-
-config ADK_WALDUX_KERNEL_SERIAL_PMACZILOG
- bool "pmac serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_PMACZILOG_TTYS
- select ADK_WALDUX_KERNEL_SERIAL_PMACZILOG_CONSOLE
- depends on ADK_TARGET_SYSTEM_QEMU_M68K_Q800 \
- || ADK_TARGET_SYSTEM_QEMU_PPC_MACPPC
- default y if ADK_TARGET_SYSTEM_QEMU_M68K_Q800
- default y if ADK_TARGET_SYSTEM_QEMU_PPC_MACPPC
- default n
- help
- Serial driver for PMAC Q800 M68K and MACPPC.
-
-config ADK_WALDUX_KERNEL_SERIAL_OMAP
- bool "omap serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_8250
- select ADK_WALDUX_KERNEL_SERIAL_8250_CONSOLE
- select ADK_WALDUX_KERNEL_SERIAL_OMAP_CONSOLE
- depends on ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK \
- || ADK_TARGET_SYSTEM_PHYTEC_WEGA
- default y if ADK_TARGET_SYSTEM_BEAGLEBONE_BLACK
- default y if ADK_TARGET_SYSTEM_PHYTEC_WEGA
- default n
- help
- Serial driver for TI OMAP Boards.
-
-config ADK_WALDUX_KERNEL_SERIAL_UARTLITE
- bool "uartlite serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_UARTLITE_CONSOLE
- depends on ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800 \
- || ADK_TARGET_SYSTEM_NUMATO_MIMASV2
- default y if ADK_TARGET_SYSTEM_QEMU_MICROBLAZE_S3ADSP1800
- default y if ADK_TARGET_SYSTEM_NUMATO_MIMASV2
- default n
- help
- Serial driver for UART lite hardware.
-
-config ADK_WALDUX_KERNEL_SERIAL_IP22_ZILOG
- bool "SGI IP22 (Indy) serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_IP22_ZILOG_CONSOLE
- depends on ADK_TARGET_SYSTEM_SGI_INDY
- default y if ADK_TARGET_SYSTEM_SGI_INDY
- default n
- help
- Serial driver for SGI Indy.
-
-config ADK_WALDUX_KERNEL_SERIAL_ATMEL
- bool "AT32 serial driver"
- select ADK_WALDUX_KERNEL_SERIAL_ATMEL_CONSOLE
- select ADK_WALDUX_KERNEL_SERIAL_ATMEL_PDC
- select ADK_WALDUX_KERNEL_BOARD_GRASSHOPPER_USART1 if ADK_TARGET_SYSTEM_GRASSHOPPER
- depends on ADK_TARGET_CPU_AVR32
- default y if ADK_TARGET_SYSTEM_GRASSHOPPER
- default n
- help
- Serial driver for AVR32 Grasshopper boards
-
-config ADK_WALDUX_KERNEL_BOARD_GRASSHOPPER_USART0
- bool "Enable USART0 on AVR32 Grasshopper boards"
- depends on ADK_WALDUX_KERNEL_SERIAL_ATMEL && ADK_TARGET_SYSTEM_GRASSHOPPER
- default n
- help
- Enable second USART on Grasshoper boards
-
-endmenu
diff --git a/target/waldux/config/Config.in.spi b/target/waldux/config/Config.in.spi
deleted file mode 100644
index f82138b18..000000000
--- a/target/waldux/config/Config.in.spi
+++ /dev/null
@@ -1,83 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "SPI driver support"
-depends on ADK_TARGET_WITH_SPI || ADK_TARGET_QEMU
-
-config ADK_WALDUX_KERNEL_SPI
- bool
-
-config ADK_WALDUX_KERNEL_SPI_DEBUG
- bool
-
-config ADK_WALDUX_KERNEL_SPI_MASTER
- bool
-
-config ADK_WALDUX_KERNEL_SPI_BITBANG
- tristate
-
-config ADK_WALDUX_KERNEL_SPI_RB4XX_CPLD
- tristate
-
-config ADK_WALDUX_KERNEL_SPI_AR71XX
- tristate
-
-config ADK_WALDUX_KERNEL_SPI_PXA2XX
- tristate
- select ADK_WALDUX_KERNEL_SPI
-
-config ADK_WALDUX_KERNEL_SPI_BCM2835
- tristate "SPI driver for BCM28XX boards"
- select ADK_WALDUX_KERNEL_SPI
- select ADK_WALDUX_KERNEL_SPI_MASTER
- select ADK_WALDUX_KERNEL_SPI_BITBANG
- select ADK_WALDUX_KERNEL_REGMAP
- select ADK_WALDUX_KERNEL_REGMAP_SPI
- depends on ADK_TARGET_BOARD_BCM28XX
- default m if ADK_TARGET_BOARD_BCM28XX
- default n
-
-config ADK_WALDUX_KERNEL_SPI_IMX
- tristate "SPI driver for Solidrun IMX6"
- select ADK_WALDUX_KERNEL_SPI
- select ADK_WALDUX_KERNEL_SPI_MASTER
- select ADK_WALDUX_KERNEL_SPI_BITBANG
- select ADK_WALDUX_KERNEL_REGMAP
- select ADK_WALDUX_KERNEL_REGMAP_SPI
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-config ADK_WALDUX_KERNEL_SPI_RB4XX
- tristate "SPI driver for Routerboard 4xx"
- select ADK_WALDUX_KERNEL_SPI
- select ADK_WALDUX_KERNEL_SPI_MASTER
- select ADK_WALDUX_KERNEL_SPI_BITBANG
- select ADK_WALDUX_KERNEL_SPI_RB4XX_CPLD
- select ADK_WALDUX_KERNEL_SPI_AR71XX
- depends on ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
- default y if ADK_TARGET_SYSTEM_MIKROTIK_RB4XX
- default n
-
-config ADK_WALDUX_KERNEL_SPI_SUN6I
- tristate "SPI driver for SunXi"
- select ADK_WALDUX_KERNEL_SPI
- select ADK_WALDUX_KERNEL_SPI_MASTER
- select ADK_WALDUX_KERNEL_SPI_BITBANG
- select ADK_WALDUX_KERNEL_REGMAP
- select ADK_WALDUX_KERNEL_REGMAP_SPI
- depends on ADK_TARGET_SYSTEM_ORANGE_PI0
- default y if ADK_TARGET_SYSTEM_ORANGE_PI0
- default n
-
-config ADK_WALDUX_KERNEL_SPI_SPIDEV
- tristate "SPI userland driver"
- select ADK_WALDUX_KERNEL_SPI
- select ADK_WALDUX_KERNEL_SPI_MASTER
-
-config ADK_WALDUX_KERNEL_SPI_GPIO
- tristate "SPI GPIO support"
- select ADK_WALDUX_KERNEL_SPI
- select ADK_WALDUX_KERNEL_SPI_MASTER
-
-endmenu
diff --git a/target/waldux/config/Config.in.thermal b/target/waldux/config/Config.in.thermal
deleted file mode 100644
index 1fd6bfcfc..000000000
--- a/target/waldux/config/Config.in.thermal
+++ /dev/null
@@ -1,26 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Thermal driver support"
-
-config ADK_WALDUX_KERNEL_THERMAL
- bool
-
-config ADK_WALDUX_KERNEL_CPU_THERMAL
- bool
-
-config ADK_WALDUX_KERNEL_THERMAL_OF
- bool
-
-config ADK_WALDUX_KERNEL_IMX_THERMAL
- bool "Temperature sensor driver for Freescale i.MX SoCs"
- select ADK_WALDUX_KERNEL_THERMAL
- select ADK_WALDUX_KERNEL_CPU_THERMAL
- select ADK_WALDUX_KERNEL_MFD_SYSCON
- select ADK_WALDUX_KERNEL_OF
- select ADK_WALDUX_KERNEL_THERMAL_OF
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-endmenu
diff --git a/target/waldux/config/Config.in.usb b/target/waldux/config/Config.in.usb
deleted file mode 100644
index 04d4e7756..000000000
--- a/target/waldux/config/Config.in.usb
+++ /dev/null
@@ -1,378 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "USB support"
-depends on ADK_TARGET_WITH_USB \
- || ADK_TARGET_SYSTEM_QEMU_X86_64 \
- || ADK_TARGET_SYSTEM_QEMU_X86 \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_USB_SUPPORT
- bool
-
-config ADK_WALDUX_KERNEL_USB_DEVICE_CLASS
- bool
-
-config ADK_WALDUX_KERNEL_USB_ANNOUNCE_NEW_DEVICES
- bool
-
-config ADK_WALDUX_KERNEL_USB_EHCI_ROOT_HUB_TT
- bool
-
-config ADK_WALDUX_KERNEL_USB_EHCI_TT_NEWSCHED
- bool
-
-config ADK_WALDUX_KERNEL_USB_EHCI_MXC
- bool
-
-config ADK_WALDUX_KERNEL_USB_GADGET
- tristate
-
-config ADK_WALDUX_KERNEL_USB_PHY
- bool
-
-config ADK_WALDUX_KERNEL_USB_MXS_PHY
- tristate
- select ADK_WALDUX_KERNEL_USB_PHY
- default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-config ADK_WALDUX_KERNEL_USB_OHCI_HCD_PLATFORM
- bool
- select ADK_WALDUX_KERNEL_USB_OHCI_HCD
-
-config ADK_WALDUX_KERNEL_USB_OHCI_HCD_PCI
- bool
-
-config ADK_WALDUX_KERNEL_USB_LIBUSUAL
- tristate
-
-config ADK_WALDUX_KERNEL_USB_NET_DRIVERS
- bool
-
-config ADK_WALDUX_KERNEL_USB_USBNET
- select ADK_WALDUX_KERNEL_USB_NET_DRIVERS
- tristate
-
-config ADK_WALDUX_KERNEL_USB
- tristate "USB support"
- select ADK_WALDUX_KERNEL_NLS
- select ADK_WALDUX_KERNEL_USB_SUPPORT
- select ADK_WALDUX_KERNEL_USB_ANNOUNCE_NEW_DEVICES
- default m if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default m if ADK_TARGET_SYSTEM_PCENGINES_APU
- default m if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default m if ADK_TARGET_SYSTEM_IBM_X40
- default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default m if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_KINETIS_K70
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
- default n
- help
- Universal Serial Bus (USB) is a specification for a serial bus
- subsystem which offers higher speeds and more features than the
- traditional PC serial port. The bus supplies power to peripherals
- and allows for hot swapping. Up to 127 USB peripherals can be
- connected to a single USB host in a tree structure.
-
- The USB host is the root of the tree, the peripherals are the
- leaves and the inner nodes are special USB devices called hubs.
- Most PCs now have USB host ports, used to connect peripherals
- such as scanners, keyboards, mice, modems, cameras, disks,
- flash memory, network links, and printers to the PC.
-
- Say Y here if your computer has a host-side USB port and you want
- to use USB devices. You then need to say Y to at least one of the
- Host Controller Driver (HCD) options below. Choose a USB 1.1
- controller, such as "UHCI HCD support" or "OHCI HCD support",
- and "EHCI HCD (USB 2.0) support" except for older systems that
- do not have USB 2.0 support. It doesn't normally hurt to select
- them all if you are not certain.
-
- If your system has a device-side USB port, used in the peripheral
- side of the USB protocol, see the "USB Gadget" framework instead.
-
- After choosing your HCD, then select drivers for the USB peripherals
- you'll be using. You may want to check out the information provided
- in <file:Documentation/usb/> and especially the links given in
- <file:Documentation/usb/usb-help.txt>.
-
-menu "USB controller support"
-
-config ADK_WALDUX_KERNEL_USB_EHCI_HCD
- tristate "Support for USB EHCI 2.0 controllers"
- select ADK_WALDUX_KERNEL_USB_MXS_PHY if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- select ADK_WALDUX_KERNEL_USB_EHCI_MXC if ADK_TARGET_SYSTEM_KINETIS_K70
- select ADK_WALDUX_KERNEL_USB_DEVICE_CLASS if ADK_TARGET_SYSTEM_KINETIS_K70
- depends on !ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- depends on !ADK_TARGET_BOARD_BCM28XX
- depends on ADK_WALDUX_KERNEL_USB
- default m if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default m if ADK_TARGET_SYSTEM_PCENGINES_APU
- default m if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default m if ADK_TARGET_SYSTEM_IBM_X40
- default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_KINETIS_K70
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_CLEARFOG
- default n
- help
- The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
- "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
- If your USB host controller supports USB 2.0, you will likely want to
- configure this Host Controller Driver. At the time of this writing,
- the primary implementation of EHCI is a chip from NEC, widely available
- in add-on PCI cards, but implementations are in the works from other
- vendors including Intel and Philips. Motherboard support is appearing.
-
- EHCI controllers are packaged with "companion" host controllers (OHCI
- or UHCI) to handle USB 1.1 devices connected to root hub ports. Ports
- will connect to EHCI if the device is high speed, otherwise they
- connect to a companion controller. If you configure EHCI, you should
- probably configure the OHCI (for NEC and some other vendors) USB Host
- Controller Driver or UHCI (for Via motherboards) Host Controller
- Driver too.
-
- You may want to read <file:Documentation/usb/ehci.txt>.
-
-config ADK_WALDUX_KERNEL_USB_UHCI_HCD
- tristate "Support for UHCI controllers"
- depends on ADK_WALDUX_KERNEL_USB
- depends on !ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- depends on !ADK_TARGET_BOARD_BCM28XX
- default m if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default m if ADK_TARGET_SYSTEM_PCENGINES_APU
- default m if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default m if ADK_TARGET_SYSTEM_IBM_X40
- default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default n
- help
- The Universal Host Controller Interface is a standard by Intel for
- accessing the USB hardware in the PC (which is also called the USB
- host controller). If your USB host controller conforms to this
- standard, you may want to say Y, but see below. All recent boards
- with Intel PCI chipsets (like intel 430TX, 440FX, 440LX, 440BX,
- i810, i820) conform to this standard. Also all VIA PCI chipsets
- (like VIA VP2, VP3, MVP3, Apollo Pro, Apollo Pro II or Apollo Pro
- 133). If unsure, say Y.
-
-config ADK_WALDUX_KERNEL_USB_OHCI_HCD
- tristate "Support for OHCI controllers"
- depends on ADK_WALDUX_KERNEL_USB
- depends on !ADK_TARGET_BOARD_BCM28XX
- select ADK_WALDUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- select ADK_WALDUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_PCENGINES_APU
- select ADK_WALDUX_KERNEL_USB_OHCI_HCD_PCI if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default m if ADK_TARGET_SYSTEM_ASUS_P5BVM
- default m if ADK_TARGET_SYSTEM_PCENGINES_APU
- default m if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default m if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
- default n
- help
- The Open Host Controller Interface (OHCI) is a standard for accessing
- USB 1.1 host controller hardware. It does more in hardware than Intel's
- UHCI specification. If your USB host controller follows the OHCI spec,
- say Y. On most non-x86 systems, and on x86 hardware that's not using a
- USB controller from Intel or VIA, this is appropriate. If your host
- controller doesn't use PCI, this is probably appropriate. For a PCI
- based system where you're not sure, the "lspci -v" entry will list the
- right "prog-if" for your USB controller(s): EHCI, OHCI, or UHCI.
-
-config ADK_WALDUX_KERNEL_USB_DWCOTG
- bool "Support for DWCOTG controller"
- select ADK_WALDUX_KERNEL_USB
- select ADK_WALDUX_KERNEL_FIQ
- depends on ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_BOARD_BCM28XX
- default n
- help
- The Synopsis DWC controller is a dual-role
- host/peripheral/OTG ("On The Go") USB controllers.
-
-config ADK_WALDUX_KERNEL_USB_CHIPIDEA_UDC
- bool
-
-config ADK_WALDUX_KERNEL_USB_CHIPIDEA_HOST
- bool
-
-config ADK_WALDUX_KERNEL_USB_CHIPIDEA
- tristate "Support for ChipIdea controller"
- select ADK_WALDUX_KERNEL_USB_CHIPIDEA_UDC
- select ADK_WALDUX_KERNEL_USB_CHIPIDEA_HOST
- select ADK_WALDUX_KERNEL_USB_GADGET
- depends on ADK_WALDUX_KERNEL_USB_EHCI_HCD
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
-
-config ADK_WALDUX_KERNEL_USB_ISP116X_HCD
- tristate "Support for ISP116X"
- depends on ADK_WALDUX_KERNEL_USB
- depends on !ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- depends on !ADK_TARGET_BOARD_BCM28XX
- help
- The ISP1160 and ISP1161 chips are USB host controllers. Enable this
- option if your board has this chip. If unsure, say N.
-
- This driver does not support isochronous transfers.
-
-config ADK_WALDUX_KERNEL_USB_SL811_HCD
- tristate "Support for SL811HS"
- depends on ADK_WALDUX_KERNEL_USB
- depends on !ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- depends on !ADK_TARGET_BOARD_BCM28XX
- default n
- help
- The SL811HS is a single-port USB controller that supports either
- host side or peripheral side roles. Enable this option if your
- board has this chip, and you want to use it as a host controller.
- If unsure, say N.
-
-endmenu
-
-menu "USB devices support"
-
-config ADK_WALDUX_KERNEL_USB_STORAGE
- tristate "Support for USB storage devices"
- select ADK_WALDUX_KERNEL_SCSI
- select ADK_WALDUX_KERNEL_BLK_DEV_SD
-
-config ADK_WALDUX_KERNEL_SND_USB_AUDIO
- tristate "Support for USB sound adapter"
- select ADK_WALDUX_KERNEL_SND
- select ADK_WALDUX_KERNEL_SND_USB
- select ADK_WALDUX_KERNEL_SND_RAWMIDI
-
-config ADK_WALDUX_KERNEL_USB_HSO
- tristate "Support for USB HSO devices"
- select ADK_WALDUX_KERNEL_RFKILL
- select ADK_WALDUX_KERNEL_USB_STORAGE
-
-config ADK_WALDUX_KERNEL_USB_PRINTER
- tristate "Support for USB printers"
-
-config ADK_WALDUX_KERNEL_USB_ACM
- tristate "Support for USB modems/isdn controllers"
-
-config ADK_WALDUX_KERNEL_USB_PEGASUS
- tristate "Support for USB Pegasus network cards"
- select ADK_WALDUX_KERNEL_USB_NET_DRIVERS
-
-config ADK_WALDUX_KERNEL_USB_SERIAL
- tristate "Support for USB-to-serial converters"
- help
- Say Y here if you have a USB device that provides normal serial
- ports, or acts like a serial device, and you want to connect it to
- your USB bus.
-
- Please read <file:Documentation/usb/usb-serial.txt> for more
- information on the specifics of the different devices that are
- supported, and on how to use them.
-
-config ADK_WALDUX_KERNEL_USB_SERIAL_BELKIN
- tristate "Support for Belkin USB-to-serial converters"
- depends on ADK_WALDUX_KERNEL_USB_SERIAL
- help
- Say Y here if you want to use a Belkin USB Serial single port
- adaptor (F5U103 is one of the model numbers) or the Peracom single
- port USB to serial adapter.
-
-config ADK_WALDUX_KERNEL_USB_SERIAL_FTDI_SIO
- tristate "Support for FTDI USB-to-serial converter"
- depends on ADK_WALDUX_KERNEL_USB_SERIAL
- help
- Say Y here if you want to use a FTDI SIO single port USB to serial
- converter device. The implementation I have is called the USC-1000.
- This driver has also be tested with the 245 and 232 devices.
-
- See <http://ftdi-usb-sio.sourceforge.net/> for more
- information on this driver and the device.
-
-config ADK_WALDUX_KERNEL_USB_SERIAL_MCT_U232
- tristate "Support for Magic Control Technology USB-to-Serial converters"
- depends on ADK_WALDUX_KERNEL_USB_SERIAL
- help
- Say Y here if you want to use a USB Serial single port adapter from
- Magic Control Technology Corp. (U232 is one of the model numbers).
-
- This driver also works with Sitecom U232-P25 and D-Link DU-H3SP USB
- BAY, Belkin F5U109, and Belkin F5U409 devices.
-
-config ADK_WALDUX_KERNEL_USB_SERIAL_PL2303
- tristate "Support for Prolific PL2303 USB-to-Serial converters"
- depends on ADK_WALDUX_KERNEL_USB_SERIAL
- help
- Say Y here if you want to use the PL2303 USB Serial single port
- adapter from Prolific.
-
-config ADK_WALDUX_KERNEL_USB_SERIAL_VISOR
- tristate "Support for Handspring Visor / Palm m50x / Sony Clie Driver"
- depends on ADK_WALDUX_KERNEL_USB_SERIAL
- help
- Say Y here if you want to connect to your HandSpring Visor, Palm
- m500 or m505 through its USB docking station. See
- <http://usbvisor.sourceforge.net/> for more information on using this
- driver.
-
-config ADK_WALDUX_KERNEL_USB_SERIAL_SIERRAWIRELESS
- tristate "Support for Sierra Wireless USB-to-Serial converters"
- depends on ADK_WALDUX_KERNEL_USB_SERIAL
-
-config ADK_WALDUX_KERNEL_USB_SERIAL_OPTION
- tristate "USB driver for GSM and CDMA modems"
- depends on ADK_WALDUX_KERNEL_USB_SERIAL
- help
- Say Y here if you have a GSM or CDMA modem that's connected to USB.
-
-config ADK_WALDUX_KERNEL_USB_SERIAL_WWAN
- tristate
- depends on ADK_WALDUX_KERNEL_USB_SERIAL
-
-config ADK_WALDUX_KERNEL_USB_ATM
- tristate "Support for USB ATM devices"
-
-config ADK_WALDUX_KERNEL_USB_ATM_SPEEDTOUCH
- tristate "Support for USB Speedtouch ADSL modem"
- depends on ADK_WALDUX_KERNEL_USB_ATM
-
-config ADK_WALDUX_KERNEL_USB_SISUSBVGA
- tristate "USB 2.0 SVGA dongle support (Net2280/SiS315)"
-
-config ADK_WALDUX_KERNEL_USB_NET_QMI_WWAN
- tristate "Qualcomm LTE modems"
- select ADK_WALDUX_KERNEL_USB_USBNET
- help
-
-config ADK_WALDUX_KERNEL_USB_SIERRA_NET
- tristate "Sierra Wireless MC8775 PCI Express"
- select ADK_WALDUX_KERNEL_USB_USBNET
- help
- Driver for WWAN modem Sierra Wireless MC8775 PCI Express
-
-
-config ADK_WALDUX_KERNEL_SND_USB
- bool
- depends on ADK_WALDUX_KERNEL_USB
-
-config ADK_WALDUX_KERNEL_SND_USB_AUDIO
- tristate
-
-config ADK_WALDUX_KERNEL_USB_GADGET
- tristate
-
-config ADK_WALDUX_KERNEL_USB_AUDIO
- tristate
-
-config ADK_WALDUX_KERNEL_USB_MIDI_GADGET
- tristate "USB Midi Gadgets"
- select ADK_WALDUX_KERNEL_USB_GADGET
- select ADK_WALDUX_KERNEL_USB_AUDIO
- select ADK_WALDUX_KERNEL_SND_USB_AUDIO
- select ADK_WALDUX_KERNEL_SND_USB
- help
- Enable USB midi devices
-
-endmenu
-endmenu
diff --git a/target/waldux/config/Config.in.virtio b/target/waldux/config/Config.in.virtio
deleted file mode 100644
index 5cbd818e1..000000000
--- a/target/waldux/config/Config.in.virtio
+++ /dev/null
@@ -1,44 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Virtio driver support"
-depends on ADK_TARGET_WITH_VIRTIO || ADK_TARGET_QEMU
-
-config ADK_WALDUX_KERNEL_VIRTIO
- bool
-
-config ADK_WALDUX_KERNEL_VIRTIO_CONSOLE
- bool
-
-config ADK_WALDUX_KERNEL_VIRTIO_PCI_LEGACY
- bool
-
-config ADK_WALDUX_KERNEL_VIRTIO_PCI
- bool
-
-config ADK_WALDUX_KERNEL_VIRTIO_MMIO
- bool
-
-config ADK_WALDUX_KERNEL_VIRTIO_NET
- tristate "Virtio net driver"
- select ADK_WALDUX_KERNEL_VIRTIO
- select ADK_WALDUX_KERNEL_VIRTIO_MMIO
- select ADK_WALDUX_KERNEL_VIRTIO_PCI
- select ADK_WALDUX_KERNEL_VIRTIO_PCI_LEGACY
- default y if ADK_TARGET_SYSTEM_QEMU_S390
- default n
- help
- Enables support for Virtio Net driver.
-
-config ADK_WALDUX_KERNEL_VIRTIO_BLK
- tristate "Virtio block driver"
- select ADK_WALDUX_KERNEL_VIRTIO
- select ADK_WALDUX_KERNEL_VIRTIO_PCI
- select ADK_WALDUX_KERNEL_VIRTIO_PCI_LEGACY
- select ADK_WALDUX_KERNEL_VIRTIO_MMIO
- select ADK_WALDUX_KERNEL_BLK_DEV
- default n
- help
- Enables support for Virtio Block driver.
-
-endmenu
diff --git a/target/waldux/config/Config.in.watchdog b/target/waldux/config/Config.in.watchdog
deleted file mode 100644
index f4f50d5dd..000000000
--- a/target/waldux/config/Config.in.watchdog
+++ /dev/null
@@ -1,103 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-menu "Watchdog driver support"
-
-config ADK_WALDUX_KERNEL_WATCHDOG
- bool
-
-config ADK_WALDUX_KERNEL_SCx200
- bool
-
-config ADK_WALDUX_KERNEL_CS5535_MFGPT
- bool
-
-config ADK_WALDUX_KERNEL_CS5535_CLOCK_EVENT_SRC
- bool
-
-config ADK_WALDUX_KERNEL_BCM2835_WDT
- bool "Hardware Watchdog for BCM28XX boards"
- select ADK_WALDUX_KERNEL_WATCHDOG
- depends on ADK_TARGET_BOARD_BCM28XX
- default y if ADK_TARGET_BOARD_BCM28XX
- default n
- help
- Watchdog driver for BCM28XX boards.
-
-config ADK_WALDUX_KERNEL_IMX2_WDT
- bool "Hardware Watchdog for IMX6 boards"
- select ADK_WALDUX_KERNEL_WATCHDOG
- depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default n
- help
- Watchdog driver for IMX6 boards.
-
-config ADK_WALDUX_KERNEL_SCx200_WDT
- bool "Natsemi Hardware Watchdog"
- depends on ADK_TARGET_SYSTEM_PCENGINES_WRAP
- select ADK_WALDUX_KERNEL_WATCHDOG
- select ADK_WALDUX_KERNEL_SCx200
- default y if ADK_TARGET_SYSTEM_PCENGINES_WRAP
- default n
- help
- Natsemi Watchdog (scx200).
-
-config ADK_WALDUX_KERNEL_AT91SAM9X_WATCHDOG
- bool "AT91SAM9X Hardware Watchdog"
- depends on ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- select ADK_WALDUX_KERNEL_WATCHDOG
- default y if ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
- default n
- help
- AT91SAM9X Watchdog.
-
-config ADK_WALDUX_KERNEL_AR7_WDT
- bool "AR7 Hardware Watchdog"
- depends on ADK_TARGET_SYSTEM_LINKSYS_AG241
- select ADK_WALDUX_KERNEL_WATCHDOG
- default y if ADK_TARGET_SYSTEM_LINKSYS_AG241
- default n
- help
- AR7 Watchdog.
-
-config ADK_WALDUX_KERNEL_GEODE_WDT
- bool "Geode Hardware Watchdog"
- depends on ADK_TARGET_SYSTEM_PCENGINES_ALIX
- select ADK_WALDUX_KERNEL_WATCHDOG
- select ADK_WALDUX_KERNEL_MISC_DEVICES
- select ADK_WALDUX_KERNEL_CS5535_MFGPT
- select ADK_WALDUX_KERNEL_CS5535_CLOCK_EVENT_SRC
- default y if ADK_TARGET_SYSTEM_PCENGINES_ALIX
- default n
- help
- Geode watchdog.
-
-config ADK_WALDUX_KERNEL_RC32434_WDT
- bool "IDT RC32434 Hardware Watchdog"
- depends on ADK_TARGET_SYSTEM_MIKROTIK_RB532
- select ADK_WALDUX_KERNEL_WATCHDOG
- default y if ADK_TARGET_SYSTEM_MIKROTIK_RB532
- default n
- help
- Support for the hardware watchdog inside
- Routerboard 532's SoC, the IDT RC32434.
-
-config ADK_WALDUX_KERNEL_SUNXI_WATCHDOG
- bool "SunXi Hardware Watchdog"
- depends on ADK_TARGET_SYSTEM_BANANA_PRO
- select ADK_WALDUX_KERNEL_WATCHDOG
- default y if ADK_TARGET_SYSTEM_BANANA_PRO
- default n
- help
- Support for SunXi hardware watchdog.
-
-config ADK_WALDUX_KERNEL_SOFT_WATCHDOG
- tristate "Software watchdog"
- select ADK_WALDUX_KERNEL_WATCHDOG
- help
- A software monitoring watchdog. This will fail to reboot your system
- from some situations that the hardware watchdog will recover
- from. Equally it's a lot cheaper to install.
-
-endmenu
diff --git a/target/waldux/config/Config.in.wireless b/target/waldux/config/Config.in.wireless
deleted file mode 100644
index a0d8d3697..000000000
--- a/target/waldux/config/Config.in.wireless
+++ /dev/null
@@ -1,344 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_WLAN
- bool
-
-config ADK_WALDUX_KERNEL_WIRELESS
- bool
- select ADK_WALDUX_KERNEL_WLAN
-
-config ADK_WALDUX_KERNEL_WIRELESS_EXT
- bool
-
-config ADK_WALDUX_KERNEL_RFKILL
- tristate
-
-config ADK_WALDUX_KERNEL_MAC80211_LEDS
- bool
- select ADK_WALDUX_KERNEL_LEDS_CLASS
- select ADK_WALDUX_KERNEL_NEW_LEDS
- select ADK_WALDUX_KERNEL_LEDS_TRIGGERS
-
-config ADK_WALDUX_KERNEL_WLAN_80211
- bool
-
-config ADK_WALDUX_KERNEL_RT2X00
- tristate
-
-config ADK_WALDUX_KERNEL_RT2X00_LIB_USB
- tristate
-
-config ADK_WALDUX_KERNEL_RT2X00_LIB_PCI
- tristate
-
-# vendor stuff
-config ADK_WALDUX_KERNEL_NET_VENDOR_ATHEROS
- bool
-
-config ADK_WALDUX_KERNEL_WLAN_VENDOR_BROADCOM
- bool
-
-config ADK_WALDUX_KERNEL_ATH_CARDS
- bool
-
-config ADK_WALDUX_KERNEL_RTL_CARDS
- bool
-
-config ADK_WALDUX_KERNEL_BCMA_POSSIBLE
- bool
-
-config ADK_WALDUX_KERNEL_RT2800USB_RT3573
- bool
-
-config ADK_WALDUX_KERNEL_RT2800USB_RT53XX
- bool
-
-config ADK_WALDUX_KERNEL_RT2800USB_RT55XX
- bool
-
-config ADK_WALDUX_KERNEL_RT2800USB_UNKNOWN
- bool
-
-config ADK_WALDUX_KERNEL_BRCMFMAC_PROTO_MSGBUF
- bool
-
-config ADK_WALDUX_KERNEL_BRCMDBG
- bool
-
-config ADK_WALDUX_KERNEL_LIB80211
- tristate
- select ADK_WALDUX_KERNEL_CRYPTO_MICHAEL_MIC
-
-config ADK_WALDUX_KERNEL_CFG80211_WEXT
- bool
-
-config ADK_WALDUX_KERNEL_ATH_COMMON
- tristate
-
-config ADK_WALDUX_KERNEL_P54_COMMON
- tristate
-
-config ADK_WALDUX_KERNEL_MAC80211_DEBUG_MENU
- bool
-
-config ADK_WALDUX_KERNEL_MAC80211_VERBOSE_DEBUG
- bool
- select ADK_WALDUX_KERNEL_MAC80211_DEBUG_MENU
-
-config ADK_WALDUX_KERNEL_MAC80211_DEBUGFS
- bool
-
-config ADK_WALDUX_KERNEL_CFG80211
- tristate
- select ADK_WALDUX_KERNEL_WIRELESS
- select ADK_WALDUX_KERNEL_WLAN_80211
-
-config ADK_WALDUX_KERNEL_MAC80211_RC_MINSTREL
- bool
-
-config ADK_WALDUX_KERNEL_MAC80211_RC_MINSTREL_HT
- bool
-
-config ADK_WALDUX_KERNEL_CFG80211_WEXT
- bool
-
-config ADK_WALDUX_KERNEL_MAC80211
- tristate
- select ADK_WALDUX_KERNEL_WIRELESS
- select ADK_WALDUX_KERNEL_WLAN_80211
- select ADK_WALDUX_KERNEL_LIB80211
- select ADK_WALDUX_KERNEL_CFG80211
- select ADK_WALDUX_KERNEL_CRYPTO_AES
- select ADK_WALDUX_KERNEL_CRYPTO_ECB
- select ADK_WALDUX_KERNEL_CRYPTO_ARC4
- select ADK_WALDUX_KERNEL_MAC80211_RC_MINSTREL
- select ADK_WALDUX_KERNEL_MAC80211_RC_MINSTREL_HT
- select ADK_WALDUX_KERNEL_CFG80211_WEXT
-
-config ADK_DEBUG_MAC80211
- bool
- select ADK_WALDUX_KERNEL_MAC80211_VERBOSE_DEBUG
- select ADK_WALDUX_KERNEL_MAC80211_DEBUGFS
- select ADK_WALDUX_KERNEL_DEBUG_FS
-
-menu "Wireless network card support"
-depends on ADK_TARGET_WITH_CARDBUS \
- || ADK_TARGET_WITH_PCMCIA \
- || ADK_TARGET_WITH_MINIPCI \
- || ADK_TARGET_WITH_PCI \
- || ADK_TARGET_WITH_USB \
- || ADK_TARGET_WITH_SSB \
- || ADK_TARGET_WITH_AHB \
- || ADK_TARGET_WITH_SDIO \
- || ADK_TARGET_GENERIC
-
-config ADK_WALDUX_KERNEL_BRCMFMAC
- tristate "Broadcom brcmfmac wireless driver"
- select ADK_WALDUX_KERNEL_WIRELESS
- select ADK_WALDUX_KERNEL_WLAN_80211
- select ADK_WALDUX_KERNEL_CFG80211
- select ADK_WALDUX_KERNEL_BCMA_POSSIBLE
- select ADK_WALDUX_KERNEL_RFKILL
- select ADK_WALDUX_KERNEL_WLAN_VENDOR_BROADCOM
- select ADK_PACKAGE_BRCMFMAC_FIRMWARE
-
-config ADK_WALDUX_KERNEL_BRCMFMAC_SDIO
- bool "Broadcom brcmfmac wireless driver (SDIO)"
- select ADK_WALDUX_KERNEL_BRCMFMAC m
- depends on ADK_TARGET_WITH_SDIO
- default y if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI0
- default n
- help
- Driver for Broadcom FullMac wireless cards (SDIO).
-
-config ADK_WALDUX_KERNEL_BRCMFMAC_USB
- bool "Broadcom brcmfmac wireless driver (USB)"
- select ADK_WALDUX_KERNEL_BRCMFMAC m
- depends on ADK_TARGET_WITH_USB
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3
- default y if ADK_TARGET_SYSTEM_RASPBERRY_PI3P
- default n
- help
- Driver for Broadcom FullMac wireless cards (USB).
-
-config ADK_WALDUX_KERNEL_ATH6KL_SDIO
- bool
-
-config ADK_WALDUX_KERNEL_ATH6KL
- tristate "Atheros 6kl wireless driver"
- select ADK_WALDUX_KERNEL_NET_VENDOR_ATHEROS
- select ADK_WALDUX_KERNEL_ATH_CARDS
- select ADK_WALDUX_KERNEL_ATH6KL_SDIO
- select ADK_WALDUX_KERNEL_MAC80211
- depends on ADK_TARGET_WITH_SDIO
- help
- Driver for Atheros wireless 6KL
-
-config ADK_WALDUX_KERNEL_ATH5K
- tristate "Atheros 5xxx wireless driver"
- select ADK_WALDUX_KERNEL_MAC80211_LEDS
- select ADK_WALDUX_KERNEL_ATH_CARDS
- select ADK_WALDUX_KERNEL_ATH_COMMON
- select ADK_WALDUX_KERNEL_MAC80211
- depends on ADK_TARGET_WITH_MINIPCI \
- || ADK_TARGET_WITH_PCI \
- || ADK_TARGET_WITH_AHB \
- || ADK_TARGET_GENERIC
- default m if ADK_TARGET_SYSTEM_IBM_X40
- default m if ADK_TARGET_SYSTEM_FON_FON2100
- default n
- help
- Driver for Atheros 5xxx/24xx cards
-
-config ADK_WALDUX_KERNEL_ATH5K_DEBUG
- bool "enable debugging info via debugfs"
- select ADK_DEBUG_MAC80211
- depends on ADK_WALDUX_KERNEL_ATH5K
- help
- Atheros 5xxx debugging messages.
- Say Y, if and you will get debug options for ath5k.
- To use this, you need to mount debugfs:
- mkdir /debug/
- mount -t debugfs debug /debug/
- You will get access to files under:
- /debug/ath5k/phy0/
- To enable debug, pass the debug level to the debug module
- parameter. For example:
- insmod ath5k.ko debug=0x00000400
-
-config ADK_WALDUX_KERNEL_B43
- tristate "Broadcom B43xx wireless driver"
- select ADK_WALDUX_KERNEL_FW_LOADER
- select ADK_WALDUX_KERNEL_MAC80211
- select ADK_PACKAGE_B43_FIRMWARE
- depends on ADK_TARGET_WITH_SSB \
- || ADK_TARGET_WITH_MINIPCI \
- || ADK_TARGET_GENERIC
- help
- Driver for Broadcom B43xx wireless chips
-
-config ADK_WALDUX_KERNEL_B43LEGACY
- tristate "Broadcom B43xx (legacy) wireless driver"
- select ADK_WALDUX_KERNEL_FW_LOADER
- select ADK_WALDUX_KERNEL_MAC80211
- select ADK_PACKAGE_B43_FIRMWARE
- depends on ADK_TARGET_WITH_SSB || ADK_TARGET_WITH_MINIPCI
- help
- Driver for Broadcom B43xx wireless chips
-
-config ADK_WALDUX_KERNEL_HOSTAP
- tristate "HostAP driver"
- select ADK_WALDUX_KERNEL_MAC80211
- depends on ADK_TARGET_WITH_PCMCIA
- help
- HostAP Driver for wireless chips
-
-config ADK_WALDUX_KERNEL_HOSTAP_CS
- tristate "HostAP driver for PC Cards"
- select ADK_WALDUX_KERNEL_HOSTAP
- depends on ADK_TARGET_WITH_PCMCIA
- default m if ADK_TARGET_SYSTEM_SHARP_ZAURUS
- default n
- help
- HostAP CS Driver for wireless chips
-
-config ADK_WALDUX_KERNEL_RTL8187
- tristate "Realtek RTL8187/RTL8187B wireless driver"
- select ADK_WALDUX_KERNEL_MAC80211
- select ADK_WALDUX_KERNEL_EEPROM_93CX6
- depends on ADK_TARGET_WITH_USB \
- || ADK_TARGET_GENERIC
- help
- Driver for Realtek RTL8187/RTL8187B wireless chips
-
-config ADK_WALDUX_KERNEL_P54_USB
- tristate "Prism54 USB support"
- select ADK_WALDUX_KERNEL_EXPERIMENTAL
- select ADK_WALDUX_KERNEL_P54_COMMON
- select ADK_WALDUX_KERNEL_FW_LOADER
- select ADK_WALDUX_KERNEL_MAC80211
- select ADK_WALDUX_KERNEL_CRC_CCITT
- select ADK_PACKAGE_P54_FIRMWARE
- depends on ADK_TARGET_WITH_USB \
- || ADK_TARGET_GENERIC
- help
- Driver for Prism54 USB adaptors
-
-config ADK_WALDUX_KERNEL_RT2800USB
- tristate "Ralink rt2800 USB driver"
- select ADK_WALDUX_KERNEL_RT2X00
- select ADK_WALDUX_KERNEL_RT2800USB_RT3573
- select ADK_WALDUX_KERNEL_RT2800USB_RT53XX
- select ADK_WALDUX_KERNEL_RT2800USB_RT55XX
- select ADK_WALDUX_KERNEL_RT2800USB_UNKNOWN
- select ADK_WALDUX_KERNEL_RT2X00_LIB_USB
- select ADK_WALDUX_KERNEL_MAC80211
- select ADK_WALDUX_KERNEL_CRC_CCITT
- depends on ADK_TARGET_WITH_USB \
- || ADK_TARGET_GENERIC
- help
- Driver for Ralink RT2800 USB
-
-config ADK_WALDUX_KERNEL_RTL8192CU
- tristate "Realtek RTL8192CU USB driver"
- select ADK_WALDUX_KERNEL_RTL_CARDS
- select ADK_WALDUX_KERNEL_MAC80211
- select ADK_WALDUX_KERNEL_FW_LOADER
- select ADK_PACKAGE_REALTEK_FIRMWARE
- depends on ADK_TARGET_WITH_USB \
- || ADK_TARGET_GENERIC
- help
- Driver for Realtek RTL8192CU USB
-
-config ADK_WALDUX_KERNEL_RT2400PCI
- tristate "Ralink rt2400 PCI driver"
- select ADK_WALDUX_KERNEL_RT2X00
- select ADK_WALDUX_KERNEL_RT2X00_LIB_PCI
- select ADK_WALDUX_KERNEL_MAC80211
- select ADK_WALDUX_KERNEL_MAC80211_LEDS
- depends on ADK_TARGET_WITH_MINIPCI \
- || ADK_TARGET_WITH_PCI \
- || ADK_TARGET_GENERIC
- help
- This adds support for rt2400 wireless chipset family.
- Supported chips: RT2460.
-
-config ADK_WALDUX_KERNEL_RT2500PCI
- tristate "Ralink rt2500 PCI driver"
- select ADK_WALDUX_KERNEL_RT2X00
- select ADK_WALDUX_KERNEL_RT2X00_LIB_PCI
- select ADK_WALDUX_KERNEL_MAC80211
- select ADK_WALDUX_KERNEL_MAC80211_LEDS
- depends on ADK_TARGET_WITH_MINIPCI \
- || ADK_TARGET_WITH_PCI \
- || ADK_TARGET_GENERIC
- help
- This adds support for rt2500 wireless chipset family.
- Supported chips: RT2560.
-
-config ADK_WALDUX_KERNEL_RT61PCI
- tristate "Ralink rt2501/rt61 PCI driver"
- select ADK_WALDUX_KERNEL_RT2X00
- select ADK_WALDUX_KERNEL_RT2X00_LIB_PCI
- select ADK_WALDUX_KERNEL_MAC80211
- select ADK_WALDUX_KERNEL_MAC80211_LEDS
- select ADK_WALDUX_KERNEL_CRC_ITU_T
- select ADK_PACKAGE_RT61_FIRMWARE
- depends on ADK_TARGET_WITH_MINIPCI \
- || ADK_TARGET_WITH_PCI \
- || ADK_TARGET_GENERIC
- help
- This adds support for rt2501 wireless chipset family.
- Supported chips: RT2561, RT2561S & RT2661.
-
-config ADK_WALDUX_KERNEL_RT2X00_DEBUG
- bool "enable debugging info"
- select ADK_DEBUG_MAC80211
- depends on ADK_WALDUX_KERNEL_RT61PCI || \
- ADK_WALDUX_KERNEL_RT2500PCI || \
- ADK_WALDUX_KERNEL_RT2400PCI
- help
-
-endmenu
diff --git a/target/waldux/config/Config.in.xtensa b/target/waldux/config/Config.in.xtensa
deleted file mode 100644
index 90ea8c3b8..000000000
--- a/target/waldux/config/Config.in.xtensa
+++ /dev/null
@@ -1,22 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-config ADK_WALDUX_KERNEL_XTENSA_VARIANT_DC233C
- bool
-
-config ADK_WALDUX_KERNEL_XTENSA_VARIANT_DC232B
- bool
-
-config ADK_WALDUX_KERNEL_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX
- bool
-
-config ADK_WALDUX_KERNEL_XTENSA_VARIANT_CUSTOM
- bool
-
-config ADK_WALDUX_KERNEL_XTENSA_VARIANT_CUSTOM_NAME
- string
- default "de212" if ADK_TARGET_CPU_XTENSA_DE212
-
-config ADK_WALDUX_KERNEL_BUILTIN_DTB
- string
- default "kc705_nommu" if ADK_TARGET_CPU_XTENSA_DE212
diff --git a/target/waldux/kernel.config b/target/waldux/kernel.config
deleted file mode 100644
index 8d7f9fda2..000000000
--- a/target/waldux/kernel.config
+++ /dev/null
@@ -1,29 +0,0 @@
-CONFIG_DEFAULT_HOSTNAME="openadk"
-CONFIG_CMDLINE=""
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_NLS=y
-CONFIG_EMBEDDED=y
-CONFIG_MODULES=y
-CONFIG_BINFMT_SCRIPT=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_TTY=y
-CONFIG_UNIX98_PTYS=y
-CONFIG_DEVMEM=y
-CONFIG_DEVKMEM=y
-CONFIG_EXPERT=y
-CONFIG_MULTIUSER=y
-CONFIG_VDSO=y
-CONFIG_ADVISE_SYSCALLS=y
-CONFIG_POSIX_TIMERS=y
diff --git a/target/waldux/kernel.control b/target/waldux/kernel.control
deleted file mode 100644
index 445879c60..000000000
--- a/target/waldux/kernel.control
+++ /dev/null
@@ -1,5 +0,0 @@
-Package: kernel
-Priority: optional
-Section: sys
-Description: package for the Waldux Kernel
-
diff --git a/target/x86/Makefile b/target/x86/Makefile
index b47da2b42..b9bbc72a3 100644
--- a/target/x86/Makefile
+++ b/target/x86/Makefile
@@ -45,11 +45,6 @@ else
@echo 'qemu-system-${QEMU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${ADK_TARGET_CPU_ARCH}.img'
endif
endif
-ifeq ($(ADK_TARGET_VBOX),y)
- @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
- @echo "Use following command to create a VirtualBox Image:"
- @echo "./scripts/create.sh -g -T vdi vbox-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
-endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
targethelp:
diff --git a/target/x86/kernel/ibm-x40 b/target/x86/kernel/ibm-x40
deleted file mode 100644
index 9597e8fac..000000000
--- a/target/x86/kernel/ibm-x40
+++ /dev/null
@@ -1,9 +0,0 @@
-CONFIG_X86_32=y
-CONFIG_X86=y
-CONFIG_MPENTIUMM=y
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_NR_CPUS=1
-CONFIG_VM86=y
-CONFIG_X86_REBOOTFIXUPS=y
-CONFIG_FIX_EARLYCON_MEM=y
-CONFIG_CMDLINE_BOOL=y
diff --git a/target/x86/kernel/qemu-x86 b/target/x86/kernel/qemu-x86
index 1049b23d8..41a00164c 100644
--- a/target/x86/kernel/qemu-x86
+++ b/target/x86/kernel/qemu-x86
@@ -1,3 +1,4 @@
CONFIG_X86=y
CONFIG_X86_32=y
CONFIG_CMDLINE_BOOL=y
+CONFIG_COMPAT_32BIT_TIME=y
diff --git a/target/x86/kernel/vbox-x86 b/target/x86/kernel/vbox-x86
deleted file mode 100644
index 849852a65..000000000
--- a/target/x86/kernel/vbox-x86
+++ /dev/null
@@ -1,4 +0,0 @@
-CONFIG_X86=y
-CONFIG_X86_32=y
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
diff --git a/target/x86/systems/ibm-x40 b/target/x86/systems/ibm-x40
deleted file mode 100644
index 415e34598..000000000
--- a/target/x86/systems/ibm-x40
+++ /dev/null
@@ -1,33 +0,0 @@
-config ADK_TARGET_SYSTEM_IBM_X40
- bool "IBM X40 laptop"
- select ADK_TARGET_CPU_X86_PENTIUM_M
- select ADK_TARGET_CPU_WITH_MMX
- select ADK_TARGET_CPU_WITH_SSE
- select ADK_TARGET_CPU_WITH_SSE2
- select ADK_TARGET_CPU_WITH_MTRR
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_SERIAL
- select ADK_TARGET_WITH_CPU_FREQ
- select ADK_TARGET_WITH_USB_BOOT
- select ADK_TARGET_WITH_CARDBUS
- select ADK_TARGET_WITH_USB
- select ADK_TARGET_WITH_INPUT
- select ADK_TARGET_WITH_PATA
- select ADK_TARGET_WITH_RTC
- select ADK_TARGET_WITH_MINIPCI
- select ADK_TARGET_WITH_HDD
- select ADK_TARGET_WITH_PCI
- select ADK_TARGET_WITH_ACPI
- select ADK_TARGET_WITH_WIFI
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_WITH_BLOCK
- # with docking station
- select ADK_TARGET_WITH_PP
- select ADK_TARGET_WITH_ROOT_RW
- select ADK_TARGET_KERNEL_BZIMAGE
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- select ADK_PACKAGE_GRUB
- help
- System profile for IBM X40 laptop.
-
diff --git a/target/x86/systems/vbox-x86 b/target/x86/systems/vbox-x86
deleted file mode 100644
index 7577554bf..000000000
--- a/target/x86/systems/vbox-x86
+++ /dev/null
@@ -1,9 +0,0 @@
-config ADK_TARGET_SYSTEM_VBOX_X86
- bool "VirtualBox Emulator"
- select ADK_TARGET_VBOX
- select ADK_TARGET_KERNEL_BZIMAGE
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- select ADK_PACKAGE_GRUB
- help
- Support for VirtualBox Emulator.
-
diff --git a/target/x86/uclibc-ng.config b/target/x86/uclibc-ng.config
index 08f9432b1..7ecceb731 100644
--- a/target/x86/uclibc-ng.config
+++ b/target/x86/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
+# uClibc-ng 1.0.45 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -10,11 +10,13 @@
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
+# TARGET_csky is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
TARGET_i386=y
# TARGET_ia64 is not set
+# TARGET_kvx is not set
# TARGET_lm32 is not set
# TARGET_m68k is not set
# TARGET_metag is not set
@@ -24,11 +26,16 @@ TARGET_i386=y
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
# TARGET_xtensa is not set
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
#
# Target Architecture Features and Options
@@ -65,7 +72,9 @@ HAVE_DOT_CONFIG=y
# General Library Settings
#
DOPIC=y
+# STATIC_PIE is not set
ARCH_HAS_UCONTEXT=y
+HAVE_LDSO=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
@@ -81,7 +90,6 @@ LDSO_RUNPATH_OF_EXECUTABLE=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -90,6 +98,7 @@ UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
@@ -119,6 +128,7 @@ UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
#
# Advanced Library Settings
@@ -134,6 +144,7 @@ UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_SV4_DEPRECATED=y
@@ -156,6 +167,10 @@ UCLIBC_HAS_BSD_RES_CLOSE=y
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
#
# String and Stdio Support
@@ -226,7 +241,6 @@ HARDWIRED_ABSPATH=y
# Security options
#
# UCLIBC_BUILD_PIE is not set
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set
diff --git a/target/x86_64/Makefile b/target/x86_64/Makefile
index 654ab0247..2c5bcd253 100644
--- a/target/x86_64/Makefile
+++ b/target/x86_64/Makefile
@@ -9,14 +9,14 @@ KERNEL:=$(LINUX_DIR)/arch/x86/boot/bzImage
QEMU_ARCH:=x86_64
-QEMU_ARGS:=-M pc
+QEMU_ARGS:=-M pc -m 256
ifeq ($(ADK_PACKAGE_GRUB_EFI_X86_64),y)
QEMU_ARGS+=-L . -bios bios-x86_64.bin
endif
QEMU_ARGS+=${ADK_QEMU_ARGS}
QEMU_ARGS+=-net user -net nic,model=e1000
ifeq ($(ADK_TARGET_QEMU_WITH_AUDIO),y)
-QEMU_ARGS+=-soundhw ac97
+QEMU_ARGS+=-device AC97
endif
ifeq ($(ADK_TARGET_QEMU_WITH_BOOTLOADER),y)
@@ -44,11 +44,6 @@ else
@echo 'qemu-system-${QEMU_ARCH} ${QEMU_ARGS} -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${ADK_TARGET_CPU_ARCH}.img'
endif
endif
-ifeq ($(ADK_HARDWARE_VBOX),y)
- @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
- @echo "Use following command to create a VirtualBox Image:"
- @echo "./scripts/create.sh -T vdi vbox-${ADK_TARGET_CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
-endif
endif
ifeq ($(ADK_TARGET_FS),initramfs)
targethelp:
diff --git a/target/x86_64/asus-p5bvm/genimage-dual.cfg b/target/x86_64/asus-p5bvm/genimage-dual.cfg
deleted file mode 100644
index 82d6dc2c2..000000000
--- a/target/x86_64/asus-p5bvm/genimage-dual.cfg
+++ /dev/null
@@ -1,34 +0,0 @@
-image disk.img {
-
- hdimage {
- }
-
- partition boot {
- in-partition-table = "no"
- image = "boot.img"
- offset = 0
- size = 512
- }
-
- partition grub {
- in-partition-table = "no"
- image = "grub.img"
- offset = 512
- }
-
- partition root1 {
- partition-type = 0x83
- image = "rootfs.ext"
- }
-
- partition root2 {
- partition-type = 0x83
- image = "rootfs.ext"
- }
-
- partition cfgfs {
- partition-type = 0x88
- image = "cfgfs.img"
- }
-
-}
diff --git a/target/x86_64/asus-p5bvm/genimage.cfg b/target/x86_64/asus-p5bvm/genimage.cfg
deleted file mode 100644
index 0b8992731..000000000
--- a/target/x86_64/asus-p5bvm/genimage.cfg
+++ /dev/null
@@ -1,29 +0,0 @@
-image disk.img {
-
- hdimage {
- }
-
- partition boot {
- in-partition-table = "no"
- image = "boot.img"
- offset = 0
- size = 512
- }
-
- partition grub {
- in-partition-table = "no"
- image = "grub.img"
- offset = 512
- }
-
- partition root {
- partition-type = 0x83
- image = "rootfs.ext"
- }
-
- partition cfgfs {
- partition-type = 0x88
- image = "cfgfs.img"
- }
-
-}
diff --git a/target/x86_64/generic-x86_64/genimage-dual.cfg b/target/x86_64/generic-x86_64/genimage-dual.cfg
new file mode 100644
index 000000000..647a2bcb5
--- /dev/null
+++ b/target/x86_64/generic-x86_64/genimage-dual.cfg
@@ -0,0 +1,36 @@
+image disk.img {
+
+ hdimage {
+ }
+
+ partition boot {
+ in-partition-table = "no"
+ image = "boot.img"
+ offset = 0
+ size = 512
+ }
+
+ partition grub {
+ in-partition-table = "no"
+ image = "grub.img"
+ offset = 512
+ }
+
+ partition root1 {
+ partition-type = 0x83
+ image = "rootfs.ext"
+ size = 64M
+ }
+
+ partition root2 {
+ partition-type = 0x83
+ image = "rootfs.ext"
+ size = 64M
+ }
+
+ partition cfgfs {
+ partition-type = 0x88
+ image = "cfgfs.img"
+ }
+
+}
diff --git a/target/x86_64/generic-x86_64/genimage-efi-dual.cfg b/target/x86_64/generic-x86_64/genimage-efi-dual.cfg
new file mode 100644
index 000000000..7c82a0bcb
--- /dev/null
+++ b/target/x86_64/generic-x86_64/genimage-efi-dual.cfg
@@ -0,0 +1,37 @@
+image efi-part.vfat {
+ vfat {
+ file EFI {
+ image = "efi-part/EFI"
+ }
+ }
+ size = 32M
+}
+
+image disk.img {
+
+ hdimage {
+ }
+
+ partition boot {
+ partition-type = 0xEF
+ image = "efi-part.vfat"
+ }
+
+ partition root1 {
+ partition-type = 0x83
+ image = "rootfs.ext"
+ size = 128M
+ }
+
+ partition root2 {
+ partition-type = 0x83
+ image = "rootfs.ext"
+ size = 128M
+ }
+
+ partition cfgfs {
+ partition-type = 0x88
+ image = "cfgfs.img"
+ }
+
+}
diff --git a/target/x86_64/generic-x86_64/genimage-efi.cfg b/target/x86_64/generic-x86_64/genimage-efi.cfg
new file mode 100644
index 000000000..a59d75e47
--- /dev/null
+++ b/target/x86_64/generic-x86_64/genimage-efi.cfg
@@ -0,0 +1,30 @@
+image efi-part.vfat {
+ vfat {
+ file EFI {
+ image = "efi-part/EFI"
+ }
+ }
+ size = 32M
+}
+
+image disk.img {
+
+ hdimage {
+ }
+
+ partition boot {
+ partition-type = 0xEF
+ image = "efi-part.vfat"
+ }
+
+ partition root {
+ partition-type = 0x83
+ image = "rootfs.ext"
+ }
+
+ partition cfgfs {
+ partition-type = 0x88
+ image = "cfgfs.img"
+ }
+
+}
diff --git a/target/x86_64/generic-x86_64/genimage.cfg b/target/x86_64/generic-x86_64/genimage.cfg
new file mode 100644
index 000000000..d86f7ffd7
--- /dev/null
+++ b/target/x86_64/generic-x86_64/genimage.cfg
@@ -0,0 +1,30 @@
+image disk.img {
+
+ hdimage {
+ }
+
+ partition boot {
+ in-partition-table = "no"
+ image = "boot.img"
+ offset = 0
+ size = 512
+ }
+
+ partition grub {
+ in-partition-table = "no"
+ image = "grub.img"
+ offset = 512
+ }
+
+ partition root {
+ partition-type = 0x83
+ image = "rootfs.ext"
+ size = 64M
+ }
+
+ partition cfgfs {
+ partition-type = 0x88
+ image = "cfgfs.img"
+ }
+
+}
diff --git a/target/x86_64/kernel/asus-p5bvm b/target/x86_64/kernel/asus-p5bvm
deleted file mode 100644
index b17b6e256..000000000
--- a/target/x86_64/kernel/asus-p5bvm
+++ /dev/null
@@ -1,7 +0,0 @@
-CONFIG_X86=y
-CONFIG_X86_64=y
-CONFIG_X86_X32=y
-CONFIG_GENERIC_CPU=y
-CONFIG_PROCESSOR_SELECT=y
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_AMD=y
diff --git a/target/x86_64/kernel/lenovo-x200 b/target/x86_64/kernel/lenovo-x200
deleted file mode 100644
index ad080ab40..000000000
--- a/target/x86_64/kernel/lenovo-x200
+++ /dev/null
@@ -1,6 +0,0 @@
-CONFIG_X86=y
-CONFIG_X86_64=y
-CONFIG_GENERIC_CPU=y
-CONFIG_PROCESSOR_SELECT=y
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_CMDLINE_BOOL=y
diff --git a/target/x86_64/qemu-x86_64/genimage-efi-dual.cfg b/target/x86_64/qemu-x86_64/genimage-efi-dual.cfg
index 7c82a0bcb..ff3cb08d2 100644
--- a/target/x86_64/qemu-x86_64/genimage-efi-dual.cfg
+++ b/target/x86_64/qemu-x86_64/genimage-efi-dual.cfg
@@ -10,27 +10,30 @@ image efi-part.vfat {
image disk.img {
hdimage {
+ partition-table-type = "gpt"
}
partition boot {
- partition-type = 0xEF
image = "efi-part.vfat"
+ partition-type-uuid = U
+ offset = 32K
+ bootable = true
}
partition root1 {
- partition-type = 0x83
+ partition-type-uuid = 44479540-f297-41b2-9af7-d131d5f0458a
image = "rootfs.ext"
size = 128M
}
partition root2 {
- partition-type = 0x83
+ partition-type-uuid = 44479540-f297-41b2-9af7-d131d5f0458a
image = "rootfs.ext"
size = 128M
}
partition cfgfs {
- partition-type = 0x88
+ partition-type-uuid = 44479540-f297-41b2-9af7-d131d5f0458a
image = "cfgfs.img"
}
diff --git a/target/x86_64/qemu-x86_64/genimage-efi.cfg b/target/x86_64/qemu-x86_64/genimage-efi.cfg
index a59d75e47..c7fa9a2c3 100644
--- a/target/x86_64/qemu-x86_64/genimage-efi.cfg
+++ b/target/x86_64/qemu-x86_64/genimage-efi.cfg
@@ -10,20 +10,23 @@ image efi-part.vfat {
image disk.img {
hdimage {
+ partition-table-type = "gpt"
}
partition boot {
- partition-type = 0xEF
image = "efi-part.vfat"
+ partition-type-uuid = U
+ offset = 32K
+ bootable = true
}
partition root {
- partition-type = 0x83
+ partition-type-uuid = 44479540-f297-41b2-9af7-d131d5f0458a
image = "rootfs.ext"
}
partition cfgfs {
- partition-type = 0x88
+ partition-type-uuid = 44479540-f297-41b2-9af7-d131d5f0458a
image = "cfgfs.img"
}
diff --git a/target/x86_64/systems/asus-p5bvm b/target/x86_64/systems/asus-p5bvm
deleted file mode 100644
index 4d1d79209..000000000
--- a/target/x86_64/systems/asus-p5bvm
+++ /dev/null
@@ -1,25 +0,0 @@
-config ADK_TARGET_SYSTEM_ASUS_P5BVM
- bool "ASUS P5B-VM SE motherboard"
- select ADK_TARGET_CPU_WITH_MTRR
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_CPU_FREQ
- select ADK_TARGET_WITH_USB_BOOT
- select ADK_TARGET_WITH_USB
- select ADK_TARGET_WITH_INPUT
- select ADK_TARGET_WITH_PATA
- select ADK_TARGET_WITH_RTC
- select ADK_TARGET_WITH_HDD
- select ADK_TARGET_WITH_PCI
- select ADK_TARGET_WITH_ACPI
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_WITH_BLOCK
- select ADK_TARGET_WITH_IOMMU
- select ADK_KERNEL_PCI_MSI
- select ADK_TARGET_WITH_SMP
- select ADK_TARGET_KERNEL_BZIMAGE
- select ADK_TARGET_WITH_SATA
- select ADK_PACKAGE_GRUB
- help
- System profile for ASUS P5B-VM SE motherboard.
-
diff --git a/target/x86_64/systems/lenovo-x200 b/target/x86_64/systems/lenovo-x200
deleted file mode 100644
index 6c58e6825..000000000
--- a/target/x86_64/systems/lenovo-x200
+++ /dev/null
@@ -1,20 +0,0 @@
-config ADK_TARGET_SYSTEM_LENOVO_X200
- bool "Lenovo X200"
- select ADK_TARGET_CPU_X86_64_CORE2
- select ADK_TARGET_KERNEL_BZIMAGE
- select ADK_TARGET_KERNEL_WITH_COMPRESSION
- select ADK_TARGET_WITH_VGA
- select ADK_TARGET_WITH_PCI
- select ADK_TARGET_WITH_MINIPCI
- select ADK_TARGET_WITH_USB
- select ADK_TARGET_WITH_USB_BOOT
- select ADK_TARGET_WITH_ACPI
- select ADK_TARGET_WITH_SATA
- select ADK_TARGET_WITH_SMP
- select ADK_TARGET_WITH_NET
- select ADK_TARGET_WITH_NETDEVICE
- select ADK_TARGET_WITH_BLOCK
- select ADK_PACKAGE_GRUB
- help
- Support for Lenovo X200 subnotebook.
-
diff --git a/target/xtensa/kernel/qemu-xtensa b/target/xtensa/kernel/qemu-xtensa
index 5db1a1077..8d6bac0b9 100644
--- a/target/xtensa/kernel/qemu-xtensa
+++ b/target/xtensa/kernel/qemu-xtensa
@@ -1,3 +1,5 @@
CONFIG_XTENSA=y
CONFIG_XTENSA_PLATFORM_XTFPGA=y
CONFIG_CMDLINE_BOOL=y
+CONFIG_CMDLINE="console=ttyS0,38400 memmap=128M@0"
+CONFIG_SECTION_MISMATCH_WARN_ONLY=y
diff --git a/target/xtensa/uclibc-ng-nommu.config b/target/xtensa/uclibc-ng-nommu.config
new file mode 100644
index 000000000..e9f9a7546
--- /dev/null
+++ b/target/xtensa/uclibc-ng-nommu.config
@@ -0,0 +1,229 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# uClibc-ng 1.0.45 C Library Configuration
+#
+# TARGET_aarch64 is not set
+# TARGET_alpha is not set
+# TARGET_arc is not set
+# TARGET_arm is not set
+# TARGET_avr32 is not set
+# TARGET_bfin is not set
+# TARGET_c6x is not set
+# TARGET_cris is not set
+# TARGET_csky is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_hppa is not set
+# TARGET_i386 is not set
+# TARGET_ia64 is not set
+# TARGET_kvx is not set
+# TARGET_lm32 is not set
+# TARGET_m68k is not set
+# TARGET_metag is not set
+# TARGET_microblaze is not set
+# TARGET_mips is not set
+# TARGET_nds32 is not set
+# TARGET_nios2 is not set
+# TARGET_or1k is not set
+# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_sparc64 is not set
+# TARGET_tile is not set
+# TARGET_x86_64 is not set
+TARGET_xtensa=y
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="xtensa"
+FORCE_OPTIONS_FOR_ARCH=y
+TARGET_SUBARCH=""
+UCLIBC_FORMAT_FLAT=y
+# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
+# UCLIBC_FORMAT_SHARED_FLAT is not set
+ARCH_HAS_DEPRECATED_SYSCALLS=y
+ARCH_ANY_ENDIAN=y
+ARCH_LITTLE_ENDIAN=y
+# ARCH_WANTS_BIG_ENDIAN is not set
+ARCH_WANTS_LITTLE_ENDIAN=y
+ARCH_HAS_MMU=y
+# ARCH_USE_MMU is not set
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+DO_XSI_MATH=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS=""
+UCLIBC_UCLINUX_BROKEN_MUNMAP=y
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+DOPIC=y
+# STATIC_PIE is not set
+ARCH_HAS_NO_SHARED=y
+ARCH_HAS_NO_LDSO=y
+ARCH_HAS_UCONTEXT=y
+UCLIBC_CTOR_DTOR=y
+HAS_NO_THREADS=y
+# UCLIBC_HAS_LINUXTHREADS is not set
+PTHREADS_STACK_DEFAULT_SIZE=2097152
+UCLIBC_HAS_SYSLOG=y
+UCLIBC_HAS_LFS=y
+MALLOC=y
+# MALLOC_SIMPLE is not set
+UCLIBC_DYNAMIC_ATEXIT=y
+UCLIBC_HAS_UTMPX=y
+UCLIBC_HAS_UTMP=y
+UCLIBC_SUSV2_LEGACY=y
+UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_HAS_CONTEXT_FUNCS is not set
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+UCLIBC_SUSV4_LEGACY=y
+# UCLIBC_STRICT_HEADERS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=y
+UCLIBC_HAS_LIBUTIL=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+UCLIBC_BSD_SPECIFIC=y
+UCLIBC_HAS_BSD_ERR=y
+UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+UCLIBC_SV4_DEPRECATED=y
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+# UCLIBC_HAS_PROFILING is not set
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_SHA256_CRYPT_IMPL=y
+UCLIBC_HAS_SHA512_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+UCLIBC_HAS_BSD_RES_CLOSE=y
+UCLIBC_HAS_COMPAT_RES_STATE=y
+# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
+UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LIBICONV is not set
+# UCLIBC_HAS_LIBINTL is not set
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+UCLIBC_HAS_GETOPT_LONG=y
+UCLIBC_HAS_GNU_GETSUBOPT=y
+UCLIBC_HAS_ARGP=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_FNMATCH=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_NFTW=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_FTS=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+MULTILIB_DIR="lib"
+HARDWIRED_ABSPATH=y
+
+#
+# Security options
+#
+# UCLIBC_HAS_SSP is not set
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# Development/debugging options
+#
+CROSS_COMPILER_PREFIX=""
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DOSTRIP is not set
+# DOASSERTS is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
diff --git a/target/xtensa/uclibc-ng.config b/target/xtensa/uclibc-ng.config
index 97060c15f..ace9d1197 100644
--- a/target/xtensa/uclibc-ng.config
+++ b/target/xtensa/uclibc-ng.config
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# uClibc-ng 1.0.25 C Library Configuration
+# uClibc-ng 1.0.45 C Library Configuration
#
# TARGET_aarch64 is not set
# TARGET_alpha is not set
@@ -10,11 +10,13 @@
# TARGET_bfin is not set
# TARGET_c6x is not set
# TARGET_cris is not set
+# TARGET_csky is not set
# TARGET_frv is not set
# TARGET_h8300 is not set
# TARGET_hppa is not set
# TARGET_i386 is not set
# TARGET_ia64 is not set
+# TARGET_kvx is not set
# TARGET_lm32 is not set
# TARGET_m68k is not set
# TARGET_metag is not set
@@ -24,11 +26,16 @@
# TARGET_nios2 is not set
# TARGET_or1k is not set
# TARGET_powerpc is not set
+# TARGET_riscv64 is not set
+# TARGET_riscv32 is not set
# TARGET_sh is not set
# TARGET_sparc is not set
# TARGET_sparc64 is not set
+# TARGET_tile is not set
# TARGET_x86_64 is not set
TARGET_xtensa=y
+TARGET_LDSO_NAME="ld-uClibc"
+TARGET_ARCH_BITS=32
#
# Target Architecture Features and Options
@@ -51,7 +58,6 @@ UCLIBC_HAS_FLOATS=y
UCLIBC_HAS_FPU=y
DO_C99_MATH=y
DO_XSI_MATH=y
-# UCLIBC_HAS_FENV is not set
UCLIBC_HAS_LONG_DOUBLE_MATH=y
KERNEL_HEADERS=""
HAVE_DOT_CONFIG=y
@@ -60,6 +66,9 @@ HAVE_DOT_CONFIG=y
# General Library Settings
#
DOPIC=y
+# STATIC_PIE is not set
+ARCH_HAS_UCONTEXT=y
+HAVE_LDSO=y
HAVE_SHARED=y
# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
LDSO_LDD_SUPPORT=y
@@ -75,7 +84,6 @@ LDSO_RUNPATH_OF_EXECUTABLE=y
LDSO_SAFE_RUNPATH=y
LDSO_SEARCH_INTERP_PATH=y
LDSO_LD_LIBRARY_PATH=y
-LDSO_NO_CLEANUP=y
UCLIBC_CTOR_DTOR=y
# LDSO_GNU_HASH_SUPPORT is not set
# HAS_NO_THREADS is not set
@@ -84,6 +92,7 @@ UCLIBC_HAS_THREADS_NATIVE=y
UCLIBC_HAS_THREADS=y
UCLIBC_HAS_TLS=y
PTHREADS_DEBUG_SUPPORT=y
+PTHREADS_STACK_DEFAULT_SIZE=2097152
UCLIBC_HAS_SYSLOG=y
UCLIBC_HAS_LFS=y
# MALLOC is not set
@@ -94,6 +103,7 @@ UCLIBC_HAS_UTMPX=y
UCLIBC_HAS_UTMP=y
UCLIBC_SUSV2_LEGACY=y
UCLIBC_SUSV3_LEGACY=y
+# UCLIBC_HAS_CONTEXT_FUNCS is not set
# UCLIBC_SUSV3_LEGACY_MACROS is not set
UCLIBC_SUSV4_LEGACY=y
# UCLIBC_STRICT_HEADERS is not set
@@ -112,6 +122,7 @@ UCLIBC_HAS_TZ_FILE=y
UCLIBC_HAS_TZ_FILE_READ_MANY=y
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y
+UCLIBC_USE_TIME64=y
#
# Advanced Library Settings
@@ -127,6 +138,7 @@ UCLIBC_HAS_GNU_ERROR=y
UCLIBC_BSD_SPECIFIC=y
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
+# UCLIBC_HAS_BSD_B64_NTOP_B64_PTON is not set
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_SV4_DEPRECATED=y
@@ -149,6 +161,10 @@ UCLIBC_HAS_BSD_RES_CLOSE=y
UCLIBC_HAS_COMPAT_RES_STATE=y
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
UCLIBC_HAS_RESOLVER_SUPPORT=y
+# UCLIBC_DNSRAND_MODE_URANDOM is not set
+# UCLIBC_DNSRAND_MODE_CLOCK is not set
+UCLIBC_DNSRAND_MODE_PRNGPLUS=y
+# UCLIBC_DNSRAND_MODE_SIMPLECOUNTER is not set
#
# String and Stdio Support
@@ -218,7 +234,6 @@ HARDWIRED_ABSPATH=y
#
# Security options
#
-# UCLIBC_HAS_ARC4RANDOM is not set
# UCLIBC_HAS_SSP is not set
# UCLIBC_BUILD_RELRO is not set
# UCLIBC_BUILD_NOW is not set
diff --git a/target/zephyr/Config.in b/target/zephyr/Config.in
deleted file mode 100644
index e69de29bb..000000000
--- a/target/zephyr/Config.in
+++ /dev/null
diff --git a/target/zephyr/Makefile b/target/zephyr/Makefile
deleted file mode 100644
index 2f937225c..000000000
--- a/target/zephyr/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-
-prepare:
- if [ ! -d $(BUILD_DIR)/zephyr ]; then \
- cd $(BUILD_DIR) ;\
- git clone https://github.com/zephyrproject-rtos/zephyr.git ;\
- fi
- if [ ! -d $(BUILD_DIR)/zephyr-kconfig ]; then \
- mkdir $(BUILD_DIR)/zephyr-kconfig ;\
- fi
- cd $(BUILD_DIR)/zephyr-kconfig && \
- PATH='$(HOST_PATH)' cmake $(BUILD_DIR)/zephyr/scripts && \
- make
- source $(BUILD_DIR)/zephyr/zephyr-env.sh
-
-compile:
- export GCCXTENSA_TOOLCHAIN_PATH="$(TOOLCHAIN_DIR)"
- export ZEPHYR_GCC_VARIANT=gccxtensa
- if [ ! -d $(BUILD_DIR)/zephyr/samples/hello_world/build ]; then \
- mkdir $(BUILD_DIR)/zephyr/samples/hello_world/build ;\
- fi
- cd $(BUILD_DIR)/zephyr/samples/hello_world/build && \
- cmake -DBOARD=qemu_xtensa .. && \
- make
-
-install:
-
-targethelp:
-
-clean:
diff --git a/target/zephyr/arch.lst b/target/zephyr/arch.lst
deleted file mode 100644
index 951bee724..000000000
--- a/target/zephyr/arch.lst
+++ /dev/null
@@ -1,4 +0,0 @@
-arc
-arm
-x86_64
-xtensa
diff --git a/tasks/002-mpd b/tasks/002-mpd
index 694918fa4..cc3a5dcb2 100644
--- a/tasks/002-mpd
+++ b/tasks/002-mpd
@@ -2,7 +2,7 @@ config ADK_APPLIANCE_MPD
bool "music player daemon appliance"
depends on ADK_TARGET_OS_LINUX
select ADK_PACKAGE_MPD
- select ADK_PACKAGE_YMPD
+ select ADK_PACKAGE_MYMPD
select ADK_PACKAGE_MPD_WITH_ALSA
select ADK_PACKAGE_MPD_WITH_MP3
select ADK_PACKAGE_MPD_WITH_MP4
@@ -19,6 +19,8 @@ config ADK_APPLIANCE_MPD
select ADK_PACKAGE_MPD_WITH_HTTPD
select ADK_PACKAGE_CIFS_UTILS
select ADK_PACKAGE_LIBMPDCLIENT
+ select ADK_PACKAGE_LIBCURL
+ select ADK_PACKAGE_LIBCURL_WITH_OPENSSL
select ADK_PACKAGE_MPC
select ADK_PACKAGE_DROPBEAR
select ADK_PACKAGE_DROPBEAR_WITH_UTMP
@@ -36,7 +38,7 @@ config ADK_APPLIANCE_MPD
select ADK_RUNTIME_START_BUSYBOX_NTPD
select ADK_RUNTIME_START_BUSYBOX_SYSLOGD
select ADK_RUNTIME_START_MPD
- select ADK_RUNTIME_START_YMPD
+ select ADK_RUNTIME_START_MYMPD m
select ADK_TARGET_USB_KEYBOARD
select ADK_TARGET_USB_MOUSE
select ADK_LINUX_KERNEL_USB_HID m
diff --git a/tasks/003-kodi b/tasks/003-kodi
index d1169f3cd..c004c8028 100644
--- a/tasks/003-kodi
+++ b/tasks/003-kodi
@@ -4,8 +4,10 @@ config ADK_APPLIANCE_KODI
ADK_TARGET_SYSTEM_RASPBERRY_PI || \
ADK_TARGET_SYSTEM_RASPBERRY_PI2 || \
ADK_TARGET_SYSTEM_RASPBERRY_PI3 || \
- ADK_TARGET_SYSTEM_RASPBERRY_PI3P )
- select ADK_TARGET_ARCH_ARM_WITH_NEON
+ ADK_TARGET_SYSTEM_RASPBERRY_PI3P || \
+ ADK_TARGET_SYSTEM_RASPBERRY_PI4 || \
+ ADK_TARGET_SYSTEM_RASPBERRY_PI5 || \
+ ADK_TARGET_SYSTEM_RASPBERRY_PI4_64 )
select ADK_PACKAGE_KODI
select ADK_PACKAGE_KODI_WITH_SSH
select ADK_PACKAGE_KODI_WITH_MICROHTTPD
@@ -13,14 +15,14 @@ config ADK_APPLIANCE_KODI
select ADK_PACKAGE_ALSA_UTILS
select ADK_PACKAGE_STRACE
select ADK_PACKAGE_HTOP
- select ADK_PACKAGE_PYTHON2
- select ADK_PACKAGE_PYTHON2_MOD_ZLIB # required for YouTube Addon
- select ADK_PACKAGE_PYTHON2_MOD_SSL # required for YouTube Addon
- select ADK_PACKAGE_PYTHON2_MOD_EXPAT # required for Mediathek Addon
- select ADK_PACKAGE_CURL
- select ADK_PACKAGE_CURL_WITH_LIBRESSL
- select ADK_PACKAGE_DROPBEAR
- select ADK_PACKAGE_DROPBEAR_WITH_UTMP
+ select ADK_PACKAGE_PYTHON3
+ select ADK_PACKAGE_PYTHON3_MOD_ZLIB # required for YouTube Addon
+ select ADK_PACKAGE_PYTHON3_MOD_SSL # required for YouTube Addon
+ select ADK_PACKAGE_LIBCURL
+ select ADK_PACKAGE_LIBCURL_WITH_LIBRESSL
+ select ADK_PACKAGE_DROPBEAR if ADK_TARGET_LIB_UCLIBC_NG
+ select ADK_PACKAGE_OPENSSH if ADK_TARGET_LIB_GLIBC
+ select ADK_PACKAGE_OPENSSH_SERVER if ADK_TARGET_LIB_GLIBC
select ADK_PACKAGE_E2FSCK
select ADK_PACKAGE_FFMPEG
select ADK_PACKAGE_LIBFFMPEG
@@ -36,10 +38,12 @@ config ADK_APPLIANCE_KODI
select BUSYBOX_NTPD
select BUSYBOX_WATCHDOG
select ADK_RUNTIME_START_SERVICES
- select ADK_RUNTIME_START_DROPBEAR
+ select ADK_RUNTIME_START_DROPBEAR if ADK_TARGET_LIB_UCLIBC_NG
+ select ADK_RUNTIME_START_OPENSSH_SERVER if ADK_TARGET_LIB_GLIBC
select ADK_RUNTIME_START_BUSYBOX_NTPD
select ADK_RUNTIME_START_BUSYBOX_SYSLOGD
select ADK_RUNTIME_START_BUSYBOX_WATCHDOG
+ select ADK_RUNTIME_DEV_UDEV
select ADK_RUNTIME_START_KODI m
select ADK_LINUX_KERNEL_INPUT_EVDEV m
select ADK_LINUX_KERNEL_USB_HID m
@@ -48,9 +52,6 @@ config ADK_APPLIANCE_KODI
select ADK_TARGET_USB_MOUSE
select ADK_LINUX_KERNEL_NTFS_FS
select ADK_RUNTIME_HOSTNAME kodibox
- select ADK_PACKAGE_BCM28XX_BOOTLOADER_EXTRA if ADK_TARGET_BOARD_BCM28XX
- select ADK_PACKAGE_BCM28XX_VC_LIBS if ADK_TARGET_BOARD_BCM28XX
- select ADK_PACKAGE_BCM28XX_VC_GL_LIBS if ADK_TARGET_BOARD_BCM28XX
select ADK_LINUX_KERNEL_PREEMPT__LL if !ADK_APPLIANCE_CONVOLUTION # for better performance and no sound problems
help
Create a small kodi multimedia appliance. Please enable additional features
diff --git a/tasks/004-development b/tasks/004-development
index d486a97e8..229dbc5a8 100644
--- a/tasks/004-development
+++ b/tasks/004-development
@@ -4,10 +4,13 @@ config ADK_APPLIANCE_DEVELOPMENT
select ADK_PACKAGE_GCC
select ADK_PACKAGE_GXX
select ADK_PACKAGE_BINUTILS
+ select ADK_PACKAGE_BASH
select ADK_PACKAGE_MAKE
select ADK_PACKAGE_BISON
select ADK_PACKAGE_FLEX
select ADK_PACKAGE_PKGCONF
+ select ADK_PACKAGE_PATCH
+ select ADK_PACKAGE_PERL
select ADK_PACKAGE_AUTOCONF
select ADK_PACKAGE_AUTOMAKE
select ADK_PACKAGE_LIBTOOL
@@ -15,9 +18,16 @@ config ADK_APPLIANCE_DEVELOPMENT
select ADK_PACKAGE_MUSL_DEV if ADK_TARGET_LIB_MUSL
select ADK_PACKAGE_UCLIBC_NG_DEV if ADK_TARGET_LIB_UCLIBC_NG
select ADK_PACKAGE_GIT
+ select ADK_PACKAGE_GIT_WITH_OPENSSL
+ select ADK_PACKAGE_M4
select ADK_PACKAGE_OPENSSH
+ select ADK_PACKAGE_OPENSSH_WITH_OPENSSL
select ADK_PACKAGE_OPENSSH_CLIENT
- select ADK_PACKAGE_WGET
+ select ADK_PACKAGE_OPENSSH_SERVER
+ select ADK_PACKAGE_CURL
+ select ADK_PACKAGE_LIBCURL_WITH_OPENSSL
+ select ADK_PACKAGE_ZLIB_DEV
+ select ADK_PACKAGE_LIBNCURSES_DEV
help
If you want to develop software on your target, choose this
appliance, so gcc, binutils and co will be selected.
diff --git a/tasks/005-firefox b/tasks/005-firefox
deleted file mode 100644
index 311689d65..000000000
--- a/tasks/005-firefox
+++ /dev/null
@@ -1,31 +0,0 @@
-config ADK_APPLIANCE_FIREFOX
- bool "firefox kiosk appliance"
- depends on ADK_TARGET_OS_LINUX && ( \
- ADK_TARGET_SYSTEM_LEMOTE_YEELONG || \
- ADK_TARGET_SYSTEM_IBM_X40 )
- select ADK_TARGET_LIB_GLIBC
- select ADK_PACKAGE_GLIBC
- select ADK_PACKAGE_FIREFOX
- select ADK_PACKAGE_XORG_SERVER
- select ADK_PACKAGE_FONT_MISC_MISC
- select ADK_PACKAGE_XINIT
- select ADK_PACKAGE_KBD
- select ADK_PACKAGE_DROPBEAR
- select ADK_PACKAGE_DROPBEAR_WITH_UTMP
- select ADK_PACKAGE_E2FSCK
- select ADK_PACKAGE_XDOTOOL
- select BUSYBOX_NTPD
- select ADK_RUNTIME_START_SERVICES
- select ADK_RUNTIME_START_DROPBEAR
- select ADK_RUNTIME_START_BUSYBOX_NTPD
- select ADK_RUNTIME_START_BUSYBOX_SYSLOGD
- select ADK_RUNTIME_START_FIREFOX
- select ADK_RUNTIME_START_KBD
- select ADK_LINUX_KERNEL_INPUT_EVDEV m
- select ADK_LINUX_KERNEL_USB_HID m
- select ADK_TARGET_USB_KEYBOARD
- select ADK_TARGET_USB_MOUSE
- select ADK_RUNTIME_HOSTNAME firefoxbox
- help
- Create a small firefox kiosk appliance.
-
diff --git a/tasks/008-nas b/tasks/008-nas
new file mode 100644
index 000000000..25ad28615
--- /dev/null
+++ b/tasks/008-nas
@@ -0,0 +1,29 @@
+config ADK_APPLIANCE_NAS
+ bool "network attached storage appliance"
+ select ADK_RUNTIME_HOSTNAME adknas
+ select ADK_PACKAGE_GPTFDISK
+ select ADK_PACKAGE_CRYPTSETUP
+ select ADK_PACKAGE_LVM
+ select ADK_PACKAGE_MDADM
+ select ADK_PACKAGE_NTFS_3G
+ select ADK_PACKAGE_MKE2FS
+ select ADK_PACKAGE_RESIZE2FS
+ select ADK_PACKAGE_TUNE2FS
+ select ADK_PACKAGE_E2FSCK
+ select ADK_PACKAGE_NFS_UTILS
+ select ADK_PACKAGE_SAMBA
+ select ADK_PACKAGE_VSFTPD
+ select ADK_PACKAGE_DROPBEAR
+ select ADK_PACKAGE_SMARTMONTOOLS
+ select BUSYBOX_NTPD
+ select BUSYBOX_WATCHDOG
+ select ADK_RUNTIME_START_SERVICES
+ select ADK_RUNTIME_START_DROPBEAR
+ select ADK_RUNTIME_START_BUSYBOX_NTPD
+ select ADK_RUNTIME_START_BUSYBOX_SYSLOGD
+ select ADK_LINUX_KERNEL_DM_RAID m
+ select ADK_LINUX_KERNEL_BLK_DEV_LOOP m
+ help
+ Create a NAS appliance, the typical file server at home providing
+ content to workstations and media servers and backup space.
+
diff --git a/toolchain/Makefile b/toolchain/Makefile
index 09b02c743..55e3ccce5 100644
--- a/toolchain/Makefile
+++ b/toolchain/Makefile
@@ -17,12 +17,6 @@ TARGETS:=binutils gmp mpfr mpc
TARGETS+=gcc
COMPILER:=gcc
endif
-ifeq ($(ADK_BUILD_COMPILER_LLVM),y)
-TARGETS:=binutils
-TARGETS+=llvm
-COMPILER:=llvm
-endif
-
ifeq ($(ADK_TARGET_LIB_GLIBC),y)
TARGETS+=glibc
CLIB:=glibc
@@ -40,14 +34,14 @@ TARGETS+=newlib
CLIB:=newlib
endif
-ifeq ($(ADK_TARGET_BINFMT_FLAT)$(ADK_TARGET_OS_FROSTED),y)
+ifeq ($(ADK_TARGET_BINFMT_FLAT),y)
TARGETS+=elf2flt
ELF2FLT:=elf2flt-install
endif
ifeq ($(ADK_TOOLCHAIN_WITH_GDB),y)
# disable gdb for some architectures
-ifeq ($(ADK_TARGET_ARCH_ARC)$(ADK_TARGET_ARCH_CR16)$(ADK_TARGET_ARCH_EPIPHANY)$(ADK_TARGET_ARCH_METAG)$(ADK_TARGET_ARCH_NDS32)$(ADK_TARGET_ARCH_OR1K),)
+ifeq ($(ADK_TARGET_ARCH_CR16)$(ADK_TARGET_ARCH_EPIPHANY)$(ADK_TARGET_ARCH_METAG)$(ADK_TARGET_ARCH_NDS32),)
TARGETS+=gdb
GDB:=gdb-install
endif
@@ -67,12 +61,7 @@ clean: $(TARGETS_CLEAN)
download: $(DOWNLOAD)
final: $(FINAL)
-
-ifeq ($(ADK_BUILD_COMPILER_LLVM),y)
-$(COMPILER)-configure: binutils-install
-else
$(COMPILER)-configure: binutils-install gmp-install mpfr-install mpc-install
-endif
ifeq ($(ADK_TARGET_LIB_NEWLIB),y)
$(CLIB)-install: $(COMPILER)-configure
diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile
index 67707c881..63b1080fb 100644
--- a/toolchain/binutils/Makefile
+++ b/toolchain/binutils/Makefile
@@ -28,6 +28,10 @@ else
CONFOPTS+= --disable-gold
endif
+ifeq ($(ADK_TARGET_ARCH_ARC),y)
+CONFOPTS+= --enable-lto --enable-plugins
+endif
+
ifeq ($(ADK_TARGET_ARCH_X86_64)$(ADK_TARGET_CPU_CF),)
CONFOPTS+= --disable-multilib
else
@@ -55,7 +59,9 @@ endif
--disable-nls \
--disable-sim \
--disable-gdb \
+ --enable-obsolete \
--disable-werror \
+ --disable-gprof \
--disable-install-libiberty \
${CONFOPTS} \
);
@@ -68,7 +74,7 @@ $(WRKBUILD)/.compiled: $(WRKBUILD)/.configured
$(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
PATH='$(HOST_PATH)' $(MAKE) MAKEINFO=true -C $(WRKBUILD) install
-ifeq ($(ADK_TARGET_ARCH_H8300)$(ADK_TARGET_ARCH_NDS32)$(ADK_TARGET_ARCH_SH),y)
+ifeq ($(ADK_TARGET_ARCH_KVX)$(ADK_TARGET_ARCH_H8300)$(ADK_TARGET_ARCH_NDS32)$(ADK_TARGET_ARCH_SH),y)
$(INSTALL_DIR) $(STAGING_TARGET_DIR)/usr/lib/ldscripts
$(CP) $(WRKBUILD)/ld/ldscripts/* $(STAGING_TARGET_DIR)/usr/lib/ldscripts/
endif
diff --git a/toolchain/binutils/Makefile.inc b/toolchain/binutils/Makefile.inc
index f9d589ace..758539cf0 100644
--- a/toolchain/binutils/Makefile.inc
+++ b/toolchain/binutils/Makefile.inc
@@ -2,47 +2,61 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= binutils
-ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_32),y)
-PKG_VERSION:= 2.32
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_42),y)
+PKG_VERSION:= 2.42
PKG_RELEASE:= 1
-PKG_HASH:= 0ab6c55dd86a92ed561972ba15b9b70a8b9f75557f896446c82e8b36e473ee04
+PKG_HASH:= 5d2a6c1d49686a557869caae08b6c2e83699775efd27505e01b2f4db1a024ffc
PKG_SITES:= ${MASTER_SITE_GNU:=binutils/}
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
-ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_29),y)
-PKG_VERSION:= 2.29.1
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_41),y)
+PKG_VERSION:= 2.41
PKG_RELEASE:= 1
-PKG_HASH:= e7010a46969f9d3e53b650a518663f98a5dde3c3ae21b7d71e5e6803bc36b577
+PKG_HASH:= 48d00a8dc73aa7d2394a7dc069b96191d95e8de8f0da6dc91da5cce655c20e45
PKG_SITES:= ${MASTER_SITE_GNU:=binutils/}
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
-ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_28),y)
-PKG_VERSION:= 2.28
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_40),y)
+PKG_VERSION:= 2.40
PKG_RELEASE:= 1
-PKG_HASH:= cd717966fc761d840d451dbd58d44e1e5b92949d2073d75b73fccb476d772fcf
+PKG_HASH:= d7f82c4047decf43a6f769ac32456a92ddb6932409a585c633cdd4e9df23d956
PKG_SITES:= ${MASTER_SITE_GNU:=binutils/}
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
-ifeq ($(ADK_TOOLCHAIN_BINUTILS_ARC),y)
-PKG_VERSION:= arc-2018.03-release
-PKG_GIT:= tag
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_39),y)
+PKG_VERSION:= 2.39
PKG_RELEASE:= 1
-PKG_SITES:= https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb.git
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+PKG_HASH:= d12ea6f239f1ffe3533ea11ad6e224ffcb89eb5d01bbea589e9158780fa11f10
+PKG_SITES:= ${MASTER_SITE_GNU:=binutils/}
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
-ifeq ($(ADK_TOOLCHAIN_BINUTILS_CSKY),y)
-PKG_VERSION:= binutils-2_27-branch-csky
-PKG_GIT:= branch
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_38),y)
+PKG_VERSION:= 2.38
PKG_RELEASE:= 1
-PKG_SITES:= https://github.com/c-sky/binutils-gdb.git
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+PKG_HASH:= b3f1dc5b17e75328f19bd88250bee2ef9f91fc8cbb7bd48bdb31390338636052
+PKG_SITES:= ${MASTER_SITE_GNU:=binutils/}
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
-ifeq ($(ADK_TOOLCHAIN_BINUTILS_NDS32),y)
-PKG_VERSION:= nds32-binutils-2.30-branch-open
-PKG_GIT:= branch
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_37),y)
+PKG_VERSION:= 2.37
PKG_RELEASE:= 1
-PKG_SITES:= https://github.com/andestech/binutils.git
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+PKG_HASH:= c44968b97cd86499efbc4b4ab7d98471f673e5414c554ef54afa930062dbbfcb
+PKG_SITES:= ${MASTER_SITE_GNU:=binutils/}
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+endif
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_KVX),y)
+PKG_VERSION:= 782547a4e2bdf1308728032853678ca69bb154ea
+PKG_GIT:= hash
+PKG_RELEASE:= 1
+PKG_SITES:= https://github.com/kalray/gdb-binutils.git
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+endif
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_ARC),y)
+PKG_VERSION:= arc-2023.09
+PKG_GIT:= tag
+PKG_RELEASE:= 1
+PKG_SITES:= https://github.com/foss-for-synopsys-dwc-arc-processors/binutils-gdb.git
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
ifeq ($(ADK_TOOLCHAIN_BINUTILS_AVR32),y)
PKG_VERSION:= 2.20.1
@@ -55,5 +69,5 @@ ifeq ($(ADK_TOOLCHAIN_BINUTILS_GIT),y)
PKG_VERSION:= git
PKG_RELEASE:= 1
PKG_SITES:= git://sourceware.org/git/binutils-gdb.git
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
diff --git a/toolchain/binutils/patches/2.20.1/newer-gcc.patch b/toolchain/binutils/patches/2.20.1/newer-gcc.patch
new file mode 100644
index 000000000..b7f42e447
--- /dev/null
+++ b/toolchain/binutils/patches/2.20.1/newer-gcc.patch
@@ -0,0 +1,24 @@
+diff -Nur binutils-2.20.1.orig/binutils/readelf.c binutils-2.20.1/binutils/readelf.c
+--- binutils-2.20.1.orig/binutils/readelf.c 2023-02-03 11:04:53.722082738 +0100
++++ binutils-2.20.1/binutils/readelf.c 2023-02-03 11:05:27.049296372 +0100
+@@ -150,7 +150,7 @@
+ #include "filenames.h"
+
+ char * program_name = "readelf";
+-int do_wide;
++extern int do_wide;
+ static long archive_file_offset;
+ static unsigned long archive_file_size;
+ static unsigned long dynamic_addr;
+diff -Nur binutils-2.20.1.orig/gas/config/tc-avr32.c binutils-2.20.1/gas/config/tc-avr32.c
+--- binutils-2.20.1.orig/gas/config/tc-avr32.c 2023-02-03 11:04:53.726082644 +0100
++++ binutils-2.20.1/gas/config/tc-avr32.c 2023-02-03 11:06:12.164234434 +0100
+@@ -47,7 +47,7 @@
+
+ /* Flags given on the command line */
+ static int avr32_pic = FALSE;
+-int linkrelax = FALSE;
++//extern int linkrelax = FALSE;
+ int avr32_iarcompat = FALSE;
+
+ /* This array holds the chars that always start a comment. */
diff --git a/toolchain/binutils/patches/2.28/lm32.patch b/toolchain/binutils/patches/2.28/lm32.patch
new file mode 100644
index 000000000..962281625
--- /dev/null
+++ b/toolchain/binutils/patches/2.28/lm32.patch
@@ -0,0 +1,24 @@
+diff -Nur binutils-2.28.orig/bfd/config.bfd binutils-2.28/bfd/config.bfd
+--- binutils-2.28.orig/bfd/config.bfd 2017-03-02 09:23:53.000000000 +0100
++++ binutils-2.28/bfd/config.bfd 2023-08-27 11:54:08.526040118 +0200
+@@ -924,7 +924,7 @@
+ ;;
+
+ lm32-*-*linux*)
+- targ_defvec=lm32_elf32_fdpic_vec
++ targ_defvec=lm32_elf32_vec
+ targ_selvecs=lm32_elf32_vec
+ ;;
+
+diff -Nur binutils-2.28.orig/ld/configure.tgt binutils-2.28/ld/configure.tgt
+--- binutils-2.28.orig/ld/configure.tgt 2017-03-02 09:23:54.000000000 +0100
++++ binutils-2.28/ld/configure.tgt 2023-08-27 11:54:43.882874903 +0200
+@@ -416,7 +416,7 @@
+ ;;
+ iq2000-*-elf) targ_emul=elf32iq2000 ; targ_extra_emuls="elf32iq10"
+ ;;
+-lm32-*-*linux*) targ_emul=elf32lm32fd ;;
++lm32-*-*linux*) targ_emul=elf32lm32 ;;
+ lm32-*-*) targ_emul=elf32lm32 ; targ_extra_emuls="elf32lm32fd"
+ ;;
+ m32c-*-elf | m32c-*-rtems*)
diff --git a/toolchain/binutils/patches/2.32/0003-bfd-xtensa-fix-shrink_dynamic_reloc_sections-for-exp.patch b/toolchain/binutils/patches/2.32/0003-bfd-xtensa-fix-shrink_dynamic_reloc_sections-for-exp.patch
new file mode 100644
index 000000000..b80e1fa7c
--- /dev/null
+++ b/toolchain/binutils/patches/2.32/0003-bfd-xtensa-fix-shrink_dynamic_reloc_sections-for-exp.patch
@@ -0,0 +1,41 @@
+From 278989f23735aa501be1052e085540c75c126dbb Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Thu, 28 Mar 2019 17:03:57 -0700
+Subject: [PATCH] bfd: xtensa: fix shrink_dynamic_reloc_sections for
+ export-dynamic
+
+shrink_dynamic_reloc_sections must remove PLT entry that was created for
+an undefined weak symbol in the presence of --export-dynamic option when
+relaxation coalesces literals pointing to that symbol. This fixes the
+following assertion:
+
+ ld: BFD (GNU Binutils) 2.31.1 internal error, aborting at
+ elf32-xtensa.c:3292 in elf_xtensa_finish_dynamic_sections
+
+2019-03-28 Max Filippov <jcmvbkbc@gmail.com>
+bfd/
+ * elf32-xtensa.c (shrink_dynamic_reloc_sections): Add
+ info->export_dynamic to the conditional.
+
+Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
+---
+ bfd/elf32-xtensa.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/bfd/elf32-xtensa.c b/bfd/elf32-xtensa.c
+index c3df3d6db756..37ea200eea74 100644
+--- a/bfd/elf32-xtensa.c
++++ b/bfd/elf32-xtensa.c
+@@ -10083,7 +10083,8 @@ shrink_dynamic_reloc_sections (struct bfd_link_info *info,
+ && (input_section->flags & SEC_ALLOC) != 0
+ && (dynamic_symbol || bfd_link_pic (info))
+ && (!h || h->root.type != bfd_link_hash_undefweak
+- || (dynamic_symbol && bfd_link_dll (info))))
++ || (dynamic_symbol
++ && (bfd_link_dll (info) || info->export_dynamic))))
+ {
+ asection *srel;
+ bfd_boolean is_plt = FALSE;
+--
+2.11.0
+
diff --git a/toolchain/binutils/patches/2.32/0004-gas-use-literals-const16-for-xtensa-loop-relaxation.patch b/toolchain/binutils/patches/2.32/0004-gas-use-literals-const16-for-xtensa-loop-relaxation.patch
new file mode 100644
index 000000000..ed617bcaf
--- /dev/null
+++ b/toolchain/binutils/patches/2.32/0004-gas-use-literals-const16-for-xtensa-loop-relaxation.patch
@@ -0,0 +1,294 @@
+From 0dbdfb7918d0b0cfcb8883b24c1291574bf5bb7c Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Tue, 2 Apr 2019 14:32:42 -0700
+Subject: [PATCH] gas: use literals/const16 for xtensa loop relaxation
+
+Loop opcode relaxation that uses addi/addmi doesn't work well with other
+relaxations that may cause code movement. Instead of encoding fixed loop
+end offset in the relaxed sequence use l32r or a pair of const16 to load
+loop end address. This way the address of the loop end gets a relocation
+record and it gets updated appropriately.
+
+gas/
+2019-04-02 Max Filippov <jcmvbkbc@gmail.com>
+
+ * config/tc-xtensa.c (convert_frag_immed): Drop
+ convert_frag_immed_finish_loop invocation.
+ (convert_frag_immed_finish_loop): Drop declaration and
+ definition.
+ * config/xtensa-relax.c (widen_spec_list): Replace loop
+ widening that uses addi/addmi with widening that uses l32r
+ and const16.
+
+Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
+---
+ gas/config/tc-xtensa.c | 120 ----------------------------------------------
+ gas/config/xtensa-relax.c | 77 ++++++++++++++++++++---------
+ 2 files changed, 55 insertions(+), 142 deletions(-)
+
+diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
+index 3bdbbc931cfc..0cc06361cf6f 100644
+--- a/gas/config/tc-xtensa.c
++++ b/gas/config/tc-xtensa.c
+@@ -10668,7 +10668,6 @@ convert_frag_fill_nop (fragS *fragP)
+ static fixS *fix_new_exp_in_seg
+ (segT, subsegT, fragS *, int, int, expressionS *, int,
+ bfd_reloc_code_real_type);
+-static void convert_frag_immed_finish_loop (segT, fragS *, TInsn *);
+
+ static void
+ convert_frag_immed (segT segP,
+@@ -10910,9 +10909,6 @@ convert_frag_immed (segT segP,
+ }
+ }
+
+- if (expanded && xtensa_opcode_is_loop (isa, orig_tinsn.opcode) == 1)
+- convert_frag_immed_finish_loop (segP, fragP, &orig_tinsn);
+-
+ if (expanded && is_direct_call_opcode (orig_tinsn.opcode))
+ {
+ /* Add an expansion note on the expanded instruction. */
+@@ -10949,122 +10945,6 @@ fix_new_exp_in_seg (segT new_seg,
+ }
+
+
+-/* Relax a loop instruction so that it can span loop >256 bytes.
+-
+- loop as, .L1
+- .L0:
+- rsr as, LEND
+- wsr as, LBEG
+- addi as, as, lo8 (label-.L1)
+- addmi as, as, mid8 (label-.L1)
+- wsr as, LEND
+- isync
+- rsr as, LCOUNT
+- addi as, as, 1
+- .L1:
+- <<body>>
+- label:
+-*/
+-
+-static void
+-convert_frag_immed_finish_loop (segT segP, fragS *fragP, TInsn *tinsn)
+-{
+- TInsn loop_insn;
+- TInsn addi_insn;
+- TInsn addmi_insn;
+- unsigned long target;
+- static xtensa_insnbuf insnbuf = NULL;
+- unsigned int loop_length, loop_length_hi, loop_length_lo;
+- xtensa_isa isa = xtensa_default_isa;
+- addressT loop_offset;
+- addressT addi_offset = 9;
+- addressT addmi_offset = 12;
+- fragS *next_fragP;
+- int target_count;
+-
+- if (!insnbuf)
+- insnbuf = xtensa_insnbuf_alloc (isa);
+-
+- /* Get the loop offset. */
+- loop_offset = get_expanded_loop_offset (tinsn->opcode);
+-
+- /* Validate that there really is a LOOP at the loop_offset. Because
+- loops are not bundleable, we can assume that the instruction will be
+- in slot 0. */
+- tinsn_from_chars (&loop_insn, fragP->fr_opcode + loop_offset, 0);
+- tinsn_immed_from_frag (&loop_insn, fragP, 0);
+-
+- gas_assert (xtensa_opcode_is_loop (isa, loop_insn.opcode) == 1);
+- addi_offset += loop_offset;
+- addmi_offset += loop_offset;
+-
+- gas_assert (tinsn->ntok == 2);
+- if (tinsn->tok[1].X_op == O_constant)
+- target = tinsn->tok[1].X_add_number;
+- else if (tinsn->tok[1].X_op == O_symbol)
+- {
+- /* Find the fragment. */
+- symbolS *sym = tinsn->tok[1].X_add_symbol;
+- gas_assert (S_GET_SEGMENT (sym) == segP
+- || S_GET_SEGMENT (sym) == absolute_section);
+- target = (S_GET_VALUE (sym) + tinsn->tok[1].X_add_number);
+- }
+- else
+- {
+- as_bad (_("invalid expression evaluation type %d"), tinsn->tok[1].X_op);
+- target = 0;
+- }
+-
+- loop_length = target - (fragP->fr_address + fragP->fr_fix);
+- loop_length_hi = loop_length & ~0x0ff;
+- loop_length_lo = loop_length & 0x0ff;
+- if (loop_length_lo >= 128)
+- {
+- loop_length_lo -= 256;
+- loop_length_hi += 256;
+- }
+-
+- /* Because addmi sign-extends the immediate, 'loop_length_hi' can be at most
+- 32512. If the loop is larger than that, then we just fail. */
+- if (loop_length_hi > 32512)
+- as_bad_where (fragP->fr_file, fragP->fr_line,
+- _("loop too long for LOOP instruction"));
+-
+- tinsn_from_chars (&addi_insn, fragP->fr_opcode + addi_offset, 0);
+- gas_assert (addi_insn.opcode == xtensa_addi_opcode);
+-
+- tinsn_from_chars (&addmi_insn, fragP->fr_opcode + addmi_offset, 0);
+- gas_assert (addmi_insn.opcode == xtensa_addmi_opcode);
+-
+- set_expr_const (&addi_insn.tok[2], loop_length_lo);
+- tinsn_to_insnbuf (&addi_insn, insnbuf);
+-
+- fragP->tc_frag_data.is_insn = TRUE;
+- xtensa_insnbuf_to_chars
+- (isa, insnbuf, (unsigned char *) fragP->fr_opcode + addi_offset, 0);
+-
+- set_expr_const (&addmi_insn.tok[2], loop_length_hi);
+- tinsn_to_insnbuf (&addmi_insn, insnbuf);
+- xtensa_insnbuf_to_chars
+- (isa, insnbuf, (unsigned char *) fragP->fr_opcode + addmi_offset, 0);
+-
+- /* Walk through all of the frags from here to the loop end
+- and mark them as no_transform to keep them from being modified
+- by the linker. If we ever have a relocation for the
+- addi/addmi of the difference of two symbols we can remove this. */
+-
+- target_count = 0;
+- for (next_fragP = fragP; next_fragP != NULL;
+- next_fragP = next_fragP->fr_next)
+- {
+- next_fragP->tc_frag_data.is_no_transform = TRUE;
+- if (next_fragP->tc_frag_data.is_loop_target)
+- target_count++;
+- if (target_count == 2)
+- break;
+- }
+-}
+-
+
+ /* A map that keeps information on a per-subsegment basis. This is
+ maintained during initial assembly, but is invalid once the
+diff --git a/gas/config/xtensa-relax.c b/gas/config/xtensa-relax.c
+index cb296ed85ed2..daf15d52c259 100644
+--- a/gas/config/xtensa-relax.c
++++ b/gas/config/xtensa-relax.c
+@@ -87,13 +87,7 @@
+ when the first and second operands are not the same as specified
+ by the "| %at!=%as" precondition clause.
+ {"l32i %at,%as,%imm | %at!=%as",
+- "LITERAL %imm; l32r %at,%LITERAL; add %at,%at,%as; l32i %at,%at,0"}
+-
+- There is special case for loop instructions here, but because we do
+- not currently have the ability to represent the difference of two
+- symbols, the conversion requires special code in the assembler to
+- write the operands of the addi/addmi pair representing the
+- difference of the old and new loop end label. */
++ "LITERAL %imm; l32r %at,%LITERAL; add %at,%at,%as; l32i %at,%at,0"} */
+
+ #include "as.h"
+ #include "xtensa-isa.h"
+@@ -306,44 +300,83 @@ static string_pattern_pair widen_spec_list[] =
+ {"l32i %at,%as,%imm | %at!=%as ? IsaUseConst16",
+ "const16 %at,HI16U(%imm); const16 %at,LOW16U(%imm); add %at,%at,%as; l32i %at,%at,0"},
+
+- /* This is only PART of the loop instruction. In addition,
+- hardcoded into its use is a modification of the final operand in
+- the instruction in bytes 9 and 12. */
+- {"loop %as,%label | %as!=1 ? IsaUseLoops",
++ /* Widening loops with literals. */
++ {"loop %as,%label | %as!=1 ? IsaUseLoops ? IsaUseL32R",
++ "loop %as,%LABEL;"
++ "rsr.lend %as;" /* LEND */
++ "wsr.lbeg %as;" /* LBEG */
++ "LITERAL %label;"
++ "l32r %as, %LITERAL;"
++ "nop;"
++ "wsr.lend %as;"
++ "isync;"
++ "rsr.lcount %as;" /* LCOUNT */
++ "addi %as, %as, 1;"
++ "LABEL"},
++ {"loopgtz %as,%label | %as!=1 ? IsaUseLoops ? IsaUseL32R",
++ "beqz %as,%label;"
++ "bltz %as,%label;"
++ "loopgtz %as,%LABEL;"
++ "rsr.lend %as;" /* LEND */
++ "wsr.lbeg %as;" /* LBEG */
++ "LITERAL %label;"
++ "l32r %as, %LITERAL;"
++ "nop;"
++ "wsr.lend %as;"
++ "isync;"
++ "rsr.lcount %as;" /* LCOUNT */
++ "addi %as, %as, 1;"
++ "LABEL"},
++ {"loopnez %as,%label | %as!=1 ? IsaUseLoops ? IsaUseL32R",
++ "beqz %as,%label;"
++ "loopnez %as,%LABEL;"
++ "rsr.lend %as;" /* LEND */
++ "wsr.lbeg %as;" /* LBEG */
++ "LITERAL %label;"
++ "l32r %as, %LITERAL;"
++ "nop;"
++ "wsr.lend %as;"
++ "isync;"
++ "rsr.lcount %as;" /* LCOUNT */
++ "addi %as, %as, 1;"
++ "LABEL"},
++
++ /* Widening loops with const16. */
++ {"loop %as,%label | %as!=1 ? IsaUseLoops ? IsaUseConst16",
+ "loop %as,%LABEL;"
+ "rsr.lend %as;" /* LEND */
+ "wsr.lbeg %as;" /* LBEG */
+- "addi %as, %as, 0;" /* lo8(%label-%LABEL1) */
+- "addmi %as, %as, 0;" /* mid8(%label-%LABEL1) */
++ "const16 %as,HI16U(%label);"
++ "const16 %as,LOW16U(%label);"
+ "wsr.lend %as;"
+ "isync;"
+ "rsr.lcount %as;" /* LCOUNT */
+- "addi %as, %as, 1;" /* density -> addi.n %as, %as, 1 */
++ "addi %as, %as, 1;"
+ "LABEL"},
+- {"loopgtz %as,%label | %as!=1 ? IsaUseLoops",
++ {"loopgtz %as,%label | %as!=1 ? IsaUseLoops ? IsaUseConst16",
+ "beqz %as,%label;"
+ "bltz %as,%label;"
+ "loopgtz %as,%LABEL;"
+ "rsr.lend %as;" /* LEND */
+ "wsr.lbeg %as;" /* LBEG */
+- "addi %as, %as, 0;" /* lo8(%label-%LABEL1) */
+- "addmi %as, %as, 0;" /* mid8(%label-%LABEL1) */
++ "const16 %as,HI16U(%label);"
++ "const16 %as,LOW16U(%label);"
+ "wsr.lend %as;"
+ "isync;"
+ "rsr.lcount %as;" /* LCOUNT */
+- "addi %as, %as, 1;" /* density -> addi.n %as, %as, 1 */
++ "addi %as, %as, 1;"
+ "LABEL"},
+- {"loopnez %as,%label | %as!=1 ? IsaUseLoops",
++ {"loopnez %as,%label | %as!=1 ? IsaUseLoops ? IsaUseConst16",
+ "beqz %as,%label;"
+ "loopnez %as,%LABEL;"
+ "rsr.lend %as;" /* LEND */
+ "wsr.lbeg %as;" /* LBEG */
+- "addi %as, %as, 0;" /* lo8(%label-%LABEL1) */
+- "addmi %as, %as, 0;" /* mid8(%label-%LABEL1) */
++ "const16 %as,HI16U(%label);"
++ "const16 %as,LOW16U(%label);"
+ "wsr.lend %as;"
+ "isync;"
+ "rsr.lcount %as;" /* LCOUNT */
+- "addi %as, %as, 1;" /* density -> addi.n %as, %as, 1 */
++ "addi %as, %as, 1;"
+ "LABEL"},
+
+ /* Relaxing to wide branches. Order is important here. With wide
+--
+2.11.0
+
diff --git a/toolchain/binutils/patches/2.32/0005-xtensa-gas-put-.literal_position-at-section-start.patch b/toolchain/binutils/patches/2.32/0005-xtensa-gas-put-.literal_position-at-section-start.patch
new file mode 100644
index 000000000..b4bbc27b3
--- /dev/null
+++ b/toolchain/binutils/patches/2.32/0005-xtensa-gas-put-.literal_position-at-section-start.patch
@@ -0,0 +1,96 @@
+From 471702ac4a57878a06e8167f063274cf413e548d Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Mon, 8 Apr 2019 13:47:18 -0700
+Subject: [PATCH] xtensa: gas: put .literal_position at section start
+
+Provide literal position at the beginning of each section for literal
+space reserved by relaxations when text-section-literals or
+auto-litpools options are used. Remove code that adds fill frag to the
+literal section for every .literal_position directive to avoid creation
+of empty literal sections.
+
+Fix auto-litpools tests that got literal pool address changes.
+
+gas/
+2019-04-11 Max Filippov <jcmvbkbc@gmail.com>
+
+ * config/tc-xtensa.c (xtensa_is_init_fini): Add declaration.
+ (xtensa_mark_literal_pool_location): Don't add fill frag to literal
+ section that records literal pool location.
+ (md_begin): Call xtensa_mark_literal_pool_location when text
+ section literals or auto litpools are used.
+ (xtensa_elf_section_change_hook): Call
+ xtensa_mark_literal_pool_location when text section literals or
+ auto litpools are used, there's no literal pool location defined
+ for the current section and it's not .init or .fini.
+
+Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
+---
+ gas/config/tc-xtensa.c | 22 +++++++++-------------
+ 1 file changed, 9 insertions(+), 13 deletions(-)
+
+diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
+index 0cc06361cf6f..6a80e76fed8c 100644
+--- a/gas/config/tc-xtensa.c
++++ b/gas/config/tc-xtensa.c
+@@ -497,6 +497,7 @@ static fixS *xg_append_jump (fragS *fragP, symbolS *sym, offsetT offset);
+ static void xtensa_maybe_create_literal_pool_frag (bfd_boolean, bfd_boolean);
+ static bfd_boolean auto_litpools = FALSE;
+ static int auto_litpool_limit = 0;
++static bfd_boolean xtensa_is_init_fini (segT seg);
+
+ /* Alignment Functions. */
+
+@@ -4797,7 +4798,6 @@ xtensa_mark_literal_pool_location (void)
+ {
+ /* Any labels pointing to the current location need
+ to be adjusted to after the literal pool. */
+- emit_state s;
+ fragS *pool_location;
+
+ if (use_literal_section)
+@@ -4818,19 +4818,7 @@ xtensa_mark_literal_pool_location (void)
+ RELAX_LITERAL_POOL_END, NULL, 0, NULL);
+ xtensa_set_frag_assembly_state (frag_now);
+
+- /* Now put a frag into the literal pool that points to this location. */
+ set_literal_pool_location (now_seg, pool_location);
+- xtensa_switch_to_non_abs_literal_fragment (&s);
+- frag_align (2, 0, 0);
+- record_alignment (now_seg, 2);
+-
+- /* Close whatever frag is there. */
+- frag_variant (rs_fill, 0, 0, 0, NULL, 0, NULL);
+- xtensa_set_frag_assembly_state (frag_now);
+- frag_now->tc_frag_data.literal_frag = pool_location;
+- frag_variant (rs_fill, 0, 0, 0, NULL, 0, NULL);
+- xtensa_restore_emit_state (&s);
+- xtensa_set_frag_assembly_state (frag_now);
+ }
+
+
+@@ -5334,6 +5322,9 @@ md_begin (void)
+ /* Set up the assembly state. */
+ if (!frag_now->tc_frag_data.is_assembly_state_set)
+ xtensa_set_frag_assembly_state (frag_now);
++
++ if (!use_literal_section)
++ xtensa_mark_literal_pool_location ();
+ }
+
+
+@@ -5933,6 +5924,11 @@ xtensa_elf_section_change_hook (void)
+ /* Set up the assembly state. */
+ if (!frag_now->tc_frag_data.is_assembly_state_set)
+ xtensa_set_frag_assembly_state (frag_now);
++
++ if (!use_literal_section
++ && seg_info (now_seg)->tc_segment_info_data.literal_pool_loc == NULL
++ && !xtensa_is_init_fini (now_seg))
++ xtensa_mark_literal_pool_location ();
+ }
+
+
+--
+2.11.0
+
diff --git a/toolchain/binutils/patches/2.32/lm32.patch b/toolchain/binutils/patches/2.32/lm32.patch
new file mode 100644
index 000000000..176f09982
--- /dev/null
+++ b/toolchain/binutils/patches/2.32/lm32.patch
@@ -0,0 +1,25 @@
+diff -Nur binutils-2.32.orig/bfd/config.bfd binutils-2.32/bfd/config.bfd
+--- binutils-2.32.orig/bfd/config.bfd 2019-01-19 17:01:32.000000000 +0100
++++ binutils-2.32/bfd/config.bfd 2019-10-08 18:05:48.695171206 +0200
+@@ -787,7 +787,7 @@
+ ;;
+
+ lm32-*-*linux*)
+- targ_defvec=lm32_elf32_fdpic_vec
++ targ_defvec=lm32_elf32_vec
+ targ_selvecs=lm32_elf32_vec
+ ;;
+
+diff -Nur binutils-2.32.orig/ld/configure.tgt binutils-2.32/ld/configure.tgt
+--- binutils-2.32.orig/ld/configure.tgt 2019-01-19 17:01:33.000000000 +0100
++++ binutils-2.32/ld/configure.tgt 2019-10-08 18:04:50.170788572 +0200
+@@ -388,7 +388,8 @@
+ ;;
+ iq2000-*-elf) targ_emul=elf32iq2000 ; targ_extra_emuls="elf32iq10"
+ ;;
+-lm32-*-*linux*) targ_emul=elf32lm32fd ;;
++lm32-*-*linux*) targ_emul=elf32lm32
++ ;;
+ lm32-*-*) targ_emul=elf32lm32 ; targ_extra_emuls="elf32lm32fd"
+ ;;
+ m32c-*-elf | m32c-*-rtems*)
diff --git a/toolchain/binutils/patches/2.32/or1k.patch b/toolchain/binutils/patches/2.32/or1k.patch
new file mode 100644
index 000000000..dcb5f467b
--- /dev/null
+++ b/toolchain/binutils/patches/2.32/or1k.patch
@@ -0,0 +1,17 @@
+diff -Nur binutils-2.32.orig/bfd/elf32-or1k.c binutils-2.32/bfd/elf32-or1k.c
+--- binutils-2.32.orig/bfd/elf32-or1k.c 2019-01-19 17:01:33.000000000 +0100
++++ binutils-2.32/bfd/elf32-or1k.c 2019-10-06 04:55:05.439891597 +0200
+@@ -2379,8 +2379,11 @@
+ or1k_write_plt_entry (output_bfd, splt->contents + h->plt.offset,
+ plt0, plt1, plt2, OR1K_JR(12));
+
+- /* Fill in the entry in the global offset table. */
+- bfd_put_32 (output_bfd, plt_addr, sgot->contents + got_offset);
++ /* Fill in the entry in the global offset table. We initialize it to
++ point to the top of the plt. This is done to lazy lookup the actual
++ symbol as the first plt entry will be setup by libc to call the
++ runtime dynamic linker. */
++ bfd_put_32 (output_bfd, plt_base_addr, sgot->contents + got_offset);
+
+ /* Fill in the entry in the .rela.plt section. */
+ rela.r_offset = got_addr;
diff --git a/toolchain/binutils/patches/2.35/crisv32.patch b/toolchain/binutils/patches/2.35/crisv32.patch
new file mode 100644
index 000000000..17f155a4b
--- /dev/null
+++ b/toolchain/binutils/patches/2.35/crisv32.patch
@@ -0,0 +1,12 @@
+diff -Nur binutils-2.35.orig/bfd/elf32-cris.c binutils-2.35/bfd/elf32-cris.c
+--- binutils-2.35.orig/bfd/elf32-cris.c 2020-07-24 11:12:19.000000000 +0200
++++ binutils-2.35/bfd/elf32-cris.c 2020-09-16 10:45:43.610956675 +0200
+@@ -3358,7 +3358,7 @@
+
+ /* No need to do anything if we're not creating a shared object. */
+ if (! bfd_link_pic (info)
+- || UNDEFWEAK_NO_DYNAMIC_RELOC (info, h))
++ || (h != NULL && UNDEFWEAK_NO_DYNAMIC_RELOC (info, h)))
+ break;
+
+ /* We may need to create a reloc section in the dynobj and made room
diff --git a/toolchain/binutils/patches/2.37/0001-i386-Allow-GOT32-relocations-against-ABS-symbols.patch b/toolchain/binutils/patches/2.37/0001-i386-Allow-GOT32-relocations-against-ABS-symbols.patch
new file mode 100644
index 000000000..3e2928226
--- /dev/null
+++ b/toolchain/binutils/patches/2.37/0001-i386-Allow-GOT32-relocations-against-ABS-symbols.patch
@@ -0,0 +1,47 @@
+From 30a954525f4e53a9cd50a1a8a6f201c7cf6595c7 Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Mon, 7 Feb 2022 15:22:19 -0800
+Subject: [PATCH] i386: Allow GOT32 relocations against ABS symbols
+
+GOT32 relocations are allowed since absolute value + addend is stored in
+the GOT slot.
+
+Tested on glibc 2.35 build with GCC 11.2 and -Os.
+
+bfd/
+
+ PR ld/28870
+ * elfxx-x86.c (_bfd_elf_x86_valid_reloc_p): Also allow GOT32
+ relocations.
+
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+
+diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
+index 7ac2411fc80..d00dc45677b 100644
+--- a/bfd/elfxx-x86.c
++++ b/bfd/elfxx-x86.c
+@@ -1942,9 +1942,9 @@ _bfd_elf_x86_valid_reloc_p (asection *input_section,
+ irel = *rel;
+
+ /* Only allow relocations against absolute symbol, which can be
+- resolved as absolute value + addend. GOTPCREL relocations
+- are allowed since absolute value + addend is stored in the
+- GOT slot. */
++ resolved as absolute value + addend. GOTPCREL and GOT32
++ relocations are allowed since absolute value + addend is
++ stored in the GOT slot. */
+ if (bed->target_id == X86_64_ELF_DATA)
+ {
+ r_type &= ~R_X86_64_converted_reloc_bit;
+@@ -1965,7 +1965,9 @@ _bfd_elf_x86_valid_reloc_p (asection *input_section,
+ else
+ valid_p = (r_type == R_386_32
+ || r_type == R_386_16
+- || r_type == R_386_8);
++ || r_type == R_386_8
++ || r_type == R_386_GOT32
++ || r_type == R_386_GOT32X);
+
+ if (valid_p)
+ *no_dynreloc_p = true;
diff --git a/toolchain/binutils/patches/2.37/nds32-uclibc.patch b/toolchain/binutils/patches/2.37/nds32-uclibc.patch
new file mode 100644
index 000000000..b14e98511
--- /dev/null
+++ b/toolchain/binutils/patches/2.37/nds32-uclibc.patch
@@ -0,0 +1,15 @@
+diff -Nur binutils-2.37.orig/ld/configure.tgt binutils-2.37/ld/configure.tgt
+--- binutils-2.37.orig/ld/configure.tgt 2021-07-08 13:37:20.000000000 +0200
++++ binutils-2.37/ld/configure.tgt 2022-01-21 03:23:49.296011413 +0100
+@@ -594,9 +594,9 @@
+ nds32*be-*-elf*) targ_emul=nds32belf
+ targ_extra_emuls="nds32elf nds32elf16m nds32belf16m"
+ ;;
+-nds32*le-*-linux-gnu*) targ_emul=nds32elf_linux
++nds32*le-*-linux-*) targ_emul=nds32elf_linux
+ ;;
+-nds32*be-*-linux-gnu*) targ_emul=nds32belf_linux
++nds32*be-*-linux-*) targ_emul=nds32belf_linux
+ ;;
+ nios2*-*-linux*) targ_emul=nios2linux
+ ;;
diff --git a/toolchain/binutils/patches/2.38/0001-binutils-2.38-vs.-ppc32-linux-kernel.patch b/toolchain/binutils/patches/2.38/0001-binutils-2.38-vs.-ppc32-linux-kernel.patch
new file mode 100644
index 000000000..c62652c95
--- /dev/null
+++ b/toolchain/binutils/patches/2.38/0001-binutils-2.38-vs.-ppc32-linux-kernel.patch
@@ -0,0 +1,55 @@
+From ed9b2e40ebffec835d63473367da8dd8f80d7d5b Mon Sep 17 00:00:00 2001
+From: Alan Modra <amodra@gmail.com>
+Date: Mon, 21 Feb 2022 10:58:57 +1030
+Subject: [PATCH] binutils 2.38 vs. ppc32 linux kernel
+
+Commit b25f942e18d6 made .machine more strict. Weaken it again.
+
+ * config/tc-ppc.c (ppc_machine): Treat an early .machine specially,
+ keeping sticky options to work around gcc bugs.
+
+(cherry picked from commit cebc89b9328eab994f6b0314c263f94e7949a553)
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+---
+ gas/config/tc-ppc.c | 25 ++++++++++++++++++++++++-
+ 1 file changed, 24 insertions(+), 1 deletion(-)
+
+diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
+index 054f9c72161..89bc7d3f9b9 100644
+--- a/gas/config/tc-ppc.c
++++ b/gas/config/tc-ppc.c
+@@ -5965,7 +5965,30 @@ ppc_machine (int ignore ATTRIBUTE_UNUSED)
+ options do not count as a new machine, instead they add
+ to currently selected opcodes. */
+ ppc_cpu_t machine_sticky = 0;
+- new_cpu = ppc_parse_cpu (ppc_cpu, &machine_sticky, cpu_string);
++ /* Unfortunately, some versions of gcc emit a .machine
++ directive very near the start of the compiler's assembly
++ output file. This is bad because it overrides user -Wa
++ cpu selection. Worse, there are versions of gcc that
++ emit the *wrong* cpu, not even respecting the -mcpu given
++ to gcc. See gcc pr101393. And to compound the problem,
++ as of 20220222 gcc doesn't pass the correct cpu option to
++ gas on the command line. See gcc pr59828. Hack around
++ this by keeping sticky options for an early .machine. */
++ asection *sec;
++ for (sec = stdoutput->sections; sec != NULL; sec = sec->next)
++ {
++ segment_info_type *info = seg_info (sec);
++ /* Are the frags for this section perturbed from their
++ initial state? Even .align will count here. */
++ if (info != NULL
++ && (info->frchainP->frch_root != info->frchainP->frch_last
++ || info->frchainP->frch_root->fr_type != rs_fill
++ || info->frchainP->frch_root->fr_fix != 0))
++ break;
++ }
++ new_cpu = ppc_parse_cpu (ppc_cpu,
++ sec == NULL ? &sticky : &machine_sticky,
++ cpu_string);
+ if (new_cpu != 0)
+ ppc_cpu = new_cpu;
+ else
+--
+2.30.2
+
diff --git a/toolchain/binutils/patches/2.38/nds32-uclibc.patch b/toolchain/binutils/patches/2.38/nds32-uclibc.patch
new file mode 100644
index 000000000..b14e98511
--- /dev/null
+++ b/toolchain/binutils/patches/2.38/nds32-uclibc.patch
@@ -0,0 +1,15 @@
+diff -Nur binutils-2.37.orig/ld/configure.tgt binutils-2.37/ld/configure.tgt
+--- binutils-2.37.orig/ld/configure.tgt 2021-07-08 13:37:20.000000000 +0200
++++ binutils-2.37/ld/configure.tgt 2022-01-21 03:23:49.296011413 +0100
+@@ -594,9 +594,9 @@
+ nds32*be-*-elf*) targ_emul=nds32belf
+ targ_extra_emuls="nds32elf nds32elf16m nds32belf16m"
+ ;;
+-nds32*le-*-linux-gnu*) targ_emul=nds32elf_linux
++nds32*le-*-linux-*) targ_emul=nds32elf_linux
+ ;;
+-nds32*be-*-linux-gnu*) targ_emul=nds32belf_linux
++nds32*be-*-linux-*) targ_emul=nds32belf_linux
+ ;;
+ nios2*-*-linux*) targ_emul=nios2linux
+ ;;
diff --git a/toolchain/binutils/patches/2.41/lm32.patch b/toolchain/binutils/patches/2.41/lm32.patch
new file mode 100644
index 000000000..dcbb0d541
--- /dev/null
+++ b/toolchain/binutils/patches/2.41/lm32.patch
@@ -0,0 +1,24 @@
+diff -Nur binutils-2.41.orig/bfd/config.bfd binutils-2.41/bfd/config.bfd
+--- binutils-2.41.orig/bfd/config.bfd 2023-07-03 01:00:00.000000000 +0200
++++ binutils-2.41/bfd/config.bfd 2023-09-07 17:03:12.853045008 +0200
+@@ -803,7 +803,7 @@
+ ;;
+
+ lm32-*-*linux*)
+- targ_defvec=lm32_elf32_fdpic_vec
++ targ_defvec=lm32_elf32_vec
+ targ_selvecs=lm32_elf32_vec
+ ;;
+
+diff -Nur binutils-2.41.orig/ld/configure.tgt binutils-2.41/ld/configure.tgt
+--- binutils-2.41.orig/ld/configure.tgt 2023-07-03 01:00:00.000000000 +0200
++++ binutils-2.41/ld/configure.tgt 2023-09-07 17:03:44.364298973 +0200
+@@ -468,7 +468,7 @@
+ targ_extra_emuls="elf32iq10"
+ targ_extra_ofiles=ldelfgen.o
+ ;;
+-lm32-*-*linux*) targ_emul=elf32lm32fd
++lm32-*-*linux*) targ_emul=elf32lm32
+ ;;
+ lm32-*-*) targ_emul=elf32lm32
+ targ_extra_emuls="elf32lm32fd"
diff --git a/toolchain/binutils/patches/2.42/j2.patch b/toolchain/binutils/patches/2.42/j2.patch
new file mode 100644
index 000000000..42c7274aa
--- /dev/null
+++ b/toolchain/binutils/patches/2.42/j2.patch
@@ -0,0 +1,584 @@
+diff -Nur binutils-2.42.orig/bfd/archures.c binutils-2.42/bfd/archures.c
+--- binutils-2.42.orig/bfd/archures.c 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/bfd/archures.c 2024-02-22 16:50:03.657904349 +0100
+@@ -284,10 +284,12 @@
+ .#define bfd_mach_sh_dsp 0x2d
+ .#define bfd_mach_sh2a 0x2a
+ .#define bfd_mach_sh2a_nofpu 0x2b
++.#define bfd_mach_shj2 0x2c
+ .#define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
+ .#define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
+ .#define bfd_mach_sh2a_or_sh4 0x2a3
+ .#define bfd_mach_sh2a_or_sh3e 0x2a4
++.#define bfd_mach_sh2a_nofpu_or_sh3_nommu_or_shj2_nofpu 0x2a5
+ .#define bfd_mach_sh2e 0x2e
+ .#define bfd_mach_sh3 0x30
+ .#define bfd_mach_sh3_nommu 0x31
+diff -Nur binutils-2.42.orig/bfd/bfd-in2.h binutils-2.42/bfd/bfd-in2.h
+--- binutils-2.42.orig/bfd/bfd-in2.h 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/bfd/bfd-in2.h 2024-02-22 16:50:03.661904381 +0100
+@@ -1540,10 +1540,12 @@
+ #define bfd_mach_sh_dsp 0x2d
+ #define bfd_mach_sh2a 0x2a
+ #define bfd_mach_sh2a_nofpu 0x2b
++#define bfd_mach_shj2 0x2c
+ #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
+ #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
+ #define bfd_mach_sh2a_or_sh4 0x2a3
+ #define bfd_mach_sh2a_or_sh3e 0x2a4
++#define bfd_mach_sh2a_nofpu_or_sh3_nommu_or_shj2_nofpu 0x2a5
+ #define bfd_mach_sh2e 0x2e
+ #define bfd_mach_sh3 0x30
+ #define bfd_mach_sh3_nommu 0x31
+diff -Nur binutils-2.42.orig/bfd/cpu-sh.c binutils-2.42/bfd/cpu-sh.c
+--- binutils-2.42.orig/bfd/cpu-sh.c 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/bfd/cpu-sh.c 2024-02-22 16:50:03.661904381 +0100
+@@ -63,7 +63,9 @@
+ N (bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu, "sh2a-nofpu-or-sh4-nommu-nofpu", false, arch_info_struct + 16),
+ N (bfd_mach_sh2a_nofpu_or_sh3_nommu, "sh2a-nofpu-or-sh3-nommu", false, arch_info_struct + 17),
+ N (bfd_mach_sh2a_or_sh4, "sh2a-or-sh4", false, arch_info_struct + 18),
+- N (bfd_mach_sh2a_or_sh3e, "sh2a-or-sh3e", false, NULL)
++ N (bfd_mach_sh2a_or_sh3e, "sh2a-or-sh3e", false, arch_info_struct + 19),
++ N (bfd_mach_shj2, "j2", false, arch_info_struct + 20),
++ N (bfd_mach_sh2a_nofpu_or_sh3_nommu_or_shj2_nofpu, "sh2a-nofpu-or-sh3-nommu-or-j2-nofpu", false, NULL)
+ };
+
+ const bfd_arch_info_type bfd_sh_arch =
+@@ -99,6 +101,8 @@
+ { bfd_mach_sh4_nofpu, arch_sh4_nofpu, arch_sh4_nofpu_up },
+ { bfd_mach_sh4_nommu_nofpu, arch_sh4_nommu_nofpu, arch_sh4_nommu_nofpu_up },
+ { bfd_mach_sh4a_nofpu, arch_sh4a_nofpu, arch_sh4a_nofpu_up },
++ { bfd_mach_shj2, arch_shj2, arch_shj2_up },
++ { bfd_mach_sh2a_nofpu_or_sh3_nommu_or_shj2_nofpu, arch_sh2a_nofpu_or_sh3_nommu_or_shj2_nofpu, arch_sh2a_nofpu_or_sh3_nommu_or_shj2_nofpu_up },
+ { 0, 0, 0 } /* Terminator. */
+ };
+
+diff -Nur binutils-2.42.orig/binutils/readelf.c binutils-2.42/binutils/readelf.c
+--- binutils-2.42.orig/binutils/readelf.c 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/binutils/readelf.c 2024-02-22 16:53:19.799614987 +0100
+@@ -4326,6 +4326,12 @@
+ case EF_SH2A_SH3E:
+ out = stpcpy (out, ", sh2a-or-sh3e");
+ break;
++ case EF_SHJ2:
++ out = stpcpy (out, ", j2");
++ break;
++ case EF_SH2A_SH3_SHJ2:
++ out = stpcpy (out, ", sh2a-nofpu-or-sh3-nommu-or-shj2 -nofpu");
++ break;
+ default:
+ out = stpcpy (out, _(", unknown ISA"));
+ break;
+diff -Nur binutils-2.42.orig/gas/config/tc-sh.c binutils-2.42/gas/config/tc-sh.c
+--- binutils-2.42.orig/gas/config/tc-sh.c 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/config/tc-sh.c 2024-02-22 16:50:03.685904574 +0100
+@@ -1251,6 +1251,8 @@
+ if (*ptr == ',')
+ ptr++;
+ get_operand (&ptr, operand + 2);
++ if (strcmp (info->name,"cas") == 0)
++ operand[2].type = A_IND_0;
+ }
+ }
+ }
+@@ -1775,7 +1777,10 @@
+ goto fail;
+ reg_m = 4;
+ break;
+-
++ case A_IND_0:
++ if (user->reg != 0)
++ goto fail;
++ break;
+ default:
+ printf (_("unhandled %d\n"), arg);
+ goto fail;
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh3-nommu.s binutils-2.42/gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh3-nommu.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh3-nommu.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh3-nommu.s 2024-02-22 16:50:03.685904574 +0100
+@@ -12,8 +12,6 @@
+ sh2a_nofpu_or_sh3_nommu:
+ ! Instructions introduced into sh2a-nofpu-or-sh3-nommu
+ pref @r4 ;!/* 0000nnnn10000011 pref @<REG_N> */{"pref",{A_IND_N},{HEX_0,REG_N,HEX_8,HEX_3}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
+
+ ! Instructions inherited from ancestors: sh sh2
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s binutils-2.42/gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s 2024-02-22 16:50:03.685904574 +0100
+@@ -12,7 +12,7 @@
+ sh2a_nofpu_or_sh4_nommu_nofpu:
+ ! Instructions introduced into sh2a-nofpu-or-sh4-nommu-nofpu
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -119,8 +119,8 @@
+ rte ;!/* 0000000000101011 rte */{"rte",{0},{HEX_0,HEX_0,HEX_2,HEX_B}, arch_sh_up}
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a-nofpu.s binutils-2.42/gas/testsuite/gas/sh/arch/sh2a-nofpu.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a-nofpu.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh2a-nofpu.s 2024-02-22 16:50:03.685904574 +0100
+@@ -64,7 +64,7 @@
+ movu.b @(2048,r5),r4 ;!/* 0011nnnnmmmm0001 1000dddddddddddd movu.b @(<DISP12>,<REG_M>),<REG_N> */ {"movu.b",{A_DISP_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_8,DISP0_12}, arch_sh2a_nofpu_up | arch_op32}
+ movu.w @(2048,r5),r4 ;!/* 0011nnnnmmmm0001 1001dddddddddddd movu.w @(<DISP12>,<REG_M>),<REG_N> */ {"movu.w",{A_DISP_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_9,DISP0_12BY2}, arch_sh2a_nofpu_up | arch_op32}
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh4-nommu-nofpu
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh2a-nofpu-or-sh4-nommu-nofpu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -171,8 +171,8 @@
+ rte ;!/* 0000000000101011 rte */{"rte",{0},{HEX_0,HEX_0,HEX_2,HEX_B}, arch_sh_up}
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a-or-sh3e.s binutils-2.42/gas/testsuite/gas/sh/arch/sh2a-or-sh3e.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a-or-sh3e.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh2a-or-sh3e.s 2024-02-22 16:50:03.689904606 +0100
+@@ -13,7 +13,7 @@
+ ! Instructions introduced into sh2a-or-sh3e
+ fsqrt fr1 ;!/* 1111nnnn01101101 fsqrt <F_REG_N> */{"fsqrt",{F_REG_N},{HEX_F,REG_N,HEX_6,HEX_D}, arch_sh2a_or_sh3e_up}
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2e
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh2e
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -124,8 +124,8 @@
+ rte ;!/* 0000000000101011 rte */{"rte",{0},{HEX_0,HEX_0,HEX_2,HEX_B}, arch_sh_up}
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a-or-sh4.s binutils-2.42/gas/testsuite/gas/sh/arch/sh2a-or-sh4.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a-or-sh4.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh2a-or-sh4.s 2024-02-22 16:50:03.689904606 +0100
+@@ -39,7 +39,7 @@
+ fsub dr4,dr2 ;!/* 1111nnn0mmm00001 fsub <D_REG_M>,<D_REG_N>*/{"fsub",{D_REG_M,D_REG_N},{HEX_F,REG_N,REG_M,HEX_1}, arch_sh2a_or_sh4_up}
+ ftrc dr2,FPUL ;!/* 1111nnnn00111101 ftrc <D_REG_N>,FPUL*/{"ftrc",{D_REG_N,FPUL_M},{HEX_F,REG_N,HEX_3,HEX_D}, arch_sh2a_or_sh4_up}
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh4-nommu-nofpu sh2a-or-sh3e sh2e
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh2a-nofpu-or-sh4-nommu-nofpu sh2a-or-sh3e sh2e
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -150,8 +150,8 @@
+ rte ;!/* 0000000000101011 rte */{"rte",{0},{HEX_0,HEX_0,HEX_2,HEX_B}, arch_sh_up}
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a.s binutils-2.42/gas/testsuite/gas/sh/arch/sh2a.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh2a.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh2a.s 2024-02-22 16:50:03.689904606 +0100
+@@ -16,7 +16,7 @@
+ fmov.s fr2,@(2048,r4) ;!/* 0011nnnnmmmm0001 0011dddddddddddd fmov.s <F_REG_M>,@(<DISP12>,<REG_N>) */ {"fmov.s",{F_REG_M,A_DISP_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_3,DISP1_12BY4}, arch_sh2a_up | arch_op32}
+ fmov.s @(2048,r5),fr1 ;!/* 0011nnnnmmmm0001 0111dddddddddddd fmov.s @(<DISP12>,<REG_M>),<F_REG_N> */ {"fmov.s",{A_DISP_REG_M,F_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_7,DISP0_12BY4}, arch_sh2a_up | arch_op32}
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh4-nommu-nofpu sh2a-or-sh3e sh2a-or-sh4 sh2e
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh2a-nofpu-or-sh4-nommu-nofpu sh2a-or-sh3e sh2a-or-sh4 sh2e
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -140,8 +140,8 @@
+ rte ;!/* 0000000000101011 rte */{"rte",{0},{HEX_0,HEX_0,HEX_2,HEX_B}, arch_sh_up}
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh3-dsp.s binutils-2.42/gas/testsuite/gas/sh/arch/sh3-dsp.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh3-dsp.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh3-dsp.s 2024-02-22 16:50:03.689904606 +0100
+@@ -12,7 +12,7 @@
+ sh3_dsp:
+ ! Instructions introduced into sh3-dsp
+
+-! Instructions inherited from ancestors: sh sh-dsp sh2 sh2a-nofpu-or-sh3-nommu sh3 sh3-nommu
++! Instructions inherited from ancestors: sh sh-dsp sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh3 sh3-nommu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -152,8 +152,8 @@
+ setrc #4 ;!/* 10000010i8*1.... setrc #<imm> */{"setrc",{A_IMM},{HEX_8,HEX_2,IMM0_8}, arch_sh_dsp_up}
+ repeat 10 20 r4 ;!/* repeat start end <REG_N> */{"repeat",{A_DISP_PC,A_DISP_PC,A_REG_N},{REPEAT,REG_N,HEX_1,HEX_4}, arch_sh_dsp_up}
+ repeat 10 20 #4 ;!/* repeat start end #<imm> */{"repeat",{A_DISP_PC,A_DISP_PC,A_IMM},{REPEAT,HEX_2,IMM0_8,HEX_8}, arch_sh_dsp_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh3e.s binutils-2.42/gas/testsuite/gas/sh/arch/sh3e.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh3e.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh3e.s 2024-02-22 16:50:03.689904606 +0100
+@@ -12,7 +12,7 @@
+ sh3e:
+ ! Instructions introduced into sh3e
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-or-sh3e sh2e sh3 sh3-nommu
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh2a-or-sh3e sh2e sh3 sh3-nommu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -132,8 +132,8 @@
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sets ;!/* 0000000001011000 sets */{"sets",{0},{HEX_0,HEX_0,HEX_5,HEX_8}, arch_sh3_nommu_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh3-nommu.s binutils-2.42/gas/testsuite/gas/sh/arch/sh3-nommu.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh3-nommu.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh3-nommu.s 2024-02-22 16:50:03.689904606 +0100
+@@ -26,7 +26,7 @@
+ stc.l SPC,@-r4 ;!/* 0100nnnn01000011 stc.l SPC,@-<REG_N> */{"stc.l",{A_SPC,A_DEC_N},{HEX_4,REG_N,HEX_4,HEX_3}, arch_sh3_nommu_up}
+ stc.l r1_bank,@-r4 ;!/* 0100nnnn1xxx0011 stc.l Rn_BANK,@-<REG_N> */{"stc.l",{A_REG_B,A_DEC_N},{HEX_4,REG_N,REG_B,HEX_3}, arch_sh3_nommu_up}
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -133,8 +133,8 @@
+ rte ;!/* 0000000000101011 rte */{"rte",{0},{HEX_0,HEX_0,HEX_2,HEX_B}, arch_sh_up}
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh3.s binutils-2.42/gas/testsuite/gas/sh/arch/sh3.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh3.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh3.s 2024-02-22 16:50:03.689904606 +0100
+@@ -13,7 +13,7 @@
+ ! Instructions introduced into sh3
+ ldtlb ;!/* 0000000000111000 ldtlb */{"ldtlb",{0},{HEX_0,HEX_0,HEX_3,HEX_8}, arch_sh3_up}
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh3-nommu
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh3-nommu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -128,8 +128,8 @@
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sets ;!/* 0000000001011000 sets */{"sets",{0},{HEX_0,HEX_0,HEX_5,HEX_8}, arch_sh3_nommu_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4al-dsp.s binutils-2.42/gas/testsuite/gas/sh/arch/sh4al-dsp.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4al-dsp.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh4al-dsp.s 2024-02-22 16:50:03.689904606 +0100
+@@ -48,7 +48,7 @@
+ dct pswap x1,m0 ;!/* 10011101xx01zzzz pswap <DSP_REG_X>,<DSP_REG_N> */ {"pswap", {DSP_REG_X,DSP_REG_N},{PPI,PPIC,HEX_9,HEX_D,HEX_1}, arch_sh4al_dsp_up}
+ dct pswap y0,m0 ;!/* 1011110101yyzzzz pswap <DSP_REG_Y>,<DSP_REG_N> */ {"pswap", {DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_B,HEX_D,HEX_4}, arch_sh4al_dsp_up}
+
+-! Instructions inherited from ancestors: sh sh-dsp sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh4-nommu-nofpu sh3 sh3-dsp sh3-nommu sh4-nofpu sh4-nommu-nofpu sh4a-nofpu
++! Instructions inherited from ancestors: sh sh-dsp sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh2a-nofpu-or-sh4-nommu-nofpu sh3 sh3-dsp sh3-nommu sh4-nofpu sh4-nommu-nofpu sh4a-nofpu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -202,8 +202,8 @@
+ setrc #4 ;!/* 10000010i8*1.... setrc #<imm> */{"setrc",{A_IMM},{HEX_8,HEX_2,IMM0_8}, arch_sh_dsp_up}
+ repeat 10 20 r4 ;!/* repeat start end <REG_N> */{"repeat",{A_DISP_PC,A_DISP_PC,A_REG_N},{REPEAT,REG_N,HEX_1,HEX_4}, arch_sh_dsp_up}
+ repeat 10 20 #4 ;!/* repeat start end #<imm> */{"repeat",{A_DISP_PC,A_DISP_PC,A_IMM},{REPEAT,HEX_2,IMM0_8,HEX_8}, arch_sh_dsp_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4a-nofpu.s binutils-2.42/gas/testsuite/gas/sh/arch/sh4a-nofpu.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4a-nofpu.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh4a-nofpu.s 2024-02-22 16:50:03.693904638 +0100
+@@ -19,7 +19,7 @@
+ prefi @r4 ;!/* 0000nnnn11010011 prefi @<REG_N> */{"prefi",{A_IND_N},{HEX_0,REG_N,HEX_D,HEX_3}, arch_sh4a_nofpu_up}
+ synco ;!/* 0000000010101011 synco */{"synco",{0},{HEX_0,HEX_0,HEX_A,HEX_B}, arch_sh4a_nofpu_up}
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh4-nommu-nofpu sh3 sh3-nommu sh4-nofpu sh4-nommu-nofpu
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh2a-nofpu-or-sh4-nommu-nofpu sh3 sh3-nommu sh4-nofpu sh4-nommu-nofpu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -143,8 +143,8 @@
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sets ;!/* 0000000001011000 sets */{"sets",{0},{HEX_0,HEX_0,HEX_5,HEX_8}, arch_sh3_nommu_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4a.s binutils-2.42/gas/testsuite/gas/sh/arch/sh4a.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4a.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh4a.s 2024-02-22 16:50:03.693904638 +0100
+@@ -13,7 +13,7 @@
+ ! Instructions introduced into sh4a
+ fpchg ;!/* 1111011111111101 fpchg */{"fpchg",{0},{HEX_F,HEX_7,HEX_F,HEX_D}, arch_sh4a_up}
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh4-nommu-nofpu sh2a-or-sh3e sh2a-or-sh4 sh2e sh3 sh3-nommu sh3e sh4 sh4-nofpu sh4-nommu-nofpu sh4a-nofpu
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh2a-nofpu-or-sh4-nommu-nofpu sh2a-or-sh3e sh2a-or-sh4 sh2e sh3 sh3-nommu sh3e sh4 sh4-nofpu sh4-nommu-nofpu sh4a-nofpu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -147,8 +147,8 @@
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sets ;!/* 0000000001011000 sets */{"sets",{0},{HEX_0,HEX_0,HEX_5,HEX_8}, arch_sh3_nommu_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4-nofpu.s binutils-2.42/gas/testsuite/gas/sh/arch/sh4-nofpu.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4-nofpu.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh4-nofpu.s 2024-02-22 16:50:03.693904638 +0100
+@@ -12,7 +12,7 @@
+ sh4_nofpu:
+ ! Instructions introduced into sh4-nofpu
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh4-nommu-nofpu sh3 sh3-nommu sh4-nommu-nofpu
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh2a-nofpu-or-sh4-nommu-nofpu sh3 sh3-nommu sh4-nommu-nofpu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -136,8 +136,8 @@
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sets ;!/* 0000000001011000 sets */{"sets",{0},{HEX_0,HEX_0,HEX_5,HEX_8}, arch_sh3_nommu_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4-nommu-nofpu.s binutils-2.42/gas/testsuite/gas/sh/arch/sh4-nommu-nofpu.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4-nommu-nofpu.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh4-nommu-nofpu.s 2024-02-22 16:50:03.693904638 +0100
+@@ -24,7 +24,7 @@
+ stc.l SGR,@-r4 ;!/* 0100nnnn00110010 stc.l SGR,@-<REG_N> */{"stc.l",{A_SGR,A_DEC_N},{HEX_4,REG_N,HEX_3,HEX_2}, arch_sh4_nommu_nofpu_up}
+ stc.l DBR,@-r4 ;!/* 0100nnnn11110010 stc.l DBR,@-<REG_N> */{"stc.l",{A_DBR,A_DEC_N},{HEX_4,REG_N,HEX_F,HEX_2}, arch_sh4_nommu_nofpu_up}
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh4-nommu-nofpu sh3-nommu
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh2a-nofpu-or-sh4-nommu-nofpu sh3-nommu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -139,8 +139,8 @@
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sets ;!/* 0000000001011000 sets */{"sets",{0},{HEX_0,HEX_0,HEX_5,HEX_8}, arch_sh3_nommu_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4.s binutils-2.42/gas/testsuite/gas/sh/arch/sh4.s
+--- binutils-2.42.orig/gas/testsuite/gas/sh/arch/sh4.s 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/gas/testsuite/gas/sh/arch/sh4.s 2024-02-22 16:50:03.693904638 +0100
+@@ -17,7 +17,7 @@
+ fsrra fr1 ;!/* 1111nnnn01111101 fsrra <F_REG_N> */{"fsrra",{F_REG_N},{HEX_F,REG_N,HEX_7,HEX_D}, arch_sh4_up}
+ ftrv xmtrx,fv0 ;!/* 1111nn0111111101 ftrv XMTRX_M4,<V_REG_n>*/{"ftrv",{XMTRX_M4,V_REG_N},{HEX_F,REG_N_B01,HEX_F,HEX_D}, arch_sh4_up}
+
+-! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh4-nommu-nofpu sh2a-or-sh3e sh2a-or-sh4 sh2e sh3 sh3-nommu sh3e sh4-nofpu sh4-nommu-nofpu
++! Instructions inherited from ancestors: sh sh2 sh2a-nofpu-or-sh3-nommu sh2a-nofpu-or-sh3-nommu-or-sh2j-nofpu sh2a-nofpu-or-sh4-nommu-nofpu sh2a-or-sh3e sh2a-or-sh4 sh2e sh3 sh3-nommu sh3e sh4-nofpu sh4-nommu-nofpu
+ add #4,r4 ;!/* 0111nnnni8*1.... add #<imm>,<REG_N> */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up}
+ add r5,r4 ;!/* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up}
+ addc r5,r4 ;!/* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up}
+@@ -145,8 +145,8 @@
+ rts ;!/* 0000000000001011 rts */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up}
+ sets ;!/* 0000000001011000 sets */{"sets",{0},{HEX_0,HEX_0,HEX_5,HEX_8}, arch_sh3_nommu_up}
+ sett ;!/* 0000000000011000 sett */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up}
+- shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up}
+- shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up}
++ shad r5,r4 ;!/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
++ shld r5,r4 ;!/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_sh2j_nofpu_up}
+ shal r4 ;!/* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up}
+ shar r4 ;!/* 0100nnnn00100001 shar <REG_N> */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up}
+ shll r4 ;!/* 0100nnnn00000000 shll <REG_N> */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up}
+diff -Nur binutils-2.42.orig/include/elf/sh.h binutils-2.42/include/elf/sh.h
+--- binutils-2.42.orig/include/elf/sh.h 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/include/elf/sh.h 2024-02-22 16:50:03.693904638 +0100
+@@ -39,6 +39,7 @@
+ #define EF_SH2E 11
+ #define EF_SH4A 12
+ #define EF_SH2A 13
++#define EF_SHJ2 14
+
+ #define EF_SH4_NOFPU 16
+ #define EF_SH4A_NOFPU 17
+@@ -50,6 +51,7 @@
+ #define EF_SH2A_SH3_NOFPU 22
+ #define EF_SH2A_SH4 23
+ #define EF_SH2A_SH3E 24
++#define EF_SH2A_SH3_SHJ2 25
+
+ /* This one can only mix in objects from other EF_SH5 objects. */
+ #define EF_SH5 10
+@@ -72,7 +74,8 @@
+ /* EF_SH2E */ bfd_mach_sh2e , \
+ /* EF_SH4A */ bfd_mach_sh4a , \
+ /* EF_SH2A */ bfd_mach_sh2a , \
+-/* 14, 15 */ 0, 0, \
++/* EF_SHJ2 */ bfd_mach_shj2 , \
++/* 15 */ 0, \
+ /* EF_SH4_NOFPU */ bfd_mach_sh4_nofpu , \
+ /* EF_SH4A_NOFPU */ bfd_mach_sh4a_nofpu , \
+ /* EF_SH4_NOMMU_NOFPU */ bfd_mach_sh4_nommu_nofpu, \
+@@ -81,7 +84,8 @@
+ /* EF_SH2A_SH4_NOFPU */ bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu, \
+ /* EF_SH2A_SH3_NOFPU */ bfd_mach_sh2a_nofpu_or_sh3_nommu, \
+ /* EF_SH2A_SH4 */ bfd_mach_sh2a_or_sh4 , \
+-/* EF_SH2A_SH3E */ bfd_mach_sh2a_or_sh3e
++/* EF_SH2A_SH3E */ bfd_mach_sh2a_or_sh3e, \
++/* EF_SH2A_SH3_SHJ2_NOFPU */ bfd_mach_sh2a_nofpu_or_sh3_nommu_or_shj2_nofpu
+
+ /* Convert arch_sh* into EF_SH*. */
+ int sh_find_elf_flags (unsigned int arch_set);
+diff -Nur binutils-2.42.orig/opcodes/sh-dis.c binutils-2.42/opcodes/sh-dis.c
+--- binutils-2.42.orig/opcodes/sh-dis.c 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/opcodes/sh-dis.c 2024-02-22 16:50:03.693904638 +0100
+@@ -866,6 +866,9 @@
+ case XMTRX_M4:
+ fprintf_fn (stream, "xmtrx");
+ break;
++ case A_IND_0:
++ fprintf_fn (stream, "@r0");
++ break;
+ default:
+ abort ();
+ }
+diff -Nur binutils-2.42.orig/opcodes/sh-opc.h binutils-2.42/opcodes/sh-opc.h
+--- binutils-2.42.orig/opcodes/sh-opc.h 2024-01-29 01:00:00.000000000 +0100
++++ binutils-2.42/opcodes/sh-opc.h 2024-02-22 16:50:03.697904670 +0100
+@@ -192,7 +192,8 @@
+ FPUL_N,
+ FPUL_M,
+ FPSCR_N,
+- FPSCR_M
++ FPSCR_M,
++ A_IND_0
+ }
+ sh_arg_type;
+
+@@ -216,9 +217,11 @@
+ #define arch_sh4_base (1 << 5)
+ #define arch_sh4a_base (1 << 6)
+ #define arch_sh2a_base (1 << 7)
+-#define arch_sh_base_mask MASK (0, 7)
++#define arch_shj2_base (1 << 8)
++#define arch_sh2a_sh3_shj2_base (1 << 9)
++#define arch_sh_base_mask MASK (0, 9)
+
+-/* Bits 8 ... 24 are currently free. */
++/* Bits 10 ... 24 are currently free. */
+
+ /* This is an annotation on instruction types, but we
+ abuse the arch field in instructions to denote it. */
+@@ -256,6 +259,8 @@
+ #define arch_sh2a_nofpu_or_sh3_nommu (arch_sh2a_sh3_base|arch_sh_no_mmu |arch_sh_no_co)
+ #define arch_sh2a_or_sh3e (arch_sh2a_sh4_base|arch_sh_no_mmu |arch_sh_sp_fpu)
+ #define arch_sh2a_or_sh4 (arch_sh2a_sh4_base|arch_sh_no_mmu |arch_sh_dp_fpu)
++#define arch_shj2 (arch_shj2_base |arch_sh_no_mmu |arch_sh_no_co)
++#define arch_sh2a_nofpu_or_sh3_nommu_or_shj2_nofpu (arch_sh2a_sh3_shj2_base|arch_sh_no_mmu |arch_sh_no_co)
+
+ #define SH_MERGE_ARCH_SET(SET1, SET2) ((SET1) & (SET2))
+ #define SH_VALID_BASE_ARCH_SET(SET) (((SET) & arch_sh_base_mask) != 0)
+@@ -320,7 +325,8 @@
+ #define arch_sh2_up (arch_sh2 \
+ | arch_sh2e_up \
+ | arch_sh2a_nofpu_or_sh3_nommu_up \
+- | arch_sh_dsp_up)
++ | arch_sh_dsp_up \
++ | arch_shj2_up)
+ #define arch_sh2a_nofpu_or_sh3_nommu_up (arch_sh2a_nofpu_or_sh3_nommu \
+ | arch_sh2a_nofpu_or_sh4_nommu_nofpu_up \
+ | arch_sh2a_or_sh3e_up \
+@@ -346,6 +352,12 @@
+ #define arch_sh4a_nofpu_up (arch_sh4a_nofpu \
+ | arch_sh4a_up \
+ | arch_sh4al_dsp_up)
++#define arch_shj2_up ( arch_shj2)
++#define arch_sh2a_nofpu_or_sh3_nommu_or_shj2_nofpu_up (arch_sh2a_nofpu_or_sh3_nommu \
++ | arch_sh2a_nofpu_or_sh4_nommu_nofpu_up \
++ | arch_sh2a_or_sh3e_up \
++ | arch_sh3_nommu_up \
++ | arch_shj2_up)
+
+ /* Right branches. */
+ #define arch_sh2e_up (arch_sh2e \
+@@ -714,9 +726,9 @@
+
+ /* repeat start end #<imm> */{"repeat",{A_DISP_PC,A_DISP_PC,A_IMM},{REPEAT,HEX_2,IMM0_8S,HEX_8}, arch_sh_dsp_up},
+
+-/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up},
++/* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_or_shj2_nofpu_up},
+
+-/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up},
++/* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_or_shj2_nofpu_up},
+
+ /* 0100nnnn00100000 shal <REG_N> */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up},
+
+@@ -1194,7 +1206,7 @@
+ {"movu.b",{A_DISP_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_8,DISP0_12}, arch_sh2a_nofpu_up | arch_op32},
+ /* 0011nnnnmmmm0001 1001dddddddddddd movu.w @(<DISP12>,<REG_M>),<REG_N> */
+ {"movu.w",{A_DISP_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_9,DISP0_12BY2}, arch_sh2a_nofpu_up | arch_op32},
+-
++ /* 0010nnnnmmmm0011 cas.l Rm,Rn,@R0 */ {"cas.l", { A_REG_M,A_REG_N,A_IND_0},{HEX_2,REG_N,REG_M,HEX_3}, arch_shj2_up},
+ { 0, {0}, {0}, 0 }
+ };
+
diff --git a/toolchain/binutils/patches/2.42/kvx.patch b/toolchain/binutils/patches/2.42/kvx.patch
new file mode 100644
index 000000000..c3690ca8e
--- /dev/null
+++ b/toolchain/binutils/patches/2.42/kvx.patch
@@ -0,0 +1,29 @@
+From 234938d8b7df2f069c6cbbaff47eb2ba338ec532 Mon Sep 17 00:00:00 2001
+From: Paul Iannetta <piannetta@kalrayinc.com>
+Date: Mon, 4 Sep 2023 15:31:53 +0200
+Subject: [PATCH] kvx: gas: fix the detection of negative powers of 2
+
+gas/ChangeLog:
+
+2023-09-04 Paul Iannetta <piannetta@kalrayinc.com>
+
+ * config/kvx-parse.c (get_token_class): Use the signed value.
+
+---
+ gas/config/kvx-parse.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gas/config/kvx-parse.c b/gas/config/kvx-parse.c
+index bb51c861625..0bd6b75ef30 100644
+--- a/gas/config/kvx-parse.c
++++ b/gas/config/kvx-parse.c
+@@ -525,7 +525,7 @@ get_token_class (struct token_s *token, struct token_classes *classes, int insn_
+ : strtoull (tok + (tok[0] == '-') + (tok[0] == '+'), NULL, 0));
+ int64_t val = uval;
+ int64_t pval = val < 0 ? -uval : uval;
+- int neg_power2_p = val < 0 && !(uval & (uval - 1));
++ int neg_power2_p = val < 0 && !(pval & (pval - 1));
+ unsigned len = pval ? 8 * sizeof (pval) - __builtin_clzll (pval) : 0;
+ while (class[cur].class_id != -1
+ && ((unsigned) (class[cur].sz < 0
+
diff --git a/toolchain/binutils/patches/nds32-binutils-2.30-branch-open/fls-internal.patch b/toolchain/binutils/patches/nds32-binutils-2.30-branch-open/fls-internal.patch
deleted file mode 100644
index 33c78ac36..000000000
--- a/toolchain/binutils/patches/nds32-binutils-2.30-branch-open/fls-internal.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff -Nur binutils-nds32-binutils-2.30-branch-open.orig/bfd/elf32-nds32.c binutils-nds32-binutils-2.30-branch-open/bfd/elf32-nds32.c
---- binutils-nds32-binutils-2.30-branch-open.orig/bfd/elf32-nds32.c 2018-05-10 22:01:57.000000000 +0200
-+++ binutils-nds32-binutils-2.30-branch-open/bfd/elf32-nds32.c 2018-05-12 09:01:10.000000000 +0200
-@@ -5286,7 +5286,7 @@
- }
-
- static unsigned int
--fls (register unsigned int x)
-+fls_internal (register unsigned int x)
- {
- return ffs (x & (-x));
- }
-@@ -6189,14 +6189,14 @@
-
- if (1 < ones32 (tls_type))
- {
-- eff_tls_type = 1 << (fls (tls_type) - 1);
-+ eff_tls_type = 1 << (fls_internal (tls_type) - 1);
- /* TLS model shall be handled in nds32_elf_unify_tls_model () */
-
- /* TLS model X -> LE is not implement yet!
- * workaround here! */
- if (eff_tls_type == GOT_TLS_LE)
- {
-- eff_tls_type = 1 << (fls (tls_type ^ eff_tls_type) - 1);
-+ eff_tls_type = 1 << (fls_internal (tls_type ^ eff_tls_type) - 1);
- }
- }
-
diff --git a/toolchain/elf2flt/Makefile b/toolchain/elf2flt/Makefile
index 4489e71af..8e5fec5a4 100644
--- a/toolchain/elf2flt/Makefile
+++ b/toolchain/elf2flt/Makefile
@@ -8,25 +8,38 @@ include $(ADK_TOPDIR)/mk/buildhlp.mk
ifeq ($(ADK_TOOLCHAIN_BINUTILS_GIT),y)
BINUTILS_VERSION:= git
+BFDLIB:= .libs/libbfd.a
endif
-ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_31),y)
-BINUTILS_VERSION:= 2.31.1
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_42),y)
+BINUTILS_VERSION:= 2.42
+BFDLIB:= .libs/libbfd.a
endif
-ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_29),y)
-BINUTILS_VERSION:= 2.29.1
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_41),y)
+BINUTILS_VERSION:= 2.41
+BFDLIB:= .libs/libbfd.a
+endif
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_40),y)
+BINUTILS_VERSION:= 2.40
+BFDLIB:= libbfd.a
+endif
+ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_39),y)
+BINUTILS_VERSION:= 2.39
+BFDLIB:= libbfd.a
endif
ifeq ($(ADK_TOOLCHAIN_BINUTILS_2_28),y)
BINUTILS_VERSION:= 2.28
+BFDLIB:= libbfd.a
endif
$(WRKBUILD)/.configured:
+ (cd $(WRKBUILD); PATH='${HOST_PATH}' autoreconf -vif;)
(cd $(WRKBUILD); \
CPPFLAGS="-idirafter $(ADK_TOPDIR)/adk/include" \
./configure --prefix=$(STAGING_HOST_DIR)/usr \
--target=$(GNU_TARGET_NAME) \
--with-bfd-include-dir=$(TOOLCHAIN_BUILD_DIR)/w-binutils-$(BINUTILS_VERSION)-1/binutils-$(BINUTILS_VERSION)/bfd \
--with-binutils-include-dir=$(TOOLCHAIN_BUILD_DIR)/w-binutils-$(BINUTILS_VERSION)-1/binutils-$(BINUTILS_VERSION)/include \
- --with-libbfd=$(TOOLCHAIN_BUILD_DIR)/w-binutils-$(BINUTILS_VERSION)-1/binutils-$(BINUTILS_VERSION)/bfd/libbfd.a \
+ --with-libbfd=$(TOOLCHAIN_BUILD_DIR)/w-binutils-$(BINUTILS_VERSION)-1/binutils-$(BINUTILS_VERSION)/bfd/$(BFDLIB) \
--with-libiberty=$(TOOLCHAIN_BUILD_DIR)/w-binutils-$(BINUTILS_VERSION)-1/binutils-$(BINUTILS_VERSION)/libiberty/libiberty.a )
touch $@
diff --git a/toolchain/elf2flt/Makefile.inc b/toolchain/elf2flt/Makefile.inc
index d3feb54a0..dee90e037 100644
--- a/toolchain/elf2flt/Makefile.inc
+++ b/toolchain/elf2flt/Makefile.inc
@@ -2,19 +2,16 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= elf2flt
-PKG_VERSION:= 6d80ab6c93409e796f85da404bde84b841231531
-PKG_GIT:= hash
+ifeq ($(ADK_TOOLCHAIN_ELF2FLT_2024_02),y)
+PKG_VERSION:= v2024.02
+PKG_GIT:= tag
PKG_RELEASE:= 1
PKG_SITES:= https://github.com/uclinux-dev/elf2flt.git
-ifeq ($(ADK_TARGET_ARCH_H8300),y)
-PKG_VERSION:= h8300
-PKG_GIT:= branch
-PKG_RELEASE:= 1
-PKG_SITES:= git://git.osdn.net/gitroot/uclinux-h8/elf2flt.git
endif
-ifeq ($(ADK_TARGET_OS_FROSTED),y)
-PKG_VERSION:= master
-PKG_GIT:= branch
+ifeq ($(ADK_TOOLCHAIN_ELF2FLT_OLD),y)
+PKG_VERSION:= 453398f917d167f8c308c8f997270c48ae8f8b12
+PKG_GIT:= hash
PKG_RELEASE:= 1
-PKG_SITES:= https://github.com/insane-adding-machines/elf2flt-1.git
+PKG_SITES:= https://github.com/uclinux-dev/elf2flt.git
endif
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
diff --git a/toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0001-riscv32.patch b/toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0001-riscv32.patch
new file mode 100644
index 000000000..a99de4f9f
--- /dev/null
+++ b/toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0001-riscv32.patch
@@ -0,0 +1,42 @@
+diff -Nur elf2flt-v2023.04.orig/elf2flt.c elf2flt-v2023.04/elf2flt.c
+--- elf2flt-v2023.04.orig/elf2flt.c 2023-09-04 11:29:05.952417209 +0200
++++ elf2flt-v2023.04/elf2flt.c 2023-09-04 11:30:05.371065966 +0200
+@@ -81,7 +81,7 @@
+ #include <elf/v850.h>
+ #elif defined(TARGET_xtensa)
+ #include <elf/xtensa.h>
+-#elif defined(TARGET_riscv64)
++#elif defined(TARGET_riscv64) || defined(TARGET_riscv32)
+ #include <elf/riscv.h>
+ #endif
+
+@@ -127,6 +127,8 @@
+ #define ARCH "xtensa"
+ #elif defined(TARGET_riscv64)
+ #define ARCH "riscv64"
++#elif defined(TARGET_riscv32)
++#define ARCH "riscv32"
+ #else
+ #error "Don't know how to support your CPU architecture??"
+ #endif
+@@ -822,7 +824,7 @@
+ goto good_32bit_resolved_reloc_update_text;
+ default:
+ goto bad_resolved_reloc;
+-#elif defined(TARGET_riscv64)
++#elif defined(TARGET_riscv64) || defined(TARGET_riscv32)
+ case R_RISCV_NONE:
+ case R_RISCV_32_PCREL:
+ case R_RISCV_ADD8:
+diff -Nur elf2flt-v2023.04.orig/ld-elf2flt.c elf2flt-v2023.04/ld-elf2flt.c
+--- elf2flt-v2023.04.orig/ld-elf2flt.c 2023-09-04 11:28:59.072573514 +0200
++++ elf2flt-v2023.04/ld-elf2flt.c 2023-09-04 11:29:32.507813592 +0200
+@@ -327,7 +327,7 @@
+ /* riscv adds a global pointer symbol to the linker file with the
+ "RISCV_GP:" prefix. Remove the prefix for riscv64 architecture and
+ the entire line for other architectures. */
+- if (streq(TARGET_CPU, "riscv64"))
++ if (streq(TARGET_CPU, "riscv64") || streq(TARGET_CPU, "riscv32"))
+ append_sed(&sed, "^RISCV_GP:", "");
+ else
+ append_sed(&sed, "^RISCV_GP:", NULL);
diff --git a/toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0002-lm32.patch b/toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0002-lm32.patch
new file mode 100644
index 000000000..b24b214c7
--- /dev/null
+++ b/toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0002-lm32.patch
@@ -0,0 +1,167 @@
+diff -Nur elf2flt.orig/elf2flt.c elf2flt/elf2flt.c
+--- elf2flt.orig/elf2flt.c 2023-09-07 15:59:10.019349031 +0200
++++ elf2flt/elf2flt.c 2023-09-07 16:40:06.281961316 +0200
+@@ -62,6 +62,8 @@
+ #include <elf/bfin.h>
+ #elif defined(TARGET_h8300)
+ #include <elf/h8.h>
++#elif defined(TARGET_lm32)
++#include <elf/lm32.h>
+ #elif defined(TARGET_m68k)
+ #include <elf/m68k.h>
+ #elif defined(TARGET_microblaze)
+@@ -123,6 +125,11 @@
+ #define ARCH "nios"
+ #elif defined(TARGET_nios2)
+ #define ARCH "nios2"
++#elif defined(TARGET_lm32)
++#define ARCH "lm32"
++#define FLAT_LM32_RELOC_TYPE_32_BIT 0
++#define FLAT_LM32_RELOC_TYPE_HI16_BIT 1
++#define FLAT_LM32_RELOC_TYPE_LO16_BIT 2
+ #elif defined(TARGET_xtensa)
+ #define ARCH "xtensa"
+ #elif defined(TARGET_riscv64)
+@@ -373,7 +380,7 @@
+ int bad_relocs = 0;
+ asymbol **symb;
+ long nsymb;
+-#ifdef TARGET_bfin
++#if defined (TARGET_bfin) || defined (TARGET_lm32)
+ unsigned long persistent_data = 0;
+ #endif
+
+@@ -690,6 +697,36 @@
+ break;
+ default:
+ goto bad_resolved_reloc;
++#elif defined(TARGET_lm32)
++ case R_LM32_HI16:
++ case R_LM32_LO16:
++ if (q->howto->type == R_LM32_HI16) {
++ pflags = FLAT_LM32_RELOC_TYPE_HI16_BIT << 29;
++ } else {
++ pflags = FLAT_LM32_RELOC_TYPE_LO16_BIT << 29;
++ }
++
++ relocation_needed = 1;
++
++ /* remember the upper 16 bits */
++ if ((0xffff0000 & sym_addr) != persistent_data) {
++ flat_relocs = (uint32_t *)
++ (realloc (flat_relocs, (flat_reloc_count + 1) * sizeof (uint32_t)));
++ if (verbose)
++ printf ("New persistent data for %08lx\n", sym_addr);
++ persistent_data = 0xffff0000 & sym_addr;
++ flat_relocs[flat_reloc_count++] = (sym_addr >> 16) | (3 << 29);
++ }
++ break;
++ case R_LM32_32:
++ pflags = FLAT_LM32_RELOC_TYPE_32_BIT << 29;
++ relocation_needed = 1;
++ break;
++ case R_LM32_CALL:
++ relocation_needed = 0;
++ break;
++ default:
++ goto bad_resolved_reloc;
+ #elif defined(TARGET_m68k)
+ case R_68K_32:
+ goto good_32bit_resolved_reloc;
+@@ -1478,6 +1515,63 @@
+ #undef _30BITS_RELOC
+ #undef _28BITS_RELOC
+ #endif
++#ifdef TARGET_lm32
++ case R_LM32_32:
++ {
++ pflags = FLAT_LM32_RELOC_TYPE_32_BIT << 29;
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
++ sym_addr += sym_vma + q->addend;
++ relocation_needed = 1;
++ break;
++ }
++ case R_LM32_CALL:
++ {
++ sym_vma = 0;
++ sym_addr += sym_vma + q->addend;
++ sym_addr -= q->address;
++ sym_addr = (int32_t)sym_addr >> q->howto->rightshift;
++
++ if ((int32_t)sym_addr < -0x8000000 || (int32_t)sym_addr > 0x7ffffff) {
++ printf("ERROR: Relocation overflow for R_LM32_CALL relocation against %s\n", sym_name);
++ bad_relocs++;
++ continue;
++ }
++
++ r_mem[0] |= (sym_addr >> 24) & 0x03;
++ r_mem[1] = (sym_addr >> 16) & 0xff;
++ r_mem[2] = (sym_addr >> 8) & 0xff;
++ r_mem[3] = sym_addr & 0xff;
++ break;
++ }
++ case R_LM32_HI16:
++ case R_LM32_LO16:
++ {
++ if (q->howto->type == R_LM32_HI16) {
++ pflags = FLAT_LM32_RELOC_TYPE_HI16_BIT << 29;
++ } else {
++ pflags = FLAT_LM32_RELOC_TYPE_LO16_BIT << 29;
++ }
++
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
++ sym_addr += sym_vma + q->addend;
++
++ relocation_needed = 1;
++
++ /* remember the upper 16 bits */
++ if ((0xffff0000 & sym_addr) != persistent_data) {
++ flat_relocs = (uint32_t *)
++ (realloc (flat_relocs, (flat_reloc_count + 1) * sizeof (uint32_t)));
++ if (verbose)
++ printf ("New persistent data for %08lx\n", sym_addr);
++ persistent_data = 0xffff0000 & sym_addr;
++ flat_relocs[flat_reloc_count++] = (sym_addr >> 16) | (3 << 29);
++ }
++
++ r_mem[2] = (sym_addr >> 8) & 0xff;
++ r_mem[3] = sym_addr & 0xff;
++ break;
++ }
++#endif /* TARGET_lm32 */
+ default:
+ /* missing support for other types of relocs */
+ printf("ERROR: bad reloc type (%s)%d\n", q->howto->name, (*p)->howto->type);
+@@ -1616,6 +1710,13 @@
+ break;
+ #endif
+
++#ifdef TARGET_lm32
++ case R_LM32_HI16:
++ case R_LM32_LO16:
++ case R_LM32_CALL:
++ /* entry has already been written */
++ break;
++#endif
+ default:
+ /* The alignment of the build host
+ might be stricter than that of the
+diff -Nur elf2flt.orig/elf2flt.ld.in elf2flt/elf2flt.ld.in
+--- elf2flt.orig/elf2flt.ld.in 2023-09-07 11:32:34.223463015 +0200
++++ elf2flt/elf2flt.ld.in 2023-09-07 16:06:02.781672190 +0200
+@@ -73,6 +73,7 @@
+ W_RODAT: *(.rodata1)
+ W_RODAT: *(.rodata.*)
+ W_RODAT: *(.gnu.linkonce.r*)
++W_RODAT: *(.rofixup)
+
+ /* .ARM.extab name sections containing exception unwinding information */
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
+@@ -111,6 +112,7 @@
+ R_RODAT: *(.rodata1)
+ R_RODAT: *(.rodata.*)
+ R_RODAT: *(.gnu.linkonce.r*)
++R_RODAT: *(.rofixup)
+ *(.data)
+ *(.data1)
+ *(.data.*)
diff --git a/toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0003-sh2.patch b/toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0003-sh2.patch
new file mode 100644
index 000000000..9587a0315
--- /dev/null
+++ b/toolchain/elf2flt/patches/26dfb54a59c8c0106418a0c46ccb4288d9e066fd/0003-sh2.patch
@@ -0,0 +1,52 @@
+diff -Nur elf2flt-26dfb54a59c8c0106418a0c46ccb4288d9e066fd.orig/elf2flt.c elf2flt-26dfb54a59c8c0106418a0c46ccb4288d9e066fd/elf2flt.c
+--- elf2flt-26dfb54a59c8c0106418a0c46ccb4288d9e066fd.orig/elf2flt.c 2023-09-08 08:49:00.529082893 +0200
++++ elf2flt-26dfb54a59c8c0106418a0c46ccb4288d9e066fd/elf2flt.c 2023-09-08 08:51:08.117679134 +0200
+@@ -75,7 +75,7 @@
+ #define FLAT_NIOS2_R_HIADJ_LO 2
+ #define FLAT_NIOS2_R_CALL26 4
+ #include <elf/nios2.h>
+-#elif defined(TARGET_sh)
++#elif defined(TARGET_sh2eb)
+ #include <elf/sh.h>
+ #elif defined(TARGET_sparc)
+ #include <elf/sparc.h>
+@@ -111,7 +111,7 @@
+ #define ARCH "sparc"
+ #elif defined(TARGET_v850)
+ #define ARCH "v850"
+-#elif defined(TARGET_sh)
++#elif defined(TARGET_sh2eb)
+ #define ARCH "sh"
+ #elif defined(TARGET_h8300)
+ #define ARCH "h8300"
+@@ -795,6 +795,12 @@
+
+ flat_reloc_count++;
+ break;
++#elif defined (TARGET_sh2eb)
++ case R_SH_DIR32:
++ goto good_32bit_resolved_reloc;
++ case R_SH_REL32:
++ relocation_needed = 0;
++ continue;
+ #elif defined (TARGET_h8300)
+ case R_H8_DIR32:
+ case R_H8_DIR32A16:
+@@ -1328,7 +1334,7 @@
+ #endif /* TARGET_sparc */
+
+
+-#ifdef TARGET_sh
++#ifdef TARGET_sh2eb
+ case R_SH_DIR32:
+ relocation_needed = 1;
+ sym_vma = elf2flt_bfd_section_vma(sym_section);
+@@ -1339,7 +1345,7 @@
+ sym_addr += sym_vma + q->addend;
+ sym_addr -= q->address;
+ break;
+-#endif /* TARGET_sh */
++#endif /* TARGET_sh2eb */
+
+ #ifdef TARGET_e1
+ #define htoe1l(x) htonl(x)
diff --git a/toolchain/elf2flt/patches/3051fec89bbd30de6f952dc3100712feff3ca076/0001-.rofixup-fix.patch b/toolchain/elf2flt/patches/3051fec89bbd30de6f952dc3100712feff3ca076/0001-.rofixup-fix.patch
new file mode 100644
index 000000000..79186642e
--- /dev/null
+++ b/toolchain/elf2flt/patches/3051fec89bbd30de6f952dc3100712feff3ca076/0001-.rofixup-fix.patch
@@ -0,0 +1,33 @@
+From 270b461e88b47781b3ef9bba2779074d0eb4996b Mon Sep 17 00:00:00 2001
+From: Waldemar Brodkorb <wbx@openadk.org>
+Date: Fri, 25 Aug 2023 05:04:53 +0200
+Subject: [PATCH] .rofixup fix
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+---
+ elf2flt.ld.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/elf2flt.ld.in b/elf2flt.ld.in
+index c7e01a6..c69531e 100644
+--- a/elf2flt.ld.in
++++ b/elf2flt.ld.in
+@@ -31,6 +31,7 @@ W_RODAT *(.rodata)
+ W_RODAT *(.rodata1)
+ W_RODAT *(.rodata.*)
+ W_RODAT *(.gnu.linkonce.r*)
++W_RODAT *(.rofixup)
+
+ /* This is special code area at the end of the normal
+ text section. It contains a small lookup table at
+@@ -60,6 +61,7 @@ R_RODAT *(.rodata)
+ R_RODAT *(.rodata1)
+ R_RODAT *(.rodata.*)
+ R_RODAT *(.gnu.linkonce.r*)
++R_RODAT *(.rofixup)
+ *(.data)
+ *(.data1)
+ *(.data.*)
+--
+2.30.2
+
diff --git a/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0001-elf2flt-handle-binutils-2.34.patch b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0001-elf2flt-handle-binutils-2.34.patch
new file mode 100644
index 000000000..15963c1ee
--- /dev/null
+++ b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0001-elf2flt-handle-binutils-2.34.patch
@@ -0,0 +1,391 @@
+From fa0e77afba7d8d4107af5f8ddc8d38d23c3dd19d Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@smile.fr>
+Date: Wed, 5 Feb 2020 10:31:32 +0100
+Subject: [PATCH] elf2flt: handle binutils >= 2.34
+
+The latest Binutils release (2.34) is not compatible with elf2flt due
+to a change in bfd_section_* macros. The issue has been reported to
+the Binutils mailing list but Alan Modra recommend to bundle libbfd
+library sources into each projects using it [1]. That's because the
+API is not stable over the time without any backward compatibility
+guaranties.
+
+On the other hand, the elf2flt tools needs to support modified
+version of binutils for specific arch/target [2].
+
+Add two tests in the configure script to detect this API change
+in order to support binutils < 2.34 and binutils >= 2.34.
+
+[1] https://sourceware.org/ml/binutils/2020-02/msg00044.html
+[2] https://github.com/uclinux-dev/elf2flt/issues/14
+
+Signed-off-by: Romain Naour <romain.naour@smile.fr>
+Signed-off-by: Waldemar Brodkorb <wbrodkorb@conet.de>
+---
+ configure.ac | 25 +++++++++++++++++++
+ elf2flt.c | 81 ++++++++++++++++++++++++++++++++++--------------------------
+ 2 files changed, 71 insertions(+), 35 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index d6b4119..caae869 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -212,6 +212,31 @@ AC_CHECK_FUNCS([ \
+ strsignal \
+ ])
+
++dnl Various bfd section macros and functions like bfd_section_size() has been
++dnl modified starting binutils >= 2.34.
++dnl Check if the prototype is "bfd_section_size (sec)" or "bfd_section_size(bfd, ptr)"
++if test "$binutils_build_dir" != "NONE"; then
++ CFLAGS="-I$binutils_include_dir -I$bfd_include_dir $CFLAGS"
++fi
++
++AC_TRY_COMPILE([#include <bfd.h>],
++ [const asection *sec; bfd_section_size(sec);],
++ bfd_section_size_macro_has_one_arg=yes,
++ bfd_section_size_macro_has_one_arg=no)
++if test "$bfd_section_size_macro_has_one_arg" = "yes" ; then
++ AC_DEFINE(HAVE_BFD_SECTION_SIZE_MACRO_HAS_ONE_ARG, 1,
++ [define to 1 for binutils >= 2.34])
++fi
++
++AC_TRY_COMPILE([#include <bfd.h>],
++ [const asection *sec; bfd_section_vma(sec);],
++ bfd_section_vma_macro_has_one_arg=yes,
++ bfd_section_vma_macro_has_one_arg=no)
++if test "$bfd_section_vma_macro_has_one_arg" = "yes" ; then
++ AC_DEFINE(HAVE_BFD_SECTION_VMA_MACRO_HAS_ONE_ARG, 1,
++ [define to 1 for binutils >= 2.34])
++fi
++
+ if test "$GCC" = yes ; then
+ CFLAGS="-Wall $CFLAGS"
+ if test "$werror" = 1 ; then
+diff --git a/elf2flt.c b/elf2flt.c
+index b7c4a49..8dbd9b2 100644
+--- a/elf2flt.c
++++ b/elf2flt.c
+@@ -149,6 +149,17 @@ const char *elf2flt_progname;
+ #define O_BINARY 0
+ #endif
+
++#if defined(HAVE_BFD_SECTION_SIZE_MACRO_HAS_ONE_ARG)
++#define elf2flt_bfd_section_size(abs_bfd, s) bfd_section_size(s)
++#else
++#define elf2flt_bfd_section_size(abs_bfd, s) bfd_section_size(abs_bfd, s)
++#endif
++
++#if defined(HAVE_BFD_SECTION_VMA_MACRO_HAS_ONE_ARG)
++#define elf2flt_bfd_section_vma(abs_bfd, s) bfd_section_vma(s)
++#else
++#define elf2flt_bfd_section_vma(abs_bfd, s) bfd_section_vma(abs_bfd, s)
++#endif
+
+ /* Extra output when running. */
+ static int verbose = 0;
+@@ -323,9 +334,9 @@ compare_relocs (const void *pa, const void *pb)
+ else if (!rb->sym_ptr_ptr || !*rb->sym_ptr_ptr)
+ return 1;
+
+- a_vma = bfd_section_vma(compare_relocs_bfd,
++ a_vma = elf2flt_bfd_section_vma(compare_relocs_bfd,
+ (*(ra->sym_ptr_ptr))->section);
+- b_vma = bfd_section_vma(compare_relocs_bfd,
++ b_vma = elf2flt_bfd_section_vma(compare_relocs_bfd,
+ (*(rb->sym_ptr_ptr))->section);
+ va = (*(ra->sym_ptr_ptr))->value + a_vma + ra->addend;
+ vb = (*(rb->sym_ptr_ptr))->value + b_vma + rb->addend;
+@@ -403,7 +414,7 @@ output_relocs (
+ }
+
+ for (a = abs_bfd->sections; (a != (asection *) NULL); a = a->next) {
+- section_vma = bfd_section_vma(abs_bfd, a);
++ section_vma = elf2flt_bfd_section_vma(abs_bfd, a);
+
+ if (verbose)
+ printf("SECTION: %s [%p]: flags=0x%x vma=0x%"PRIx32"\n",
+@@ -442,7 +453,7 @@ output_relocs (
+ continue;
+ if (verbose)
+ printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%"BFD_VMA_FMT"x\n",
+- r->name, r, r->flags, bfd_section_vma(abs_bfd, r));
++ r->name, r, r->flags, elf2flt_bfd_section_vma(abs_bfd, r));
+ if ((r->flags & SEC_RELOC) == 0)
+ continue;
+ relsize = bfd_get_reloc_upper_bound(rel_bfd, r);
+@@ -674,7 +685,7 @@ output_relocs (
+ case R_BFIN_RIMM16:
+ case R_BFIN_LUIMM16:
+ case R_BFIN_HUIMM16:
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+
+ if (weak_und_symbol(sym_section->name, (*(q->sym_ptr_ptr))))
+@@ -707,7 +718,7 @@ output_relocs (
+ break;
+
+ case R_BFIN_BYTE4_DATA:
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+
+ if (weak_und_symbol (sym_section->name, (*(q->sym_ptr_ptr))))
+@@ -851,7 +862,7 @@ output_relocs (
+ #if defined(TARGET_m68k)
+ case R_68K_32:
+ relocation_needed = 1;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_68K_PC16:
+@@ -876,7 +887,7 @@ output_relocs (
+ q->address, sym_addr,
+ (*p)->howto->rightshift,
+ *(uint32_t *)r_mem);
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_ARM_GOT32:
+@@ -904,7 +915,7 @@ output_relocs (
+ #ifdef TARGET_v850
+ case R_V850_ABS32:
+ relocation_needed = 1;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_V850_ZDA_16_16_OFFSET:
+@@ -926,7 +937,7 @@ output_relocs (
+ sym_addr = (*(q->sym_ptr_ptr))->value;
+ q->address -= 1;
+ r_mem -= 1; /* tracks q->address */
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ sym_addr |= (*(unsigned char *)r_mem<<24);
+ break;
+@@ -939,7 +950,7 @@ output_relocs (
+ /* Absolute symbol done not relocation */
+ relocation_needed = !bfd_is_abs_section(sym_section);
+ sym_addr = (*(q->sym_ptr_ptr))->value;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_H8_DIR32:
+@@ -952,7 +963,7 @@ output_relocs (
+ }
+ relocation_needed = 1;
+ sym_addr = (*(q->sym_ptr_ptr))->value;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_H8_PCREL16:
+@@ -985,7 +996,7 @@ output_relocs (
+ pflags=0x80000000;
+
+ /* work out the relocation */
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ /* Write relocated pointer back */
+ p[2] = (sym_addr >> 24) & 0xff;
+@@ -1001,7 +1012,7 @@ output_relocs (
+ relocation_needed = 0;
+ pflags = 0;
+ sprintf(&addstr[0], "+0x%ld", sym_addr - (*(q->sym_ptr_ptr))->value -
+- bfd_section_vma(abs_bfd, sym_section));
++ elf2flt_bfd_section_vma(abs_bfd, sym_section));
+ if (verbose)
+ printf(" RELOC[%d]: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
+ "section=%s size=%d "
+@@ -1017,7 +1028,7 @@ output_relocs (
+ continue;
+ }
+ case R_MICROBLAZE_32:
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ relocation_needed = 1;
+ break;
+@@ -1042,7 +1053,7 @@ output_relocs (
+ case R_NIOS2_BFD_RELOC_32:
+ relocation_needed = 1;
+ pflags = (FLAT_NIOS2_R_32 << 28);
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ /* modify target, in target order */
+ *(unsigned long *)r_mem = htoniosl(sym_addr);
+@@ -1052,7 +1063,7 @@ output_relocs (
+ unsigned long exist_val;
+ relocation_needed = 1;
+ pflags = (FLAT_NIOS2_R_CALL26 << 28);
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+
+ /* modify target, in target order */
+@@ -1083,7 +1094,7 @@ output_relocs (
+ ? FLAT_NIOS2_R_HIADJ_LO : FLAT_NIOS2_R_HI_LO;
+ pflags <<= 28;
+
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+
+ /* modify high 16 bits, in target order */
+@@ -1116,7 +1127,7 @@ output_relocs (
+ goto NIOS2_RELOC_ERR;
+ }
+ /* _gp holds a absolute value, otherwise the ld cannot generate correct code */
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ //printf("sym=%x, %d, _gp=%x, %d\n", sym_addr+sym_vma, sym_addr+sym_vma, gp, gp);
+ sym_addr += sym_vma + q->addend;
+ sym_addr -= gp;
+@@ -1197,7 +1208,7 @@ NIOS2_RELOC_ERR:
+ case R_SPARC_32:
+ case R_SPARC_UA32:
+ relocation_needed = 1;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_SPARC_PC22:
+@@ -1216,7 +1227,7 @@ NIOS2_RELOC_ERR:
+ case R_SPARC_HI22:
+ relocation_needed = 1;
+ pflags = 0x80000000;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ sym_addr |= (
+ htonl(*(uint32_t *)r_mem)
+@@ -1226,7 +1237,7 @@ NIOS2_RELOC_ERR:
+ case R_SPARC_LO10:
+ relocation_needed = 1;
+ pflags = 0x40000000;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ sym_addr &= 0x000003ff;
+ sym_addr |= (
+@@ -1240,7 +1251,7 @@ NIOS2_RELOC_ERR:
+ #ifdef TARGET_sh
+ case R_SH_DIR32:
+ relocation_needed = 1;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_SH_REL32:
+@@ -1272,7 +1283,7 @@ NIOS2_RELOC_ERR:
+ case R_E1_CONST31:
+ relocation_needed = 1;
+ DBG_E1("Handling Reloc <CONST31>\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
+ sec_vma, sym_addr, q->address);
+ sym_addr = sec_vma + sym_addr;
+@@ -1287,7 +1298,7 @@ NIOS2_RELOC_ERR:
+ relocation_needed = 0;
+ DBG_E1("Handling Reloc <CONST31_PCREL>\n");
+ DBG_E1("DONT RELOCATE AT LOADING\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
+ sec_vma, sym_addr, q->address);
+ sym_addr = sec_vma + sym_addr;
+@@ -1314,7 +1325,7 @@ NIOS2_RELOC_ERR:
+ relocation_needed = 0;
+ DBG_E1("Handling Reloc <DIS29W_PCREL>\n");
+ DBG_E1("DONT RELOCATE AT LOADING\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
+ sec_vma, sym_addr, q->address);
+ sym_addr = sec_vma + sym_addr;
+@@ -1347,7 +1358,7 @@ NIOS2_RELOC_ERR:
+ DBG_E1("Handling Reloc <DIS29B>\n");
+ DIS29_RELOCATION:
+ relocation_needed = 1;
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%08x]\n",
+ sec_vma, sym_addr);
+ sym_addr = sec_vma + sym_addr;
+@@ -1364,7 +1375,7 @@ DIS29_RELOCATION:
+ relocation_needed = 0;
+ DBG_E1("Handling Reloc <IMM32_PCREL>\n");
+ DBG_E1("DONT RELOCATE AT LOADING\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
+ sec_vma, sym_addr);
+ sym_addr = sec_vma + sym_addr;
+@@ -1390,7 +1401,7 @@ DIS29_RELOCATION:
+ case R_E1_IMM32:
+ relocation_needed = 1;
+ DBG_E1("Handling Reloc <IMM32>\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
+ sec_vma, sym_addr);
+ sym_addr = sec_vma + sym_addr;
+@@ -1406,7 +1417,7 @@ DIS29_RELOCATION:
+ case R_E1_WORD:
+ relocation_needed = 1;
+ DBG_E1("Handling Reloc <WORD>\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
+ sec_vma, sym_addr);
+ sym_addr = sec_vma + sym_addr;
+@@ -1433,7 +1444,7 @@ DIS29_RELOCATION:
+ }
+
+ sprintf(&addstr[0], "+0x%lx", sym_addr - (*(q->sym_ptr_ptr))->value -
+- bfd_section_vma(abs_bfd, sym_section));
++ elf2flt_bfd_section_vma(abs_bfd, sym_section));
+
+
+ /*
+@@ -1873,8 +1884,8 @@ int main(int argc, char *argv[])
+ } else
+ continue;
+
+- sec_size = bfd_section_size(abs_bfd, s);
+- sec_vma = bfd_section_vma(abs_bfd, s);
++ sec_size = elf2flt_bfd_section_size(abs_bfd, s);
++ sec_vma = elf2flt_bfd_section_vma(abs_bfd, s);
+
+ if (sec_vma < *vma) {
+ if (*len > 0)
+@@ -1899,7 +1910,7 @@ int main(int argc, char *argv[])
+ if (s->flags & SEC_CODE)
+ if (!bfd_get_section_contents(abs_bfd, s,
+ text + (s->vma - text_vma), 0,
+- bfd_section_size(abs_bfd, s)))
++ elf2flt_bfd_section_size(abs_bfd, s)))
+ {
+ fatal("read error section %s", s->name);
+ }
+@@ -1925,7 +1936,7 @@ int main(int argc, char *argv[])
+ if (s->flags & SEC_DATA)
+ if (!bfd_get_section_contents(abs_bfd, s,
+ data + (s->vma - data_vma), 0,
+- bfd_section_size(abs_bfd, s)))
++ elf2flt_bfd_section_size(abs_bfd, s)))
+ {
+ fatal("read error section %s", s->name);
+ }
+--
+2.11.0
+
diff --git a/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0001-lm32.patch b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0001-lm32.patch
new file mode 100644
index 000000000..5ec55337b
--- /dev/null
+++ b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0001-lm32.patch
@@ -0,0 +1,159 @@
+diff -Nur elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c
+--- elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c 2017-09-27 06:06:04.000000000 +0200
++++ elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c 2017-09-27 06:07:51.032597579 +0200
+@@ -61,6 +61,8 @@
+ #include <elf/bfin.h>
+ #elif defined(TARGET_h8300)
+ #include <elf/h8.h>
++#elif defined(TARGET_lm32)
++#include <elf/lm32.h>
+ #elif defined(TARGET_m68k)
+ #include <elf/m68k.h>
+ #elif defined(TARGET_microblaze)
+@@ -120,6 +122,11 @@
+ #define ARCH "nios"
+ #elif defined(TARGET_nios2)
+ #define ARCH "nios2"
++#elif defined(TARGET_lm32)
++#define ARCH "lm32"
++#define FLAT_LM32_RELOC_TYPE_32_BIT 0
++#define FLAT_LM32_RELOC_TYPE_HI16_BIT 1
++#define FLAT_LM32_RELOC_TYPE_LO16_BIT 2
+ #elif defined(TARGET_xtensa)
+ #define ARCH "xtensa"
+ #else
+@@ -357,7 +364,7 @@
+ int bad_relocs = 0;
+ asymbol **symb;
+ long nsymb;
+-#ifdef TARGET_bfin
++#if defined (TARGET_bfin) || defined (TARGET_lm32)
+ unsigned long persistent_data = 0;
+ #endif
+
+@@ -682,6 +689,36 @@
+ break;
+ default:
+ goto bad_resolved_reloc;
++#elif defined(TARGET_lm32)
++ case R_LM32_HI16:
++ case R_LM32_LO16:
++ if (q->howto->type == R_LM32_HI16) {
++ pflags = FLAT_LM32_RELOC_TYPE_HI16_BIT << 29;
++ } else {
++ pflags = FLAT_LM32_RELOC_TYPE_LO16_BIT << 29;
++ }
++
++ relocation_needed = 1;
++
++ /* remember the upper 16 bits */
++ if ((0xffff0000 & sym_addr) != persistent_data) {
++ flat_relocs = (uint32_t *)
++ (realloc (flat_relocs, (flat_reloc_count + 1) * sizeof (uint32_t)));
++ if (verbose)
++ printf ("New persistent data for %08lx\n", sym_addr);
++ persistent_data = 0xffff0000 & sym_addr;
++ flat_relocs[flat_reloc_count++] = (sym_addr >> 16) | (3 << 29);
++ }
++ break;
++ case R_LM32_32:
++ pflags = FLAT_LM32_RELOC_TYPE_32_BIT << 29;
++ relocation_needed = 1;
++ break;
++ case R_LM32_CALL:
++ relocation_needed = 0;
++ break;
++ default:
++ goto bad_resolved_reloc;
+ #elif defined(TARGET_m68k)
+ case R_68K_32:
+ goto good_32bit_resolved_reloc;
+@@ -1459,6 +1496,63 @@
+ #undef _30BITS_RELOC
+ #undef _28BITS_RELOC
+ #endif
++#ifdef TARGET_lm32
++ case R_LM32_32:
++ {
++ pflags = FLAT_LM32_RELOC_TYPE_32_BIT << 29;
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
++ sym_addr += sym_vma + q->addend;
++ relocation_needed = 1;
++ break;
++ }
++ case R_LM32_CALL:
++ {
++ sym_vma = 0;
++ sym_addr += sym_vma + q->addend;
++ sym_addr -= q->address;
++ sym_addr = (int32_t)sym_addr >> q->howto->rightshift;
++
++ if ((int32_t)sym_addr < -0x8000000 || (int32_t)sym_addr > 0x7ffffff) {
++ printf("ERROR: Relocation overflow for R_LM32_CALL relocation against %s\n", sym_name);
++ bad_relocs++;
++ continue;
++ }
++
++ r_mem[0] |= (sym_addr >> 24) & 0x03;
++ r_mem[1] = (sym_addr >> 16) & 0xff;
++ r_mem[2] = (sym_addr >> 8) & 0xff;
++ r_mem[3] = sym_addr & 0xff;
++ break;
++ }
++ case R_LM32_HI16:
++ case R_LM32_LO16:
++ {
++ if (q->howto->type == R_LM32_HI16) {
++ pflags = FLAT_LM32_RELOC_TYPE_HI16_BIT << 29;
++ } else {
++ pflags = FLAT_LM32_RELOC_TYPE_LO16_BIT << 29;
++ }
++
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
++ sym_addr += sym_vma + q->addend;
++
++ relocation_needed = 1;
++
++ /* remember the upper 16 bits */
++ if ((0xffff0000 & sym_addr) != persistent_data) {
++ flat_relocs = (uint32_t *)
++ (realloc (flat_relocs, (flat_reloc_count + 1) * sizeof (uint32_t)));
++ if (verbose)
++ printf ("New persistent data for %08lx\n", sym_addr);
++ persistent_data = 0xffff0000 & sym_addr;
++ flat_relocs[flat_reloc_count++] = (sym_addr >> 16) | (3 << 29);
++ }
++
++ r_mem[2] = (sym_addr >> 8) & 0xff;
++ r_mem[3] = sym_addr & 0xff;
++ break;
++ }
++#endif /* TARGET_lm32 */
+ default:
+ /* missing support for other types of relocs */
+ printf("ERROR: bad reloc type %d\n", (*p)->howto->type);
+@@ -1596,6 +1690,13 @@
+ break;
+ #endif
+
++#ifdef TARGET_lm32
++ case R_LM32_HI16:
++ case R_LM32_LO16:
++ case R_LM32_CALL:
++ /* entry has already been written */
++ break;
++#endif
+ default:
+ /* The alignment of the build host
+ might be stricter than that of the
+diff -Nur elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.ld.in elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.ld.in
+--- elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.ld.in 2017-09-27 06:06:04.000000000 +0200
++++ elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.ld.in 2017-09-29 18:11:30.999698955 +0200
+@@ -34,6 +34,7 @@
+ W_RODAT *(.rodata1)
+ W_RODAT *(.rodata.*)
+ W_RODAT *(.gnu.linkonce.r*)
++W_RODAT *(.rofixup)
+
+ /* .ARM.extab name sections containing exception unwinding information */
+ *(.ARM.extab* .gnu.linkonce.armextab.*)
diff --git a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0002-sh2.patch b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0002-sh2.patch
index 59e263bc0..59e263bc0 100644
--- a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0002-sh2.patch
+++ b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0002-sh2.patch
diff --git a/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0003-h8300.patch b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0003-h8300.patch
new file mode 100644
index 000000000..c2117ede4
--- /dev/null
+++ b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0003-h8300.patch
@@ -0,0 +1,20 @@
+diff -Nur elf2flt-7e33f28df198c46764021ed14408bd262751e148.orig/flthdr.c elf2flt-7e33f28df198c46764021ed14408bd262751e148/flthdr.c
+--- elf2flt-7e33f28df198c46764021ed14408bd262751e148.orig/flthdr.c 2019-09-30 22:07:49.000000000 +0200
++++ elf2flt-7e33f28df198c46764021ed14408bd262751e148/flthdr.c 2020-03-09 14:41:48.348042903 +0100
+@@ -164,8 +164,16 @@
+ r = ntohl(relocs[i]);
+ raddr = flat_get_relocate_addr(r);
+ printf(" %u\t0x%08lx (0x%08"PRIx32")\t", i, r, raddr);
++#if defined(TARGET_h8300)
++ raddr &= ~0x00000001;
++#endif
+ fseek_stream(&ifp, sizeof(old_hdr) + raddr, SEEK_SET);
+ fread_stream(&addr, sizeof(addr), 1, &ifp);
++#if defined(TARGET_h8300)
++ addr = ntohl(addr);
++ if (r & 1)
++ addr &= 0x00ffffff;
++#endif
+ printf("%"PRIx32"\n", addr);
+ }
+
diff --git a/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0004-elf2flt.c-add-new-relocation-types-for-xtensa.patch b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0004-elf2flt.c-add-new-relocation-types-for-xtensa.patch
new file mode 100644
index 000000000..953bd79cc
--- /dev/null
+++ b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0004-elf2flt.c-add-new-relocation-types-for-xtensa.patch
@@ -0,0 +1,188 @@
+From d7eb73163bcea31168c438fc132a0967ac172e3d Mon Sep 17 00:00:00 2001
+From: Max Filippov <jcmvbkbc@gmail.com>
+Date: Thu, 7 May 2020 21:11:43 -0700
+Subject: [PATCH] elf2flt.c: add new relocation types for xtensa
+
+Xtensa have added new relocation types R_XTENSA_[NP]DIFF{8,16,32} with
+the same properties as the existing types R_XTENSA_DIFF{8,16,32}.
+Add them to the list of ignored relocation types.
+
+This fixes the following error when invoking elf2flt on xtensa binaries
+built with the recent binutils:
+
+ ERROR: reloc type R_XTENSA_PDIFF32 unsupported in this context
+
+Reported-by: Romain Naour <romain.naour@gmail.com>
+Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
+Backported from: d7eb73163bcea31168c438fc132a0967ac172e3d
+---
+ Makefile.in | 3 ++-
+ configure | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ configure.ac | 14 ++++++++++++
+ elf2flt.c | 8 +++++++
+ 4 files changed, 88 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 52b3347d7f43..0529c7f0a25a 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -30,7 +30,8 @@ DEFS = @DEFS@ \
+ -DNO_GOT_CHECK=@got_check@ \
+ -DUSE_EMIT_RELOCS=@emit_relocs@ \
+ -DEMIT_CTOR_DTOR=@emit_ctor_dtor@ \
+- -DALWAYS_RELOC_TEXT=@always_reloc_text@
++ -DALWAYS_RELOC_TEXT=@always_reloc_text@ \
++ -DHAVE_BFD_XTENSA_PDIFF_RELOCS=@HAVE_BFD_XTENSA_PDIFF_RELOCS@
+ EXEEXT = @EXEEXT@
+ OBJEXT = @OBJEXT@
+
+diff --git a/configure b/configure
+index bb8e33f9cb28..bca38c34247e 100755
+--- a/configure
++++ b/configure
+@@ -621,6 +621,7 @@ ac_includes_default="\
+
+ ac_subst_vars='LTLIBOBJS
+ LIBOBJS
++HAVE_BFD_XTENSA_PDIFF_RELOCS
+ SYMBOL_PREFIX
+ always_reloc_text
+ emit_ctor_dtor
+@@ -1729,6 +1730,52 @@ fi
+
+ } # ac_fn_c_try_link
+
++# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
++# ---------------------------------------------
++# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
++# accordingly.
++ac_fn_c_check_decl ()
++{
++ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
++ as_decl_name=`echo $2|sed 's/ *(.*//'`
++ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
++$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
++if eval \${$3+:} false; then :
++ $as_echo_n "(cached) " >&6
++else
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++$4
++int
++main ()
++{
++#ifndef $as_decl_name
++#ifdef __cplusplus
++ (void) $as_decl_use;
++#else
++ (void) $as_decl_name;
++#endif
++#endif
++
++ ;
++ return 0;
++}
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"; then :
++ eval "$3=yes"
++else
++ eval "$3=no"
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++fi
++eval ac_res=\$$3
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
++$as_echo "$ac_res" >&6; }
++ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
++
++} # ac_fn_c_check_decl
++
+ # ac_fn_c_check_func LINENO FUNC VAR
+ # ----------------------------------
+ # Tests whether FUNC exists, setting the cache variable VAR accordingly
+@@ -4272,6 +4319,22 @@ $as_echo "#define const /**/" >>confdefs.h
+ fi
+
+
++HAVE_BFD_XTENSA_PDIFF_RELOCS=0
++case $target in
++ xtensa*)
++ OLD_CPPFLAGS=$CPPFLAGS
++ CPPFLAGS="-I$bfd_include_dir -I$binutils_include_dir $CPPFLAGS"
++ ac_fn_c_check_decl "$LINENO" "R_XTENSA_PDIFF8" "ac_cv_have_decl_R_XTENSA_PDIFF8" "#include \"bfd.h\"
++ #include \"elf/xtensa.h\"
++"
++if test "x$ac_cv_have_decl_R_XTENSA_PDIFF8" = xyes; then :
++ HAVE_BFD_XTENSA_PDIFF_RELOCS=1
++fi
++
++ CPPFLAGS=$OLD_CPPFLAGS
++ ;;
++esac
++
+ for ac_func in vprintf
+ do :
+ ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf"
+@@ -4333,6 +4396,7 @@ fi
+
+
+
++
+ ac_config_files="$ac_config_files ld-elf2flt.sh:ld-elf2flt.in Makefile elf2flt.ld"
+
+ cat >confcache <<\_ACEOF
+diff --git a/configure.ac b/configure.ac
+index d6b4119eb18a..19969b1045f6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -202,6 +202,19 @@ AC_CHECK_HEADERS(fcntl.h unistd.h bfd.h)
+ dnl Checks for typedefs, structures, and compiler characteristics.
+ AC_C_CONST
+
++HAVE_BFD_XTENSA_PDIFF_RELOCS=0
++case $target in
++ xtensa*)
++ AS_VAR_COPY([OLD_CPPFLAGS], [CPPFLAGS])
++ AS_VAR_SET([CPPFLAGS], ["-I$bfd_include_dir -I$binutils_include_dir $CPPFLAGS"])
++ AC_CHECK_DECL([R_XTENSA_PDIFF8],
++ [HAVE_BFD_XTENSA_PDIFF_RELOCS=1],,
++ [#include "bfd.h"
++ #include "elf/xtensa.h"])
++ AS_VAR_COPY([CPPFLAGS], [OLD_CPPFLAGS])
++ ;;
++esac
++
+ dnl Checks for library functions.
+ AC_FUNC_VPRINTF
+
+@@ -235,6 +248,7 @@ AC_SUBST(emit_relocs)
+ AC_SUBST(emit_ctor_dtor)
+ AC_SUBST(always_reloc_text)
+ AC_SUBST(SYMBOL_PREFIX)
++AC_SUBST(HAVE_BFD_XTENSA_PDIFF_RELOCS)
+
+ AC_OUTPUT(ld-elf2flt.sh:ld-elf2flt.in Makefile elf2flt.ld)
+
+diff --git a/elf2flt.c b/elf2flt.c
+index b7c4a490df02..961534973f56 100644
+--- a/elf2flt.c
++++ b/elf2flt.c
+@@ -776,6 +776,14 @@ output_relocs (
+ case R_XTENSA_DIFF8:
+ case R_XTENSA_DIFF16:
+ case R_XTENSA_DIFF32:
++#if HAVE_BFD_XTENSA_PDIFF_RELOCS
++ case R_XTENSA_PDIFF8:
++ case R_XTENSA_PDIFF16:
++ case R_XTENSA_PDIFF32:
++ case R_XTENSA_NDIFF8:
++ case R_XTENSA_NDIFF16:
++ case R_XTENSA_NDIFF32:
++#endif
+ case R_XTENSA_32_PCREL:
+ continue;
+ case R_XTENSA_32:
+--
+2.20.1
+
diff --git a/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0005-elf2flt-add-riscv-64-bits-support.patch b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0005-elf2flt-add-riscv-64-bits-support.patch
new file mode 100644
index 000000000..4b0075844
--- /dev/null
+++ b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0005-elf2flt-add-riscv-64-bits-support.patch
@@ -0,0 +1,137 @@
+From 1dea576eac4289602adc4a37f48c80330bf82e63 Mon Sep 17 00:00:00 2001
+From: Damien Le Moal <damien.lemoal@wdc.com>
+Date: Wed, 9 Sep 2020 17:31:33 +0900
+Subject: [PATCH] elf2flt: add riscv 64-bits support
+
+Add support for riscv 64bits ISA by defining the relocation types
+R_RISCV_32_PCREL, R_RISCV_ADD32, R_RISCV_SUB32, R_RISCV_32 and
+R_RISCV_64. riscv64 support also needs the __global_pointer$ symbol to
+be defined right after the relocation tables in the data section.
+Furthermore, the .got and .got.plt sections must be reversed. These 2
+requirements are handled with runtime modifications of the default
+linker script using the append_sed() function.
+(1) For the .got.plt and .got sections order swap, append_sed() is used
+to rename "(.got.plt)" to "(.got.tmp)" and to rename "(.got)" to
+"(.got.plt)". A last call finalize the name swap by replacing
+"(.got.tmp)" with "(.got)"
+(2) For the global pointer synbol, a definition line starting with
+"RISCV_GP" is added. The "RISCV_GP" string is removed if the target CPU
+type is riscv64. The definition line is dropped for other CPU types.
+
+With these changes, buildroot/busybox builds and run on NOMMU
+systems with kernel 5.13. Tested on Canaan Kendryte K210 boards.
+
+This patch is based on earlier work by Christoph Hellwig <hch@lst.de>.
+
+Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
+---
+ elf2flt.c | 23 +++++++++++++++++++++++
+ elf2flt.ld.in | 9 +++++----
+ ld-elf2flt.c | 16 ++++++++++++++++
+ 3 files changed, 44 insertions(+), 4 deletions(-)
+
+diff --git a/elf2flt.c b/elf2flt.c
+index f87f1fc..dbce467 100644
+--- a/elf2flt.c
++++ b/elf2flt.c
+@@ -80,6 +80,8 @@ const char *elf2flt_progname;
+ #include <elf/v850.h>
+ #elif defined(TARGET_xtensa)
+ #include <elf/xtensa.h>
++#elif defined(TARGET_riscv64)
++#include <elf/riscv.h>
+ #endif
+
+ #if defined(__MINGW32__)
+@@ -122,6 +124,8 @@ const char *elf2flt_progname;
+ #define ARCH "nios2"
+ #elif defined(TARGET_xtensa)
+ #define ARCH "xtensa"
++#elif defined(TARGET_riscv64)
++#define ARCH "riscv64"
+ #else
+ #error "Don't know how to support your CPU architecture??"
+ #endif
+@@ -797,6 +801,16 @@ output_relocs (
+ goto good_32bit_resolved_reloc;
+ default:
+ goto bad_resolved_reloc;
++#elif defined(TARGET_riscv64)
++ case R_RISCV_32_PCREL:
++ case R_RISCV_ADD32:
++ case R_RISCV_SUB32:
++ continue;
++ case R_RISCV_32:
++ case R_RISCV_64:
++ goto good_32bit_resolved_reloc;
++ default:
++ goto bad_resolved_reloc;
+ #else
+ default:
+ /* The default is to assume that the
+@@ -1806,6 +1820,15 @@ int main(int argc, char *argv[])
+ if (!load_to_ram && !pfile)
+ load_to_ram = 1;
+
++#if defined(TARGET_riscv64)
++ /*
++ * riscv only supports loading text and data contiguously.
++ * So fail if load_to_ram is false.
++ */
++ if (!load_to_ram)
++ fatal("Loading to RAM ('-r' option) is required");
++#endif
++
+ fname = argv[argc-1];
+
+ if (pfile) {
+diff --git a/elf2flt.ld.in b/elf2flt.ld.in
+index ec1fe6f..c0c44b8 100644
+--- a/elf2flt.ld.in
++++ b/elf2flt.ld.in
+@@ -70,10 +70,11 @@ W_RODAT *(.gnu.linkonce.r*)
+ . = ALIGN(0x20) ;
+ LONG(-1)
+ . = ALIGN(0x20) ;
+-R_RODAT *(.rodata)
+-R_RODAT *(.rodata1)
+-R_RODAT *(.rodata.*)
+-R_RODAT *(.gnu.linkonce.r*)
++RISCV_GP: __global_pointer$ = . + 0x800 ;
++R_RODAT *(.rodata)
++R_RODAT *(.rodata1)
++R_RODAT *(.rodata.*)
++R_RODAT *(.gnu.linkonce.r*)
+ *(.data)
+ *(.data1)
+ *(.data.*)
+diff --git a/ld-elf2flt.c b/ld-elf2flt.c
+index e5de506..31b565f 100644
+--- a/ld-elf2flt.c
++++ b/ld-elf2flt.c
+@@ -324,6 +324,22 @@ static int do_final_link(void)
+ append_option(&other_options, concat(got_offset, "=", buf, NULL));
+ }
+
++ if (streq(TARGET_CPU, "riscv64")) {
++ /*
++ * The .got section must come before the .got.plt section
++ * (gcc/ld bug ?).
++ */
++ append_sed(&sed, "(.got.plt)", "(.got.tmp)");
++ append_sed(&sed, "(.got.plt)", "(.got)");
++ append_sed(&sed, "(.got.tmp)", "(.got.plt)");
++
++ /* The global pointer symbol is defined after the GOT. */
++ append_sed(&sed, "^RISCV_GP:", "");
++ } else {
++ /* Get rid of the global pointer definition. */
++ append_sed(&sed, "^RISCV_GP:", NULL);
++ }
++
+ /* Locate the default linker script, if we don't have one provided. */
+ if (!linker_script)
+ linker_script = concat(ldscriptpath, "/elf2flt.ld", NULL);
+--
+2.31.1
+
diff --git a/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0008-remove_BFD_VMA_FMT.patch b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0008-remove_BFD_VMA_FMT.patch
new file mode 100644
index 000000000..d20b993da
--- /dev/null
+++ b/toolchain/elf2flt/patches/453398f917d167f8c308c8f997270c48ae8f8b12/0008-remove_BFD_VMA_FMT.patch
@@ -0,0 +1,125 @@
+diff -Nur elf2flt-453398f917d167f8c308c8f997270c48ae8f8b12.orig/elf2flt.c elf2flt-453398f917d167f8c308c8f997270c48ae8f8b12/elf2flt.c
+--- elf2flt-453398f917d167f8c308c8f997270c48ae8f8b12.orig/elf2flt.c 2023-01-30 08:48:56.632981732 +0100
++++ elf2flt-453398f917d167f8c308c8f997270c48ae8f8b12/elf2flt.c 2023-01-30 08:53:34.510426754 +0100
+@@ -222,7 +222,7 @@
+ long i;
+ printf("SYMBOL TABLE:\n");
+ for (i=0; i<number_of_symbols; i++) {
+- printf(" NAME=%s VALUE=0x%"BFD_VMA_FMT"x\n",
++ printf(" NAME=%s VALUE=0x%x\n",
+ symbol_table[i]->name, symbol_table[i]->value);
+ }
+ printf("\n");
+@@ -458,7 +458,7 @@
+ if (r == NULL)
+ continue;
+ if (verbose)
+- printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%"BFD_VMA_FMT"x\n",
++ printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%x\n",
+ r->name, r, r->flags, elf2flt_bfd_section_vma(abs_bfd, r));
+ if ((r->flags & SEC_RELOC) == 0)
+ continue;
+@@ -903,8 +903,8 @@
+ if (verbose)
+ fprintf(stderr,
+ "%s vma=0x%x, "
+- "value=0x%"BFD_VMA_FMT"x, "
+- "address=0x%"BFD_VMA_FMT"x "
++ "value=0x%x, "
++ "address=0x%x "
+ "sym_addr=0x%x rs=0x%x, opcode=0x%x\n",
+ "ABS32",
+ sym_vma, (*(q->sym_ptr_ptr))->value,
+@@ -922,8 +922,8 @@
+ if (verbose)
+ fprintf(stderr,
+ "%s vma=0x%x, "
+- "value=0x%"BFD_VMA_FMT"x, "
+- "address=0x%"BFD_VMA_FMT"x "
++ "value=0x%x, "
++ "address=0x%x "
+ "sym_addr=0x%x rs=0x%x, opcode=0x%x\n",
+ "PLT32",
+ sym_vma, (*(q->sym_ptr_ptr))->value,
+@@ -945,7 +945,7 @@
+ case R_V850_ZDA_16_16_OFFSET:
+ case R_V850_ZDA_16_16_SPLIT_OFFSET:
+ /* Can't support zero-relocations. */
+- printf ("ERROR: %s+0x%"BFD_VMA_FMT"x: zero relocations not supported\n",
++ printf ("ERROR: %s+0x%x: zero relocations not supported\n",
+ sym_name, q->addend);
+ continue;
+ #endif /* TARGET_v850 */
+@@ -1038,15 +1038,15 @@
+ sprintf(&addstr[0], "+0x%ld", sym_addr - (*(q->sym_ptr_ptr))->value -
+ elf2flt_bfd_section_vma(abs_bfd, sym_section));
+ if (verbose)
+- printf(" RELOC[%d]: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
++ printf(" RELOC[%d]: offset=0x%x symbol=%s%s "
+ "section=%s size=%d "
+- "fixup=0x%x (reloc=0x%"BFD_VMA_FMT"x)\n",
++ "fixup=0x%x (reloc=0x%x)\n",
+ flat_reloc_count,
+ q->address, sym_name, addstr,
+ section_name, sym_reloc_size,
+ sym_addr, section_vma + q->address);
+ if (verbose)
+- printf("reloc[%d] = 0x%"BFD_VMA_FMT"x\n",
++ printf("reloc[%d] = 0x%x\n",
+ flat_reloc_count, section_vma + q->address);
+
+ continue;
+@@ -1163,9 +1163,9 @@
+ temp |= (exist_val & 0x3f);
+ *(unsigned long *)r_mem = htoniosl(temp);
+ if (verbose)
+- printf("omit: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
++ printf("omit: offset=0x%x symbol=%s%s "
+ "section=%s size=%d "
+- "fixup=0x%x (reloc=0x%"BFD_VMA_FMT"x) GPREL\n",
++ "fixup=0x%x (reloc=0x%x) GPREL\n",
+ q->address, sym_name, addstr,
+ section_name, sym_reloc_size,
+ sym_addr, section_vma + q->address);
+@@ -1183,9 +1183,9 @@
+ exist_val |= ((sym_addr & 0xFFFF) << 6);
+ *(unsigned long *)r_mem = htoniosl(exist_val);
+ if (verbose)
+- printf("omit: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
++ printf("omit: offset=0x%x symbol=%s%s "
+ "section=%s size=%d "
+- "fixup=0x%x (reloc=0x%"BFD_VMA_FMT"x) PCREL\n",
++ "fixup=0x%x (reloc=0x%x) PCREL\n",
+ q->address, sym_name, addstr,
+ section_name, sym_reloc_size,
+ sym_addr, section_vma + q->address);
+@@ -1200,7 +1200,7 @@
+ && (p[-1]->sym_ptr_ptr == p[0]->sym_ptr_ptr)
+ && (p[-1]->addend == p[0]->addend)) {
+ if (verbose)
+- printf("omit: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
++ printf("omit: offset=0x%x symbol=%s%s "
+ "section=%s size=%d LO16\n",
+ q->address, sym_name, addstr,
+ section_name, sym_reloc_size);
+@@ -1610,9 +1610,9 @@
+ }
+
+ if (verbose)
+- printf(" RELOC[%d]: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
++ printf(" RELOC[%d]: offset=0x%x symbol=%s%s "
+ "section=%s size=%d "
+- "fixup=0x%x (reloc=0x%"BFD_VMA_FMT"x)\n",
++ "fixup=0x%x (reloc=0x%x)\n",
+ flat_reloc_count,
+ q->address, sym_name, addstr,
+ section_name, sym_reloc_size,
+@@ -1630,7 +1630,7 @@
+ (section_vma + q->address);
+
+ if (verbose)
+- printf("reloc[%d] = 0x%"BFD_VMA_FMT"x\n",
++ printf("reloc[%d] = 0x%x\n",
+ flat_reloc_count, section_vma + q->address);
+ #else
+ switch ((*p)->howto->type) {
diff --git a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch b/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch
deleted file mode 100644
index 825582550..000000000
--- a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0003-Makefile-fix-build-with-Binutils-2.31.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From faf1a1646093fbc5ed279bae1c7250c7dfea56f8 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@smile.fr>
-Date: Tue, 17 Jul 2018 16:36:16 +0200
-Subject: [PATCH] Makefile: fix build with Binutils 2.31
-
-Binutils added diagnostics.h to bfd.h [1], so elf2flt must create a symlink
-for this header.
-
-Fixes:
-https://gitlab.com/free-electrons/toolchains-builder/-/jobs/82284139
-
-[1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commitdiff;h=95da9854466ada2572b42f5528711a06a2d42db1
-
-Signed-off-by: Romain Naour <romain.naour@smile.fr>
----
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index cfad06c..164e306 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -127,7 +127,7 @@ bfd-headers/.stamp:
- rm -rf bfd-headers
- mkdir bfd-headers
- ln -sf $(BFD_INCLUDE_DIR)/bfd.h bfd-headers/bfd.h
-- for f in ansidecl filenames hashtab libiberty symcat; do \
-+ for f in ansidecl diagnostics filenames hashtab libiberty symcat; do \
- ln -sf $(BINUTILS_INCLUDE_DIR)/$$f.h bfd-headers/$$f.h || exit 1; \
- done
- ln -sf $(BINUTILS_INCLUDE_DIR)/elf bfd-headers/elf
---
-2.7.4
-
diff --git a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0001-lm32.patch b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0001-lm32.patch
index 44757171b..44757171b 100644
--- a/toolchain/elf2flt/patches/6d80ab6c93409e796f85da404bde84b841231531/0001-lm32.patch
+++ b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0001-lm32.patch
diff --git a/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0002-sh2.patch b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0002-sh2.patch
new file mode 100644
index 000000000..59e263bc0
--- /dev/null
+++ b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0002-sh2.patch
@@ -0,0 +1,43 @@
+diff -Nur elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c
+--- elf2flt-6d80ab6c93409e796f85da404bde84b841231531.orig/elf2flt.c 2017-10-03 10:36:02.718919968 +0200
++++ elf2flt-6d80ab6c93409e796f85da404bde84b841231531/elf2flt.c 2017-10-03 10:37:42.402568044 +0200
+@@ -74,7 +74,7 @@
+ #define FLAT_NIOS2_R_HIADJ_LO 2
+ #define FLAT_NIOS2_R_CALL26 4
+ #include <elf/nios2.h>
+-#elif defined(TARGET_sh)
++#elif defined(TARGET_sh2) || defined(TARGET_sh2eb)
+ #include <elf/sh.h>
+ #elif defined(TARGET_sparc)
+ #include <elf/sparc.h>
+@@ -108,8 +108,10 @@
+ #define ARCH "sparc"
+ #elif defined(TARGET_v850)
+ #define ARCH "v850"
+-#elif defined(TARGET_sh)
+-#define ARCH "sh"
++#elif defined(TARGET_sh2)
++#define ARCH "sh2"
++#elif defined(TARGET_sh2eb)
++#define ARCH "sh2"
+ #elif defined(TARGET_h8300)
+ #define ARCH "h8300"
+ #elif defined(TARGET_microblaze)
+@@ -1309,7 +1311,7 @@
+ #endif /* TARGET_sparc */
+
+
+-#ifdef TARGET_sh
++#if defined(TARGET_sh2) || defined(TARGET_sh2eb)
+ case R_SH_DIR32:
+ relocation_needed = 1;
+ sym_vma = bfd_section_vma(abs_bfd, sym_section);
+@@ -1320,7 +1322,7 @@
+ sym_addr += sym_vma + q->addend;
+ sym_addr -= q->address;
+ break;
+-#endif /* TARGET_sh */
++#endif /* TARGET_sh2 / TARGET_sh2eb */
+
+ #ifdef TARGET_e1
+ #define htoe1l(x) htonl(x)
diff --git a/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0003-h8300.patch b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0003-h8300.patch
new file mode 100644
index 000000000..c2117ede4
--- /dev/null
+++ b/toolchain/elf2flt/patches/7e33f28df198c46764021ed14408bd262751e148/0003-h8300.patch
@@ -0,0 +1,20 @@
+diff -Nur elf2flt-7e33f28df198c46764021ed14408bd262751e148.orig/flthdr.c elf2flt-7e33f28df198c46764021ed14408bd262751e148/flthdr.c
+--- elf2flt-7e33f28df198c46764021ed14408bd262751e148.orig/flthdr.c 2019-09-30 22:07:49.000000000 +0200
++++ elf2flt-7e33f28df198c46764021ed14408bd262751e148/flthdr.c 2020-03-09 14:41:48.348042903 +0100
+@@ -164,8 +164,16 @@
+ r = ntohl(relocs[i]);
+ raddr = flat_get_relocate_addr(r);
+ printf(" %u\t0x%08lx (0x%08"PRIx32")\t", i, r, raddr);
++#if defined(TARGET_h8300)
++ raddr &= ~0x00000001;
++#endif
+ fseek_stream(&ifp, sizeof(old_hdr) + raddr, SEEK_SET);
+ fread_stream(&addr, sizeof(addr), 1, &ifp);
++#if defined(TARGET_h8300)
++ addr = ntohl(addr);
++ if (r & 1)
++ addr &= 0x00ffffff;
++#endif
+ printf("%"PRIx32"\n", addr);
+ }
+
diff --git a/toolchain/elf2flt/patches/v2021.08/0001-elf2flt-handle-binutils-2.34.patch b/toolchain/elf2flt/patches/v2021.08/0001-elf2flt-handle-binutils-2.34.patch
new file mode 100644
index 000000000..4aa473c24
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2021.08/0001-elf2flt-handle-binutils-2.34.patch
@@ -0,0 +1,377 @@
+From d78acba6510527aaa01a41eaf4c931f7a57e5f44 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@smile.fr>
+Date: Wed, 5 Feb 2020 10:31:32 +0100
+Subject: [PATCH] elf2flt: handle binutils >= 2.34
+
+The latest Binutils release (2.34) is not compatible with elf2flt due
+to a change in bfd_section_* macros [1]. The issue has been reported
+to the Binutils mailing list but Alan Modra recommend to bundle
+libbfd library sources into each projects using it [2]. That's
+because the API is not stable over the time without any backward
+compatibility guaranties.
+
+On the other hand, the elf2flt tools needs to support modified
+version of binutils for specific arch/target [3].
+
+Add two tests in the configure script to detect this API change
+in order to support binutils < 2.34 and binutils >= 2.34.
+
+Upstream status: [4]
+
+[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=fd3619828e94a24a92cddec42cbc0ab33352eeb4
+[2] https://sourceware.org/ml/binutils/2020-02/msg00044.html
+[3] https://github.com/uclinux-dev/elf2flt/issues/14
+[4] https://github.com/uclinux-dev/elf2flt/pull/15
+
+Signed-off-by: Romain Naour <romain.naour@smile.fr>
+---
+ configure.ac | 16 +++++++++++
+ elf2flt.c | 81 +++++++++++++++++++++++++++++-----------------------
+ 2 files changed, 61 insertions(+), 36 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b7db2cb..fdc0876 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -229,6 +229,22 @@ AC_CHECK_FUNCS([ \
+ strsignal \
+ ])
+
++dnl Various bfd section macros and functions like bfd_section_size() have been
++dnl modified starting with binutils >= 2.34.
++dnl Check if the prototypes take a bfd argument.
++if test "$binutils_build_dir" != "NONE"; then
++ CFLAGS="-I$binutils_include_dir -I$bfd_include_dir $CFLAGS"
++fi
++
++AC_TRY_COMPILE([#include <bfd.h>],
++ [const asection *sec; bfd_section_size(sec);],
++ bfd_section_api_takes_bfd=no,
++ bfd_section_api_takes_bfd=yes)
++if test "$bfd_section_api_takes_bfd" = "yes" ; then
++ AC_DEFINE(HAVE_BFD_SECTION_API_TAKES_BFD, 1,
++ [define to 1 for binutils < 2.34])
++fi
++
+ if test "$GCC" = yes ; then
+ CFLAGS="-Wall $CFLAGS"
+ if test "$werror" = 1 ; then
+diff --git a/elf2flt.c b/elf2flt.c
+index 7ac0617..ea6b5a1 100644
+--- a/elf2flt.c
++++ b/elf2flt.c
+@@ -149,6 +149,17 @@ const char *elf2flt_progname;
+ #define O_BINARY 0
+ #endif
+
++/*
++ * The bfd parameter isn't actually used by any of the bfd_section funcs and
++ * have been removed since binutils 2.34.
++ */
++#ifdef HAVE_BFD_SECTION_API_TAKES_BFD
++#define elf2flt_bfd_section_size(s) bfd_section_size(NULL, s)
++#define elf2flt_bfd_section_vma(s) bfd_section_vma(NULL, s)
++#else
++#define elf2flt_bfd_section_size(s) bfd_section_size(s)
++#define elf2flt_bfd_section_vma(s) bfd_section_vma(s)
++#endif
+
+ /* Extra output when running. */
+ static int verbose = 0;
+@@ -323,10 +334,8 @@ compare_relocs (const void *pa, const void *pb)
+ else if (!rb->sym_ptr_ptr || !*rb->sym_ptr_ptr)
+ return 1;
+
+- a_vma = bfd_section_vma(compare_relocs_bfd,
+- (*(ra->sym_ptr_ptr))->section);
+- b_vma = bfd_section_vma(compare_relocs_bfd,
+- (*(rb->sym_ptr_ptr))->section);
++ a_vma = elf2flt_bfd_section_vma((*(ra->sym_ptr_ptr))->section);
++ b_vma = elf2flt_bfd_section_vma((*(rb->sym_ptr_ptr))->section);
+ va = (*(ra->sym_ptr_ptr))->value + a_vma + ra->addend;
+ vb = (*(rb->sym_ptr_ptr))->value + b_vma + rb->addend;
+ return va - vb;
+@@ -403,7 +412,7 @@ output_relocs (
+ }
+
+ for (a = abs_bfd->sections; (a != (asection *) NULL); a = a->next) {
+- section_vma = bfd_section_vma(abs_bfd, a);
++ section_vma = elf2flt_bfd_section_vma(a);
+
+ if (verbose)
+ printf("SECTION: %s [%p]: flags=0x%x vma=0x%"PRIx32"\n",
+@@ -443,7 +452,7 @@ output_relocs (
+ continue;
+ if (verbose)
+ printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%"BFD_VMA_FMT"x\n",
+- r->name, r, r->flags, bfd_section_vma(abs_bfd, r));
++ r->name, r, r->flags, elf2flt_bfd_section_vma(r));
+ if ((r->flags & SEC_RELOC) == 0)
+ continue;
+ relsize = bfd_get_reloc_upper_bound(rel_bfd, r);
+@@ -695,7 +704,7 @@ output_relocs (
+ case R_BFIN_RIMM16:
+ case R_BFIN_LUIMM16:
+ case R_BFIN_HUIMM16:
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+
+ if (weak_und_symbol(sym_section->name, (*(q->sym_ptr_ptr))))
+@@ -728,7 +737,7 @@ output_relocs (
+ break;
+
+ case R_BFIN_BYTE4_DATA:
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+
+ if (weak_und_symbol (sym_section->name, (*(q->sym_ptr_ptr))))
+@@ -886,7 +895,7 @@ output_relocs (
+ #if defined(TARGET_m68k)
+ case R_68K_32:
+ relocation_needed = 1;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_68K_PC16:
+@@ -911,7 +920,7 @@ output_relocs (
+ q->address, sym_addr,
+ (*p)->howto->rightshift,
+ *(uint32_t *)r_mem);
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_ARM_GOT32:
+@@ -939,7 +948,7 @@ output_relocs (
+ #ifdef TARGET_v850
+ case R_V850_ABS32:
+ relocation_needed = 1;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_V850_ZDA_16_16_OFFSET:
+@@ -961,7 +970,7 @@ output_relocs (
+ sym_addr = (*(q->sym_ptr_ptr))->value;
+ q->address -= 1;
+ r_mem -= 1; /* tracks q->address */
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ sym_addr |= (*(unsigned char *)r_mem<<24);
+ break;
+@@ -974,7 +983,7 @@ output_relocs (
+ /* Absolute symbol done not relocation */
+ relocation_needed = !bfd_is_abs_section(sym_section);
+ sym_addr = (*(q->sym_ptr_ptr))->value;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_H8_DIR32:
+@@ -987,7 +996,7 @@ output_relocs (
+ }
+ relocation_needed = 1;
+ sym_addr = (*(q->sym_ptr_ptr))->value;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_H8_PCREL16:
+@@ -1013,7 +1022,7 @@ output_relocs (
+ #ifdef TARGET_microblaze
+ case R_MICROBLAZE_64:
+ /* work out the relocation */
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ /* Write relocated pointer back */
+ r_mem[2] = (sym_addr >> 24) & 0xff;
+@@ -1027,7 +1036,7 @@ output_relocs (
+ pflags = 0x80000000;
+ break;
+ case R_MICROBLAZE_32:
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ relocation_needed = 1;
+ break;
+@@ -1059,7 +1068,7 @@ output_relocs (
+ case R_NIOS2_BFD_RELOC_32:
+ relocation_needed = 1;
+ pflags = (FLAT_NIOS2_R_32 << 28);
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ /* modify target, in target order */
+ *(unsigned long *)r_mem = htoniosl(sym_addr);
+@@ -1069,7 +1078,7 @@ output_relocs (
+ unsigned long exist_val;
+ relocation_needed = 1;
+ pflags = (FLAT_NIOS2_R_CALL26 << 28);
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+
+ /* modify target, in target order */
+@@ -1100,7 +1109,7 @@ output_relocs (
+ ? FLAT_NIOS2_R_HIADJ_LO : FLAT_NIOS2_R_HI_LO;
+ pflags <<= 28;
+
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(abs_bfd, sym_section);
+ sym_addr += sym_vma + q->addend;
+
+ /* modify high 16 bits, in target order */
+@@ -1133,7 +1142,7 @@ output_relocs (
+ goto NIOS2_RELOC_ERR;
+ }
+ /* _gp holds a absolute value, otherwise the ld cannot generate correct code */
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ //printf("sym=%x, %d, _gp=%x, %d\n", sym_addr+sym_vma, sym_addr+sym_vma, gp, gp);
+ sym_addr += sym_vma + q->addend;
+ sym_addr -= gp;
+@@ -1214,7 +1223,7 @@ NIOS2_RELOC_ERR:
+ case R_SPARC_32:
+ case R_SPARC_UA32:
+ relocation_needed = 1;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_SPARC_PC22:
+@@ -1233,7 +1242,7 @@ NIOS2_RELOC_ERR:
+ case R_SPARC_HI22:
+ relocation_needed = 1;
+ pflags = 0x80000000;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ sym_addr |= (
+ htonl(*(uint32_t *)r_mem)
+@@ -1243,7 +1252,7 @@ NIOS2_RELOC_ERR:
+ case R_SPARC_LO10:
+ relocation_needed = 1;
+ pflags = 0x40000000;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ sym_addr &= 0x000003ff;
+ sym_addr |= (
+@@ -1257,7 +1266,7 @@ NIOS2_RELOC_ERR:
+ #ifdef TARGET_sh
+ case R_SH_DIR32:
+ relocation_needed = 1;
+- sym_vma = bfd_section_vma(abs_bfd, sym_section);
++ sym_vma = elf2flt_bfd_section_vma(sym_section);
+ sym_addr += sym_vma + q->addend;
+ break;
+ case R_SH_REL32:
+@@ -1289,7 +1298,7 @@ NIOS2_RELOC_ERR:
+ case R_E1_CONST31:
+ relocation_needed = 1;
+ DBG_E1("Handling Reloc <CONST31>\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
+ sec_vma, sym_addr, q->address);
+ sym_addr = sec_vma + sym_addr;
+@@ -1304,7 +1313,7 @@ NIOS2_RELOC_ERR:
+ relocation_needed = 0;
+ DBG_E1("Handling Reloc <CONST31_PCREL>\n");
+ DBG_E1("DONT RELOCATE AT LOADING\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
+ sec_vma, sym_addr, q->address);
+ sym_addr = sec_vma + sym_addr;
+@@ -1331,7 +1340,7 @@ NIOS2_RELOC_ERR:
+ relocation_needed = 0;
+ DBG_E1("Handling Reloc <DIS29W_PCREL>\n");
+ DBG_E1("DONT RELOCATE AT LOADING\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x], q->address : [0x%x]\n",
+ sec_vma, sym_addr, q->address);
+ sym_addr = sec_vma + sym_addr;
+@@ -1364,7 +1373,7 @@ NIOS2_RELOC_ERR:
+ DBG_E1("Handling Reloc <DIS29B>\n");
+ DIS29_RELOCATION:
+ relocation_needed = 1;
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%08x]\n",
+ sec_vma, sym_addr);
+ sym_addr = sec_vma + sym_addr;
+@@ -1381,7 +1390,7 @@ DIS29_RELOCATION:
+ relocation_needed = 0;
+ DBG_E1("Handling Reloc <IMM32_PCREL>\n");
+ DBG_E1("DONT RELOCATE AT LOADING\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
+ sec_vma, sym_addr);
+ sym_addr = sec_vma + sym_addr;
+@@ -1407,7 +1416,7 @@ DIS29_RELOCATION:
+ case R_E1_IMM32:
+ relocation_needed = 1;
+ DBG_E1("Handling Reloc <IMM32>\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
+ sec_vma, sym_addr);
+ sym_addr = sec_vma + sym_addr;
+@@ -1423,7 +1432,7 @@ DIS29_RELOCATION:
+ case R_E1_WORD:
+ relocation_needed = 1;
+ DBG_E1("Handling Reloc <WORD>\n");
+- sec_vma = bfd_section_vma(abs_bfd, sym_section);
++ sec_vma = elf2flt_bfd_section_vma(sym_section);
+ DBG_E1("sec_vma : [0x%x], sym_addr : [0x%x]\n",
+ sec_vma, sym_addr);
+ sym_addr = sec_vma + sym_addr;
+@@ -1450,7 +1459,7 @@ DIS29_RELOCATION:
+ }
+
+ sprintf(&addstr[0], "+0x%lx", sym_addr - (*(q->sym_ptr_ptr))->value -
+- bfd_section_vma(abs_bfd, sym_section));
++ elf2flt_bfd_section_vma(sym_section));
+
+
+ /*
+@@ -1890,8 +1899,8 @@ int main(int argc, char *argv[])
+ } else
+ continue;
+
+- sec_size = bfd_section_size(abs_bfd, s);
+- sec_vma = bfd_section_vma(abs_bfd, s);
++ sec_size = elf2flt_bfd_section_size(s);
++ sec_vma = elf2flt_bfd_section_vma(s);
+
+ if (sec_vma < *vma) {
+ if (*len > 0)
+@@ -1920,7 +1929,7 @@ int main(int argc, char *argv[])
+ (SEC_DATA | SEC_READONLY | SEC_RELOC)))
+ if (!bfd_get_section_contents(abs_bfd, s,
+ text + (s->vma - text_vma), 0,
+- bfd_section_size(abs_bfd, s)))
++ elf2flt_bfd_section_size(s)))
+ {
+ fatal("read error section %s", s->name);
+ }
+@@ -1950,7 +1959,7 @@ int main(int argc, char *argv[])
+ (SEC_READONLY | SEC_RELOC)))
+ if (!bfd_get_section_contents(abs_bfd, s,
+ data + (s->vma - data_vma), 0,
+- bfd_section_size(abs_bfd, s)))
++ elf2flt_bfd_section_size(s)))
+ {
+ fatal("read error section %s", s->name);
+ }
+--
+2.35.1
+
diff --git a/toolchain/elf2flt/patches/v2021.08/0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch b/toolchain/elf2flt/patches/v2021.08/0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch
new file mode 100644
index 000000000..4df3ea592
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2021.08/0002-elf2flt.ld-reinstate-32-byte-alignment-for-.data-sec.patch
@@ -0,0 +1,81 @@
+From 85ba5664eb368eb1cbd2c30b7cd574acd75edd4c Mon Sep 17 00:00:00 2001
+From: Niklas Cassel <niklas.cassel@wdc.com>
+Date: Mon, 4 Apr 2022 15:30:24 +0200
+Subject: [PATCH] elf2flt.ld: reinstate 32 byte alignment for .data section
+
+Commit 8a3e74446fe7 ("allow to build arm flat binaries") moved the
+following commands:
+ . = ALIGN(0x20) ;
+ @SYMBOL_PREFIX@_etext = . ;
+from the .text section to the top level in the SECTIONS node.
+
+The .text output section is being directed to a memory region using the
+"> flatmem :text" output section attribute. Commands in the top level in
+the SECTIONS node are not.
+
+This means that the ALIGN() command is no longer being appended to the
+flatmem memory region, it will simply update the Location Counter.
+
+The heuristic for placing an output section is described here:
+https://sourceware.org/binutils/docs-2.38/ld.html#Output-Section-Address
+
+"If an output memory region is set for the section then it is added to this
+region and its address will be the next free address in that region."
+
+Since the .data section is being directed to the same memory region as the
+.text section, this means that the Location Counter is not used when
+assigning an address to the .data output section, it will simply use the
+next free address.
+
+No longer directing these commands to the flatmem memory region means that
+the .data output section is no longer aligned to a 32 byte boundary.
+
+Before commit 8a3e74446fe7 ("allow to build arm flat binaries"):
+$ readelf -S busybox_unstripped.gdb | grep data
+ [ 3] .data PROGBITS 0000000000035ac0 00036ac0
+$ readelf -s busybox_unstripped.gdb | grep _etext
+ 19286: 0000000000035ac0 0 NOTYPE GLOBAL DEFAULT 1 _etext
+
+After commit 8a3e74446fe7 ("allow to build arm flat binaries"):
+$ readelf -S busybox_unstripped.gdb | grep data
+ [ 3] .data PROGBITS 0000000000035ab0 00036ab0
+$ readelf -s busybox_unstripped.gdb | grep _etext
+ 19287: 0000000000035ac0 0 NOTYPE GLOBAL DEFAULT 3 _etext
+
+The .data output section has to be aligned to a 32 byte boundary, see the
+FLAT_DATA_ALIGN 0x20 macro and its usage in fs/binfmt_flat.c:
+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/binfmt_flat.c?h=v5.17#n59
+
+Readd an explicit ALIGN attribute on the .data section itself, since the
+linker will obey this attribute regardless if being directed to a memory
+region or not. Also remove the ALIGN() command before the .data section,
+since this misleads the reader to think that the Location Counter is used
+when assigning an address to the .data section, when it actually is not.
+
+Fixes: 8a3e74446fe7 ("allow to build arm flat binaries")
+Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
+---
+ elf2flt.ld.in | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/elf2flt.ld.in b/elf2flt.ld.in
+index 0df999d..e5aea14 100644
+--- a/elf2flt.ld.in
++++ b/elf2flt.ld.in
+@@ -94,12 +94,9 @@ W_RODAT: *(.gnu.linkonce.r*)
+ *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+ } > flatmem
+ @SYMBOL_PREFIX@__exidx_end = .;
+-
+- . = ALIGN(0x20) ;
+ @SYMBOL_PREFIX@_etext = . ;
+
+- .data : {
+- . = ALIGN(0x4) ;
++ .data ALIGN(0x20): {
+ @SYMBOL_PREFIX@_sdata = . ;
+ @SYMBOL_PREFIX@__data_start = . ;
+ @SYMBOL_PREFIX@data_start = . ;
+--
+2.35.1
+
diff --git a/toolchain/elf2flt/patches/v2021.08/0003-elf2flt-add-riscv-64-bits-support.patch b/toolchain/elf2flt/patches/v2021.08/0003-elf2flt-add-riscv-64-bits-support.patch
new file mode 100644
index 000000000..15c191c83
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2021.08/0003-elf2flt-add-riscv-64-bits-support.patch
@@ -0,0 +1,103 @@
+From 3f1f323feb5cf25d8c80861991d0360784f4d2e6 Mon Sep 17 00:00:00 2001
+From: Damien Le Moal <damien.lemoal@wdc.com>
+Date: Wed, 9 Sep 2020 17:31:33 +0900
+Subject: [PATCH] elf2flt: add riscv 64-bits support
+
+Add support for riscv 64bits ISA by defining the relocation types
+R_RISCV_32_PCREL, R_RISCV_ADD32, R_RISCV_SUB32, R_RISCV_32 and
+R_RISCV_64. riscv64 support also needs the __global_pointer$ symbol to
+be defined right after the relocation tables in the data section. To
+define this symbol, the "RISCV_GP" line prefix is added. The "RISCV_GP"
+string is removed if the target CPU type is riscv64 and the definition
+line is dropped for other CPU types.
+
+With these changes, buildroot and busybox build and run on riscv NOMMU
+systems with Linux kernel including patch 6045ab5fea4c
+("binfmt_flat: do not stop relocating GOT entries prematurely on riscv")
+fixing the binfmt_flat loader. Tested on QEMU and Canaan Kendryte K210
+boards.
+
+This patch is based on earlier work by Christoph Hellwig <hch@lst.de>.
+
+Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
+---
+ elf2flt.c | 16 ++++++++++++++++
+ elf2flt.ld.in | 1 +
+ ld-elf2flt.c | 8 ++++++++
+ 3 files changed, 25 insertions(+)
+
+diff --git a/elf2flt.c b/elf2flt.c
+index da25e93..a03ea3a 100644
+--- a/elf2flt.c
++++ b/elf2flt.c
+@@ -81,6 +81,8 @@ const char *elf2flt_progname;
+ #include <elf/v850.h>
+ #elif defined(TARGET_xtensa)
+ #include <elf/xtensa.h>
++#elif defined(TARGET_riscv64)
++#include <elf/riscv.h>
+ #endif
+
+ #if defined(__MINGW32__)
+@@ -123,6 +125,8 @@ const char *elf2flt_progname;
+ #define ARCH "nios2"
+ #elif defined(TARGET_xtensa)
+ #define ARCH "xtensa"
++#elif defined(TARGET_riscv64)
++#define ARCH "riscv64"
+ #else
+ #error "Don't know how to support your CPU architecture??"
+ #endif
+@@ -812,6 +816,18 @@ output_relocs (
+ goto good_32bit_resolved_reloc;
+ default:
+ goto bad_resolved_reloc;
++#elif defined(TARGET_riscv64)
++ case R_RISCV_32_PCREL:
++ case R_RISCV_ADD32:
++ case R_RISCV_ADD64:
++ case R_RISCV_SUB32:
++ case R_RISCV_SUB64:
++ continue;
++ case R_RISCV_32:
++ case R_RISCV_64:
++ goto good_32bit_resolved_reloc;
++ default:
++ goto bad_resolved_reloc;
+ #else
+ default:
+ /* The default is to assume that the
+diff --git a/elf2flt.ld.in b/elf2flt.ld.in
+index e5aea14..950849e 100644
+--- a/elf2flt.ld.in
++++ b/elf2flt.ld.in
+@@ -106,6 +106,7 @@ W_RODAT: *(.gnu.linkonce.r*)
+ . = ALIGN(0x20) ;
+ LONG(-1)
+ . = ALIGN(0x20) ;
++RISCV_GP: __global_pointer$ = . + 0x800 ;
+ R_RODAT: *(.rodata)
+ R_RODAT: *(.rodata1)
+ R_RODAT: *(.rodata.*)
+diff --git a/ld-elf2flt.c b/ld-elf2flt.c
+index 7cb02d5..75ee1bb 100644
+--- a/ld-elf2flt.c
++++ b/ld-elf2flt.c
+@@ -324,6 +324,14 @@ static int do_final_link(void)
+ append_option(&other_options, concat(got_offset, "=", buf, NULL));
+ }
+
++ /* riscv adds a global pointer symbol to the linker file with the
++ "RISCV_GP:" prefix. Remove the prefix for riscv64 architecture and
++ the entire line for other architectures. */
++ if (streq(TARGET_CPU, "riscv64"))
++ append_sed(&sed, "^RISCV_GP:", "");
++ else
++ append_sed(&sed, "^RISCV_GP:", NULL);
++
+ /* Locate the default linker script, if we don't have one provided. */
+ if (!linker_script)
+ linker_script = concat(ldscriptpath, "/elf2flt.ld", NULL);
+--
+2.36.1
+
diff --git a/toolchain/elf2flt/patches/v2021.08/0004-elf2flt-create-a-common-helper-function.patch b/toolchain/elf2flt/patches/v2021.08/0004-elf2flt-create-a-common-helper-function.patch
new file mode 100644
index 000000000..6fee99d45
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2021.08/0004-elf2flt-create-a-common-helper-function.patch
@@ -0,0 +1,76 @@
+From 37e1e0ace8ccebf54ec2f5522bfc1f9db86946ad Mon Sep 17 00:00:00 2001
+From: Niklas Cassel <niklas.cassel@wdc.com>
+Date: Tue, 9 Aug 2022 12:13:50 +0200
+Subject: [PATCH] elf2flt: create a common helper function
+
+In order to make the code more maintainable,
+move duplicated code to a common helper function.
+
+No functional change intended.
+
+Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
+---
+ elf2flt.c | 19 +++++++++++--------
+ 1 file changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/elf2flt.c b/elf2flt.c
+index 669591e..9c32f9a 100644
+--- a/elf2flt.c
++++ b/elf2flt.c
+@@ -337,6 +337,13 @@ compare_relocs (const void *pa, const void *pb)
+ }
+ #endif
+
++static bool
++ro_reloc_data_section_should_be_in_text(asection *s)
++{
++ return (s->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
++ (SEC_DATA | SEC_READONLY | SEC_RELOC);
++}
++
+ static uint32_t *
+ output_relocs (
+ bfd *abs_bfd,
+@@ -428,8 +435,7 @@ output_relocs (
+ */
+ if ((!pic_with_got || ALWAYS_RELOC_TEXT) &&
+ ((a->flags & SEC_CODE) ||
+- ((a->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
+- (SEC_DATA | SEC_READONLY | SEC_RELOC))))
++ ro_reloc_data_section_should_be_in_text(a)))
+ sectionp = text + (a->vma - text_vma);
+ else if (a->flags & SEC_DATA)
+ sectionp = data + (a->vma - data_vma);
+@@ -1893,8 +1899,7 @@ int main(int argc, char *argv[])
+ bfd_vma sec_vma;
+
+ if ((s->flags & SEC_CODE) ||
+- ((s->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
+- (SEC_DATA | SEC_READONLY | SEC_RELOC))) {
++ ro_reloc_data_section_should_be_in_text(s)) {
+ vma = &text_vma;
+ len = &text_len;
+ } else if (s->flags & SEC_DATA) {
+@@ -1932,8 +1937,7 @@ int main(int argc, char *argv[])
+ * data sections.*/
+ for (s = abs_bfd->sections; s != NULL; s = s->next)
+ if ((s->flags & SEC_CODE) ||
+- ((s->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
+- (SEC_DATA | SEC_READONLY | SEC_RELOC)))
++ ro_reloc_data_section_should_be_in_text(s))
+ if (!bfd_get_section_contents(abs_bfd, s,
+ text + (s->vma - text_vma), 0,
+ bfd_section_size(abs_bfd, s)))
+@@ -1962,8 +1966,7 @@ int main(int argc, char *argv[])
+ * data sections already included in the text output section.*/
+ for (s = abs_bfd->sections; s != NULL; s = s->next)
+ if ((s->flags & SEC_DATA) &&
+- ((s->flags & (SEC_READONLY | SEC_RELOC)) !=
+- (SEC_READONLY | SEC_RELOC)))
++ !ro_reloc_data_section_should_be_in_text(s))
+ if (!bfd_get_section_contents(abs_bfd, s,
+ data + (s->vma - data_vma), 0,
+ bfd_section_size(abs_bfd, s)))
+--
+2.37.1
+
diff --git a/toolchain/elf2flt/patches/v2021.08/0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch b/toolchain/elf2flt/patches/v2021.08/0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch
new file mode 100644
index 000000000..616bbc891
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2021.08/0005-elf2flt-fix-fatal-error-regression-on-m68k-xtensa-ri.patch
@@ -0,0 +1,74 @@
+From a8c9f650b82109abf7aa730f298ea5182ed62613 Mon Sep 17 00:00:00 2001
+From: Niklas Cassel <niklas.cassel@wdc.com>
+Date: Tue, 9 Aug 2022 21:06:05 +0200
+Subject: [PATCH] elf2flt: fix fatal error regression on m68k, xtensa, riscv64
+
+Commit ba379d08bb78 ("elf2flt: fix for segfault on some ARM ELFs")
+changed the condition of which input sections that should be included
+in the .text output section from:
+((a->flags & (SEC_DATA | SEC_READONLY)) == (SEC_DATA | SEC_READONLY))
+to:
+((a->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
+(SEC_DATA | SEC_READONLY | SEC_RELOC))
+
+On ARM, the .eh_frame input section does not have the SEC_RELOC flag set,
+so on ARM, this change caused .eh_frame to move from .text to .data.
+
+However, on e.g. m68k, xtensa and riscv64, the .eh_frame input section
+does have the SEC_RELOC flag set, which means that the change in
+commit ba379d08bb78 ("elf2flt: fix for segfault on some ARM ELFs")
+caused .eh_frame to move in an opposite way, i.e. from .data to .text.
+
+This resulted in a fatal error on m68k, xtensa and riscv64:
+ERROR: text=0x3bab8 overlaps data=0x33f60 ?
+
+This is because elf2flt cannot append to .text after .data has been
+appended to.
+
+Note that the binutils maintainer says that the correct thing is
+to put read-only relocation data sections in .text:
+https://sourceware.org/legacy-ml/binutils/2019-10/msg00132.html
+
+So the proper fix is probably to rewrite elf2flt so that it can append
+to .text after .data has been appended to (which will require elf2flt
+to move/relocate everything that has already been appended to .data,
+since the virtual addresses are contiguous).
+
+However, for now, add an exception for input sections which have all
+three flags SEC_DATA, SEC_READONLY, and SEC_RELOC set, and which have a
+name equal to a problematic input section (.eh_frame, .gcc_except_table).
+That way, we get the same behavior as older elf2flt releases for m68k,
+xtensa and riscv64, where we put read-only relocation data in .data,
+which was working perfectly fine.
+
+This exception will not change any behavior on ARM, as the .eh_frame
+input section does not have flag SEC_RELOC set.
+
+Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
+---
+ elf2flt.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/elf2flt.c b/elf2flt.c
+index e0d7891..39d035f 100644
+--- a/elf2flt.c
++++ b/elf2flt.c
+@@ -341,8 +341,13 @@ compare_relocs (const void *pa, const void *pb)
+ static bool
+ ro_reloc_data_section_should_be_in_text(asection *s)
+ {
+- return (s->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
+- (SEC_DATA | SEC_READONLY | SEC_RELOC);
++ if ((s->flags & (SEC_DATA | SEC_READONLY | SEC_RELOC)) ==
++ (SEC_DATA | SEC_READONLY | SEC_RELOC)) {
++ if (!strcmp(".eh_frame", s->name) || !strcmp(".gcc_except_table", s->name))
++ return false;
++ return true;
++ }
++ return false;
+ }
+
+ static uint32_t *
+--
+2.39.0
+
diff --git a/toolchain/elf2flt/patches/v2021.08/0006-elf2flt-xtensa-fix-text-relocations.patch b/toolchain/elf2flt/patches/v2021.08/0006-elf2flt-xtensa-fix-text-relocations.patch
new file mode 100644
index 000000000..fc8784a1b
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2021.08/0006-elf2flt-xtensa-fix-text-relocations.patch
@@ -0,0 +1,25 @@
+diff -Nur elf2flt-v2021.08.orig/elf2flt.c elf2flt-v2021.08/elf2flt.c
+--- elf2flt-v2021.08.orig/elf2flt.c 2023-01-09 11:08:28.637676113 +0100
++++ elf2flt-v2021.08/elf2flt.c 2023-01-09 11:09:04.502804007 +0100
+@@ -835,7 +835,20 @@
+ continue;
+ case R_XTENSA_32:
+ case R_XTENSA_PLT:
+- goto good_32bit_resolved_reloc;
++ if (bfd_big_endian (abs_bfd))
++ sym_addr =
++ (r_mem[0] << 24)
++ + (r_mem[1] << 16)
++ + (r_mem[2] << 8)
++ + r_mem[3];
++ else
++ sym_addr =
++ r_mem[0]
++ + (r_mem[1] << 8)
++ + (r_mem[2] << 16)
++ + (r_mem[3] << 24);
++ relocation_needed = 1;
++ break;
+ default:
+ goto bad_resolved_reloc;
+ #elif defined(TARGET_riscv64)
diff --git a/toolchain/elf2flt/patches/v2021.08/0007-riscv32.patch b/toolchain/elf2flt/patches/v2021.08/0007-riscv32.patch
new file mode 100644
index 000000000..b3c4677be
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2021.08/0007-riscv32.patch
@@ -0,0 +1,56 @@
+diff -Nur elf2flt-v2021.08.orig/elf2flt.c elf2flt-v2021.08/elf2flt.c
+--- elf2flt-v2021.08.orig/elf2flt.c 2023-02-26 11:31:48.758810872 +0100
++++ elf2flt-v2021.08/elf2flt.c 2023-02-26 11:32:05.714465277 +0100
+@@ -81,7 +81,7 @@
+ #include <elf/v850.h>
+ #elif defined(TARGET_xtensa)
+ #include <elf/xtensa.h>
+-#elif defined(TARGET_riscv64)
++#elif defined(TARGET_riscv64) || defined(TARGET_riscv32)
+ #include <elf/riscv.h>
+ #endif
+
+@@ -127,6 +127,8 @@
+ #define ARCH "xtensa"
+ #elif defined(TARGET_riscv64)
+ #define ARCH "riscv64"
++#elif defined(TARGET_riscv32)
++#define ARCH "riscv32"
+ #else
+ #error "Don't know how to support your CPU architecture??"
+ #endif
+@@ -849,12 +851,21 @@
+ break;
+ default:
+ goto bad_resolved_reloc;
+-#elif defined(TARGET_riscv64)
++#elif defined(TARGET_riscv64) || defined(TARGET_riscv32)
+ case R_RISCV_32_PCREL:
++ case R_RISCV_ADD8:
++ case R_RISCV_ADD16:
+ case R_RISCV_ADD32:
+ case R_RISCV_ADD64:
++ case R_RISCV_SUB6:
++ case R_RISCV_SUB8:
++ case R_RISCV_SUB16:
+ case R_RISCV_SUB32:
+ case R_RISCV_SUB64:
++ case R_RISCV_SET6:
++ case R_RISCV_SET8:
++ case R_RISCV_SET16:
++ case R_RISCV_SET32:
+ continue;
+ case R_RISCV_32:
+ case R_RISCV_64:
+diff -Nur elf2flt-v2021.08.orig/ld-elf2flt.c elf2flt-v2021.08/ld-elf2flt.c
+--- elf2flt-v2021.08.orig/ld-elf2flt.c 2023-02-26 11:31:21.047376888 +0100
++++ elf2flt-v2021.08/ld-elf2flt.c 2023-02-26 11:32:05.714465277 +0100
+@@ -327,7 +327,7 @@
+ /* riscv adds a global pointer symbol to the linker file with the
+ "RISCV_GP:" prefix. Remove the prefix for riscv64 architecture and
+ the entire line for other architectures. */
+- if (streq(TARGET_CPU, "riscv64"))
++ if (streq(TARGET_CPU, "riscv64") || streq(TARGET_CPU, "riscv32"))
+ append_sed(&sed, "^RISCV_GP:", "");
+ else
+ append_sed(&sed, "^RISCV_GP:", NULL);
diff --git a/toolchain/elf2flt/patches/v2021.08/0008-remove_BFD_VMA_FMT.patch b/toolchain/elf2flt/patches/v2021.08/0008-remove_BFD_VMA_FMT.patch
new file mode 100644
index 000000000..6367f1383
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2021.08/0008-remove_BFD_VMA_FMT.patch
@@ -0,0 +1,97 @@
+diff -Nur elf2flt-v2021.08.orig/elf2flt.c elf2flt-v2021.08/elf2flt.c
+--- elf2flt-v2021.08.orig/elf2flt.c 2023-01-29 16:47:24.791851890 +0100
++++ elf2flt-v2021.08/elf2flt.c 2023-01-29 16:49:46.628476326 +0100
+@@ -222,7 +222,7 @@
+ long i;
+ printf("SYMBOL TABLE:\n");
+ for (i=0; i<number_of_symbols; i++) {
+- printf(" NAME=%s VALUE=0x%"BFD_VMA_FMT"x\n",
++ printf(" NAME=%s VALUE=0x%x\n",
+ symbol_table[i]->name, symbol_table[i]->value);
+ }
+ printf("\n");
+@@ -471,7 +471,7 @@
+ if (r == NULL)
+ continue;
+ if (verbose)
+- printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%"BFD_VMA_FMT"x\n",
++ printf(" RELOCS: %s [%p]: flags=0x%x vma=0x%x\n",
+ r->name, r, r->flags, elf2flt_bfd_section_vma(r));
+ if ((r->flags & SEC_RELOC) == 0)
+ continue;
+@@ -966,8 +966,8 @@
+ if (verbose)
+ fprintf(stderr,
+ "%s vma=0x%x, "
+- "value=0x%"BFD_VMA_FMT"x, "
+- "address=0x%"BFD_VMA_FMT"x "
++ "value=0x%x, "
++ "address=0x%x "
+ "sym_addr=0x%x rs=0x%x, opcode=0x%x\n",
+ "ABS32",
+ sym_vma, (*(q->sym_ptr_ptr))->value,
+@@ -985,8 +985,8 @@
+ if (verbose)
+ fprintf(stderr,
+ "%s vma=0x%x, "
+- "value=0x%"BFD_VMA_FMT"x, "
+- "address=0x%"BFD_VMA_FMT"x "
++ "value=0x%x, "
++ "address=0x%x "
+ "sym_addr=0x%x rs=0x%x, opcode=0x%x\n",
+ "PLT32",
+ sym_vma, (*(q->sym_ptr_ptr))->value,
+@@ -1008,7 +1008,7 @@
+ case R_V850_ZDA_16_16_OFFSET:
+ case R_V850_ZDA_16_16_SPLIT_OFFSET:
+ /* Can't support zero-relocations. */
+- printf ("ERROR: %s+0x%"BFD_VMA_FMT"x: zero relocations not supported\n",
++ printf ("ERROR: %s+0x%x: zero relocations not supported\n",
+ sym_name, q->addend);
+ continue;
+ #endif /* TARGET_v850 */
+@@ -1208,9 +1208,9 @@
+ temp |= (exist_val & 0x3f);
+ *(unsigned long *)r_mem = htoniosl(temp);
+ if (verbose)
+- printf("omit: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
++ printf("omit: offset=0x%x symbol=%s%s "
+ "section=%s size=%d "
+- "fixup=0x%x (reloc=0x%"BFD_VMA_FMT"x) GPREL\n",
++ "fixup=0x%x (reloc=0x%x) GPREL\n",
+ q->address, sym_name, addstr,
+ section_name, sym_reloc_size,
+ sym_addr, section_vma + q->address);
+@@ -1228,9 +1228,9 @@
+ exist_val |= ((sym_addr & 0xFFFF) << 6);
+ *(unsigned long *)r_mem = htoniosl(exist_val);
+ if (verbose)
+- printf("omit: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
++ printf("omit: offset=0x%x symbol=%s%s "
+ "section=%s size=%d "
+- "fixup=0x%x (reloc=0x%"BFD_VMA_FMT"x) PCREL\n",
++ "fixup=0x%x (reloc=0x%x) PCREL\n",
+ q->address, sym_name, addstr,
+ section_name, sym_reloc_size,
+ sym_addr, section_vma + q->address);
+@@ -1245,7 +1245,7 @@
+ && (p[-1]->sym_ptr_ptr == p[0]->sym_ptr_ptr)
+ && (p[-1]->addend == p[0]->addend)) {
+ if (verbose)
+- printf("omit: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
++ printf("omit: offset=0x%x symbol=%s%s "
+ "section=%s size=%d LO16\n",
+ q->address, sym_name, addstr,
+ section_name, sym_reloc_size);
+@@ -1660,9 +1660,9 @@
+ */
+ if (relocation_needed) {
+ if (verbose)
+- printf(" RELOC[%d]: offset=0x%"BFD_VMA_FMT"x symbol=%s%s "
++ printf(" RELOC[%d]: offset=0x%x symbol=%s%s "
+ "section=%s size=%d "
+- "fixup=0x%x (reloc=0x%"BFD_VMA_FMT"x)\n",
++ "fixup=0x%x (reloc=0x%x)\n",
+ flat_reloc_count,
+ q->address, sym_name, addstr,
+ section_name, sym_reloc_size,
diff --git a/toolchain/elf2flt/patches/v2021.08/0009-riscv.patch b/toolchain/elf2flt/patches/v2021.08/0009-riscv.patch
new file mode 100644
index 000000000..c1072cb45
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2021.08/0009-riscv.patch
@@ -0,0 +1,11 @@
+diff -Nur elf2flt-v2021.08.orig/elf2flt.c elf2flt-v2021.08/elf2flt.c
+--- elf2flt-v2021.08.orig/elf2flt.c 2023-02-26 11:32:05.714465277 +0100
++++ elf2flt-v2021.08/elf2flt.c 2023-02-26 15:04:52.726514896 +0100
+@@ -852,6 +852,7 @@
+ default:
+ goto bad_resolved_reloc;
+ #elif defined(TARGET_riscv64) || defined(TARGET_riscv32)
++ case R_RISCV_NONE:
+ case R_RISCV_32_PCREL:
+ case R_RISCV_ADD8:
+ case R_RISCV_ADD16:
diff --git a/toolchain/elf2flt/patches/v2024.02/0001-sh2.patch b/toolchain/elf2flt/patches/v2024.02/0001-sh2.patch
new file mode 100644
index 000000000..b14a78e23
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2024.02/0001-sh2.patch
@@ -0,0 +1,43 @@
+diff -Nur elf2flt-v2023.09.orig/elf2flt.c elf2flt-v2023.09/elf2flt.c
+--- elf2flt-v2023.09.orig/elf2flt.c 2023-12-22 10:44:11.000000000 +0100
++++ elf2flt-v2023.09/elf2flt.c 2023-12-23 02:26:06.323239781 +0100
+@@ -73,7 +73,7 @@
+ #define FLAT_NIOS2_R_HIADJ_LO 2
+ #define FLAT_NIOS2_R_CALL26 4
+ #include <elf/nios2.h>
+-#elif defined(TARGET_sh)
++#elif defined(TARGET_sh2) || defined(TARGET_sh2eb)
+ #include <elf/sh.h>
+ #elif defined(TARGET_sparc)
+ #include <elf/sparc.h>
+@@ -109,8 +109,10 @@
+ #define ARCH "sparc"
+ #elif defined(TARGET_v850)
+ #define ARCH "v850"
+-#elif defined(TARGET_sh)
+-#define ARCH "sh"
++#elif defined(TARGET_sh2)
++#define ARCH "sh2"
++#elif defined(TARGET_sh2eb)
++#define ARCH "sh2"
+ #elif defined(TARGET_h8300)
+ #define ARCH "h8300"
+ #elif defined(TARGET_microblaze)
+@@ -1289,7 +1291,7 @@
+ #endif /* TARGET_sparc */
+
+
+-#ifdef TARGET_sh
++#if defined(TARGET_sh2) || defined(TARGET_sh2eb)
+ case R_SH_DIR32:
+ relocation_needed = 1;
+ sym_vma = elf2flt_bfd_section_vma(sym_section);
+@@ -1300,7 +1302,7 @@
+ sym_addr += sym_vma + q->addend;
+ sym_addr -= q->address;
+ break;
+-#endif /* TARGET_sh */
++#endif /* TARGET_sh2 / TARGET_sh2eb */
+
+ #ifdef TARGET_e1
+ #define htoe1l(x) htonl(x)
diff --git a/toolchain/elf2flt/patches/v2024.02/0002-h8300.patch b/toolchain/elf2flt/patches/v2024.02/0002-h8300.patch
new file mode 100644
index 000000000..2c7b73482
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2024.02/0002-h8300.patch
@@ -0,0 +1,20 @@
+diff -Nur elf2flt-v2023.09.orig/flthdr.c elf2flt-v2023.09/flthdr.c
+--- elf2flt-v2023.09.orig/flthdr.c 2023-12-23 03:20:20.000000000 +0100
++++ elf2flt-v2023.09/flthdr.c 2023-12-23 17:11:22.699413170 +0100
+@@ -164,8 +164,16 @@
+ r = ntohl(relocs[i]);
+ raddr = flat_get_relocate_addr(r);
+ printf(" %u\t0x%08lx (0x%08"PRIx32")\t", i, r, raddr);
++#if defined(TARGET_h8300)
++ raddr &= ~0x00000001;
++#endif
+ fseek_stream(&ifp, sizeof(old_hdr) + raddr, SEEK_SET);
+ fread_stream(&addr, sizeof(addr), 1, &ifp);
++#if defined(TARGET_h8300)
++ addr = ntohl(addr);
++ if (r & 1)
++ addr &= 0x00ffffff;
++#endif
+ printf("%"PRIx32"\n", addr);
+ }
+
diff --git a/toolchain/elf2flt/patches/v2024.02/0003-riscv64-alignment.patch b/toolchain/elf2flt/patches/v2024.02/0003-riscv64-alignment.patch
new file mode 100644
index 000000000..9feef7951
--- /dev/null
+++ b/toolchain/elf2flt/patches/v2024.02/0003-riscv64-alignment.patch
@@ -0,0 +1,12 @@
+diff -Nur elf2flt-v2024.02.orig/elf2flt.ld.in elf2flt-v2024.02/elf2flt.ld.in
+--- elf2flt-v2024.02.orig/elf2flt.ld.in 2024-03-22 04:51:08.000000000 +0100
++++ elf2flt-v2024.02/elf2flt.ld.in 2024-03-22 13:08:31.793773247 +0100
+@@ -139,7 +139,7 @@
+ @SYMBOL_PREFIX@_ssro_size = @SYMBOL_PREFIX@_essro - @SYMBOL_PREFIX@_ssro;
+ PROVIDE(@SYMBOL_PREFIX@_SDA2_BASE_ = @SYMBOL_PREFIX@_ssro + (@SYMBOL_PREFIX@_ssro_size / 2));
+
+- . = ALIGN(4) ;
++ . = ALIGN(8) ;
+ TOR: @SYMBOL_PREFIX@__CTOR_LIST__ = .;
+ TOR: LONG((@SYMBOL_PREFIX@__CTOR_END__ - @SYMBOL_PREFIX@__CTOR_LIST__) / 4 - 2)
+ SINGLE_LINK: /* gcc uses crtbegin.o to find the start of
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 77600d6d2..175af8aae 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -21,6 +21,21 @@ TARGET_CFLAGS:= $(filter-out -msep-data,$(TARGET_CFLAGS))
TARGET_CXXFLAGS:= $(filter-out -msep-data,$(TARGET_CXXFLAGS))
endif
+# for ARM, we need to filter out some flags
+ifeq ($(ADK_TARGET_ARCH_ARM),y)
+TARGET_CFLAGS:= $(filter-out -mcpu=cortex-a9,$(TARGET_CFLAGS))
+TARGET_CXXFLAGS:= $(filter-out -mcpu=cortex-a9,$(TARGET_CXXFLAGS))
+endif
+ifeq ($(ADK_TARGET_ARCH_ARM),y)
+TARGET_CFLAGS:= $(filter-out -mcpu=cortex-a7,$(TARGET_CFLAGS))
+TARGET_CXXFLAGS:= $(filter-out -mcpu=cortex-a7,$(TARGET_CXXFLAGS))
+endif
+
+ifeq ($(ADK_TARGET_ARCH_ARM),y)
+TARGET_CFLAGS:= $(filter-out -mcpu=xscale,$(TARGET_CFLAGS))
+TARGET_CXXFLAGS:= $(filter-out -mcpu=xscale,$(TARGET_CXXFLAGS))
+endif
+
ifeq ($(ADK_TARGET_USE_STATIC_AND_SHARED_LIBS),y)
TARGET_CFLAGS:= $(filter-out -static,$(TARGET_CFLAGS))
TARGET_CXXFLAGS:= $(filter-out -static,$(TARGET_CXXFLAGS))
@@ -33,7 +48,7 @@ GCC_CONFOPTS:= --prefix=$(TOOLCHAIN_DIR)/usr \
--target=$(GNU_TARGET_NAME) \
--with-gmp=$(STAGING_HOST_DIR)/usr \
--with-mpfr=$(STAGING_HOST_DIR)/usr \
- --disable-__cxa_atexit \
+ --enable-__cxa_atexit \
--with-system-zlib \
--with-gnu-ld \
--with-gnu-as \
@@ -48,6 +63,7 @@ GCC_CONFOPTS:= --prefix=$(TOOLCHAIN_DIR)/usr \
--disable-libquadmath \
--disable-libquadmath-support \
--disable-decimal-float \
+ --disable-gcov \
--disable-libstdcxx-pch \
--disable-ppl-version-check \
--disable-cloog-version-check \
@@ -55,9 +71,10 @@ GCC_CONFOPTS:= --prefix=$(TOOLCHAIN_DIR)/usr \
--without-cloog \
--without-isl \
--disable-werror \
- --disable-nls
+ --disable-nls \
+ --enable-obsolete
-ifeq ($(ADK_TARGET_OS_LINUX)$(ADK_TARGET_OS_WALDUX),y)
+ifeq ($(ADK_TARGET_OS_LINUX),y)
ifeq ($(ADK_TARGET_LIB_UCLIBC_NG),y)
ifeq ($(ADK_TARGET_WITH_NPTL),y)
GCC_FINAL_CONFOPTS:= --enable-tls --enable-threads --enable-libatomic
@@ -81,15 +98,11 @@ ifeq ($(ADK_TARGET_OS_BAREMETAL),y)
GCC_FINAL_CONFOPTS:= --disable-libatomic
endif
-ifeq ($(ADK_TARGET_OS_RTEMS),y)
-GCC_FINAL_CONFOPTS:= --enable-libatomic
-endif
-
ifeq ($(ADK_TARGET_LIB_NEWLIB),y)
GCC_FINAL_CONFOPTS+= --with-newlib
endif
-ifeq ($(ADK_TARGET_OS_FROSTED)$(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
+ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
GCC_FINAL_CONFOPTS+= --disable-shared
else
GCC_FINAL_CONFOPTS+= --enable-shared --enable-cxx-flags='-fPIC'
@@ -140,10 +153,11 @@ GCC_CONFOPTS+= --disable-symvers
endif
ifeq ($(ADK_TARGET_ARCH_CSKY),y)
-ifeq ($(ADK_TARGET_CPU_CSKY_CK610),y)
-GCC_CONFOPTS+= --with-cskyabi=abiv1
+GCC_CONFOPTS+= --with-cskyabi=abiv2 --disable-multilib
+ifeq ($(ADK_TARGET_LITTLE_ENDIAN),y)
+GCC_CONFOPTS+= --with-endian=little
else
-GCC_CONFOPTS+= --with-cskyabi=abiv2
+GCC_CONFOPTS+= --with-endian=big
endif
endif
@@ -151,10 +165,6 @@ ifeq ($(ADK_TARGET_ARCH_METAG),y)
GCC_CONFOPTS+= --with-cpu=2.1 --enable-meta-default --disable-symvers
endif
-ifeq ($(ADK_TARGET_CPU_CF),y)
-GCC_CONFOPTS+= --with-arch=cf --disable-multilib
-endif
-
ifeq ($(ADK_TARGET_ARCH_NDS32),y)
GCC_CONFOPTS+= --with-arch=v3
endif
@@ -163,6 +173,16 @@ ifeq ($(ADK_TARGET_ARCH_M68K)$(ADK_TARGET_ARCH_X86_64)$(ADK_TARGET_ARCH_X86),)
GCC_FINAL_CONFOPTS+= --disable-biarch --disable-multilib
endif
+ifeq ($(ADK_TARGET_CPU_CF),y)
+GCC_CONFOPTS+= --with-arch=cf
+GCC_INITIAL_CONFOPTS+= --enable-multilib
+ifeq ($(ADK_TARGET_BINFMT_ELF)$(ADK_TARGET_WITH_MMU),y)
+GCC_FINAL_CONFOPTS+= --disable-multilib --disable-threads --disable-libatomic
+endif
+else
+GCC_INITIAL_CONFOPTS+= --disable-multilib
+endif
+
ifeq ($(ADK_TARGET_ARCH_SH),y)
ifeq ($(ADK_TARGET_LITTLE_ENDIAN),y)
@@ -279,9 +299,6 @@ endif
(cd $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME); \
ln -s ../$(STAGING_HOST2TARGET)/usr/lib lib)
ifeq ($(ADK_TARGET_ARCH_SH),y)
-ifeq ($(ADK_TARGET_CPU_SH_J2),y)
- (cd ${STAGING_TARGET_DIR}/ && ln -sf . mj2)
-endif
ifeq ($(ADK_TARGET_CPU_SH_SH2),y)
(cd ${STAGING_TARGET_DIR}/ && ln -sf . m2)
endif
@@ -298,6 +315,12 @@ ifeq ($(ADK_TARGET_CPU_SH_SH4A),y)
(cd ${STAGING_TARGET_DIR}/ && ln -sf . m4a)
endif
endif
+ifeq ($(ADK_TARGET_ARCH_M68K),y)
+ # Need to get gcc to generate _all_ the multilib variants
+ # (so both MMU and non-mmu M68k and ColdFire).
+ $(SED) 's/M68K_MLIB_CPU +=/#M68K_MLIB_CPU +=/' $(WRKBUILD)/gcc/config/m68k/t-m68k
+ $(SED) 's/&& (FLAGS ~ "FL_MMU")//' $(WRKBUILD)/gcc/config/m68k/t-linux
+endif
$(SED) '/k prot/agcc_cv_libc_provides_ssp=yes' $(WRKBUILD)/gcc/configure
cd $(GCC_BUILD_DIR_INITIAL); \
PATH='$(TARGET_PATH)' \
@@ -306,13 +329,13 @@ endif
CFLAGS="-O0 -g0 -fomit-frame-pointer" \
CXXFLAGS="-O0 -g0 -fomit-frame-pointer" \
$(WRKBUILD)/configure \
+ ${GCC_INITIAL_CONFOPTS} \
${GCC_CONFOPTS} \
${GCC_TLS_CONFOPTS} \
--enable-languages=c \
--with-newlib \
--disable-shared \
--disable-threads \
- --disable-multilib \
--without-headers
touch $@
diff --git a/toolchain/gcc/Makefile.inc b/toolchain/gcc/Makefile.inc
index 246b6960e..b6c24865a 100644
--- a/toolchain/gcc/Makefile.inc
+++ b/toolchain/gcc/Makefile.inc
@@ -2,28 +2,69 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= gcc
+ifeq ($(ADK_TOOLCHAIN_GCC_13),y)
+PKG_VERSION:= 13.2.0
+PKG_HASH:= 8cb4be3796651976f94b9356fa08d833524f62420d6292c5033a9a26af315078
+PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/}
+PKG_RELEASE:= 1
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+LIBSTDCXXVER:= 29
+endif
+ifeq ($(ADK_TOOLCHAIN_GCC_12),y)
+PKG_VERSION:= 12.3.0
+PKG_HASH:= 11275aa7bb34cd8ab101d01b341015499f8d9466342a2574ece93f954d92273b
+PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/}
+PKG_RELEASE:= 1
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+LIBSTDCXXVER:= 28
+endif
+ifeq ($(ADK_TOOLCHAIN_GCC_11),y)
+PKG_VERSION:= 11.4.0
+PKG_HASH:= af828619dd1970734dda3cfb792ea3f2cba61b5a00170ba8bce4910749d73c07
+PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/}
+PKG_RELEASE:= 1
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+LIBSTDCXXVER:= 27
+endif
+ifeq ($(ADK_TOOLCHAIN_GCC_10),y)
+PKG_VERSION:= 10.5.0
+PKG_HASH:= eed4dd5fc3cd9f52cb3a51a4fde1728cb19ec76292f559518e83652e7437befe
+PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/}
+PKG_RELEASE:= 1
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+LIBSTDCXXVER:= 26
+endif
+ifeq ($(ADK_TOOLCHAIN_GCC_9),y)
+PKG_VERSION:= 9.5.0
+PKG_HASH:= 15b34072105272a3eb37f6927409f7ce9aa0dd1498efebc35f851d6e6f029a4d
+PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/}
+PKG_RELEASE:= 1
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+LIBSTDCXXVER:= 25
+endif
ifeq ($(ADK_TOOLCHAIN_GCC_8),y)
-PKG_VERSION:= 8.3.0
-PKG_HASH:= 64baadfe6cc0f4947a84cb12d7f0dfaf45bb58b7e92461639596c21e02d97d2c
+PKG_VERSION:= 8.5.0
+PKG_HASH:= 6e6e0628573d2185727a2dd83211d04a2b2748e4a262099099b9c8064634c9ee
PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/}
PKG_RELEASE:= 1
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
LIBSTDCXXVER:= 24
endif
ifeq ($(ADK_TOOLCHAIN_GCC_7),y)
-PKG_VERSION:= 7.4.0
-PKG_HASH:= eddde28d04f334aec1604456e536416549e9b1aa137fc69204e65eb0c009fe51
+PKG_VERSION:= 7.5.0
+PKG_HASH:= 4f518f18cfb694ad7975064e99e200fe98af13603b47e67e801ba9580e50a07f
PKG_SITES:= ${MASTER_SITE_GNU:=gcc/gcc-${PKG_VERSION}/}
PKG_RELEASE:= 1
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
LIBSTDCXXVER:= 23
endif
ifeq ($(ADK_TOOLCHAIN_GCC_ARC),y)
-PKG_VERSION:= arc-2018.03-release
+PKG_VERSION:= arc-2023.09
PKG_GIT:= tag
PKG_SITES:= https://github.com/foss-for-synopsys-dwc-arc-processors/gcc.git
PKG_RELEASE:= 1
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+LIBSTDCXXVER:= 29
endif
ifeq ($(ADK_TOOLCHAIN_GCC_AVR32),y)
PKG_VERSION:= 4.4.7
@@ -33,12 +74,13 @@ PKG_RELEASE:= 1
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
LIBSTDCXXVER:= 19
endif
-ifeq ($(ADK_TOOLCHAIN_GCC_CSKY),y)
-PKG_VERSION:= gcc-6-branch-csky
-PKG_GIT:= branch
-PKG_SITES:= https://github.com/c-sky/gcc.git
+ifeq ($(ADK_TOOLCHAIN_GCC_LM32),y)
+PKG_VERSION:= 4.5.4
+PKG_HASH:= 33fb968907ef7b6c528f6395ba049eb34c4df859bf5aa6c2bc3856268801e078
+PKG_SITES:= https://ftp.gnu.org/gnu/gcc/gcc-$(PKG_VERSION)/
PKG_RELEASE:= 1
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+LIBSTDCXXVER:= 19
endif
ifeq ($(ADK_TOOLCHAIN_GCC_METAG),y)
PKG_VERSION:= 4.2.4
@@ -48,20 +90,12 @@ PKG_RELEASE:= 1
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
LIBSTDCXXVER:= 19
endif
-ifeq ($(ADK_TOOLCHAIN_GCC_NDS32),y)
-PKG_VERSION:= nds32-6.3.0-open
-PKG_HASH:= b23ce96df25dfdd5526496a3c2cd7ee1da4ed4094971a2e0c47c73ad7e1ad30a
-PKG_SITES:= https://github.com/andestech/gcc.git
+ifeq ($(ADK_TOOLCHAIN_GCC_KVX),y)
+PKG_VERSION:= f98c17b1e78dd3a3da45c0ac1af7b105edf2bf66
+PKG_GIT:= hash
+PKG_SITES:= https://github.com/kalray/gcc.git
PKG_RELEASE:= 1
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
-endif
-ifeq ($(ADK_TOOLCHAIN_GCC_OR1K),y)
-PKG_VERSION:= musl-5.4.0
-PKG_GIT:= branch
-PKG_SITES:= https://github.com/openrisc/or1k-gcc.git
-PKG_RELEASE:= 1
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
-LIBSTDCXXVER:= 21
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
ifeq ($(ADK_TOOLCHAIN_GCC_GIT),y)
PKG_VERSION:= git
diff --git a/toolchain/gcc/patches/10.5.0/add-crtreloc.frv b/toolchain/gcc/patches/10.5.0/add-crtreloc.frv
new file mode 100644
index 000000000..30de24cdc
--- /dev/null
+++ b/toolchain/gcc/patches/10.5.0/add-crtreloc.frv
@@ -0,0 +1,12 @@
+diff -Nur gcc-8.3.0.orig/gcc/config/frv/linux.h gcc-8.3.0/gcc/config/frv/linux.h
+--- gcc-8.3.0.orig/gcc/config/frv/linux.h 2018-01-03 11:03:58.000000000 +0100
++++ gcc-8.3.0/gcc/config/frv/linux.h 2019-10-08 10:52:00.176295821 +0200
+@@ -27,7 +27,7 @@
+
+ #undef STARTFILE_SPEC
+ #define STARTFILE_SPEC \
+- "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
++ "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} crtreloc.o%s \
+ crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
+
+ #undef ENDFILE_SPEC
diff --git a/toolchain/gcc/patches/10.5.0/c6x-disable-multilib.patch b/toolchain/gcc/patches/10.5.0/c6x-disable-multilib.patch
new file mode 100644
index 000000000..cbee6f785
--- /dev/null
+++ b/toolchain/gcc/patches/10.5.0/c6x-disable-multilib.patch
@@ -0,0 +1,10 @@
+diff -Nur gcc-8.3.0.orig/gcc/config/c6x/t-c6x-uclinux gcc-8.3.0/gcc/config/c6x/t-c6x-uclinux
+--- gcc-8.3.0.orig/gcc/config/c6x/t-c6x-uclinux 2011-11-02 16:23:48.000000000 +0100
++++ gcc-8.3.0/gcc/config/c6x/t-c6x-uclinux 2019-10-08 07:49:50.255159650 +0200
+@@ -1,3 +1,3 @@
+-MULTILIB_OSDIRNAMES = march.c674x=!c674x
+-MULTILIB_OSDIRNAMES += mbig-endian=!be
+-MULTILIB_OSDIRNAMES += mbig-endian/march.c674x=!be/c674x
++MULTILIB_OSDIRNAMES =
++#MULTILIB_OSDIRNAMES += mbig-endian=!be
++#MULTILIB_OSDIRNAMES += mbig-endian/march.c674x=!be/c674x
diff --git a/toolchain/gcc/patches/7.3.0/ia64-fix-libgcc.patch b/toolchain/gcc/patches/10.5.0/ia64-fix-libgcc.patch
index f1f3c8d2d..f1f3c8d2d 100644
--- a/toolchain/gcc/patches/7.3.0/ia64-fix-libgcc.patch
+++ b/toolchain/gcc/patches/10.5.0/ia64-fix-libgcc.patch
diff --git a/toolchain/gcc/patches/10.5.0/j2.patch b/toolchain/gcc/patches/10.5.0/j2.patch
new file mode 100644
index 000000000..416475546
--- /dev/null
+++ b/toolchain/gcc/patches/10.5.0/j2.patch
@@ -0,0 +1,346 @@
+diff --git a/gcc/config.gcc b/gcc/config.gcc
+index 6fcdd771d4c..839a60d866e 100644
+--- a/gcc/config.gcc
++++ b/gcc/config.gcc
+@@ -547,7 +547,7 @@ s390*-*-*)
+ extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
+ ;;
+ # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
+-sh[123456789lbe]*-*-* | sh-*-*)
++sh[123456789lbej]*-*-* | sh-*-*)
+ cpu_type=sh
+ extra_options="${extra_options} fused-madd.opt"
+ extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
+@@ -3149,18 +3149,18 @@ s390x-ibm-tpf*)
+ extra_options="${extra_options} s390/tpf.opt"
+ tmake_file="${tmake_file} s390/t-s390"
+ ;;
+-sh-*-elf* | sh[12346l]*-*-elf* | \
+- sh-*-linux* | sh[2346lbe]*-*-linux* | \
++sh-*-elf* | sh[12346lj]*-*-elf* | \
++ sh-*-linux* | sh[2346lbej]*-*-linux* | \
+ sh-*-netbsdelf* | shl*-*-netbsdelf*)
+ tmake_file="${tmake_file} sh/t-sh sh/t-elf"
+ if test x${with_endian} = x; then
+ case ${target} in
+- sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
++ sh[j1234]*be-*-* | sh[j1234]*eb-*-*) with_endian=big ;;
+ shbe-*-* | sheb-*-*) with_endian=big,little ;;
+ sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
+ shl* | sh*-*-linux* | \
+ sh-superh-elf) with_endian=little,big ;;
+- sh[1234]*-*-*) with_endian=big ;;
++ sh[j1234]*-*-*) with_endian=big ;;
+ *) with_endian=big,little ;;
+ esac
+ fi
+@@ -3227,6 +3227,7 @@ sh-*-elf* | sh[12346l]*-*-elf* | \
+ sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
+ sh2a*) sh_cpu_target=sh2a ;;
+ sh2e*) sh_cpu_target=sh2e ;;
++ shj2*) sh_cpu_target=shj2;;
+ sh2*) sh_cpu_target=sh2 ;;
+ *) sh_cpu_target=sh1 ;;
+ esac
+@@ -3248,7 +3249,7 @@ sh-*-elf* | sh[12346l]*-*-elf* | \
+ sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
+ sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
+ sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
+- sh3e | sh3 | sh2e | sh2 | sh1) ;;
++ sh3e | sh3 | sh2e | sh2 | sh1 | shj2) ;;
+ "") sh_cpu_default=${sh_cpu_target} ;;
+ *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
+ esac
+@@ -3257,9 +3258,9 @@ sh-*-elf* | sh[12346l]*-*-elf* | \
+ case ${target} in
+ sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
+ sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
+- sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
++ sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4,mj2 ;;
+ sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
+- *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
++ *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single,mj2 ;;
+ esac
+ if test x$with_fp = xno; then
+ sh_multilibs="`echo $sh_multilibs|sed -e s/m4/sh4-nofpu/ -e s/,m4-[^,]*//g -e s/,m[23]e// -e s/m2a,m2a-single/m2a-nofpu/ -e s/m5-..m....,//g`"
+@@ -3274,7 +3275,8 @@ sh-*-elf* | sh[12346l]*-*-elf* | \
+ m1 | m2 | m2e | m3 | m3e | \
+ m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
+ m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
+- m2a | m2a-single | m2a-single-only | m2a-nofpu)
++ m2a | m2a-single | m2a-single-only | m2a-nofpu | \
++ mj2)
+ # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
+ # It is passed to MULTIILIB_OPTIONS verbatim.
+ TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
+@@ -3291,7 +3293,7 @@ sh-*-elf* | sh[12346l]*-*-elf* | \
+ done
+ TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
+ if test x${enable_incomplete_targets} = xyes ; then
+- tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
++ tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1 SUPPORT_SHJ2=1"
+ fi
+ tm_file="$tm_file ./sysroot-suffix.h"
+ tmake_file="$tmake_file t-sysroot-suffix"
+@@ -5105,6 +5107,8 @@ case "${target}" in
+ ;;
+ m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
+ ;;
++ mj2)
++ ;;
+ *)
+ echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
+ echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
+@@ -5315,7 +5319,7 @@ case ${target} in
+ tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
+ ;;
+
+- sh[123456ble]*-*-* | sh-*-*)
++ sh[123456blej]*-*-* | sh-*-*)
+ c_target_objs="${c_target_objs} sh-c.o"
+ cxx_target_objs="${cxx_target_objs} sh-c.o"
+ ;;
+diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
+index 84c0ea025b4..f15552af011 100644
+--- a/gcc/config/sh/sh.c
++++ b/gcc/config/sh/sh.c
+@@ -686,6 +686,7 @@ parse_validate_atomic_model_option (const char* str)
+ model_names[sh_atomic_model::hard_llcs] = "hard-llcs";
+ model_names[sh_atomic_model::soft_tcb] = "soft-tcb";
+ model_names[sh_atomic_model::soft_imask] = "soft-imask";
++ model_names[sh_atomic_model::hard_cas] = "hard-cas";
+
+ const char* model_cdef_names[sh_atomic_model::num_models];
+ model_cdef_names[sh_atomic_model::none] = "NONE";
+@@ -693,6 +694,7 @@ parse_validate_atomic_model_option (const char* str)
+ model_cdef_names[sh_atomic_model::hard_llcs] = "HARD_LLCS";
+ model_cdef_names[sh_atomic_model::soft_tcb] = "SOFT_TCB";
+ model_cdef_names[sh_atomic_model::soft_imask] = "SOFT_IMASK";
++ model_cdef_names[sh_atomic_model::hard_cas] = "HARD_CAS";
+
+ sh_atomic_model ret;
+ ret.type = sh_atomic_model::none;
+@@ -771,6 +773,9 @@ got_mode_name:;
+ if (ret.type == sh_atomic_model::soft_imask && TARGET_USERMODE)
+ err_ret ("cannot use atomic model %s in user mode", ret.name);
+
++ if (ret.type == sh_atomic_model::hard_cas && !TARGET_SHJ2)
++ err_ret ("atomic model %s is only available J2 targets", ret.name);
++
+ return ret;
+
+ #undef err_ret
+@@ -827,6 +832,8 @@ sh_option_override (void)
+ sh_cpu = PROCESSOR_SH2E;
+ if (TARGET_SH2A)
+ sh_cpu = PROCESSOR_SH2A;
++ if (TARGET_SHJ2)
++ sh_cpu = PROCESSOR_SHJ2;
+ if (TARGET_SH3)
+ sh_cpu = PROCESSOR_SH3;
+ if (TARGET_SH3E)
+diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
+index 8ab5455505c..6ffed6da403 100644
+--- a/gcc/config/sh/sh.h
++++ b/gcc/config/sh/sh.h
+@@ -85,6 +85,7 @@ extern int code_for_indirect_jump_scratch;
+ #define SUPPORT_SH4_SINGLE 1
+ #define SUPPORT_SH2A 1
+ #define SUPPORT_SH2A_SINGLE 1
++#define SUPPORT_SHJ2 1
+ #endif
+
+ #define TARGET_DIVIDE_CALL_DIV1 (sh_div_strategy == SH_DIV_CALL_DIV1)
+@@ -117,6 +118,7 @@ extern int code_for_indirect_jump_scratch;
+ #define SELECT_SH4A_SINGLE_ONLY (MASK_SH4A | SELECT_SH4_SINGLE_ONLY)
+ #define SELECT_SH4A (MASK_SH4A | SELECT_SH4)
+ #define SELECT_SH4A_SINGLE (MASK_SH4A | SELECT_SH4_SINGLE)
++#define SELECT_SHJ2 (MASK_SHJ2 | SELECT_SH2)
+
+ #if SUPPORT_SH1
+ #define SUPPORT_SH2 1
+@@ -124,6 +126,7 @@ extern int code_for_indirect_jump_scratch;
+ #if SUPPORT_SH2
+ #define SUPPORT_SH3 1
+ #define SUPPORT_SH2A_NOFPU 1
++#define SUPPORT_SHJ2 1
+ #endif
+ #if SUPPORT_SH3
+ #define SUPPORT_SH4_NOFPU 1
+@@ -156,7 +159,7 @@ extern int code_for_indirect_jump_scratch;
+ #define MASK_ARCH (MASK_SH1 | MASK_SH2 | MASK_SH3 | MASK_SH_E | MASK_SH4 \
+ | MASK_HARD_SH2A | MASK_HARD_SH2A_DOUBLE | MASK_SH4A \
+ | MASK_HARD_SH4 | MASK_FPU_SINGLE \
+- | MASK_FPU_SINGLE_ONLY)
++ | MASK_FPU_SINGLE_ONLY | MASK_SHJ2)
+
+ /* This defaults us to big-endian. */
+ #ifndef TARGET_ENDIAN_DEFAULT
+@@ -231,7 +234,8 @@ extern int code_for_indirect_jump_scratch;
+ %{m2a-single:--isa=sh2a} \
+ %{m2a-single-only:--isa=sh2a} \
+ %{m2a-nofpu:--isa=sh2a-nofpu} \
+-%{m4al:-dsp}"
++%{m4al:-dsp} \
++%{mj2:-isa=j2}"
+
+ #define ASM_SPEC SH_ASM_SPEC
+
+@@ -347,6 +351,7 @@ struct sh_atomic_model
+ hard_llcs,
+ soft_tcb,
+ soft_imask,
++ hard_cas,
+
+ num_models
+ };
+@@ -390,6 +395,9 @@ extern const sh_atomic_model& selected_atomic_model (void);
+ #define TARGET_ATOMIC_SOFT_IMASK \
+ (selected_atomic_model ().type == sh_atomic_model::soft_imask)
+
++#define TARGET_ATOMIC_HARD_CAS \
++ (selected_atomic_model ().type == sh_atomic_model::hard_cas)
++
+ #endif // __cplusplus
+
+ #define SUBTARGET_OVERRIDE_OPTIONS (void) 0
+@@ -1484,7 +1492,7 @@ extern bool current_function_interrupt;
+
+ /* Nonzero if the target supports dynamic shift instructions
+ like shad and shld. */
+-#define TARGET_DYNSHIFT (TARGET_SH3 || TARGET_SH2A)
++#define TARGET_DYNSHIFT (TARGET_SH3 || TARGET_SH2A || TARGET_SHJ2)
+
+ /* The cost of using the dynamic shift insns (shad, shld) are the same
+ if they are available. If they are not available a library function will
+@@ -1747,6 +1755,7 @@ enum processor_type {
+ PROCESSOR_SH2,
+ PROCESSOR_SH2E,
+ PROCESSOR_SH2A,
++ PROCESSOR_SHJ2,
+ PROCESSOR_SH3,
+ PROCESSOR_SH3E,
+ PROCESSOR_SH4,
+diff --git a/gcc/config/sh/sh.opt b/gcc/config/sh/sh.opt
+index 908603b92e1..e6108dabbc6 100644
+--- a/gcc/config/sh/sh.opt
++++ b/gcc/config/sh/sh.opt
+@@ -65,6 +65,10 @@ m2e
+ Target RejectNegative Condition(SUPPORT_SH2E)
+ Generate SH2e code.
+
++mj2
++Target RejectNegative Mask(SHJ2) Condition(SUPPORT_SHJ2)
++Generate J2 code.
++
+ m3
+ Target RejectNegative Mask(SH3) Condition(SUPPORT_SH3)
+ Generate SH3 code.
+diff --git a/gcc/config/sh/sync.md b/gcc/config/sh/sync.md
+index 25f3b695d2f..55119386a18 100644
+--- a/gcc/config/sh/sync.md
++++ b/gcc/config/sh/sync.md
+@@ -240,6 +240,9 @@
+ || (TARGET_SH4A && <MODE>mode == SImode && !TARGET_ATOMIC_STRICT))
+ atomic_insn = gen_atomic_compare_and_swap<mode>_hard (old_val, mem,
+ exp_val, new_val);
++ else if (TARGET_ATOMIC_HARD_CAS && <MODE>mode == SImode)
++ atomic_insn = gen_atomic_compare_and_swap<mode>_cas (old_val, mem,
++ exp_val, new_val);
+ else if (TARGET_ATOMIC_SOFT_GUSA)
+ atomic_insn = gen_atomic_compare_and_swap<mode>_soft_gusa (old_val, mem,
+ exp_val, new_val);
+@@ -306,6 +309,57 @@
+ }
+ [(set_attr "length" "14")])
+
++(define_expand "atomic_compare_and_swapsi_cas"
++ [(set (match_operand:SI 0 "register_operand" "=r")
++ (unspec_volatile:SI
++ [(match_operand:SI 1 "atomic_mem_operand_0" "=Sra")
++ (match_operand:SI 2 "register_operand" "r")
++ (match_operand:SI 3 "register_operand" "r")]
++ UNSPECV_CMPXCHG_1))]
++ "TARGET_ATOMIC_HARD_CAS"
++{
++ rtx mem = gen_rtx_REG (SImode, 0);
++ emit_move_insn (mem, force_reg (SImode, XEXP (operands[1], 0)));
++ emit_insn (gen_shj2_cas (operands[0], mem, operands[2], operands[3]));
++ DONE;
++})
++
++(define_insn "shj2_cas"
++ [(set (match_operand:SI 0 "register_operand" "=&r")
++ (unspec_volatile:SI
++ [(match_operand:SI 1 "register_operand" "=r")
++ (match_operand:SI 2 "register_operand" "r")
++ (match_operand:SI 3 "register_operand" "0")]
++ UNSPECV_CMPXCHG_1))
++ (set (reg:SI T_REG)
++ (unspec_volatile:SI [(const_int 0)] UNSPECV_CMPXCHG_3))]
++ "TARGET_ATOMIC_HARD_CAS"
++ "cas.l %2,%0,@%1"
++ [(set_attr "length" "2")]
++)
++
++(define_expand "atomic_compare_and_swapqi_cas"
++ [(set (match_operand:SI 0 "arith_reg_dest" "=&r")
++ (unspec_volatile:SI
++ [(match_operand:SI 1 "atomic_mem_operand_0" "=Sra")
++ (match_operand:SI 2 "arith_operand" "rI08")
++ (match_operand:SI 3 "arith_operand" "rI08")]
++ UNSPECV_CMPXCHG_1))]
++ "TARGET_ATOMIC_HARD_CAS"
++{FAIL;}
++)
++
++(define_expand "atomic_compare_and_swaphi_cas"
++ [(set (match_operand:SI 0 "arith_reg_dest" "=&r")
++ (unspec_volatile:SI
++ [(match_operand:SI 1 "atomic_mem_operand_0" "=Sra")
++ (match_operand:SI 2 "arith_operand" "rI08")
++ (match_operand:SI 3 "arith_operand" "rI08")]
++ UNSPECV_CMPXCHG_1))]
++ "TARGET_ATOMIC_HARD_CAS"
++{FAIL;}
++)
++
+ ;; The QIHImode llcs patterns modify the address register of the memory
+ ;; operand. In order to express that, we have to open code the memory
+ ;; operand. Initially the insn is expanded like every other atomic insn
+diff --git a/gcc/config/sh/t-sh b/gcc/config/sh/t-sh
+index a402359be72..dbd0bf992bf 100644
+--- a/gcc/config/sh/t-sh
++++ b/gcc/config/sh/t-sh
+@@ -50,7 +50,8 @@ MULTILIB_MATCHES = $(shell \
+ m2e,m3e,m4-single-only,m4-100-single-only,m4-200-single-only,m4-300-single-only,m4a-single-only \
+ m2a-single,m2a-single-only \
+ m4-single,m4-100-single,m4-200-single,m4-300-single,m4a-single \
+- m4,m4-100,m4-200,m4-300,m4a; do \
++ m4,m4-100,m4-200,m4-300,m4a \
++ mj2; do \
+ subst= ; \
+ for lib in `echo $$abi|tr , ' '` ; do \
+ if test "`echo $$multilibs|sed s/$$lib//`" != "$$multilibs"; then \
+@@ -63,9 +64,9 @@ MULTILIB_MATCHES = $(shell \
+
+ # SH1 and SH2A support big endian only.
+ ifeq ($(DEFAULT_ENDIAN),ml)
+-MULTILIB_EXCEPTIONS = m1 ml/m1 m2a* ml/m2a* $(TM_MULTILIB_EXCEPTIONS_CONFIG)
++MULTILIB_EXCEPTIONS = m1 ml/m1 m2a* ml/m2a* ml/mj2 $(TM_MULTILIB_EXCEPTIONS_CONFIG)
+ else
+-MULTILIB_EXCEPTIONS = ml/m1 ml/m2a* $(TM_MULTILIB_EXCEPTIONS_CONFIG)
++MULTILIB_EXCEPTIONS = ml/m1 ml/m2a* ml/mj2 $(TM_MULTILIB_EXCEPTIONS_CONFIG)
+ endif
+
+ MULTILIB_OSDIRNAMES = \
+@@ -87,7 +88,8 @@ MULTILIB_OSDIRNAMES = \
+ m4a-single-only=!m4a-single-only $(OTHER_ENDIAN)/m4a-single-only=!$(OTHER_ENDIAN)/m4a-single-only \
+ m4a-single=!m4a-single $(OTHER_ENDIAN)/m4a-single=!$(OTHER_ENDIAN)/m4a-single \
+ m4a=!m4a $(OTHER_ENDIAN)/m4a=!$(OTHER_ENDIAN)/m4a \
+- m4al=!m4al $(OTHER_ENDIAN)/m4al=!$(OTHER_ENDIAN)/m4al
++ m4al=!m4al $(OTHER_ENDIAN)/m4al=!$(OTHER_ENDIAN)/m4al \
++ mj2=!j2
+
+ $(out_object_file): gt-sh.h
+ gt-sh.h : s-gtype ; @true
diff --git a/toolchain/gcc/patches/7.3.0/nios2-softfp.patch b/toolchain/gcc/patches/10.5.0/nios2-softfp.patch
index c677c6c2f..c677c6c2f 100644
--- a/toolchain/gcc/patches/7.3.0/nios2-softfp.patch
+++ b/toolchain/gcc/patches/10.5.0/nios2-softfp.patch
diff --git a/toolchain/gcc/patches/10.5.0/revert-sparc.patch b/toolchain/gcc/patches/10.5.0/revert-sparc.patch
new file mode 100644
index 000000000..2ce948c82
--- /dev/null
+++ b/toolchain/gcc/patches/10.5.0/revert-sparc.patch
@@ -0,0 +1,283 @@
+diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc.c gcc-10.3.0/gcc/config/sparc/sparc.c
+--- gcc-10.3.0.orig/gcc/config/sparc/sparc.c 2021-04-08 13:56:28.201742273 +0200
++++ gcc-10.3.0/gcc/config/sparc/sparc.c 2022-01-24 10:19:53.724121161 +0100
+@@ -4157,6 +4157,13 @@
+ static bool
+ sparc_cannot_force_const_mem (machine_mode mode, rtx x)
+ {
++ /* After IRA has run in PIC mode, it is too late to put anything into the
++ constant pool if the PIC register hasn't already been initialized. */
++ if ((lra_in_progress || reload_in_progress)
++ && flag_pic
++ && !crtl->uses_pic_offset_table)
++ return true;
++
+ switch (GET_CODE (x))
+ {
+ case CONST_INT:
+@@ -4192,11 +4199,9 @@
+ }
+
+ /* Global Offset Table support. */
+-static GTY(()) rtx got_symbol_rtx = NULL_RTX;
+-static GTY(()) rtx got_register_rtx = NULL_RTX;
+ static GTY(()) rtx got_helper_rtx = NULL_RTX;
+-
+-static GTY(()) bool got_helper_needed = false;
++static GTY(()) rtx got_register_rtx = NULL_RTX;
++static GTY(()) rtx got_symbol_rtx = NULL_RTX;
+
+ /* Return the SYMBOL_REF for the Global Offset Table. */
+
+@@ -4209,6 +4214,27 @@
+ return got_symbol_rtx;
+ }
+
++#ifdef HAVE_GAS_HIDDEN
++# define USE_HIDDEN_LINKONCE 1
++#else
++# define USE_HIDDEN_LINKONCE 0
++#endif
++
++static void
++get_pc_thunk_name (char name[32], unsigned int regno)
++{
++ const char *reg_name = reg_names[regno];
++
++ /* Skip the leading '%' as that cannot be used in a
++ symbol name. */
++ reg_name += 1;
++
++ if (USE_HIDDEN_LINKONCE)
++ sprintf (name, "__sparc_get_pc_thunk.%s", reg_name);
++ else
++ ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno);
++}
++
+ /* Wrapper around the load_pcrel_sym{si,di} patterns. */
+
+ static rtx
+@@ -4228,78 +4254,30 @@
+ return insn;
+ }
+
+-/* Output the load_pcrel_sym{si,di} patterns. */
+-
+-const char *
+-output_load_pcrel_sym (rtx *operands)
+-{
+- if (flag_delayed_branch)
+- {
+- output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands);
+- output_asm_insn ("call\t%a2", operands);
+- output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands);
+- }
+- else
+- {
+- output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands);
+- output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands);
+- output_asm_insn ("call\t%a2", operands);
+- output_asm_insn (" nop", NULL);
+- }
+-
+- if (operands[2] == got_helper_rtx)
+- got_helper_needed = true;
+-
+- return "";
+-}
+-
+-#ifdef HAVE_GAS_HIDDEN
+-# define USE_HIDDEN_LINKONCE 1
+-#else
+-# define USE_HIDDEN_LINKONCE 0
+-#endif
+-
+ /* Emit code to load the GOT register. */
+
+ void
+ load_got_register (void)
+ {
+- rtx insn;
++ if (!got_register_rtx)
++ got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
+
+ if (TARGET_VXWORKS_RTP)
+- {
+- if (!got_register_rtx)
+- got_register_rtx = pic_offset_table_rtx;
+-
+- insn = gen_vxworks_load_got ();
+- }
++ emit_insn (gen_vxworks_load_got ());
+ else
+ {
+- if (!got_register_rtx)
+- got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
+-
+ /* The GOT symbol is subject to a PC-relative relocation so we need a
+ helper function to add the PC value and thus get the final value. */
+ if (!got_helper_rtx)
+ {
+ char name[32];
+-
+- /* Skip the leading '%' as that cannot be used in a symbol name. */
+- if (USE_HIDDEN_LINKONCE)
+- sprintf (name, "__sparc_get_pc_thunk.%s",
+- reg_names[REGNO (got_register_rtx)] + 1);
+- else
+- ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC",
+- REGNO (got_register_rtx));
+-
++ get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM);
+ got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
+ }
+
+- insn
+- = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx);
++ emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (),
++ got_helper_rtx));
+ }
+-
+- emit_insn (insn);
+ }
+
+ /* Ensure that we are not using patterns that are not OK with PIC. */
+@@ -5464,7 +5442,7 @@
+ return true;
+
+ /* GOT register (%l7) if needed. */
+- if (got_register_rtx && regno == REGNO (got_register_rtx))
++ if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx)
+ return true;
+
+ /* If the function accesses prior frames, the frame pointer and the return
+@@ -12507,9 +12485,10 @@
+ sparc_file_end (void)
+ {
+ /* If we need to emit the special GOT helper function, do so now. */
+- if (got_helper_needed)
++ if (got_helper_rtx)
+ {
+ const char *name = XSTR (got_helper_rtx, 0);
++ const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM];
+ #ifdef DWARF2_UNWIND_INFO
+ bool do_cfi;
+ #endif
+@@ -12546,22 +12525,17 @@
+ #ifdef DWARF2_UNWIND_INFO
+ do_cfi = dwarf2out_do_cfi_asm ();
+ if (do_cfi)
+- output_asm_insn (".cfi_startproc", NULL);
++ fprintf (asm_out_file, "\t.cfi_startproc\n");
+ #endif
+ if (flag_delayed_branch)
+- {
+- output_asm_insn ("jmp\t%%o7+8", NULL);
+- output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx);
+- }
++ fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n",
++ reg_name, reg_name);
+ else
+- {
+- output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx);
+- output_asm_insn ("jmp\t%%o7+8", NULL);
+- output_asm_insn (" nop", NULL);
+- }
++ fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n",
++ reg_name, reg_name);
+ #ifdef DWARF2_UNWIND_INFO
+ if (do_cfi)
+- output_asm_insn (".cfi_endproc", NULL);
++ fprintf (asm_out_file, "\t.cfi_endproc\n");
+ #endif
+ }
+
+@@ -13056,10 +13030,7 @@
+ edge entry_edge;
+ rtx_insn *seq;
+
+- /* In PIC mode, we need to always initialize the PIC register if optimization
+- is enabled, because we are called from IRA and LRA may later force things
+- to the constant pool for optimization purposes. */
+- if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize))
++ if (!crtl->uses_pic_offset_table)
+ return;
+
+ start_sequence ();
+diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc.md gcc-10.3.0/gcc/config/sparc/sparc.md
+--- gcc-10.3.0.orig/gcc/config/sparc/sparc.md 2021-04-08 13:56:28.205742322 +0200
++++ gcc-10.3.0/gcc/config/sparc/sparc.md 2022-01-24 10:19:54.504102046 +0100
+@@ -1601,7 +1601,10 @@
+ (clobber (reg:P O7_REG))]
+ "REGNO (operands[0]) == INTVAL (operands[3])"
+ {
+- return output_load_pcrel_sym (operands);
++ if (flag_delayed_branch)
++ return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0";
++ else
++ return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop";
+ }
+ [(set (attr "type") (const_string "multi"))
+ (set (attr "length")
+diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc-protos.h gcc-10.3.0/gcc/config/sparc/sparc-protos.h
+--- gcc-10.3.0.orig/gcc/config/sparc/sparc-protos.h 2021-04-08 13:56:28.201742273 +0200
++++ gcc-10.3.0/gcc/config/sparc/sparc-protos.h 2022-01-24 10:19:54.548100968 +0100
+@@ -69,7 +69,6 @@
+ extern void sparc_split_mem_reg (rtx, rtx, machine_mode);
+ extern int sparc_split_reg_reg_legitimate (rtx, rtx);
+ extern void sparc_split_reg_reg (rtx, rtx, machine_mode);
+-extern const char *output_load_pcrel_sym (rtx *);
+ extern const char *output_ubranch (rtx, rtx_insn *);
+ extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *);
+ extern const char *output_return (rtx_insn *);
+diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.c-torture/compile/20191108-1.c gcc-10.3.0/gcc/testsuite/gcc.c-torture/compile/20191108-1.c
+--- gcc-10.3.0.orig/gcc/testsuite/gcc.c-torture/compile/20191108-1.c 2021-04-08 13:56:28.929751064 +0200
++++ gcc-10.3.0/gcc/testsuite/gcc.c-torture/compile/20191108-1.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,14 +0,0 @@
+-/* PR target/92095 */
+-/* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
+-
+-typedef union {
+- double a;
+- int b[2];
+-} c;
+-
+-double d(int e)
+-{
+- c f;
+- (&f)->b[0] = 15728640;
+- return e ? -(&f)->a : (&f)->a;
+-}
+diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-3.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-3.c
+--- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-3.c 2021-04-08 13:56:29.453757389 +0200
++++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-3.c 2022-01-24 10:19:54.688097536 +0100
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target lp64 } */
+-/* { dg-options "-O -fno-pie" } */
++/* { dg-options "-O" } */
+
+ #include <stdbool.h>
+ #include <stdint.h>
+diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-4.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-4.c
+--- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-4.c 2021-04-08 13:56:29.453757389 +0200
++++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-4.c 2022-01-24 10:19:55.336081656 +0100
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target lp64 } */
+-/* { dg-options "-O -fno-pie -mno-vis3 -mno-vis4" } */
++/* { dg-options "-O -mno-vis3 -mno-vis4" } */
+
+ #include <stdbool.h>
+ #include <stdint.h>
+diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-5.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-5.c
+--- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-5.c 2021-04-08 13:56:29.453757389 +0200
++++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-5.c 2022-01-24 10:19:55.336081656 +0100
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target lp64 } */
+-/* { dg-options "-O -fno-pie -mvis3" } */
++/* { dg-options "-O -mvis3" } */
+
+ #include <stdbool.h>
+ #include <stdint.h>
diff --git a/toolchain/gcc/patches/11.4.0/add-crtreloc.frv b/toolchain/gcc/patches/11.4.0/add-crtreloc.frv
new file mode 100644
index 000000000..30de24cdc
--- /dev/null
+++ b/toolchain/gcc/patches/11.4.0/add-crtreloc.frv
@@ -0,0 +1,12 @@
+diff -Nur gcc-8.3.0.orig/gcc/config/frv/linux.h gcc-8.3.0/gcc/config/frv/linux.h
+--- gcc-8.3.0.orig/gcc/config/frv/linux.h 2018-01-03 11:03:58.000000000 +0100
++++ gcc-8.3.0/gcc/config/frv/linux.h 2019-10-08 10:52:00.176295821 +0200
+@@ -27,7 +27,7 @@
+
+ #undef STARTFILE_SPEC
+ #define STARTFILE_SPEC \
+- "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
++ "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} crtreloc.o%s \
+ crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
+
+ #undef ENDFILE_SPEC
diff --git a/toolchain/gcc/patches/11.4.0/c6x-disable-multilib.patch b/toolchain/gcc/patches/11.4.0/c6x-disable-multilib.patch
new file mode 100644
index 000000000..cbee6f785
--- /dev/null
+++ b/toolchain/gcc/patches/11.4.0/c6x-disable-multilib.patch
@@ -0,0 +1,10 @@
+diff -Nur gcc-8.3.0.orig/gcc/config/c6x/t-c6x-uclinux gcc-8.3.0/gcc/config/c6x/t-c6x-uclinux
+--- gcc-8.3.0.orig/gcc/config/c6x/t-c6x-uclinux 2011-11-02 16:23:48.000000000 +0100
++++ gcc-8.3.0/gcc/config/c6x/t-c6x-uclinux 2019-10-08 07:49:50.255159650 +0200
+@@ -1,3 +1,3 @@
+-MULTILIB_OSDIRNAMES = march.c674x=!c674x
+-MULTILIB_OSDIRNAMES += mbig-endian=!be
+-MULTILIB_OSDIRNAMES += mbig-endian/march.c674x=!be/c674x
++MULTILIB_OSDIRNAMES =
++#MULTILIB_OSDIRNAMES += mbig-endian=!be
++#MULTILIB_OSDIRNAMES += mbig-endian/march.c674x=!be/c674x
diff --git a/toolchain/gcc/patches/11.4.0/csky.patch b/toolchain/gcc/patches/11.4.0/csky.patch
new file mode 100644
index 000000000..ee352951b
--- /dev/null
+++ b/toolchain/gcc/patches/11.4.0/csky.patch
@@ -0,0 +1,12 @@
+diff -Nur gcc-11.2.0.orig/libgcc/config/csky/linux-atomic.c gcc-11.2.0/libgcc/config/csky/linux-atomic.c
+--- gcc-11.2.0.orig/libgcc/config/csky/linux-atomic.c 2021-07-28 08:55:08.760307899 +0200
++++ gcc-11.2.0/libgcc/config/csky/linux-atomic.c 2021-12-14 14:19:23.685729233 +0100
+@@ -24,7 +24,7 @@
+ <http://www.gnu.org/licenses/>. */
+
+ /* Kernel helper for compare-and-exchange. */
+-inline int
++int
+ __kernel_cmpxchg (int oldval, int newval, volatile int *ptr)
+ {
+ register int _a0 asm ("a0") = oldval;
diff --git a/toolchain/gcc/patches/11.4.0/ia64-fix-libgcc.patch b/toolchain/gcc/patches/11.4.0/ia64-fix-libgcc.patch
new file mode 100644
index 000000000..f1f3c8d2d
--- /dev/null
+++ b/toolchain/gcc/patches/11.4.0/ia64-fix-libgcc.patch
@@ -0,0 +1,17 @@
+diff -Nur gcc-6.3.0.orig/libgcc/config/ia64/fde-glibc.c gcc-6.3.0/libgcc/config/ia64/fde-glibc.c
+--- gcc-6.3.0.orig/libgcc/config/ia64/fde-glibc.c 2016-01-04 15:30:50.000000000 +0100
++++ gcc-6.3.0/libgcc/config/ia64/fde-glibc.c 2017-03-05 13:07:33.316600613 +0100
+@@ -25,6 +25,8 @@
+ /* Locate the FDE entry for a given address, using glibc ld.so routines
+ to avoid register/deregister calls at DSO load/unload. */
+
++#ifndef inhibit_libc
++
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE 1
+ #endif
+@@ -159,3 +161,4 @@
+
+ return data.ret;
+ }
++#endif
diff --git a/toolchain/gcc/patches/11.4.0/nios2-softfp.patch b/toolchain/gcc/patches/11.4.0/nios2-softfp.patch
new file mode 100644
index 000000000..c677c6c2f
--- /dev/null
+++ b/toolchain/gcc/patches/11.4.0/nios2-softfp.patch
@@ -0,0 +1,14 @@
+diff -Nur gcc-6.2.0.orig/libgcc/config.host gcc-6.2.0/libgcc/config.host
+--- gcc-6.2.0.orig/libgcc/config.host 2016-05-17 08:15:52.000000000 +0200
++++ gcc-6.2.0/libgcc/config.host 2016-10-15 14:42:53.971919904 +0200
+@@ -962,6 +962,10 @@
+ ;;
+ esac
+ ;;
++nios2-*-linux-uclibc*)
++ tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc t-softfp-sfdf t-softfp"
++ md_unwind_header=nios2/linux-unwind.h
++ ;;
+ nios2-*-linux*)
+ tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc"
+ md_unwind_header=nios2/linux-unwind.h
diff --git a/toolchain/gcc/patches/11.4.0/revert.sparc b/toolchain/gcc/patches/11.4.0/revert.sparc
new file mode 100644
index 000000000..2ce948c82
--- /dev/null
+++ b/toolchain/gcc/patches/11.4.0/revert.sparc
@@ -0,0 +1,283 @@
+diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc.c gcc-10.3.0/gcc/config/sparc/sparc.c
+--- gcc-10.3.0.orig/gcc/config/sparc/sparc.c 2021-04-08 13:56:28.201742273 +0200
++++ gcc-10.3.0/gcc/config/sparc/sparc.c 2022-01-24 10:19:53.724121161 +0100
+@@ -4157,6 +4157,13 @@
+ static bool
+ sparc_cannot_force_const_mem (machine_mode mode, rtx x)
+ {
++ /* After IRA has run in PIC mode, it is too late to put anything into the
++ constant pool if the PIC register hasn't already been initialized. */
++ if ((lra_in_progress || reload_in_progress)
++ && flag_pic
++ && !crtl->uses_pic_offset_table)
++ return true;
++
+ switch (GET_CODE (x))
+ {
+ case CONST_INT:
+@@ -4192,11 +4199,9 @@
+ }
+
+ /* Global Offset Table support. */
+-static GTY(()) rtx got_symbol_rtx = NULL_RTX;
+-static GTY(()) rtx got_register_rtx = NULL_RTX;
+ static GTY(()) rtx got_helper_rtx = NULL_RTX;
+-
+-static GTY(()) bool got_helper_needed = false;
++static GTY(()) rtx got_register_rtx = NULL_RTX;
++static GTY(()) rtx got_symbol_rtx = NULL_RTX;
+
+ /* Return the SYMBOL_REF for the Global Offset Table. */
+
+@@ -4209,6 +4214,27 @@
+ return got_symbol_rtx;
+ }
+
++#ifdef HAVE_GAS_HIDDEN
++# define USE_HIDDEN_LINKONCE 1
++#else
++# define USE_HIDDEN_LINKONCE 0
++#endif
++
++static void
++get_pc_thunk_name (char name[32], unsigned int regno)
++{
++ const char *reg_name = reg_names[regno];
++
++ /* Skip the leading '%' as that cannot be used in a
++ symbol name. */
++ reg_name += 1;
++
++ if (USE_HIDDEN_LINKONCE)
++ sprintf (name, "__sparc_get_pc_thunk.%s", reg_name);
++ else
++ ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC", regno);
++}
++
+ /* Wrapper around the load_pcrel_sym{si,di} patterns. */
+
+ static rtx
+@@ -4228,78 +4254,30 @@
+ return insn;
+ }
+
+-/* Output the load_pcrel_sym{si,di} patterns. */
+-
+-const char *
+-output_load_pcrel_sym (rtx *operands)
+-{
+- if (flag_delayed_branch)
+- {
+- output_asm_insn ("sethi\t%%hi(%a1-4), %0", operands);
+- output_asm_insn ("call\t%a2", operands);
+- output_asm_insn (" add\t%0, %%lo(%a1+4), %0", operands);
+- }
+- else
+- {
+- output_asm_insn ("sethi\t%%hi(%a1-8), %0", operands);
+- output_asm_insn ("add\t%0, %%lo(%a1-4), %0", operands);
+- output_asm_insn ("call\t%a2", operands);
+- output_asm_insn (" nop", NULL);
+- }
+-
+- if (operands[2] == got_helper_rtx)
+- got_helper_needed = true;
+-
+- return "";
+-}
+-
+-#ifdef HAVE_GAS_HIDDEN
+-# define USE_HIDDEN_LINKONCE 1
+-#else
+-# define USE_HIDDEN_LINKONCE 0
+-#endif
+-
+ /* Emit code to load the GOT register. */
+
+ void
+ load_got_register (void)
+ {
+- rtx insn;
++ if (!got_register_rtx)
++ got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
+
+ if (TARGET_VXWORKS_RTP)
+- {
+- if (!got_register_rtx)
+- got_register_rtx = pic_offset_table_rtx;
+-
+- insn = gen_vxworks_load_got ();
+- }
++ emit_insn (gen_vxworks_load_got ());
+ else
+ {
+- if (!got_register_rtx)
+- got_register_rtx = gen_rtx_REG (Pmode, GLOBAL_OFFSET_TABLE_REGNUM);
+-
+ /* The GOT symbol is subject to a PC-relative relocation so we need a
+ helper function to add the PC value and thus get the final value. */
+ if (!got_helper_rtx)
+ {
+ char name[32];
+-
+- /* Skip the leading '%' as that cannot be used in a symbol name. */
+- if (USE_HIDDEN_LINKONCE)
+- sprintf (name, "__sparc_get_pc_thunk.%s",
+- reg_names[REGNO (got_register_rtx)] + 1);
+- else
+- ASM_GENERATE_INTERNAL_LABEL (name, "LADDPC",
+- REGNO (got_register_rtx));
+-
++ get_pc_thunk_name (name, GLOBAL_OFFSET_TABLE_REGNUM);
+ got_helper_rtx = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (name));
+ }
+
+- insn
+- = gen_load_pcrel_sym (got_register_rtx, sparc_got (), got_helper_rtx);
++ emit_insn (gen_load_pcrel_sym (got_register_rtx, sparc_got (),
++ got_helper_rtx));
+ }
+-
+- emit_insn (insn);
+ }
+
+ /* Ensure that we are not using patterns that are not OK with PIC. */
+@@ -5464,7 +5442,7 @@
+ return true;
+
+ /* GOT register (%l7) if needed. */
+- if (got_register_rtx && regno == REGNO (got_register_rtx))
++ if (regno == GLOBAL_OFFSET_TABLE_REGNUM && got_register_rtx)
+ return true;
+
+ /* If the function accesses prior frames, the frame pointer and the return
+@@ -12507,9 +12485,10 @@
+ sparc_file_end (void)
+ {
+ /* If we need to emit the special GOT helper function, do so now. */
+- if (got_helper_needed)
++ if (got_helper_rtx)
+ {
+ const char *name = XSTR (got_helper_rtx, 0);
++ const char *reg_name = reg_names[GLOBAL_OFFSET_TABLE_REGNUM];
+ #ifdef DWARF2_UNWIND_INFO
+ bool do_cfi;
+ #endif
+@@ -12546,22 +12525,17 @@
+ #ifdef DWARF2_UNWIND_INFO
+ do_cfi = dwarf2out_do_cfi_asm ();
+ if (do_cfi)
+- output_asm_insn (".cfi_startproc", NULL);
++ fprintf (asm_out_file, "\t.cfi_startproc\n");
+ #endif
+ if (flag_delayed_branch)
+- {
+- output_asm_insn ("jmp\t%%o7+8", NULL);
+- output_asm_insn (" add\t%%o7, %0, %0", &got_register_rtx);
+- }
++ fprintf (asm_out_file, "\tjmp\t%%o7+8\n\t add\t%%o7, %s, %s\n",
++ reg_name, reg_name);
+ else
+- {
+- output_asm_insn ("add\t%%o7, %0, %0", &got_register_rtx);
+- output_asm_insn ("jmp\t%%o7+8", NULL);
+- output_asm_insn (" nop", NULL);
+- }
++ fprintf (asm_out_file, "\tadd\t%%o7, %s, %s\n\tjmp\t%%o7+8\n\t nop\n",
++ reg_name, reg_name);
+ #ifdef DWARF2_UNWIND_INFO
+ if (do_cfi)
+- output_asm_insn (".cfi_endproc", NULL);
++ fprintf (asm_out_file, "\t.cfi_endproc\n");
+ #endif
+ }
+
+@@ -13056,10 +13030,7 @@
+ edge entry_edge;
+ rtx_insn *seq;
+
+- /* In PIC mode, we need to always initialize the PIC register if optimization
+- is enabled, because we are called from IRA and LRA may later force things
+- to the constant pool for optimization purposes. */
+- if (!flag_pic || (!crtl->uses_pic_offset_table && !optimize))
++ if (!crtl->uses_pic_offset_table)
+ return;
+
+ start_sequence ();
+diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc.md gcc-10.3.0/gcc/config/sparc/sparc.md
+--- gcc-10.3.0.orig/gcc/config/sparc/sparc.md 2021-04-08 13:56:28.205742322 +0200
++++ gcc-10.3.0/gcc/config/sparc/sparc.md 2022-01-24 10:19:54.504102046 +0100
+@@ -1601,7 +1601,10 @@
+ (clobber (reg:P O7_REG))]
+ "REGNO (operands[0]) == INTVAL (operands[3])"
+ {
+- return output_load_pcrel_sym (operands);
++ if (flag_delayed_branch)
++ return "sethi\t%%hi(%a1-4), %0\n\tcall\t%a2\n\t add\t%0, %%lo(%a1+4), %0";
++ else
++ return "sethi\t%%hi(%a1-8), %0\n\tadd\t%0, %%lo(%a1-4), %0\n\tcall\t%a2\n\t nop";
+ }
+ [(set (attr "type") (const_string "multi"))
+ (set (attr "length")
+diff -Nur gcc-10.3.0.orig/gcc/config/sparc/sparc-protos.h gcc-10.3.0/gcc/config/sparc/sparc-protos.h
+--- gcc-10.3.0.orig/gcc/config/sparc/sparc-protos.h 2021-04-08 13:56:28.201742273 +0200
++++ gcc-10.3.0/gcc/config/sparc/sparc-protos.h 2022-01-24 10:19:54.548100968 +0100
+@@ -69,7 +69,6 @@
+ extern void sparc_split_mem_reg (rtx, rtx, machine_mode);
+ extern int sparc_split_reg_reg_legitimate (rtx, rtx);
+ extern void sparc_split_reg_reg (rtx, rtx, machine_mode);
+-extern const char *output_load_pcrel_sym (rtx *);
+ extern const char *output_ubranch (rtx, rtx_insn *);
+ extern const char *output_cbranch (rtx, rtx, int, int, int, rtx_insn *);
+ extern const char *output_return (rtx_insn *);
+diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.c-torture/compile/20191108-1.c gcc-10.3.0/gcc/testsuite/gcc.c-torture/compile/20191108-1.c
+--- gcc-10.3.0.orig/gcc/testsuite/gcc.c-torture/compile/20191108-1.c 2021-04-08 13:56:28.929751064 +0200
++++ gcc-10.3.0/gcc/testsuite/gcc.c-torture/compile/20191108-1.c 1970-01-01 01:00:00.000000000 +0100
+@@ -1,14 +0,0 @@
+-/* PR target/92095 */
+-/* Testcase by Sergei Trofimovich <slyfox@inbox.ru> */
+-
+-typedef union {
+- double a;
+- int b[2];
+-} c;
+-
+-double d(int e)
+-{
+- c f;
+- (&f)->b[0] = 15728640;
+- return e ? -(&f)->a : (&f)->a;
+-}
+diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-3.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-3.c
+--- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-3.c 2021-04-08 13:56:29.453757389 +0200
++++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-3.c 2022-01-24 10:19:54.688097536 +0100
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target lp64 } */
+-/* { dg-options "-O -fno-pie" } */
++/* { dg-options "-O" } */
+
+ #include <stdbool.h>
+ #include <stdint.h>
+diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-4.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-4.c
+--- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-4.c 2021-04-08 13:56:29.453757389 +0200
++++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-4.c 2022-01-24 10:19:55.336081656 +0100
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target lp64 } */
+-/* { dg-options "-O -fno-pie -mno-vis3 -mno-vis4" } */
++/* { dg-options "-O -mno-vis3 -mno-vis4" } */
+
+ #include <stdbool.h>
+ #include <stdint.h>
+diff -Nur gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-5.c gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-5.c
+--- gcc-10.3.0.orig/gcc/testsuite/gcc.target/sparc/overflow-5.c 2021-04-08 13:56:29.453757389 +0200
++++ gcc-10.3.0/gcc/testsuite/gcc.target/sparc/overflow-5.c 2022-01-24 10:19:55.336081656 +0100
+@@ -1,6 +1,6 @@
+ /* { dg-do compile } */
+ /* { dg-require-effective-target lp64 } */
+-/* { dg-options "-O -fno-pie -mvis3" } */
++/* { dg-options "-O -mvis3" } */
+
+ #include <stdbool.h>
+ #include <stdint.h>
diff --git a/toolchain/gcc/patches/12.3.0/csky.patch b/toolchain/gcc/patches/12.3.0/csky.patch
new file mode 100644
index 000000000..ee352951b
--- /dev/null
+++ b/toolchain/gcc/patches/12.3.0/csky.patch
@@ -0,0 +1,12 @@
+diff -Nur gcc-11.2.0.orig/libgcc/config/csky/linux-atomic.c gcc-11.2.0/libgcc/config/csky/linux-atomic.c
+--- gcc-11.2.0.orig/libgcc/config/csky/linux-atomic.c 2021-07-28 08:55:08.760307899 +0200
++++ gcc-11.2.0/libgcc/config/csky/linux-atomic.c 2021-12-14 14:19:23.685729233 +0100
+@@ -24,7 +24,7 @@
+ <http://www.gnu.org/licenses/>. */
+
+ /* Kernel helper for compare-and-exchange. */
+-inline int
++int
+ __kernel_cmpxchg (int oldval, int newval, volatile int *ptr)
+ {
+ register int _a0 asm ("a0") = oldval;
diff --git a/toolchain/gcc/patches/12.3.0/nios2-softfp.patch b/toolchain/gcc/patches/12.3.0/nios2-softfp.patch
new file mode 100644
index 000000000..c677c6c2f
--- /dev/null
+++ b/toolchain/gcc/patches/12.3.0/nios2-softfp.patch
@@ -0,0 +1,14 @@
+diff -Nur gcc-6.2.0.orig/libgcc/config.host gcc-6.2.0/libgcc/config.host
+--- gcc-6.2.0.orig/libgcc/config.host 2016-05-17 08:15:52.000000000 +0200
++++ gcc-6.2.0/libgcc/config.host 2016-10-15 14:42:53.971919904 +0200
+@@ -962,6 +962,10 @@
+ ;;
+ esac
+ ;;
++nios2-*-linux-uclibc*)
++ tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc t-softfp-sfdf t-softfp"
++ md_unwind_header=nios2/linux-unwind.h
++ ;;
+ nios2-*-linux*)
+ tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc"
+ md_unwind_header=nios2/linux-unwind.h
diff --git a/toolchain/gcc/patches/13.2.0/csky.patch b/toolchain/gcc/patches/13.2.0/csky.patch
new file mode 100644
index 000000000..ee352951b
--- /dev/null
+++ b/toolchain/gcc/patches/13.2.0/csky.patch
@@ -0,0 +1,12 @@
+diff -Nur gcc-11.2.0.orig/libgcc/config/csky/linux-atomic.c gcc-11.2.0/libgcc/config/csky/linux-atomic.c
+--- gcc-11.2.0.orig/libgcc/config/csky/linux-atomic.c 2021-07-28 08:55:08.760307899 +0200
++++ gcc-11.2.0/libgcc/config/csky/linux-atomic.c 2021-12-14 14:19:23.685729233 +0100
+@@ -24,7 +24,7 @@
+ <http://www.gnu.org/licenses/>. */
+
+ /* Kernel helper for compare-and-exchange. */
+-inline int
++int
+ __kernel_cmpxchg (int oldval, int newval, volatile int *ptr)
+ {
+ register int _a0 asm ("a0") = oldval;
diff --git a/toolchain/gcc/patches/13.2.0/nios2-softfp.patch b/toolchain/gcc/patches/13.2.0/nios2-softfp.patch
new file mode 100644
index 000000000..c677c6c2f
--- /dev/null
+++ b/toolchain/gcc/patches/13.2.0/nios2-softfp.patch
@@ -0,0 +1,14 @@
+diff -Nur gcc-6.2.0.orig/libgcc/config.host gcc-6.2.0/libgcc/config.host
+--- gcc-6.2.0.orig/libgcc/config.host 2016-05-17 08:15:52.000000000 +0200
++++ gcc-6.2.0/libgcc/config.host 2016-10-15 14:42:53.971919904 +0200
+@@ -962,6 +962,10 @@
+ ;;
+ esac
+ ;;
++nios2-*-linux-uclibc*)
++ tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc t-softfp-sfdf t-softfp"
++ md_unwind_header=nios2/linux-unwind.h
++ ;;
+ nios2-*-linux*)
+ tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc"
+ md_unwind_header=nios2/linux-unwind.h
diff --git a/toolchain/gcc/patches/4.5.4/disable-docs.patch b/toolchain/gcc/patches/4.5.4/disable-docs.patch
new file mode 100644
index 000000000..a1e2dbef3
--- /dev/null
+++ b/toolchain/gcc/patches/4.5.4/disable-docs.patch
@@ -0,0 +1,75 @@
+diff -Nur gcc-4.5.4.orig/gcc/Makefile.in gcc-4.5.4/gcc/Makefile.in
+--- gcc-4.5.4.orig/gcc/Makefile.in 2010-09-02 15:05:30.000000000 +0200
++++ gcc-4.5.4/gcc/Makefile.in 2020-02-14 11:21:19.738530236 +0100
+@@ -1726,10 +1726,10 @@
+ quickstrap: all
+ cd $(toplevel_builddir) && $(MAKE) all-target-libgcc
+
+-all.internal: start.encap rest.encap doc
++all.internal: start.encap rest.encap
+ # This is what to compile if making a cross-compiler.
+ all.cross: native gcc-cross$(exeext) cpp$(exeext) specs \
+- libgcc-support lang.all.cross doc @GENINSRC@ srcextra
++ libgcc-support lang.all.cross @GENINSRC@ srcextra
+ # This is what must be made before installing GCC and converting libraries.
+ start.encap: native xgcc$(exeext) cpp$(exeext) specs \
+ libgcc-support lang.start.encap @GENINSRC@ srcextra
+@@ -3968,39 +3968,23 @@
+ #
+ # Remake the info files.
+
+-doc: $(BUILD_INFO) $(GENERATED_MANPAGES) gccbug
++doc:
+
+-INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \
+- doc/gccinstall.info doc/cppinternals.info
++INFOFILES =
+
+-info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo
++info:
+
+-srcinfo: $(INFOFILES)
+- -cp -p $^ $(srcdir)/doc
++srcinfo:
++
++TEXI_CPP_FILES =
+
+-TEXI_CPP_FILES = cpp.texi fdl.texi cppenv.texi cppopts.texi \
+- gcc-common.texi gcc-vers.texi
++TEXI_GCC_FILES =
+
+-TEXI_GCC_FILES = gcc.texi gcc-common.texi gcc-vers.texi frontends.texi \
+- standards.texi invoke.texi extend.texi md.texi objc.texi \
+- gcov.texi trouble.texi bugreport.texi service.texi \
+- contribute.texi compat.texi funding.texi gnu.texi gpl_v3.texi \
+- fdl.texi contrib.texi cppenv.texi cppopts.texi \
+- implement-c.texi implement-cxx.texi arm-neon-intrinsics.texi
+-
+-TEXI_GCCINT_FILES = gccint.texi gcc-common.texi gcc-vers.texi \
+- contribute.texi makefile.texi configterms.texi options.texi \
+- portability.texi interface.texi passes.texi \
+- rtl.texi md.texi tm.texi hostconfig.texi fragments.texi \
+- configfiles.texi collect2.texi headerdirs.texi funding.texi \
+- gnu.texi gpl_v3.texi fdl.texi contrib.texi languages.texi \
+- sourcebuild.texi gty.texi libgcc.texi cfg.texi tree-ssa.texi \
+- loop.texi generic.texi gimple.texi plugins.texi
++TEXI_GCCINT_FILES =
+
+-TEXI_GCCINSTALL_FILES = install.texi install-old.texi fdl.texi \
+- gcc-common.texi gcc-vers.texi
++TEXI_GCCINSTALL_FILES =
+
+-TEXI_CPPINT_FILES = cppinternals.texi gcc-common.texi gcc-vers.texi
++TEXI_CPPINT_FILES =
+
+ # gcc-vers.texi is generated from the version files.
+ gcc-vers.texi: $(BASEVER) $(DEVPHASE)
+@@ -4107,7 +4091,7 @@
+
+ generated-manpages: man
+
+-man: $(MANFILES) lang.man @GENINSRC@ srcman lang.srcman
++man:
+
+ srcman: $(MANFILES)
+ -cp -p $^ $(srcdir)/doc
diff --git a/toolchain/gcc/patches/4.5.4/gcc.lm32 b/toolchain/gcc/patches/4.5.4/gcc.lm32
new file mode 100644
index 000000000..df77ddf83
--- /dev/null
+++ b/toolchain/gcc/patches/4.5.4/gcc.lm32
@@ -0,0 +1,123 @@
+diff -Nur gcc-4.5.4.orig/gcc/config/linux.h gcc-4.5.4/gcc/config/linux.h
+--- gcc-4.5.4.orig/gcc/config/linux.h 2009-04-09 17:00:19.000000000 +0200
++++ gcc-4.5.4/gcc/config/linux.h 2019-10-30 05:54:06.757623089 +0100
+@@ -129,9 +129,9 @@
+
+ /* Determine whether the entire c99 runtime
+ is present in the runtime library. */
+-#define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
++#define TARGET_C99_FUNCTIONS 1
+
+ /* Whether we have sincos that follows the GNU extension. */
+-#define TARGET_HAS_SINCOS (OPTION_GLIBC)
++#define TARGET_HAS_SINCOS 1
+
+ #define TARGET_POSIX_IO
+diff -Nur gcc-4.5.4.orig/gcc/config/lm32/uclinux-elf.h gcc-4.5.4/gcc/config/lm32/uclinux-elf.h
+--- gcc-4.5.4.orig/gcc/config/lm32/uclinux-elf.h 2009-11-11 17:43:06.000000000 +0100
++++ gcc-4.5.4/gcc/config/lm32/uclinux-elf.h 2019-10-30 05:19:16.775704264 +0100
+@@ -80,6 +80,3 @@
+ #define LINK_GCC_C_SEQUENCE_SPEC \
+ "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
+
+-#undef CC1_SPEC
+-#define CC1_SPEC "%{G*} %{!fno-PIC:-fPIC}"
+-
+diff -Nur gcc-4.5.4.orig/gcc/config/t-linux gcc-4.5.4/gcc/config/t-linux
+--- gcc-4.5.4.orig/gcc/config/t-linux 2009-04-21 21:03:23.000000000 +0200
++++ gcc-4.5.4/gcc/config/t-linux 2019-10-30 05:19:24.584204609 +0100
+@@ -18,9 +18,9 @@
+ # <http://www.gnu.org/licenses/>.
+
+ # Compile crtbeginS.o and crtendS.o with pic.
+-CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS) -fPIC
++CRTSTUFF_T_CFLAGS_S = $(CRTSTUFF_T_CFLAGS)
+ # Compile libgcc2.a with pic.
+-TARGET_LIBGCC2_CFLAGS = -fPIC
++TARGET_LIBGCC2_CFLAGS =
+
+ # Override t-slibgcc-elf-ver to export some libgcc symbols with
+ # the symbol versions that glibc used.
+diff -Nur gcc-4.5.4.orig/gcc/config.gcc gcc-4.5.4/gcc/config.gcc
+--- gcc-4.5.4.orig/gcc/config.gcc 2012-06-04 11:55:35.000000000 +0200
++++ gcc-4.5.4/gcc/config.gcc 2019-10-30 05:19:24.596205378 +0100
+@@ -1528,7 +1528,7 @@
+ tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp"
+ tmake_file="${tmake_file} t-rtems"
+ ;;
+-lm32-*-uclinux*)
++lm32-*-*linux*)
+ tm_file="dbxelf.h elfos.h ${tm_file} linux.h lm32/uclinux-elf.h"
+ tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp"
+ ;;
+diff -Nur gcc-4.5.4.orig/libgcc/config/lm32/_ashlsi3.S gcc-4.5.4/libgcc/config/lm32/_ashlsi3.S
+--- gcc-4.5.4.orig/libgcc/config/lm32/_ashlsi3.S 2009-11-11 17:43:06.000000000 +0100
++++ gcc-4.5.4/libgcc/config/lm32/_ashlsi3.S 2019-10-30 05:18:56.782423164 +0100
+@@ -30,6 +30,10 @@
+ .global __ashlsi3
+ .type __ashlsi3,@function
+
++ .global __ashlsi3_0
++ .hidden __ashlsi3_0
++ .type __ashlsi3_0,@function
++
+ .align 4
+ __ashlsi3:
+ /* Only use 5 LSBs, as that's all the h/w shifter uses. */
+@@ -111,4 +115,4 @@
+ __ashlsi3_0:
+ ret
+
+-
+\ No newline at end of file
++
+diff -Nur gcc-4.5.4.orig/libgcc/config/lm32/_ashrsi3.S gcc-4.5.4/libgcc/config/lm32/_ashrsi3.S
+--- gcc-4.5.4.orig/libgcc/config/lm32/_ashrsi3.S 2009-11-11 17:43:06.000000000 +0100
++++ gcc-4.5.4/libgcc/config/lm32/_ashrsi3.S 2019-10-30 05:18:56.782423164 +0100
+@@ -27,6 +27,10 @@
+
+ .global __ashrsi3
+ .type __ashrsi3,@function
++
++ .global __ashrsi3_0
++ .hidden __ashrsi3_0
++ .type __ashrsi3_0,@function
+
+ __ashrsi3:
+ /* Only use 5 LSBs, as that's all the h/w shifter uses. */
+@@ -107,4 +111,4 @@
+ sri r1, r1, 1
+ __ashrsi3_0:
+ ret
+-
+\ No newline at end of file
++
+diff -Nur gcc-4.5.4.orig/libgcc/config/lm32/_lshrsi3.S gcc-4.5.4/libgcc/config/lm32/_lshrsi3.S
+--- gcc-4.5.4.orig/libgcc/config/lm32/_lshrsi3.S 2009-11-11 17:43:06.000000000 +0100
++++ gcc-4.5.4/libgcc/config/lm32/_lshrsi3.S 2019-10-30 05:18:56.782423164 +0100
+@@ -28,6 +28,10 @@
+ .global __lshrsi3
+ .type __lshrsi3,@function
+
++ .global __lshrsi3_0
++ .hidden __lshrsi3_0
++ .type __lshrsi3_0,@function
++
+ __lshrsi3:
+ /* Only use 5 LSBs, as that's all the h/w shifter uses. */
+ andi r2, r2, 0x1f
+diff -Nur gcc-4.5.4.orig/libgcc/config.host gcc-4.5.4/libgcc/config.host
+--- gcc-4.5.4.orig/libgcc/config.host 2011-08-24 20:03:50.000000000 +0200
++++ gcc-4.5.4/libgcc/config.host 2019-10-30 05:19:24.600205629 +0100
+@@ -363,9 +363,9 @@
+ extra_parts="crtbegin.o crtend.o crti.o crtn.o"
+ tmake_file="lm32/t-lm32 lm32/t-elf t-softfp"
+ ;;
+-lm32-*-uclinux*)
++lm32-*-*linux*)
+ extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
+- tmake_file="lm32/t-lm32 lm32/t-uclinux t-softfp"
++ tmake_file="lm32/t-lm32 t-softfp"
+ ;;
+ m32r-*-elf*|m32r-*-rtems*)
+ ;;
diff --git a/toolchain/gcc/patches/4.6.4/disable-docs.patch b/toolchain/gcc/patches/4.6.4/disable-docs.patch
new file mode 100644
index 000000000..838ce25e4
--- /dev/null
+++ b/toolchain/gcc/patches/4.6.4/disable-docs.patch
@@ -0,0 +1,78 @@
+diff -Nur gcc-4.6.4.orig/gcc/Makefile.in gcc-4.6.4/gcc/Makefile.in
+--- gcc-4.6.4.orig/gcc/Makefile.in 2013-04-01 10:32:34.000000000 +0200
++++ gcc-4.6.4/gcc/Makefile.in 2019-10-12 10:29:06.957489009 +0200
+@@ -1791,10 +1791,10 @@
+ quickstrap: all
+ cd $(toplevel_builddir) && $(MAKE) all-target-libgcc
+
+-all.internal: start.encap rest.encap doc
++all.internal: start.encap rest.encap
+ # This is what to compile if making a cross-compiler.
+ all.cross: native gcc-cross$(exeext) cpp$(exeext) specs \
+- libgcc-support lang.all.cross doc @GENINSRC@ srcextra
++ libgcc-support lang.all.cross @GENINSRC@ srcextra
+ # This is what must be made before installing GCC and converting libraries.
+ start.encap: native xgcc$(exeext) cpp$(exeext) specs \
+ libgcc-support lang.start.encap @GENINSRC@ srcextra
+@@ -4199,43 +4199,27 @@
+ #
+ # Remake the info files.
+
+-doc: $(BUILD_INFO) $(GENERATED_MANPAGES)
++doc:
+
+-INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \
+- doc/gccinstall.info doc/cppinternals.info
++INFOFILES =
+
+-info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo
++info:
+
+-srcinfo: $(INFOFILES)
+- -cp -p $^ $(srcdir)/doc
++srcinfo:
+
+-TEXI_CPP_FILES = cpp.texi fdl.texi cppenv.texi cppopts.texi \
+- gcc-common.texi gcc-vers.texi
++TEXI_CPP_FILES =
+
+-TEXI_GCC_FILES = gcc.texi gcc-common.texi gcc-vers.texi frontends.texi \
+- standards.texi invoke.texi extend.texi md.texi objc.texi \
+- gcov.texi trouble.texi bugreport.texi service.texi \
+- contribute.texi compat.texi funding.texi gnu.texi gpl_v3.texi \
+- fdl.texi contrib.texi cppenv.texi cppopts.texi \
+- implement-c.texi implement-cxx.texi arm-neon-intrinsics.texi
++TEXI_GCC_FILES =
+
+ # we explicitly use $(srcdir)/doc/tm.texi here to avoid confusion with
+ # the generated tm.texi; the latter might have a more recent timestamp,
+ # but we don't want to rebuild the info files unless the contents of
+ # the *.texi files have changed.
+-TEXI_GCCINT_FILES = gccint.texi gcc-common.texi gcc-vers.texi \
+- contribute.texi makefile.texi configterms.texi options.texi \
+- portability.texi interface.texi passes.texi rtl.texi md.texi \
+- $(srcdir)/doc/tm.texi hostconfig.texi fragments.texi \
+- configfiles.texi collect2.texi headerdirs.texi funding.texi \
+- gnu.texi gpl_v3.texi fdl.texi contrib.texi languages.texi \
+- sourcebuild.texi gty.texi libgcc.texi cfg.texi tree-ssa.texi \
+- loop.texi generic.texi gimple.texi plugins.texi
++TEXI_GCCINT_FILES =
+
+-TEXI_GCCINSTALL_FILES = install.texi install-old.texi fdl.texi \
+- gcc-common.texi gcc-vers.texi
++TEXI_GCCINSTALL_FILES =
+
+-TEXI_CPPINT_FILES = cppinternals.texi gcc-common.texi gcc-vers.texi
++TEXI_CPPINT_FILES =
+
+ # gcc-vers.texi is generated from the version files.
+ gcc-vers.texi: $(BASEVER) $(DEVPHASE)
+@@ -4342,7 +4326,7 @@
+
+ generated-manpages: man
+
+-man: $(MANFILES) lang.man @GENINSRC@ srcman lang.srcman
++man:
+
+ srcman: $(MANFILES)
+ -cp -p $^ $(srcdir)/doc
diff --git a/toolchain/gcc/patches/7.3.0/add-crtreloc.frv b/toolchain/gcc/patches/7.5.0/add-crtreloc.frv
index dce4a0ea0..dce4a0ea0 100644
--- a/toolchain/gcc/patches/7.3.0/add-crtreloc.frv
+++ b/toolchain/gcc/patches/7.5.0/add-crtreloc.frv
diff --git a/toolchain/gcc/patches/7.3.0/c6x-disable-multilib.patch b/toolchain/gcc/patches/7.5.0/c6x-disable-multilib.patch
index 8637b2cd2..8637b2cd2 100644
--- a/toolchain/gcc/patches/7.3.0/c6x-disable-multilib.patch
+++ b/toolchain/gcc/patches/7.5.0/c6x-disable-multilib.patch
diff --git a/toolchain/gcc/patches/7.3.0/disable-split-stack-nothread.patch b/toolchain/gcc/patches/7.5.0/disable-split-stack-nothread.patch
index 0038d7573..0038d7573 100644
--- a/toolchain/gcc/patches/7.3.0/disable-split-stack-nothread.patch
+++ b/toolchain/gcc/patches/7.5.0/disable-split-stack-nothread.patch
diff --git a/toolchain/gcc/patches/7.5.0/ia64-fix-libgcc.patch b/toolchain/gcc/patches/7.5.0/ia64-fix-libgcc.patch
new file mode 100644
index 000000000..f1f3c8d2d
--- /dev/null
+++ b/toolchain/gcc/patches/7.5.0/ia64-fix-libgcc.patch
@@ -0,0 +1,17 @@
+diff -Nur gcc-6.3.0.orig/libgcc/config/ia64/fde-glibc.c gcc-6.3.0/libgcc/config/ia64/fde-glibc.c
+--- gcc-6.3.0.orig/libgcc/config/ia64/fde-glibc.c 2016-01-04 15:30:50.000000000 +0100
++++ gcc-6.3.0/libgcc/config/ia64/fde-glibc.c 2017-03-05 13:07:33.316600613 +0100
+@@ -25,6 +25,8 @@
+ /* Locate the FDE entry for a given address, using glibc ld.so routines
+ to avoid register/deregister calls at DSO load/unload. */
+
++#ifndef inhibit_libc
++
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE 1
+ #endif
+@@ -159,3 +161,4 @@
+
+ return data.ret;
+ }
++#endif
diff --git a/toolchain/gcc/patches/7.3.0/j2.patch b/toolchain/gcc/patches/7.5.0/j2.patch
index aafbe0ea9..aafbe0ea9 100644
--- a/toolchain/gcc/patches/7.3.0/j2.patch
+++ b/toolchain/gcc/patches/7.5.0/j2.patch
diff --git a/toolchain/gcc/patches/7.3.0/m68k-coldfire-pr68467.patch b/toolchain/gcc/patches/7.5.0/m68k-coldfire-pr68467.patch
index 45e9eb0ba..45e9eb0ba 100644
--- a/toolchain/gcc/patches/7.3.0/m68k-coldfire-pr68467.patch
+++ b/toolchain/gcc/patches/7.5.0/m68k-coldfire-pr68467.patch
diff --git a/toolchain/gcc/patches/7.3.0/m68k-musl.patch b/toolchain/gcc/patches/7.5.0/m68k-musl.patch
index a7effec4c..a7effec4c 100644
--- a/toolchain/gcc/patches/7.3.0/m68k-musl.patch
+++ b/toolchain/gcc/patches/7.5.0/m68k-musl.patch
diff --git a/toolchain/gcc/patches/7.3.0/microblaze.patch b/toolchain/gcc/patches/7.5.0/microblaze.patch
index eb6c08492..eb6c08492 100644
--- a/toolchain/gcc/patches/7.3.0/microblaze.patch
+++ b/toolchain/gcc/patches/7.5.0/microblaze.patch
diff --git a/toolchain/gcc/patches/7.3.0/musl-s390x.patch b/toolchain/gcc/patches/7.5.0/musl-s390x.patch
index 1163bdbf4..1163bdbf4 100644
--- a/toolchain/gcc/patches/7.3.0/musl-s390x.patch
+++ b/toolchain/gcc/patches/7.5.0/musl-s390x.patch
diff --git a/toolchain/gcc/patches/7.5.0/nios2-softfp.patch b/toolchain/gcc/patches/7.5.0/nios2-softfp.patch
new file mode 100644
index 000000000..c677c6c2f
--- /dev/null
+++ b/toolchain/gcc/patches/7.5.0/nios2-softfp.patch
@@ -0,0 +1,14 @@
+diff -Nur gcc-6.2.0.orig/libgcc/config.host gcc-6.2.0/libgcc/config.host
+--- gcc-6.2.0.orig/libgcc/config.host 2016-05-17 08:15:52.000000000 +0200
++++ gcc-6.2.0/libgcc/config.host 2016-10-15 14:42:53.971919904 +0200
+@@ -962,6 +962,10 @@
+ ;;
+ esac
+ ;;
++nios2-*-linux-uclibc*)
++ tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc t-softfp-sfdf t-softfp"
++ md_unwind_header=nios2/linux-unwind.h
++ ;;
+ nios2-*-linux*)
+ tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc"
+ md_unwind_header=nios2/linux-unwind.h
diff --git a/toolchain/gcc/patches/8.5.0/add-crtreloc.frv b/toolchain/gcc/patches/8.5.0/add-crtreloc.frv
new file mode 100644
index 000000000..30de24cdc
--- /dev/null
+++ b/toolchain/gcc/patches/8.5.0/add-crtreloc.frv
@@ -0,0 +1,12 @@
+diff -Nur gcc-8.3.0.orig/gcc/config/frv/linux.h gcc-8.3.0/gcc/config/frv/linux.h
+--- gcc-8.3.0.orig/gcc/config/frv/linux.h 2018-01-03 11:03:58.000000000 +0100
++++ gcc-8.3.0/gcc/config/frv/linux.h 2019-10-08 10:52:00.176295821 +0200
+@@ -27,7 +27,7 @@
+
+ #undef STARTFILE_SPEC
+ #define STARTFILE_SPEC \
+- "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} \
++ "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} crtreloc.o%s \
+ crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
+
+ #undef ENDFILE_SPEC
diff --git a/toolchain/gcc/patches/8.5.0/c6x-disable-multilib.patch b/toolchain/gcc/patches/8.5.0/c6x-disable-multilib.patch
new file mode 100644
index 000000000..cbee6f785
--- /dev/null
+++ b/toolchain/gcc/patches/8.5.0/c6x-disable-multilib.patch
@@ -0,0 +1,10 @@
+diff -Nur gcc-8.3.0.orig/gcc/config/c6x/t-c6x-uclinux gcc-8.3.0/gcc/config/c6x/t-c6x-uclinux
+--- gcc-8.3.0.orig/gcc/config/c6x/t-c6x-uclinux 2011-11-02 16:23:48.000000000 +0100
++++ gcc-8.3.0/gcc/config/c6x/t-c6x-uclinux 2019-10-08 07:49:50.255159650 +0200
+@@ -1,3 +1,3 @@
+-MULTILIB_OSDIRNAMES = march.c674x=!c674x
+-MULTILIB_OSDIRNAMES += mbig-endian=!be
+-MULTILIB_OSDIRNAMES += mbig-endian/march.c674x=!be/c674x
++MULTILIB_OSDIRNAMES =
++#MULTILIB_OSDIRNAMES += mbig-endian=!be
++#MULTILIB_OSDIRNAMES += mbig-endian/march.c674x=!be/c674x
diff --git a/toolchain/gcc/patches/8.5.0/ia64-fix-libgcc.patch b/toolchain/gcc/patches/8.5.0/ia64-fix-libgcc.patch
new file mode 100644
index 000000000..f1f3c8d2d
--- /dev/null
+++ b/toolchain/gcc/patches/8.5.0/ia64-fix-libgcc.patch
@@ -0,0 +1,17 @@
+diff -Nur gcc-6.3.0.orig/libgcc/config/ia64/fde-glibc.c gcc-6.3.0/libgcc/config/ia64/fde-glibc.c
+--- gcc-6.3.0.orig/libgcc/config/ia64/fde-glibc.c 2016-01-04 15:30:50.000000000 +0100
++++ gcc-6.3.0/libgcc/config/ia64/fde-glibc.c 2017-03-05 13:07:33.316600613 +0100
+@@ -25,6 +25,8 @@
+ /* Locate the FDE entry for a given address, using glibc ld.so routines
+ to avoid register/deregister calls at DSO load/unload. */
+
++#ifndef inhibit_libc
++
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE 1
+ #endif
+@@ -159,3 +161,4 @@
+
+ return data.ret;
+ }
++#endif
diff --git a/toolchain/gcc/patches/8.5.0/j2.patch b/toolchain/gcc/patches/8.5.0/j2.patch
new file mode 100644
index 000000000..aafbe0ea9
--- /dev/null
+++ b/toolchain/gcc/patches/8.5.0/j2.patch
@@ -0,0 +1,343 @@
+diff -Nur gcc-7.3.0.orig/gcc/config/sh/sh-protos.h gcc-7.3.0/gcc/config/sh/sh-protos.h
+--- gcc-7.3.0.orig/gcc/config/sh/sh-protos.h 2017-01-01 13:07:43.000000000 +0100
++++ gcc-7.3.0/gcc/config/sh/sh-protos.h 2018-06-03 02:20:50.000000000 +0200
+@@ -35,6 +35,9 @@
+ SFUNC_STATIC
+ };
+
++#define TARGET_ATOMIC_HARD_CAS \
++ (selected_atomic_model ().type == sh_atomic_model::hard_cas)
++
+ #ifdef RTX_CODE
+ extern rtx sh_fsca_sf2int (void);
+ extern rtx sh_fsca_int2sf (void);
+diff -Nur gcc-7.3.0.orig/gcc/config/sh/sh.c gcc-7.3.0/gcc/config/sh/sh.c
+--- gcc-7.3.0.orig/gcc/config/sh/sh.c 2017-04-04 00:30:56.000000000 +0200
++++ gcc-7.3.0/gcc/config/sh/sh.c 2018-06-03 02:20:50.000000000 +0200
+@@ -662,6 +662,7 @@
+ model_names[sh_atomic_model::hard_llcs] = "hard-llcs";
+ model_names[sh_atomic_model::soft_tcb] = "soft-tcb";
+ model_names[sh_atomic_model::soft_imask] = "soft-imask";
++ model_names[sh_atomic_model::hard_cas] = "hard-cas";
+
+ const char* model_cdef_names[sh_atomic_model::num_models];
+ model_cdef_names[sh_atomic_model::none] = "NONE";
+@@ -669,6 +670,7 @@
+ model_cdef_names[sh_atomic_model::hard_llcs] = "HARD_LLCS";
+ model_cdef_names[sh_atomic_model::soft_tcb] = "SOFT_TCB";
+ model_cdef_names[sh_atomic_model::soft_imask] = "SOFT_IMASK";
++ model_cdef_names[sh_atomic_model::hard_cas] = "HARD_CAS";
+
+ sh_atomic_model ret;
+ ret.type = sh_atomic_model::none;
+@@ -747,6 +749,9 @@
+ if (ret.type == sh_atomic_model::soft_imask && TARGET_USERMODE)
+ err_ret ("cannot use atomic model %s in user mode", ret.name);
+
++ if (ret.type == sh_atomic_model::hard_cas && !TARGET_SHJ2)
++ err_ret ("atomic model %s is only available J2 targets", ret.name);
++
+ return ret;
+
+ #undef err_ret
+@@ -803,6 +808,8 @@
+ sh_cpu = PROCESSOR_SH2E;
+ if (TARGET_SH2A)
+ sh_cpu = PROCESSOR_SH2A;
++ if (TARGET_SHJ2)
++ sh_cpu = PROCESSOR_SHJ2;
+ if (TARGET_SH3)
+ sh_cpu = PROCESSOR_SH3;
+ if (TARGET_SH3E)
+diff -Nur gcc-7.3.0.orig/gcc/config/sh/sh.h gcc-7.3.0/gcc/config/sh/sh.h
+--- gcc-7.3.0.orig/gcc/config/sh/sh.h 2017-01-01 13:07:43.000000000 +0100
++++ gcc-7.3.0/gcc/config/sh/sh.h 2018-06-03 02:20:50.000000000 +0200
+@@ -83,6 +83,7 @@
+ #define SUPPORT_SH4_SINGLE 1
+ #define SUPPORT_SH2A 1
+ #define SUPPORT_SH2A_SINGLE 1
++#define SUPPORT_SHJ2 1
+ #endif
+
+ #define TARGET_DIVIDE_CALL_DIV1 (sh_div_strategy == SH_DIV_CALL_DIV1)
+@@ -115,6 +116,7 @@
+ #define SELECT_SH4A_SINGLE_ONLY (MASK_SH4A | SELECT_SH4_SINGLE_ONLY)
+ #define SELECT_SH4A (MASK_SH4A | SELECT_SH4)
+ #define SELECT_SH4A_SINGLE (MASK_SH4A | SELECT_SH4_SINGLE)
++#define SELECT_SHJ2 (MASK_SHJ2 | SELECT_SH2)
+
+ #if SUPPORT_SH1
+ #define SUPPORT_SH2 1
+@@ -122,6 +124,7 @@
+ #if SUPPORT_SH2
+ #define SUPPORT_SH3 1
+ #define SUPPORT_SH2A_NOFPU 1
++#define SUPPORT_SHJ2 1
+ #endif
+ #if SUPPORT_SH3
+ #define SUPPORT_SH4_NOFPU 1
+@@ -154,7 +157,7 @@
+ #define MASK_ARCH (MASK_SH1 | MASK_SH2 | MASK_SH3 | MASK_SH_E | MASK_SH4 \
+ | MASK_HARD_SH2A | MASK_HARD_SH2A_DOUBLE | MASK_SH4A \
+ | MASK_HARD_SH4 | MASK_FPU_SINGLE \
+- | MASK_FPU_SINGLE_ONLY)
++ | MASK_FPU_SINGLE_ONLY | MASK_SHJ2)
+
+ /* This defaults us to big-endian. */
+ #ifndef TARGET_ENDIAN_DEFAULT
+@@ -229,7 +232,8 @@
+ %{m2a-single:--isa=sh2a} \
+ %{m2a-single-only:--isa=sh2a} \
+ %{m2a-nofpu:--isa=sh2a-nofpu} \
+-%{m4al:-dsp}"
++%{m4al:-dsp} \
++%{mj2:-isa=j2}"
+
+ #define ASM_SPEC SH_ASM_SPEC
+
+@@ -345,6 +349,7 @@
+ hard_llcs,
+ soft_tcb,
+ soft_imask,
++ hard_cas,
+
+ num_models
+ };
+@@ -1568,7 +1573,7 @@
+
+ /* Nonzero if the target supports dynamic shift instructions
+ like shad and shld. */
+-#define TARGET_DYNSHIFT (TARGET_SH3 || TARGET_SH2A)
++#define TARGET_DYNSHIFT (TARGET_SH3 || TARGET_SH2A || TARGET_SHJ2)
+
+ /* The cost of using the dynamic shift insns (shad, shld) are the same
+ if they are available. If they are not available a library function will
+@@ -1833,6 +1838,7 @@
+ PROCESSOR_SH2,
+ PROCESSOR_SH2E,
+ PROCESSOR_SH2A,
++ PROCESSOR_SHJ2,
+ PROCESSOR_SH3,
+ PROCESSOR_SH3E,
+ PROCESSOR_SH4,
+diff -Nur gcc-7.3.0.orig/gcc/config/sh/sh.opt gcc-7.3.0/gcc/config/sh/sh.opt
+--- gcc-7.3.0.orig/gcc/config/sh/sh.opt 2017-01-01 13:07:43.000000000 +0100
++++ gcc-7.3.0/gcc/config/sh/sh.opt 2018-06-03 02:20:50.000000000 +0200
+@@ -65,6 +65,10 @@
+ Target RejectNegative Condition(SUPPORT_SH2E)
+ Generate SH2e code.
+
++mj2
++Target RejectNegative Mask(SHJ2) Condition(SUPPORT_SHJ2)
++Generate J2 code.
++
+ m3
+ Target RejectNegative Mask(SH3) Condition(SUPPORT_SH3)
+ Generate SH3 code.
+diff -Nur gcc-7.3.0.orig/gcc/config/sh/sync.md gcc-7.3.0/gcc/config/sh/sync.md
+--- gcc-7.3.0.orig/gcc/config/sh/sync.md 2017-01-01 13:07:43.000000000 +0100
++++ gcc-7.3.0/gcc/config/sh/sync.md 2018-06-03 02:20:50.000000000 +0200
+@@ -240,6 +240,9 @@
+ || (TARGET_SH4A && <MODE>mode == SImode && !TARGET_ATOMIC_STRICT))
+ atomic_insn = gen_atomic_compare_and_swap<mode>_hard (old_val, mem,
+ exp_val, new_val);
++ else if (TARGET_ATOMIC_HARD_CAS && <MODE>mode == SImode)
++ atomic_insn = gen_atomic_compare_and_swap<mode>_cas (old_val, mem,
++ exp_val, new_val);
+ else if (TARGET_ATOMIC_SOFT_GUSA)
+ atomic_insn = gen_atomic_compare_and_swap<mode>_soft_gusa (old_val, mem,
+ exp_val, new_val);
+@@ -306,6 +309,57 @@
+ }
+ [(set_attr "length" "14")])
+
++(define_expand "atomic_compare_and_swapsi_cas"
++ [(set (match_operand:SI 0 "register_operand" "=r")
++ (unspec_volatile:SI
++ [(match_operand:SI 1 "atomic_mem_operand_0" "=Sra")
++ (match_operand:SI 2 "register_operand" "r")
++ (match_operand:SI 3 "register_operand" "r")]
++ UNSPECV_CMPXCHG_1))]
++ "TARGET_ATOMIC_HARD_CAS"
++{
++ rtx mem = gen_rtx_REG (SImode, 0);
++ emit_move_insn (mem, force_reg (SImode, XEXP (operands[1], 0)));
++ emit_insn (gen_shj2_cas (operands[0], mem, operands[2], operands[3]));
++ DONE;
++})
++
++(define_insn "shj2_cas"
++ [(set (match_operand:SI 0 "register_operand" "=&r")
++ (unspec_volatile:SI
++ [(match_operand:SI 1 "register_operand" "=r")
++ (match_operand:SI 2 "register_operand" "r")
++ (match_operand:SI 3 "register_operand" "0")]
++ UNSPECV_CMPXCHG_1))
++ (set (reg:SI T_REG)
++ (unspec_volatile:SI [(const_int 0)] UNSPECV_CMPXCHG_3))]
++ "TARGET_ATOMIC_HARD_CAS"
++ "cas.l %2,%0,@%1"
++ [(set_attr "length" "2")]
++)
++
++(define_expand "atomic_compare_and_swapqi_cas"
++ [(set (match_operand:SI 0 "arith_reg_dest" "=&r")
++ (unspec_volatile:SI
++ [(match_operand:SI 1 "atomic_mem_operand_0" "=Sra")
++ (match_operand:SI 2 "arith_operand" "rI08")
++ (match_operand:SI 3 "arith_operand" "rI08")]
++ UNSPECV_CMPXCHG_1))]
++ "TARGET_ATOMIC_HARD_CAS"
++{FAIL;}
++)
++
++(define_expand "atomic_compare_and_swaphi_cas"
++ [(set (match_operand:SI 0 "arith_reg_dest" "=&r")
++ (unspec_volatile:SI
++ [(match_operand:SI 1 "atomic_mem_operand_0" "=Sra")
++ (match_operand:SI 2 "arith_operand" "rI08")
++ (match_operand:SI 3 "arith_operand" "rI08")]
++ UNSPECV_CMPXCHG_1))]
++ "TARGET_ATOMIC_HARD_CAS"
++{FAIL;}
++)
++
+ ;; The QIHImode llcs patterns modify the address register of the memory
+ ;; operand. In order to express that, we have to open code the memory
+ ;; operand. Initially the insn is expanded like every other atomic insn
+diff -Nur gcc-7.3.0.orig/gcc/config/sh/t-sh gcc-7.3.0/gcc/config/sh/t-sh
+--- gcc-7.3.0.orig/gcc/config/sh/t-sh 2017-01-01 13:07:43.000000000 +0100
++++ gcc-7.3.0/gcc/config/sh/t-sh 2018-06-03 02:20:50.000000000 +0200
+@@ -50,7 +50,8 @@
+ m2e,m3e,m4-single-only,m4-100-single-only,m4-200-single-only,m4-300-single-only,m4a-single-only \
+ m2a-single,m2a-single-only \
+ m4-single,m4-100-single,m4-200-single,m4-300-single,m4a-single \
+- m4,m4-100,m4-200,m4-300,m4a; do \
++ m4,m4-100,m4-200,m4-300,m4a \
++ mj2; do \
+ subst= ; \
+ for lib in `echo $$abi|tr , ' '` ; do \
+ if test "`echo $$multilibs|sed s/$$lib//`" != "$$multilibs"; then \
+@@ -63,9 +64,9 @@
+
+ # SH1 and SH2A support big endian only.
+ ifeq ($(DEFAULT_ENDIAN),ml)
+-MULTILIB_EXCEPTIONS = m1 ml/m1 m2a* ml/m2a* $(TM_MULTILIB_EXCEPTIONS_CONFIG)
++MULTILIB_EXCEPTIONS = m1 ml/m1 m2a* ml/m2a* ml/mj2 $(TM_MULTILIB_EXCEPTIONS_CONFIG)
+ else
+-MULTILIB_EXCEPTIONS = ml/m1 ml/m2a* $(TM_MULTILIB_EXCEPTIONS_CONFIG)
++MULTILIB_EXCEPTIONS = ml/m1 ml/m2a* ml/mj2 $(TM_MULTILIB_EXCEPTIONS_CONFIG)
+ endif
+
+ MULTILIB_OSDIRNAMES = \
+@@ -87,7 +88,8 @@
+ m4a-single-only=!m4a-single-only $(OTHER_ENDIAN)/m4a-single-only=!$(OTHER_ENDIAN)/m4a-single-only \
+ m4a-single=!m4a-single $(OTHER_ENDIAN)/m4a-single=!$(OTHER_ENDIAN)/m4a-single \
+ m4a=!m4a $(OTHER_ENDIAN)/m4a=!$(OTHER_ENDIAN)/m4a \
+- m4al=!m4al $(OTHER_ENDIAN)/m4al=!$(OTHER_ENDIAN)/m4al
++ m4al=!m4al $(OTHER_ENDIAN)/m4al=!$(OTHER_ENDIAN)/m4al \
++ mj2=!j2
+
+ $(out_object_file): gt-sh.h
+ gt-sh.h : s-gtype ; @true
+diff -Nur gcc-7.3.0.orig/gcc/config.gcc gcc-7.3.0/gcc/config.gcc
+--- gcc-7.3.0.orig/gcc/config.gcc 2018-01-08 14:39:11.000000000 +0100
++++ gcc-7.3.0/gcc/config.gcc 2018-06-03 02:20:50.000000000 +0200
+@@ -474,7 +474,7 @@
+ extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
+ ;;
+ # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
+-sh[123456789lbe]*-*-* | sh-*-*)
++sh[123456789lbej]*-*-* | sh-*-*)
+ cpu_type=sh
+ extra_options="${extra_options} fused-madd.opt"
+ extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
+@@ -2664,18 +2664,18 @@
+ extra_options="${extra_options} s390/tpf.opt"
+ tmake_file="${tmake_file} s390/t-s390"
+ ;;
+-sh-*-elf* | sh[12346l]*-*-elf* | \
+- sh-*-linux* | sh[2346lbe]*-*-linux* | \
++sh-*-elf* | sh[12346lj]*-*-elf* | \
++ sh-*-linux* | sh[2346lbej]*-*-linux* | \
+ sh-*-netbsdelf* | shl*-*-netbsdelf*)
+ tmake_file="${tmake_file} sh/t-sh sh/t-elf"
+ if test x${with_endian} = x; then
+ case ${target} in
+- sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
++ sh[j1234]*be-*-* | sh[n1234]*eb-*-*) with_endian=big ;;
+ shbe-*-* | sheb-*-*) with_endian=big,little ;;
+ sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
+ shl* | sh*-*-linux* | \
+ sh-superh-elf) with_endian=little,big ;;
+- sh[1234]*-*-*) with_endian=big ;;
++ sh[j1234]*-*-*) with_endian=big ;;
+ *) with_endian=big,little ;;
+ esac
+ fi
+@@ -2742,6 +2742,7 @@
+ sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
+ sh2a*) sh_cpu_target=sh2a ;;
+ sh2e*) sh_cpu_target=sh2e ;;
++ shj2*) sh_cpu_target=shj2;;
+ sh2*) sh_cpu_target=sh2 ;;
+ *) sh_cpu_target=sh1 ;;
+ esac
+@@ -2763,7 +2764,7 @@
+ sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
+ sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
+ sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
+- sh3e | sh3 | sh2e | sh2 | sh1) ;;
++ sh3e | sh3 | sh2e | sh2 | sh1 | shj2) ;;
+ "") sh_cpu_default=${sh_cpu_target} ;;
+ *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
+ esac
+@@ -2772,9 +2773,9 @@
+ case ${target} in
+ sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
+ sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
+- sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
++ sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4,mj2 ;;
+ sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
+- *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
++ *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single,mj2 ;;
+ esac
+ if test x$with_fp = xno; then
+ sh_multilibs="`echo $sh_multilibs|sed -e s/m4/sh4-nofpu/ -e s/,m4-[^,]*//g -e s/,m[23]e// -e s/m2a,m2a-single/m2a-nofpu/ -e s/m5-..m....,//g`"
+@@ -2789,7 +2790,8 @@
+ m1 | m2 | m2e | m3 | m3e | \
+ m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
+ m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
+- m2a | m2a-single | m2a-single-only | m2a-nofpu)
++ m2a | m2a-single | m2a-single-only | m2a-nofpu | \
++ mj2)
+ # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
+ # It is passed to MULTIILIB_OPTIONS verbatim.
+ TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
+@@ -2806,7 +2808,7 @@
+ done
+ TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
+ if test x${enable_incomplete_targets} = xyes ; then
+- tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1"
++ tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1 SUPPORT_SHJ2=1"
+ fi
+ tm_file="$tm_file ./sysroot-suffix.h"
+ tmake_file="$tmake_file t-sysroot-suffix"
+@@ -4380,6 +4382,8 @@
+ ;;
+ m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
+ ;;
++ mj2)
++ ;;
+ *)
+ echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
+ echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
+@@ -4589,7 +4593,7 @@
+ tmake_file="rs6000/t-rs6000 ${tmake_file}"
+ ;;
+
+- sh[123456ble]*-*-* | sh-*-*)
++ sh[123456blej]*-*-* | sh-*-*)
+ c_target_objs="${c_target_objs} sh-c.o"
+ cxx_target_objs="${cxx_target_objs} sh-c.o"
+ ;;
diff --git a/toolchain/gcc/patches/8.5.0/m68k-musl.patch b/toolchain/gcc/patches/8.5.0/m68k-musl.patch
new file mode 100644
index 000000000..a7effec4c
--- /dev/null
+++ b/toolchain/gcc/patches/8.5.0/m68k-musl.patch
@@ -0,0 +1,25 @@
+diff -Nur gcc-7.3.0.orig/gcc/config/m68k/linux.h gcc-7.3.0/gcc/config/m68k/linux.h
+--- gcc-7.3.0.orig/gcc/config/m68k/linux.h 2017-01-06 22:21:02.000000000 +0100
++++ gcc-7.3.0/gcc/config/m68k/linux.h 2018-10-05 06:38:51.000000000 +0200
+@@ -73,6 +73,9 @@
+
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
+
++#undef MUSL_DYNAMIC_LINKER
++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-m68k.so.1"
++
+ #undef LINK_SPEC
+ #define LINK_SPEC "-m m68kelf %{shared} \
+ %{!shared: \
+diff -Nur gcc-7.3.0.orig/libgcc/config/m68k/linux-unwind.h gcc-7.3.0/libgcc/config/m68k/linux-unwind.h
+--- gcc-7.3.0.orig/libgcc/config/m68k/linux-unwind.h 2017-07-04 12:22:56.000000000 +0200
++++ gcc-7.3.0/libgcc/config/m68k/linux-unwind.h 2018-10-05 06:38:51.000000000 +0200
+@@ -37,7 +37,7 @@
+ stack_t uc_stack;
+ mcontext_t uc_mcontext;
+ unsigned long uc_filler[80];
+- __sigset_t uc_sigmask;
++ sigset_t uc_sigmask;
+ };
+
+ #define MD_FALLBACK_FRAME_STATE_FOR m68k_fallback_frame_state
diff --git a/toolchain/gcc/patches/8.5.0/musl-s390x.patch b/toolchain/gcc/patches/8.5.0/musl-s390x.patch
new file mode 100644
index 000000000..1163bdbf4
--- /dev/null
+++ b/toolchain/gcc/patches/8.5.0/musl-s390x.patch
@@ -0,0 +1,13 @@
+diff -Nur gcc-7.2.0.orig/gcc/config/s390/linux.h gcc-7.2.0/gcc/config/s390/linux.h
+--- gcc-7.2.0.orig/gcc/config/s390/linux.h 2017-02-06 11:25:05.513198000 +0100
++++ gcc-7.2.0/gcc/config/s390/linux.h 2017-10-30 13:22:45.348170100 +0100
+@@ -76,6 +76,9 @@
+ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld.so.1"
+ #define GLIBC_DYNAMIC_LINKER64 "/lib/ld64.so.1"
+
++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-s390.so.1"
++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-s390x.so.1"
++
+ #undef LINK_SPEC
+ #define LINK_SPEC \
+ "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
diff --git a/toolchain/gcc/patches/8.5.0/nios2-softfp.patch b/toolchain/gcc/patches/8.5.0/nios2-softfp.patch
new file mode 100644
index 000000000..c677c6c2f
--- /dev/null
+++ b/toolchain/gcc/patches/8.5.0/nios2-softfp.patch
@@ -0,0 +1,14 @@
+diff -Nur gcc-6.2.0.orig/libgcc/config.host gcc-6.2.0/libgcc/config.host
+--- gcc-6.2.0.orig/libgcc/config.host 2016-05-17 08:15:52.000000000 +0200
++++ gcc-6.2.0/libgcc/config.host 2016-10-15 14:42:53.971919904 +0200
+@@ -962,6 +962,10 @@
+ ;;
+ esac
+ ;;
++nios2-*-linux-uclibc*)
++ tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc t-softfp-sfdf t-softfp"
++ md_unwind_header=nios2/linux-unwind.h
++ ;;
+ nios2-*-linux*)
+ tmake_file="$tmake_file nios2/t-nios2 nios2/t-linux t-libgcc-pic t-slibgcc-libgcc"
+ md_unwind_header=nios2/linux-unwind.h
diff --git a/toolchain/gcc/patches/9.4.0/or1k.patch b/toolchain/gcc/patches/9.4.0/or1k.patch
new file mode 100644
index 000000000..8ec5ec956
--- /dev/null
+++ b/toolchain/gcc/patches/9.4.0/or1k.patch
@@ -0,0 +1,61 @@
+diff -Nur gcc-9.2.0.orig/gcc/config/or1k/constraints.md gcc-9.2.0/gcc/config/or1k/constraints.md
+--- gcc-9.2.0.orig/gcc/config/or1k/constraints.md 2019-01-01 13:31:55.000000000 +0100
++++ gcc-9.2.0/gcc/config/or1k/constraints.md 2019-10-07 10:59:48.995389485 +0200
+@@ -32,6 +32,9 @@
+ (define_register_constraint "c" "SIBCALL_REGS"
+ "Registers which can hold a sibling call address")
+
++(define_register_constraint "t" "GOT_REGS"
++ "Registers which can be used to store the Global Offset Table (GOT) address.")
++
+ ;; Immediates
+ (define_constraint "I"
+ "A signed 16-bit immediate in the range -32768 to 32767."
+diff -Nur gcc-9.2.0.orig/gcc/config/or1k/or1k.h gcc-9.2.0/gcc/config/or1k/or1k.h
+--- gcc-9.2.0.orig/gcc/config/or1k/or1k.h 2019-01-01 13:31:55.000000000 +0100
++++ gcc-9.2.0/gcc/config/or1k/or1k.h 2019-10-07 12:14:41.334692831 +0200
+@@ -189,6 +189,7 @@
+ {
+ NO_REGS,
+ SIBCALL_REGS,
++ GOT_REGS,
+ GENERAL_REGS,
+ FLAG_REGS,
+ ALL_REGS,
+@@ -200,6 +201,7 @@
+ #define REG_CLASS_NAMES { \
+ "NO_REGS", \
+ "SIBCALL_REGS", \
++ "GOT_REGS", \
+ "GENERAL_REGS", \
+ "FLAG_REGS", \
+ "ALL_REGS" }
+@@ -212,6 +214,7 @@
+ #define REG_CLASS_CONTENTS \
+ { { 0x00000000, 0x00000000 }, \
+ { SIBCALL_REGS_MASK, 0 }, \
++ { 0xfffffdff, 0x00000000 }, \
+ { 0xffffffff, 0x00000003 }, \
+ { 0x00000000, 0x00000004 }, \
+ { 0xffffffff, 0x00000007 } \
+diff -Nur gcc-9.2.0.orig/gcc/config/or1k/or1k.md gcc-9.2.0/gcc/config/or1k/or1k.md
+--- gcc-9.2.0.orig/gcc/config/or1k/or1k.md 2019-01-01 13:31:55.000000000 +0100
++++ gcc-9.2.0/gcc/config/or1k/or1k.md 2019-10-07 10:59:48.999389485 +0200
+@@ -595,7 +595,7 @@
+ ;; set_got pattern below. This works because the set_got_tmp insn is the
+ ;; first insn in the stream and that it isn't moved during RA.
+ (define_insn "set_got_tmp"
+- [(set (match_operand:SI 0 "register_operand" "=r")
++ [(set (match_operand:SI 0 "register_operand" "=t")
+ (unspec_volatile:SI [(const_int 0)] UNSPECV_SET_GOT))]
+ ""
+ {
+@@ -604,7 +604,7 @@
+
+ ;; The insn to initialize the GOT.
+ (define_insn "set_got"
+- [(set (match_operand:SI 0 "register_operand" "=r")
++ [(set (match_operand:SI 0 "register_operand" "=t")
+ (unspec:SI [(const_int 0)] UNSPEC_SET_GOT))
+ (clobber (reg:SI LR_REGNUM))]
+ ""
diff --git a/toolchain/gcc/patches/gcc-6-branch-csky/gcc7.patch b/toolchain/gcc/patches/gcc-6-branch-csky/gcc7.patch
deleted file mode 100644
index 4bffd2bb1..000000000
--- a/toolchain/gcc/patches/gcc-6-branch-csky/gcc7.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur gcc-gcc-6-branch-csky.orig/gcc/ubsan.c gcc-gcc-6-branch-csky/gcc/ubsan.c
---- gcc-gcc-6-branch-csky.orig/gcc/ubsan.c 2018-03-10 14:10:55.000000000 +0100
-+++ gcc-gcc-6-branch-csky/gcc/ubsan.c 2018-03-10 21:16:06.358370414 +0100
-@@ -1471,7 +1471,7 @@
-
- expanded_location xloc = expand_location (loc);
- if (xloc.file == NULL || strncmp (xloc.file, "\1", 2) == 0
-- || xloc.file == '\0' || xloc.file[0] == '\xff'
-+ || xloc.file[0] == '\0' || xloc.file[0] == '\xff'
- || xloc.file[1] == '\xff')
- return false;
-
diff --git a/toolchain/gdb/Makefile b/toolchain/gdb/Makefile
index f2cd417fe..5f46cb926 100644
--- a/toolchain/gdb/Makefile
+++ b/toolchain/gdb/Makefile
@@ -29,6 +29,7 @@ $(WRKBUILD)/.configured:
--build=$(GNU_HOST_NAME) \
--host=$(GNU_HOST_NAME) \
--target=$(GNU_TARGET_NAME) \
+ --with-libgmp-prefix='${STAGING_HOST_DIR}/usr' \
--disable-dependency-tracking \
--without-uiout \
--enable-gdbmi \
diff --git a/toolchain/gdb/Makefile.inc b/toolchain/gdb/Makefile.inc
index 54d8f6202..c38242eef 100644
--- a/toolchain/gdb/Makefile.inc
+++ b/toolchain/gdb/Makefile.inc
@@ -2,12 +2,26 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= gdb
-ifeq ($(ADK_TOOLCHAIN_GDB_8_2),y)
-PKG_VERSION:= 8.2.1
+ifeq ($(ADK_TOOLCHAIN_GDB_14_2),y)
+PKG_VERSION:= 14.2
PKG_RELEASE:= 1
-PKG_HASH:= 0a6a432907a03c5c8eaad3c3cffd50c00a40c3a5e3c4039440624bae703f2202
+PKG_HASH:= 2de5174762e959a5e529e20c20d88a04735469d8fffd98f61664e70b341dc47c
PKG_SITES:= ${MASTER_SITE_GNU:=gdb/}
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+endif
+ifeq ($(ADK_TOOLCHAIN_GDB_13_2),y)
+PKG_VERSION:= 13.2
+PKG_RELEASE:= 1
+PKG_HASH:= 7ead13d9e19fa0c57bb19104e1a5f67eefa9fc79f2e6360de491e8fddeda1e30
+PKG_SITES:= ${MASTER_SITE_GNU:=gdb/}
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
+endif
+ifeq ($(ADK_TOOLCHAIN_GDB_12_1),y)
+PKG_VERSION:= 12.1
+PKG_RELEASE:= 1
+PKG_HASH:= 87296a3a9727356b56712c793704082d5df0ff36a34ca9ec9734fc9a8bdfdaab
+PKG_SITES:= ${MASTER_SITE_GNU:=gdb/}
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
ifeq ($(ADK_TOOLCHAIN_GDB_6_7_1),y)
PKG_VERSION:= 6.7.1
@@ -22,18 +36,11 @@ PKG_VERSION:= ysato-h8300
PKG_RELEASE:= 1
PKG_GIT:= branch
PKG_SITES:= git://git.pf.osdn.jp/gitroot/y/ys/ysato/binutils_gdb.git
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
-endif
-ifeq ($(ADK_TOOLCHAIN_GDB_RISCV_GIT),y)
-PKG_VERSION:= riscv-gdb-8.1
-PKG_RELEASE:= 1
-PKG_GIT:= branch
-PKG_SITES:= https://github.com/riscv/riscv-binutils-gdb.git
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
ifeq ($(ADK_TOOLCHAIN_GDB_GIT),y)
PKG_VERSION:= git
PKG_RELEASE:= 1
PKG_SITES:= git://sourceware.org/git/binutils-gdb.git
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
diff --git a/toolchain/glibc/Makefile b/toolchain/glibc/Makefile
index 684da9b78..ecd6f8d2b 100644
--- a/toolchain/glibc/Makefile
+++ b/toolchain/glibc/Makefile
@@ -6,12 +6,13 @@ include ../rules.mk
include Makefile.inc
include ${ADK_TOPDIR}/mk/buildhlp.mk
-# glibc does not compile with Os and CPU specific FLAGS for m68k/x86_64
-ifeq ($(ADK_TARGET_ARCH_X86_64)$(ADK_TARGET_ARCH_M68K),y)
+# glibc does not boot with Os and CPU specific FLAGS for nios2
+ifeq ($(ADK_TARGET_ARCH_NIOS2),y)
TARGET_CFLAGS:= -O2
TARGET_CXXFLAGS:= -O2
endif
+# glibc does not compile with NEON suggested CFLAGS/CXXFLAGS
TARGET_CFLAGS:= $(filter-out -ffast-math,$(TARGET_CFLAGS))
TARGET_CXXFLAGS:= $(filter-out -ffast-math,$(TARGET_CXXFLAGS))
@@ -40,6 +41,13 @@ GLIBC_ENV:= PATH='${HOST_PATH}:${TARGET_PATH}' \
libc_cv_gnu99_inline=yes \
libc_cv_initfini_array=yes
+ifeq ($(ADK_TARGET_ARCH_RISCV64),y)
+GLIBC_ENV+= libc_cv_slibdir=/lib libc_cv_rtlddir=/lib
+endif
+ifeq ($(ADK_TARGET_ARCH_RISCV32),y)
+GLIBC_ENV+= libc_cv_slibdir=/lib libc_cv_rtlddir=/lib
+endif
+
GLIBC_MAKEOPTS+= cross-compiling=yes
ifeq (${ADK_MAKE_PARALLEL},y)
GLIBC_MAKEOPTS+= PARALLELMFLAGS="-j$(ADK_MAKE_JOBS)"
diff --git a/toolchain/glibc/Makefile.inc b/toolchain/glibc/Makefile.inc
index 5733f7956..0cd8f4987 100644
--- a/toolchain/glibc/Makefile.inc
+++ b/toolchain/glibc/Makefile.inc
@@ -3,23 +3,16 @@
PKG_NAME:= glibc
ifeq ($(ADK_LIBC_VERSION),git)
-PKG_VERSION:= 2.28.90
-PKG_GLIBCVER:= 2.28.9000
-PKG_SITES:= git://sourceware.org/git/glibc.git
+PKG_VERSION:= 2.39.90
+PKG_GLIBCVER:= 2.39.9000
+PKG_SITES:= https://sourceware.org/git/glibc.git
PKG_RELEASE:= 1
endif
-ifeq ($(ADK_TARGET_LIB_GLIBC_2_28),y)
-PKG_VERSION:= 2.28
-PKG_GLIBCVER:= 2.28
+ifeq ($(ADK_TARGET_LIB_GLIBC_2_39),y)
+PKG_VERSION:= 2.39
+PKG_GLIBCVER:= 2.39
PKG_RELEASE:= 1
PKG_SITES:= ${MASTER_SITE_GNU:=glibc/}
-PKG_HASH:= b1900051afad76f7a4f73e71413df4826dce085ef8ddb785a945b66d7d513082
-endif
-ifeq ($(ADK_TARGET_LIB_GLIBC_CSKY),y)
-PKG_VERSION:= master
-PKG_GLIBCVER:= 2.25
-PKG_GIT:= branch
-PKG_SITES:= https://github.com/c-sky/glibc.git
-PKG_RELEASE:= 1
+PKG_HASH:= f77bd47cf8170c57365ae7bf86696c118adb3b120d3259c64c502d3dc1e2d926
endif
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.xz
diff --git a/toolchain/glibc/patches/2.26/0001-Do-not-use-__builtin_types_compatible_p-in-C-mode-bu.patch b/toolchain/glibc/patches/2.26/0001-Do-not-use-__builtin_types_compatible_p-in-C-mode-bu.patch
deleted file mode 100644
index 27a785e31..000000000
--- a/toolchain/glibc/patches/2.26/0001-Do-not-use-__builtin_types_compatible_p-in-C-mode-bu.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From f7439f9b1089e17b6721f28e228682831a2f0135 Mon Sep 17 00:00:00 2001
-From: "Gabriel F. T. Gomes" <gftg@linux.vnet.ibm.com>
-Date: Mon, 21 Aug 2017 14:23:27 +0200
-Subject: [PATCH] Do not use __builtin_types_compatible_p in C++ mode (bug
- 21930)
-
-The logic to define isinf for float128 depends on the availability of
-__builtin_types_compatible_p, which is only available in C mode,
-however, the conditionals do not check for C or C++ mode. This lead to
-an error in libstdc++ configure, as reported by bug 21930.
-
-This patch adds a conditional for C mode in the definition of isinf for
-float128. No definition is provided in C++ mode, since libstdc++
-headers undefine isinf.
-
-Tested for powerpc64le (glibc test suite and libstdc++-v3 configure).
-
- [BZ #21930]
- * math/math.h (isinf): Check if in C or C++ mode before using
- __builtin_types_compatible_p, since this is a C mode feature.
-
-(cherry picked from commit 47a67213a9f51c5f8816d240500b10db605d8b77)
-[Romain rebase on glibc 2.26]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
----
- math/math.h | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/math/math.h b/math/math.h
-index e217080..dea8dbe 100644
---- a/math/math.h
-+++ b/math/math.h
-@@ -442,8 +442,12 @@ enum
-
- /* Return nonzero value if X is positive or negative infinity. */
- # if __HAVE_DISTINCT_FLOAT128 && !__GNUC_PREREQ (7,0) \
-- && !defined __SUPPORT_SNAN__
-- /* __builtin_isinf_sign is broken for float128 only before GCC 7.0. */
-+ && !defined __SUPPORT_SNAN__ && !defined __cplusplus
-+ /* Since __builtin_isinf_sign is broken for float128 before GCC 7.0,
-+ use the helper function, __isinff128, with older compilers. This is
-+ only provided for C mode, because in C++ mode, GCC has no support
-+ for __builtin_types_compatible_p (and when in C++ mode, this macro is
-+ not used anyway, because libstdc++ headers undefine it). */
- # define isinf(x) \
- (__builtin_types_compatible_p (__typeof (x), _Float128) \
- ? __isinff128 (x) : __builtin_isinf_sign (x))
---
-2.9.5
-
diff --git a/toolchain/glibc/patches/2.26/0002-Do-not-use-generic-selection-in-C-mode.patch b/toolchain/glibc/patches/2.26/0002-Do-not-use-generic-selection-in-C-mode.patch
deleted file mode 100644
index 7321eebd6..000000000
--- a/toolchain/glibc/patches/2.26/0002-Do-not-use-generic-selection-in-C-mode.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From bb21afc362a3ecba07ab386a0bc4385e75fbd4b5 Mon Sep 17 00:00:00 2001
-From: "Gabriel F. T. Gomes" <gftg@linux.vnet.ibm.com>
-Date: Mon, 14 Aug 2017 17:51:51 -0300
-Subject: [PATCH] Do not use generic selection in C++ mode
-
-The logic to protect the use of generic selection (_Generic) does not
-check for C or C++ mode, however, generic selection is a C-only
-feature.
-
-Tested for powerpc64le.
-
- * misc/sys/cdefs.h (__HAVE_GENERIC_SELECTION): Define to 0, if
- in C++ mode.
-
-(cherry picked from commit 6913ad65e00bb32417ad39c41d292b976171e27e)
-[Romain rebase on glibc 2.26]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
----
- misc/sys/cdefs.h | 19 ++++++++++---------
- 1 file changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
-index 06523bf..0c80821 100644
---- a/misc/sys/cdefs.h
-+++ b/misc/sys/cdefs.h
-@@ -464,17 +464,18 @@
- # define __glibc_macro_warning(msg)
- #endif
-
--/* Support for generic selection (ISO C11) is available in GCC since
-- version 4.9. Previous versions do not provide generic selection,
-- even though they might set __STDC_VERSION__ to 201112L, when in
-- -std=c11 mode. Thus, we must check for !defined __GNUC__ when
-- testing __STDC_VERSION__ for generic selection support.
-+/* Generic selection (ISO C11) is a C-only feature, available in GCC
-+ since version 4.9. Previous versions do not provide generic
-+ selection, even though they might set __STDC_VERSION__ to 201112L,
-+ when in -std=c11 mode. Thus, we must check for !defined __GNUC__
-+ when testing __STDC_VERSION__ for generic selection support.
- On the other hand, Clang also defines __GNUC__, so a clang-specific
- check is required to enable the use of generic selection. */
--#if __GNUC_PREREQ (4, 9) \
-- || __glibc_clang_has_extension (c_generic_selections) \
-- || (!defined __GNUC__ && defined __STDC_VERSION__ \
-- && __STDC_VERSION__ >= 201112L)
-+#if !defined __cplusplus \
-+ && (__GNUC_PREREQ (4, 9) \
-+ || __glibc_clang_has_extension (c_generic_selections) \
-+ || (!defined __GNUC__ && defined __STDC_VERSION__ \
-+ && __STDC_VERSION__ >= 201112L))
- # define __HAVE_GENERIC_SELECTION 1
- #else
- # define __HAVE_GENERIC_SELECTION 0
---
-2.9.5
-
diff --git a/toolchain/glibc/patches/2.26/0003-Provide-a-C-version-of-issignaling-that-does-not-use.patch b/toolchain/glibc/patches/2.26/0003-Provide-a-C-version-of-issignaling-that-does-not-use.patch
deleted file mode 100644
index b9cd3df39..000000000
--- a/toolchain/glibc/patches/2.26/0003-Provide-a-C-version-of-issignaling-that-does-not-use.patch
+++ /dev/null
@@ -1,225 +0,0 @@
-From 9bcf391a21677c6d5fa1c2be71554ec181e24f39 Mon Sep 17 00:00:00 2001
-From: "Gabriel F. T. Gomes" <gftg@linux.vnet.ibm.com>
-Date: Mon, 14 Aug 2017 13:46:15 -0300
-Subject: [PATCH] Provide a C++ version of issignaling that does not use
- __MATH_TG
-
-The macro __MATH_TG contains the logic to select between long double and
-_Float128, when these types are ABI-distinct. This logic relies on
-__builtin_types_compatible_p, which is not available in C++ mode.
-
-On the other hand, C++ function overloading provides the means to
-distinguish between the floating-point types. The overloading
-resolution will match the correct parameter regardless of type
-qualifiers, i.e.: const and volatile.
-
-Tested for powerpc64le, s390x, and x86_64.
-
- * math/math.h [defined __cplusplus] (issignaling): Provide a C++
- definition for issignaling that does not rely on __MATH_TG,
- since __MATH_TG uses __builtin_types_compatible_p, which is only
- available in C mode.
- (CFLAGS-test-math-issignaling.cc): New variable.
- * math/Makefile [CXX] (tests): Add test-math-issignaling.
- * math/test-math-issignaling.cc: New test for C++ implementation
- of type-generic issignaling.
- * sysdeps/powerpc/powerpc64le/Makefile [subdir == math]
- (CXXFLAGS-test-math-issignaling.cc): Add -mfloat128 to the build
- options of test-math-issignaling on powerpc64le.
-
-(cherry picked from commit a16e8bc08edca84d507715c66d6cddbbc7ed3b62)
-[Romain rebase on glibc 2.26]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
----
- math/Makefile | 3 +-
- math/math.h | 19 +++++-
- math/test-math-issignaling.cc | 113 +++++++++++++++++++++++++++++++++++
- sysdeps/powerpc/powerpc64le/Makefile | 1 +
- 4 files changed, 134 insertions(+), 2 deletions(-)
- create mode 100644 math/test-math-issignaling.cc
-
-diff --git a/math/Makefile b/math/Makefile
-index e09b0c0..0130fcf 100644
---- a/math/Makefile
-+++ b/math/Makefile
-@@ -203,7 +203,7 @@ tests-static = test-fpucw-static test-fpucw-ieee-static \
- test-signgam-ullong-static test-signgam-ullong-init-static
-
- ifneq (,$(CXX))
--tests += test-math-isinff test-math-iszero
-+tests += test-math-isinff test-math-iszero test-math-issignaling
- endif
-
- ifneq (no,$(PERL))
-@@ -350,6 +350,7 @@ CFLAGS-test-signgam-ullong-init-static.c = -std=c99
-
- CFLAGS-test-math-isinff.cc = -std=gnu++11
- CFLAGS-test-math-iszero.cc = -std=gnu++11
-+CFLAGS-test-math-issignaling.cc = -std=gnu++11
-
- CFLAGS-test-iszero-excess-precision.c = -fexcess-precision=standard
- CFLAGS-test-iseqsig-excess-precision.c = -fexcess-precision=standard
-diff --git a/math/math.h b/math/math.h
-index dea8dbe..add86af 100644
---- a/math/math.h
-+++ b/math/math.h
-@@ -474,7 +474,24 @@ enum
- # include <bits/iscanonical.h>
-
- /* Return nonzero value if X is a signaling NaN. */
--# define issignaling(x) __MATH_TG ((x), __issignaling, (x))
-+# ifndef __cplusplus
-+# define issignaling(x) __MATH_TG ((x), __issignaling, (x))
-+# else
-+ /* In C++ mode, __MATH_TG cannot be used, because it relies on
-+ __builtin_types_compatible_p, which is a C-only builtin. On the
-+ other hand, overloading provides the means to distinguish between
-+ the floating-point types. The overloading resolution will match
-+ the correct parameter (regardless of type qualifiers (i.e.: const
-+ and volatile). */
-+extern "C++" {
-+inline int issignaling (float __val) { return __issignalingf (__val); }
-+inline int issignaling (double __val) { return __issignaling (__val); }
-+inline int issignaling (long double __val) { return __issignalingl (__val); }
-+# if __HAVE_DISTINCT_FLOAT128
-+inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); }
-+# endif
-+} /* extern C++ */
-+# endif
-
- /* Return nonzero value if X is subnormal. */
- # define issubnormal(x) (fpclassify (x) == FP_SUBNORMAL)
-diff --git a/math/test-math-issignaling.cc b/math/test-math-issignaling.cc
-new file mode 100644
-index 0000000..22ae9e1
---- /dev/null
-+++ b/math/test-math-issignaling.cc
-@@ -0,0 +1,113 @@
-+/* Test for the C++ implementation of issignaling.
-+ Copyright (C) 2017 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library 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
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, see
-+ <http://www.gnu.org/licenses/>. */
-+
-+#define _GNU_SOURCE 1
-+#include <math.h>
-+#include <stdio.h>
-+
-+#include <limits>
-+
-+/* There is no signaling_NaN for _Float128 in std::numeric_limits.
-+ Include ieee754_float128.h and use the bitfields in the union
-+ ieee854_float128.ieee_nan to build a signaling NaN. */
-+#if __HAVE_DISTINCT_FLOAT128
-+# include <ieee754_float128.h>
-+#endif
-+
-+static bool errors;
-+
-+static void
-+check (int actual, int expected, const char *actual_expr, int line)
-+{
-+ if (actual != expected)
-+ {
-+ errors = true;
-+ printf ("%s:%d: error: %s\n", __FILE__, line, actual_expr);
-+ printf ("%s:%d: expected: %d\n", __FILE__, line, expected);
-+ printf ("%s:%d: actual: %d\n", __FILE__, line, actual);
-+ }
-+}
-+
-+#define CHECK(actual, expected) \
-+ check ((actual), (expected), #actual, __LINE__)
-+
-+template <class T>
-+static void
-+check_type ()
-+{
-+ typedef std::numeric_limits<T> limits;
-+ CHECK (issignaling (T{0}), 0);
-+ if (limits::has_infinity)
-+ {
-+ CHECK (issignaling (limits::infinity ()), 0);
-+ CHECK (issignaling (-limits::infinity ()), 0);
-+ }
-+ if (limits::has_quiet_NaN)
-+ CHECK (issignaling (limits::quiet_NaN ()), 0);
-+ if (limits::has_signaling_NaN)
-+ CHECK (issignaling (limits::signaling_NaN ()), 1);
-+}
-+
-+#if __HAVE_DISTINCT_FLOAT128
-+static void
-+check_float128 ()
-+{
-+ ieee854_float128 q;
-+
-+ q.d = 0;
-+ CHECK (issignaling (q.d), 0);
-+
-+ /* Infinity. */
-+ q.ieee.negative = 0;
-+ q.ieee.exponent = 0x7FFF;
-+ q.ieee.mantissa0 = 0x0000;
-+ q.ieee.mantissa1 = 0x00000000;
-+ q.ieee.mantissa2 = 0x00000000;
-+ q.ieee.mantissa3 = 0x00000000;
-+ CHECK (issignaling (q.d), 0);
-+
-+ /* Quiet NaN. */
-+ q.ieee_nan.quiet_nan = 1;
-+ q.ieee_nan.mantissa0 = 0x0000;
-+ CHECK (issignaling (q.d), 0);
-+
-+ /* Still a quiet NaN. */
-+ q.ieee_nan.quiet_nan = 1;
-+ q.ieee_nan.mantissa0 = 0x4000;
-+ CHECK (issignaling (q.d), 0);
-+
-+ /* Signaling NaN. */
-+ q.ieee_nan.quiet_nan = 0;
-+ q.ieee_nan.mantissa0 = 0x4000;
-+ CHECK (issignaling (q.d), 1);
-+}
-+#endif
-+
-+static int
-+do_test (void)
-+{
-+ check_type<float> ();
-+ check_type<double> ();
-+ check_type<long double> ();
-+#if __HAVE_DISTINCT_FLOAT128
-+ check_float128 ();
-+#endif
-+ return errors;
-+}
-+
-+#include <support/test-driver.c>
-diff --git a/sysdeps/powerpc/powerpc64le/Makefile b/sysdeps/powerpc/powerpc64le/Makefile
-index 77617b6..19adbfa 100644
---- a/sysdeps/powerpc/powerpc64le/Makefile
-+++ b/sysdeps/powerpc/powerpc64le/Makefile
-@@ -16,6 +16,7 @@ $(foreach suf,$(all-object-suffixes),%f128_r$(suf)): CFLAGS += -mfloat128
- $(foreach suf,$(all-object-suffixes),$(objpfx)test-float128%$(suf)): CFLAGS += -mfloat128
- $(foreach suf,$(all-object-suffixes),$(objpfx)test-ifloat128%$(suf)): CFLAGS += -mfloat128
- CFLAGS-libm-test-support-float128.c += -mfloat128
-+CFLAGS-test-math-issignaling.cc += -mfloat128
- $(objpfx)test-float128% $(objpfx)test-ifloat128%: \
- gnulib-tests += $(f128-loader-link)
- endif
---
-2.9.5
-
diff --git a/toolchain/glibc/patches/2.26/0004-Fix-the-C-version-of-issignaling-when-__NO_LONG_DOUB.patch b/toolchain/glibc/patches/2.26/0004-Fix-the-C-version-of-issignaling-when-__NO_LONG_DOUB.patch
deleted file mode 100644
index 5e32f754d..000000000
--- a/toolchain/glibc/patches/2.26/0004-Fix-the-C-version-of-issignaling-when-__NO_LONG_DOUB.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 9dbd8386a1b706beb30291a7e76bbfe69c2620cf Mon Sep 17 00:00:00 2001
-From: "Gabriel F. T. Gomes" <gftg@linux.vnet.ibm.com>
-Date: Wed, 23 Aug 2017 10:16:54 -0300
-Subject: [PATCH] Fix the C++ version of issignaling when __NO_LONG_DOUBLE_MATH
- is defined
-
-When __NO_LONG_DOUBLE_MATH is defined, __issignalingl is not available,
-thus issignaling with long double argument should call __issignaling,
-instead.
-
-Tested for powerpc64le.
-
- * math/math.h [defined __cplusplus] (issignaling): In the long
- double case, call __issignalingl only if __NO_LONG_DOUBLE_MATH
- is not defined. Call __issignaling, otherwise.
-
-(cherry picked from commit 3d7b66f66cb223e899a7ebc0f4c20f13e711c9e0)
-[Romain rebase on glibc 2.26]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
----
- math/math.h | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/math/math.h b/math/math.h
-index add86af..60dfa31 100644
---- a/math/math.h
-+++ b/math/math.h
-@@ -486,7 +486,15 @@ enum
- extern "C++" {
- inline int issignaling (float __val) { return __issignalingf (__val); }
- inline int issignaling (double __val) { return __issignaling (__val); }
--inline int issignaling (long double __val) { return __issignalingl (__val); }
-+inline int
-+issignaling (long double __val)
-+{
-+# ifdef __NO_LONG_DOUBLE_MATH
-+ return __issignaling (__val);
-+# else
-+ return __issignalingl (__val);
-+# endif
-+}
- # if __HAVE_DISTINCT_FLOAT128
- inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); }
- # endif
---
-2.9.5
-
diff --git a/toolchain/glibc/patches/2.26/0005-Provide-a-C-version-of-iszero-that-does-not-use-__MA.patch b/toolchain/glibc/patches/2.26/0005-Provide-a-C-version-of-iszero-that-does-not-use-__MA.patch
deleted file mode 100644
index e12c8438f..000000000
--- a/toolchain/glibc/patches/2.26/0005-Provide-a-C-version-of-iszero-that-does-not-use-__MA.patch
+++ /dev/null
@@ -1,210 +0,0 @@
-From 45970aa26d1af87b016ef95b4b35c566aeb6e841 Mon Sep 17 00:00:00 2001
-From: "Gabriel F. T. Gomes" <gftg@linux.vnet.ibm.com>
-Date: Tue, 22 Aug 2017 16:34:42 -0300
-Subject: [PATCH] Provide a C++ version of iszero that does not use __MATH_TG
- (bug 21930)
-
-When signaling nans are enabled (with -fsignaling-nans), the C++ version
-of iszero uses the fpclassify macro, which is defined with __MATH_TG.
-However, when support for float128 is available, __MATH_TG uses the
-builtin __builtin_types_compatible_p, which is only available in C mode.
-
-This patch refactors the C++ version of iszero so that it uses function
-overloading to select between the floating-point types, instead of
-relying on fpclassify and __MATH_TG.
-
-Tested for powerpc64le, s390x, x86_64, and with build-many-glibcs.py.
-
- [BZ #21930]
- * math/math.h [defined __cplusplus && defined __SUPPORT_SNAN__]
- (iszero): New C++ implementation that does not use
- fpclassify/__MATH_TG/__builtin_types_compatible_p, when
- signaling nans are enabled, since __builtin_types_compatible_p
- is a C-only feature.
- * math/test-math-iszero.cc: When __HAVE_DISTINCT_FLOAT128 is
- defined, include ieee754_float128.h for access to the union and
- member ieee854_float128.ieee.
- [__HAVE_DISTINCT_FLOAT128] (do_test): Call check_float128.
- [__HAVE_DISTINCT_FLOAT128] (check_float128): New function.
- * sysdeps/powerpc/powerpc64le/Makefile [subdir == math]
- (CXXFLAGS-test-math-iszero.cc): Add -mfloat128 to the build
- options of test-math-zero on powerpc64le.
-
-(cherry picked from commit 42496114ec0eb7d6d039d05d4262e109951c600c)
-[Romain rebase on glibc 2.26]
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
----
- math/math.h | 33 +++++++++++++--
- math/test-math-iszero.cc | 79 ++++++++++++++++++++++++++++++++++++
- sysdeps/powerpc/powerpc64le/Makefile | 3 +-
- 3 files changed, 110 insertions(+), 5 deletions(-)
-
-diff --git a/math/math.h b/math/math.h
-index 60dfa31..7c0fc6d 100644
---- a/math/math.h
-+++ b/math/math.h
-@@ -513,15 +513,40 @@ inline int issignaling (_Float128 __val) { return __issignalingf128 (__val); }
- # endif
- # else /* __cplusplus */
- extern "C++" {
-+# ifdef __SUPPORT_SNAN__
-+inline int
-+iszero (float __val)
-+{
-+ return __fpclassifyf (__val) == FP_ZERO;
-+}
-+inline int
-+iszero (double __val)
-+{
-+ return __fpclassify (__val) == FP_ZERO;
-+}
-+inline int
-+iszero (long double __val)
-+{
-+# ifdef __NO_LONG_DOUBLE_MATH
-+ return __fpclassify (__val) == FP_ZERO;
-+# else
-+ return __fpclassifyl (__val) == FP_ZERO;
-+# endif
-+}
-+# if __HAVE_DISTINCT_FLOAT128
-+inline int
-+iszero (_Float128 __val)
-+{
-+ return __fpclassifyf128 (__val) == FP_ZERO;
-+}
-+# endif
-+# else
- template <class __T> inline bool
- iszero (__T __val)
- {
--# ifdef __SUPPORT_SNAN__
-- return fpclassify (__val) == FP_ZERO;
--# else
- return __val == 0;
--# endif
- }
-+# endif
- } /* extern C++ */
- # endif /* __cplusplus */
- #endif /* Use IEC_60559_BFP_EXT. */
-diff --git a/math/test-math-iszero.cc b/math/test-math-iszero.cc
-index 027e972..5c07261 100644
---- a/math/test-math-iszero.cc
-+++ b/math/test-math-iszero.cc
-@@ -22,6 +22,13 @@
-
- #include <limits>
-
-+/* Support for _Float128 in std::numeric_limits is limited.
-+ Include ieee754_float128.h and use the bitfields in the union
-+ ieee854_float128.ieee_nan to build corner-case inputs. */
-+#if __HAVE_DISTINCT_FLOAT128
-+# include <ieee754_float128.h>
-+#endif
-+
- static bool errors;
-
- static void
-@@ -72,12 +79,84 @@ check_type ()
- std::numeric_limits<T>::has_denorm == std::denorm_absent);
- }
-
-+#if __HAVE_DISTINCT_FLOAT128
-+static void
-+check_float128 ()
-+{
-+ ieee854_float128 q;
-+
-+ q.d = 0.0Q;
-+ CHECK (iszero (q.d), 1);
-+ q.d = -0.0Q;
-+ CHECK (iszero (q.d), 1);
-+ q.d = 1.0Q;
-+ CHECK (iszero (q.d), 0);
-+ q.d = -1.0Q;
-+ CHECK (iszero (q.d), 0);
-+
-+ /* Normal min. */
-+ q.ieee.negative = 0;
-+ q.ieee.exponent = 0x0001;
-+ q.ieee.mantissa0 = 0x0000;
-+ q.ieee.mantissa1 = 0x00000000;
-+ q.ieee.mantissa2 = 0x00000000;
-+ q.ieee.mantissa3 = 0x00000000;
-+ CHECK (iszero (q.d), 0);
-+ q.ieee.negative = 1;
-+ CHECK (iszero (q.d), 0);
-+
-+ /* Normal max. */
-+ q.ieee.negative = 0;
-+ q.ieee.exponent = 0x7FFE;
-+ q.ieee.mantissa0 = 0xFFFF;
-+ q.ieee.mantissa1 = 0xFFFFFFFF;
-+ q.ieee.mantissa2 = 0xFFFFFFFF;
-+ q.ieee.mantissa3 = 0xFFFFFFFF;
-+ CHECK (iszero (q.d), 0);
-+ q.ieee.negative = 1;
-+ CHECK (iszero (q.d), 0);
-+
-+ /* Infinity. */
-+ q.ieee.negative = 0;
-+ q.ieee.exponent = 0x7FFF;
-+ q.ieee.mantissa0 = 0x0000;
-+ q.ieee.mantissa1 = 0x00000000;
-+ q.ieee.mantissa2 = 0x00000000;
-+ q.ieee.mantissa3 = 0x00000000;
-+ CHECK (iszero (q.d), 0);
-+
-+ /* Quiet NaN. */
-+ q.ieee_nan.quiet_nan = 1;
-+ q.ieee_nan.mantissa0 = 0x0000;
-+ CHECK (iszero (q.d), 0);
-+
-+ /* Signaling NaN. */
-+ q.ieee_nan.quiet_nan = 0;
-+ q.ieee_nan.mantissa0 = 0x4000;
-+ CHECK (iszero (q.d), 0);
-+
-+ /* Denormal min. */
-+ q.ieee.negative = 0;
-+ q.ieee.exponent = 0x0000;
-+ q.ieee.mantissa0 = 0x0000;
-+ q.ieee.mantissa1 = 0x00000000;
-+ q.ieee.mantissa2 = 0x00000000;
-+ q.ieee.mantissa3 = 0x00000001;
-+ CHECK (iszero (q.d), 0);
-+ q.ieee.negative = 1;
-+ CHECK (iszero (q.d), 0);
-+}
-+#endif
-+
- static int
- do_test (void)
- {
- check_type<float> ();
- check_type<double> ();
- check_type<long double> ();
-+#if __HAVE_DISTINCT_FLOAT128
-+ check_float128 ();
-+#endif
- return errors;
- }
-
-diff --git a/sysdeps/powerpc/powerpc64le/Makefile b/sysdeps/powerpc/powerpc64le/Makefile
-index 19adbfa..dea2290 100644
---- a/sysdeps/powerpc/powerpc64le/Makefile
-+++ b/sysdeps/powerpc/powerpc64le/Makefile
-@@ -17,7 +17,8 @@ $(foreach suf,$(all-object-suffixes),$(objpfx)test-float128%$(suf)): CFLAGS += -
- $(foreach suf,$(all-object-suffixes),$(objpfx)test-ifloat128%$(suf)): CFLAGS += -mfloat128
- CFLAGS-libm-test-support-float128.c += -mfloat128
- CFLAGS-test-math-issignaling.cc += -mfloat128
--$(objpfx)test-float128% $(objpfx)test-ifloat128%: \
-+CFLAGS-test-math-iszero.cc += -mfloat128
-+$(objpfx)test-float128% $(objpfx)test-ifloat128% $(objpfx)test-math-iszero: \
- gnulib-tests += $(f128-loader-link)
- endif
-
---
-2.9.5
-
diff --git a/toolchain/glibc/patches/2.26/0006-Let-fpclassify-use-the-builtin-when-optimizing-for-s.patch b/toolchain/glibc/patches/2.26/0006-Let-fpclassify-use-the-builtin-when-optimizing-for-s.patch
deleted file mode 100644
index 37807c459..000000000
--- a/toolchain/glibc/patches/2.26/0006-Let-fpclassify-use-the-builtin-when-optimizing-for-s.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 33f54cf4f81a51e5c8cbfb2408edd439bdee9435 Mon Sep 17 00:00:00 2001
-From: "Gabriel F. T. Gomes" <gabriel@inconstante.eti.br>
-Date: Wed, 20 Sep 2017 15:10:26 -0300
-Subject: [PATCH] Let fpclassify use the builtin when optimizing for size in
- C++ mode (bug 22146)
-
-When optimization for size is on (-Os), fpclassify does not use the
-type-generic __builtin_fpclassify builtin, instead it uses __MATH_TG.
-However, when library support for float128 is available, __MATH_TG uses
-__builtin_types_compatible_p, which is not available in C++ mode.
-
-On the other hand, libstdc++ undefines (in cmath) many macros from
-math.h, including fpclassify, so that it can provide its own functions.
-However, during its configure tests, libstdc++ just tests for the
-availability of the macros (it does not undefine them, nor does it
-provide its own functions).
-
-Finally, when libstdc++ is configured with optimization for size
-enabled, its configure tests include math.h and get the definition of
-fpclassify that uses __MATH_TG (and __builtin_types_compatible_p).
-Since libstdc++ does not undefine the macros during its configure tests,
-they fail.
-
-This patch lets fpclassify use the builtin in C++ mode, even when
-optimization for size is on. This allows the configure test in
-libstdc++ to work.
-
-Tested for powerpc64le and x86_64.
-
- [BZ #22146]
- math/math.h: Let fpclassify use the builtin in C++ mode, even
- when optimazing for size.
-
-(cherry picked from commit c5c4a626098ec884b8527356abdf2a4bb7b6bf27)
-
-[Romain rebase on glibc 2.26)
-Signed-off-by: Romain Naour <romain.naour@gmail.com>
----
- math/math.h | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/math/math.h b/math/math.h
-index 7c0fc6d..f9348ec 100644
---- a/math/math.h
-+++ b/math/math.h
-@@ -402,7 +402,13 @@ enum
-
- /* Return number of classification appropriate for X. */
- # if __GNUC_PREREQ (4,4) && !defined __SUPPORT_SNAN__ \
-- && !defined __OPTIMIZE_SIZE__
-+ && (!defined __OPTIMIZE_SIZE__ || defined __cplusplus)
-+ /* The check for __cplusplus allows the use of the builtin, even
-+ when optimization for size is on. This is provided for
-+ libstdc++, only to let its configure test work when it is built
-+ with -Os. No further use of this definition of fpclassify is
-+ expected in C++ mode, since libstdc++ provides its own version
-+ of fpclassify in cmath (which undefines fpclassify). */
- # define fpclassify(x) __builtin_fpclassify (FP_NAN, FP_INFINITE, \
- FP_NORMAL, FP_SUBNORMAL, FP_ZERO, x)
- # else
---
-2.9.5
-
diff --git a/toolchain/glibc/patches/2.38/0001-m68k-fix-__mpn_lshift-and-__mpn_rshift-for-non-68020.patch b/toolchain/glibc/patches/2.38/0001-m68k-fix-__mpn_lshift-and-__mpn_rshift-for-non-68020.patch
new file mode 100644
index 000000000..d5d8e34e9
--- /dev/null
+++ b/toolchain/glibc/patches/2.38/0001-m68k-fix-__mpn_lshift-and-__mpn_rshift-for-non-68020.patch
@@ -0,0 +1,46 @@
+From 464fd8249e8b791248cab7b0e0cd91757435fa9e Mon Sep 17 00:00:00 2001
+From: Andreas Schwab <schwab@linux-m68k.org>
+Date: Thu, 17 Aug 2023 17:15:34 +0200
+Subject: [PATCH] m68k: fix __mpn_lshift and __mpn_rshift for non-68020
+
+From revision 03f3d275d0d6 in the gmp repository.
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+---
+ sysdeps/m68k/m680x0/lshift.S | 4 ++--
+ sysdeps/m68k/m680x0/rshift.S | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/sysdeps/m68k/m680x0/lshift.S b/sysdeps/m68k/m680x0/lshift.S
+index 2aee10348e..4240738959 100644
+--- a/sysdeps/m68k/m680x0/lshift.S
++++ b/sysdeps/m68k/m680x0/lshift.S
+@@ -77,8 +77,8 @@ L(Lnormal:)
+ #else /* not mc68000 */
+ movel R(s_size),R(d0)
+ asll #2,R(d0)
+- addl R(s_size),R(s_ptr)
+- addl R(s_size),R(res_ptr)
++ addl R(d0),R(s_ptr)
++ addl R(d0),R(res_ptr)
+ #endif
+ movel MEM_PREDEC(s_ptr),R(d2)
+ movel R(d2),R(d0)
+diff --git a/sysdeps/m68k/m680x0/rshift.S b/sysdeps/m68k/m680x0/rshift.S
+index d16bca9307..d56a2b4a44 100644
+--- a/sysdeps/m68k/m680x0/rshift.S
++++ b/sysdeps/m68k/m680x0/rshift.S
+@@ -127,8 +127,8 @@ L(Lspecial:)
+ #else /* not mc68000 */
+ movel R(s_size),R(d0)
+ asll #2,R(d0)
+- addl R(s_size),R(s_ptr)
+- addl R(s_size),R(res_ptr)
++ addl R(d0),R(s_ptr)
++ addl R(d0),R(res_ptr)
+ #endif
+
+ clrl R(d0) /* initialize carry */
+--
+2.39.2
+
diff --git a/toolchain/glibc/patches/2.38/0004-ARC-Add-support-for-ARCv3-processors.patch b/toolchain/glibc/patches/2.38/0004-ARC-Add-support-for-ARCv3-processors.patch
new file mode 100644
index 000000000..cf4ca7352
--- /dev/null
+++ b/toolchain/glibc/patches/2.38/0004-ARC-Add-support-for-ARCv3-processors.patch
@@ -0,0 +1,4036 @@
+From ac6163148698545dd56471edabf97ffc23a519da Mon Sep 17 00:00:00 2001
+From: Alexey Brodkin <abrodkin@synopsys.com>
+Date: Tue, 2 Jan 2024 03:38:32 -0800
+Subject: [PATCH] ARC: Add support for ARCv3 processors
+
+Signed-off-by: Vineet Gupta <vgupta@kernel.org>
+Signed-off-by: Pavel Kozlov <pavel.kozlov@synopsys.com>
+Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
+---
+ config.h.in | 6 +
+ elf/dl-runtime.c | 4 +-
+ elf/elf.h | 5 +-
+ nptl/Makefile | 5 +-
+ scripts/build-many-glibcs.py | 6 +
+ scripts/config.sub | 8 +
+ sysdeps/arc/Implies | 1 -
+ sysdeps/arc/__longjmp.S | 62 +-
+ sysdeps/arc/arc32/Implies | 1 +
+ sysdeps/arc/arc64/Implies | 1 +
+ sysdeps/arc/arc64/fpu/libm-test-ulps | 1141 +++++++++++++++++
+ sysdeps/arc/arc64/fpu/libm-test-ulps-name | 1 +
+ sysdeps/arc/{ => arc64}/nofpu/libm-test-ulps | 1 +
+ sysdeps/arc/arc64/nofpu/libm-test-ulps-name | 1 +
+ sysdeps/arc/atomic-machine.h | 41 +-
+ sysdeps/arc/bits/setjmp.h | 6 +-
+ sysdeps/arc/configure | 80 +-
+ sysdeps/arc/configure.ac | 36 +
+ sysdeps/arc/dl-machine.h | 75 +-
+ sysdeps/arc/dl-trampoline.S | 89 +-
+ sysdeps/arc/fpu/math-use-builtins-fma.h | 18 +-
+ sysdeps/arc/fpu/math-use-builtins-sqrt.h | 18 +-
+ sysdeps/arc/isa-asm-macro-32.h | 61 +
+ sysdeps/arc/isa-asm-macro-64.h | 86 ++
+ sysdeps/arc/isa-asm-macros.h | 35 +
+ sysdeps/arc/nofpu/libm-test-ulps | 1 +
+ sysdeps/arc/nptl/pthreaddef.h | 2 +-
+ sysdeps/arc/preconfigure | 18 +-
+ sysdeps/arc/setjmp.S | 55 +-
+ sysdeps/arc/sfp-machine.h | 55 +-
+ sysdeps/arc/start.S | 14 +-
+ sysdeps/arc/sysdep.h | 5 +-
+ sysdeps/unix/sysv/linux/arc/Makefile | 8 +-
+ sysdeps/unix/sysv/linux/arc/arc32/Implies | 1 +
+ .../sysv/linux/arc/{ => arc32}/arch-syscall.h | 0
+ .../sysv/linux/arc/{ => arc32}/c++-types.data | 0
+ .../linux/arc/{ => arc32}/fixup-asm-unistd.h | 0
+ .../sysv/linux/arc/{ => arc32}/ld.abilist | 0
+ .../arc/{ => arc32}/libBrokenLocale.abilist | 0
+ .../sysv/linux/arc/{ => arc32}/libanl.abilist | 0
+ .../sysv/linux/arc/{ => arc32}/libc.abilist | 0
+ .../arc/{ => arc32}/libc_malloc_debug.abilist | 0
+ .../linux/arc/{ => arc32}/libcrypt.abilist | 0
+ .../sysv/linux/arc/{ => arc32}/libdl.abilist | 0
+ .../sysv/linux/arc/{ => arc32}/libm.abilist | 0
+ .../linux/arc/{ => arc32}/libpthread.abilist | 0
+ .../linux/arc/{ => arc32}/libresolv.abilist | 0
+ .../sysv/linux/arc/{ => arc32}/librt.abilist | 0
+ .../arc/{ => arc32}/libthread_db.abilist | 0
+ .../linux/arc/{ => arc32}/libutil.abilist | 0
+ sysdeps/unix/sysv/linux/arc/arc64/Implies | 2 +
+ .../sysv/linux/arc/{ => arc64}/arch-syscall.h | 59 +-
+ .../sysv/linux/arc/{ => arc64}/c++-types.data | 48 +-
+ .../sysv/linux/arc/{ => arc64}/ld.abilist | 8 +-
+ .../arc/{ => arc64}/libBrokenLocale.abilist | 0
+ .../sysv/linux/arc/{ => arc64}/libanl.abilist | 0
+ .../sysv/linux/arc/{ => arc64}/libc.abilist | 82 +-
+ .../arc/{ => arc64}/libc_malloc_debug.abilist | 8 +-
+ .../linux/arc/{ => arc64}/libcrypt.abilist | 0
+ .../sysv/linux/arc/{ => arc64}/libdl.abilist | 0
+ .../sysv/linux/arc/{ => arc64}/libm.abilist | 0
+ .../linux/arc/{ => arc64}/libpthread.abilist | 0
+ .../linux/arc/{ => arc64}/libresolv.abilist | 4 +-
+ .../sysv/linux/arc/{ => arc64}/librt.abilist | 0
+ .../arc/{ => arc64}/libthread_db.abilist | 0
+ .../linux/arc/{ => arc64}/libutil.abilist | 0
+ sysdeps/unix/sysv/linux/arc/bits/fcntl.h | 62 +
+ .../sysv/linux/arc/bits/types/__sigset_t.h | 2 +-
+ sysdeps/unix/sysv/linux/arc/clone.S | 30 +-
+ sysdeps/unix/sysv/linux/arc/clone3.S | 14 +-
+ sysdeps/unix/sysv/linux/arc/getcontext.S | 71 +-
+ sysdeps/unix/sysv/linux/arc/setcontext.S | 88 +-
+ sysdeps/unix/sysv/linux/arc/shlib-versions | 8 +
+ sysdeps/unix/sysv/linux/arc/swapcontext.S | 129 +-
+ sysdeps/unix/sysv/linux/arc/sys/ucontext.h | 1 +
+ sysdeps/unix/sysv/linux/arc/syscall.S | 16 +-
+ sysdeps/unix/sysv/linux/arc/sysdep.h | 16 +-
+ sysdeps/unix/sysv/linux/arc/vfork.S | 4 +-
+ timezone/zic.c | 2 +-
+ 79 files changed, 2211 insertions(+), 390 deletions(-)
+ mode change 100755 => 100644 scripts/config.sub
+ create mode 100644 sysdeps/arc/arc32/Implies
+ create mode 100644 sysdeps/arc/arc64/Implies
+ create mode 100644 sysdeps/arc/arc64/fpu/libm-test-ulps
+ create mode 100644 sysdeps/arc/arc64/fpu/libm-test-ulps-name
+ copy sysdeps/arc/{ => arc64}/nofpu/libm-test-ulps (99%)
+ create mode 100644 sysdeps/arc/arc64/nofpu/libm-test-ulps-name
+ create mode 100644 sysdeps/arc/isa-asm-macro-32.h
+ create mode 100644 sysdeps/arc/isa-asm-macro-64.h
+ create mode 100644 sysdeps/arc/isa-asm-macros.h
+ create mode 100644 sysdeps/unix/sysv/linux/arc/arc32/Implies
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/arch-syscall.h (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/c++-types.data (100%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc32}/fixup-asm-unistd.h (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/ld.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/libBrokenLocale.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/libanl.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/libc.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/libc_malloc_debug.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/libcrypt.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/libdl.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/libm.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/libpthread.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/libresolv.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/librt.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/libthread_db.abilist (100%)
+ copy sysdeps/unix/sysv/linux/arc/{ => arc32}/libutil.abilist (100%)
+ create mode 100644 sysdeps/unix/sysv/linux/arc/arc64/Implies
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/arch-syscall.h (89%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/c++-types.data (73%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/ld.abilist (54%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/libBrokenLocale.abilist (100%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/libanl.abilist (100%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/libc.abilist (97%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/libc_malloc_debug.abilist (80%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/libcrypt.abilist (100%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/libdl.abilist (100%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/libm.abilist (100%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/libpthread.abilist (100%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/libresolv.abilist (95%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/librt.abilist (100%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/libthread_db.abilist (100%)
+ rename sysdeps/unix/sysv/linux/arc/{ => arc64}/libutil.abilist (100%)
+ create mode 100644 sysdeps/unix/sysv/linux/arc/bits/fcntl.h
+
+diff --git a/config.h.in b/config.h.in
+index 0dedc124f7..d69b4166c0 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -120,6 +120,12 @@
+ /* ARC big endian ABI */
+ #undef HAVE_ARC_BE
+
++/* ARC64:32 ABI */
++#undef HAVE_ARC32
++
++/* ARC64:64 ABI */
++#undef HAVE_ARC64
++
+ /* C-SKY ABI version. */
+ #undef CSKYABI
+
+diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c
+index 32a8bfcf74..68ffdb1c24 100644
+--- a/elf/dl-runtime.c
++++ b/elf/dl-runtime.c
+@@ -42,7 +42,7 @@ _dl_fixup (
+ # ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
+ # endif
+- struct link_map *l, ElfW(Word) reloc_arg)
++ struct link_map *l, uintptr_t reloc_arg)
+ {
+ const ElfW(Sym) *const symtab
+ = (const void *) D_PTR (l, l_info[DT_SYMTAB]);
+@@ -170,7 +170,7 @@ _dl_profile_fixup (
+ #ifdef ELF_MACHINE_RUNTIME_FIXUP_ARGS
+ ELF_MACHINE_RUNTIME_FIXUP_ARGS,
+ #endif
+- struct link_map *l, ElfW(Word) reloc_arg,
++ struct link_map *l, uintptr_t reloc_arg,
+ ElfW(Addr) retaddr, void *regs, long int *framesizep)
+ {
+ void (*mcount_fct) (ElfW(Addr), ElfW(Addr)) = _dl_mcount;
+diff --git a/elf/elf.h b/elf/elf.h
+index 89fc8021e9..05cc75c631 100644
+--- a/elf/elf.h
++++ b/elf/elf.h
+@@ -358,6 +358,8 @@ typedef struct
+
+ #define EM_BPF 247 /* Linux BPF -- in-kernel virtual machine */
+ #define EM_CSKY 252 /* C-SKY */
++#define EM_ARCV3 253 /* Synopsys ARCv3 64-bit ISA */
++#define EM_ARCV3_32 255 /* Synopsys ARCv3 32-bit ISA */
+ #define EM_LOONGARCH 258 /* LoongArch */
+
+ #define EM_NUM 259
+@@ -4216,12 +4218,13 @@ enum
+ /* Processor specific values for the Shdr sh_type field. */
+ #define SHT_ARC_ATTRIBUTES (SHT_LOPROC + 1) /* ARC attributes section. */
+
+-/* ARCompact/ARCv2 specific relocs. */
++/* ARCompact/ARCv2/ARCv3 specific relocs. */
+ #define R_ARC_NONE 0x0
+ #define R_ARC_8 0x1
+ #define R_ARC_16 0x2
+ #define R_ARC_24 0x3
+ #define R_ARC_32 0x4
++#define R_ARC_64 0x5
+
+ #define R_ARC_B22_PCREL 0x6
+ #define R_ARC_H30 0x7
+diff --git a/nptl/Makefile b/nptl/Makefile
+index ffa5722e48..c8b7674c27 100644
+--- a/nptl/Makefile
++++ b/nptl/Makefile
+@@ -353,6 +353,7 @@ tests = \
+ tst-thread-exit-clobber \
+ tst-thread-setspecific \
+ tst-thread_local1 \
++ tst-eintr1 \
+ tst-tsd3 \
+ tst-tsd4 \
+ # tests
+@@ -397,10 +398,6 @@ tests-time64 := \
+ tst-cancel4_2-time64
+ # tests-time64
+
+-# This test can run into task limits because of a linux kernel bug
+-# and then cause the make process to fail too, see bug 24537.
+-xtests += tst-eintr1
+-
+ test-srcs = tst-oddstacklimit
+
+ gen-as-const-headers = unwindbuf.sym
+diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
+index 73ffc57c86..6f53c195cd 100755
+--- a/scripts/build-many-glibcs.py
++++ b/scripts/build-many-glibcs.py
+@@ -172,6 +172,12 @@ class Context(object):
+ self.add_config(arch='arceb',
+ os_name='linux-gnu',
+ gcc_cfg=['--disable-multilib', '--with-cpu=hs38'])
++ self.add_config(arch='arc64',
++ os_name='linux-gnu',
++ gcc_cfg=['--disable-multilib'])
++ self.add_config(arch='arc64',
++ os_name='linux-gnuhf',
++ gcc_cfg=['--disable-multilib', '--with-fpu=fpud'])
+ self.add_config(arch='alpha',
+ os_name='linux-gnu')
+ self.add_config(arch='arm',
+diff --git a/scripts/config.sub b/scripts/config.sub
+old mode 100755
+new mode 100644
+index dba16e84c7..4d9a117c9c
+--- a/scripts/config.sub
++++ b/scripts/config.sub
+@@ -1170,6 +1170,14 @@ case $cpu-$vendor in
+ cpu=mipsallegrexel
+ vendor=sony
+ ;;
++ arc32*-*)
++ cpu=arc32
++ vendor=linux
++ ;;
++ arc64*-*)
++ cpu=arc64
++ vendor=linux
++ ;;
+ tile*-*)
+ basic_os=${basic_os:-linux-gnu}
+ ;;
+diff --git a/sysdeps/arc/Implies b/sysdeps/arc/Implies
+index 780c4e2467..12ca48b4c9 100644
+--- a/sysdeps/arc/Implies
++++ b/sysdeps/arc/Implies
+@@ -1,3 +1,2 @@
+-wordsize-32
+ ieee754/flt-32
+ ieee754/dbl-64
+diff --git a/sysdeps/arc/__longjmp.S b/sysdeps/arc/__longjmp.S
+index a57054bce0..920e535ffd 100644
+--- a/sysdeps/arc/__longjmp.S
++++ b/sysdeps/arc/__longjmp.S
+@@ -24,25 +24,49 @@
+
+ ENTRY (__longjmp)
+
+- LDR (blink, r0, 0)
+- LDR (sp, r0, 1)
+- LDR (fp, r0, 2)
+- LDR (gp, r0, 3)
+-
+- LDR (r13, r0, 4)
+- LDR (r14, r0, 5)
+- LDR (r15, r0, 6)
+- LDR (r16, r0, 7)
+- LDR (r17, r0, 8)
+- LDR (r18, r0, 9)
+- LDR (r19, r0, 10)
+- LDR (r20, r0, 11)
+- LDR (r21, r0, 12)
+- LDR (r22, r0, 13)
+- LDR (r23, r0, 14)
+- LDR (r24, r0, 15)
+-
+- mov.f r0, r1
++ LDR.as blink, r0, 0
++ LDR.as sp, r0, 1
++ LDR.as fp, r0, 2
++ LDR.as gp, r0, 3
++
++ LDR.as r13, r0, 4
++ LDR.as r14, r0, 5
++ LDR.as r15, r0, 6
++ LDR.as r16, r0, 7
++ LDR.as r17, r0, 8
++ LDR.as r18, r0, 9
++ LDR.as r19, r0, 10
++ LDR.as r20, r0, 11
++ LDR.as r21, r0, 12
++ LDR.as r22, r0, 13
++ LDR.as r23, r0, 14
++ LDR.as r24, r0, 15
++
++#if defined(__ARCV3__)
++ LDR.as r25, r0, 16
++ LDR.as r26, r0, 17
++#endif
++
++#if defined (__ARC_FLOAT_ABI_HARD__)
++ FLDR.as f16, r0, 18
++ FLDR.as f17, r0, 19
++ FLDR.as f18, r0, 20
++ FLDR.as f19, r0, 21
++ FLDR.as f20, r0, 22
++ FLDR.as f21, r0, 23
++ FLDR.as f22, r0, 24
++ FLDR.as f23, r0, 25
++ FLDR.as f24, r0, 26
++ FLDR.as f25, r0, 27
++ FLDR.as f26, r0, 28
++ FLDR.as f27, r0, 29
++ FLDR.as f28, r0, 30
++ FLDR.as f29, r0, 31
++ FLDR.as f30, r0, 32
++ FLDR.as f31, r0, 33
++#endif
++
++ MOVR.f r0, r1
+ j.d [blink]
+ mov.z r0, 1 /* don't return 0 to setjmp callsite from longjmp. */
+
+diff --git a/sysdeps/arc/arc32/Implies b/sysdeps/arc/arc32/Implies
+new file mode 100644
+index 0000000000..39a34c5f57
+--- /dev/null
++++ b/sysdeps/arc/arc32/Implies
+@@ -0,0 +1 @@
++wordsize-32
+diff --git a/sysdeps/arc/arc64/Implies b/sysdeps/arc/arc64/Implies
+new file mode 100644
+index 0000000000..a8cae95f9d
+--- /dev/null
++++ b/sysdeps/arc/arc64/Implies
+@@ -0,0 +1 @@
++wordsize-64
+diff --git a/sysdeps/arc/arc64/fpu/libm-test-ulps b/sysdeps/arc/arc64/fpu/libm-test-ulps
+new file mode 100644
+index 0000000000..f3b8753c4d
+--- /dev/null
++++ b/sysdeps/arc/arc64/fpu/libm-test-ulps
+@@ -0,0 +1,1141 @@
++# Begin of automatic generation
++
++# Maximal error of functions:
++Function: "acos":
++double: 1
++float: 1
++
++Function: "acos_downward":
++double: 1
++float: 1
++
++Function: "acos_towardzero":
++double: 1
++float: 1
++
++Function: "acos_upward":
++double: 1
++float: 1
++
++Function: "acosh":
++double: 2
++float: 2
++
++Function: "acosh_downward":
++double: 2
++float: 2
++
++Function: "acosh_towardzero":
++double: 2
++float: 2
++
++Function: "acosh_upward":
++double: 2
++float: 2
++
++Function: "asin":
++double: 1
++float: 1
++
++Function: "asin_downward":
++double: 1
++float: 1
++
++Function: "asin_towardzero":
++double: 1
++float: 1
++
++Function: "asin_upward":
++double: 2
++float: 1
++
++Function: "asinh":
++double: 2
++float: 2
++
++Function: "asinh_downward":
++double: 3
++float: 3
++
++Function: "asinh_towardzero":
++double: 2
++float: 2
++
++Function: "asinh_upward":
++double: 3
++float: 3
++
++Function: "atan":
++double: 1
++float: 1
++
++Function: "atan2":
++float: 1
++
++Function: "atan2_downward":
++double: 1
++float: 2
++
++Function: "atan2_towardzero":
++double: 1
++float: 2
++
++Function: "atan2_upward":
++double: 1
++float: 1
++
++Function: "atan_downward":
++double: 1
++float: 2
++
++Function: "atan_towardzero":
++double: 1
++float: 1
++
++Function: "atan_upward":
++double: 1
++float: 2
++
++Function: "atanh":
++double: 2
++float: 2
++
++Function: "atanh_downward":
++double: 3
++float: 3
++
++Function: "atanh_towardzero":
++double: 2
++float: 2
++
++Function: "atanh_upward":
++double: 3
++float: 3
++
++Function: "cabs":
++double: 1
++
++Function: "cabs_downward":
++double: 1
++
++Function: "cabs_towardzero":
++double: 1
++
++Function: "cabs_upward":
++double: 1
++float: 1
++
++Function: Real part of "cacos":
++double: 1
++float: 2
++
++Function: Imaginary part of "cacos":
++double: 2
++float: 2
++
++Function: Real part of "cacos_downward":
++double: 3
++float: 2
++
++Function: Imaginary part of "cacos_downward":
++double: 5
++float: 3
++
++Function: Real part of "cacos_towardzero":
++double: 3
++float: 2
++
++Function: Imaginary part of "cacos_towardzero":
++double: 4
++float: 2
++
++Function: Real part of "cacos_upward":
++double: 2
++float: 2
++
++Function: Imaginary part of "cacos_upward":
++double: 5
++float: 5
++
++Function: Real part of "cacosh":
++double: 2
++float: 2
++
++Function: Imaginary part of "cacosh":
++double: 1
++float: 2
++
++Function: Real part of "cacosh_downward":
++double: 4
++float: 2
++
++Function: Imaginary part of "cacosh_downward":
++double: 3
++float: 3
++
++Function: Real part of "cacosh_towardzero":
++double: 4
++float: 2
++
++Function: Imaginary part of "cacosh_towardzero":
++double: 3
++float: 2
++
++Function: Real part of "cacosh_upward":
++double: 4
++float: 3
++
++Function: Imaginary part of "cacosh_upward":
++double: 3
++float: 2
++
++Function: "carg":
++float: 1
++
++Function: "carg_downward":
++double: 1
++float: 2
++
++Function: "carg_towardzero":
++double: 1
++float: 2
++
++Function: "carg_upward":
++double: 1
++float: 1
++
++Function: Real part of "casin":
++double: 1
++float: 1
++
++Function: Imaginary part of "casin":
++double: 2
++float: 2
++
++Function: Real part of "casin_downward":
++double: 3
++float: 2
++
++Function: Imaginary part of "casin_downward":
++double: 5
++float: 3
++
++Function: Real part of "casin_towardzero":
++double: 3
++float: 1
++
++Function: Imaginary part of "casin_towardzero":
++double: 4
++float: 2
++
++Function: Real part of "casin_upward":
++double: 3
++float: 2
++
++Function: Imaginary part of "casin_upward":
++double: 5
++float: 5
++
++Function: Real part of "casinh":
++double: 2
++float: 2
++
++Function: Imaginary part of "casinh":
++double: 1
++float: 1
++
++Function: Real part of "casinh_downward":
++double: 5
++float: 3
++
++Function: Imaginary part of "casinh_downward":
++double: 3
++float: 2
++
++Function: Real part of "casinh_towardzero":
++double: 4
++float: 2
++
++Function: Imaginary part of "casinh_towardzero":
++double: 3
++float: 1
++
++Function: Real part of "casinh_upward":
++double: 5
++float: 5
++
++Function: Imaginary part of "casinh_upward":
++double: 3
++float: 2
++
++Function: Real part of "catan":
++double: 1
++float: 1
++
++Function: Imaginary part of "catan":
++double: 1
++float: 1
++
++Function: Real part of "catan_downward":
++double: 1
++float: 2
++
++Function: Imaginary part of "catan_downward":
++double: 2
++float: 2
++
++Function: Real part of "catan_towardzero":
++double: 1
++float: 2
++
++Function: Imaginary part of "catan_towardzero":
++double: 2
++float: 2
++
++Function: Real part of "catan_upward":
++double: 1
++float: 1
++
++Function: Imaginary part of "catan_upward":
++double: 2
++float: 2
++
++Function: Real part of "catanh":
++double: 1
++float: 1
++
++Function: Imaginary part of "catanh":
++double: 1
++float: 1
++
++Function: Real part of "catanh_downward":
++double: 2
++float: 2
++
++Function: Imaginary part of "catanh_downward":
++double: 1
++float: 2
++
++Function: Real part of "catanh_towardzero":
++double: 2
++float: 2
++
++Function: Imaginary part of "catanh_towardzero":
++double: 1
++float: 2
++
++Function: Real part of "catanh_upward":
++double: 4
++float: 4
++
++Function: Imaginary part of "catanh_upward":
++double: 1
++float: 1
++
++Function: "cbrt":
++double: 4
++float: 1
++
++Function: "cbrt_downward":
++double: 4
++float: 1
++
++Function: "cbrt_towardzero":
++double: 3
++float: 1
++
++Function: "cbrt_upward":
++double: 5
++float: 1
++
++Function: Real part of "ccos":
++double: 1
++float: 1
++
++Function: Imaginary part of "ccos":
++double: 1
++float: 1
++
++Function: Real part of "ccos_downward":
++double: 1
++float: 1
++
++Function: Imaginary part of "ccos_downward":
++double: 3
++float: 3
++
++Function: Real part of "ccos_towardzero":
++double: 1
++float: 2
++
++Function: Imaginary part of "ccos_towardzero":
++double: 3
++float: 3
++
++Function: Real part of "ccos_upward":
++double: 1
++float: 2
++
++Function: Imaginary part of "ccos_upward":
++double: 2
++float: 2
++
++Function: Real part of "ccosh":
++double: 1
++float: 1
++
++Function: Imaginary part of "ccosh":
++double: 1
++float: 1
++
++Function: Real part of "ccosh_downward":
++double: 2
++float: 2
++
++Function: Imaginary part of "ccosh_downward":
++double: 3
++float: 3
++
++Function: Real part of "ccosh_towardzero":
++double: 2
++float: 3
++
++Function: Imaginary part of "ccosh_towardzero":
++double: 3
++float: 3
++
++Function: Real part of "ccosh_upward":
++double: 1
++float: 2
++
++Function: Imaginary part of "ccosh_upward":
++double: 2
++float: 2
++
++Function: Real part of "cexp":
++double: 2
++float: 1
++
++Function: Imaginary part of "cexp":
++double: 1
++float: 2
++
++Function: Real part of "cexp_downward":
++double: 2
++float: 2
++
++Function: Imaginary part of "cexp_downward":
++double: 3
++float: 3
++
++Function: Real part of "cexp_towardzero":
++double: 2
++float: 2
++
++Function: Imaginary part of "cexp_towardzero":
++double: 3
++float: 3
++
++Function: Real part of "cexp_upward":
++double: 2
++float: 2
++
++Function: Imaginary part of "cexp_upward":
++double: 3
++float: 2
++
++Function: Real part of "clog":
++double: 3
++float: 3
++
++Function: Imaginary part of "clog":
++double: 1
++float: 1
++
++Function: Real part of "clog10":
++double: 3
++float: 4
++
++Function: Imaginary part of "clog10":
++double: 2
++float: 2
++
++Function: Real part of "clog10_downward":
++double: 5
++float: 5
++
++Function: Imaginary part of "clog10_downward":
++double: 2
++float: 4
++
++Function: Real part of "clog10_towardzero":
++double: 5
++float: 6
++
++Function: Imaginary part of "clog10_towardzero":
++double: 2
++float: 4
++
++Function: Real part of "clog10_upward":
++double: 6
++float: 5
++
++Function: Imaginary part of "clog10_upward":
++double: 2
++float: 4
++
++Function: Real part of "clog_downward":
++double: 4
++float: 3
++
++Function: Imaginary part of "clog_downward":
++double: 1
++float: 2
++
++Function: Real part of "clog_towardzero":
++double: 4
++float: 4
++
++Function: Imaginary part of "clog_towardzero":
++double: 1
++float: 3
++
++Function: Real part of "clog_upward":
++double: 4
++float: 3
++
++Function: Imaginary part of "clog_upward":
++double: 1
++float: 2
++
++Function: "cos":
++double: 1
++float: 1
++
++Function: "cos_downward":
++double: 1
++float: 1
++
++Function: "cos_towardzero":
++double: 1
++float: 1
++
++Function: "cos_upward":
++double: 1
++float: 1
++
++Function: "cosh":
++double: 2
++float: 2
++
++Function: "cosh_downward":
++double: 3
++float: 2
++
++Function: "cosh_towardzero":
++double: 3
++float: 2
++
++Function: "cosh_upward":
++double: 2
++float: 2
++
++Function: Real part of "cpow":
++double: 2
++float: 5
++
++Function: Imaginary part of "cpow":
++float: 2
++
++Function: Real part of "cpow_downward":
++double: 5
++float: 8
++
++Function: Imaginary part of "cpow_downward":
++double: 1
++float: 2
++
++Function: Real part of "cpow_towardzero":
++double: 5
++float: 8
++
++Function: Imaginary part of "cpow_towardzero":
++double: 1
++float: 2
++
++Function: Real part of "cpow_upward":
++double: 4
++float: 1
++
++Function: Imaginary part of "cpow_upward":
++double: 1
++float: 2
++
++Function: Real part of "csin":
++double: 1
++float: 1
++
++Function: Real part of "csin_downward":
++double: 3
++float: 3
++
++Function: Imaginary part of "csin_downward":
++double: 1
++float: 1
++
++Function: Real part of "csin_towardzero":
++double: 3
++float: 3
++
++Function: Imaginary part of "csin_towardzero":
++double: 1
++float: 1
++
++Function: Real part of "csin_upward":
++double: 2
++float: 2
++
++Function: Imaginary part of "csin_upward":
++double: 1
++float: 2
++
++Function: Real part of "csinh":
++float: 1
++
++Function: Imaginary part of "csinh":
++double: 1
++float: 1
++
++Function: Real part of "csinh_downward":
++double: 2
++float: 1
++
++Function: Imaginary part of "csinh_downward":
++double: 3
++float: 3
++
++Function: Real part of "csinh_towardzero":
++double: 2
++float: 2
++
++Function: Imaginary part of "csinh_towardzero":
++double: 3
++float: 3
++
++Function: Real part of "csinh_upward":
++double: 1
++float: 2
++
++Function: Imaginary part of "csinh_upward":
++double: 2
++float: 2
++
++Function: Real part of "csqrt":
++double: 2
++float: 2
++
++Function: Imaginary part of "csqrt":
++double: 2
++float: 2
++
++Function: Real part of "csqrt_downward":
++double: 5
++float: 4
++
++Function: Imaginary part of "csqrt_downward":
++double: 4
++float: 3
++
++Function: Real part of "csqrt_towardzero":
++double: 4
++float: 3
++
++Function: Imaginary part of "csqrt_towardzero":
++double: 4
++float: 3
++
++Function: Real part of "csqrt_upward":
++double: 5
++float: 4
++
++Function: Imaginary part of "csqrt_upward":
++double: 3
++float: 3
++
++Function: Real part of "ctan":
++double: 1
++float: 1
++
++Function: Imaginary part of "ctan":
++double: 2
++float: 2
++
++Function: Real part of "ctan_downward":
++double: 6
++float: 5
++
++Function: Imaginary part of "ctan_downward":
++double: 2
++float: 2
++
++Function: Real part of "ctan_towardzero":
++double: 5
++float: 2
++
++Function: Imaginary part of "ctan_towardzero":
++double: 2
++float: 2
++
++Function: Real part of "ctan_upward":
++double: 2
++float: 4
++
++Function: Imaginary part of "ctan_upward":
++double: 1
++float: 2
++
++Function: Real part of "ctanh":
++double: 2
++float: 2
++
++Function: Imaginary part of "ctanh":
++double: 2
++float: 2
++
++Function: Real part of "ctanh_downward":
++double: 2
++float: 2
++
++Function: Imaginary part of "ctanh_downward":
++double: 6
++float: 5
++
++Function: Real part of "ctanh_towardzero":
++double: 2
++float: 2
++
++Function: Imaginary part of "ctanh_towardzero":
++double: 5
++float: 2
++
++Function: Real part of "ctanh_upward":
++double: 1
++float: 2
++
++Function: Imaginary part of "ctanh_upward":
++double: 3
++float: 3
++
++Function: "erf":
++double: 1
++float: 1
++
++Function: "erf_downward":
++double: 1
++float: 1
++
++Function: "erf_towardzero":
++double: 1
++float: 1
++
++Function: "erf_upward":
++double: 1
++float: 1
++
++Function: "erfc":
++double: 3
++float: 3
++
++Function: "erfc_downward":
++double: 4
++float: 4
++
++Function: "erfc_towardzero":
++double: 3
++float: 3
++
++Function: "erfc_upward":
++double: 4
++float: 4
++
++Function: "exp":
++double: 1
++float: 1
++
++Function: "exp10":
++double: 2
++float: 1
++
++Function: "exp10_downward":
++double: 3
++float: 1
++
++Function: "exp10_towardzero":
++double: 3
++float: 1
++
++Function: "exp10_upward":
++double: 2
++float: 1
++
++Function: "exp2":
++double: 1
++
++Function: "exp2_downward":
++double: 1
++float: 1
++
++Function: "exp2_towardzero":
++double: 1
++float: 1
++
++Function: "exp2_upward":
++double: 1
++float: 1
++
++Function: "exp_downward":
++double: 1
++float: 1
++
++Function: "exp_towardzero":
++double: 1
++float: 1
++
++Function: "exp_upward":
++double: 1
++float: 1
++
++Function: "expm1":
++double: 1
++float: 1
++
++Function: "expm1_downward":
++double: 1
++float: 1
++
++Function: "expm1_towardzero":
++double: 1
++float: 2
++
++Function: "expm1_upward":
++double: 1
++float: 1
++
++Function: "gamma":
++double: 4
++float: 7
++
++Function: "gamma_downward":
++double: 4
++float: 4
++
++Function: "gamma_towardzero":
++double: 4
++float: 3
++
++Function: "gamma_upward":
++double: 4
++float: 5
++
++Function: "hypot":
++double: 1
++float: 1
++
++Function: "hypot_downward":
++double: 1
++float: 1
++
++Function: "hypot_towardzero":
++double: 1
++float: 1
++
++Function: "hypot_upward":
++double: 1
++float: 1
++
++Function: "j0":
++double: 4
++float: 9
++
++Function: "j0_downward":
++double: 6
++float: 8
++
++Function: "j0_towardzero":
++double: 4
++float: 9
++
++Function: "j0_upward":
++double: 4
++float: 9
++
++Function: "j1":
++double: 3
++float: 9
++
++Function: "j1_downward":
++double: 9
++float: 9
++
++Function: "j1_towardzero":
++double: 5
++float: 9
++
++Function: "j1_upward":
++double: 5
++float: 8
++
++Function: "jn":
++double: 4
++float: 4
++
++Function: "jn_downward":
++double: 4
++float: 5
++
++Function: "jn_towardzero":
++double: 4
++float: 5
++
++Function: "jn_upward":
++double: 5
++float: 5
++
++Function: "lgamma":
++double: 4
++float: 7
++
++Function: "lgamma_downward":
++double: 4
++float: 4
++
++Function: "lgamma_towardzero":
++double: 4
++float: 3
++
++Function: "lgamma_upward":
++double: 4
++float: 5
++
++Function: "log":
++double: 1
++
++Function: "log10":
++double: 2
++float: 2
++
++Function: "log10_downward":
++double: 2
++float: 3
++
++Function: "log10_towardzero":
++double: 2
++float: 2
++
++Function: "log10_upward":
++double: 2
++float: 2
++
++Function: "log1p":
++double: 1
++float: 1
++
++Function: "log1p_downward":
++double: 1
++float: 2
++
++Function: "log1p_towardzero":
++double: 2
++float: 2
++
++Function: "log1p_upward":
++double: 2
++float: 2
++
++Function: "log2":
++double: 2
++float: 1
++
++Function: "log2_downward":
++double: 1
++float: 1
++
++Function: "log2_towardzero":
++double: 1
++float: 1
++
++Function: "log2_upward":
++double: 1
++float: 1
++
++Function: "log_downward":
++double: 1
++float: 1
++
++Function: "log_towardzero":
++double: 1
++float: 1
++
++Function: "log_upward":
++double: 1
++float: 1
++
++Function: "pow":
++double: 1
++
++Function: "pow_downward":
++double: 1
++float: 1
++
++Function: "pow_towardzero":
++double: 1
++float: 1
++
++Function: "pow_upward":
++double: 1
++float: 1
++
++Function: "sin":
++double: 1
++float: 1
++
++Function: "sin_downward":
++double: 1
++float: 1
++
++Function: "sin_towardzero":
++double: 1
++float: 1
++
++Function: "sin_upward":
++double: 1
++float: 1
++
++Function: "sincos":
++double: 1
++float: 1
++
++Function: "sincos_downward":
++double: 1
++float: 1
++
++Function: "sincos_towardzero":
++double: 1
++float: 1
++
++Function: "sincos_upward":
++double: 1
++float: 1
++
++Function: "sinh":
++double: 2
++float: 2
++
++Function: "sinh_downward":
++double: 3
++float: 3
++
++Function: "sinh_towardzero":
++double: 3
++float: 2
++
++Function: "sinh_upward":
++double: 3
++float: 3
++
++Function: "tan":
++float: 1
++
++Function: "tan_downward":
++double: 1
++float: 2
++
++Function: "tan_towardzero":
++double: 1
++float: 1
++
++Function: "tan_upward":
++double: 1
++float: 1
++
++Function: "tanh":
++double: 2
++float: 2
++
++Function: "tanh_downward":
++double: 3
++float: 3
++
++Function: "tanh_towardzero":
++double: 2
++float: 2
++
++Function: "tanh_upward":
++double: 3
++float: 3
++
++Function: "tgamma":
++double: 9
++float: 8
++
++Function: "tgamma_downward":
++double: 9
++float: 7
++
++Function: "tgamma_towardzero":
++double: 9
++float: 7
++
++Function: "tgamma_upward":
++double: 8
++float: 8
++
++Function: "y0":
++double: 3
++float: 8
++
++Function: "y0_downward":
++double: 3
++float: 8
++
++Function: "y0_towardzero":
++double: 3
++float: 8
++
++Function: "y0_upward":
++double: 2
++float: 8
++
++Function: "y1":
++double: 3
++float: 9
++
++Function: "y1_downward":
++double: 6
++float: 8
++
++Function: "y1_towardzero":
++double: 3
++float: 9
++
++Function: "y1_upward":
++double: 6
++float: 9
++
++Function: "yn":
++double: 3
++float: 3
++
++Function: "yn_downward":
++double: 3
++float: 4
++
++Function: "yn_towardzero":
++double: 3
++float: 3
++
++Function: "yn_upward":
++double: 4
++float: 5
++
++# end of automatic generation
+diff --git a/sysdeps/arc/arc64/fpu/libm-test-ulps-name b/sysdeps/arc/arc64/fpu/libm-test-ulps-name
+new file mode 100644
+index 0000000000..8c4fba4f9a
+--- /dev/null
++++ b/sysdeps/arc/arc64/fpu/libm-test-ulps-name
+@@ -0,0 +1 @@
++ARC
+diff --git a/sysdeps/arc/nofpu/libm-test-ulps b/sysdeps/arc/arc64/nofpu/libm-test-ulps
+similarity index 99%
+copy from sysdeps/arc/nofpu/libm-test-ulps
+copy to sysdeps/arc/arc64/nofpu/libm-test-ulps
+index 6ac2830b25..26632ff8f2 100644
+--- a/sysdeps/arc/nofpu/libm-test-ulps
++++ b/sysdeps/arc/arc64/nofpu/libm-test-ulps
+@@ -205,6 +205,7 @@ float: 7
+
+ Function: "hypot":
+ double: 1
++float: 1
+
+ Function: "j0":
+ double: 2
+diff --git a/sysdeps/arc/arc64/nofpu/libm-test-ulps-name b/sysdeps/arc/arc64/nofpu/libm-test-ulps-name
+new file mode 100644
+index 0000000000..8a9879ebd6
+--- /dev/null
++++ b/sysdeps/arc/arc64/nofpu/libm-test-ulps-name
+@@ -0,0 +1 @@
++ARC soft-float
+diff --git a/sysdeps/arc/atomic-machine.h b/sysdeps/arc/atomic-machine.h
+index 6ac3d87dd9..f1565b317b 100644
+--- a/sysdeps/arc/atomic-machine.h
++++ b/sysdeps/arc/atomic-machine.h
+@@ -19,7 +19,23 @@
+ #ifndef _ARC_BITS_ATOMIC_H
+ #define _ARC_BITS_ATOMIC_H 1
+
+-#define __HAVE_64B_ATOMICS 0
++#include <stdint.h>
++
++typedef int32_t atomic32_t;
++typedef uint32_t uatomic32_t;
++typedef int64_t atomic64_t;
++typedef uint64_t uatomic64_t;
++
++typedef intptr_t atomicptr_t;
++typedef uintptr_t uatomicptr_t;
++typedef intmax_t atomic_max_t;
++typedef uintmax_t uatomic_max_t;
++
++# if defined(__ARC64_ARCH64__)
++# define __HAVE_64B_ATOMICS 1
++# else
++# define __HAVE_64B_ATOMICS 0
++# endif
+ #define USE_ATOMIC_COMPILER_BUILTINS 1
+
+ /* ARC does have legacy atomic EX reg, [mem] instruction but the micro-arch
+@@ -30,15 +46,16 @@
+ (abort (), 0)
+ #define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \
+ (abort (), 0)
+-#define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
+- (abort (), 0)
++
++# if !defined(__ARC64__)
++# define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
++ (abort (), 0)
++#endif
+
+ #define __arch_compare_and_exchange_val_8_int(mem, newval, oldval, model) \
+ (abort (), (__typeof (*mem)) 0)
+ #define __arch_compare_and_exchange_val_16_int(mem, newval, oldval, model) \
+ (abort (), (__typeof (*mem)) 0)
+-#define __arch_compare_and_exchange_val_64_int(mem, newval, oldval, model) \
+- (abort (), (__typeof (*mem)) 0)
+
+ #define __arch_compare_and_exchange_val_32_int(mem, newval, oldval, model) \
+ ({ \
+@@ -48,6 +65,20 @@
+ __oldval; \
+ })
+
++# if defined(__ARC64__)
++# define __arch_compare_and_exchange_val_64_int(mem, newval, oldval, model) \
++ ({ \
++ typeof (*mem) __oldval = (oldval); \
++ __atomic_compare_exchange_n (mem, (void *) &__oldval, newval, 0, \
++ model, __ATOMIC_RELAXED); \
++ __oldval; \
++ })
++# else
++/* ARCv2 has LOCKD/SCOND but not sure if gcc atomic builtins exist. */
++# define __arch_compare_and_exchange_val_64_int(mem, newval, oldval, model) \
++ (abort (), (__typeof (*mem)) 0)
++#endif
++
+ #define atomic_compare_and_exchange_val_acq(mem, new, old) \
+ __atomic_val_bysize (__arch_compare_and_exchange_val, int, \
+ mem, new, old, __ATOMIC_ACQUIRE)
+diff --git a/sysdeps/arc/bits/setjmp.h b/sysdeps/arc/bits/setjmp.h
+index d1604cde1f..2ca85a679d 100644
+--- a/sysdeps/arc/bits/setjmp.h
++++ b/sysdeps/arc/bits/setjmp.h
+@@ -20,7 +20,11 @@
+ #define _ARC_BITS_SETJMP_H 1
+
+ /* Saves r13-r25 (callee-saved), fp (frame pointer), sp (stack pointer),
+- blink (branch-n-link). */
++ blink (branch-n-link), FP regs. */
++#if defined (__ARC_FLOAT_ABI_HARD__)
++typedef long int __jmp_buf[64];
++#else
+ typedef long int __jmp_buf[32];
++#endif
+
+ #endif
+diff --git a/sysdeps/arc/configure b/sysdeps/arc/configure
+index 7b27e26490..d7b19db793 100644
+--- a/sysdeps/arc/configure
++++ b/sysdeps/arc/configure
+@@ -10,7 +10,7 @@ libc_cv_asm_line_sep='`'
+ printf "%s\n" "#define ASM_LINE_SEP $libc_cv_asm_line_sep" >>confdefs.h
+
+
+-# For big endian ABI, generate a symbol for selecting right dynamic linker
++# For arc64:64 generate a symbol for selecting right dynamic linker
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+@@ -155,6 +155,77 @@ printf "%s\n" "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for arc64" >&5
++printf %s "checking for arc64... " >&6; }
++if test ${libc_cv_arc64+y}
++then :
++ printf %s "(cached) " >&6
++else $as_nop
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#ifdef __ARC64_ARCH64__
++ yes
++ #endif
++
++_ACEOF
++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
++ $EGREP "yes" >/dev/null 2>&1
++then :
++ libc_cv_arc64=yes
++else $as_nop
++ libc_cv_arc64=no
++fi
++rm -rf conftest*
++
++fi
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arc64" >&5
++printf "%s\n" "$libc_cv_arc64" >&6; }
++if test $libc_cv_arc64 = yes; then
++ # For shlib-versions.
++ printf "%s\n" "#define HAVE_ARC64 1" >>confdefs.h
++
++ config_vars="$config_vars
++default-abi = arc64le"
++
++else
++
++# For arc64:32 generate a symbol for selecting right dynamic linker
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for arc32" >&5
++printf %s "checking for arc32... " >&6; }
++if test ${libc_cv_arc32+y}
++then :
++ printf %s "(cached) " >&6
++else $as_nop
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++#ifdef __ARC64_ARCH32__
++ yes
++ #endif
++
++_ACEOF
++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
++ $EGREP "yes" >/dev/null 2>&1
++then :
++ libc_cv_arc32=yes
++else $as_nop
++ libc_cv_arc32=no
++fi
++rm -rf conftest*
++
++fi
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arc32" >&5
++printf "%s\n" "$libc_cv_arc32" >&6; }
++
++if test $libc_cv_arc32 = yes; then
++ # For shlib-versions.
++ printf "%s\n" "#define HAVE_ARC32 1" >>confdefs.h
++
++ config_vars="$config_vars
++default-abi = arc32le"
++
++else
++
++# For big endian ABI, generate a symbol for selecting right dynamic linker
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for big endian" >&5
+ printf %s "checking for big endian... " >&6; }
+ if test ${libc_cv_arc_be+y}
+@@ -189,5 +260,12 @@ default-abi = arcbe"
+ else
+ config_vars="$config_vars
+ default-abi = arcle"
++# big endian
++fi
++
++# arc64:32
++fi
++
++# arc64:64
+ fi
+
+diff --git a/sysdeps/arc/configure.ac b/sysdeps/arc/configure.ac
+index 619da4e088..4e84f17105 100644
+--- a/sysdeps/arc/configure.ac
++++ b/sysdeps/arc/configure.ac
+@@ -9,6 +9,35 @@ libc_cv_have_sdata_section=no
+ libc_cv_asm_line_sep='`'
+ AC_DEFINE_UNQUOTED(ASM_LINE_SEP, $libc_cv_asm_line_sep)
+
++# For arc64:64 generate a symbol for selecting right dynamic linker
++AC_CACHE_CHECK([for arc64],
++ [libc_cv_arc64],
++ [AC_EGREP_CPP(yes,[#ifdef __ARC64_ARCH64__
++ yes
++ #endif
++ ], libc_cv_arc64=yes, libc_cv_arc64=no)])
++if test $libc_cv_arc64 = yes; then
++ # For shlib-versions.
++ AC_DEFINE(HAVE_ARC64)
++ LIBC_CONFIG_VAR([default-abi], [arc64le])
++
++else
++
++# For arc64:32 generate a symbol for selecting right dynamic linker
++AC_CACHE_CHECK([for arc32],
++ [libc_cv_arc32],
++ [AC_EGREP_CPP(yes,[#ifdef __ARC64_ARCH32__
++ yes
++ #endif
++ ], libc_cv_arc32=yes, libc_cv_arc32=no)])
++
++if test $libc_cv_arc32 = yes; then
++ # For shlib-versions.
++ AC_DEFINE(HAVE_ARC32)
++ LIBC_CONFIG_VAR([default-abi], [arc32le])
++
++else
++
+ # For big endian ABI, generate a symbol for selecting right dynamic linker
+ AC_CACHE_CHECK([for big endian],
+ [libc_cv_arc_be],
+@@ -22,4 +51,11 @@ if test $libc_cv_arc_be = yes; then
+ LIBC_CONFIG_VAR([default-abi], [arcbe])
+ else
+ LIBC_CONFIG_VAR([default-abi], [arcle])
++# big endian
++fi
++
++# arc64:32
++fi
++
++# arc64:64
+ fi
+diff --git a/sysdeps/arc/dl-machine.h b/sysdeps/arc/dl-machine.h
+index 4dc652a449..dbb7394c27 100644
+--- a/sysdeps/arc/dl-machine.h
++++ b/sysdeps/arc/dl-machine.h
+@@ -32,18 +32,19 @@
+ #include <dl-tls.h>
+ #include <dl-static-tls.h>
+ #include <dl-machine-rel.h>
++#include <sysdep.h>
+
+ /* Dynamic Linking ABI for ARCv2 ISA.
+
+- PLT
++ .plt
+ -------------------------------- <---- DT_PLTGOT
+ | ld r11, [pcl, off-to-GOT[1] | 0
+ | | 4
+- plt0 | ld r10, [pcl, off-to-GOT[2] | 8
++ PLT0 | ld r10, [pcl, off-to-GOT[2] | 8
+ | | 12
+ | j [r10] | 16
+ --------------------------------
+- | Base address of GOT | 20
++ | Base address of .got.plt | 20
+ --------------------------------
+ | ld r12, [pcl, off-to-GOT[3] | 24
+ plt1 | |
+@@ -69,11 +70,11 @@
+ --------------
+ | [1] | Module info - setup by ld.so
+ --------------
+- | [2] | resolver entry point
++ | [2] | resolver entry point: _dl_runtime_resolve
+ --------------
+ | [3] |
+ | ... | Runtime address for function symbols
+- | [f] |
++ | [f] | Initially point to PLT0
+ --------------
+
+ For ARCompact, the PLT is 12 bytes due to short instructions
+@@ -91,6 +92,8 @@ static inline int
+ elf_machine_matches_host (const ElfW(Ehdr) *ehdr)
+ {
+ return (ehdr->e_machine == EM_ARCV2 /* ARC HS. */
++ || ehdr->e_machine == EM_ARCV3 /* ARCv3: ARC64. */
++ || ehdr->e_machine == EM_ARCV3_32 /* ARCv3: ARC32. */
+ || ehdr->e_machine == EM_ARC_COMPACT); /* ARC 700. */
+ }
+
+@@ -114,7 +117,7 @@ elf_machine_load_address (void)
+ /* For build address, below generates
+ ld r0, [pcl, _GLOBAL_OFFSET_TABLE_@pcl]. */
+ build_addr = elf_machine_dynamic ();
+- __asm__ ("add %0, pcl, _DYNAMIC@pcl \n" : "=r" (run_addr));
++ __asm__ ("ADDR %0, pcl, _DYNAMIC@pcl \n" : "=r" (run_addr));
+
+ return run_addr - build_addr;
+ }
+@@ -131,10 +134,13 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
+
+ if (l->l_info[DT_JMPREL] && lazy)
+ {
+- /* On ARC DT_PLTGOT point to .plt whose 5th word (after the PLT header)
+- contains the address of .got. */
++ /* update .got.plt[1] and .got.plt[2].
++ DT_PLTGOT point to base of .plt and PLT0 is 3 instructions
++ for total of 20 bytes, see illustration at top.
++ The word right after contains base address of .got.plt. */
+ ElfW(Addr) *plt_base = (ElfW(Addr) *) D_PTR (l, l_info[DT_PLTGOT]);
+- ElfW(Addr) *got = (ElfW(Addr) *) (plt_base[5] + l->l_addr);
++ ElfW(Addr) *got_build = (ElfW(Addr) *) ((uintptr_t)plt_base + 20);
++ ElfW(Addr) *got = (ElfW(Addr) *) (*got_build + l->l_addr);
+
+ got[1] = (ElfW(Addr)) l; /* Identify this shared object. */
+
+@@ -152,6 +158,8 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
+ -optionally adjusts argc for executable if exec passed as cmd
+ -calls into app main with address of finaliser. */
+
++#ifdef __ARC64_ARCH64__
++
+ #define RTLD_START asm ("\
+ .text \n\
+ .globl __start \n\
+@@ -159,25 +167,55 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
+ __start: \n\
+ /* (1). bootstrap ld.so. */ \n\
+ bl.d _dl_start \n\
+- mov_s r0, sp /* pass ptr to aux vector tbl. */ \n\
+- mov r13, r0 /* safekeep app elf entry point. */ \n\
+- ld_s r1, [sp] /* orig argc. */ \n\
++ MOVR r0, sp /* pass ptr to aux vector tbl. */ \n\
++ MOVR r14, r0 /* safekeep app elf entry point. */ \n\
++ LDR r1, sp /* orig argc. */ \n\
+ \n\
+ /* (2). call preinit stuff. */ \n\
+- ld r0, [pcl, _rtld_local@pcl] \n\
+- add r2, sp, 4 ; argv \n\
+- add2 r3, r2, r1 \n\
+- add r3, r3, 4 ; env \n\
++ LDR r0, pcl, _rtld_local@pcl \n\
++ ADDR r2, sp, 8 ; argv \n\
++ ADD3R r3, r2, r1 \n\
++ ADDR r3, r3, 8 ; env \n\
+ bl _dl_init@plt \n\
+ \n\
+ /* (3) call app elf entry point. */ \n\
+- add r0, pcl, _dl_fini@pcl \n\
+- j [r13] \n\
++ ADDR r0, pcl, _dl_fini@pcl \n\
++ j [r14] \n\
+ \n\
+ .size __start,.-__start \n\
+ .previous \n\
+ ");
+
++#else
++
++#define RTLD_START asm ("\
++.text \n\
++.globl __start \n\
++.type __start, @function \n\
++__start: \n\
++ /* (1). bootstrap ld.so. */ \n\
++ bl.d _dl_start \n\
++ MOVR r0, sp /* pass ptr to aux vector tbl. */ \n\
++ MOVR r14, r0 /* safekeep app elf entry point. */ \n\
++ LDR r1, sp /* orig argc. */ \n\
++ \n\
++ /* (2). call preinit stuff. */ \n\
++ LDR r0, pcl, _rtld_local@pcl \n\
++ ADDR r2, sp, 4 ; argv \n\
++ ADD2R r3, r2, r1 \n\
++ ADDR r3, r3, 4 ; env \n\
++ bl _dl_init@plt \n\
++ \n\
++ /* (3) call app elf entry point. */ \n\
++ ADDR r0, pcl, _dl_fini@pcl \n\
++ j [r14] \n\
++ \n\
++ .size __start,.-__start \n\
++ .previous \n\
++");
++
++#endif
++
+ /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
+ PLT entries should not be allowed to define the value.
+ ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
+@@ -289,6 +327,7 @@ elf_machine_rela (struct link_map *map, struct r_scope_elem *scope[],
+ break;
+
+ case R_ARC_32:
++ case R_ARC_64:
+ *reloc_addr += value + reloc->r_addend;
+ break;
+
+diff --git a/sysdeps/arc/dl-trampoline.S b/sysdeps/arc/dl-trampoline.S
+index 1b307a616f..386009d41e 100644
+--- a/sysdeps/arc/dl-trampoline.S
++++ b/sysdeps/arc/dl-trampoline.S
+@@ -31,42 +31,71 @@
+ ENTRY (_dl_runtime_resolve)
+
+ /* save args to func being resolved before entering resolver. */
+- push_s r0
+- push_s r1
+- push_s r2
+- push_s r3
+- st.a r4, [sp, -4]
+- st.a r5, [sp, -4]
+- st.a r6, [sp, -4]
+- st.a r7, [sp, -4]
+- st.a r8, [sp, -4]
+- st.a r9, [sp, -4]
+- cfi_adjust_cfa_offset (40)
+- push_s blink
+- cfi_adjust_cfa_offset (4)
++ PUSHR r0
++ PUSHR r1
++ PUSHR r2
++ PUSHR r3
++ PUSHR r4
++ PUSHR r5
++ PUSHR r6
++ PUSHR r7
++ PUSHR r8
++ PUSHR r9
++
++#if defined (__ARC_FLOAT_ABI_HARD__)
++ FPUSHR f0
++ FPUSHR f1
++ FPUSHR f2
++ FPUSHR f3
++ FPUSHR f4
++ FPUSHR f5
++ FPUSHR f6
++ FPUSHR f7
++ cfi_adjust_cfa_offset (18*REGSZ)
++#else
++ cfi_adjust_cfa_offset (10*REGSZ)
++#endif
++
++ PUSHR blink
++ cfi_adjust_cfa_offset (REGSZ)
+ cfi_rel_offset (blink, 0)
+
+- mov_s r1, r12
++ MOVR r1, r12
+ bl.d _dl_fixup
+- mov r0, r11
++ MOVR r0, r11
+
+ /* restore regs back. */
+- ld.ab blink,[sp, 4]
+- cfi_adjust_cfa_offset (-4)
++ POPR blink
++ cfi_adjust_cfa_offset (-REGSZ)
+ cfi_restore (blink)
+- ld.ab r9, [sp, 4]
+- ld.ab r8, [sp, 4]
+- ld.ab r7, [sp, 4]
+- ld.ab r6, [sp, 4]
+- ld.ab r5, [sp, 4]
+- ld.ab r4, [sp, 4]
+- pop_s r3
+- pop_s r2
+- pop_s r1
+- cfi_adjust_cfa_offset (-36)
+
+- j_s.d [r0] /* r0 has resolved function addr. */
+- pop_s r0 /* restore first arg to resolved call. */
+- cfi_adjust_cfa_offset (-4)
++#if defined (__ARC_FLOAT_ABI_HARD__)
++ FPOPR f7
++ FPOPR f6
++ FPOPR f5
++ FPOPR f4
++ FPOPR f3
++ FPOPR f2
++ FPOPR f1
++ FPOPR f0
++#endif
++ POPR r9
++ POPR r8
++ POPR r7
++ POPR r6
++ POPR r5
++ POPR r4
++ POPR r3
++ POPR r2
++ POPR r1
++#if defined (__ARC_FLOAT_ABI_HARD__)
++ cfi_adjust_cfa_offset (-17*REGSZ)
++#else
++ cfi_adjust_cfa_offset (-9*REGSZ)
++#endif
++
++ j.d [r0] /* r0 has resolved function addr. */
++ POPR r0 /* restore first arg to resolved call. */
++ cfi_adjust_cfa_offset (-REGSZ)
+ cfi_restore (r0)
+ END (_dl_runtime_resolve)
+diff --git a/sysdeps/arc/fpu/math-use-builtins-fma.h b/sysdeps/arc/fpu/math-use-builtins-fma.h
+index 2acd8113ce..59c7ed0343 100644
+--- a/sysdeps/arc/fpu/math-use-builtins-fma.h
++++ b/sysdeps/arc/fpu/math-use-builtins-fma.h
+@@ -1,13 +1,17 @@
+-#if defined __ARC_FPU_DP_FMA__
++#if defined __ARCV3__
+ # define USE_FMA_BUILTIN 1
+-#else
+-# define USE_FMA_BUILTIN 0
+-#endif
+-
+-#if defined __ARC_FPU_SP_FMA__
+ # define USE_FMAF_BUILTIN 1
+ #else
+-# define USE_FMAF_BUILTIN 0
++# if defined __ARC_FPU_DP_FMA__
++# define USE_FMA_BUILTIN 1
++# else
++# define USE_FMA_BUILTIN 0
++# endif
++# if defined __ARC_FPU_SP_FMA__
++# define USE_FMAF_BUILTIN 1
++# else
++# define USE_FMAF_BUILTIN 0
++# endif
+ #endif
+
+ #define USE_FMAL_BUILTIN 0
+diff --git a/sysdeps/arc/fpu/math-use-builtins-sqrt.h b/sysdeps/arc/fpu/math-use-builtins-sqrt.h
+index a449bc6092..40a07730ea 100644
+--- a/sysdeps/arc/fpu/math-use-builtins-sqrt.h
++++ b/sysdeps/arc/fpu/math-use-builtins-sqrt.h
+@@ -1,13 +1,17 @@
+-#if defined __ARC_FPU_DP_DIV__
++#if defined __ARCV3__
+ # define USE_SQRT_BUILTIN 1
+-#else
+-# define USE_SQRT_BUILTIN 0
+-#endif
+-
+-#if defined __ARC_FPU_SP_DIV__
+ # define USE_SQRTF_BUILTIN 1
+ #else
+-# define USE_SQRTF_BUILTIN 0
++# if defined __ARC_FPU_DP_DIV__
++# define USE_SQRT_BUILTIN 1
++# else
++# define USE_SQRT_BUILTIN 0
++# endif
++# if defined __ARC_FPU_SP_DIV__
++# define USE_SQRTF_BUILTIN 1
++# else
++# define USE_SQRTF_BUILTIN 0
++# endif
+ #endif
+
+ #define USE_SQRTL_BUILTIN 0
+diff --git a/sysdeps/arc/isa-asm-macro-32.h b/sysdeps/arc/isa-asm-macro-32.h
+new file mode 100644
+index 0000000000..98cd249059
+--- /dev/null
++++ b/sysdeps/arc/isa-asm-macro-32.h
+@@ -0,0 +1,61 @@
++# define REGSZ 4
++
++.irp aa,,.as
++.macro LDR\aa d, s, off=0
++ ld\aa \d, [\s, \off]
++.endm
++.endr
++
++.irp aa,,.as
++.macro STR\aa d, s, off=0
++ st\aa \d, [\s, \off]
++.endm
++.endr
++
++.macro PUSHR r
++ push \r
++.endm
++
++.macro POPR r
++ pop \r
++.endm
++
++.irp cc,,.f
++.macro MOVR\cc d, s
++ mov\cc \d, \s
++.endm
++.endr
++
++.irp cc,,.nz
++.macro ADDR\cc d, s, v
++ add\cc \d, \s, \v
++.endm
++.endr
++
++.macro ADD2R d, s, v
++ add2 \d, \s, \v
++.endm
++
++.macro ADD3R d, s, v
++ add3 \d, \s, \v
++.endm
++
++.macro SUBR d, s, v
++ sub \d, \s, \v
++.endm
++
++.macro ANDR d, s, v
++ and \d, \s, \v
++.endm
++
++.irp cc,,eq,hi
++.macro BRR\cc d, s, v
++ br\cc \d, \s, \v
++.endm
++.endr
++
++.irp cc,,.ne
++.macro CMPR\cc d, s
++ cmp\cc \d, \s
++.endm
++.endr
+diff --git a/sysdeps/arc/isa-asm-macro-64.h b/sysdeps/arc/isa-asm-macro-64.h
+new file mode 100644
+index 0000000000..02b1dc2c37
+--- /dev/null
++++ b/sysdeps/arc/isa-asm-macro-64.h
+@@ -0,0 +1,86 @@
++# define REGSZ 8
++
++.irp aa,,.as
++.macro LDR\aa d, s, off=0
++ ldl\aa \d, [\s, \off]
++.endm
++.endr
++
++.irp aa,,.as
++.macro STR\aa d, s, off=0
++ stl\aa \d, [\s, \off]
++.endm
++.endr
++
++.macro PUSHR r
++ pushl \r
++.endm
++
++.macro POPR r
++ popl \r
++.endm
++
++.irp cc,,.f
++.macro MOVR\cc d, s
++ movl\cc \d, \s
++.endm
++.endr
++
++.irp cc,,.nz
++.macro ADDR\cc d, s, v
++ addl\cc \d, \s, \v
++.endm
++.endr
++
++.macro ADD2R d, s, v
++ add2l \d, \s, \v
++.endm
++
++.macro ADD3R d, s, v
++ add3l \d, \s, \v
++.endm
++
++.macro SUBR d, s, v
++ subl \d, \s, \v
++.endm
++
++.macro ANDR d, s, v
++ andl \d, \s, \v
++.endm
++
++.irp cc,eq,hi
++.macro BRR\cc d, s, v
++; arc64 gas doesn't support BRHIL pseudo-instruction
++.ifeqs "\cc","hi"
++ brlo\()l \s, \d, \v
++.else
++ br\cc\()l \d, \s, \v
++.endif
++.endm
++.endr
++
++.irp cc,,.ne
++.macro CMPR\cc d, s
++ cmpl\cc \d, \s
++.endm
++.endr
++
++.irp aa,,.as,.aw,.ab
++.macro FLDR\aa d, s, off=0
++ fld64\aa \d, [\s, \off]
++.endm
++.endr
++
++.irp aa,,.as,.aw,.ab
++.macro FSTR\aa d, s, off=0
++ fst64\aa \d, [\s, \off]
++.endm
++.endr
++
++.macro FPUSHR r
++ FSTR.aw \r, sp, -REGSZ
++.endm
++
++.macro FPOPR r
++ FLDR.ab \r, sp, REGSZ
++.endm
+diff --git a/sysdeps/arc/isa-asm-macros.h b/sysdeps/arc/isa-asm-macros.h
+new file mode 100644
+index 0000000000..f9f5e4f630
+--- /dev/null
++++ b/sysdeps/arc/isa-asm-macros.h
+@@ -0,0 +1,35 @@
++/* ISA Specific Assembler macros for ARC.
++ Copyright (C) 2020 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public License as
++ published by the Free Software Foundation; either version 2.1 of the
++ License, or (at your option) any later version.
++
++ The GNU C Library 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
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, see
++ <https://www.gnu.org/licenses/>. */
++
++#ifdef __ASSEMBLER__
++
++# ifdef __ARC64_ARCH64__
++# include <sysdeps/arc/isa-asm-macro-64.h>
++# else
++# include <sysdeps/arc/isa-asm-macro-32.h>
++# endif
++
++#else
++
++# ifdef __ARC64_ARCH64__
++asm(".include \"sysdeps/arc/isa-asm-macro-64.h\"\n");
++# else
++asm(".include \"sysdeps/arc/isa-asm-macro-32.h\"\n");
++# endif
++
++#endif
+diff --git a/sysdeps/arc/nofpu/libm-test-ulps b/sysdeps/arc/nofpu/libm-test-ulps
+index 6ac2830b25..26632ff8f2 100644
+--- a/sysdeps/arc/nofpu/libm-test-ulps
++++ b/sysdeps/arc/nofpu/libm-test-ulps
+@@ -205,6 +205,7 @@ float: 7
+
+ Function: "hypot":
+ double: 1
++float: 1
+
+ Function: "j0":
+ double: 2
+diff --git a/sysdeps/arc/nptl/pthreaddef.h b/sysdeps/arc/nptl/pthreaddef.h
+index 336eded15c..3b51e59a35 100644
+--- a/sysdeps/arc/nptl/pthreaddef.h
++++ b/sysdeps/arc/nptl/pthreaddef.h
+@@ -23,7 +23,7 @@
+ #define ARCH_MIN_GUARD_SIZE 0
+
+ /* Required stack pointer alignment at beginning. */
+-#define STACK_ALIGN 4
++#define STACK_ALIGN 8
+
+ /* Minimal stack size after allocating thread descriptor and guard size. */
+ #define MINIMAL_REST_STACK 2048
+diff --git a/sysdeps/arc/preconfigure b/sysdeps/arc/preconfigure
+index a79db0239a..eab4af0eab 100644
+--- a/sysdeps/arc/preconfigure
++++ b/sysdeps/arc/preconfigure
+@@ -1,14 +1,22 @@
+ case "$machine" in
+ arc*)
+- base_machine=arc
+- machine=arc
++ with_fp_cond=0
++ isarc64=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep __LP64__| wc -l`
++
++ case "$isarc64" in
++ 0)
++ base_machine=arc
++ machine=arc/arc32
++ ;;
++ 1)
++ base_machine=arc
++ machine=arc/arc64
++ ;;
++ esac
+
+ gccfloat=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | grep __ARC_FPU_| wc -l`
+ if test "$gccfloat" != "0"; then
+ with_fp_cond=1
+- else
+- with_fp_cond=0
+ fi
+ ;;
+-
+ esac
+diff --git a/sysdeps/arc/setjmp.S b/sysdeps/arc/setjmp.S
+index 9ecdb9daae..e39b526837 100644
+--- a/sysdeps/arc/setjmp.S
++++ b/sysdeps/arc/setjmp.S
+@@ -41,24 +41,47 @@ ENTRY (__sigsetjmp)
+ that will be right next to this setjmp call-site in BLINK
+ since "C" caller of this routine will do a branch-n-link. */
+
+- STR (blink, r0, 0)
+- STR (sp, r0, 1)
+- STR (fp, r0, 2)
+- STR (gp, r0, 3)
++ STR.as blink, r0, 0
++ STR.as sp, r0, 1
++ STR.as fp, r0, 2
++ STR.as gp, r0, 3
+
+- STR (r13, r0, 4)
+- STR (r14, r0, 5)
+- STR (r15, r0, 6)
+- STR (r16, r0, 7)
+- STR (r17, r0, 8)
+- STR (r18, r0, 9)
+- STR (r19, r0, 10)
+- STR (r20, r0, 11)
+- STR (r21, r0, 12)
+- STR (r22, r0, 13)
+- STR (r23, r0, 14)
+- STR (r24, r0, 15)
++ STR.as r13, r0, 4
++ STR.as r14, r0, 5
++ STR.as r15, r0, 6
++ STR.as r16, r0, 7
++ STR.as r17, r0, 8
++ STR.as r18, r0, 9
++ STR.as r19, r0, 10
++ STR.as r20, r0, 11
++ STR.as r21, r0, 12
++ STR.as r22, r0, 13
++ STR.as r23, r0, 14
++ STR.as r24, r0, 15
+
++#if defined(__ARCV3__)
++ STR.as r25, r0, 16
++ STR.as r26, r0, 17
++#endif
++
++#if defined (__ARC_FLOAT_ABI_HARD__)
++ FSTR.as f16, r0, 18
++ FSTR.as f17, r0, 19
++ FSTR.as f18, r0, 20
++ FSTR.as f19, r0, 21
++ FSTR.as f20, r0, 22
++ FSTR.as f21, r0, 23
++ FSTR.as f22, r0, 24
++ FSTR.as f23, r0, 25
++ FSTR.as f24, r0, 26
++ FSTR.as f25, r0, 27
++ FSTR.as f26, r0, 28
++ FSTR.as f27, r0, 29
++ FSTR.as f28, r0, 30
++ FSTR.as f29, r0, 31
++ FSTR.as f30, r0, 32
++ FSTR.as f31, r0, 33
++#endif
+ b __sigjmp_save
+
+ END (__sigsetjmp)
+diff --git a/sysdeps/arc/sfp-machine.h b/sysdeps/arc/sfp-machine.h
+index 0917a7ae17..4743b694a2 100644
+--- a/sysdeps/arc/sfp-machine.h
++++ b/sysdeps/arc/sfp-machine.h
+@@ -17,10 +17,12 @@
+ <https://www.gnu.org/licenses/>. */
+
+
+-#define _FP_W_TYPE_SIZE 32
+-#define _FP_W_TYPE unsigned long
+-#define _FP_WS_TYPE signed long
+-#define _FP_I_TYPE long
++#ifndef __ARC64__
++
++# define _FP_W_TYPE_SIZE 32
++# define _FP_W_TYPE unsigned long
++# define _FP_WS_TYPE signed long
++# define _FP_I_TYPE long
+
+ #define _FP_MUL_MEAT_S(R,X,Y) \
+ _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm)
+@@ -67,4 +69,49 @@
+ R##_c = FP_CLS_NAN; \
+ } while (0)
+
++#else
++
++# define _FP_W_TYPE_SIZE 64
++# define _FP_W_TYPE unsigned long long
++# define _FP_WS_TYPE signed long long
++# define _FP_I_TYPE long long
++
++# define _FP_MUL_MEAT_S(R, X, Y) \
++ _FP_MUL_MEAT_1_imm (_FP_WFRACBITS_S, R, X, Y)
++# define _FP_MUL_MEAT_D(R, X, Y) \
++ _FP_MUL_MEAT_1_wide (_FP_WFRACBITS_D, R, X, Y, umul_ppmm)
++# define _FP_MUL_MEAT_Q(R, X, Y) \
++ _FP_MUL_MEAT_2_wide_3mul (_FP_WFRACBITS_Q, R, X, Y, umul_ppmm)
++
++# define _FP_MUL_MEAT_DW_S(R, X, Y) \
++ _FP_MUL_MEAT_DW_1_imm (_FP_WFRACBITS_S, R, X, Y)
++# define _FP_MUL_MEAT_DW_D(R, X, Y) \
++ _FP_MUL_MEAT_DW_1_wide (_FP_WFRACBITS_D, R, X, Y, umul_ppmm)
++# define _FP_MUL_MEAT_DW_Q(R, X, Y) \
++ _FP_MUL_MEAT_DW_2_wide_3mul (_FP_WFRACBITS_Q, R, X, Y, umul_ppmm)
++
++# define _FP_DIV_MEAT_S(R, X, Y) _FP_DIV_MEAT_1_imm (S, R, X, Y, _FP_DIV_HELP_imm)
++# define _FP_DIV_MEAT_D(R, X, Y) _FP_DIV_MEAT_1_udiv_norm (D, R, X, Y)
++# define _FP_DIV_MEAT_Q(R, X, Y) _FP_DIV_MEAT_2_udiv (Q, R, X, Y)
++
++# define _FP_NANFRAC_S _FP_QNANBIT_S
++# define _FP_NANFRAC_D _FP_QNANBIT_D
++# define _FP_NANFRAC_Q _FP_QNANBIT_Q, 0
++
++#define _FP_NANSIGN_S 0
++#define _FP_NANSIGN_D 0
++#define _FP_NANSIGN_Q 0
++
++#define _FP_KEEPNANFRACP 0
++#define _FP_QNANNEGATEDP 0
++
++#define _FP_CHOOSENAN(fs, wc, R, X, Y, OP) \
++ do { \
++ R##_s = _FP_NANSIGN_##fs; \
++ _FP_FRAC_SET_##wc (R, _FP_NANFRAC_##fs); \
++ R##_c = FP_CLS_NAN; \
++ } while (0)
++
++#endif
++
+ #define _FP_TININESS_AFTER_ROUNDING 1
+diff --git a/sysdeps/arc/start.S b/sysdeps/arc/start.S
+index db3bab6395..42ead9d302 100644
+--- a/sysdeps/arc/start.S
++++ b/sysdeps/arc/start.S
+@@ -57,12 +57,12 @@ ENTRY (ENTRY_POINT)
+ cfi_undefined (blink)
+
+ mov fp, 0
+- ld_s r1, [sp] /* argc. */
++ LDR r1, sp /* argc. */
+
+- mov_s r5, r0 /* rltd_fini. */
+- add_s r2, sp, 4 /* argv. */
+- and sp, sp, -8
+- mov r6, sp
++ MOVR r5, r0 /* rltd_fini. */
++ ADDR r2, sp, REGSZ /* argv. */
++ ANDR sp, sp, -2*REGSZ
++ MOVR r6, sp
+
+ /* __libc_start_main (main, argc, argv, init, fini, rtld_fini, stack_end). */
+
+@@ -70,10 +70,10 @@ ENTRY (ENTRY_POINT)
+ mov r4, 0 /* Used to be fini. */
+
+ #ifdef SHARED
+- ld r0, [pcl, @main@gotpc]
++ LDR r0, pcl, @main@gotpc
+ bl __libc_start_main@plt
+ #else
+- mov_s r0, main
++ MOVR r0, main
+ bl __libc_start_main
+ #endif
+
+diff --git a/sysdeps/arc/sysdep.h b/sysdeps/arc/sysdep.h
+index 4f024f6b73..ba6ecddbac 100644
+--- a/sysdeps/arc/sysdep.h
++++ b/sysdeps/arc/sysdep.h
+@@ -47,7 +47,6 @@
+
+ # define CALL_MCOUNT /* Do nothing for now. */
+
+-# define STR(reg, rbase, off) st reg, [rbase, off * 4]
+-# define LDR(reg, rbase, off) ld reg, [rbase, off * 4]
+-
+ #endif /* __ASSEMBLER__ */
++
++#include <sysdeps/arc/isa-asm-macros.h>
+diff --git a/sysdeps/unix/sysv/linux/arc/Makefile b/sysdeps/unix/sysv/linux/arc/Makefile
+index eca9a9fd3a..00d655bcd3 100644
+--- a/sysdeps/unix/sysv/linux/arc/Makefile
++++ b/sysdeps/unix/sysv/linux/arc/Makefile
+@@ -12,11 +12,13 @@ sysdep_headers += sys/cachectl.h
+ sysdep_routines += cacheflush
+ endif
+
+-abi-variants := arcle arcbe
++abi-variants := arcle arcbe arc32le arc64le
+
+ ifeq (,$(filter $(default-abi),$(abi-variants)))
+ $(error Unknown ABI $(default-abi), must be one of $(abi-variants))
+ endif
+
+-abi-arcle-condition := !defined __BIG_ENDIAN__
+-abi-arcbe-condition := defined __BIG_ENDIAN__
++abi-arcle-condition := !defined __ARC64__ && !defined __BIG_ENDIAN__
++abi-arcbe-condition := !defined __ARC64__ && defined __BIG_ENDIAN__
++abi-arc32le-condition := defined __ARC64_ARCH32__ && !defined __BIG_ENDIAN__
++abi-arc64le-condition := defined __ARC64_ARCH64__ && !defined __BIG_ENDIAN__
+diff --git a/sysdeps/unix/sysv/linux/arc/arc32/Implies b/sysdeps/unix/sysv/linux/arc/arc32/Implies
+new file mode 100644
+index 0000000000..9670973cfa
+--- /dev/null
++++ b/sysdeps/unix/sysv/linux/arc/arc32/Implies
+@@ -0,0 +1 @@
++unix/sysv/linux/arc
+diff --git a/sysdeps/unix/sysv/linux/arc/arch-syscall.h b/sysdeps/unix/sysv/linux/arc/arc32/arch-syscall.h
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/arch-syscall.h
+copy to sysdeps/unix/sysv/linux/arc/arc32/arch-syscall.h
+diff --git a/sysdeps/unix/sysv/linux/arc/c++-types.data b/sysdeps/unix/sysv/linux/arc/arc32/c++-types.data
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/c++-types.data
+copy to sysdeps/unix/sysv/linux/arc/arc32/c++-types.data
+diff --git a/sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h b/sysdeps/unix/sysv/linux/arc/arc32/fixup-asm-unistd.h
+similarity index 100%
+rename from sysdeps/unix/sysv/linux/arc/fixup-asm-unistd.h
+rename to sysdeps/unix/sysv/linux/arc/arc32/fixup-asm-unistd.h
+diff --git a/sysdeps/unix/sysv/linux/arc/ld.abilist b/sysdeps/unix/sysv/linux/arc/arc32/ld.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/ld.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/ld.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/arc/arc32/libBrokenLocale.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/libBrokenLocale.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libanl.abilist b/sysdeps/unix/sysv/linux/arc/arc32/libanl.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/libanl.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/libanl.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/arc32/libc.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/libc.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/libc.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/arc/arc32/libc_malloc_debug.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/libc_malloc_debug.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/libc_malloc_debug.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libcrypt.abilist b/sysdeps/unix/sysv/linux/arc/arc32/libcrypt.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/libcrypt.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/libcrypt.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/arc32/libdl.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/libdl.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/libdl.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/arc32/libm.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/libm.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/libm.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/arc32/libpthread.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/libpthread.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/libpthread.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/arc32/libresolv.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/libresolv.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/libresolv.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/arc32/librt.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/librt.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/librt.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libthread_db.abilist b/sysdeps/unix/sysv/linux/arc/arc32/libthread_db.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/libthread_db.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/libthread_db.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libutil.abilist b/sysdeps/unix/sysv/linux/arc/arc32/libutil.abilist
+similarity index 100%
+copy from sysdeps/unix/sysv/linux/arc/libutil.abilist
+copy to sysdeps/unix/sysv/linux/arc/arc32/libutil.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/arc64/Implies b/sysdeps/unix/sysv/linux/arc/arc64/Implies
+new file mode 100644
+index 0000000000..05abf4461a
+--- /dev/null
++++ b/sysdeps/unix/sysv/linux/arc/arc64/Implies
+@@ -0,0 +1,2 @@
++unix/sysv/linux/arc
++unix/sysv/linux/wordsize-64
+diff --git a/sysdeps/unix/sysv/linux/arc/arch-syscall.h b/sysdeps/unix/sysv/linux/arc/arc64/arch-syscall.h
+similarity index 89%
+rename from sysdeps/unix/sysv/linux/arc/arch-syscall.h
+rename to sysdeps/unix/sysv/linux/arc/arc64/arch-syscall.h
+index c1207aaa12..c73f38e567 100644
+--- a/sysdeps/unix/sysv/linux/arc/arch-syscall.h
++++ b/sysdeps/unix/sysv/linux/arc/arc64/arch-syscall.h
+@@ -15,11 +15,11 @@
+ #define __NR_capset 91
+ #define __NR_chdir 49
+ #define __NR_chroot 51
+-#define __NR_clock_adjtime64 405
+-#define __NR_clock_getres_time64 406
+-#define __NR_clock_gettime64 403
+-#define __NR_clock_nanosleep_time64 407
+-#define __NR_clock_settime64 404
++#define __NR_clock_adjtime 266
++#define __NR_clock_getres 114
++#define __NR_clock_gettime 113
++#define __NR_clock_nanosleep 115
++#define __NR_clock_settime 112
+ #define __NR_clone 220
+ #define __NR_clone3 435
+ #define __NR_close 57
+@@ -40,7 +40,7 @@
+ #define __NR_exit_group 94
+ #define __NR_faccessat 48
+ #define __NR_faccessat2 439
+-#define __NR_fadvise64_64 223
++#define __NR_fadvise64 223
+ #define __NR_fallocate 47
+ #define __NR_fanotify_init 262
+ #define __NR_fanotify_mark 263
+@@ -49,7 +49,7 @@
+ #define __NR_fchmodat 53
+ #define __NR_fchown 55
+ #define __NR_fchownat 54
+-#define __NR_fcntl64 25
++#define __NR_fcntl 25
+ #define __NR_fdatasync 83
+ #define __NR_fgetxattr 10
+ #define __NR_finit_module 273
+@@ -61,10 +61,11 @@
+ #define __NR_fsmount 432
+ #define __NR_fsopen 430
+ #define __NR_fspick 433
+-#define __NR_fstatfs64 44
++#define __NR_fstat 80
++#define __NR_fstatfs 44
+ #define __NR_fsync 82
+-#define __NR_ftruncate64 46
+-#define __NR_futex_time64 422
++#define __NR_ftruncate 46
++#define __NR_futex 98
+ #define __NR_futex_waitv 449
+ #define __NR_get_mempolicy 236
+ #define __NR_get_robust_list 100
+@@ -101,7 +102,6 @@
+ #define __NR_io_destroy 1
+ #define __NR_io_getevents 4
+ #define __NR_io_pgetevents 292
+-#define __NR_io_pgetevents_time64 416
+ #define __NR_io_setup 0
+ #define __NR_io_submit 2
+ #define __NR_io_uring_enter 426
+@@ -123,9 +123,9 @@
+ #define __NR_listen 201
+ #define __NR_listxattr 11
+ #define __NR_llistxattr 12
+-#define __NR_llseek 62
+ #define __NR_lookup_dcookie 18
+ #define __NR_lremovexattr 15
++#define __NR_lseek 62
+ #define __NR_lsetxattr 6
+ #define __NR_madvise 233
+ #define __NR_mbind 235
+@@ -138,7 +138,7 @@
+ #define __NR_mlock 228
+ #define __NR_mlock2 284
+ #define __NR_mlockall 230
+-#define __NR_mmap2 222
++#define __NR_mmap 222
+ #define __NR_mount 40
+ #define __NR_mount_setattr 442
+ #define __NR_move_mount 429
+@@ -147,8 +147,8 @@
+ #define __NR_mq_getsetattr 185
+ #define __NR_mq_notify 184
+ #define __NR_mq_open 180
+-#define __NR_mq_timedreceive_time64 419
+-#define __NR_mq_timedsend_time64 418
++#define __NR_mq_timedreceive 183
++#define __NR_mq_timedsend 182
+ #define __NR_mq_unlink 181
+ #define __NR_mremap 216
+ #define __NR_msgctl 187
+@@ -161,6 +161,7 @@
+ #define __NR_munmap 215
+ #define __NR_name_to_handle_at 264
+ #define __NR_nanosleep 101
++#define __NR_newfstatat 79
+ #define __NR_nfsservctl 42
+ #define __NR_open_by_handle_at 265
+ #define __NR_open_tree 428
+@@ -176,7 +177,7 @@
+ #define __NR_pkey_alloc 289
+ #define __NR_pkey_free 290
+ #define __NR_pkey_mprotect 288
+-#define __NR_ppoll_time64 414
++#define __NR_ppoll 73
+ #define __NR_prctl 167
+ #define __NR_pread64 67
+ #define __NR_preadv 69
+@@ -186,7 +187,7 @@
+ #define __NR_process_mrelease 448
+ #define __NR_process_vm_readv 270
+ #define __NR_process_vm_writev 271
+-#define __NR_pselect6_time64 413
++#define __NR_pselect6 72
+ #define __NR_ptrace 117
+ #define __NR_pwrite64 68
+ #define __NR_pwritev 70
+@@ -199,7 +200,7 @@
+ #define __NR_readv 65
+ #define __NR_reboot 142
+ #define __NR_recvfrom 207
+-#define __NR_recvmmsg_time64 417
++#define __NR_recvmmsg 243
+ #define __NR_recvmsg 212
+ #define __NR_remap_file_pages 234
+ #define __NR_removexattr 14
+@@ -214,7 +215,7 @@
+ #define __NR_rt_sigqueueinfo 138
+ #define __NR_rt_sigreturn 139
+ #define __NR_rt_sigsuspend 133
+-#define __NR_rt_sigtimedwait_time64 421
++#define __NR_rt_sigtimedwait 137
+ #define __NR_rt_tgsigqueueinfo 240
+ #define __NR_sched_get_priority_max 125
+ #define __NR_sched_get_priority_min 126
+@@ -222,7 +223,7 @@
+ #define __NR_sched_getattr 275
+ #define __NR_sched_getparam 121
+ #define __NR_sched_getscheduler 120
+-#define __NR_sched_rr_get_interval_time64 423
++#define __NR_sched_rr_get_interval 127
+ #define __NR_sched_setaffinity 122
+ #define __NR_sched_setattr 274
+ #define __NR_sched_setparam 118
+@@ -232,8 +233,8 @@
+ #define __NR_semctl 191
+ #define __NR_semget 190
+ #define __NR_semop 193
+-#define __NR_semtimedop_time64 420
+-#define __NR_sendfile64 71
++#define __NR_semtimedop 192
++#define __NR_sendfile 71
+ #define __NR_sendmmsg 269
+ #define __NR_sendmsg 211
+ #define __NR_sendto 206
+@@ -271,7 +272,7 @@
+ #define __NR_socket 198
+ #define __NR_socketpair 199
+ #define __NR_splice 76
+-#define __NR_statfs64 43
++#define __NR_statfs 43
+ #define __NR_statx 291
+ #define __NR_swapoff 225
+ #define __NR_swapon 224
+@@ -287,21 +288,21 @@
+ #define __NR_timer_create 107
+ #define __NR_timer_delete 111
+ #define __NR_timer_getoverrun 109
+-#define __NR_timer_gettime64 408
+-#define __NR_timer_settime64 409
++#define __NR_timer_gettime 108
++#define __NR_timer_settime 110
+ #define __NR_timerfd_create 85
+-#define __NR_timerfd_gettime64 410
+-#define __NR_timerfd_settime64 411
++#define __NR_timerfd_gettime 87
++#define __NR_timerfd_settime 86
+ #define __NR_times 153
+ #define __NR_tkill 130
+-#define __NR_truncate64 45
++#define __NR_truncate 45
+ #define __NR_umask 166
+ #define __NR_umount2 39
+ #define __NR_uname 160
+ #define __NR_unlinkat 35
+ #define __NR_unshare 97
+ #define __NR_userfaultfd 282
+-#define __NR_utimensat_time64 412
++#define __NR_utimensat 88
+ #define __NR_vhangup 58
+ #define __NR_vmsplice 75
+ #define __NR_wait4 260
+diff --git a/sysdeps/unix/sysv/linux/arc/c++-types.data b/sysdeps/unix/sysv/linux/arc/arc64/c++-types.data
+similarity index 73%
+rename from sysdeps/unix/sysv/linux/arc/c++-types.data
+rename to sysdeps/unix/sysv/linux/arc/arc64/c++-types.data
+index 0fb0143ae7..ac925ccb36 100644
+--- a/sysdeps/unix/sysv/linux/arc/c++-types.data
++++ b/sysdeps/unix/sysv/linux/arc/arc64/c++-types.data
+@@ -1,32 +1,32 @@
+-blkcnt64_t:x
+-blkcnt_t:x
++blkcnt64_t:l
++blkcnt_t:l
+ blksize_t:i
+ caddr_t:Pc
+ clockid_t:i
+ clock_t:l
+ daddr_t:i
+-dev_t:y
++dev_t:m
+ fd_mask:l
+-fsblkcnt64_t:y
+-fsblkcnt_t:y
+-fsfilcnt64_t:y
+-fsfilcnt_t:y
++fsblkcnt64_t:m
++fsblkcnt_t:m
++fsfilcnt64_t:m
++fsfilcnt_t:m
+ fsid_t:8__fsid_t
+ gid_t:j
+ id_t:j
+-ino64_t:y
+-ino_t:y
++ino64_t:m
++ino_t:m
+ int16_t:s
+ int32_t:i
+-int64_t:x
++int64_t:l
+ int8_t:a
+-intptr_t:i
++intptr_t:l
+ key_t:i
+-loff_t:x
++loff_t:l
+ mode_t:j
+ nlink_t:j
+-off64_t:x
+-off_t:x
++off64_t:l
++off_t:l
+ pid_t:i
+ pthread_attr_t:14pthread_attr_t
+ pthread_barrier_t:17pthread_barrier_t
+@@ -41,27 +41,27 @@ pthread_rwlock_t:16pthread_rwlock_t
+ pthread_rwlockattr_t:20pthread_rwlockattr_t
+ pthread_spinlock_t:i
+ pthread_t:m
+-quad_t:x
+-register_t:i
+-rlim64_t:y
+-rlim_t:y
++quad_t:l
++register_t:l
++rlim64_t:m
++rlim_t:m
+ sigset_t:10__sigset_t
+-size_t:j
++size_t:m
+ socklen_t:j
+-ssize_t:i
+-suseconds_t:x
+-time_t:x
++ssize_t:l
++suseconds_t:l
++time_t:l
+ u_char:h
+ uid_t:j
+ uint:j
+ u_int:j
+ u_int16_t:t
+ u_int32_t:j
+-u_int64_t:y
++u_int64_t:m
+ u_int8_t:h
+ ulong:m
+ u_long:m
+-u_quad_t:y
++u_quad_t:m
+ useconds_t:j
+ ushort:t
+ u_short:t
+diff --git a/sysdeps/unix/sysv/linux/arc/ld.abilist b/sysdeps/unix/sysv/linux/arc/arc64/ld.abilist
+similarity index 54%
+rename from sysdeps/unix/sysv/linux/arc/ld.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/ld.abilist
+index 55f0c2ab9c..3a4bcb95f2 100644
+--- a/sysdeps/unix/sysv/linux/arc/ld.abilist
++++ b/sysdeps/unix/sysv/linux/arc/arc64/ld.abilist
+@@ -1,9 +1,9 @@
+-GLIBC_2.32 __libc_stack_end D 0x4
+-GLIBC_2.32 __stack_chk_guard D 0x4
++GLIBC_2.32 __libc_stack_end D 0x8
++GLIBC_2.32 __stack_chk_guard D 0x8
+ GLIBC_2.32 __tls_get_addr F
+ GLIBC_2.32 _dl_mcount F
+-GLIBC_2.32 _r_debug D 0x14
++GLIBC_2.32 _r_debug D 0x28
+ GLIBC_2.34 __rtld_version_placeholder F
+ GLIBC_2.35 __rseq_flags D 0x4
+-GLIBC_2.35 __rseq_offset D 0x4
++GLIBC_2.35 __rseq_offset D 0x8
+ GLIBC_2.35 __rseq_size D 0x4
+diff --git a/sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist b/sysdeps/unix/sysv/linux/arc/arc64/libBrokenLocale.abilist
+similarity index 100%
+rename from sysdeps/unix/sysv/linux/arc/libBrokenLocale.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/libBrokenLocale.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libanl.abilist b/sysdeps/unix/sysv/linux/arc/arc64/libanl.abilist
+similarity index 100%
+rename from sysdeps/unix/sysv/linux/arc/libanl.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/libanl.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist b/sysdeps/unix/sysv/linux/arc/arc64/libc.abilist
+similarity index 97%
+rename from sysdeps/unix/sysv/linux/arc/libc.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/libc.abilist
+index dfe0c3f7b6..d07723e742 100644
+--- a/sysdeps/unix/sysv/linux/arc/libc.abilist
++++ b/sysdeps/unix/sysv/linux/arc/arc64/libc.abilist
+@@ -1,7 +1,7 @@
+ GLIBC_2.32 _Exit F
+-GLIBC_2.32 _IO_2_1_stderr_ D 0x9c
+-GLIBC_2.32 _IO_2_1_stdin_ D 0x9c
+-GLIBC_2.32 _IO_2_1_stdout_ D 0x9c
++GLIBC_2.32 _IO_2_1_stderr_ D 0xe0
++GLIBC_2.32 _IO_2_1_stdin_ D 0xe0
++GLIBC_2.32 _IO_2_1_stdout_ D 0xe0
+ GLIBC_2.32 _IO_adjust_column F
+ GLIBC_2.32 _IO_adjust_wcolumn F
+ GLIBC_2.32 _IO_default_doallocate F
+@@ -27,7 +27,7 @@ GLIBC_2.32 _IO_file_doallocate F
+ GLIBC_2.32 _IO_file_finish F
+ GLIBC_2.32 _IO_file_fopen F
+ GLIBC_2.32 _IO_file_init F
+-GLIBC_2.32 _IO_file_jumps D 0x54
++GLIBC_2.32 _IO_file_jumps D 0xa8
+ GLIBC_2.32 _IO_file_open F
+ GLIBC_2.32 _IO_file_overflow F
+ GLIBC_2.32 _IO_file_read F
+@@ -67,7 +67,7 @@ GLIBC_2.32 _IO_iter_file F
+ GLIBC_2.32 _IO_iter_next F
+ GLIBC_2.32 _IO_least_wmarker F
+ GLIBC_2.32 _IO_link_in F
+-GLIBC_2.32 _IO_list_all D 0x4
++GLIBC_2.32 _IO_list_all D 0x8
+ GLIBC_2.32 _IO_list_lock F
+ GLIBC_2.32 _IO_list_resetlock F
+ GLIBC_2.32 _IO_list_unlock F
+@@ -120,7 +120,7 @@ GLIBC_2.32 _IO_wdefault_xsgetn F
+ GLIBC_2.32 _IO_wdefault_xsputn F
+ GLIBC_2.32 _IO_wdo_write F
+ GLIBC_2.32 _IO_wdoallocbuf F
+-GLIBC_2.32 _IO_wfile_jumps D 0x54
++GLIBC_2.32 _IO_wfile_jumps D 0xa8
+ GLIBC_2.32 _IO_wfile_overflow F
+ GLIBC_2.32 _IO_wfile_seekoff F
+ GLIBC_2.32 _IO_wfile_sync F
+@@ -128,9 +128,9 @@ GLIBC_2.32 _IO_wfile_underflow F
+ GLIBC_2.32 _IO_wfile_xsputn F
+ GLIBC_2.32 _IO_wmarker_delta F
+ GLIBC_2.32 _IO_wsetb F
+-GLIBC_2.32 ___brk_addr D 0x4
++GLIBC_2.32 ___brk_addr D 0x8
+ GLIBC_2.32 __adjtimex F
+-GLIBC_2.32 __after_morecore_hook D 0x4
++GLIBC_2.32 __after_morecore_hook D 0x8
+ GLIBC_2.32 __argz_count F
+ GLIBC_2.32 __argz_next F
+ GLIBC_2.32 __argz_stringify F
+@@ -155,7 +155,7 @@ GLIBC_2.32 __ctype_b_loc F
+ GLIBC_2.32 __ctype_get_mb_cur_max F
+ GLIBC_2.32 __ctype_tolower_loc F
+ GLIBC_2.32 __ctype_toupper_loc F
+-GLIBC_2.32 __curbrk D 0x4
++GLIBC_2.32 __curbrk D 0x8
+ GLIBC_2.32 __cxa_at_quick_exit F
+ GLIBC_2.32 __cxa_atexit F
+ GLIBC_2.32 __cxa_finalize F
+@@ -173,7 +173,7 @@ GLIBC_2.32 __dprintf_chk F
+ GLIBC_2.32 __dup2 F
+ GLIBC_2.32 __duplocale F
+ GLIBC_2.32 __endmntent F
+-GLIBC_2.32 __environ D 0x4
++GLIBC_2.32 __environ D 0x8
+ GLIBC_2.32 __errno_location F
+ GLIBC_2.32 __explicit_bzero_chk F
+ GLIBC_2.32 __fbufsize F
+@@ -197,7 +197,7 @@ GLIBC_2.32 __fread_chk F
+ GLIBC_2.32 __fread_unlocked_chk F
+ GLIBC_2.32 __freadable F
+ GLIBC_2.32 __freading F
+-GLIBC_2.32 __free_hook D 0x4
++GLIBC_2.32 __free_hook D 0x8
+ GLIBC_2.32 __freelocale F
+ GLIBC_2.32 __fsetlocking F
+ GLIBC_2.32 __fwprintf_chk F
+@@ -289,20 +289,20 @@ GLIBC_2.32 __longjmp_chk F
+ GLIBC_2.32 __lseek F
+ GLIBC_2.32 __lxstat F
+ GLIBC_2.32 __lxstat64 F
+-GLIBC_2.32 __malloc_hook D 0x4
++GLIBC_2.32 __malloc_hook D 0x8
+ GLIBC_2.32 __mbrlen F
+ GLIBC_2.32 __mbrtowc F
+ GLIBC_2.32 __mbsnrtowcs_chk F
+ GLIBC_2.32 __mbsrtowcs_chk F
+ GLIBC_2.32 __mbstowcs_chk F
+-GLIBC_2.32 __memalign_hook D 0x4
++GLIBC_2.32 __memalign_hook D 0x8
+ GLIBC_2.32 __memcpy_chk F
+ GLIBC_2.32 __memmove_chk F
+ GLIBC_2.32 __mempcpy F
+ GLIBC_2.32 __mempcpy_chk F
+ GLIBC_2.32 __memset_chk F
+ GLIBC_2.32 __monstartup F
+-GLIBC_2.32 __morecore D 0x4
++GLIBC_2.32 __morecore D 0x8
+ GLIBC_2.32 __mq_open_2 F
+ GLIBC_2.32 __nanosleep F
+ GLIBC_2.32 __newlocale F
+@@ -329,8 +329,8 @@ GLIBC_2.32 __pread_chk F
+ GLIBC_2.32 __printf_chk F
+ GLIBC_2.32 __printf_fp F
+ GLIBC_2.32 __profile_frequency F
+-GLIBC_2.32 __progname D 0x4
+-GLIBC_2.32 __progname_full D 0x4
++GLIBC_2.32 __progname D 0x8
++GLIBC_2.32 __progname_full D 0x8
+ GLIBC_2.32 __pthread_cleanup_routine F
+ GLIBC_2.32 __pthread_getspecific F
+ GLIBC_2.32 __pthread_key_create F
+@@ -359,12 +359,12 @@ GLIBC_2.32 __pthread_unwind_next F
+ GLIBC_2.32 __ptsname_r_chk F
+ GLIBC_2.32 __pwrite64 F
+ GLIBC_2.32 __rawmemchr F
+-GLIBC_2.32 __rcmd_errstr D 0x4
++GLIBC_2.32 __rcmd_errstr D 0x8
+ GLIBC_2.32 __read F
+ GLIBC_2.32 __read_chk F
+ GLIBC_2.32 __readlink_chk F
+ GLIBC_2.32 __readlinkat_chk F
+-GLIBC_2.32 __realloc_hook D 0x4
++GLIBC_2.32 __realloc_hook D 0x8
+ GLIBC_2.32 __realpath_chk F
+ GLIBC_2.32 __recv_chk F
+ GLIBC_2.32 __recvfrom_chk F
+@@ -452,7 +452,7 @@ GLIBC_2.32 __swprintf_chk F
+ GLIBC_2.32 __sysconf F
+ GLIBC_2.32 __syslog_chk F
+ GLIBC_2.32 __sysv_signal F
+-GLIBC_2.32 __timezone D 0x4
++GLIBC_2.32 __timezone D 0x8
+ GLIBC_2.32 __toascii_l F
+ GLIBC_2.32 __tolower_l F
+ GLIBC_2.32 __toupper_l F
+@@ -461,7 +461,7 @@ GLIBC_2.32 __towctrans_l F
+ GLIBC_2.32 __towlower_l F
+ GLIBC_2.32 __towupper_l F
+ GLIBC_2.32 __ttyname_r_chk F
+-GLIBC_2.32 __tzname D 0x8
++GLIBC_2.32 __tzname D 0x10
+ GLIBC_2.32 __uflow F
+ GLIBC_2.32 __underflow F
+ GLIBC_2.32 __uselocale F
+@@ -531,7 +531,7 @@ GLIBC_2.32 __xstat F
+ GLIBC_2.32 __xstat64 F
+ GLIBC_2.32 _dl_mcount_wrapper F
+ GLIBC_2.32 _dl_mcount_wrapper_check F
+-GLIBC_2.32 _environ D 0x4
++GLIBC_2.32 _environ D 0x8
+ GLIBC_2.32 _exit F
+ GLIBC_2.32 _flush_cache F
+ GLIBC_2.32 _flushlbf F
+@@ -540,7 +540,7 @@ GLIBC_2.32 _longjmp F
+ GLIBC_2.32 _mcleanup F
+ GLIBC_2.32 _mcount F
+ GLIBC_2.32 _nl_default_dirname D 0x12
+-GLIBC_2.32 _nl_domain_bindings D 0x4
++GLIBC_2.32 _nl_domain_bindings D 0x8
+ GLIBC_2.32 _nl_msg_cat_cntr D 0x4
+ GLIBC_2.32 _obstack_allocated_p F
+ GLIBC_2.32 _obstack_begin F
+@@ -552,8 +552,8 @@ GLIBC_2.32 _pthread_cleanup_pop F
+ GLIBC_2.32 _pthread_cleanup_pop_restore F
+ GLIBC_2.32 _pthread_cleanup_push F
+ GLIBC_2.32 _pthread_cleanup_push_defer F
+-GLIBC_2.32 _res D 0x200
+-GLIBC_2.32 _res_hconf D 0x30
++GLIBC_2.32 _res D 0x238
++GLIBC_2.32 _res_hconf D 0x48
+ GLIBC_2.32 _setjmp F
+ GLIBC_2.32 _tolower F
+ GLIBC_2.32 _toupper F
+@@ -592,9 +592,9 @@ GLIBC_2.32 argp_error F
+ GLIBC_2.32 argp_failure F
+ GLIBC_2.32 argp_help F
+ GLIBC_2.32 argp_parse F
+-GLIBC_2.32 argp_program_bug_address D 0x4
+-GLIBC_2.32 argp_program_version D 0x4
+-GLIBC_2.32 argp_program_version_hook D 0x4
++GLIBC_2.32 argp_program_bug_address D 0x8
++GLIBC_2.32 argp_program_version D 0x8
++GLIBC_2.32 argp_program_version_hook D 0x8
+ GLIBC_2.32 argp_state_help F
+ GLIBC_2.32 argp_usage F
+ GLIBC_2.32 argz_add F
+@@ -734,7 +734,7 @@ GLIBC_2.32 endttyent F
+ GLIBC_2.32 endusershell F
+ GLIBC_2.32 endutent F
+ GLIBC_2.32 endutxent F
+-GLIBC_2.32 environ D 0x4
++GLIBC_2.32 environ D 0x8
+ GLIBC_2.32 envz_add F
+ GLIBC_2.32 envz_entry F
+ GLIBC_2.32 envz_get F
+@@ -753,7 +753,7 @@ GLIBC_2.32 error F
+ GLIBC_2.32 error_at_line F
+ GLIBC_2.32 error_message_count D 0x4
+ GLIBC_2.32 error_one_per_line D 0x4
+-GLIBC_2.32 error_print_progname D 0x4
++GLIBC_2.32 error_print_progname D 0x8
+ GLIBC_2.32 errx F
+ GLIBC_2.32 ether_aton F
+ GLIBC_2.32 ether_aton_r F
+@@ -1078,7 +1078,7 @@ GLIBC_2.32 grantpt F
+ GLIBC_2.32 group_member F
+ GLIBC_2.32 gsignal F
+ GLIBC_2.32 gtty F
+-GLIBC_2.32 h_errlist D 0x14
++GLIBC_2.32 h_errlist D 0x28
+ GLIBC_2.32 h_nerr D 0x4
+ GLIBC_2.32 hasmntopt F
+ GLIBC_2.32 hcreate F
+@@ -1260,7 +1260,7 @@ GLIBC_2.32 malloc_stats F
+ GLIBC_2.32 malloc_trim F
+ GLIBC_2.32 malloc_usable_size F
+ GLIBC_2.32 mallopt F
+-GLIBC_2.32 mallwatch D 0x4
++GLIBC_2.32 mallwatch D 0x8
+ GLIBC_2.32 mblen F
+ GLIBC_2.32 mbrlen F
+ GLIBC_2.32 mbrtoc16 F
+@@ -1367,7 +1367,7 @@ GLIBC_2.32 ntohs F
+ GLIBC_2.32 ntp_adjtime F
+ GLIBC_2.32 ntp_gettime F
+ GLIBC_2.32 ntp_gettimex F
+-GLIBC_2.32 obstack_alloc_failed_handler D 0x4
++GLIBC_2.32 obstack_alloc_failed_handler D 0x8
+ GLIBC_2.32 obstack_exit_failure D 0x4
+ GLIBC_2.32 obstack_free F
+ GLIBC_2.32 obstack_printf F
+@@ -1383,7 +1383,7 @@ GLIBC_2.32 openat64 F
+ GLIBC_2.32 opendir F
+ GLIBC_2.32 openlog F
+ GLIBC_2.32 openpty F
+-GLIBC_2.32 optarg D 0x4
++GLIBC_2.32 optarg D 0x8
+ GLIBC_2.32 opterr D 0x4
+ GLIBC_2.32 optind D 0x4
+ GLIBC_2.32 optopt D 0x4
+@@ -1449,8 +1449,8 @@ GLIBC_2.32 prlimit64 F
+ GLIBC_2.32 process_vm_readv F
+ GLIBC_2.32 process_vm_writev F
+ GLIBC_2.32 profil F
+-GLIBC_2.32 program_invocation_name D 0x4
+-GLIBC_2.32 program_invocation_short_name D 0x4
++GLIBC_2.32 program_invocation_name D 0x8
++GLIBC_2.32 program_invocation_short_name D 0x8
+ GLIBC_2.32 pselect F
+ GLIBC_2.32 psiginfo F
+ GLIBC_2.32 psignal F
+@@ -1637,7 +1637,7 @@ GLIBC_2.32 re_search F
+ GLIBC_2.32 re_search_2 F
+ GLIBC_2.32 re_set_registers F
+ GLIBC_2.32 re_set_syntax F
+-GLIBC_2.32 re_syntax_options D 0x4
++GLIBC_2.32 re_syntax_options D 0x8
+ GLIBC_2.32 read F
+ GLIBC_2.32 readahead F
+ GLIBC_2.32 readdir F
+@@ -1850,9 +1850,9 @@ GLIBC_2.32 statfs64 F
+ GLIBC_2.32 statvfs F
+ GLIBC_2.32 statvfs64 F
+ GLIBC_2.32 statx F
+-GLIBC_2.32 stderr D 0x4
+-GLIBC_2.32 stdin D 0x4
+-GLIBC_2.32 stdout D 0x4
++GLIBC_2.32 stderr D 0x8
++GLIBC_2.32 stdin D 0x8
++GLIBC_2.32 stdout D 0x8
+ GLIBC_2.32 stpcpy F
+ GLIBC_2.32 stpncpy F
+ GLIBC_2.32 strcasecmp F
+@@ -1984,7 +1984,7 @@ GLIBC_2.32 timerfd_gettime F
+ GLIBC_2.32 timerfd_settime F
+ GLIBC_2.32 times F
+ GLIBC_2.32 timespec_get F
+-GLIBC_2.32 timezone D 0x4
++GLIBC_2.32 timezone D 0x8
+ GLIBC_2.32 tmpfile F
+ GLIBC_2.32 tmpfile64 F
+ GLIBC_2.32 tmpnam F
+@@ -2013,7 +2013,7 @@ GLIBC_2.32 ttyname_r F
+ GLIBC_2.32 ttyslot F
+ GLIBC_2.32 twalk F
+ GLIBC_2.32 twalk_r F
+-GLIBC_2.32 tzname D 0x8
++GLIBC_2.32 tzname D 0x10
+ GLIBC_2.32 tzset F
+ GLIBC_2.32 ualarm F
+ GLIBC_2.32 ulckpwdf F
+diff --git a/sysdeps/unix/sysv/linux/arc/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/arc/arc64/libc_malloc_debug.abilist
+similarity index 80%
+rename from sysdeps/unix/sysv/linux/arc/libc_malloc_debug.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/libc_malloc_debug.abilist
+index cf9f611403..c50393d8cc 100644
+--- a/sysdeps/unix/sysv/linux/arc/libc_malloc_debug.abilist
++++ b/sysdeps/unix/sysv/linux/arc/arc64/libc_malloc_debug.abilist
+@@ -1,7 +1,7 @@
+-GLIBC_2.32 __free_hook D 0x4
+-GLIBC_2.32 __malloc_hook D 0x4
+-GLIBC_2.32 __memalign_hook D 0x4
+-GLIBC_2.32 __realloc_hook D 0x4
++GLIBC_2.32 __free_hook D 0x8
++GLIBC_2.32 __malloc_hook D 0x8
++GLIBC_2.32 __memalign_hook D 0x8
++GLIBC_2.32 __realloc_hook D 0x8
+ GLIBC_2.32 aligned_alloc F
+ GLIBC_2.32 calloc F
+ GLIBC_2.32 free F
+diff --git a/sysdeps/unix/sysv/linux/arc/libcrypt.abilist b/sysdeps/unix/sysv/linux/arc/arc64/libcrypt.abilist
+similarity index 100%
+rename from sysdeps/unix/sysv/linux/arc/libcrypt.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/libcrypt.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libdl.abilist b/sysdeps/unix/sysv/linux/arc/arc64/libdl.abilist
+similarity index 100%
+rename from sysdeps/unix/sysv/linux/arc/libdl.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/libdl.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libm.abilist b/sysdeps/unix/sysv/linux/arc/arc64/libm.abilist
+similarity index 100%
+rename from sysdeps/unix/sysv/linux/arc/libm.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/libm.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libpthread.abilist b/sysdeps/unix/sysv/linux/arc/arc64/libpthread.abilist
+similarity index 100%
+rename from sysdeps/unix/sysv/linux/arc/libpthread.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/libpthread.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libresolv.abilist b/sysdeps/unix/sysv/linux/arc/arc64/libresolv.abilist
+similarity index 95%
+rename from sysdeps/unix/sysv/linux/arc/libresolv.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/libresolv.abilist
+index 47c5072f61..76ab1dedfb 100644
+--- a/sysdeps/unix/sysv/linux/arc/libresolv.abilist
++++ b/sysdeps/unix/sysv/linux/arc/arc64/libresolv.abilist
+@@ -10,7 +10,7 @@ GLIBC_2.32 __loc_ntoa F
+ GLIBC_2.32 __p_cdname F
+ GLIBC_2.32 __p_cdnname F
+ GLIBC_2.32 __p_class F
+-GLIBC_2.32 __p_class_syms D 0x54
++GLIBC_2.32 __p_class_syms D 0xa8
+ GLIBC_2.32 __p_fqname F
+ GLIBC_2.32 __p_fqnname F
+ GLIBC_2.32 __p_option F
+@@ -18,7 +18,7 @@ GLIBC_2.32 __p_query F
+ GLIBC_2.32 __p_rcode F
+ GLIBC_2.32 __p_time F
+ GLIBC_2.32 __p_type F
+-GLIBC_2.32 __p_type_syms D 0x228
++GLIBC_2.32 __p_type_syms D 0x450
+ GLIBC_2.32 __putlong F
+ GLIBC_2.32 __putshort F
+ GLIBC_2.32 __res_close F
+diff --git a/sysdeps/unix/sysv/linux/arc/librt.abilist b/sysdeps/unix/sysv/linux/arc/arc64/librt.abilist
+similarity index 100%
+rename from sysdeps/unix/sysv/linux/arc/librt.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/librt.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libthread_db.abilist b/sysdeps/unix/sysv/linux/arc/arc64/libthread_db.abilist
+similarity index 100%
+rename from sysdeps/unix/sysv/linux/arc/libthread_db.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/libthread_db.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/libutil.abilist b/sysdeps/unix/sysv/linux/arc/arc64/libutil.abilist
+similarity index 100%
+rename from sysdeps/unix/sysv/linux/arc/libutil.abilist
+rename to sysdeps/unix/sysv/linux/arc/arc64/libutil.abilist
+diff --git a/sysdeps/unix/sysv/linux/arc/bits/fcntl.h b/sysdeps/unix/sysv/linux/arc/bits/fcntl.h
+new file mode 100644
+index 0000000000..20292fd32f
+--- /dev/null
++++ b/sysdeps/unix/sysv/linux/arc/bits/fcntl.h
+@@ -0,0 +1,62 @@
++/* O_*, F_*, FD_* bit values for Linux / ARC
++ Copyright (C) 2011-2021 Free Software Foundation, Inc.
++
++ This file is part of the GNU C Library.
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library 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
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library; if not, see
++ <https://www.gnu.org/licenses/>. */
++
++#ifndef _FCNTL_H
++# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
++#endif
++
++#include <bits/wordsize.h>
++
++/* In 64-bit ISA files are always with 64bit off_t and F_*LK64 are the same as
++ non-64-bit versions. It will need to be revised for 128-bit. */
++#if __WORDSIZE == 64
++# define __O_LARGEFILE 0
++
++# define F_GETLK64 5 /* Get record locking info. */
++# define F_SETLK64 6 /* Set record locking info (non-blocking). */
++# define F_SETLKW64 7 /* Set record locking info (blocking). */
++#endif
++
++struct flock
++ {
++ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
++ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
++#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64
++ __off_t l_start; /* Offset where the lock begins. */
++ __off_t l_len; /* Size of the locked area; zero means until EOF. */
++#else
++ __off64_t l_start; /* Offset where the lock begins. */
++ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
++#endif
++ __pid_t l_pid; /* Process holding the lock. */
++ };
++
++#ifdef __USE_LARGEFILE64
++struct flock64
++ {
++ short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
++ short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
++ __off64_t l_start; /* Offset where the lock begins. */
++ __off64_t l_len; /* Size of the locked area; zero means until EOF. */
++ __pid_t l_pid; /* Process holding the lock. */
++ };
++#endif
++
++/* Include generic Linux declarations. */
++#include <bits/fcntl-linux.h>
+diff --git a/sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h b/sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h
+index 795638a30b..6be69437f8 100644
+--- a/sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h
++++ b/sysdeps/unix/sysv/linux/arc/bits/types/__sigset_t.h
+@@ -3,7 +3,7 @@
+ #define ____sigset_t_defined
+
+ /* Linux asm-generic syscall ABI expects sigset_t to hold 64 signals. */
+-#define _SIGSET_NWORDS (64 / (8 * sizeof (unsigned long int)))
++#define _SIGSET_NWORDS 2
+ typedef struct
+ {
+ unsigned long int __val[_SIGSET_NWORDS];
+diff --git a/sysdeps/unix/sysv/linux/arc/clone.S b/sysdeps/unix/sysv/linux/arc/clone.S
+index d8c7b93d1c..364fa1edde 100644
+--- a/sysdeps/unix/sysv/linux/arc/clone.S
++++ b/sysdeps/unix/sysv/linux/arc/clone.S
+@@ -31,41 +31,41 @@
+ clone syscall in kernel (ABI: CONFIG_CLONE_BACKWARDS)
+
+ int sys_clone(unsigned long int clone_flags,
+- unsigned long int newsp,
++ unsigned long int newsp,
+ int __user *parent_tidptr,
+ void *tls,
+ int __user *child_tidptr). */
+
+ ENTRY (__clone)
+- cmp r0, 0 /* @fn can't be NULL. */
+- and r1,r1,-4 /* @child_stack be 4 bytes aligned per ABI. */
+- cmp.ne r1, 0 /* @child_stack can't be NULL. */
++ CMPR r0, 0 /* @fn can't be NULL. */
++ ANDR r1, r1, -REGSZ /* @child_stack 4/8 aligned per ABI. */
++ CMPR.ne r1, 0 /* @child_stack can't be NULL. */
+ bz L (__sys_err)
+
+ /* save some of the orig args
+ r0 containing @fn will be clobbered AFTER syscall (with ret val)
+ rest are clobbered BEFORE syscall due to different arg ordering. */
+- mov r10, r0 /* @fn. */
+- mov r11, r3 /* @args. */
+- mov r12, r2 /* @clone_flags. */
+- mov r9, r5 /* @tls. */
++ MOVR r10, r0 /* @fn. */
++ MOVR r11, r3 /* @args. */
++ MOVR r12, r2 /* @clone_flags. */
++ MOVR r9, r5 /* @tls. */
+
+ /* adjust libc args for syscall. */
+
+- mov r0, r2 /* libc @flags is 1st syscall arg. */
+- mov r2, r4 /* libc @ptid. */
+- mov r3, r5 /* libc @tls. */
+- mov r4, r6 /* libc @ctid. */
++ MOVR r0, r2 /* libc @flags is 1st syscall arg. */
++ MOVR r2, r4 /* libc @ptid. */
++ MOVR r3, r5 /* libc @tls. */
++ MOVR r4, r6 /* libc @ctid. */
+ mov r8, __NR_clone
+ ARC_TRAP_INSN
+
+- cmp r0, 0 /* return code : 0 new process, !0 parent. */
++ CMPR r0, 0 /* return code : 0 new process, !0 parent. */
+ beq thread_start_clone
+ blt L (__sys_err2) /* < 0 (signed) error. */
+ j [blink] /* Parent returns. */
+
+ L (__sys_err):
+- mov r0, -EINVAL
++ MOVR r0, -EINVAL
+ L (__sys_err2):
+ /* (1) No need to make -ve kernel error code as positive errno
+ __syscall_error expects the -ve error code returned by kernel
+@@ -87,7 +87,7 @@ thread_start_clone:
+
+ /* Child jumps off to @fn with @arg as argument. */
+ jl.d [r10]
+- mov r0, r11
++ MOVR r0, r11
+
+ /* exit() with result from @fn (already in r0). */
+ mov r8, __NR_exit
+diff --git a/sysdeps/unix/sysv/linux/arc/clone3.S b/sysdeps/unix/sysv/linux/arc/clone3.S
+index 87a8272a39..7fc61524b5 100644
+--- a/sysdeps/unix/sysv/linux/arc/clone3.S
++++ b/sysdeps/unix/sysv/linux/arc/clone3.S
+@@ -37,9 +37,9 @@
+ ENTRY(__clone3)
+
+ /* Save args for the child. */
+- mov r10, r0 /* cl_args */
+- mov r11, r2 /* func */
+- mov r12, r3 /* args */
++ MOVR r10, r0 /* cl_args */
++ MOVR r11, r2 /* func */
++ MOVR r12, r3 /* args */
+
+ /* Sanity check args. */
+ breq r10, 0, L (__sys_err) /* No NULL cl_args pointer. */
+@@ -49,17 +49,17 @@ ENTRY(__clone3)
+ r8: system call number
+ r0: cl_args
+ r1: size */
+- mov r0, r10
++ MOVR r0, r10
+ mov r8, __NR_clone3
+ ARC_TRAP_INSN
+
+- cmp r0, 0
++ CMPR r0, 0
+ beq thread_start_clone3 /* Child returns. */
+ blt L (__sys_err2)
+ j [blink] /* Parent returns. */
+
+ L (__sys_err):
+- mov r0, -EINVAL
++ MOVR r0, -EINVAL
+ L (__sys_err2):
+ b __syscall_error
+ PSEUDO_END (__clone3)
+@@ -74,7 +74,7 @@ thread_start_clone3:
+
+ /* Child jumps off to @fn with @arg as argument. */
+ jl.d [r11]
+- mov r0, r12
++ MOVR r0, r12
+
+ /* exit() with result from @fn (already in r0). */
+ mov r8, __NR_exit
+diff --git a/sysdeps/unix/sysv/linux/arc/getcontext.S b/sysdeps/unix/sysv/linux/arc/getcontext.S
+index eb75c8ce02..851981b64c 100644
+--- a/sysdeps/unix/sysv/linux/arc/getcontext.S
++++ b/sysdeps/unix/sysv/linux/arc/getcontext.S
+@@ -26,39 +26,58 @@
+ ENTRY (__getcontext)
+
+ /* Callee saved registers. */
+- add r2, r0, UCONTEXT_MCONTEXT
+- STR (r13, r2, 37)
+- STR (r14, r2, 36)
+- STR (r15, r2, 35)
+- STR (r16, r2, 34)
+- STR (r17, r2, 33)
+- STR (r18, r2, 32)
+- STR (r19, r2, 31)
+- STR (r20, r2, 30)
+- STR (r21, r2, 29)
+- STR (r22, r2, 28)
+- STR (r23, r2, 27)
+- STR (r24, r2, 26)
++ ADDR r2, r0, UCONTEXT_MCONTEXT
++ STR.as r13, r2, 37
++ STR.as r14, r2, 36
++ STR.as r15, r2, 35
++ STR.as r16, r2, 34
++ STR.as r17, r2, 33
++ STR.as r18, r2, 32
++ STR.as r19, r2, 31
++ STR.as r20, r2, 30
++ STR.as r21, r2, 29
++ STR.as r22, r2, 28
++ STR.as r23, r2, 27
++ STR.as r24, r2, 26
+
+- STR (blink, r2, 7)
+- STR (fp, r2, 8)
+- STR (gp, r2, 9)
+- STR (sp, r2, 23)
++ STR.as blink, r2, 7
++ STR.as fp, r2, 8
++ STR.as gp, r2, 9
++ STR.as sp, r2, 23
++
++#if defined (__ARC_FLOAT_ABI_HARD__)
++ FSTR.as f16, r2, 51
++ FSTR.as f17, r2, 52
++ FSTR.as f18, r2, 53
++ FSTR.as f19, r2, 54
++ FSTR.as f20, r2, 55
++ FSTR.as f21, r2, 56
++ FSTR.as f22, r2, 57
++ FSTR.as f23, r2, 58
++ FSTR.as f24, r2, 59
++ FSTR.as f25, r2, 60
++ FSTR.as f26, r2, 61
++ FSTR.as f27, r2, 62
++ FSTR.as f28, r2, 63
++ FSTR.as f29, r2, 64
++ FSTR.as f30, r2, 65
++ FSTR.as f31, r2, 66
++#endif
+
+ /* Save 0 in r0 placeholder to return 0 when this @ucp activated. */
+- mov r9, 0
+- STR (r9, r2, 22)
++ mov r9, 0
++ STR.as r9, r2, 22
+
+ /* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8). */
+- mov r3, _NSIG8
+- add r2, r0, UCONTEXT_SIGMASK
+- mov r1, 0
+- mov r0, SIG_BLOCK
+- mov r8, __NR_rt_sigprocmask
++ mov r3, _NSIG8
++ ADDR r2, r0, UCONTEXT_SIGMASK
++ mov r1, 0
++ mov r0, SIG_BLOCK
++ mov r8, __NR_rt_sigprocmask
+ ARC_TRAP_INSN
+- brhi r0, -1024, L (call_syscall_err)
++ BRRhi r0, -1024, L (call_syscall_err)
+ j.d [blink]
+- mov r0, 0 /* Success, error handled in .Lcall_syscall_err. */
++ mov r0, 0 /* Success, error handled in .Lcall_syscall_err. */
+
+ PSEUDO_END (__getcontext)
+ weak_alias (__getcontext, getcontext)
+diff --git a/sysdeps/unix/sysv/linux/arc/setcontext.S b/sysdeps/unix/sysv/linux/arc/setcontext.S
+index 12708379d2..e0b8b1a183 100644
+--- a/sysdeps/unix/sysv/linux/arc/setcontext.S
++++ b/sysdeps/unix/sysv/linux/arc/setcontext.S
+@@ -24,46 +24,74 @@
+
+ ENTRY (__setcontext)
+
+- mov r9, r0 /* Stash @ucp across syscall. */
++ MOVR r9, r0 /* Stash @ucp across syscall. */
+
+ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8). */
+ mov r3, _NSIG8
+ mov r2, 0
+- add r1, r0, UCONTEXT_SIGMASK
++ ADDR r1, r0, UCONTEXT_SIGMASK
+ mov r0, SIG_SETMASK
+ mov r8, __NR_rt_sigprocmask
+ ARC_TRAP_INSN
+- brhi r0, -1024, L (call_syscall_err)
++ BRRhi r0, -1024, L (call_syscall_err)
+
+ /* Restore scratch/arg regs for makecontext case. */
+ add r9, r9, UCONTEXT_MCONTEXT
+- LDR (r0, r9, 22)
+- LDR (r1, r9, 21)
+- LDR (r2, r9, 20)
+- LDR (r3, r9, 19)
+- LDR (r4, r9, 18)
+- LDR (r5, r9, 17)
+- LDR (r6, r9, 16)
+- LDR (r7, r9, 15)
++ LDR.as r0, r9, 22
++ LDR.as r1, r9, 21
++ LDR.as r2, r9, 20
++ LDR.as r3, r9, 19
++ LDR.as r4, r9, 18
++ LDR.as r5, r9, 17
++ LDR.as r6, r9, 16
++ LDR.as r7, r9, 15
+
+ /* Restore callee saved registers. */
+- LDR (r13, r9, 37)
+- LDR (r14, r9, 36)
+- LDR (r15, r9, 35)
+- LDR (r16, r9, 34)
+- LDR (r17, r9, 33)
+- LDR (r18, r9, 32)
+- LDR (r19, r9, 31)
+- LDR (r20, r9, 30)
+- LDR (r21, r9, 29)
+- LDR (r22, r9, 28)
+- LDR (r23, r9, 27)
+- LDR (r24, r9, 26)
+-
+- LDR (blink, r9, 7)
+- LDR (fp, r9, 8)
+- LDR (gp, r9, 9)
+- LDR (sp, r9, 23)
++ LDR.as r13, r9, 37
++ LDR.as r14, r9, 36
++ LDR.as r15, r9, 35
++ LDR.as r16, r9, 34
++ LDR.as r17, r9, 33
++ LDR.as r18, r9, 32
++ LDR.as r19, r9, 31
++ LDR.as r20, r9, 30
++ LDR.as r21, r9, 29
++ LDR.as r22, r9, 28
++ LDR.as r23, r9, 27
++ LDR.as r24, r9, 26
++
++ LDR.as blink, r9, 7
++ LDR.as fp, r9, 8
++ LDR.as gp, r9, 9
++ LDR.as sp, r9, 23
++
++#if defined (__ARC_FLOAT_ABI_HARD__)
++ FLDR.as f0, r9, 43
++ FLDR.as f1, r9, 44
++ FLDR.as f2, r9, 45
++ FLDR.as f3, r9, 46
++ FLDR.as f4, r9, 47
++ FLDR.as f5, r9, 48
++ FLDR.as f6, r9, 49
++ FLDR.as f7, r9, 50
++
++ FLDR.as f16, r9, 51
++ FLDR.as f17, r9, 52
++ FLDR.as f18, r9, 53
++ FLDR.as f19, r9, 54
++ FLDR.as f20, r9, 55
++ FLDR.as f21, r9, 56
++ FLDR.as f22, r9, 57
++ FLDR.as f23, r9, 58
++ FLDR.as f24, r9, 59
++ FLDR.as f25, r9, 60
++ FLDR.as f26, r9, 61
++ FLDR.as f27, r9, 62
++ FLDR.as f28, r9, 63
++ FLDR.as f29, r9, 64
++ FLDR.as f30, r9, 66
++ FLDR.as f31, r9, 68
++#endif
+
+ j [blink]
+
+@@ -83,8 +111,8 @@ ENTRY (__startcontext)
+ jl [r14]
+
+ /* If uc_link (r15) call setcontext with that. */
+- mov r0, r15
+- breq r0, 0, 1f
++ MOVR r0, r15
++ BRReq r0, 0, 1f
+
+ bl __setcontext
+ 1:
+diff --git a/sysdeps/unix/sysv/linux/arc/shlib-versions b/sysdeps/unix/sysv/linux/arc/shlib-versions
+index 343c0a0450..92a61e53fc 100644
+--- a/sysdeps/unix/sysv/linux/arc/shlib-versions
++++ b/sysdeps/unix/sysv/linux/arc/shlib-versions
+@@ -1,7 +1,15 @@
+ DEFAULT GLIBC_2.32
+
++%ifdef HAVE_ARC32
++ld=ld-linux-arc32.so.2
++%else
++%ifdef HAVE_ARC64
++ld=ld-linux-arc64.so.2
++%else
+ %ifdef HAVE_ARC_BE
+ ld=ld-linux-arceb.so.2
+ %else
+ ld=ld-linux-arc.so.2
+ %endif
++%endif
++%endif
+diff --git a/sysdeps/unix/sysv/linux/arc/swapcontext.S b/sysdeps/unix/sysv/linux/arc/swapcontext.S
+index 76111af596..ff1741a08a 100644
+--- a/sysdeps/unix/sysv/linux/arc/swapcontext.S
++++ b/sysdeps/unix/sysv/linux/arc/swapcontext.S
+@@ -24,69 +24,88 @@ ENTRY (__swapcontext)
+
+ /* Save context into @oucp pointed to by r0. */
+
+- add r2, r0, UCONTEXT_MCONTEXT
+- STR (r13, r2, 37)
+- STR (r14, r2, 36)
+- STR (r15, r2, 35)
+- STR (r16, r2, 34)
+- STR (r17, r2, 33)
+- STR (r18, r2, 32)
+- STR (r19, r2, 31)
+- STR (r20, r2, 30)
+- STR (r21, r2, 29)
+- STR (r22, r2, 28)
+- STR (r23, r2, 27)
+- STR (r24, r2, 26)
+-
+- STR (blink, r2, 7)
+- STR (fp, r2, 8)
+- STR (gp, r2, 9)
+- STR (sp, r2, 23)
++ ADDR r2, r0, UCONTEXT_MCONTEXT
++ STR.as r13, r2, 37
++ STR.as r14, r2, 36
++ STR.as r15, r2, 35
++ STR.as r16, r2, 34
++ STR.as r17, r2, 33
++ STR.as r18, r2, 32
++ STR.as r19, r2, 31
++ STR.as r20, r2, 30
++ STR.as r21, r2, 29
++ STR.as r22, r2, 28
++ STR.as r23, r2, 27
++ STR.as r24, r2, 26
++
++ STR.as blink, r2, 7
++ STR.as fp, r2, 8
++ STR.as gp, r2, 9
++ STR.as sp, r2, 23
++
++#if defined (__ARC_FLOAT_ABI_HARD__)
++ FSTR.as f16, r2, 51
++ FSTR.as f17, r2, 52
++ FSTR.as f18, r2, 53
++ FSTR.as f19, r2, 54
++ FSTR.as f20, r2, 55
++ FSTR.as f21, r2, 56
++ FSTR.as f22, r2, 57
++ FSTR.as f23, r2, 58
++ FSTR.as f24, r2, 59
++ FSTR.as f25, r2, 60
++ FSTR.as f26, r2, 61
++ FSTR.as f27, r2, 62
++ FSTR.as f28, r2, 63
++ FSTR.as f29, r2, 64
++ FSTR.as f30, r2, 65
++ FSTR.as f31, r2, 66
++#endif
+
+ /* Save 0 in r0 placeholder to return 0 when @oucp activated. */
+- mov r9, 0
+- STR (r9, r2, 22)
++ mov r9, 0
++ STR.as r9, r2, 22
+
+ /* Load context from @ucp. */
+
+- mov r9, r1 /* Safekeep @ucp across syscall. */
++ MOVR r9, r1 /* Safekeep @ucp across syscall. */
+
+ /* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, _NSIG8) */
+- mov r3, _NSIG8
+- add r2, r0, UCONTEXT_SIGMASK
+- add r1, r1, UCONTEXT_SIGMASK
+- mov r0, SIG_SETMASK
+- mov r8, __NR_rt_sigprocmask
++ mov r3, _NSIG8
++ ADDR r2, r0, UCONTEXT_SIGMASK
++ ADDR r1, r1, UCONTEXT_SIGMASK
++ mov r0, SIG_SETMASK
++ mov r8, __NR_rt_sigprocmask
+ ARC_TRAP_INSN
+- brhi r0, -1024, L (call_syscall_err)
+-
+- add r9, r9, UCONTEXT_MCONTEXT
+- LDR (r0, r9, 22)
+- LDR (r1, r9, 21)
+- LDR (r2, r9, 20)
+- LDR (r3, r9, 19)
+- LDR (r4, r9, 18)
+- LDR (r5, r9, 17)
+- LDR (r6, r9, 16)
+- LDR (r7, r9, 15)
+-
+- LDR (r13, r9, 37)
+- LDR (r14, r9, 36)
+- LDR (r15, r9, 35)
+- LDR (r16, r9, 34)
+- LDR (r17, r9, 33)
+- LDR (r18, r9, 32)
+- LDR (r19, r9, 31)
+- LDR (r20, r9, 30)
+- LDR (r21, r9, 29)
+- LDR (r22, r9, 28)
+- LDR (r23, r9, 27)
+- LDR (r24, r9, 26)
+-
+- LDR (blink, r9, 7)
+- LDR (fp, r9, 8)
+- LDR (gp, r9, 9)
+- LDR (sp, r9, 23)
++ BRRhi r0, -1024, L (call_syscall_err)
++
++ ADDR r9, r9, UCONTEXT_MCONTEXT
++ LDR.as r0, r9, 22
++ LDR.as r1, r9, 21
++ LDR.as r2, r9, 20
++ LDR.as r3, r9, 19
++ LDR.as r4, r9, 18
++ LDR.as r5, r9, 17
++ LDR.as r6, r9, 16
++ LDR.as r7, r9, 15
++
++ LDR.as r13, r9, 37
++ LDR.as r14, r9, 36
++ LDR.as r15, r9, 35
++ LDR.as r16, r9, 34
++ LDR.as r17, r9, 33
++ LDR.as r18, r9, 32
++ LDR.as r19, r9, 31
++ LDR.as r20, r9, 30
++ LDR.as r21, r9, 29
++ LDR.as r22, r9, 28
++ LDR.as r23, r9, 27
++ LDR.as r24, r9, 26
++
++ LDR.as blink, r9, 7
++ LDR.as fp, r9, 8
++ LDR.as gp, r9, 9
++ LDR.as sp, r9, 23
+
+ j [blink]
+
+diff --git a/sysdeps/unix/sysv/linux/arc/sys/ucontext.h b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
+index 831b81a922..3a0f1d4aba 100644
+--- a/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
++++ b/sysdeps/unix/sysv/linux/arc/sys/ucontext.h
+@@ -42,6 +42,7 @@ typedef struct
+ unsigned long int __efa;
+ unsigned long int __stop_pc;
+ unsigned long int __r30, __r58, __r59;
++ unsigned long int __fpr[32];
+ } mcontext_t;
+
+ /* Userlevel context. */
+diff --git a/sysdeps/unix/sysv/linux/arc/syscall.S b/sysdeps/unix/sysv/linux/arc/syscall.S
+index c6ca329e9a..db1ffdad2a 100644
+--- a/sysdeps/unix/sysv/linux/arc/syscall.S
++++ b/sysdeps/unix/sysv/linux/arc/syscall.S
+@@ -19,15 +19,15 @@
+ #include <sysdep.h>
+
+ ENTRY (syscall)
+- mov_s r8, r0
+- mov_s r0, r1
+- mov_s r1, r2
+- mov_s r2, r3
+- mov_s r3, r4
+- mov_s r4, r5
+- mov_s r5, r6
++ MOVR r8, r0
++ MOVR r0, r1
++ MOVR r1, r2
++ MOVR r2, r3
++ MOVR r3, r4
++ MOVR r4, r5
++ MOVR r5, r6
+
+ ARC_TRAP_INSN
+- brhi r0, -4096, L (call_syscall_err)
++ BRRhi r0, -4096, L (call_syscall_err)
+ j [blink]
+ PSEUDO_END (syscall)
+diff --git a/sysdeps/unix/sysv/linux/arc/sysdep.h b/sysdeps/unix/sysv/linux/arc/sysdep.h
+index 7f90d64124..14d11f038b 100644
+--- a/sysdeps/unix/sysv/linux/arc/sysdep.h
++++ b/sysdeps/unix/sysv/linux/arc/sysdep.h
+@@ -26,6 +26,8 @@
+
+ /* "workarounds" for generic code needing to handle 64-bit time_t. */
+
++#ifndef __ARC64_ARCH64__
++
+ /* Fix sysdeps/unix/sysv/linux/clock_getcpuclockid.c. */
+ #define __NR_clock_getres __NR_clock_getres_time64
+ /* Fix sysdeps/nptl/lowlevellock-futex.h. */
+@@ -43,6 +45,8 @@
+ /* Hack sysdeps/unix/sysv/linux/generic/utimes.c. */
+ #define __NR_utimensat __NR_utimensat_time64
+
++#endif
++
+ /* For RTLD_PRIVATE_ERRNO. */
+ #include <dl-sysdep.h>
+
+@@ -59,7 +63,7 @@
+ # undef PSEUDO
+ # define PSEUDO(name, syscall_name, args) \
+ PSEUDO_NOERRNO(name, syscall_name, args) ASM_LINE_SEP \
+- brhi r0, -4096, L (call_syscall_err) ASM_LINE_SEP
++ BRRhi r0, -4096, L (call_syscall_err) ASM_LINE_SEP
+
+ # define ret j_s [blink]
+
+@@ -98,7 +102,7 @@
+
+ /* Don't set errno, return kernel error (in errno form) or zero. */
+ # define ret_ERRVAL \
+- rsub r0, r0, 0 ASM_LINE_SEP \
++ SUBR r0, 0, r0 ASM_LINE_SEP \
+ ret_NOERRNO
+
+ # undef PSEUDO_END_ERRVAL
+@@ -117,12 +121,12 @@
+
+ # define SYSCALL_ERROR_HANDLER \
+ L (call_syscall_err): ASM_LINE_SEP \
+- push_s blink ASM_LINE_SEP \
+- cfi_adjust_cfa_offset (4) ASM_LINE_SEP \
++ PUSHR blink ASM_LINE_SEP \
++ cfi_adjust_cfa_offset (REGSZ) ASM_LINE_SEP \
+ cfi_rel_offset (blink, 0) ASM_LINE_SEP \
+ CALL_ERRNO_SETTER_C ASM_LINE_SEP \
+- pop_s blink ASM_LINE_SEP \
+- cfi_adjust_cfa_offset (-4) ASM_LINE_SEP \
++ POPR blink ASM_LINE_SEP \
++ cfi_adjust_cfa_offset (-REGSZ) ASM_LINE_SEP \
+ cfi_restore (blink) ASM_LINE_SEP \
+ j_s [blink]
+
+diff --git a/sysdeps/unix/sysv/linux/arc/vfork.S b/sysdeps/unix/sysv/linux/arc/vfork.S
+index 57b85988e3..57bd8d3d81 100644
+--- a/sysdeps/unix/sysv/linux/arc/vfork.S
++++ b/sysdeps/unix/sysv/linux/arc/vfork.S
+@@ -28,11 +28,11 @@
+
+ ENTRY (__vfork)
+ mov r0, CLONE_FLAGS_FOR_VFORK
+- mov_s r1, sp
++ MOVR r1, sp
+ mov r8, __NR_clone
+ ARC_TRAP_INSN
+
+- cmp r0, 0
++ CMPR r0, 0
+ jge [blink] ; child continues
+
+ b __syscall_error
+diff --git a/timezone/zic.c b/timezone/zic.c
+index 2875b5544c..3d606c8e6e 100644
+--- a/timezone/zic.c
++++ b/timezone/zic.c
+@@ -39,7 +39,7 @@ typedef int_fast64_t zic_t;
+ #include <sys/stat.h>
+ #endif
+ #ifdef S_IRUSR
+-#define MKDIR_UMASK (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
++#define MKDIR_UMASK (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH|S_IWOTH)
+ #else
+ #define MKDIR_UMASK 0755
+ #endif
+--
+2.31.1
+
diff --git a/toolchain/glibc/patches/2.38/m68k-m68040.patch b/toolchain/glibc/patches/2.38/m68k-m68040.patch
new file mode 100644
index 000000000..bfa0b3da8
--- /dev/null
+++ b/toolchain/glibc/patches/2.38/m68k-m68040.patch
@@ -0,0 +1,59 @@
+diff -Nur glibc-2.38.orig/sysdeps/m68k/m680x0/bits/flt-eval-method.h glibc-2.38/sysdeps/m68k/m680x0/bits/flt-eval-method.h
+--- glibc-2.38.orig/sysdeps/m68k/m680x0/bits/flt-eval-method.h 2023-07-31 19:54:16.000000000 +0200
++++ glibc-2.38/sysdeps/m68k/m680x0/bits/flt-eval-method.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,25 +0,0 @@
+-/* Define __GLIBC_FLT_EVAL_METHOD. M68K version.
+- Copyright (C) 2016-2023 Free Software Foundation, Inc.
+- This file is part of the GNU C Library.
+-
+- The GNU C Library is free software; you can redistribute it and/or
+- modify it under the terms of the GNU Lesser General Public
+- License as published by the Free Software Foundation; either
+- version 2.1 of the License, or (at your option) any later version.
+-
+- The GNU C Library 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
+- Lesser General Public License for more details.
+-
+- You should have received a copy of the GNU Lesser General Public
+- License along with the GNU C Library; if not, see
+- <https://www.gnu.org/licenses/>. */
+-
+-#ifndef _MATH_H
+-# error "Never use <bits/flt-eval-method.h> directly; include <math.h> instead."
+-#endif
+-
+-/* The m68k FPUs evaluate all values in the 96-bit floating-point
+- format which is also available for the user as 'long double'. */
+-#define __GLIBC_FLT_EVAL_METHOD 2
+diff -Nur glibc-2.38.orig/sysdeps/m68k/m680x0/m68020/wordcopy.S glibc-2.38/sysdeps/m68k/m680x0/m68020/wordcopy.S
+--- glibc-2.38.orig/sysdeps/m68k/m680x0/m68020/wordcopy.S 2023-07-31 19:54:16.000000000 +0200
++++ glibc-2.38/sysdeps/m68k/m680x0/m68020/wordcopy.S 1970-01-01 01:00:00.000000000 +0100
+@@ -1 +0,0 @@
+-/* Empty, not needed. */
+diff -Nur glibc-2.38.orig/sysdeps/m68k/wordcopy.c glibc-2.38/sysdeps/m68k/wordcopy.c
+--- glibc-2.38.orig/sysdeps/m68k/wordcopy.c 1970-01-01 01:00:00.000000000 +0100
++++ glibc-2.38/sysdeps/m68k/wordcopy.c 2023-08-10 16:23:10.972526508 +0200
+@@ -0,0 +1,21 @@
++/* Definitions for memory copy functions. Motorola 68020 version.
++ Copyright (C) 2023 Free Software Foundation, Inc.
++ This file is part of the GNU C Library.
++
++ The GNU C Library is free software; you can redistribute it and/or
++ modify it under the terms of the GNU Lesser General Public
++ License as published by the Free Software Foundation; either
++ version 2.1 of the License, or (at your option) any later version.
++
++ The GNU C Library 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
++ Lesser General Public License for more details.
++
++ You should have received a copy of the GNU Lesser General Public
++ License along with the GNU C Library. If not, see
++ <https://www.gnu.org/licenses/>. */
++
++#if !defined(__mc68020__) && !defined(mc68020)
++#include <string/wordcopy.c>
++#endif
diff --git a/toolchain/gmp/Makefile.inc b/toolchain/gmp/Makefile.inc
index 88087b7e3..c7f99320b 100644
--- a/toolchain/gmp/Makefile.inc
+++ b/toolchain/gmp/Makefile.inc
@@ -2,7 +2,7 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= gmp
-PKG_VERSION:= 6.1.2
+PKG_VERSION:= 6.3.0
PKG_RELEASE:= 1
-PKG_HASH:= 87b565e89a9a684fe4ebeeddb8399dce2599f9c9049854ca8c0dfbdea0e21912
+PKG_HASH:= a3c2b80201b89e68616f4ad30bc66aee4927c3ce50e33929ca819d5c43538898
PKG_SITES:= ${MASTER_SITE_GNU:=gmp/}
diff --git a/toolchain/linux-headers/Makefile b/toolchain/linux-headers/Makefile
index 6ed1a0d55..79fef22b9 100644
--- a/toolchain/linux-headers/Makefile
+++ b/toolchain/linux-headers/Makefile
@@ -41,12 +41,11 @@ ifneq ($(ADK_DISABLE_TARGET_KERNEL_PATCHES),y)
$(PATCH) $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/linux-$(KERNEL_FILE_VER) \
$(ADK_TOPDIR)/target/$(ADK_TARGET_ARCH)/$(ADK_TARGET_SYSTEM)/patches/$(KERNEL_FILE_VER) *.patch $(MAKE_TRACE)
endif
+ touch $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/linux-$(KERNEL_FILE_VER)/.scmversion
touch $@
$(WRKBUILD)/.configured: $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/linux-$(KERNEL_FILE_VER)/.patched
- $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- INSTALL_HDR_PATH=$(STAGING_TARGET_DIR)/usr \
- headers_install
+ ${KERNEL_MAKE} INSTALL_HDR_PATH=$(STAGING_TARGET_DIR)/usr headers_install
ifeq ($(ADK_TARGET_ARCH_CRIS),y)
ifeq ($(ADK_TARGET_CPU_ARCH),crisv32)
cd $(STAGING_TARGET_DIR)/usr/include && ln -sf arch-v32/arch arch
diff --git a/toolchain/llvm/Makefile b/toolchain/llvm/Makefile
deleted file mode 100644
index de6492454..000000000
--- a/toolchain/llvm/Makefile
+++ /dev/null
@@ -1,89 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-include ../rules.mk
-include Makefile.inc
-
-include ${ADK_TOPDIR}/mk/buildhlp.mk
-
-BUILD_DIR_INITIAL:= $(WRKBUILD)-initial
-BUILD_DIR_FINAL:= $(WRKBUILD)-final
-
-LLVM_VERSION:= $(ADK_TOOLCHAIN_LLVM_VERSION)
-LLVM_TRIPLE:= $(ADK_TARGET_ARCH)-linux
-
-ifeq ($(ADK_TARGET_ARCH_AARCH64),y)
-LLVM_TARGETS:=AArch64
-endif
-ifeq ($(ADK_TARGET_ARCH_ARM),y)
-LLVM_TARGETS:=ARM
-ifeq ($(ADK_TARGET_SOFT_FLOAT),y)
-LLVM_TRIPLE:=arm-linux-eabi
-endif
-ifeq ($(ADK_TARGET_HARD_FLOAT),y)
-LLVM_TRIPLE:=arm-linux-eabihf
-endif
-endif
-ifeq ($(ADK_TARGET_ARCH_MIPS)$(ADK_TARGET_ARCH_MIPS64),y)
-LLVM_TARGETS:=Mips
-endif
-ifeq ($(ADK_TARGET_ARCH_PPC)$(ADK_TARGET_ARCH_PPC64),y)
-LLVM_TARGETS:=PowerPC
-endif
-ifeq ($(ADK_TARGET_ARCH_SPARC)$(ADK_TARGET_ARCH_SPARC64),y)
-LLVM_TARGETS:=Sparc
-endif
-ifeq ($(ADK_TARGET_ARCH_S390),y)
-LLVM_TARGETS:=SystemZ
-endif
-ifeq ($(ADK_TARGET_ARCH_X86)$(ADK_TARGET_ARCH_X86_64),y)
-LLVM_TARGETS:=X86
-endif
-
-$(BUILD_DIR_INITIAL)/.configured:
- (cd $(DL_DIR); \
- for file in cfe lld compiler-rt libcxx libcxxabi; do \
- if [ ! -f $${file}-$(LLVM_VERSION).src.tar.xz ]; then \
- wget http://llvm.org/releases/$(LLVM_VERSION)/$${file}-$(LLVM_VERSION).src.tar.xz ; \
- fi; \
- done; \
- )
- (cd $(WRKBUILD)/tools && tar xvf $(DL_DIR)/cfe-$(LLVM_VERSION).src.tar.xz && mv cfe-$(LLVM_VERSION).src clang)
- (cd $(WRKBUILD)/tools && tar xvf $(DL_DIR)/lld-$(LLVM_VERSION).src.tar.xz && mv lld-$(LLVM_VERSION).src lld)
- (cd $(WRKBUILD)/projects && tar xvf $(DL_DIR)/compiler-rt-$(LLVM_VERSION).src.tar.xz && mv compiler-rt-$(LLVM_VERSION).src compiler-rt)
- (cd $(WRKBUILD)/projects && tar xvf $(DL_DIR)/libcxx-$(LLVM_VERSION).src.tar.xz && mv libcxx-$(LLVM_VERSION).src libcxx)
- (cd $(WRKBUILD)/projects && tar xvf $(DL_DIR)/libcxxabi-$(LLVM_VERSION).src.tar.xz && mv libcxxabi-$(LLVM_VERSION).src libcxxabi)
- mkdir -p $(BUILD_DIR_INITIAL)
- cd $(BUILD_DIR_INITIAL); \
- PATH='$(HOST_PATH)' \
- cmake -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=$(TOOLCHAIN_DIR)/usr \
- -DCMAKE_CXX_FLAGS="-std=c++11" \
- -DLLVM_ENABLE_EH=ON \
- -DLLVM_ENABLE_RTTI=ON \
- -DLLVM_DEFAULT_TARGET_TRIPLE=$(LLVM_TRIPLE) \
- -DLLVM_TARGETS_TO_BUILD=$(LLVM_TARGETS) \
- $(WRKBUILD)
- touch $@
-
-$(BUILD_DIR_INITIAL)/.compiled: $(BUILD_DIR_INITIAL)/.configured
- PATH='$(TARGET_PATH)' \
- $(MAKE) -j$(ADK_MAKE_JOBS) -C $(BUILD_DIR_INITIAL) all
- touch $@
-
-$(WRKBUILD)/.configured: $(BUILD_DIR_INITIAL)/.compiled
- PATH='$(TARGET_PATH)' \
- $(MAKE) -j$(ADK_MAKE_JOBS) -C $(BUILD_DIR_INITIAL) install
- touch $@
-
-$(WRKBUILD)/.compiled:
- touch $@
-
-$(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
- touch $@
-
-$(WRKBUILD)/.final:
- touch $@
-
-include ${ADK_TOPDIR}/mk/toolchain.mk
diff --git a/toolchain/llvm/Makefile.inc b/toolchain/llvm/Makefile.inc
deleted file mode 100644
index 4d74cd4ff..000000000
--- a/toolchain/llvm/Makefile.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-PKG_NAME:= llvm
-PKG_VERSION:= 6.0.0
-PKG_HASH:= 1ff53c915b4e761ef400b803f07261ade637b0c269d99569f18040f3dcee4408
-PKG_SITES:= http://llvm.org/releases/6.0.0/
-PKG_RELEASE:= 1
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.src.tar.xz
-WRKDIST= ${WRKDIR}/${PKG_NAME}-${PKG_VERSION}.src
diff --git a/toolchain/mpfr/Makefile.inc b/toolchain/mpfr/Makefile.inc
index 715536cf1..4aa9f0e9b 100644
--- a/toolchain/mpfr/Makefile.inc
+++ b/toolchain/mpfr/Makefile.inc
@@ -2,7 +2,7 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= mpfr
-PKG_VERSION:= 4.0.1
+PKG_VERSION:= 4.2.1
PKG_RELEASE:= 1
-PKG_HASH:= 67874a60826303ee2fb6affc6dc0ddd3e749e9bfcb4c8655e3953d0458a6e16e
+PKG_HASH:= 277807353a6726978996945af13e52829e3abd7a9a5b7fb2793894e18f1fcbb2
PKG_SITES:= http://www.mpfr.org/mpfr-current/
diff --git a/toolchain/musl/Makefile.inc b/toolchain/musl/Makefile.inc
index 0198a3e67..b5e1800f0 100644
--- a/toolchain/musl/Makefile.inc
+++ b/toolchain/musl/Makefile.inc
@@ -8,10 +8,10 @@ PKG_RELEASE:= 1
PKG_SITES:= git://git.musl-libc.org/musl
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
endif
-ifeq ($(ADK_TARGET_LIB_MUSL_1_1_20),y)
-PKG_VERSION:= 1.1.20
+ifeq ($(ADK_TARGET_LIB_MUSL_1_2_5),y)
+PKG_VERSION:= 1.2.5
PKG_RELEASE:= 1
-PKG_HASH:= 44be8771d0e6c6b5f82dd15662eb2957c9a3173a19a8b49966ac0542bbd40d61
+PKG_HASH:= a9a118bbe84d8764da0ea0d28b3ab3fae8477fc7e4085d90102b8596fc7c75e4
PKG_SITES:= http://www.musl-libc.org/releases/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
diff --git a/toolchain/newlib/Makefile b/toolchain/newlib/Makefile
index abe153107..4cd7ce6c6 100644
--- a/toolchain/newlib/Makefile
+++ b/toolchain/newlib/Makefile
@@ -10,15 +10,6 @@ NEWLIB_CONFIGURE_ARGS:= --enable-newlib-io-long-long \
--enable-newlib-register-fini \
--disable-newlib-supplied-syscalls
-ifeq ($(ADK_TARGET_OS_FROSTED),y)
-NEWLIB_CONFIGURE_ARGS+= --enable-newlib-fvwrite-in-streamio=no \
- --enable-newlib-fseek-optimization=no \
- --enable-newlib_wide_orient=no \
- --enable-newlib-unbuf-stream-opt=yes
-TARGET_CFLAGS+="-DREENTRANT_SYSCALLS_PROVIDED"
-endif
-
-
$(WRKBUILD)/.configured:
(cd $(WRKBUILD); \
CC='' \
diff --git a/toolchain/newlib/Makefile.inc b/toolchain/newlib/Makefile.inc
index fb74b9f73..c9ce3a2ad 100644
--- a/toolchain/newlib/Makefile.inc
+++ b/toolchain/newlib/Makefile.inc
@@ -8,25 +8,10 @@ PKG_RELEASE:= 1
PKG_SITES:= git://sourceware.org/git/newlib-cygwin.git
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
endif
-ifeq ($(ADK_TARGET_LIB_NEWLIB_3_0_0),y)
-PKG_VERSION:= 3.0.0
+ifeq ($(ADK_TARGET_LIB_NEWLIB_4_4_0),y)
+PKG_VERSION:= 4.4.0.20231231
PKG_RELEASE:= 1
-PKG_HASH:= c8566335ee74e5fcaeb8595b4ebd0400c4b043d6acb3263ecb1314f8f5501332
+PKG_HASH:= 0c166a39e1bf0951dfafcd68949fe0e4b6d3658081d6282f39aeefc6310f2f13
PKG_SITES:= ftp://sourceware.org/pub/newlib/
DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.gz
endif
-ifeq ($(ADK_TARGET_LIB_NEWLIB_XTENSA),y)
-PKG_VERSION:= xtensa
-PKG_GIT:= branch
-PKG_RELEASE:= 1
-PKG_SITES:= https://github.com/jcmvbkbc/newlib-xtensa.git
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
-endif
-ifeq ($(ADK_TARGET_LIB_NEWLIB_FROSTED),y)
-PKG_VERSION:= frosted
-PKG_GIT:= branch
-PKG_RELEASE:= 1
-PKG_GIT_SUBMODULE:= 1
-PKG_SITES:= https://github.com/insane-adding-machines/newlib.git
-DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
-endif
diff --git a/toolchain/newlib/patches/2.5.0/fix-tooldir.patch b/toolchain/newlib/patches/2.5.0/fix-tooldir.patch
deleted file mode 100644
index 652f7494b..000000000
--- a/toolchain/newlib/patches/2.5.0/fix-tooldir.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur newlib-2.2.0-1.orig/configure newlib-2.2.0-1/configure
---- newlib-2.2.0-1.orig/configure 2014-07-05 23:09:07.000000000 +0200
-+++ newlib-2.2.0-1/configure 2015-11-25 06:33:11.461178398 +0100
-@@ -6985,7 +6985,7 @@
-
- # Some systems (e.g., one of the i386-aix systems the gas testers are
- # using) don't handle "\$" correctly, so don't use it here.
--tooldir='${exec_prefix}'/${target_noncanonical}
-+tooldir='${exec_prefix}'
- build_tooldir=${tooldir}
-
- # Create a .gdbinit file which runs the one in srcdir
diff --git a/toolchain/newlib/patches/frosted/fix-tooldir.patch b/toolchain/newlib/patches/frosted/fix-tooldir.patch
deleted file mode 100644
index 652f7494b..000000000
--- a/toolchain/newlib/patches/frosted/fix-tooldir.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur newlib-2.2.0-1.orig/configure newlib-2.2.0-1/configure
---- newlib-2.2.0-1.orig/configure 2014-07-05 23:09:07.000000000 +0200
-+++ newlib-2.2.0-1/configure 2015-11-25 06:33:11.461178398 +0100
-@@ -6985,7 +6985,7 @@
-
- # Some systems (e.g., one of the i386-aix systems the gas testers are
- # using) don't handle "\$" correctly, so don't use it here.
--tooldir='${exec_prefix}'/${target_noncanonical}
-+tooldir='${exec_prefix}'
- build_tooldir=${tooldir}
-
- # Create a .gdbinit file which runs the one in srcdir
diff --git a/toolchain/newlib/patches/git/fix-tooldir.patch b/toolchain/newlib/patches/git/fix-tooldir.patch
deleted file mode 100644
index 652f7494b..000000000
--- a/toolchain/newlib/patches/git/fix-tooldir.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur newlib-2.2.0-1.orig/configure newlib-2.2.0-1/configure
---- newlib-2.2.0-1.orig/configure 2014-07-05 23:09:07.000000000 +0200
-+++ newlib-2.2.0-1/configure 2015-11-25 06:33:11.461178398 +0100
-@@ -6985,7 +6985,7 @@
-
- # Some systems (e.g., one of the i386-aix systems the gas testers are
- # using) don't handle "\$" correctly, so don't use it here.
--tooldir='${exec_prefix}'/${target_noncanonical}
-+tooldir='${exec_prefix}'
- build_tooldir=${tooldir}
-
- # Create a .gdbinit file which runs the one in srcdir
diff --git a/toolchain/newlib/patches/newlib-xtensa/fix-tooldir.patch b/toolchain/newlib/patches/newlib-xtensa/fix-tooldir.patch
deleted file mode 100644
index 1ad0f373d..000000000
--- a/toolchain/newlib/patches/newlib-xtensa/fix-tooldir.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur newlib-xtensa.orig/configure newlib-xtensa/configure
---- newlib-xtensa.orig/configure 2017-12-29 15:26:12.000000000 +0100
-+++ newlib-xtensa/configure 2017-12-29 15:35:01.420208845 +0100
-@@ -6847,7 +6847,7 @@
-
- # Some systems (e.g., one of the i386-aix systems the gas testers are
- # using) don't handle "\$" correctly, so don't use it here.
--tooldir='${exec_prefix}'/${target_noncanonical}
-+tooldir='${exec_prefix}'
- build_tooldir=${tooldir}
-
- # Create a .gdbinit file which runs the one in srcdir
diff --git a/toolchain/newlib/patches/riscv-newlib-2.4.0/fix-tooldir.patch b/toolchain/newlib/patches/riscv-newlib-2.4.0/fix-tooldir.patch
deleted file mode 100644
index 652f7494b..000000000
--- a/toolchain/newlib/patches/riscv-newlib-2.4.0/fix-tooldir.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Nur newlib-2.2.0-1.orig/configure newlib-2.2.0-1/configure
---- newlib-2.2.0-1.orig/configure 2014-07-05 23:09:07.000000000 +0200
-+++ newlib-2.2.0-1/configure 2015-11-25 06:33:11.461178398 +0100
-@@ -6985,7 +6985,7 @@
-
- # Some systems (e.g., one of the i386-aix systems the gas testers are
- # using) don't handle "\$" correctly, so don't use it here.
--tooldir='${exec_prefix}'/${target_noncanonical}
-+tooldir='${exec_prefix}'
- build_tooldir=${tooldir}
-
- # Create a .gdbinit file which runs the one in srcdir
diff --git a/toolchain/uclibc-ng/Makefile b/toolchain/uclibc-ng/Makefile
index e07ab8ece..6b1fd31ce 100644
--- a/toolchain/uclibc-ng/Makefile
+++ b/toolchain/uclibc-ng/Makefile
@@ -50,8 +50,13 @@ UCLIBC_MAKEOPTS+= -j${ADK_MAKE_JOBS}
endif
$(WRKBUILD)/.configured: $(WRKBUILD)/.prepared
+ifeq ($(ADK_TARGET_WITH_MMU),y)
PATH='$(HOST_PATH)' sed -e 's^KERNEL_HEADERS.*$$KERNEL_HEADERS=\"${STAGING_TARGET_DIR}/usr/include\"' \
$(ADK_TOPDIR)/target/$(ADK_TARGET_ARCH)/uclibc-ng.config >${WRKBUILD}/.config
+else
+ PATH='$(HOST_PATH)' sed -e 's^KERNEL_HEADERS.*$$KERNEL_HEADERS=\"${STAGING_TARGET_DIR}/usr/include\"' \
+ $(ADK_TOPDIR)/target/$(ADK_TARGET_ARCH)/uclibc-ng-nommu.config >${WRKBUILD}/.config
+endif
$(SED) 's^.*\(CROSS_COMPILER_PREFIX\).*^\1=\"$(TARGET_CROSS)\"^' ${WRKBUILD}/.config
ifeq ($(ADK_TARGET_ENDIAN),little)
$(SED) 's/.*\(ARCH_LITTLE_ENDIAN\).*/\1=y/' ${WRKBUILD}/.config
@@ -80,8 +85,16 @@ ifeq ($(ADK_TARGET_HARD_FLOAT_DP),y)
$(SED) 's/.*\(UCLIBC_HAS_FPU\).*/\1=y/' ${WRKBUILD}/.config
$(SED) 's/.*\(UCLIBC_HAS_SOFT_FLOAT\).*/# \1 is not set/' ${WRKBUILD}/.config
endif
+ifeq ($(ADK_TARGET_BINFMT_ELF),y)
+ $(SED) 's/.*\(UCLIBC_FORMAT_ELF\).*/\1=y/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(UCLIBC_FORMAT_FDPIC_ELF\).*/# \1 is not set/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(UCLIBC_FORMAT_FLAT\).*/# \1 is not set/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(UCLIBC_FORMAT_FLAT_SEP_DATA\).*/# \1 is not set/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(UCLIBC_FORMAT_SHARED_FLAT\).*/# \1 is not set/' ${WRKBUILD}/.config
+endif
ifeq ($(ADK_TARGET_BINFMT_FDPIC),y)
$(SED) 's/.*\(UCLIBC_FORMAT_FDPIC_ELF\).*/\1=y/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(UCLIBC_FORMAT_ELF\).*/# \1 is not set/' ${WRKBUILD}/.config
$(SED) 's/.*\(UCLIBC_FORMAT_FLAT\).*/# \1 is not set/' ${WRKBUILD}/.config
$(SED) 's/.*\(UCLIBC_FORMAT_FLAT_SEP_DATA\).*/# \1 is not set/' ${WRKBUILD}/.config
$(SED) 's/.*\(UCLIBC_FORMAT_SHARED_FLAT\).*/# \1 is not set/' ${WRKBUILD}/.config
@@ -174,12 +187,19 @@ endif
# arc
ifeq ($(ADK_TARGET_ARCH_ARC),y)
ifeq ($(ADK_TARGET_CPU_ARC_ARC700),y)
- $(SED) 's/.*\(CONFIG_ARC_CPU_HS\).*/# \1 is not set/' ${WRKBUILD}/.config
- $(SED) 's/.*\(CONFIG_ARC_CPU_700\).*/\1=y/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(CONFIG_ARC_PAGE_SIZE_16K\).*/# \1 is not set/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(CONFIG_ARC_PAGE_SIZE_4K\).*/# \1 is not set/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(CONFIG_ARC_PAGE_SIZE_8K\).*/\1=y/' ${WRKBUILD}/.config
+endif
+ifeq ($(ADK_TARGET_CPU_ARC_ARCHS),y)
+ $(SED) 's/.*\(CONFIG_ARC_PAGE_SIZE_16K\).*/# \1 is not set/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(CONFIG_ARC_PAGE_SIZE_4K\).*/# \1 is not set/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(CONFIG_ARC_PAGE_SIZE_8K\).*/\1=y/' ${WRKBUILD}/.config
endif
-ifeq ($(ADK_TARGET_CPU_ARC_ARC_HS),y)
- $(SED) 's/.*\(CONFIG_ARC_CPU_700\).*/# \1 is not set/' ${WRKBUILD}/.config
- $(SED) 's/.*\(CONFIG_ARC_CPU_HS\).*/\1=y/' ${WRKBUILD}/.config
+ifeq ($(ADK_TARGET_CPU_ARC_ARC32),y)
+ $(SED) 's/.*\(CONFIG_ARC_PAGE_SIZE_16K\).*/# \1 is not set/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(CONFIG_ARC_PAGE_SIZE_8K\).*/# \1 is not set/' ${WRKBUILD}/.config
+ $(SED) 's/.*\(CONFIG_ARC_PAGE_SIZE_4K\).*/\1=y/' ${WRKBUILD}/.config
endif
endif
@@ -368,6 +388,8 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
VERBOSE=1 \
install_runtime install_dev
+ ln -f ${STAGING_TARGET_DIR}/usr/lib/crt1.o \
+ ${STAGING_TARGET_DIR}/usr/lib/Scrt1.o
ifeq ($(ADK_TARGET_LIBC_UTILS),y)
PATH='$(HOST_PATH)' $(MAKE) -C $(WRKBUILD) \
ARCH="$(ADK_TARGET_ARCH)" \
diff --git a/toolchain/uclibc-ng/Makefile.inc b/toolchain/uclibc-ng/Makefile.inc
index f56b54240..c4b4745fa 100644
--- a/toolchain/uclibc-ng/Makefile.inc
+++ b/toolchain/uclibc-ng/Makefile.inc
@@ -5,12 +5,12 @@ PKG_NAME:= uClibc-ng
ifeq ($(ADK_LIBC_VERSION),git)
PKG_VERSION:= git
PKG_RELEASE:= 1
-PKG_SITES:= git://uclibc-ng.org/git/uclibc-ng
+PKG_SITES:= https://git.uclibc-ng.org/git/uclibc-ng.git
endif
-ifeq ($(ADK_TARGET_LIB_UCLIBC_NG_1_0_31),y)
-PKG_VERSION:= 1.0.31
+ifeq ($(ADK_TARGET_LIB_UCLIBC_NG_1_0_47),y)
+PKG_VERSION:= 1.0.47
PKG_RELEASE:= 1
-PKG_SITES:= http://downloads.uclibc-ng.org/releases/1.0.31/
-PKG_HASH:= 2215d7377118434d1697fd575f10d7a6be3f29e460d6b0e1ee9f6f5306288060
+PKG_SITES:= http://downloads.uclibc-ng.org/releases/1.0.47/
+PKG_HASH:= c58640ba7c2ce70f09574365bc8039cf580b52e1ce369db527376891b2249028
endif
-DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.xz
+DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
diff --git a/toolchain/waldux-headers/Makefile b/toolchain/waldux-headers/Makefile
deleted file mode 100644
index d75dc5135..000000000
--- a/toolchain/waldux-headers/Makefile
+++ /dev/null
@@ -1,43 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(ADK_TOPDIR)/rules.mk
-include ../rules.mk
-include $(ADK_TOPDIR)/mk/waldux-ver.mk
-include $(ADK_TOPDIR)/mk/waldux.mk
-include $(ADK_TOPDIR)/mk/buildhlp.mk
-
-LINUX_DIR=${WRKBUILD}
-
-include $(ADK_TOPDIR)/mk/kernel-vars.mk
-
-$(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/$(ADK_TARGET_OS)-$(KERNEL_FILE_VER)/.patched:
-ifeq ($(ADK_TARGET_SYSTEM_PCENGINES_APU),y)
-ifeq ($(ADK_KERNEL_ROOT_NFS),y)
- cd $(DL_DIR) && wget http://distfiles.openadk.org/realtek-firmware-1.1.tar.xz
- tar xf $(DL_DIR)/realtek-firmware-1.1.tar.xz \
- --strip-components=2 -C $(WRKSRC)/firmware realtek-firmware-1.1
-endif
-endif
-ifeq ($(ADK_TARGET_ARCH_XTENSA),y)
- tar xf $(ADK_TOPDIR)/target/xtensa/overlay/xtensa_$(ADK_TARGET_CPU_TYPE).tar \
- --strip-components=1 -C $(WRKSRC) linux
-endif
- touch $@
-
-$(WRKBUILD)/.configured: $(TOOLCHAIN_BUILD_DIR)/w-$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE)/$(ADK_TARGET_OS)-$(KERNEL_FILE_VER)/.patched
- $(KERNEL_MAKE_ENV) $(MAKE) -C "${LINUX_DIR}" $(KERNEL_MAKE_OPTS) \
- INSTALL_HDR_PATH=$(STAGING_TARGET_DIR)/usr \
- headers_install
-ifeq ($(ADK_TARGET_ARCH_CRIS),y)
-ifeq ($(ADK_TARGET_CPU_ARCH),crisv32)
- cd $(STAGING_TARGET_DIR)/usr/include && ln -sf arch-v32/arch arch
-else
- cd $(STAGING_TARGET_DIR)/usr/include && ln -sf arch-v10/arch arch
-endif
-endif
- @-find $(STAGING_TARGET_DIR)/usr/include -name .install -delete
- @-find $(STAGING_TARGET_DIR)/usr/include -name ..install.cmd -delete
- touch $@
-
-include ${ADK_TOPDIR}/mk/toolchain.mk